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