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