洪明利,王 靖,賈彩燕
(1. 北京交通大學 計算機與信息技術學院, 北京 100044;2. 北京交通大學 交通數據分析與挖掘北京市重點實驗室, 北京 100044)
隨著互聯網技術的快速發展,網上的信息也日益豐富。人們難以從大量的信息中提取到有用的信息,這就是著名的信息過載現象。推薦系統[1]作為一種信息過濾技術,可以有效解決信息過載問題。但傳統的協同過濾推薦算法僅使用用戶-項目交互信息進行推薦,數據稀疏、分布不均勻等問題,常導致推薦效果不佳[2]。針對上述問題,人們通過引入社交關系來緩解數據稀疏性等問題,提升了推薦方法的性能。根據社交影響力現象,用戶在購買項目時會受到社交朋友的影響。因此,社交推薦[3-4]是近年來推薦領域的重要研究方向之一,一系列社交推薦模型[5-15]相繼被提出。
盡管社交推薦在近年取得比較大的成功,但是還存在許多待解決的問題。第一,如何有效提取和融合社交信息和用戶-項目交互信息?已有的社交推薦系統使用簡單相加、拼接或者多層感知機來融合用戶的歷史交互信息和社交信息,無法區分用戶購買是因為用戶本身的興趣、還是受到朋友的影響。第二,如何區分出用戶的購買動機?目前常見的神經網絡會學習用戶的嵌入表示,但是用戶的多種興趣糾纏在一起,影響推薦的結果。多成分圖卷積協同過濾(multi-component graph convolutional collaborative filtering, MCCF)[16]使用多個圖注意力來提取用戶的多個表示,有利于學習用戶對不同物品的可能喜好;但是MCCF無法區分多個通道表示之間的區別,缺乏可解釋性和真正的解耦能力。
因此,本文提出多通道圖注意力解耦社交推薦方法(multi-channel graph attention network with disentangling capability for social recommendation, MGAT-D)。該模型主要有三個部分:深度聚類模塊、多通道圖注意力聚合模塊和評分預測模塊。其中:深度聚類模塊用于對用戶和項目進行分組,并利用聚類結果將用戶社交圖和用戶-項目圖拆分成多個用戶社交子圖及用戶-項目子圖;聚類模塊的目的是將同一類項目劃分在一個用戶-項目子圖中,同一類用戶劃分在一個項目-用戶子圖中,從而完成用戶興趣的分組。多通道圖注意力聚合模塊融合不同子圖上的信息,其目的是挖掘用戶對不同類項目的興趣以及項目更適合哪一類人群;用戶的每個通道的嵌入表示指用戶對某類項目的興趣,從而完成用戶興趣的解耦表示。評分預測模塊使用多層感知機進行評分預測。在兩個基準數據集上的實驗結果表明:本文的方法優于其他同類社交推薦方法,包括GraphRec[13]、DANSER[14]等。
隨著社交平臺的快速發展,社交推薦在近些年越來越受到關注。基于矩陣分解的推薦模型在矩陣分解的基礎上融合社交信息以捕捉更具有表達性的用戶偏好向量,它的特點是靈活性高、推薦性能較好等。基于矩陣分解的推薦模型可以分為兩類:基于矩陣分解的協同分解法和基于矩陣分解的社交正則化法。協同分解法[6,17]同時分解用戶-項目評分矩陣和社交矩陣,兩者共享用戶特征向量。基于概率矩陣分解的社會推薦模型(social recommendation using probabilistic matrix factorization, SoRec)[6]是一種基于矩陣分解的協同分解法,該方法共享一個由用戶-項目評分矩陣和社會關系矩陣分解的共同的潛在用戶特征向量。基于矩陣分解的社交正則化法[8-9]分解用戶-項目評分矩陣,并且用社交矩陣限制用戶特征向量。基于社會正則化的推薦系統(recommender systems with social regularization, SoReg)[8]是一個帶社交正則化的矩陣分解模型,它利用社交矩陣對用戶特征向量進行正則化約束。
由于基于矩陣分解的任務只提取了線性信息,所以研究人員又提出了基于深度神經網絡(deep neural network, DNN)的非線性推薦方法。基于社會關系深度建模的推薦模型(deep modeling of social relations for recommendation, DeepSoR)[10]是一種基于深度神經網絡的社交推薦模型,該模型首先將社交關系輸入到圖嵌入模型node2vec[18]來預訓練用戶節點嵌入,然后使用深度神經網絡來提取社交關系矩陣中的用戶非線性特征向量,并將其集成到概率矩陣分解中進行評分預測。深度社交協同過濾模型(deep social collaborative filtering, DSCF)[11]是另一種基于深度神經網絡的社交推薦模型,它能提取高階的社交鄰居的信息,從而更好提取社交信息和用戶-項目交互信息。
圖神經網絡[19-20]是基于圖結構的廣義神經網絡,該網絡提供了一種從相鄰節點聚合信息以捕獲節點的網絡拓撲信息的方法。近年來,圖神經網絡被研究人員用在推薦領域[21-22]并取得很好的效果。新近提出的MCCF[16]在用戶物品交互圖上使用多個圖注意力來提取用戶和物品的多個表示。基于圖神經網絡的社交推薦模型(graph neural networks for social recommendation, GraphRec)[13]提出了一種基于圖注意力網絡的社交推薦系統,使用圖注意力網絡同時在用戶物品交互圖中捕獲交互信息、在社交圖中提取社交信息。雙圖注意力用于推薦系統中多方面社交影響的深度潛在表示(dual graph attention networks for deep latent representation of multifaceted social effects in recommender systems, DANSER)[14]是一種對偶圖注意力神經網絡,可以同時捕獲用戶和物品的社交同質性和社會影響力。其中,社交同質性用鄰居的向量表示來聚合,社會影響力用鄰居的上下文感知偏好來聚合。社會推薦的神經影響擴散模型(neural influence diffusion model for social recommendation, DiffNet)[23]使用GCNs來捕捉用戶偏好在社交網絡中的社交擴散過程。但現有模型缺乏學習用戶購買動力的能力,不能對用戶對不同類商品的興趣及用戶興趣組進行端到端的建模。鑒于近年來興起的深度聚類方法(deep embedding clustering, DEC)[24-25]可以在學習表示向量的同時對數據進行分組。因此,將深度聚類引入圖神經網絡模型中,以提高模型學習用戶對不同類商品興趣等的能力,從而提高模型的解耦能力。
本節提出社交推薦問題的形式化定義和模型MGAT-D及模型參數的學習過程。
設有M個用戶和N個項目,令U={u1,u2,…,uM}和V={v1,v2,…,vN}分別表示用戶集合和項目集合。設用戶項目交互矩陣為R=[rui]M×N,其中rui表示用戶u給項目i的評分。設RI(u)表示用戶u評論的項目集合,RU(i)表示評論項目i的用戶集合。設用戶社交矩陣為S=[sij]M×M,sij=1表示用戶i與用戶j是朋友關系。SU(u)表示用戶u的社交鄰居。
通過項目的相似度來構造項目隱式矩陣T=[tij]N×N,當同時評論項目i和項目j的用戶數目大于閾值h=5時,設tij=1,否則為0。TI(i)表示項目i在項目隱式矩陣上的相鄰節點。
社會化推薦的任務可以形式化定義為:給定用戶u和項目i,基于用戶交互矩陣R、用戶社交矩陣S和項目隱式矩陣T來預測評分。
圖1表示模型MGAT-D的整體結構圖,其核心主要由三部分組成:深度聚類模塊、多通道圖注意力聚合模塊和評分預測模塊。深度聚類模塊利用聚類技術對用戶和項目進行分組,目的是將同一類項目劃分在一個用戶-項目子圖中,同一類用戶劃分在同一類項目-用戶子圖中,從而完成用戶興趣的分組。多通道圖注意力聚合模塊融合不同子圖上的信息,其目的是挖掘用戶對不同類項目的興趣以及找到項目更適合哪一類人群。以用戶為例,用戶每個通道的嵌入表示用戶對某類項目的興趣從而完成興趣的解耦表示。評分預測模塊將學習到的用戶表示向量和項目表示向量輸入多層感知機進行評分預測。
2.2.1 深度聚類模塊
嵌入表示:設P=[pi]D×M為用戶表示向量,Q=[qi]D×N為項目表示向量,其中D為表示向量的維度。P和Q均隨機初始化。
用于對用戶和項目進行分組,并利用聚類結果將用戶-項目圖拆分成K1個用戶-項目交互子圖和K2個項目-用戶交互子圖,以學習用戶和項目的特征分組、用戶對不同類項目的興趣。聚類模型的目的是將同一類項目劃分在一個用戶-項目子圖,將同一類用戶劃分在一個項目-用戶子圖。如圖1中紅色的項目屬于同一類,被劃分在一個用戶-項目子圖中,黑色的用戶為同類用戶被劃分到同一項目-用戶子圖中。訓練用戶和項目的嵌入表示P和Q,然后使用聚類算法將用戶和項目分別聚成K2和K1類。由于需要多次聚類,所以選用復雜度較低的K-means聚類算法[26]。

圖1 模型架構Fig.1 Model framework
設對M個用戶節點進行聚類的聚類損失為:
(1)
式中,cu代表用戶u被分配的聚類索引值,cu∈{1,2,…,K2},μcu代表用戶u歸屬的類對應索引值的聚類中心。
對N個項目節點進行聚類的聚類損失為:
(2)
式中,di代表項目i被分配的聚類索引值,di∈{1,2,…,K1},νdi代表項目i歸屬的類對應索引值的聚類中心。
2.2.2 多通道圖注意力聚合模塊
圖注意力網絡通過注意力機制來衡量相鄰節點的不同權重,使得模型能夠過濾出圖上的噪聲并關注重要的相鄰節點。 因此,使用了圖注意力模型來更好地提取用戶-項目交互圖、用戶社交圖和項目隱式圖的信息,從而使得社交影響和用戶-項目交互信息影響可以通過圖傳播到相鄰的節點。 多通道圖注意力聚合模塊的目的是挖掘用戶對不同類項目的興趣以及項目更適合哪一類人群。 以用戶為例,用戶每個通道的嵌入表示指用戶對某類項目的興趣從而完成興趣的解耦表示為了實現這個目標,設計了多通道線性變換和兩個聚合操作(即用戶聚合操作和項目聚合操作)來分別捕獲用戶和項目的特征表示。
多通道線性變換:
假設用戶購買項目是出于多種動機,所以提取用戶和項目在不同聚類上的特征表示,每個類都表示一個通道。 因此,首先分別為用戶和項目設計了K2和K1個線性變換。
對于用戶u,設他在第n個類的表示向量為:
(3)
式中,Wnu是神經網絡的權重,pu為初始的用戶向量。
對于項目i,設它在第m個類的表示向量為:
(4)
式中,Wmi是神經網絡的權重,qi為初始的項目向量。
在用戶聚合模型中使用了兩個圖注意力模型來挖掘不同圖上的信息。 第一個圖注意力模型的目的是挖掘子圖的嵌入表示。 第二個注意力模塊用來融合社交子圖和用戶-項目子圖從而獲得用戶一個通道的嵌入表示。 由于用戶-項目子圖可能信息稀疏,融合社交關系可以極大緩解這一問題。

(5)

(6)
式中,‖表示級聯。
基于圖注意力的社交信息聚合:關注用戶u和他的社交圖SU(u),然后使用圖注意力模型來聚合社交圖上的信息,得到用戶u在第m個通道下的社交空間用戶嵌入表示:
(7)

(8)

(9)

(10)

(11)
在項目聚合模型中,同樣使用了兩個圖注意力模型,其目的與用戶聚合模塊類似。 第一個圖注意力模型的目的是挖掘子圖的嵌入表示。第二個注意力模塊用來融合項目隱式圖和項目-用戶子圖從而獲得項目一個通道的嵌入表示。

(12)

(13)

(14)

(15)
(16)

(17)
最后將所有通道的項目嵌入表示連接起來當作項目的最終嵌入表示。項目的最終嵌入表示為:
(18)
2.2.3 評分預測模塊
將用戶的最終嵌入表示h和項目的最終嵌入表示z輸入多層神經網絡進行評分預測。 設
g1=[h‖z]
(19)
則有:
gl=σ(Wl·gl-1+bl)
(20)
r′ui=wT·gl
(21)
其中,l是隱藏層的層數(l=2,3,…),W和b表示權重和偏置,r′ui是用戶u對項目i的預測評分。
2.2.4 模型訓練
為了評估模型的效果,需要指定目標函數來進行優化。 損失函數衡量的是預測值與真實值之間的差異,即
(22)
式中,O是觀察到的評分數據集合,|O|代表集合O的數量,rui是用戶u在項目i上的真實評分。
深度聚類的損失包含兩部分,分別是用戶的聚類損失和項目的聚類損失,目標函數為:
L2=Lucls+Licls
(23)
在模型訓練過程中,采用交替訓練法,交替優化L1和L2。因此,本方法是一種帶有聚類損失和預測損失指導的深度聚類模型。由于聚類過程的引入,可以對用戶和項目進行分組聚類,用戶可以同時聚合不同類的項目信息得到多個通道的用戶信息,使得模型具有一定的解耦能力。
3.1.1 數據集
使用兩個包含社交關系的推薦數據集Ciao和Epinions來測試不同算法的性能。Ciao(www.ciao.co.uk)是一個項目評價網站,Ciao數據集包含兩部分信息:用戶與項目的交互信息(評分1~5分),以及用戶之間的直接信任關系。Epinions(www.epinions.com)是一個包含信任關系的消費者評論網站,用戶可以在網站上給項目打分。Epinions數據集包含兩部分信息:用戶與項目的交互信息(評分1~5分),以及用戶之間的直接信任關系。兩個數據集的統計信息顯示在表1中。

表1 實驗數據集統計信息
對于每個數據集,隨機選擇80%的評分數據作為訓練集,10%當作驗證集,10%當作測試集。將每個實驗重復10次并取其平均值作為模型的最終結果參與評價。
3.1.2 評估指標
使用兩個常用的評估指標:平均絕對誤差(mean absolute error, MAE)和均方根誤差(root mean squared error, RMSE)來衡量評分預測的準確性。
(24)
(25)
其中,Rtest表示測試集,rui和r′ui分別是用戶u對項目i的真實評分和預測評分。MAE和RMSE值越小,推薦性能越好。
3.1.3 基線模型
為了衡量實驗精度,將MGAT-D模型與其他推薦模型進行比較。本文選擇的具有代表性的基線模型如下:
1) PMF[27]:概率矩陣分解模型,僅僅使用用戶與項目評分信息。該模型基于高斯分布對用戶和項目的潛在因素進行建模。
2) SoReg[8]:一種社交正則化模型,將社交網絡信息建模為正則化項來約束矩陣分解模型。
3) SocialMF[9]:一種經典的社會化推薦模型,該模型將基于社交網絡的信任傳播機制加入矩陣分解模型中。
4) DeepSoR[10]:一種基于深度神經網絡的社交推薦模型,使用深度神經網絡來捕獲社會關系并將其集成到概率矩陣分解模型中進行評分預測。
5) MCCF[16]:一種基于圖神經網絡的推薦模型,該模型使用了圖注意力神經網絡從用戶-項目交互圖中提取用戶和項目的多個潛在的購買動機。
6) DANSER[14]:一種基于對偶圖注意力網絡的社交推薦模型,它使用對偶圖注意力神經網絡來同時捕獲用戶和項目的社會同質性和社會影響力。
7) GraphRec[13]:一種基于圖注意力網絡的社交推薦模型,使用圖注意力網絡來捕獲用戶-項目圖中的交互信息和觀點信息。
3.1.4 參數設置
使用Pytorch作為實驗環境。為了優化目標函數,采用RMSprop作為優化器。設置K1=K2范圍為{1,2,3,4},嵌入向量維度d設為{8,16,32,64,128},學習率lr設為{0.005,0.001,0.000 5,0.000 1},每個節點聚合的節點數量F設為{15,30,45, 60},激活函數選用LeakyReLu函數,斜率設為0.2。設置提前停止法策略,如果驗證集上的RMSE連續5個輪次未下降,就停止模型的訓練。
表2展示MGAT-D模型和其他基線模型在兩個數據集上的推薦效果。通過對比實驗結果,可以得到以下結論:
1)同時使用社交矩陣和用戶-項目評分矩陣的模型優于僅使用用戶-項目評分矩陣的模型。基于矩陣分解的社交推薦模型SoReg和SocialMF性能優于僅使用用戶-項目評分矩陣的概率矩陣分解模型PMF。基于圖神經網絡的社交推薦方法DANSER和GraphRec性能優于基于圖神經網絡的協同過濾模型MCCF。這表明使用社交信息可以有效提高推薦系統的性能。

表2 實驗結果對比
2)基于深度神經網絡的社交推薦模型DeepSoR的性能優于基于矩陣分解的社交推薦模型。這表明推薦系統中神經網絡模型具有強學習能力。
3)基于圖神經網絡的模型MCCF、DANSER和GraphRec性能優于其他基線模型。這說明在推薦系統中圖神經網絡模型具有一定的優勢,其原因為:圖神經網絡可以學習到節點的信息,并按拓撲結構進行傳遞。
4)MGAT-D優于所有基準方法,與GraphRec方法相比,在Ciao和Epinions數據集上MAE分別降低了2.58%和3.06%,RMSE分別降低了2.26%和2.07%。這說明通過學習多通道的用戶和項目表示,可以提取到更加豐富的用戶和項目的信息,從而提高推薦算法的精度,也使得模型具有一定的解耦能力。
本節分析模型的組件和模型的超參數對模型性能的影響。
3.3.1 通道數目的影響
為了研究MGAT-D模型的解耦能力,將通道數量設為{1,2,3,4}。表3總結了實驗結果,其中:MGAT-D-3表示解耦為3個通道的模型;MGAT-D-1表示沒有解耦能力的基模型,其不使用深度聚類方法僅提取單通道的用戶和項目特征表示。表3中MGAT-D-2、MGAT-D-3和MGAT-D-4效果都比MGAT-D-1要好,從而可知提取多通道的用戶和項目的特征表示可以有效提高推薦效果。表3中MGAT-D-4效果并不優于MGAT-D-3,這是因為隨著通道數目增加,每個子圖上的節點數量隨之減少,反而會降低推薦的效果。

表3 不同通道數目的效果
3.3.2 社交圖和物品隱式圖對實驗的影響
下面,對比分析用戶社交圖和物品隱式圖對模型性能的影響。表4總結了實驗結果,其中MGAT-D-S表示去除用戶社交圖的模型,MGAT-D-T表示去除物品隱式圖的模型,MGAT-D-ST表示去除用戶社交圖和物品隱式圖的模型。
由表4可知:MGAT-D性能優于MGAT-D-S、MGAT-D-T和MGAT-D-ST,即使用用戶社交圖和物品隱式圖可以提高推薦的效果。

表4 社交圖和物品隱式圖對實驗的效果
3.3.3 其他超參數對實驗的影響
本小節對比分析模型中的一些超參數對模型性能的影響,包括學習率lr、向量維度d和每個節點聚合的節點數量F,它們在Ciao數據集上對模型的影響如圖2~4所示。
由圖2~4可見:學習率參數起著重要作用,如果學習率太高或者太低,模型都無法達到最優的效果,選擇學習率lr=1×10-3來優化模型。嵌入向量維度d對模型起著重要的作用,需要適當的嵌入向量維度。如果值太小,則模型缺乏表達性;而如果值太大,則嵌入向量會由于過于稀疏而使模型性能下降。每個節點聚合的節點數量F對模型起著重要的作用,隨著每個節點聚合的節點數量F的增加,MAE會有所下降但是RMSE反而上升,而且計算成本也隨之增加。因此,選擇每個節點聚合的節點數量F=30來平衡模型的復雜度和準確度。

(a) MAE

(b) RMAE圖2 參數d在Ciao數據集上對模型的影響Fig.2 Influence of parameter d on Ciao dataset

(a) MAE

(b) RMAE圖3 參數lr在Ciao數據集上對模型的影響Fig.3 Influence of parameter lr on Ciao dataset

(a) MAE

(b) RMAE圖4 參數F在Ciao數據集上對模型的影響Fig.4 Influence of parameter F on Ciao dataset
本文提出了一種具有解耦能力的多通道圖注意力社交推薦模型MGAT-D。該方法可以提取用戶和項目多通道的信息來捕獲更細粒度的用戶偏好從而顯著提高推薦的精度。具體地,使用深度聚類對用戶和項目進行分組,并利用聚類結果將用戶社交圖和用戶-項目圖拆分成多個用戶社交子圖及用戶-項目子圖,以學習用戶興趣分組及用戶對不同類別項目的興趣,從而區分用戶不同的購買動機。此外,為了更好地提取和融合用戶-項目交互圖和社交圖的信息,采取圖注意力網絡來提取用戶社交圖、用戶-項目交互圖、物品隱式圖上的信息并且基于注意力機制來融合不同圖上的信息,從而提取更豐富的用戶和項目嵌入表示。MGAT-D優于其他社交推薦算法,但是本文僅使用用戶-項目評分信息和用戶社交信息,未來將進一步將用戶和項目的屬性信息、用戶和項目的知識圖譜等信息進行融合,以進一步提高推薦算法的性能。