周 雙,賓 晟,孫更新
(青島大學(xué)數(shù)據(jù)科學(xué)與軟件工程學(xué)院,山東 青島 266071)
隨著互聯(lián)網(wǎng)上的信息呈指數(shù)型增長(zhǎng),推薦系統(tǒng)等信息過(guò)濾技術(shù)成為研究人員們的研究熱點(diǎn)。推薦系統(tǒng)就是根據(jù)用戶的興趣偏好、需求信息、行為信息等,將用戶可能感興趣而又沒(méi)有獲取過(guò)的物品或信息推薦給用戶[1-3]。相關(guān)的推薦技術(shù)在信息檢索、機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘等研究領(lǐng)域得到了廣泛的研究。由于它巨大的商業(yè)價(jià)值,推薦系統(tǒng)也已成功應(yīng)用于多個(gè)行業(yè),如淘寶的商品推薦,網(wǎng)易云的音樂(lè)推薦,Netflix的電影推薦等。
協(xié)同過(guò)濾推薦[4-6]是目前應(yīng)用比較廣泛的一種推薦方法,基于矩陣分解的協(xié)同過(guò)濾算法因其在Netflix Prize比賽上表現(xiàn)優(yōu)異而受到學(xué)術(shù)界的廣泛關(guān)注。傳統(tǒng)的矩陣分解推薦方法是將用戶商品評(píng)分矩陣分解成兩個(gè)低維的用戶矩陣和商品矩陣,并通過(guò)用戶、商品向量間的內(nèi)積來(lái)反映用戶商品之間的關(guān)聯(lián)性。
盡管推薦系統(tǒng)已在一些商業(yè)領(lǐng)域被廣泛應(yīng)用,但傳統(tǒng)的推薦系統(tǒng)往往忽略了用戶之間的社交關(guān)系。而在現(xiàn)實(shí)世界中,人們的喜好很容易受到其信任的朋友的影響。因此,純粹挖掘用戶項(xiàng)目評(píng)分矩陣的傳統(tǒng)推薦系統(tǒng)不能為用戶提供準(zhǔn)確的推薦。因此,社會(huì)化推薦系統(tǒng)引起了更為廣泛的關(guān)注[7-8]。
Li[9]等人將用戶的傳播和奇異值分解結(jié)合到推薦算法中,顯著地提高了推薦的質(zhì)量。Deng[10]等人通過(guò)將社交網(wǎng)絡(luò)和用戶—商品二部圖融合為耦合網(wǎng)絡(luò),并在此基礎(chǔ)上提出了一種基于物質(zhì)擴(kuò)散動(dòng)力過(guò)程的推薦算法,該算法將社交網(wǎng)絡(luò)的朋友信息和用戶選擇商品的信息進(jìn)行融合。郭蘭杰[11]等人利用朋友信息填充評(píng)分矩陣的信息,提出了融合社交網(wǎng)絡(luò)信息的協(xié)同過(guò)濾推薦算法。胡惠成[12]等人提出一種融合隱式信任關(guān)系的推薦算法,通過(guò)融合皮爾遜相關(guān)系數(shù)和信任因子,計(jì)算用戶間的隱式信任關(guān)系,然后將隱式信任數(shù)據(jù)融入矩陣分解模型進(jìn)行評(píng)分預(yù)測(cè)。上述研究都在一定程度上提高了推薦結(jié)果的準(zhǔn)確度,但是大多數(shù)方法都只是基于某一種社交關(guān)系,用戶間存在多種社交關(guān)系,多種關(guān)系之間存在著一致性或者排斥性。單純只引入某一種社交關(guān)系,一定會(huì)對(duì)推薦準(zhǔn)確率有影響。因此,本文通過(guò)分解用戶商品評(píng)分矩陣,并對(duì)得到的用戶特征矩陣進(jìn)行重組,引入用戶間的多種一致性的關(guān)系,提出了一種融合用戶間多種關(guān)系的矩陣分解社會(huì)化推薦算法。
對(duì)于m個(gè)用戶和n個(gè)商品,假設(shè)用戶對(duì)商品的評(píng)分矩陣為Rm×n=[Ri,j]m×n,如圖1所示,其中元素Rij表示用戶ui對(duì)商品vj的評(píng)分。Rij∈[1,5],評(píng)分值為空表示用戶沒(méi)有對(duì)該商品打分。通常Rm×n中有許多元素為空,所以用戶商品評(píng)分矩陣是一個(gè)稀疏矩陣。
只通過(guò)分析用戶商品評(píng)分矩陣來(lái)對(duì)用戶進(jìn)行推薦,數(shù)據(jù)源單一,容易導(dǎo)致推薦結(jié)果不準(zhǔn)確。在現(xiàn)實(shí)世界中,用戶的喜好很容易受到其信任的朋友的影響。如果一個(gè)用戶對(duì)某一個(gè)商品的評(píng)分比較高,那么信任他的用戶購(gòu)買這個(gè)商品的可能性會(huì)比較大。因而,引入用戶之間的社交關(guān)系,可以提高推薦的準(zhǔn)確率。
社交網(wǎng)絡(luò)中,用戶間的社交關(guān)系可以矩陣S表示:S=[Si,j]m×m,Si,j的值為0或1,0表示用戶之間沒(méi)有社交關(guān)系,1表示用戶之間有社交關(guān)系,如圖2所示。
圖1 用戶商品評(píng)分矩陣Fig.1 The score matrix of user-object
圖2 用戶社交關(guān)系矩陣Fig.2 The matrix of user′s social relationship
為了方便研究,通過(guò)使用函數(shù)f(x)=1/Rmax把用戶對(duì)商品的評(píng)分映射到區(qū)間[0,1],其中,Rmax是用戶對(duì)商品的最大評(píng)分。傳統(tǒng)的基于矩陣分解模型的協(xié)同過(guò)濾方法利用簡(jiǎn)單的線性模型R=UTI近似擬合評(píng)分矩陣,容易造成預(yù)測(cè)評(píng)分過(guò)分偏離真實(shí)評(píng)分,使預(yù)測(cè)失真[14]。本文通過(guò)引用非線性logistic函數(shù)g(x)=1/(1+e-x),把預(yù)測(cè)的用戶對(duì)商品的評(píng)分映射在區(qū)間[0,1]內(nèi)。因此,可觀測(cè)評(píng)分的條件概率分布可定義為
(1)
(2)
(3)
經(jīng)過(guò)貝葉斯推理,可以得到U與V的聯(lián)合后驗(yàn)概率分布:
(4)
圖3 推薦算法模型圖Fig.3 Illustration of the recommendation algorithm
傳統(tǒng)的概率矩陣分解算法(Probabilistic Matrix Factorization,PMF)只是依據(jù)用戶對(duì)商品的評(píng)分信息進(jìn)行推薦,并沒(méi)有考慮用戶間的關(guān)系對(duì)推薦的影響,因此,本文提出一種基于多關(guān)系的矩陣分解算法(Probabilistic Matrix Factorization based on Multiple Social Relationship,PMFS)。本文采用矩陣特征重表示的方法,通過(guò)用戶的社交關(guān)系修正用戶特征向量,從而在矩陣分解過(guò)程中引入社交關(guān)系。如圖1所示,用戶u1沒(méi)有對(duì)v1進(jìn)行評(píng)分,但是u1的朋友u2和u4對(duì)v1的評(píng)分為4和5,受朋友關(guān)系的影響,u1購(gòu)買v1的可能性也很大。假設(shè)用戶之間只存在一種社交關(guān)系,根據(jù)用戶的社交關(guān)系矩陣,可觀測(cè)評(píng)分的條件概率分布可定義為
(5)
(6)
假設(shè)S與低維矩陣U和V無(wú)關(guān),則式(6)可以改為
(7)
預(yù)測(cè)用戶對(duì)某一商品的評(píng)分不僅需要用戶對(duì)商品的歷史評(píng)分?jǐn)?shù)據(jù),還要考慮用戶社交關(guān)系對(duì)推薦結(jié)果的影響,綜合這兩項(xiàng)因素,可觀測(cè)評(píng)分的條件概率分布可定義為
(8)
其中α為可調(diào)節(jié)參數(shù),α∈[0,1],用于調(diào)節(jié)用戶歷史評(píng)分?jǐn)?shù)據(jù)和社交關(guān)系對(duì)推薦結(jié)果的影響比重。PMFS1算法推薦模型如圖3c所示。α=1,則融合一種用戶關(guān)系的矩陣分解算法(PMFS1)退化為傳統(tǒng)的矩陣分解算法(PMF)。當(dāng)α=0時(shí),用戶評(píng)分矩陣所占比重為0。此時(shí),PMFS算法退化為基于信任的推薦算法(Trust-aware Recommendation, TR),該算法只考慮了用戶之間的關(guān)系,并沒(méi)有考慮用戶的歷史評(píng)分信息對(duì)推薦的影響,TR算法的推薦模型圖如圖3b。
對(duì)U、V的后驗(yàn)分布取對(duì)數(shù)可得:
(9)
其中,C是一個(gè)不依賴于超參數(shù)的常數(shù)。
最大化的后驗(yàn)分布函數(shù)等價(jià)于最小化的目標(biāo)函數(shù):
(10)
(11)
采用梯度下降算法對(duì)目標(biāo)函數(shù)進(jìn)行求解:
(12)
(13)
為了評(píng)估本文所提的算法性能,本文采用了推薦系統(tǒng)常用的兩個(gè)數(shù)據(jù)集:Epinions和FilmTrust。Epinions數(shù)據(jù)是從評(píng)價(jià)網(wǎng)站Epinions上獲取的。Epinions提供了各種用戶對(duì)商品的評(píng)分信息,同時(shí),用戶能夠添加他的朋友用戶來(lái)構(gòu)建社交網(wǎng)絡(luò)。FilmTrust數(shù)據(jù)集是從FilmTrust網(wǎng)站上爬取出來(lái)的數(shù)據(jù)。FilmTrust是一個(gè)電影推薦網(wǎng)站,用戶根據(jù)自己的喜好對(duì)電影打分,同時(shí)構(gòu)建信任關(guān)系。Epinions數(shù)據(jù)集由40 163用戶組成,他們總共給139 738個(gè)不同的項(xiàng)目打分,總評(píng)分為664 823。Epinions同時(shí)也包含了487 182條信任關(guān)系。FilmTrust數(shù)據(jù)集由1 050用戶、2 071個(gè)不同的項(xiàng)目以及用戶給35 497個(gè)不同的項(xiàng)目的評(píng)分組成,F(xiàn)ilmTrust也包含了1 853條信任關(guān)系。
采用五折交叉驗(yàn)證來(lái)對(duì)推薦模型進(jìn)行訓(xùn)練與測(cè)試。把數(shù)據(jù)集中用戶對(duì)商品的評(píng)分?jǐn)?shù)據(jù)平均分成5等份,在每次實(shí)驗(yàn)中,隨機(jī)選取1組作為測(cè)試集,其余4組作為訓(xùn)練集。5次實(shí)驗(yàn)確保每一組都被測(cè)試,最終實(shí)驗(yàn)結(jié)果為5次實(shí)驗(yàn)結(jié)果的平均值。
為了衡量推薦結(jié)果的準(zhǔn)確度,本文采用了兩種評(píng)價(jià)指標(biāo):平均絕對(duì)誤差(Mean Absolute Error, MAE)和均方根誤差[16](Root Mean Squared Error, RMSE)。這兩種評(píng)價(jià)指標(biāo)均是通過(guò)計(jì)算預(yù)測(cè)評(píng)分與真實(shí)評(píng)分之間的誤差來(lái)衡量推薦算法的準(zhǔn)確度,他們的值越小,推薦準(zhǔn)確度越高。
假設(shè)rij是用戶i對(duì)商品j的真實(shí)評(píng)分,r′ij是用戶i對(duì)商品j的預(yù)測(cè)評(píng)分,EP表示測(cè)試集,那么MAE、RMSE的定義分別為
(14)
(15)
依據(jù)文獻(xiàn)中參數(shù)的設(shè)定規(guī)則,所有算法中用戶特征個(gè)數(shù)k=5,迭代次數(shù)為1 000次,λU=λV=0.001。參數(shù)α用于調(diào)節(jié)用戶評(píng)分矩陣和社交關(guān)系矩陣的比重,參數(shù)β用于調(diào)節(jié)不同的用戶關(guān)系所占的比重,α、β不同,推薦的結(jié)果也是不一樣的。采用仿真實(shí)驗(yàn)的方法確定α和β的取值。當(dāng)β=1時(shí),即只引入一種社交關(guān)系時(shí),當(dāng)α取不同的值,平均排序分MAE的值分別在Epinions和FilmTrust數(shù)據(jù)集上的變化如圖4所示。
圖4 參數(shù)α的影響Fig.4 The influence of α
由圖4可知,在Epinions數(shù)據(jù)集中,當(dāng)α=0.4時(shí),MAE的值最小,即PMFS1算法在α=0.4時(shí),推薦準(zhǔn)確率最高。同理,在FilmTrust數(shù)據(jù)集中,PMFS1算法在α=0.7時(shí),推薦準(zhǔn)確率最高。
用Ou、Ov分別表示用戶u和v評(píng)價(jià)過(guò)的商品集,用戶u和v評(píng)分的相同商品越多,那么表明他們可能有相同的興趣并且彼此互相影響,具體定義為
(16)
當(dāng)fuv>0.2,則代表用戶u和v興趣相似,設(shè)滿足這個(gè)條件的用戶之間的關(guān)系為r2關(guān)系。繼續(xù)加載r2關(guān)系,當(dāng)α、β取不同的值時(shí),平均排序分MAE值分別在Epinions和FilmTrust數(shù)據(jù)集上的變化如圖5所示。
圖5 參數(shù)α、β的影響Fig.5 The influence of α and β
由圖5可知,在Epinions數(shù)據(jù)集中,當(dāng)α=0.4,β=0.6時(shí),MAE的值最小,即PMFS2算法在α=0.4,β=0.6時(shí),推薦準(zhǔn)確率最高。同理可知,在FilmTrust數(shù)據(jù)集中,PMFS2算法在α=0.7,β=0.5時(shí),推薦準(zhǔn)確率最高。
為了驗(yàn)證本文所提的算法的性能以及多種社交關(guān)系對(duì)推薦的影響,分別在Epinions和FilmTrust數(shù)據(jù)集上采用基于信任的推薦算法(TR)、傳統(tǒng)矩陣分解算法(PMF)以及SoReg算法(該算法使用了用戶的社交關(guān)系信息,并提出了一種具有社會(huì)正則化的矩陣分解框架[17])進(jìn)行比較。不同算法的實(shí)驗(yàn)結(jié)果如表1所示。
表1 不同算法實(shí)驗(yàn)結(jié)果
由表1可知,在Epinions和FilmTrust數(shù)據(jù)集中,TR算法的MAE值和RMSE值最高,這表明TR算法推薦準(zhǔn)確率最低。由此可見(jiàn),單純的依據(jù)用戶間關(guān)系進(jìn)行推薦是不準(zhǔn)確的。PMFS2算法的MAE值和RMSE值最低,引入兩種一致性的社交關(guān)系的PMFS2算法比傳統(tǒng)的矩陣分解算法和只引入一種用戶間關(guān)系的PMFS1算法準(zhǔn)確率要高。這表明引入用戶間的多種一致性的關(guān)系可以有效地提高推薦的準(zhǔn)確率,并且用戶之間的一致性關(guān)系越多,推薦準(zhǔn)確率越高。
本文分解用戶商品評(píng)分矩陣,通過(guò)多子網(wǎng)復(fù)合復(fù)雜網(wǎng)絡(luò),對(duì)用戶特征矩陣進(jìn)行重組,將用戶間的多種一致性的社交關(guān)系引入用戶特征矩陣。通過(guò)在真實(shí)數(shù)據(jù)集上的實(shí)驗(yàn)證明了本文所提的基于多關(guān)系的矩陣分解算法有效提高了推薦的準(zhǔn)確率。這說(shuō)明引入用戶間的多種一致性關(guān)系可以更好地為用戶做個(gè)性化推薦,且引入的用戶間關(guān)系越多,推薦效果越好。在今后的研究中,需要挖掘用戶間的間接社交關(guān)系,并進(jìn)一步探討這些社交關(guān)系對(duì)推薦結(jié)果的影響。