武俊芳,吳 婷
(1.鄭州工商學(xué)院 機(jī)械與電信工程學(xué)院,河南 鄭州 451400;2.中原工學(xué)院 計算機(jī)學(xué)院,河南 鄭州 450000)
當(dāng)前有大量優(yōu)秀的協(xié)同過濾推薦模型[1-3],并且在實際應(yīng)用中取得了不錯的推薦效果[4],然而協(xié)同過濾推薦模型存在許多缺陷,最常見的為:在數(shù)據(jù)稀疏情況下,推薦質(zhì)量急劇下降[5]。目前主要通過降維技術(shù)解決數(shù)據(jù)稀疏難,如有學(xué)者提出了基于概率矩陣分解的降維技術(shù)[6];有學(xué)者提了采用主成分分析、因子分析的降維技術(shù)[7,8],這些降維技術(shù)可以在保留原始數(shù)據(jù)信息的基礎(chǔ)上,有效實現(xiàn)數(shù)據(jù)維數(shù),推薦效果得到了明顯的改善,但在降維同時,會損失一定數(shù)量的重要信息[9]。隨后有學(xué)者提出了奇異值分解和k近鄰的協(xié)同過濾相融合的推薦模型,采用奇異值對原始評分矩陣進(jìn)行分解,然后采用近似評分矩陣估計用戶相似度,最后采用k近鄰算法進(jìn)行推薦預(yù)測,一定程度上緩解了數(shù)據(jù)稀疏性問題,但其仍然無法全面挖掘用戶特征信息[10]。
針對當(dāng)前協(xié)同過濾推薦模型存在的精度低、冷啟動等難題,設(shè)計了用戶和相似性填充相融合的協(xié)同過濾推薦模型,采用標(biāo)準(zhǔn)數(shù)據(jù)集Movielens和Book-Crossing數(shù)據(jù)集對模型性能進(jìn)行測試,結(jié)果表明,該模型提高了協(xié)同過濾推薦的預(yù)測精度,而且預(yù)測性能要明顯好于對比模型,解決對比模型存在的缺陷,獲得了理想的協(xié)同過濾推薦效果。
協(xié)同過濾模型已經(jīng)引起了學(xué)者們的高度關(guān)注,其中基于用戶的協(xié)同過濾應(yīng)用最為廣泛[11]。興趣度是協(xié)同過濾推薦模型中的一個重要指標(biāo),主要描述用戶與項目之間的聯(lián)系,常采用戶-評分矩陣進(jìn)行刻畫。設(shè)共有n個用戶、m個項目,那么用戶-項目評分矩陣的計算公式為
(1)
式中:ru,j——用戶u對項目j的評分。
基于用戶的協(xié)同過濾推薦步驟為:
步驟1 利用評分矩陣估計用戶u,v的相似度Sim(u,v),其中u,v∈U,U表示用戶集合,當(dāng)前用戶相似度估計算法很多,針對不同應(yīng)用領(lǐng)域,選擇不同的估計算法,其中基于皮爾遜相關(guān)系數(shù)的用戶相似度估計算法最為常用,具體為
(2)
步驟2 采用k鄰近算法選擇鄰居集合。設(shè)用戶u0的鄰居集合為Uu0,若預(yù)測ru0,j,首先搜索評價過項目j的用戶集合Uj,并計算u0與Uj元素間的相似度,然后根據(jù)相似度的值進(jìn)行降序排列,選擇前k個元素組成居集合Uu0。
步驟3 根據(jù)式(3)實現(xiàn)u0對項目j的評分預(yù)測
(3)
(4)
式中:σ——觀測噪聲的方差。
U和V的概率密度函數(shù)分別為
(5)
式中:σU,σV——先驗噪聲的方差。
根據(jù)式(4)和式(5)得到貝葉斯后驗概率為
(6)
對式(6)進(jìn)行對數(shù)變換得到
(7)
式中:C——一個常數(shù)。
最大化U和V的后驗概率為
(8)
式中:λU、λV——正則化參數(shù)。
對于數(shù)據(jù)稀疏性問題,通常采用數(shù)據(jù)填充算法實現(xiàn)數(shù)據(jù)補(bǔ)充,提高用戶相似性計算精度,當(dāng)前填充算法很多,如項目評分均值、用戶評分均值等,但它們破壞原始數(shù)據(jù)的分布和特征,有時反而降低了用戶相似性計算精度,為此采用一種新的填充算法,即部分填充算法,具體如下:
(3)根據(jù)R得到用戶a和b的評分項目集合Va和Vb;
(4)計算Va、Vb的項目并集Va∪b和交集Va∩b,根據(jù)Va∪b和Va∩b,得到a和b沒有評價過的項目集合Va⊕b,即有
Va⊕b=Va∪b-Va∩b
(9)
(10)
采用部分填充算法雖然可以解決數(shù)據(jù)稀疏性問題,但得到的相似性度值無法準(zhǔn)確描述用戶間的實際關(guān)系,因此對評分進(jìn)行預(yù)測時,需求考慮其它因素,稱它們?yōu)橛脩粜湃我蜃?,具體為:
(1)對原始和填充后的皮爾遜相似度進(jìn)行加權(quán),得到最后的用戶相似度為
Sim_adj=w1×Simfill_pearson+w2×Simpearson
(11)
式中:w1和w2表示權(quán)值,且有w1+w2=1。
(12)
(3)綜合上述,相似度的最終計算式為
Simtr=w1Simfill_pearson+w2Simpearson+w3Nu
(13)
(1)構(gòu)建用戶-項目評分矩陣。
(2)采用概率矩陣分解技術(shù)對評分矩陣進(jìn)行分解。
(3)根據(jù)分解結(jié)果進(jìn)行逆操作得到近似評分矩陣。
(4)采用近似矩陣對對缺失評價的項目進(jìn)行填充,得到用戶相似度。
(5)用信任度因子對填充誤差進(jìn)行適當(dāng)調(diào)整,得到最終的用戶間相似度。
(6)通過k-近鄰算法構(gòu)建用戶鄰居集,并對用戶評分進(jìn)行預(yù)測,得到預(yù)測結(jié)果。
(7)根據(jù)預(yù)測結(jié)果實現(xiàn)用戶協(xié)同推薦。
為了測試用戶和相似性填充相融合的協(xié)同推薦模型(User-SF)的有效性,在Matlab 2014平臺進(jìn)行仿真實驗,采用當(dāng)前協(xié)同推薦測試的標(biāo)準(zhǔn)數(shù)據(jù)集——Movielens作為研究對象,該數(shù)據(jù)集共包含943個用戶對1682個項目的評價,數(shù)據(jù)采集時間為:1997.9.19~1998.5.22,用戶評分集為1~5級。該數(shù)據(jù)集的稀疏等級為93.7%,其中訓(xùn)練集和測試集所占比例分別為80%和20%。
當(dāng)前協(xié)同推薦結(jié)果的評價很多,選擇平均絕對誤差MAE(mean absolute error)作為協(xié)同推薦結(jié)果的評價標(biāo)準(zhǔn)[13]。設(shè)測試集的期望評分為{p1,p2,p3,…,pn},評分的預(yù)測結(jié)果為{q1,q2,q3,…,qn},那么MAE的計算公式為
(14)
為了測試User-SF的優(yōu)越性,選擇當(dāng)前幾種經(jīng)典模型進(jìn)行對比測試,它們分別為:①基于Pearson的協(xié)同過濾模型(Pearson)、②評分均值的矩陣填充的協(xié)同過濾模型(Mean-CF)。
采用基User-SF、Pearson和Mean-CF對測試集進(jìn)行預(yù)測,并統(tǒng)計預(yù)測結(jié)果,不同鄰居數(shù)目條件下,它們的MAE變化曲線如圖1所示。對圖1的實驗結(jié)果進(jìn)行分析可以發(fā)現(xiàn),隨著鄰居數(shù)量的增加,用戶推薦結(jié)果的MAE值不斷下降,當(dāng)鄰居數(shù)量達(dá)到一定程度時,用戶推薦結(jié)果的MAE值變化比較平穩(wěn),而在相同鄰居數(shù)量的條件下,User-SF的MAE值最小,這表明User-SF的用戶推薦結(jié)果更優(yōu),有效提高了用戶的推薦精度,這主要是由于User-SF采用矩陣填充用戶項目評分集合得到用戶間相似度,并引入信任度因子對填充誤差進(jìn)行適當(dāng)調(diào)整,克服了對比模型存在的局限性,實驗結(jié)果驗證了User-SF的優(yōu)越性。
圖1 不同鄰居數(shù)目的MAE比較
從Movielens數(shù)據(jù)集隨機(jī)選擇100個用戶,將它們評分信息全部清除掉,統(tǒng)計該情況的MAE值,實驗結(jié)果如圖2所示。對圖2的實驗結(jié)果進(jìn)行對比和分析可以看出,相對于對比模型,User-SF解決了用戶推薦過程中的冷啟動難題,有效減少了用戶推薦誤差,有效改善了用戶推薦效果,驗證了User-SF具有良好的魯棒性。
圖2 冷啟動條件下的MAE比較
隨機(jī)選擇部分?jǐn)?shù)據(jù),并對它們進(jìn)行稀疏度處理,模擬數(shù)據(jù)的稀疏特性,并統(tǒng)計它們的MAE值,結(jié)果如圖3所示。從圖3的實驗結(jié)果可以發(fā)現(xiàn),數(shù)據(jù)的稀疏特性越嚴(yán)重,那么MAE值就越大,在相同數(shù)據(jù)的稀疏特性條件下,User-SF的MAE值相對更小,較好解決了數(shù)據(jù)的稀疏特性難題,提高了用戶推薦精度。
圖3 稀疏度條件下的MAE比較
為了分析協(xié)同推薦模型的通用性,選擇另一個標(biāo)準(zhǔn)數(shù)據(jù)集—Book-Crossing作為實驗對象,該數(shù)據(jù)MAE模型的包含了278 858個用戶的評分信息,不同模型的MAE值統(tǒng)計結(jié)果如圖4所示。對圖4的MAE值進(jìn)行對比可以知道,相對于對比模型,User-SF的MAE值更小,獲得更高的用戶推薦精度,實驗結(jié)果驗證User-SF具有更優(yōu)的通用性,適用范圍更加廣泛。
圖4 不同模型的Book-Crossing的MAE比較
在分析當(dāng)前用戶協(xié)同推薦模型的局限性基礎(chǔ)上,提出了基于用戶和相似性填充相融合的協(xié)同過濾推薦模型。首先引入部分填充算法避免出現(xiàn)用戶數(shù)據(jù)和信息的過度填充現(xiàn)象,解決均值和全部填充存在的不足以及數(shù)據(jù)稀疏特性難題,然后引入信任因子和相似性度權(quán)重調(diào)整方法得到更為準(zhǔn)確的用戶間相似度,采用標(biāo)準(zhǔn)數(shù)據(jù)集Movielens和Book-Crossing進(jìn)行了仿真測試。結(jié)果表明,該模型提高了用戶協(xié)同推薦的精度,獲得了更加理想的用戶協(xié)同推薦結(jié)果,具有更高的實際應(yīng)用價值。
[1]KeunhoChoi,YongmooSuh.Anewsimilarityfunctionforselectingneighborsforeachtargetitemincollaborativefiltering[J].KnowledgeBasedSystems,2013,37(1):146-153.
[2]KrzywickiA,WobckeW,KimYS,etal.Collaborativefilteringforpeople-to-peoplerecommendationinonlinedating:Dataanalysisandusertrial[J].InternationalJournalofHumanComputerStudies,2015,76(12):50-66.
[3]SHIFengxian,CHENEnhong.Combiningtheitems’discri-minabilitiesonuserinterestsforcollaborativefiltering[J].JournalofChineseComputerSystems,2012,33(7):1533-1536(inChinese).[施風(fēng)仙,陳恩紅.結(jié)合項目區(qū)分用戶興趣度的協(xié)同過濾算法[J].小型微型計算機(jī)系統(tǒng),2012,33(7):1533-1536.]
[4]YANGXingyao,YUJiong,TurgunIbrahim,etal.Collaborativefilteringrecommendationmodelbasedontrustmodelfilling[J].ComputerEngineering,2015,41(5):6-13(inChinese).[楊興耀,于炯,吐爾根·依布拉音,等.基于信任模型填充的協(xié)同過濾推薦模型[J].計算機(jī)工程,2015,41(5):6-13.]
[5]ZOUBenyou,LICuiping,TANLiwen,etal.Socialrecommendationsbasedonusertrustandtensorfactorization[J].JournalofSoftware,2014,25(12):2852-2864(inChinese).[鄒本友,李翠平,譚力文,等.基于用戶信任和張量分解的社會網(wǎng)絡(luò)推薦[J].軟件學(xué)報,2014,25(12):2852-2864.]
[6]XIAOXiaoli,QIANYali,LIDanjiang,etal.Clusteringre-commendationalgorithmbasedonuserinterestandsocialtrust[J].JournalofComputerApplications,2016,36(5):1273-1278(inChinese).[肖曉麗,錢婭麗,李旦江,等.基于用戶興趣和社交信任的聚類推薦算法[J].計算機(jī)應(yīng)用,2016,36(5):1273-1278.]
[7]RENKankan,QIANXuezhong.Researchonusersimilaritymeasuremethodincollaborativefilteringalgorithm[J].ComputerEngineering,2015,41(8):18-22(inChinese).[任看看,錢雪忠.協(xié)同過濾算法中的用戶相似性度量方法研究[J].計算機(jī)工程,2015,41(8):18-22.]
[8]YINHang,CHANGGuiran,WANGXingwei.EffectofclusteringalgorithminK-nearestneighborhoodbasedcollaborativefiltering[J].JournalofChineseComputerSystems,2013,34(4):806-809(inChinese).[尹航,常桂然,工興偉.采用聚類算法優(yōu)化的K近鄰協(xié)同過濾算法[J].小型微型計算機(jī)系統(tǒng),2013,34(4):806-809.]
[9]RONGHuigui,HUOShengxu,HUChunhua,etal.Usersimilarity-basedcollaborativefilteringrecommendationalgorithm[J].JournalonCommunications,2014,35(2):16-24(inChinese).[榮輝桂,火生旭,胡春華,等.基于用戶相似度的協(xié)同過濾推薦算法[J].通信學(xué)報,2014,35(2):16-24.]
[10]DINGShaoheng,JIDonghong,WANGLulu.Collaborativefilteringrecommendationalgorithmbasedonuserattributesandscores[J].ComputerEngineeringandDesign,2015,36(2):487-491(inChinese).[丁少衡,姬東鴻,王路路.基于用戶屬性和評分的協(xié)同過濾推薦算法[J].計算機(jī)工程與設(shè)計,2015,36(2):487-491.]
[11]WANGXingmao,ZHANGXingming,WUJiangxing.Collaborativefilteringrecommendationalgorithmbasedononejumptrustmodel[J].JournalonCommunications,2015,36(6):193-200(inChinese).[王興茂,張興明,鄔江興.基于一跳信任模型的協(xié)同過濾推薦算法[J].通信學(xué)報,2015,36(6):193-200.]
[12]ZHOULulu.Improvedrecommendationsystembasedonsocialtrustrelation[J].ComputerApplicationsandSoftware,2014,31(7):31-35(inChinese).[周璐璐.融合社會信任關(guān)系的改進(jìn)推薦系統(tǒng)[J].計算機(jī)應(yīng)用與軟件,2014,31(7):31-35.]
[13]DENGXing,DENGZhenrong,XULiang,etal.Optimizedcollaborativefilteringrecommendationalgorithm[J].ComputerEngineeringandDesign,2016,37(5):1259-1264(inChinese).[鄧星,鄧珍榮,許亮,等.優(yōu)化的協(xié)同過濾推薦算法[J].計算機(jī)工程與設(shè)計,2016,37(5):1259-1264.]