王宇飛+宋俊典+戴炳榮
摘 要:協(xié)同過(guò)濾(Collaborative Filtering)算法一般采用Pearson相關(guān)系數(shù)、索倫森指數(shù)等方法衡量用戶之間的相似性。但是,這些方法難以區(qū)分個(gè)人的習(xí)慣和偏好,以至于計(jì)算結(jié)果準(zhǔn)確度低、區(qū)分度差。因此提出從評(píng)分差異、評(píng)分偏好、置信度3個(gè)方面衡量用戶的評(píng)分相似性,結(jié)合項(xiàng)目類(lèi)偏好去衡量用戶相似性。真實(shí)數(shù)據(jù)集上的測(cè)試結(jié)果顯示,改進(jìn)后的算法比傳統(tǒng)度量方法獲取到的平均絕對(duì)誤差(MAE)值更小,能夠有效地提高推薦質(zhì)量。
關(guān)鍵詞:協(xié)同過(guò)濾;評(píng)分相似性;項(xiàng)目類(lèi)偏好;個(gè)性化推薦技術(shù)
DOIDOI:10.11907/rjdk.162155
中圖分類(lèi)號(hào):TP312
文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1672-7800(2016)012-0025-05
0 引言
隨著個(gè)性化推薦技術(shù)的迅速發(fā)展,個(gè)性化推薦不僅為電子商務(wù)帶來(lái)了巨大的商業(yè)價(jià)值,也為人們的社會(huì)生活提供了極大便利[1],具有高效、準(zhǔn)確、個(gè)性化等特征。作為現(xiàn)有推薦系統(tǒng)中應(yīng)用最成功的推薦技術(shù)之一,基于協(xié)同過(guò)濾的推薦技術(shù)分析不同用戶行為所產(chǎn)生的數(shù)據(jù)來(lái)推薦他們可能喜歡的項(xiàng)目,這些數(shù)據(jù)包含用戶瀏覽歷史、購(gòu)買(mǎi)記錄、用戶評(píng)分等[2-5]。隨著協(xié)同過(guò)濾算法在不同領(lǐng)域的廣泛應(yīng)用,其也逐漸暴露出數(shù)據(jù)稀疏性[6]、可擴(kuò)展性[7]、新加入用戶或項(xiàng)目冷啟動(dòng)[8]等各方面的問(wèn)題。
近年來(lái),國(guó)內(nèi)外研究者在協(xié)同過(guò)濾領(lǐng)域開(kāi)展了較為豐富的研究,取得了一系列重要研究成果。楊興耀[9]等構(gòu)建信任模型來(lái)實(shí)現(xiàn)評(píng)分矩陣填充,從項(xiàng)目和用戶屬性來(lái)對(duì)項(xiàng)目的相似性進(jìn)行評(píng)估,并使用調(diào)節(jié)因子進(jìn)行兩方面協(xié)調(diào)處理,提高了算法的精確度;趙偉等[10]通利用K-means算法對(duì)用戶進(jìn)行聚類(lèi),并在用戶類(lèi)中應(yīng)用協(xié)同過(guò)濾算法以實(shí)現(xiàn)個(gè)性化推薦,有效地提高了算法推薦的準(zhǔn)確率和擴(kuò)展性;徐紅燕等[11]利用項(xiàng)目各屬性的評(píng)價(jià)分?jǐn)?shù)來(lái)評(píng)估用戶偏好,并結(jié)合歷史屬性分?jǐn)?shù)的變化情況和屬性評(píng)分相似性綜合實(shí)現(xiàn)推薦,提高了算法的推薦準(zhǔn)確度;方獻(xiàn)梅、高曉波[12]引入TF-IDF算法計(jì)算用戶興趣權(quán)重,構(gòu)建用戶-興趣矩陣來(lái)提高推薦質(zhì)量。
因此,從評(píng)分差異、評(píng)分偏好、項(xiàng)目類(lèi)偏好、用戶和項(xiàng)目屬性等方面對(duì)協(xié)同過(guò)濾(Collaborative filtering)算法實(shí)現(xiàn)改進(jìn)值得研究。
1 基于用戶的協(xié)同過(guò)濾推薦算法
基于用戶(User-based)的協(xié)同過(guò)濾算法中,用戶往往喜歡與他們有相同或相似品味、愛(ài)好的一些用戶以往所喜歡的項(xiàng)目[13],算法中對(duì)于相似性的度量通常采用PCC(Pearson相關(guān)系數(shù))、COS(余弦相似度)、SRS(索倫森指數(shù))[14]和JMSD(Jaccard均方差)[15],具體公式如下:
下面給出一張用戶評(píng)分信息表(見(jiàn)圖1),分別采用PCC、COS、SRS、JMSD算法得到如圖2~圖5所示的相似度計(jì)算結(jié)果。
從圖2~圖5中可以發(fā)現(xiàn),使用傳統(tǒng)PCC、COS、SRS和JMSD算法得到的結(jié)果存在以下幾個(gè)問(wèn)題:
(1)計(jì)算結(jié)果區(qū)分度比較低。例如,圖2中只存在2種結(jié)果;user1和user3之間的相似性本應(yīng)該高于user1和user2,但在圖2中得到的結(jié)果完全相同;在圖5中,user1分別與user2和user4相比,得到的結(jié)果都是0.0,與實(shí)際情況差距較大。
(2)計(jì)算出的結(jié)果有些與實(shí)際情況相反。例如,user1在user2和user3之間,與后者的相似性本來(lái)應(yīng)該更大,然而在圖3、圖4中的結(jié)果卻與之相反。
(3)無(wú)法體現(xiàn)出用戶對(duì)于項(xiàng)目的興趣。例如,同樣對(duì)于Item2、user2的評(píng)價(jià)分?jǐn)?shù)為4,user5只有2分,然而在圖2中計(jì)算出兩者的相似度卻是1.0;同樣user3在item2上比user5高了2分,在圖2中兩人的相似度也是1.0。
由于采用傳統(tǒng)計(jì)算方法產(chǎn)生了這些問(wèn)題,使得推薦系統(tǒng)的推薦精度低、推薦效果差,為了改善推薦系統(tǒng)的推薦效果,提高推薦精確度,從兩個(gè)方面著手對(duì)相似度計(jì)算定義新的方法。
2 基于用戶評(píng)分和項(xiàng)目類(lèi)偏好的協(xié)同過(guò)濾推薦算法
為了能夠更加精確地度量相似性,本文從3個(gè)方面:評(píng)分差異、評(píng)分偏好、置信度,綜合衡量用戶的評(píng)分相似性,并結(jié)合用戶項(xiàng)目類(lèi)偏好實(shí)現(xiàn)用戶相似度的綜合衡量。具體算法實(shí)現(xiàn)流程如圖6所示。
由圖6可知,基于用戶評(píng)分和項(xiàng)目類(lèi)偏好的協(xié)同過(guò)濾推薦算法包含以下幾個(gè)步驟:①依據(jù)用戶評(píng)分矩陣分別實(shí)現(xiàn)評(píng)分差異度、評(píng)分偏好相似度以及置信度計(jì)算,將三者融合衡量評(píng)分相似度;②依據(jù)用戶在不同類(lèi)型項(xiàng)目上評(píng)價(jià)數(shù)量與評(píng)價(jià)總數(shù)的比值來(lái)完成項(xiàng)目類(lèi)偏好相似度計(jì)算,如果用戶對(duì)某一類(lèi)項(xiàng)目評(píng)價(jià)越多,認(rèn)為用戶對(duì)此類(lèi)項(xiàng)目偏好程度越大;③評(píng)分相似度與項(xiàng)目類(lèi)偏好相似度結(jié)合得到最終的用戶相似度;④選取與目標(biāo)用戶相似度最高的k個(gè)用戶加入最近鄰居集合,利用評(píng)分預(yù)測(cè)公式對(duì)目標(biāo)用戶未評(píng)價(jià)的項(xiàng)目進(jìn)行分?jǐn)?shù)預(yù)測(cè)。最后,選擇N個(gè)分?jǐn)?shù)最高的項(xiàng)目進(jìn)行推薦。
2.1 用戶評(píng)分相似度
2.1.1 用戶評(píng)分差異度
將兩用戶共同評(píng)價(jià)項(xiàng)目的評(píng)分看作兩組數(shù)據(jù),這兩組數(shù)據(jù)差值的均方根值體現(xiàn)了它們差異性大小。均方根越大,表示兩人整體上的評(píng)分差異越大,認(rèn)為兩者相似程度越低。在圖1中,user1、user2、user3對(duì)Item1、Item2的評(píng)分分別是:{2, 3}、{1, 4}和{2, 4},由此可知,user1和user2的分差是{1, 1},均方根為1,user1和User3的平均分差是{0, 1},均方根為0.707。因此,計(jì)算得到user1和user3比user1和user2更相似,符合實(shí)際情況,比PCC、COS、SRS這3種方法得到的計(jì)算結(jié)果更加準(zhǔn)確可信。通過(guò)式(1)實(shí)現(xiàn)均方根的計(jì)算,并使結(jié)果處于0~1之間。具體實(shí)現(xiàn)如下:
Iuv在式(5)中表示兩用戶u、v共同評(píng)價(jià)過(guò)的項(xiàng)目集合,rui與rvi則分別代表u、v分別對(duì)項(xiàng)目i的評(píng)價(jià)分?jǐn)?shù)。
2.1.2 評(píng)分偏好相似度
現(xiàn)實(shí)生活中不同用戶有著各自的打分習(xí)慣,有些用戶對(duì)自己所感興趣的項(xiàng)目打分很高,對(duì)其它項(xiàng)目打分較低;有些用戶對(duì)于所有項(xiàng)目的評(píng)分都偏低或者偏高。因此,選取平均評(píng)分作為衡量是否喜歡的標(biāo)準(zhǔn)相比文獻(xiàn)[16]選擇中位數(shù)的可信度更高。當(dāng)評(píng)分高于平均分時(shí),表示喜歡此項(xiàng)目,反之則表示不喜歡。
因此,當(dāng)兩個(gè)用戶在同一個(gè)項(xiàng)目上的實(shí)際評(píng)分與各自平均評(píng)分的差值同為正或?yàn)樨?fù)時(shí),表示兩人評(píng)分偏好趨于相近。通過(guò)式(8)可以得到兩者在同一項(xiàng)目上的偏好差距,并由所有差異的平均值來(lái)反映用戶間真實(shí)的偏好差距,差距越大表示兩者偏好相似性越低。因此,采用以下公式來(lái)完成偏好差距計(jì)算以及偏好相似性定義:
Iuv同式(5)中的Iuv,Huv(i)指用戶u、v在同一個(gè)項(xiàng)目上的偏好差距,rui、avgu分別代表用戶u對(duì)項(xiàng)目i的評(píng)價(jià)分?jǐn)?shù)和平均評(píng)分。
2.1.3 置信度
對(duì)置信度的定義一般采用Jaccard函數(shù)來(lái)表示。認(rèn)為若兩用戶一起評(píng)價(jià)過(guò)的項(xiàng)目很少,即便計(jì)算出這兩人的相似度很高,兩者的相似性仍然存在質(zhì)疑[8]。
但是當(dāng)兩個(gè)用戶評(píng)價(jià)的項(xiàng)目數(shù)量差距較大時(shí)發(fā)現(xiàn),即使評(píng)價(jià)數(shù)量少的一方與多的一方評(píng)價(jià)的項(xiàng)目完全重疊,得到置信度結(jié)果依然很低。為此,分別從用戶雙方角度定義相對(duì)于各自的置信度,然后取平均值,以改善出現(xiàn)上述問(wèn)題時(shí)導(dǎo)致置信度始終過(guò)小的情況。
Iuv同式(5)中的Iuv,u、v各自評(píng)價(jià)過(guò)的項(xiàng)目集合分別用Iu、Iv表示。
2.1.4 最終的用戶評(píng)分相似度
綜上,用戶的評(píng)分相似度為:
2.2 項(xiàng)目類(lèi)偏好相似度
一個(gè)項(xiàng)目可能包含多種不同的類(lèi)型,例如一部電影,它可能既是科幻片也是愛(ài)情片。這里通過(guò)圖7來(lái)展示所有項(xiàng)目的類(lèi)型所屬,如果一個(gè)項(xiàng)目包含某一類(lèi)型,用“1”表示,反之,用“0”表示,k表示項(xiàng)目的類(lèi)型總數(shù)。
現(xiàn)實(shí)生活中,若用戶對(duì)于某一類(lèi)項(xiàng)目評(píng)價(jià)的次數(shù)越多,可以認(rèn)為用戶在此類(lèi)項(xiàng)目上的偏好程度越大。由用戶評(píng)分信息可以得到如圖8所示的類(lèi)型偏好矩陣。
其中,Gij表示ui對(duì)Cj類(lèi)項(xiàng)目的偏好程度。同時(shí),以用戶的平均評(píng)分作為衡量標(biāo)準(zhǔn),當(dāng)用戶對(duì)某一項(xiàng)目的評(píng)分大于平均評(píng)分時(shí),表示在此項(xiàng)目上用戶的偏好為正,反之則認(rèn)為偏好為負(fù)(將等于平均分的項(xiàng)目也歸于偏好為負(fù))。所以根據(jù)用戶的項(xiàng)目偏好情況,其類(lèi)型偏好也可以分為正向偏好和負(fù)向偏好。(1)正向偏好:
3 實(shí)驗(yàn)結(jié)果及分析
3.1 數(shù)據(jù)集
實(shí)驗(yàn)中使用的數(shù)據(jù)集是著名的MovieLens(ML)數(shù)據(jù)集[17],它是由美國(guó)的GroupLens研究團(tuán)隊(duì)在明尼蘇達(dá)大學(xué)歷時(shí)約7個(gè)月收集的。該數(shù)據(jù)集被分為5組,每一組中的數(shù)據(jù)有兩成將用作算法的測(cè)試集,剩余的作為訓(xùn)練集使用。每一組中用于實(shí)驗(yàn)的評(píng)分?jǐn)?shù)量共有100 000條,評(píng)分等級(jí)的范圍是在1~5分,1分等級(jí)最低,5分等級(jí)最高。另外在每一組中,每一位用戶都參與評(píng)價(jià)過(guò)至少20部電影,每一部電影可能屬于一種或多種類(lèi)型,還包含了電影、用戶各自的基本屬性信息。此電影數(shù)據(jù)集的數(shù)據(jù)稀疏度為:
1-100,000943×1,682=0.937
3.2 評(píng)價(jià)標(biāo)準(zhǔn)
MAE被定義為預(yù)測(cè)值和實(shí)際值之間絕對(duì)誤差的平均值,是使用最廣泛的推薦質(zhì)量評(píng)價(jià)指標(biāo),被用于評(píng)估推薦準(zhǔn)確性。本文使用MAE作為評(píng)價(jià)指標(biāo),假定某一用戶u對(duì)任意一部電影j的實(shí)際評(píng)分為rj(u),與其相對(duì)應(yīng)的預(yù)測(cè)所得分?jǐn)?shù)為Rj(u),具體公式如下:
3.3 實(shí)驗(yàn)結(jié)果
本文對(duì)5組數(shù)據(jù)分別進(jìn)行測(cè)試,例如在表1中“u1.base”和“u1.test”這一組數(shù)據(jù),其中“u1.base”和“u1.test”分別作為訓(xùn)練集和測(cè)試集。
對(duì)測(cè)試集中的所有用戶進(jìn)行測(cè)試(取所有測(cè)試用戶MAE的平均值作為測(cè)試結(jié)果),最近鄰居用戶的數(shù)量K分別取值:5、10、20、30、40、50、60、70、80,經(jīng)過(guò)測(cè)試,各自的推薦效果如圖10~圖14所示。
從實(shí)驗(yàn)所得的推薦效果圖中可以看出,使用除了PCC之外的其它方法,當(dāng)最近鄰居數(shù)據(jù)從K=5到K=30時(shí),推薦質(zhì)量會(huì)迅速提高;從K=30往后,推薦質(zhì)量的提高速度逐漸放緩,趨于平穩(wěn)狀態(tài),相比之下使用本文算法的推薦質(zhì)量更高。
4 結(jié)語(yǔ)
本文從用戶已有的評(píng)價(jià)分?jǐn)?shù)信息中挖掘用戶潛在的評(píng)分差異、習(xí)慣、類(lèi)型的評(píng)價(jià)數(shù)量分布,提出從用戶評(píng)分、項(xiàng)目的類(lèi)型偏好兩個(gè)方面對(duì)相似度進(jìn)行綜合評(píng)定的計(jì)算方法。對(duì)比傳統(tǒng)4種方法分別進(jìn)行實(shí)驗(yàn)所產(chǎn)生的測(cè)試結(jié)果,可以證明采用本文方法在推薦準(zhǔn)確性方面有明顯提高。未來(lái),將在現(xiàn)有的研究成果上繼續(xù)進(jìn)行優(yōu)化,并且在緩解數(shù)據(jù)稀疏、冷啟動(dòng)方向開(kāi)展深入研究。
參考文獻(xiàn):
[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] 高倩,何聚厚.改進(jìn)的面向數(shù)據(jù)稀疏的協(xié)同過(guò)濾推薦算法[J].計(jì)算機(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] 楊興耀,于炯,吐?tīng)柛ひ啦祭簦?基于信任模型填充的協(xié)同過(guò)濾推薦模型[J].計(jì)算機(jī)工程,2015(5):6-13.
[10] 趙偉,林楠,韓英,等.一種改進(jìn)的K-means聚類(lèi)的協(xié)同過(guò)濾算法[J].安徽大學(xué)學(xué)報(bào):自然科學(xué)版,2016,40(2):32-36.
[11] 徐紅艷,杜文剛,馮勇,等.一種基于多屬性評(píng)分的協(xié)同過(guò)濾算法[J].遼寧大學(xué)學(xué)報(bào):自然科學(xué),2015,42(2):136-142.
[12] 方獻(xiàn)梅,高曉波.基于用戶興趣的協(xié)同過(guò)濾推薦算法[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é)任編輯:孫 娟)