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