周 迅,劉超慧,周克萍,韓傳福
(鄭州航空工業(yè)管理學(xué)院 智能工程學(xué)院,河南 鄭州 450046)
互聯(lián)網(wǎng)上的在線圖書資源正在以越來越快的速度增長著,如何快速地幫助用戶找到所需的信息成了亟待解決的難題,即“信息過載”問題[1]。信息檢索和信息過濾應(yīng)運而生,其中協(xié)同過濾推薦算法可以在過濾大量信息的同時為用戶提供個性化的圖書資源推薦。
Goldberg等[2]在論文中第一次提出“協(xié)同過濾”概念,并開發(fā)了以協(xié)同過濾為核心的郵件處理系統(tǒng) Tapestry,標(biāo)志著初代推薦系統(tǒng)的形成;1994年,Resnick[3]使用協(xié)同過濾算法進(jìn)行嘗試,并開發(fā)了GroupLens系統(tǒng),解決了新聞過載的問題;1997年,Resnick等[4]提出“推薦系統(tǒng)”設(shè)想;2003年,Greg等[5]提出了item-based模型的推薦算法,極大提高了推薦算法的推薦質(zhì)量。然而,目前協(xié)同過濾圖書推薦算法依舊面臨用戶興趣隨時間漂移、熱門圖書對挖掘用戶興趣的干擾以及冷啟動等問題。
針對上述問題,朱白[6]引入時間評分權(quán)重計算相似度矩陣,緩解了目標(biāo)用戶隨著時間推移發(fā)生興趣偏移而導(dǎo)致推薦系統(tǒng)質(zhì)量下降的問題。孫彥超等[7]使用興趣隨時間遷移函數(shù),改進(jìn)相似度計算公式,提高推薦精度。董楊帆[8]利用概率分布計算用戶所要圖書與其關(guān)鍵詞模型相符合的概率,建立概率關(guān)鍵詞模型,有效緩解了數(shù)據(jù)稀疏性問題。安德智等[9]對圖書進(jìn)行聚類,構(gòu)建無缺失的圖書評價矩陣,在面對數(shù)據(jù)稀疏時也能有效地進(jìn)行推薦。上述文獻(xiàn)忽略熱門項目和用戶的評分習(xí)慣對推薦效果的影響。
針對傳統(tǒng)的協(xié)同過濾圖書推薦算法忽略熱門項目對用戶興趣的影響,以及用戶的評分習(xí)慣問題切入研究。筆者通過改進(jìn)用戶的相似度以提高傳統(tǒng)圖書推薦算法的推薦質(zhì)量,提出了融合懲罰因子的協(xié)同過濾圖書推薦算法;考慮到圖書的熱門程度,引入懲罰因子[10],降低熱門圖書的評分權(quán)重;根據(jù)用戶的評分習(xí)慣,引入用戶平均評分因子。
1.1.1 基于用戶的協(xié)同過濾算法
基于用戶的協(xié)同過濾算法(User-CF)依賴于用戶—項目評分矩陣,將用戶對不同項目的喜愛差異作為特征,通過相似度計算模型來計算用戶相似度。如果用戶們具有相似的項目喜愛偏好,即對不同項目的評分?jǐn)?shù)據(jù)相近,那么這些相似用戶就是目標(biāo)用戶的近鄰用戶。可以將近鄰用戶喜歡而目標(biāo)用戶未參與反饋的項目進(jìn)行預(yù)測評分排序,將排序靠前的Top-N項目推薦給目標(biāo)用戶。
1.1.2 基于項目的協(xié)同過濾算法
基于項目的協(xié)同過濾算法(Item-CF)計算的相似度是項目相似度。如果兩個項目的相似度較高,就可以向目標(biāo)用戶推薦其喜歡項目的類似項目,其中這個類似項目要求是目標(biāo)用戶尚未進(jìn)行評分。
基于用戶和項目的協(xié)同過濾算法,都是通過計算相似度求得Top-K近鄰集,在近鄰集上進(jìn)Top-N的評分預(yù)測和推薦。兩者的核心差異在于相似度計算上,基于用戶算法的相似度是將用戶對多個項目的評分作為特征,而基于項目算法的相似度是以多個用戶對項目的評分作為特征。
1.2.1 熱門圖書懲罰因子
冷門圖書更能代表用戶的喜愛偏好,表達(dá)用戶的相似性,且圖書越小眾,其對挖掘用戶的喜愛偏好貢獻(xiàn)越大[11]。故引入熱門圖書懲罰因子以削弱其對度量用戶相似度的影響,熱門圖書懲罰因子的計算公式如式(1)所示:
(1)
式中,N(i)表示圖書i出現(xiàn)的次數(shù)。
1.2.2 用戶平均評分因子
用戶平均評分因子通過用戶的平均評分來描述兩用戶的評分習(xí)慣,其計算公式如式(2)所示:
(2)
1.2.3 余弦相似度
余弦相似度cosine(x,y)通過計算兩個向量之間的夾角余弦值來度量:兩向量的夾角越小,表明用戶相似度越高,反之則相似度越低;夾角為 90°時,余弦值為 0,兩用戶不相似;當(dāng)余弦值為負(fù)數(shù)時,表明兩用戶興趣偏好相反。余弦相似度計算公式如式(3)所示:
(3)
式中:Ix為用戶x的圖書評分集;Iy為用戶y的圖書評分集;Rx,i為用戶x對圖書i的評分;Ry,i為用戶y對圖書i的評分。
1.2.4 組合KNN推薦算法
通過用戶相似度計算公式,便可計算目標(biāo)用戶與關(guān)聯(lián)用戶、集中用戶的相似度,將相似度按降序排列,選取Top-K用戶組成目標(biāo)用戶的近鄰集合Nu。得到目標(biāo)用戶u的Top-K近鄰集合Nu={u1,u2,…,uk}后,通過式(4)計算用戶u對圖書i的預(yù)測評分值:
(4)
本文針對傳統(tǒng)的協(xié)同過濾圖書推薦算法忽略熱門圖書對用戶興趣的影響,以及用戶的評分習(xí)慣問題切入研究,提出了融合懲罰因子的協(xié)同過濾圖書推薦算法。從熱門圖書和用戶評分習(xí)慣的維度出發(fā),引入熱門物品懲罰因子和用戶平均評分因子。
2.1.1 熱門圖書與用戶評分習(xí)慣
協(xié)同過濾算法依據(jù)用戶對不同圖書評分的差異,得到用戶的喜愛偏好,進(jìn)而得到用戶之間的相似度,忽略了某些圖書由于其過于熱門,會對挖掘用戶的喜愛偏好或計算用戶之間的相似度造成一定的不利影響。一些流行度高的圖書,并不能很充分地代表用戶的喜愛偏好,也無法代表兩用戶是擁有共同喜好的,因此要降低這類圖書評分對度量用戶之間相似度的權(quán)重。此外每個人都有自己獨特的評分習(xí)慣,即使兩個人對同一物品給予了相同的評分,內(nèi)心也可能會是不同的喜愛程度。
冷門圖書更能代表用戶的喜愛偏好,表達(dá)用戶的相似性,且圖書越小眾,其對挖掘用戶的喜愛偏好貢獻(xiàn)越大。故引入熱門圖書懲罰因子以削弱其對度量用戶相似度的影響。由于余弦相似度本身并未對用戶去中心化,故引入用戶的平均評分因子進(jìn)行加權(quán)改進(jìn)。基于熱門圖書懲罰因子與用戶平均評分因子的余弦相似度計算方法如式(5)所示:
(5)
從式(5)可以看出,物品越大眾化,Punish(i)越小,該物品對度量用戶之間相似度的貢獻(xiàn)也就越小。
2.1.2 評分預(yù)測
使用相似度sim3計算用戶的Top-K近鄰集,并將sim3替換公式(4)的相似度sim,得到本文的評分預(yù)測公式如式(6)所示:
(6)
將近鄰集中用戶參與評分的圖書,利用改進(jìn)后的評分預(yù)測公式進(jìn)行評分預(yù)測,將圖書進(jìn)行降序排列,并將Top-K物品推薦給目標(biāo)用戶。
本文將熱門懲罰因子和用戶平均評分應(yīng)用于圖書推薦算法中,算法先計算用戶之間的相似度,選取該用戶的近鄰集,再據(jù)此得到推薦圖書。融合懲罰因子的協(xié)同過濾圖書推薦算法(UA-CF)簡要描述如算法1:
Algorithm1:UA-CF
1:Input:ui.base,ui.test,α,β,Top-K,Top-N
2:Output:MAE,Recall,Coverage,Precision
3:tainMatrix,tainTimeMatrix←ui.base,testMatrix←ui.test
本文提出的從用戶和推薦系統(tǒng)的角度出發(fā),為用戶提供更精準(zhǔn)的個性化推薦服務(wù),可增加用戶對推薦系統(tǒng)的依賴。融合懲罰因子的協(xié)同過濾圖書推薦算法在余弦相似度的基礎(chǔ)上進(jìn)行改進(jìn):依據(jù)余弦相似度的特性,引入平均評分因子;根據(jù)熱門物品的特性,引入熱門物品懲罰因子。
利用由Cai-Nicolas Ziegler根據(jù)bookcrossing.com的數(shù)據(jù)編寫的圖書評分?jǐn)?shù)據(jù)集Book-Crossing[12]進(jìn)行實驗評測,數(shù)據(jù)集中包含了278 858個讀者對271 379本書籍的1 149 780條評估數(shù)據(jù),評分范圍0~10,包括顯式和隱式的評分。本次實驗以80%的數(shù)據(jù)作為訓(xùn)練集,剩余的20%作為測試集。
3.2.1 平均絕對誤差
平均絕對誤差 MAE(Mean Absolute Error,公式中記為MAE)將預(yù)測的評分值與目標(biāo)用戶實際對圖書評分之間的偏差當(dāng)作度量。算法的推薦質(zhì)量與 MAE大小成反比,MAE越小,推薦質(zhì)量越高,平均絕對誤差計算公式為:
(7)
式中:T為測試集;actx,i為實際評分;predictx,i為預(yù)測評分。
3.2.2 召回率
召回率(Recall,公式中記為Recall)描述用戶u在測試集中的反饋物品有多大的比例包含在最終的Top-N物品推薦列表中,Recall 描述的是用戶的行為數(shù)據(jù),Recall越大,說明對用戶行為預(yù)測就越準(zhǔn)確。召回率計算公式為:
(8)
式中:R(u)為用戶u推薦的Top-N物品;T(u)為用戶u在測試集上有過反饋的物品集合。
3.2.3 覆蓋率
覆蓋率(Coverage,公式中記為Coverage)描述推薦系統(tǒng)挖掘長尾物品的能力,在推薦項目對用戶有效的情況下,覆蓋率越大表明推薦的項目分布越均勻。覆蓋率計算公式為:
(9)
式中,n為數(shù)據(jù)集中物品的總數(shù)量。
3.3.1 平均絕對誤差
經(jīng)過實驗測試,融合懲罰因子的協(xié)同過濾圖書推薦算法與基于余弦相似度的協(xié)同過濾圖書推薦算法的MAE對比,如圖1所示。
圖1 傳統(tǒng)算法與UA-CF的MAE比較
由圖1可知,融合懲罰因子的協(xié)同過濾圖書推薦算法MAE要低于傳統(tǒng)算法,提高了推薦精度。當(dāng)近鄰用戶為5時可降低1.5%,說明改進(jìn)算法在一定程度上可以緩解系統(tǒng)冷啟動問題。
3.3.2 召回率
融合懲罰因子的協(xié)同過濾圖書推薦算法與傳統(tǒng)算法的Recall 對比,如圖2所示。
圖2 傳統(tǒng)算法與UA-CF的Recall比較
由圖2可知,融合懲罰因子的協(xié)同過濾圖書推薦算法的Recall要高于傳統(tǒng)算法, 融合懲罰因子的協(xié)同過濾圖書推薦算法較傳統(tǒng)算法召回率平均提高5.4%,提高了推薦質(zhì)量。
3.3.3 覆蓋率
融合懲罰因子的協(xié)同過濾圖書推薦算法與傳統(tǒng)算法的Coverage對比,如圖3所示。
圖3 傳統(tǒng)算法與UA-CF的Coverage比較
由圖3可知,融合懲罰因子的協(xié)同過濾圖書推薦算法與傳統(tǒng)算法的覆蓋率有了略微的提升,融合懲罰因子的協(xié)同過濾圖書推薦算法覆蓋率平均提高0.19%。
綜上所述,融合懲罰因子的協(xié)同過濾圖書推薦算法相較于傳統(tǒng)算法,考慮了熱門物品對用戶興趣的影響、用戶的評分習(xí)慣以及用戶的興趣隨時間進(jìn)行遷移等諸多問題,對用戶的相似度計算公式進(jìn)行相應(yīng)的改進(jìn),通過驗證實驗,改進(jìn)算法相較于傳統(tǒng)算法召回率平均提高5.4%,在近鄰用戶較少時,MAE降低1.5%,在一定程度上緩解了系統(tǒng)的冷啟動問題,提高了推薦精度與質(zhì)量,有效彌補了傳統(tǒng)算法的缺陷。
本文在基于余弦相似度的協(xié)同過濾圖書推薦算法基礎(chǔ)上,提出融合懲罰因子的協(xié)同過濾圖書推薦算法,引入熱門物品懲罰因子和用戶平均評分因子,降低熱門物品的評分權(quán)重。在Book-Crossing數(shù)據(jù)集上,將融合懲罰因子的協(xié)同過濾圖書推薦算法與基于余弦相似度的傳統(tǒng)算法進(jìn)行對比,改進(jìn)算法與傳統(tǒng)算法的覆蓋率基本持平,卻降低了傳統(tǒng)算法的平均絕對誤差,提高了傳統(tǒng)算法的召回率,在一定程度上緩解了傳統(tǒng)算法的冷啟動問題,提高了推薦質(zhì)量。本文提出的融合懲罰因子的協(xié)同過濾圖書推薦算法,雖然在一定程度上彌補了傳統(tǒng)算法的缺陷,提高了推薦質(zhì)量,但其自身仍存在局限性。例如相似度計算方法、算法效率等,所以在分析現(xiàn)有工作不足之處的基礎(chǔ)上,提出后續(xù)將重點關(guān)注的幾個方面:(1)在不降低推薦精度的前提下提高算法的覆蓋率,提高推薦物品的多樣性和用戶的驚喜度。(2)用戶的興趣不是恒古不變的,而是隨著自身年齡和閱歷的不斷增長而發(fā)生變遷的[11]。(3)針對用戶自身的特征屬性(年齡、性別、職業(yè))進(jìn)行畫像分析,為用戶提供更好的個性化推薦服務(wù)。