王宇飛+宋俊典+戴炳榮
摘 要:協(xié)同過濾(Collaborative Filtering)算法一般采用Pearson相關(guān)系數(shù)、索倫森指數(shù)等方法衡量用戶之間的相似性。但是,這些方法難以區(qū)分個人的習(xí)慣和偏好,以至于計算結(jié)果準確度低、區(qū)分度差。因此提出從評分差異、評分偏好、置信度3個方面衡量用戶的評分相似性,結(jié)合項目類偏好去衡量用戶相似性。真實數(shù)據(jù)集上的測試結(jié)果顯示,改進后的算法比傳統(tǒng)度量方法獲取到的平均絕對誤差(MAE)值更小,能夠有效地提高推薦質(zhì)量。
關(guān)鍵詞:協(xié)同過濾;評分相似性;項目類偏好;個性化推薦技術(shù)
DOIDOI:10.11907/rjdk.162155
中圖分類號:TP312
文獻標識碼:A文章編號:1672-7800(2016)012-0025-05
0 引言
隨著個性化推薦技術(shù)的迅速發(fā)展,個性化推薦不僅為電子商務(wù)帶來了巨大的商業(yè)價值,也為人們的社會生活提供了極大便利[1],具有高效、準確、個性化等特征。作為現(xiàn)有推薦系統(tǒng)中應(yīng)用最成功的推薦技術(shù)之一,基于協(xié)同過濾的推薦技術(shù)分析不同用戶行為所產(chǎn)生的數(shù)據(jù)來推薦他們可能喜歡的項目,這些數(shù)據(jù)包含用戶瀏覽歷史、購買記錄、用戶評分等[2-5]。隨著協(xié)同過濾算法在不同領(lǐng)域的廣泛應(yīng)用,其也逐漸暴露出數(shù)據(jù)稀疏性[6]、可擴展性[7]、新加入用戶或項目冷啟動[8]等各方面的問題。
近年來,國內(nèi)外研究者在協(xié)同過濾領(lǐng)域開展了較為豐富的研究,取得了一系列重要研究成果。楊興耀[9]等構(gòu)建信任模型來實現(xiàn)評分矩陣填充,從項目和用戶屬性來對項目的相似性進行評估,并使用調(diào)節(jié)因子進行兩方面協(xié)調(diào)處理,提高了算法的精確度;趙偉等[10]通利用K-means算法對用戶進行聚類,并在用戶類中應(yīng)用協(xié)同過濾算法以實現(xiàn)個性化推薦,有效地提高了算法推薦的準確率和擴展性;徐紅燕等[11]利用項目各屬性的評價分數(shù)來評估用戶偏好,并結(jié)合歷史屬性分數(shù)的變化情況和屬性評分相似性綜合實現(xiàn)推薦,提高了算法的推薦準確度;方獻梅、高曉波[12]引入TF-IDF算法計算用戶興趣權(quán)重,構(gòu)建用戶-興趣矩陣來提高推薦質(zhì)量。
因此,從評分差異、評分偏好、項目類偏好、用戶和項目屬性等方面對協(xié)同過濾(Collaborative filtering)算法實現(xiàn)改進值得研究。
1 基于用戶的協(xié)同過濾推薦算法
基于用戶(User-based)的協(xié)同過濾算法中,用戶往往喜歡與他們有相同或相似品味、愛好的一些用戶以往所喜歡的項目[13],算法中對于相似性的度量通常采用PCC(Pearson相關(guān)系數(shù))、COS(余弦相似度)、SRS(索倫森指數(shù))[14]和JMSD(Jaccard均方差)[15],具體公式如下:
下面給出一張用戶評分信息表(見圖1),分別采用PCC、COS、SRS、JMSD算法得到如圖2~圖5所示的相似度計算結(jié)果。
從圖2~圖5中可以發(fā)現(xiàn),使用傳統(tǒng)PCC、COS、SRS和JMSD算法得到的結(jié)果存在以下幾個問題:
(1)計算結(jié)果區(qū)分度比較低。例如,圖2中只存在2種結(jié)果;user1和user3之間的相似性本應(yīng)該高于user1和user2,但在圖2中得到的結(jié)果完全相同;在圖5中,user1分別與user2和user4相比,得到的結(jié)果都是0.0,與實際情況差距較大。
(2)計算出的結(jié)果有些與實際情況相反。例如,user1在user2和user3之間,與后者的相似性本來應(yīng)該更大,然而在圖3、圖4中的結(jié)果卻與之相反。
(3)無法體現(xiàn)出用戶對于項目的興趣。例如,同樣對于Item2、user2的評價分數(shù)為4,user5只有2分,然而在圖2中計算出兩者的相似度卻是1.0;同樣user3在item2上比user5高了2分,在圖2中兩人的相似度也是1.0。
由于采用傳統(tǒng)計算方法產(chǎn)生了這些問題,使得推薦系統(tǒng)的推薦精度低、推薦效果差,為了改善推薦系統(tǒng)的推薦效果,提高推薦精確度,從兩個方面著手對相似度計算定義新的方法。
2 基于用戶評分和項目類偏好的協(xié)同過濾推薦算法
為了能夠更加精確地度量相似性,本文從3個方面:評分差異、評分偏好、置信度,綜合衡量用戶的評分相似性,并結(jié)合用戶項目類偏好實現(xiàn)用戶相似度的綜合衡量。具體算法實現(xiàn)流程如圖6所示。
由圖6可知,基于用戶評分和項目類偏好的協(xié)同過濾推薦算法包含以下幾個步驟:①依據(jù)用戶評分矩陣分別實現(xiàn)評分差異度、評分偏好相似度以及置信度計算,將三者融合衡量評分相似度;②依據(jù)用戶在不同類型項目上評價數(shù)量與評價總數(shù)的比值來完成項目類偏好相似度計算,如果用戶對某一類項目評價越多,認為用戶對此類項目偏好程度越大;③評分相似度與項目類偏好相似度結(jié)合得到最終的用戶相似度;④選取與目標用戶相似度最高的k個用戶加入最近鄰居集合,利用評分預(yù)測公式對目標用戶未評價的項目進行分數(shù)預(yù)測。最后,選擇N個分數(shù)最高的項目進行推薦。
2.1 用戶評分相似度
2.1.1 用戶評分差異度
將兩用戶共同評價項目的評分看作兩組數(shù)據(jù),這兩組數(shù)據(jù)差值的均方根值體現(xiàn)了它們差異性大小。均方根越大,表示兩人整體上的評分差異越大,認為兩者相似程度越低。在圖1中,user1、user2、user3對Item1、Item2的評分分別是:{2, 3}、{1, 4}和{2, 4},由此可知,user1和user2的分差是{1, 1},均方根為1,user1和User3的平均分差是{0, 1},均方根為0.707。因此,計算得到user1和user3比user1和user2更相似,符合實際情況,比PCC、COS、SRS這3種方法得到的計算結(jié)果更加準確可信。通過式(1)實現(xiàn)均方根的計算,并使結(jié)果處于0~1之間。具體實現(xiàn)如下:
Iuv在式(5)中表示兩用戶u、v共同評價過的項目集合,rui與rvi則分別代表u、v分別對項目i的評價分數(shù)。
2.1.2 評分偏好相似度
現(xiàn)實生活中不同用戶有著各自的打分習(xí)慣,有些用戶對自己所感興趣的項目打分很高,對其它項目打分較低;有些用戶對于所有項目的評分都偏低或者偏高。因此,選取平均評分作為衡量是否喜歡的標準相比文獻[16]選擇中位數(shù)的可信度更高。當評分高于平均分時,表示喜歡此項目,反之則表示不喜歡。
因此,當兩個用戶在同一個項目上的實際評分與各自平均評分的差值同為正或為負時,表示兩人評分偏好趨于相近。通過式(8)可以得到兩者在同一項目上的偏好差距,并由所有差異的平均值來反映用戶間真實的偏好差距,差距越大表示兩者偏好相似性越低。因此,采用以下公式來完成偏好差距計算以及偏好相似性定義:
Iuv同式(5)中的Iuv,Huv(i)指用戶u、v在同一個項目上的偏好差距,rui、avgu分別代表用戶u對項目i的評價分數(shù)和平均評分。
2.1.3 置信度
對置信度的定義一般采用Jaccard函數(shù)來表示。認為若兩用戶一起評價過的項目很少,即便計算出這兩人的相似度很高,兩者的相似性仍然存在質(zhì)疑[8]。
但是當兩個用戶評價的項目數(shù)量差距較大時發(fā)現(xiàn),即使評價數(shù)量少的一方與多的一方評價的項目完全重疊,得到置信度結(jié)果依然很低。為此,分別從用戶雙方角度定義相對于各自的置信度,然后取平均值,以改善出現(xiàn)上述問題時導(dǎo)致置信度始終過小的情況。
Iuv同式(5)中的Iuv,u、v各自評價過的項目集合分別用Iu、Iv表示。
2.1.4 最終的用戶評分相似度
綜上,用戶的評分相似度為:
2.2 項目類偏好相似度
一個項目可能包含多種不同的類型,例如一部電影,它可能既是科幻片也是愛情片。這里通過圖7來展示所有項目的類型所屬,如果一個項目包含某一類型,用“1”表示,反之,用“0”表示,k表示項目的類型總數(shù)。
現(xiàn)實生活中,若用戶對于某一類項目評價的次數(shù)越多,可以認為用戶在此類項目上的偏好程度越大。由用戶評分信息可以得到如圖8所示的類型偏好矩陣。
其中,Gij表示ui對Cj類項目的偏好程度。同時,以用戶的平均評分作為衡量標準,當用戶對某一項目的評分大于平均評分時,表示在此項目上用戶的偏好為正,反之則認為偏好為負(將等于平均分的項目也歸于偏好為負)。所以根據(jù)用戶的項目偏好情況,其類型偏好也可以分為正向偏好和負向偏好。(1)正向偏好:
3 實驗結(jié)果及分析
3.1 數(shù)據(jù)集
實驗中使用的數(shù)據(jù)集是著名的MovieLens(ML)數(shù)據(jù)集[17],它是由美國的GroupLens研究團隊在明尼蘇達大學(xué)歷時約7個月收集的。該數(shù)據(jù)集被分為5組,每一組中的數(shù)據(jù)有兩成將用作算法的測試集,剩余的作為訓(xùn)練集使用。每一組中用于實驗的評分數(shù)量共有100 000條,評分等級的范圍是在1~5分,1分等級最低,5分等級最高。另外在每一組中,每一位用戶都參與評價過至少20部電影,每一部電影可能屬于一種或多種類型,還包含了電影、用戶各自的基本屬性信息。此電影數(shù)據(jù)集的數(shù)據(jù)稀疏度為:
1-100,000943×1,682=0.937
3.2 評價標準
MAE被定義為預(yù)測值和實際值之間絕對誤差的平均值,是使用最廣泛的推薦質(zhì)量評價指標,被用于評估推薦準確性。本文使用MAE作為評價指標,假定某一用戶u對任意一部電影j的實際評分為rj(u),與其相對應(yīng)的預(yù)測所得分數(shù)為Rj(u),具體公式如下:
3.3 實驗結(jié)果
本文對5組數(shù)據(jù)分別進行測試,例如在表1中“u1.base”和“u1.test”這一組數(shù)據(jù),其中“u1.base”和“u1.test”分別作為訓(xùn)練集和測試集。
對測試集中的所有用戶進行測試(取所有測試用戶MAE的平均值作為測試結(jié)果),最近鄰居用戶的數(shù)量K分別取值:5、10、20、30、40、50、60、70、80,經(jīng)過測試,各自的推薦效果如圖10~圖14所示。
從實驗所得的推薦效果圖中可以看出,使用除了PCC之外的其它方法,當最近鄰居數(shù)據(jù)從K=5到K=30時,推薦質(zhì)量會迅速提高;從K=30往后,推薦質(zhì)量的提高速度逐漸放緩,趨于平穩(wěn)狀態(tài),相比之下使用本文算法的推薦質(zhì)量更高。
4 結(jié)語
本文從用戶已有的評價分數(shù)信息中挖掘用戶潛在的評分差異、習(xí)慣、類型的評價數(shù)量分布,提出從用戶評分、項目的類型偏好兩個方面對相似度進行綜合評定的計算方法。對比傳統(tǒng)4種方法分別進行實驗所產(chǎn)生的測試結(jié)果,可以證明采用本文方法在推薦準確性方面有明顯提高。未來,將在現(xiàn)有的研究成果上繼續(xù)進行優(yōu)化,并且在緩解數(shù)據(jù)稀疏、冷啟動方向開展深入研究。
參考文獻:
[1] CHEN H,LI Z,HU W.An improved collaborative recommendation algorithm based on optimized user similarity[J].Journal of Supercomputing,2015:1-14.
[2] BOBADILLA J,HERNANDO A,ORTEGA F,et al.Collaborative filtering based on significances[J].Information Sciences,2012,185(1):1-17.
[3] ZHANG J,LIN Y,LIN M,et al.An effective collaborative filtering algorithm based on user preference clustering[J].Applied Intelligence,2016:1-11.
[4] JIA C X,LIU R R.Improve the algorithmic performance of collaborative filtering by using the interevent time distribution of human behaviors[J].Physica A Statistical Mechanics & Its Applications,2015:236-245.
[5] KOOHBORFARDHAGHIGHI S,KIM J.Using structural information for distributed recommendation in a social network[J].Applied Intelligence,2013,38(38):255-266.
[6] 高倩,何聚厚.改進的面向數(shù)據(jù)稀疏的協(xié)同過濾推薦算法[J].計算機技術(shù)與發(fā)展,2016,26(03):63-66.
[7] SHANG Y,LI Z,QU W,et al.Scalable collaborative filtering recommendation algorithm with MapReduce[C].International Conference on Dependable, Autonomic and Secure Computing,2014:103-108.
[8] BARJASTEH I,F(xiàn)ORSATI R,ROSS D,et al.Cold-start recommendation with provable guarantees:a decoupled approach[J].IEEE Transactions on Knowledge & Data Engineering,2016,28(6):1.
[9] 楊興耀,于炯,吐爾根·依布拉音,等.基于信任模型填充的協(xié)同過濾推薦模型[J].計算機工程,2015(5):6-13.
[10] 趙偉,林楠,韓英,等.一種改進的K-means聚類的協(xié)同過濾算法[J].安徽大學(xué)學(xué)報:自然科學(xué)版,2016,40(2):32-36.
[11] 徐紅艷,杜文剛,馮勇,等.一種基于多屬性評分的協(xié)同過濾算法[J].遼寧大學(xué)學(xué)報:自然科學(xué),2015,42(2):136-142.
[12] 方獻梅,高曉波.基于用戶興趣的協(xié)同過濾推薦算法[J].軟件導(dǎo)刊,2016,15(2):50-51.
[13] DONGZHAN ZHANG,CHAO XU.A collaborative filtering recommadation system by unifying user similarity and item similarity[J].LNCS,2012,7142(2):175-184.
[14] PIRASTEH P,HWANG D,JUNG J E.Weighted similarity schemes for high scalability in user-based collaborative filtering[J].Mobile Networks & Applications,2014,20(4):497-507.
[15] BOBADILLA J,SERRADILLA F,BERNAL J.A new collaborative filtering metric that improves the behavior of recommender systems[J].Knowledge-Based Systems,2010,23(6):520-528.
[16] RYDEN F.Tech to the future:making a "kinection" with haptic interaction[J].IEEE Potentials,2012,31(3):34-36.
[17] Movielens 100K dataset[EB/OL].http://grouplens.org/datasets/movielens/100k/.
(責(zé)任編輯:孫 娟)