王 巖,張 杰,許合利
(河南理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,河南 焦作 454000)E-mail:1406397946@qq.com
推薦系統(tǒng)通過個性化的推薦算法,將不同的人和物品聯(lián)系起來,挖掘出不同用戶間的共同愛好,從而將個性化的物品推薦給用戶,為用戶購物節(jié)省了大量時間.當(dāng)前,各種推薦算法以及推薦技術(shù)受到了學(xué)術(shù)界的廣泛關(guān)注[1,2].日益增多的用戶和商品數(shù)量為傳統(tǒng)協(xié)同過濾推薦算法帶來了各種各樣的問題,如數(shù)據(jù)稀疏、冷啟動和實(shí)時性低[3-5]等.這些問題使得傳統(tǒng)推薦算法在計(jì)算用戶相似性時結(jié)果不夠精確,推薦效果也隨之下降.因此,專家學(xué)者提出各種各樣的算法對傳統(tǒng)算法進(jìn)行優(yōu)化研究.韓亞楠等[6]將用戶評分矩陣進(jìn)行填充并結(jié)合用戶興趣對傳統(tǒng)協(xié)同過濾算法進(jìn)行改進(jìn),雖然能夠有效地緩解了數(shù)據(jù)稀疏的問題,但是他的方法受限于試驗(yàn)環(huán)境的影響,部分情況下無法達(dá)到最優(yōu)化的推薦.Zhang J等[7]提出一種利用項(xiàng)目域特征構(gòu)建用戶偏好模型的框架,然后將用戶偏好模型與協(xié)同過濾相結(jié)合,同時考慮領(lǐng)域特征集和用戶間的隱式關(guān)系,以產(chǎn)生更好的推薦效果.Chen Hao等[8]將平衡因子引入余弦相似度算法和皮爾遜相似度算法從而對兩個算法進(jìn)行優(yōu)化,利用平衡因子解決不同用戶間評級尺度不同的問題.鄭潔等[9]將信任度引入到協(xié)同過濾算法中,結(jié)合用戶偏好加權(quán)的傳統(tǒng)相似度計(jì)算方法,計(jì)算出更加準(zhǔn)確的相似度從而進(jìn)行推薦.汪靜[10]等利用用戶評分和項(xiàng)目被用戶共同評分分別計(jì)算出用戶和項(xiàng)目的相似性,然后再分別計(jì)算出用戶和項(xiàng)目的預(yù)測評分,最后將兩者結(jié)合得出最終的預(yù)測評分.Suryakant[11]等針對基本算法中平均度量的分歧,考慮到用戶的評分習(xí)慣,并將余弦相似度、Jaccard系數(shù)等三種相似度計(jì)算方法進(jìn)行融合,從而來提高預(yù)測精度.
根據(jù)以上研究內(nèi)容,提出了一種結(jié)合用戶興趣和改進(jìn)的協(xié)同過濾算法,同時衡量用戶興趣相和項(xiàng)目質(zhì)量屬性,并將兩者線性結(jié)合,求得更加精確的相似性,從而提高預(yù)測評分的精確度.
傳統(tǒng)協(xié)同過濾推薦算法依據(jù)用戶的歷史評分信息為用戶推薦出與目標(biāo)用戶興趣相似的項(xiàng)目[12,13].其主要流程如圖1所示.
傳統(tǒng)的協(xié)同過濾算法根據(jù)得到的用戶歷史評分信息首先構(gòu)建一個m×n階的用戶-項(xiàng)目評分矩陣R(m,n),在這個矩陣中行表示有m個用戶,用U表示,U={u1,u2,…,um};列表示有n個項(xiàng)目,用I表示,I={I1,I2,…,In}.用戶-項(xiàng)目評分矩陣如表1所示.
表1 用戶-項(xiàng)目評分矩陣
傳統(tǒng)的協(xié)同過濾算法中最廣泛使用的計(jì)算相似性的方法有:Jaccard系數(shù)、Pearson相關(guān)系數(shù)和余弦相似性系數(shù).根據(jù)以上三種方法計(jì)算出用戶間的相似性,將得出的結(jié)果進(jìn)行排序,選出與目標(biāo)用戶最接近的k個用戶構(gòu)成目標(biāo)用戶的鄰居集合Y,最后使用評分預(yù)測公式得出最終的預(yù)測評分,公式如下:
(1)
為了解決傳統(tǒng)協(xié)同過濾算法在計(jì)算用戶相似性時受到其他因素影響從而導(dǎo)致相似性計(jì)算結(jié)果不準(zhǔn)確的問題,本文將用戶評分分值差異度和用戶評分傾向相似性與Jaccard系數(shù)結(jié)合計(jì)算出用戶興趣相似性,同時將Pearson相關(guān)系數(shù)加入懲罰因子進(jìn)行改進(jìn),最后將用戶興趣相似性與改進(jìn)的Pearson相關(guān)系數(shù)相結(jié)合計(jì)算出最終的用戶相似性,從而達(dá)到提高推薦質(zhì)量的目的.
Jaccard系數(shù)是一種比較常用的計(jì)算用戶相似性的方法,它利用用戶共同評分項(xiàng)目在所有項(xiàng)目中所占的比例來計(jì)算用戶間的相似性,但它有著很明顯的弊端,在計(jì)算相似性時沒有考慮到用戶評分對推薦效果的影響,從而導(dǎo)致相似性計(jì)算不準(zhǔn)確,尤其在當(dāng)前網(wǎng)絡(luò)用戶使用量非常大的情況下,這種情況最為明顯 當(dāng)用戶.Jaccard算法公式如下:
(2)
式(2)中Iu表示用戶u評分過得項(xiàng)目集合;Iv同理.
忽略用戶評分的分值差異會影響相似性的計(jì)算結(jié)果精確度,從而影響推薦的質(zhì)量.假設(shè)User1、User2、User3三個用戶對項(xiàng)目i的評分分別為5分、4分、3分,則用戶User1和User2的評分差值為1分,用戶User1和User3的評分差值為2分,雖然用戶User1與用戶User2和User3都相似,但顯然用戶User1和User2的相似性更高一些.由此可以說明用戶間的評分值差異直接影響到相似性計(jì)算的結(jié)果,評分差值越小,相似性計(jì)算就越精確;反之,相似性計(jì)算就越模糊.因此,本文提出分度值差異變化修正因子,計(jì)算公式如下:
(3)
式(3)中Avg(u,v)表示用戶u和用戶v的分值差異權(quán)重,Rui和Rvi分別表示用戶u和v對項(xiàng)目i的評分,Cuv表示用戶u和用戶v共同評分的項(xiàng)目.由式(1)可以看出|Rui-Rvi|的值越小,Avg(u,v)就越大,用戶u和v之間就越有可能有共同的愛好;|Rui-Rvi|的值越大,Avg(u,v)就越小,用戶u和v之間有共同愛好的可能性就越低.
不同的用戶對項(xiàng)目評分的觀點(diǎn)也不相同,有的人善于表達(dá)自己的興趣傾向,給出的項(xiàng)目評分就比較高.有的人對自己的興趣有著比較嚴(yán)格的評判標(biāo)準(zhǔn),給出的項(xiàng)目評分就比較低.因此,只是簡單地使用用戶間的分值差異度來衡量用戶間的相似度明顯不能夠準(zhǔn)確的達(dá)到高質(zhì)量的推薦效果.用戶評分的平均值可以用來作為衡量用戶對物品評分傾向的重要因子.當(dāng)用戶對項(xiàng)目的評分大于其評分均值時,表現(xiàn)為正向興趣;反之,為負(fù)向興趣.針對這一特征,本文引入用戶興趣傾向表示用戶在評分時的主觀想法,計(jì)算方法為:
(4)
式(4)中SimIT(u,v)表示用戶的興趣傾向相似性.
由式(1)、(2)和(3)可以得出最終的用戶興趣相似性的計(jì)算方法:
SimI(u,v)=SimIT(u,v)×Jaccard(u,v)×Avg(u,v)
(5)
式(5)中SimI(u,v)表示用戶興趣相似性.
在計(jì)算用戶相似性時被經(jīng)常使用的算法是Pearson相關(guān)系數(shù).傳統(tǒng)的Pearson相關(guān)系數(shù)公式如下:
(6)
分析式(6)可知,Pearson相關(guān)系數(shù)在計(jì)算用戶相似性的前提是兩個用戶存在共同評分的項(xiàng)目集合.對于用戶共同評分的項(xiàng)目而言,在計(jì)算相似性時認(rèn)為用戶對項(xiàng)目的所有評分都表達(dá)了用戶對該項(xiàng)目的偏好程度,能夠直接用于相似性的計(jì)算之中.相反,項(xiàng)目本身的質(zhì)量屬性也會影響用戶在評分時的分值,利用這些評分計(jì)算用戶相似性時,就會導(dǎo)致計(jì)算出的用戶相似性精確度不到,推薦效果也受到相當(dāng)大的影響.
項(xiàng)目本身的質(zhì)量屬性的好壞直接或間接的影響著用戶對該項(xiàng)目的評分.這里以電影為例,假如有一部電影拍得非常難看,這與用戶的興趣偏好沒有太大的關(guān)系,所以大多數(shù)的用戶在評分的時候都只給了1分;相反,如果一部電影拍得非常好看,大部分用戶都覺得它好看,所以在評分時可能都給了5分.那么可能任意的用戶在給該電影打分時,評分可能也是1分或者5分.由此可以看出,當(dāng)一個項(xiàng)目自身質(zhì)量屬性很差或者很好的時候,大部分用戶就回給出相同的評分,但此時并不能說明這些用戶的相似性就很高.但是,當(dāng)多數(shù)用戶的評分高低分布均勻時,就能很直觀的反映出用戶的興趣偏好.
本文用標(biāo)準(zhǔn)差來反映用戶評分對相似性計(jì)算的懲罰因子,評分標(biāo)準(zhǔn)差即離散性反映了項(xiàng)目自身質(zhì)量屬性對用戶評分的影響大小.用戶評分的離散程度越高,表示項(xiàng)目自身質(zhì)量屬性對用戶的評分影響就越大,就越能反映用戶的興趣偏好;反之,項(xiàng)目自身質(zhì)量屬性對用戶的評分影響就越小,對用戶興趣偏好的反應(yīng)程度就越低.
因此,本文離散性懲罰項(xiàng)目自身質(zhì)量屬性帶來的誤差,將離散性引入到相似度的計(jì)算過程中,公式如下:
(7)
(8)
將式(8)與Pearson相關(guān)系數(shù)計(jì)算公式結(jié)合,得到式(9)如下:
(9)
針對傳統(tǒng)協(xié)同過濾算法未考慮到用戶評分差異度以及評分傾向的問題,本文在3.1節(jié)提出了一種將其全部考慮在內(nèi)的計(jì)算方法(公式(5)),結(jié)合3.2節(jié)中提出的將Pearson相關(guān)系數(shù)進(jìn)行改進(jìn)的計(jì)算方法(公式(9)),最終形成本文所提出的新算法,其表達(dá)式為:
Sim(u,v)=λSimI(u,v)+(1-λ)SimP(u,v)
(10)
式(10)中Sim(u,v)表示最終的相似度計(jì)算方法,λ為可變參數(shù)λ∈[0,1],用于調(diào)節(jié)用戶興趣相似度和改進(jìn)的相似度的比重.
根據(jù)公式(10)計(jì)算出的相似度,得出目標(biāo)用戶的最近鄰居集合Y,最后利用評分預(yù)測公式對目標(biāo)用戶進(jìn)行評分預(yù)測.評分預(yù)測公式為:
(11)
根據(jù)上述方法,通過用戶興趣相似性和改進(jìn)的相似性計(jì)算方法相結(jié)合,得出更加精確的評分預(yù)測結(jié)果,最后進(jìn)行推薦,具體算法流程如下:
輸入:用戶、項(xiàng)目、評分?jǐn)?shù)據(jù)文件,參數(shù)λ.
輸出:用戶預(yù)測評分值矩陣.
Step1.根據(jù)輸入的數(shù)據(jù)文件構(gòu)建出用戶-項(xiàng)目評分矩陣;
Step3.利用式(3)和式(4)計(jì)算出用戶的評分差異權(quán)重和興趣傾向相似性SimIT(u,v),并根據(jù)式(6)計(jì)算得出用戶興趣相似性SimI(u,v);
Step4.根據(jù)式(7)和式(8)計(jì)算用戶的標(biāo)準(zhǔn)差σi和離散系數(shù)Di,并根據(jù)式(9)計(jì)算的出用戶相似性SimP(u,v);
Step5.由以上步驟得出的SimI(u,v)和SimP(u,v),利用式(10),輸入不同的參數(shù)λ值,調(diào)整用戶興趣相似性和用戶形似性的比重,得出最精確的相似性Sim(u,v)的計(jì)算結(jié)果;
Step6.根據(jù)Sim(u,v)得出的結(jié)果選出最大的k個用戶形成目標(biāo)用戶的鄰居集合Y,利用式(11)得出預(yù)測評分,形成評分預(yù)測值矩陣.
本文采用MovieLens和Book-Crossing兩個數(shù)據(jù)集對算法進(jìn)行實(shí)驗(yàn)驗(yàn)證.MovieLens數(shù)據(jù)集采用的是100k的數(shù)據(jù)文件,評分的區(qū)間在1-5分之間.數(shù)據(jù)的稀疏性可以用公式1-評分總數(shù)/用戶數(shù)×項(xiàng)目數(shù)來計(jì)算,結(jié)果為93.7%,可見數(shù)據(jù)是非常稀疏的.Book-Crossing數(shù)據(jù)集是亞馬遜用戶對該平臺中書籍的評分?jǐn)?shù)據(jù)集,該數(shù)據(jù)集的評分范圍為1-10分,從中選擇2532名用戶對18072本書籍的評分為本文實(shí)驗(yàn)數(shù)據(jù)集,在兩個數(shù)據(jù)集中隨機(jī)選擇80%作為訓(xùn)練集,20%作為測試集.本文為便于記憶,將MovieLens和Book-Crossing數(shù)據(jù)集分別記為X1和X2.
平均絕對誤差(Mean Absoulte Error,MAE):目前應(yīng)用最廣泛的協(xié)同過濾算法評價(jià)標(biāo)準(zhǔn),它表示推薦值與真實(shí)值之間的平均絕對差值[14].將預(yù)測用戶評分集合定義為{p1,p2,…,pn},實(shí)際用戶評分集合定義為{q1,q2,…,qn},則MAE計(jì)算公式為:
(12)
覆蓋率:覆蓋率[15]能夠明顯的顯示出推薦的物品對用戶是否有效.覆蓋率越大表明推薦物品概率分布越均勻,計(jì)算公式為:
(13)
其中U表示用戶集合,Nu表示為用戶u推薦的物品集合中物品的個數(shù),n表示數(shù)據(jù)集中物品總個數(shù).
召回率:召回率表示推薦物品中有多少被真實(shí)的預(yù)測到了,能夠清晰的表達(dá)出推薦結(jié)果的精確度.計(jì)算公式為:
(14)
其中Ru和Tu分別表示為用戶推薦的物品集合和用戶真實(shí)喜歡的物品集合.
根據(jù)本文提出的相似性計(jì)算方法,可變參數(shù)λ在相似度計(jì)算過程中起著非常重要的作用.因此,首先需要確定λ的值來消除可變參數(shù)λ對推薦結(jié)果的影響.當(dāng)最近鄰用戶個數(shù)為30時,MAE值在不同λ取值下的變化結(jié)果如圖2所示.
圖2 算法MAE值隨著λ值的變化
λ的值表示本文相似性算法中用戶相似性和改進(jìn)的Pearson相關(guān)系數(shù)之間的比重,當(dāng)λ值較大時,說明用戶相似性對本文推薦算法的影響較大,反之,說明改進(jìn)的Pesrson相關(guān)系數(shù)對本文推薦算法的影響較大.由圖2可知,當(dāng)λ的值為0.4時,本文相似性計(jì)算方法達(dá)到最優(yōu).
將本文計(jì)算相似性方法記為UII-CF,在平均絕對誤差、準(zhǔn)確率和召回率3個方面與Pearson相似性計(jì)算方法、Jaccard相似性計(jì)算方法和文獻(xiàn)[12]中相似度計(jì)算方法(proposed)進(jìn)行比較來驗(yàn)證本文推薦算法的推薦效果.
圖3顯示了在MovieLens數(shù)據(jù)集中不同最近鄰居下4種相似度算法的MAE值,從圖中可以看出4種算法的MAE值隨著最近鄰居的不斷增加而逐漸減小,并且本文算法UII-CF的MAE值小于傳統(tǒng)的相似性計(jì)算方法,在最近鄰居數(shù)為30時取得了最優(yōu)值.當(dāng)最近鄰用戶小于25時,本文算法MAE值高于文獻(xiàn)[12]算法,但當(dāng)最近鄰用戶大于25時本文算法優(yōu)于文獻(xiàn)[12]算法.
圖3 X1數(shù)據(jù)集4種算法的MAE比較結(jié)果
圖4給出了在Book-Crossing數(shù)據(jù)集中4種算法在不同最近鄰居數(shù)下的MAE值,從圖中可以看出隨著最近鄰居數(shù)的增加,MAE值逐漸減小,本文算法在最近鄰居數(shù)達(dá)到30時取得最優(yōu)值,且優(yōu)于其他3種算法.由圖3和圖4可知本文算法在MovieLens和Book-Crossing數(shù)據(jù)集上的MAE值均優(yōu)于其他3種算法.
圖4 X2數(shù)據(jù)集4種算法的MAE比較結(jié)果
圖5顯示了在MovieLens數(shù)據(jù)集中4種算法的覆蓋率比較結(jié)果.從圖中可以看出4種算法的覆蓋率隨著最近鄰居數(shù)目的增大而增長,這是因?yàn)樽罱従佑脩舻脑黾涌赡軐?dǎo)致當(dāng)做備選項(xiàng)推薦給用戶的物品數(shù)目增加.從圖5中可以看出雖然4種算法的覆蓋率都在增加,但明顯本文UII-CF算法覆蓋率大于其他算法,因此本文所提出的算法(UII-CF)可以產(chǎn)生更好的推薦效果.
圖5 X1數(shù)據(jù)集4種算法覆蓋率比較結(jié)果
圖6顯示了在Book-Crossing數(shù)據(jù)集中4種算法的覆蓋率比較結(jié)果.由圖可以看出隨著最近鄰居的增加4中算法的覆蓋率都逐漸增加,但明顯可以看出本文算法的的覆蓋率增加的更快.由圖5和圖6可知,本文算法在MovieLens和Book-Crossing數(shù)據(jù)集上的覆蓋率均大于其他3種算法.
圖6 X2數(shù)據(jù)集4種算法的覆蓋率比較結(jié)果
圖8表示Book-Crossing數(shù)據(jù)集中4種算法的召回率比較結(jié)果.從圖中可以看出本文算法的召回率均高于其他3種算法.
圖7 X1數(shù)據(jù)集4種算法召回率比較結(jié)果
圖8 X2數(shù)據(jù)集4種算法的召回率比較結(jié)果
由上述實(shí)驗(yàn)結(jié)果對比分析可知,本文針對用戶興趣和項(xiàng)目自身質(zhì)量屬性提出的算法(UII-CF)是有效可行的.將用戶興趣相似性與改進(jìn)的協(xié)同過濾算法結(jié)合后在平均絕對誤差、覆蓋率和召回率方面都要優(yōu)于傳統(tǒng)的協(xié)同過濾算法,經(jīng)過實(shí)驗(yàn)驗(yàn)證表明本文算法能夠在提高推薦精確度方面有著很好的效果.
本文針對傳統(tǒng)協(xié)同過濾算法面對稀疏數(shù)據(jù)計(jì)算相似度不準(zhǔn)確,導(dǎo)致推薦效果不佳的問題,通過對用戶興趣的分析,提出用戶興趣相似度的計(jì)算方法,同時將懲罰因子加入到Pearson相關(guān)系數(shù)的計(jì)算方法中用以消除項(xiàng)目質(zhì)量屬性對相似性計(jì)算帶來的誤差.最后將兩者結(jié)合后得到本文算法(UII-CF)計(jì)算出更加精確的相似性.實(shí)驗(yàn)表明,該方法能夠有效降低平均絕對誤差,提高覆蓋率和召回率,提高推薦質(zhì)量.在現(xiàn)實(shí)生活中用戶的興趣會隨著時間的遷移而變化,導(dǎo)致推薦結(jié)果會受到一定的影響,以后需要針對用戶興趣變化問題做進(jìn)一步研究,從而提高推薦質(zhì)量.