郎亞坤,王國中
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620)
(廣播電視人工智能應(yīng)用國家廣播電視總局重點(diǎn)實(shí)驗(yàn)室,上海 201620)
互聯(lián)網(wǎng)的快速發(fā)展,我們進(jìn)入了信息爆炸的時(shí)代,身邊充斥著大量以互聯(lián)網(wǎng)為媒介的服務(wù),如微博、微信、Facebook等為代表的社交媒體,用戶產(chǎn)生數(shù)據(jù)量呈幾何倍數(shù)增長,商品的出現(xiàn)呈現(xiàn)“長尾效應(yīng)[1]”,怎樣找到合適的服務(wù)及有效信息成為了擺在我們面前的難題.推薦系統(tǒng)作為一種解決互聯(lián)網(wǎng)“信息過載”的方法可以直接將用戶和物品聯(lián)系起來,在眾多個性化推薦算法中,協(xié)同過濾算法以其簡潔和高效性在學(xué)術(shù)和工業(yè)中得到了廣泛的應(yīng)用.
協(xié)同過濾算法可以細(xì)分為基于記憶的協(xié)同過濾算法和基于模型的協(xié)同過濾算法.基于記憶的協(xié)同過濾可以分為基于用戶的協(xié)同過濾和基于項(xiàng)目的協(xié)同過濾.基于用戶的協(xié)同過濾是根據(jù)用戶對所有產(chǎn)品的偏好,發(fā)現(xiàn)與當(dāng)前用戶偏好相似的用戶群組,選擇出與該用戶相似度最近的K個鄰居做出推薦.基于項(xiàng)目的協(xié)同過濾是計(jì)算物品之間的相似度,將類似的物品推薦給用戶.基于模型的協(xié)同過濾算法是以樣本的喜好信息訓(xùn)練模型,一般可以分為聚類模型、分類模型和矩陣分解模型[2-7],矩陣分解模型預(yù)先設(shè)定好目標(biāo)函數(shù),采用隨機(jī)梯度下降法來優(yōu)化預(yù)先設(shè)定的目標(biāo)函數(shù)從而得到最優(yōu)解,因?yàn)槠渫扑]精度高,具備堅(jiān)實(shí)的理論基礎(chǔ),所以能夠較好地應(yīng)用于實(shí)踐中.基于協(xié)同過濾推薦算法原理簡單,只需要用戶的行為信息,不依賴用戶和物品的其它信息,能夠有效的為用戶推薦出多樣性、新穎性的物品.但面臨著冷啟動、數(shù)據(jù)稀疏性、可擴(kuò)展性和用戶興趣漂移等問題.
社交網(wǎng)絡(luò)的發(fā)展,使得用戶之間的信任關(guān)系被用于推薦系統(tǒng)中,基于信任的推薦系統(tǒng)被廣泛的進(jìn)行研究,Ma[8]等人提出了一種社會正則化方法(SoRec)用于限制用戶的社會化關(guān)系,其核心是對信任矩陣和評分矩陣分解,共享用戶特征矩陣.Lyu等人[9]提出了一種社會信任集成方法(RSTE),將基本矩陣分解模型和基于信任的矩陣分解模型線性的組合在一起.Zhou等人[10]進(jìn)一步提出活躍用戶的特定向量接近其信任用戶的平均值,將其正則化后形成新的矩陣分解模型(SoReg).Jamail[11]在SoRec的基礎(chǔ)上構(gòu)建了一個新的模型(Social MF),重新制定了可信用戶對活躍用戶的特定向量的貢獻(xiàn).Yang等人[12]提出了一種混合模型(TrustMF),使得用戶對項(xiàng)目的評分受到信任該用戶的用戶和被該用戶信任用戶的影響.Tang等人[13]認(rèn)為社交信任應(yīng)該有多個維度,每個維度是交叉存在的.Wang等人[14]強(qiáng)調(diào)社交信任可以分模塊進(jìn)行處理.Guo等人[15]在SVD++算法的基礎(chǔ)上加入用戶的顯式信任信息,提出了TrustSVD算法,這也是目前使用較為廣泛的信任分解模型.Davoudi等人[16]提出的社會信任模型包含了用戶在社會關(guān)系中所處的地位,用戶間的信任相似性,并使用矩陣分解來對項(xiàng)目進(jìn)行評分預(yù)測.國內(nèi)的學(xué)者在TrustSVD算法的基礎(chǔ)上對顯式信任關(guān)系進(jìn)行研究,如李全[17]將用戶的信任關(guān)系劃分為更詳細(xì)的局部信任和全局信任,王茜[18]則將用戶的顯式信任與用戶的行為偏好聯(lián)系起來.Wang[19]等人利用用戶評分過程中隱式信任關(guān)系,在概率矩陣分解算法(PMF)的基礎(chǔ)上提出一種基于信任機(jī)制的推薦算法TM-PMF.田堯[23]等人則在TrustSVD算法的基礎(chǔ)上定義了用戶評分過程中的隱式信任關(guān)系,提出了一種基于雙信任機(jī)制的TrustSVD算法模型.
以上這些算法都證明了用戶間的信任可以提高推薦的準(zhǔn)確性,但是現(xiàn)有的信任信息非常稀疏,缺乏對用戶間的隱式信任關(guān)系的研究,計(jì)算用戶間的相似度時(shí)采用Pearson相關(guān)系數(shù)方法存在很大誤差,缺乏對相似度公式的改進(jìn),忽略了用戶本身的屬性對信任預(yù)測的影響.
針對以上問題,筆者提出的FITrustSVD算法優(yōu)勢在于:
1)在TrustSVD算法基礎(chǔ)上,綜合了用戶的評分,融入了用戶的相似度影響,相似度的隱式反饋能夠校正顯式信任帶來的誤差,限制信任用戶的范圍,因?yàn)椴⒉皇撬械男湃斡脩舳伎梢詭碛行У姆答?
2)改進(jìn)皮爾遜系數(shù)相似度計(jì)算公式,因?yàn)槠栠d相關(guān)系數(shù)僅考慮了用戶評分的偏差,忽略了用戶共同評分的項(xiàng)目數(shù).
3)加入用戶的信任偏置,因?yàn)橛械挠脩粼谏缃恢懈菀仔湃蝿e人,而有些用戶相對獨(dú)立,不容易相信別人.
通過實(shí)驗(yàn)表明,F(xiàn)ITrustSVD算法在均方根誤差(RMSE)和平均絕對誤差(MAE)上的推薦精度優(yōu)于其它社會化推薦算法.
(1)
(2)
公式中的μ表示全局均值,bu表示用戶u的偏置,bi表示物品的偏置.在現(xiàn)實(shí)中,用戶的評分?jǐn)?shù)據(jù)非常稀疏,所以SVD++算法是在SVD算法的基礎(chǔ)上融入用戶對物品的隱式行為,如公式(3)所示:
(3)
公式中的Iu表示用戶對物品的評分集合,yi表示用戶u對未知物品評分的隱含影響,算法的最終目標(biāo)是要使得真實(shí)值接近于預(yù)測值,所以定義損失函數(shù)為:
(4)
對特征矩陣中的P和Q中的元素不斷的迭代學(xué)習(xí),使得損失函數(shù)中相鄰兩次迭代的損失函數(shù)差值最小.為了防止過擬合,在原有的損失函數(shù)基礎(chǔ)上加上正則化因子.
(5)
TrustSVD算法是在SVD++算法的基礎(chǔ)上加入了用戶間顯式信任信息,定義信任矩陣T=[tu,v]MM,描述了用戶u對用戶v的信任程度,基本思想是某特定用戶的信任用戶將會影響其對物品的評分,這種影響存在于用戶間的信任矩陣中,因此,將用戶的信任矩陣T分解為信任者矩陣PMD和被信任者矩陣WMD,使得T≈PWT,因此,用戶u對用戶v的信任關(guān)系可以表示為:
(6)
為了使得真實(shí)信任矩陣和預(yù)測信任差值最小,定義損失函數(shù)使得矩陣P和W不斷的迭代學(xué)習(xí):
(7)
公式中Tu為用戶u信任用戶的集合.將用戶間信任的影響引入評分預(yù)測公式中,得到公式(8).
(8)
(9)
在公式(9)中,用戶的特征向量同時(shí)受到評分矩陣和信任矩陣的影響,因此,重新構(gòu)造了新的損失函數(shù)統(tǒng)一了評分矩陣和信任矩陣.
(10)
為了防止過擬合,需要在損失函數(shù)的基礎(chǔ)上加入正則化項(xiàng),但是GUO認(rèn)為公式中的懲罰因子應(yīng)該是不同的,他認(rèn)為評分較多的用戶和項(xiàng)目應(yīng)該使用較小的懲罰,而評分較少的用戶和項(xiàng)目應(yīng)該使用較大的懲罰,重新定義損失函數(shù)為:
(11)
TrustSVD算法是直接利用用戶給出的顯式信任,公開的信任數(shù)據(jù)集下的信任值為二值信任,即0和1,0表示不信任,1表示信任,這樣的信任關(guān)系過于粗糙并且數(shù)據(jù)稀疏,不能很好的反映用戶間的信任關(guān)系.
隱式信任通常是由用戶的共同評分或存在的交互關(guān)系推斷得出的,用戶之間的相似度[20]可以作為一種表示隱式信任的方式,本文將對Pearson相關(guān)系數(shù)進(jìn)行改進(jìn),并利用改進(jìn)后的Pearson相關(guān)系數(shù)進(jìn)行隱式信任推斷.
Pearson相關(guān)系數(shù)是用在協(xié)同過濾算法中的一個經(jīng)典的相似度計(jì)算方法,主要是衡量兩個數(shù)據(jù)集之間的線性關(guān)系,Pearson相關(guān)系數(shù)公式化定義為:
(12)
(13)
式(13)中Iu是用戶u的評分項(xiàng)目,Iv是用戶v的評分項(xiàng)目.
為了充分利用用戶的每一個評分,使得在計(jì)算用戶間的相似度時(shí)能同時(shí)考慮到用戶間的評分偏差和共同評分?jǐn)?shù),本文借助于武文琪[21]提出的相似度改進(jìn)模型作為新的相似度計(jì)算公式,公式被定義為:
(14)
式中的BC(u,v)是利用巴氏系數(shù)計(jì)算的相似度,loc(ru,i,rv,i)是局部相似度的計(jì)算.本文利用用戶間的相似度對用戶的隱式信任推斷,PapageLis[24]認(rèn)為當(dāng)用戶間的相似度大于某一給定的閾值且共同評分?jǐn)?shù)大于指定的數(shù)目時(shí),則將該相似度為用戶間的信任度,否則,用戶間信任為0,隱式信任定義如公式(15)所示:
(15)
公式中的Iu,v為用戶u和用戶v共同的評分集合,θS和θI分別為用戶的相似度和共同評分?jǐn)?shù)目的閾值.Sotos等人[22]在實(shí)驗(yàn)中證明了θS=0.707,θI=2時(shí),皮爾遜系數(shù)才有效.本文通過實(shí)驗(yàn)證明,在改進(jìn)的Pearson相關(guān)系數(shù)使用這些閾值能夠達(dá)到很好的效果.
在隱式信任下,將t(u,v)分解為信任者特征矩陣P和被信任者特征矩陣n,如公式(16)所示:
(16)
在公式(8)中,用戶的預(yù)測評分受到他所有信任用戶的影響,但是并不是所有的信任用戶都可以為其帶來有效的影響,兩用戶相互信任不能表示兩用戶有相同的興趣,因此,本文限制了信任用戶的范圍,當(dāng)且僅當(dāng)信任用戶間存在共同評分的項(xiàng)目時(shí),信任用戶才能影響用戶的預(yù)測評分.改進(jìn)后的預(yù)測評分如式(17)所示:
(17)
Ru是用戶間存在信任且共同評分的集合.
(18)
田堯[23]使用了一個權(quán)重系數(shù)α證明了當(dāng)顯式信任為0.8,隱式信任為0.2時(shí),推薦的準(zhǔn)確性能夠達(dá)到最優(yōu),但是忽略用戶的固有屬性及隱式反饋對評分預(yù)測的影響.在現(xiàn)有田堯結(jié)論的基礎(chǔ)上,結(jié)合用戶的隱式信任、改進(jìn)的用戶隱式反饋和改進(jìn)的信任預(yù)測,用戶的評分預(yù)測公式被重新定義為:
(19)
為了防止損失函數(shù)的過擬合,本文采用與TrustSVD算法相同的懲罰策略,即對用戶和物品做懲罰時(shí),對活躍的用戶和流行的物品懲罰較小,評分較少和不流行的物品懲罰較大,同樣適應(yīng)于冷啟動的用戶和物品.定義損失函數(shù)為:
(20)
(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
文章使用的是FilmTrust數(shù)據(jù)集,它是從FilmTrust網(wǎng)站抓取的小型數(shù)據(jù)集,它包含用戶的評分?jǐn)?shù)據(jù)和信任數(shù)據(jù),評分?jǐn)?shù)據(jù)集中的評分的范圍為[0.5,4],信任數(shù)據(jù)集中的1表示信任,若用戶沒有與其它用戶有社交,則該用戶間不存在信任關(guān)系.數(shù)據(jù)集的具體信息如表1所示.
表1 FilmTrust數(shù)據(jù)集信息
使用平均絕對誤差(MAE)和均方根誤差(RMSE)驗(yàn)證算法的準(zhǔn)確性.
(29)
(30)
式(28)和式(29)中的N為測試集中的評分?jǐn)?shù)量,MAE和RMSE的結(jié)果越小,表示推薦結(jié)果就越好.
采用了5折交叉驗(yàn)證用于訓(xùn)練和測試,選擇4折數(shù)據(jù)為訓(xùn)練集,1折數(shù)據(jù)為測試集,進(jìn)行5次交叉驗(yàn)證確保所有的數(shù)據(jù)均可被訓(xùn)練和測試,以5次測試結(jié)果的平均值作為最終的結(jié)果.對比RSTE、SocialReg、SocialRec、TrustSVD、SVD++、TM-PMF算法,從所有用戶和冷啟動用戶角度驗(yàn)證算法的準(zhǔn)確性.
表2是選取的對比算法,RSTE、SocialReg和SocialRec都同時(shí)利用了用戶的評分信息和用戶間的顯式信任信息,沒有挖掘用戶間的隱式信任.SVD++算法僅僅利用用戶的評分信息,沒有使用用戶間的信任信息.TrustSVD算法是在SVD++算法基礎(chǔ)上加入了用戶間的顯式信任信息.TM-PMF算法是在PMF算法的基礎(chǔ)上加入了用戶的顯式信任信息,結(jié)合用戶的評分信息挖掘用戶間的潛在信任信息.為了解釋FITrustSVD算法的效果,我們進(jìn)行3組實(shí)驗(yàn)對比:
表2 對比算法介紹
1)SVD++、TrustSVD算法的比較.
2)TrustSVD算法和RSTE、SocialReg、SocialRec算法的比較.
3)FITrustSVD算法和TM-PMF、TrustSVD算法的比較.
表3為實(shí)驗(yàn)結(jié)果對照表,通過對表中數(shù)據(jù)的分析,可以得到以下結(jié)論:
1)相比于僅僅使用評分的SVD++算法,融入了用戶間信任的TrustSVD算法在MAE和RMSE指標(biāo)上有顯著的降低,表明用戶間的顯式信任可以顯著的提高推薦精度.
2)在僅加入用戶顯式信任的算法中,TrustSVD算法推薦精度高于SocialReg、RSTE和SocialRec等社會化推薦算法,這是因?yàn)門rustSVD算法同時(shí)考慮了用戶間的顯式信任和用戶的歷史行為對物品評分的影響,所以該模型對缺失值的補(bǔ)全對整個矩陣的擾動較小,具有較高的推薦精度.
3)TM-PMF算法在PMF算法中挖掘用戶間的隱式信任,從表中可以看出,TM-PMF算法的推薦精度高于TrustSVD算法.這表明加入用戶間的隱式信任可以提高推薦精度.而文章提出的FITrustSVD算法是在TrustSVD算法的基礎(chǔ)進(jìn)行改進(jìn),同時(shí)考慮了用戶間的隱式信任、用戶間的信任偏置和信任范圍,修改了相似度公式的計(jì)算.表中數(shù)據(jù)表明了FITrustSVD算法的推薦精度明顯高于TM-PMF算法.
圖1和圖2是社會化算法在全部用戶和冷啟動用戶中的實(shí)驗(yàn)對比,從圖中可以看出,相比于其它社會化算法,F(xiàn)ITrustSVD算法在所有用戶和冷啟動用戶的場景中推薦效果都是最好的,特別是在冷啟動用戶中推薦效果更明顯,冷啟動用戶提高的比例大于全部用戶提高的比例,即使在數(shù)據(jù)稀疏的情況下,也會有比較好的實(shí)驗(yàn)結(jié)果,這表明融入隱式信任的FITrustSVD算法可以適用于復(fù)雜的推薦場景.
圖1 所有用戶的RMSE
圖2 冷啟動用戶的RMSE
圖3為全部用戶的社會化算法對比折線圖,在同樣的數(shù)據(jù)集下,取隱含特征維度為10,通過對比可以看出,RSTE、SocialReg、SocialRec和RSTE相差不大,但是加入隱式信任的TM-PMF算法和FITrustSVD算法進(jìn)一步提高了推薦精度,這證明了在推薦算法中引入用戶的隱式信任信息的有效性.FITrustSVD在加入隱式信任的同時(shí),改進(jìn)了相似度公式,使得用戶的顯式信任和隱式信任互為補(bǔ)充,在信任預(yù)測中加入用戶的偏置信息可以適應(yīng)更多的推薦場景,在推薦效果上明顯高于TM-PMF算法,特別是在用戶冷啟動條件下,用戶既沒有較多的評分?jǐn)?shù)據(jù),很少有值得信任的用戶,本身的數(shù)據(jù)非常稀疏,結(jié)合用戶的隱式信任和顯式信任,可以提高預(yù)測的準(zhǔn)確性.
圖3 交叉驗(yàn)證的社會化算法對比
文章在TrustSVD算法模型的基礎(chǔ)上加入了用戶的隱式信任,提出了融入用戶隱式信任的協(xié)同過濾推薦算法FITrustSVD,使得隱式信任和顯式信任互為補(bǔ)充,實(shí)驗(yàn)的結(jié)果表明,算法FITrustSVD優(yōu)于其它社會化推薦算法,但是該算法存在一個明顯的弊端,若用戶沒有任何物品評分?jǐn)?shù)據(jù)和用戶間的信任數(shù)據(jù),則無法為該用戶產(chǎn)生推薦.本文改進(jìn)了用戶的相似度公式并添加了用戶的偏置信息,利用權(quán)重與顯式信任進(jìn)行線性融合,缺乏對擬合形式的研究.筆者未來的工作是挖掘出用戶更多的隱式特征,并將這些隱式特征與用戶的顯式信任特征相結(jié)合,更好的在冷啟動用戶條件下做推薦,在特征融合公式上做出改進(jìn).