郭 磊,余文森,吳清壽
(1. 武夷學院數(shù)學與計算機學院,福建 武夷山 354300;2. 福建省認知計算與智能信息處理重點實驗室,福建 武夷山 354300)
互聯(lián)網(wǎng)的發(fā)展極大的提高了人們獲取信息、交互信息的效率,但也出現(xiàn)了嚴重的信息過載的問題。推薦算法為人們高效的獲取所需網(wǎng)絡信息提供了有效的解決方法而受到廣泛關注[1-3]。傳統(tǒng)的推薦技術主要包含基于內(nèi)容的推薦技術[4]和協(xié)同過濾推薦技術[5],但這些技術主要針對單個用戶行為做分析,解決數(shù)據(jù)稀疏和冷啟動的問題效果有限。
近年來,一些學者利用社交網(wǎng)絡中用戶之間的信任關系作為重要依據(jù)進行推薦[6],希望能解決推薦系統(tǒng)中數(shù)據(jù)稀疏的問題,也取得了一定的成果。Ma等人提出融入信任網(wǎng)絡結(jié)構(gòu)和用戶-項目評分的SoRec[7]; Jamal對SoRec進行補充,提出了SocialMF[8];郭磊、馬軍等在信任關系的基礎上,加上興趣偏好,并通過共享特征空間建模,提出了StrengthMF[9],趙海燕等人[10]定義了基于信任出入度的三種信任度量方法,并將其融入社交推薦模型中,取得了較好的推薦效果。但這些算法只是依據(jù)項目評分矩陣或者關注、被關注關系計算用戶信任,局限性明顯。
為了進一步提升推薦算法性能,部分學者研究通過社交網(wǎng)絡中的輔助信息,如用戶行為、標簽等分析用戶信任。如Tang[11]等將用戶決策過程中受好友影響的因素考慮其中,提出了著名的LOCABAL算法;余永紅等[12]研究不同領域的的社交信任關系與社交地位,提出了一種融合用戶社會地位信息的矩陣分解推薦算法;潘一騰等[13]在SocialMF算法的基礎上,提出了信任關系隱含相似度,并基于評分和社交關系,提出了SocialIT算法; jiang等[14]通過微博發(fā)文、轉(zhuǎn)發(fā)等行為中計算用戶愛好與影響力,并以此計算用戶信任關系,提出了contextMF推薦算法。然而,以上研究主要采用社交關系進行信任分析,由于社交關系和評分數(shù)據(jù)存在人為因素產(chǎn)生的噪聲,分析精度受一定影響,以上算法均未充分挖掘社交行為對信任分析的作用,而社交行為更能體現(xiàn)用戶真實信任關系,此外,以上算法均未考慮隨時間變化,用戶偏好改變的問題。
針對以上問題,本文提出了一種基于信任機制和社交行為的聯(lián)合矩陣分解社會化推薦算法(Joint Matrix Factorization social recommendation Algorithm Based on Trust Mechanism and Social Behavior, TMS-CMF),該算法的優(yōu)勢在于:
1)結(jié)合用戶網(wǎng)絡行為與社交關系,從顯示信任與隱式信任兩個維度構(gòu)建用戶社交信任度矩陣。其中顯示信任從局部和全局兩個方面對用戶信任度進行度量,隱式信任主要考慮用戶傳遞信任因素,該方法能夠有效緩解數(shù)據(jù)稀疏性問題。
2)為更準確反應用戶偏好隨時間變化,給出了結(jié)合社交行為的時間增強”用戶-項目”關注矩陣。通過項目關注度對項目關聯(lián)關系進行度量。
3)基于聯(lián)合矩陣分解提出了本文的基于信任機制和社交行為的聯(lián)合矩陣分解社會化推薦算法。
在推薦系統(tǒng)中包含有N個用戶組成的用戶集合U={u1,u2,u3,…,un}和M個項目組成的項目集合S={s1,s2,s3,…sn}。用戶對項目評分的數(shù)據(jù)矩陣用R=[rij]n×m表示,如果用戶u有對項目s進行評分,則rui表示對應評分值,rui=0則表示用戶u對項目s未評分。在社交網(wǎng)絡中,每個用戶均存在若干好友,用矩陣T=[tij]n×n表示用戶之間的社交好友關系,tuv表示用戶間的信任強度,若tuv=0則表示用戶u與用戶v沒有社交關系。
由于矩陣R具有嚴重的稀疏性,為了預測其中的缺失值,矩陣分解模型采用降維的方法把高階評分矩陣Rn×m分解為兩個低維矩陣P和Q,如式(1)所示
R≈PTQ
(1)
(2)
基于信任的推薦算法對解決冷啟動和數(shù)據(jù)稀疏問題有較好的效果,但信任值的計算是研究重點,本文結(jié)合社交行為等輔助信息,提出了多維度的信任計算方法。
局部信任具有非對稱、差異化的特點,現(xiàn)有算法大都通過對評分矩陣和社交關系挖掘信息關系,效果不佳,本文結(jié)合社交行為,計算局部信任度。
文獻[15]的研究認為,社交行為能反映用戶更本質(zhì)的信任關系,算法通過對回復、轉(zhuǎn)發(fā)行為的分析來計算用戶局部信任度。通常認為,同等條件下,用戶交互行為的頻率可以較客觀反映他們之間的信任度,因此,通過對一定時間范圍內(nèi)的回復頻率與轉(zhuǎn)發(fā)頻率對用戶局部信任度進行度量,計算公式如式(3)與(4)所示
(3)
(4)
(5)
由于用戶的交互行為隨時間變化較大,式(5)只能夠反應一定時間內(nèi)用戶信息關系,本文稱它為靜態(tài)局部信任度。
為避免部分用戶在一段時間內(nèi)網(wǎng)絡行為較少導致缺少數(shù)據(jù)而難以計算周期局部信任度的情況,本算法采用了一種基于用戶社會聯(lián)系公共好友數(shù)的局部信任度量算法,一般認為,用戶間公共好友數(shù)越高,信任度則越高,因此,計算公式如式(6)
(6)
綜合兩種局部信任度,得到最終局部信任度
(7)
由文獻[16]可知,全局信任度反映用戶在整個社交網(wǎng)絡中的影響力,受越多人信任的用戶,全局信任度就越高。本文利用社交網(wǎng)絡中節(jié)點出入度結(jié)構(gòu)特征定義全局信任度
(8)
其中Idi表示用戶ui的入度,Odi表示用戶ui的出度。
將局部信任度與全局信任度合并,就可以得到直接信任矩陣,如下
(9)
其中,參數(shù)α用于調(diào)整局部信任度和全局信任度對推薦算法的影響。
以上方法僅考慮直接信任的情況,得到的信任矩陣具有較大的稀疏性。考慮到信任存在傳遞性,間接信任的計算能夠有效緩解稀疏性的問題。
兩個用戶的信任傳遞過程中通常會同時存在多條路徑,大量研究采用計算二者之間的最短路徑信任傳遞值來計算其間接信任值,忽略了其它路徑帶來的影響。本文整合多條路徑傳遞特性,計算用戶間的隱式信任度,計算模型為
(10)
在式(10)中,Lu, v表示用戶ui到用戶uj信任傳遞路徑上的用戶集合;pai, n表示用戶ui到用戶un的傳遞路徑總長度;pbi, n表示ui到un各分支路徑長度。
該模型可以較全面計算間接信任,但對明星用戶或者故意刷關注的情況處理效果不佳,故引入權重懲罰來避免數(shù)值虛高的情況。本文使用信息熵來對用戶行為進行分析,確定用戶信任質(zhì)量,具體表達式為
(11)
其中,M(j)表示用戶uj所有歷史交互的用戶集合,p(m)表達式為
(12)
#|um|表示與用戶um有過歷史交互的用戶數(shù),#|U|表示所有用戶數(shù)。
通過信息熵對Tt(i,j)進行一定權重懲罰,就得到新的隱式信任度計算模型
(13)
綜合前兩節(jié)所得的顯示信任度與隱式信任度,可搭建信任矩陣,其形式為
(14)
通過采用隱式信任度對信任矩陣進行填補,可有效緩解信任矩陣稀疏性的問題。
“用戶-項目”矩陣R不能反映用戶隨時間推移,對項目的關注程度,也不能反映當前項目在所有項目中的關注度,因此,對關注矩陣進行時間增強有利于提升真實反映用戶偏好,對項目關注度評價有利于突出用戶感興趣程度較高的項目。
一般性認為,若用戶較長時間未對項目進行回復或者轉(zhuǎn)發(fā),則認為用戶對項目的關注程度下降。令tij為用戶ui對項目sj最后一次交互發(fā)生時間,ti,max和ti,min分別是用戶ui在時間范圍[ts,te]中的最大值和最小值。定義用戶對項目偏好系數(shù)
(15)
利用偏好系數(shù)Wt對關注矩陣R進行增強,如下
RT=R·Wt
(16)
其中,·是Hadamard內(nèi)積。
項目關注度主要是評價某項目在所有項目中的關注程度,項目關注程度越高,說明用戶對該項目感興趣的程度越大。根據(jù)文獻[17]的研究表明,項目關注度與瀏覽過該項目的用戶數(shù)量相關,依此定義項目關注度
(17)
其中,|Nq|表示有對項目q評分的用戶數(shù),V表示所有項目的集合。
根據(jù)用戶社交行為計算得到用戶信任度,通過時間增強對用戶偏好情況進行修正,通過項目關注度從全局角度對項目進行修正,提出了基于信任機制和社交行為的聯(lián)合矩陣分解社會化推薦算法(TMS-CMF)。首先對時間增強修正過的關注矩陣RT進行矩陣分解,得到用戶隱含特征矩陣P={p1,p2,p3,…,pn}和項目隱含特征矩陣Q={q1,q2,q3,…,qn},通過最小化損失函數(shù)得到式(13)
(18)
對社交信任矩陣Tf進行分解,可以得到信任者特征矩陣V={v1,v2,v3,…,vn}和被信任者特征矩陣Z={z1,z2,z3,…,zn},該模型如式所示
(19)
綜上,得到TMS-CMF推薦算法的數(shù)學模型
f(P,V,Q,Z)=fs(P,Q)+βft(V,Z)+
(20)
其中β是信任因子,取值[0, 1],λr是正則化參數(shù)。采用隨機梯度下降法優(yōu)化式(15)可得最優(yōu)解。
為了驗證本文提出的TMS-CMF算法的性能,采用去哪兒網(wǎng)數(shù)據(jù)集進行測試,設計了3組實驗,與4種具有代表性的社會化推薦算法從不同角度進行對比分析。
實驗使用Python爬蟲程序從知乎抓取2018年12月到2019年12月數(shù)據(jù),包含ID、帖子列表、評論信息、發(fā)帖時間等。用戶和項目采用“關注”關系進行連接,用戶之間相互關注則認為他們是好友關系,轉(zhuǎn)發(fā)、點贊等行為表示存在信任關系。其中去除了關注項目數(shù)量小于5的用戶,具體如表1 所示。
表1 知乎數(shù)據(jù)集統(tǒng)計情況
為了比較本文提出的TMS-CMF算法的效果,選取了4種算法進行比較。
SocialMF[8]:利用直接社交關系對用戶特征矩陣進行優(yōu)化,綜合好友信息與信任機制。
ContextMF[14]:綜合社交關系與用戶偏好的推薦方法。
TrustMF[18]:將用戶映射為信任者與被信任者兩個特征。對社交矩陣與評分矩陣進行分解。
SRANS[19]:結(jié)合社交信息構(gòu)建自適應鄰居集進行預測與推薦。
實驗采用5-折交叉驗證法,將以上2種數(shù)據(jù)集隨機分為20次,每次使用其中80%為訓練集,剩下20%為測試集,將20次評價結(jié)果取平均值做為最終評價數(shù)據(jù)。
為驗證TMS-CMF算法的有效性,本文進行了四類實驗,第一類實驗主要驗證參數(shù)α的有效性,第二類實驗驗證在不同特征向量維度下算法的推薦效果,第三類為在不同比例訓練集下的推薦精度,第四類為Top-K推薦能力測試。
為了評價算法性能,本文采用均方根誤差(root mean squared error, RMSE)和平均絕對誤差(mean absolute error, MAE)作為度量標準,它是針對評分預測常用的度量標準之一,計算公式如下
(21)
(22)
其中N是測試集評分項的總個數(shù),Ri, j表示真實評分值,i, j是預測評分值。
本文采用Precision@K作為度量標準對算法推薦能力進行評價,該指標廣泛應用于Top-K指標的實驗比較,其反應在所有預測為正的樣本中真實為正的樣本的概率,可以從推薦精確率角度評價推薦結(jié)果與真實結(jié)果差異。定義如下
(23)
其中Lu(K)模型預測用戶的K維項目推薦結(jié)果的集合,L′u(K)是真實的用戶K維推薦結(jié)果集合。
5.4. 1 參數(shù)設置的影響
在TMS-CMF算法中,參數(shù)β控制了信任關系的影響程度。β=0則算法不依賴信任關系計算,僅考慮項目關注度,β→1則算法高度依賴信任關系進行推薦,不考慮項目關注度。對k=10, 80%測試數(shù)據(jù)集測試參數(shù)β對算法性能影響,具體實驗如圖1所示。
圖1 參數(shù)β影響
5.4. 2 不同特征向量維度下的實驗分析
實驗抽取“用戶-項目”關注矩陣中的80%作為訓練集, 20%作為測試集,分別設置潛在特征維度k=10和k=20,實驗過程獨立重復5次,取平均值為最終結(jié)果。實驗參數(shù)設置如表2所示。
表2 參數(shù)設置值
實驗結(jié)果表3所示。
表3 維度分別為10和20的實驗結(jié)果
實驗表明,本文的TMS-CMF算法與其四個算法相比較,在RMSE值和MAE值上都有一定的提升,說明在社交信息的基礎上融合社交行為可以進一步提升推薦算法的預測精度。
5.4. 3 不同比例訓練集度的實驗分析
為測試不同比例訓練集下的算法效果,將訓練集比例設置為20%到80%,圖2給出了在k=10的時候的實驗結(jié)果。
圖2 不同評分稀疏度對比
圖2可知,測試集中TMS-CMF的RMSE誤差明顯小于其算法,尤其是在矩陣非常稀疏的情況下,實驗表明TMS-CMF算法能夠通過社交行為判斷獲取不錯的推薦準確度,明顯優(yōu)于其它算法。
5.4. 4 Top-K推薦實驗分析
實驗參數(shù)設置不變的情況下,在20%測試數(shù)據(jù)集上進行Top-K推薦能力測試,圖3是不同推薦列表維度K的Precision@K的指標變化。
圖3 Top-K推薦能力比較
由圖3可知, TMS-CMF算法在Top-K的推薦準確度上有明顯優(yōu)勢。
通過以上三個實驗可知,結(jié)合社交行為的TMS-CMF算法在推薦精度和Top-K推薦能力方面比其四個算法由一定優(yōu)勢,其中SocialMF和ContextMF均通過社交關系和評分矩陣進行計算,實驗證明社交關系能夠有效提升推薦效果,而TrustMF對考慮了隱式的信任關系,對算法的稀疏性與推薦效果均有較好的改善;本算法對社交關系特征進行更深入挖掘,并對信任矩陣進行多維度糾正,進一步提升了推薦的效果
本文提出了一種結(jié)合社交行為與項目關注度的聯(lián)合矩陣分解社會化推薦算法,通過矩陣分解模型對信任數(shù)據(jù)進行分解計算特征模型,在此基礎上,結(jié)合用戶社交行為,綜合顯示信任度與隱式信任度,構(gòu)建用戶信任矩陣;通過對項目關注度的計算,得到基于信任機制和社交行為的聯(lián)合矩陣分解社會化推薦模型。實驗結(jié)果表明,本文算法在推薦精度、Top-K推薦能力等明顯優(yōu)于其算法,在后續(xù)的工作中,將繼續(xù)研究如何把標簽、地理位置等情景信息融合本文模型,以期進一步提高推薦算法準確度。