宋玉龍,馬文明,劉彤彤
(煙臺大學計算機與控制工程學院,山東煙臺 264005)
互聯網技術的快速發展和媒體渠道日趨多樣化使人們能夠更便捷地獲取信息,但同時也面臨信息過載的問題,用戶難以從海量數據中篩選出自己真正感興趣的部分[1]。推薦系統能夠實現對海量信息的處理與分析[2],得到最契合需求的信息,為用戶提供個性化的推薦結果[3-4]。傳統推薦系統的受眾往往是單個用戶,而目前以多個用戶組成的群體為單位的個性化推薦需求越來越多(如為一個旅游團的人推薦旅游景區或者給公司團隊建設的員工推薦娛樂場地[5]),因此,需要將傳統推薦系統從針對單個用戶拓展為適用于群組用戶[6],即實現群組推薦。
群組推薦基于對單個用戶偏好的擬合以及群組融合策略。概率矩陣分解(Probability Matrix Factorization,PMF)算法用于擬合單個用戶偏好,其在矩陣分解的基礎上加入了用戶和項目特征向量的先驗信息[7],但只考慮用戶與項目的評分數據[8],忽略了用戶之間的交互性,而用戶之間的交互關系往往會對用戶的偏好產生較大影響。在完成單個用戶的偏好擬合后,群組推薦中的另一個問題是群組成員的偏好融合,這要求群組推薦系統將群組內的單個成員偏好融合為可以表現所有組內成員的整個群組的偏好[9]。進行群組推薦時往往需要考慮公平性和用戶滿意度等問題,既要盡量滿足組內成員個人的偏好,又要體現群組的整體偏好,使推薦結果滿足整個群組的需求[10],然而現有群組融合策略也較少考慮組內成員間的交互關系。
為使融合結果更具群組特性,提高推薦結果的可靠性和可解釋性,本文提出一種融合用戶信任度的群組推薦算法,考慮群組內用戶交互關系進行群組融合。在獲取用戶信任度數據后,訓練得到組內每個成員的信任向量和被信任向量,并以被信任向量均值為基準向量,將每個成員的信任向量與其做點積運算得到對應權重,通過歸一化后的權重評分求和得到群組評分,以此生成推薦列表。
群組融合方法通常可分為偏好融合與推薦結果融合兩類,如圖1 所示。偏好融合是指在獲取組內所有成員偏好模型后,將成員偏好融合為群組偏好,利用群組偏好進行群組推薦[11]。推薦結果融合是指獲得組內所有成員的推薦結果或評分后,采用融合策略將所有推薦結果或評分合并為群組結果或者評分[12]進行群組推薦。

圖1 群組融合策略Fig.1 Group fusion strategy
推薦結果融合又可分為列表融合與評分融合。列表融合是指將每個用戶的推薦列表合并成一個群組推薦列表,評分融合則是指將組內用戶的評分融合成群組評分。在現有的融合策略中,均值策略與最小痛苦策略應用最為廣泛。
均值策略將群組內所有成員對某個項目的評分取平均值作為該群組對該項目的評分,如式(1)所示:

最小痛苦策略可規避組內有成員對某個項目特別厭惡,但該項目的平均分卻很高而進入推薦列表的情況。該策略取組內用戶對項目的評分的最小值作為該群組對項目的評分,如式(2)所示:

此外,研究者還提出了最受尊敬者策略、最大愉悅策略等融合策略,這些策略在不同的情境下會產生不同的效果。
在推薦系統中,協同過濾(Collaborative Filtering,CF)是一種被普遍使用的推薦技術,其利用興趣相投、喜好相似的群體的偏好來推薦用戶感興趣的項目與信息,通過個人所給予信息的反饋記錄實現過濾,從而幫助其他人篩選信息[13-15]。可以根據是否采用機器學習的建模思想將協同過濾技術劃分為基于內容和基于模型兩類。在基于模型的協同過濾技術中,矩陣分解算法以高準確率和良好可伸縮性受到廣泛關注[16]。
基于矩陣分解的協同過濾將用戶和項目的特征轉化為潛在向量,通過計算用戶或項目之間潛在向量的相關性進行推薦[17]。在使用矩陣分解算法[18]進行評分預測時,通常將用戶與項目表示為M×N的矩陣(其中M和N分別表示用戶和項目的數量),矩陣中的元素對應用戶對項目的評分。該矩陣通常很稀疏,故需要補全其中缺失的評分。矩陣分解算法將矩陣RM×N分解為2 個維度更低的矩陣的乘積(其中K表示潛在向量的維度),通過不斷學習迭代使逼近評分矩陣RM×N,同時得到未評分項目的預測評分。
SALAKHUTDINOV 于2007 年提出概率矩陣分解算法,其假設用戶潛在向量、項目潛在向量及兩者的內積均服從高斯分布,通過極大化它們的后驗概率來獲得更為準確的潛在向量。然而,PMF 算法忽略了用戶之間的交互性,而用戶之間的信任度等交互關系往往會對用戶的偏好產生較大影響。例如,用戶U 特別喜歡電影A,通常也會對其好友介紹電影A 并鼓勵他們觀看,而朋友也更愿意接受所信任的人的推薦[19]。由于傳統的推薦算法沒有考慮這樣的情況,因此不能充分利用大量社交信息。
本文提出的群組推薦模型框架如圖2 所示,具體流程如下:

圖2 群組推薦模型框架Fig.2 Framework of group recommendation model
1)獲取用戶信任度數據,使用經典概率矩陣分解算法補全信任度矩陣T,獲得用戶信任度特征向量L和R。
2)對信任度矩陣每一行使用SoftMax 進行歸一化,得到相似度矩陣F。
3)獲取用戶-項目評分數據,使用聯合相似度的概率矩陣分解算法進行補全,得到用戶對未評分項目的預測評分。
4)使用融合信任度的權重策略合并群組內所有成員的評分,獲取整個群組對項目的評分,并根據評分生成推薦列表。
本文使用Epinions 數據集,其中包含若干用戶間的信任關系與用戶對項目的評分。構建用戶相似度矩陣需要所有兩兩用戶間的信任關系。因此,首先使用概率矩陣分解算法對用戶信任度矩陣進行補全。
假設有M個用戶,以Tl,r表示用戶l對用戶r的信任度,構成一個M×M的信任度矩陣。將目標信任度矩陣分解為2 個維度更低的矩陣的乘積,其中K為潛在向量維度,L、R表示用戶信任度隱特征向量。
假設用戶信任度Tl,r由用戶l的潛在向量和用戶r的潛在向量的內積來決定,且該信任度服從高斯分布,即:

則觀察到的信任度矩陣的條件概率為:

其中:Il,r為指示函數,如果用戶l對用戶r存在信任數據,則為1,否則為0。
再假設用戶潛在特征向量都服從均值為0的高斯先驗分布,即:

其中:I表示一個對角陣。則L和R的后驗概率為:

兩邊取對數得到:

其中:C為無關常數。
通過最小化以下目標函數來最大化后驗概率:

然后使用隨機梯度下降更新Ll和Rr,直到收斂或達到最大迭代次數。
訓練完成后可獲得每個用戶的2 個特征向量L和R,將任意用戶l的左向量Ll與另一個用戶r的右向量Rr點乘可獲得l對r的信任度,即:

首先計算每對用戶之間的信任度矩陣T,Tl,r表示用戶l對用戶r的信任度。矩陣的第l行數據表示第l個用戶對其他用戶信任度。此時對每行數據進行SoftMax 操作,將每行信任度總和歸一,獲得相似度矩陣F:

其中,Fl,r表示用戶l與用戶r的相似度。
假設有M個用戶和N個項目,將每個用戶與項目的評分作為一個M×N矩陣RM×N,Ri,j表示用戶i對項目j的評分。再假設R服從于均值為,方差為的高斯分布,其概率分布為:

由相似度矩陣可知,用戶的特征向量與相似度矩陣F中其他用戶特征向量乘以權重求和后應相等,即:

其中:Fi,t表示用戶i與用戶t的相似度。則用戶特征矩陣U的高斯先驗分布如下:

再假設項目特征向量V也服從高斯分布,即:

則可得U和V的后驗概率分布為:

兩邊取對數可得:

通過最小化以下目標函數來最大化后驗概率:

使用梯度下降方式對Ui和Vj進行更新,直到收斂或達到最大迭代次數。
在群組融合方面,本文提出一種新的基于用戶交互的融合策略,這將再次利用之前獲得的用戶信任網絡,具體流程如下:
獲取所有用戶的信任度隱特征向量R,求得R的平均值Rmean,即:

將每個用戶的左向量L與Rmean點乘,獲得該用戶的權重,即:

在群組推薦時,將該群組中用戶的權重使用SoftMax 函數進行歸一化,即:

使用權重策略將組內用戶評分合并成群組評分:

其中:R(G,j)表示群組G對項目j的評分。
Epinions 數據集是從一個在線商品網站收集的多圖數據集,其中包含了多種關系,如評論者對另一個評論者的態度(信任/不信任),以及評論者對商品的評分,共包含664 824 條評分數據和487 183 條信任度數據。隨機將評分數據中的80%作為訓練集,其余的20%作為測試集。
本文同時還在FilmTrust 數據集上進行了驗證。FilmTrust 為2011 年從網站FilmTrust 完整抓取下來的數據集。該數據集由兩部分組成:用戶-物品評分和用戶間信任度關系,其中評分包含35 497 條數據,信任關系包含1 853 條數據。
由于數據集中沒有確切的群組及群組對項目的實際評分,本文實驗將對同一項目具有相同評分且不小于5 個用戶的單位作為一個群組,則該相同評分可看作群組對項目的實際評分,這將得到N個群組及每個群組對一個項目的確切評分。實驗使用以下2 種評估指標:
第1 個評估指標是均方根誤差(RMSE),計算公式如下:

在第2 個評估指標計算方式中,將群組評分為5 分的項目作為該群組的應推薦項目,隨機選取M-1 個項目與該項目一起預測群組評分并根據評分高低進行排序,計算應推薦項目在前K個項目中出現的頻率并作為命中率(HR@K)。

其中:Ranki表示項目i在該K個項目中的排序名次。
本次實驗選擇的M值為20。
3.3.1λU和λV的選擇
式(20)中的λU和λV也可以起到正則化系數的作用,相較于λF取值較小,通常在0.000 1 到0.1 之間。
圖3 展示了在其他參數不變的情況下,參數λU和λV取0.000 1 至0.01 時 對RMSE 和HR@5 的影響。可以看出,當λU和λV都取值在0.001 左右時,RMSE最小且HR@5 最大,即此時的實驗效果最好。因此,在后續實驗中將采用0.001 作 為λU和λV的取值。

圖3 參數λU和λV對推薦性能的影響Fig.3 Influence of parameters λU and λV to recommended performance
3.3.2λF的選擇
本文算法相較于經典PMF 算法改進之處在于后驗推導公式中加入了部分,當λF取0 時,將退化為普通PMF 算法。
圖4 展示了當λF取值在0.1 至20 之間時推薦結果的RMSE 和HR@5 變化情況。從中可以看出,隨著λF的增大,RMSE 和HR@5 均呈現一定的變化。RMSE 逐漸減小后慢慢開始回升,而HR@5 在逐漸提高后開始回落。在此后的對比實驗中,將采用10作為λF的取值。

圖4 不同λF取值下的RMSE 和HR@5Fig.4 RMSE and HR@5 with different λF
3.3.3 對比算法
在本文實驗中,選擇使用以下對比算法:
1)經典矩陣分解(Matrix Factorization,MF)算法。以下算法在協同過濾方法中“共現矩陣”的基礎上,加入了隱向量的概念,加強了模型處理稀疏矩陣的能力,具有更好的擴展性與靈活性。但是與協同過濾一樣,不方便加入用戶、項目和上下文相關特征,使得矩陣分解喪失了利用很多有效信息的機會。
2)經典PMF 算法。相比矩陣分解,PMF 算法可以更好地應對數據稀疏問題。
3)多層感知機(Multi-Layer Perceptron,MLP)算法。通過多層神經元擬合用戶對項目的評分。
4)NeuMF(Neural Matrix Factorization)算 法。該算法結合了廣義矩陣分解和多層感知機,可以同時提取低維和高維特征[20],但由于該模型也是基于協同過濾的思想構造的,因此并沒有引入更多其他類型的特征。
5)RippleNet 算法。該算法將知識圖譜作為推薦系統的輔助信息來源,利用實體關系三元組分析用戶的偏好傾向并推理出哪些新的實體項可能是該用戶可能喜歡的。其中知識圖譜指的是由類似(阿甘正傳,電影-導演,羅伯特·澤米吉斯)的事實三元組構成。模型輸入為:用戶u和用戶的歷史紀錄V{u},以及項目v;模型輸出:用戶點擊/選擇/喜歡該項目的概率,由于該算法旨在輸出用戶喜歡項目的概率,在本次實驗中改為回歸方法以計算評分[21]。
6)SIGR(Social Influence-based Group Recommender)算法。該算法將注意力機制和一種二分圖嵌入模型BGEM 作為基本塊。采用了注意力機制來學習每個用戶的社交影響,并將其應用于不同的群組中。為準確捕捉用戶社交影響,SIGR 設計了一種新的深度社交影響學習框架,來利用并整合用戶的全局/局部社交網絡結構信息[22]。
為控制各方法的數據集與輸出類型相同,將MLP、NeuMF 的輸出由原本的分類改為回歸并計算評分,每層神經元個數分別為64,32,16,8。
3.3.4 實驗結果及分析
圖5 展示了隨著迭代次數的增加,FPMF 方法與各對比算法使用均值融合策略時的RMSE 收斂情況。

圖5 各算法訓練時的RMSE 收斂情況Fig.5 RMSE convergence of each algorithm when training
在圖6 中,其他對比方法分別使用了均值策略和最小痛苦策略作為群組融合方法。以下為各方法的超參數調整達到最優后的RMSE 效果。

圖6 各算法超參數調整達到最優的RMSEFig.6 RMSE of each algorithm when the super parameters are optimal
表1 和表2 分別展示了Epinions 和FilmTrust 數據集下各方法的HR@K。可以看出,原本在RMSE效果明顯占優的MLP 方法和NeuMF 方法使用回歸方法計算評分后進行排序的HR@K不再具有優勢,而FPMF 方法在該指標下的性能高于其他方法。

表1 Epinions 數據集上不同K 值下的命中率Table 1 Hit rate with different K on Epinions dataset %
同時由表2 可以看出,FPMF 算法在FilmTrust 數據集上的表現略遜于在Epinions 上的表現,較為合理的解釋是FilmTrust 數據集中的用戶信任度關系相比于Epinions 較為稀疏,FPMF 算法精度較為依賴信任度數據,失去信任度數據后的算法性能開始向基礎PMF 靠攏。

表2 FilmTrust 數據集上不同K 值下的命中率Table 2 Hit rate with different K on FilmTrust dataset %
3.3.5 模型可解釋性
在Epinions 數據集的測試結果中,小組成員393 號受組內其他成員的信任。表3 所示數據為該組對不同項目的群組評分以及組內成員的個體評分,由于393號成員的被信任程度較高,因此令其在群組偏好融合過程中具有較高的權重,從表中也可以看出,群組評分結果與393 號成員個體評分具有較高的相關度,這進一步說明了模型的可解釋性。

表3 群組評分及單個組員評分案例Table 3 Example of ratings of group and individual member
針對當前群組推薦算法較少考慮成員交互關系的問題,本文提出融合用戶信任度的概率矩陣分解群組推薦算法。對概率矩陣分解算法進行改進,在后驗概率計算部分引入用戶間的信任度,充分挖掘單用戶的歷史偏好。同時,在群組融合部分引入用戶的信任度隱特征向量來計算評分權重,充分利用群組的社交關系特性。實驗結果表明,本文方法能夠有效提升群組推薦性能。下一步將在概率矩陣分解中融合信任度數據本身的置信程度以及用戶的評分習慣等因素,進一步提升本文算法的推薦性能。