王 磊 熊于寧 李云鵬 劉媛媛
(西南財經大學經濟信息工程學院 成都 610074)
協同過濾(collaborative filtering,CF)是推薦系統中的主要方法之一[1].根據是否采用了機器學習模型,它可以分為:基于內存的協同過濾[2-3]和基于模型的協同過濾[4-9].相比于前者存在的依賴于相似度函數、內存占用度高、難以發現實體之間的非線性和隱含聯系等不足,基于模型的方法利用矩陣隱空間分解[4-5]、Markov鏈[6]、深度神經網絡[7-8]等模型學習實體的嵌入表示,能夠從實體交互操作及輔助信息中更有效地捕獲實體間的復雜聯系,是目前研究最廣泛的推薦方法.
近幾年,圖卷積神經網絡(graph convolutional neural network,GCN)的研究逐漸興起[9-14],由于具有在圖結構上學習嵌入表示的強大能力,它成為當前推薦系統中最熱門的研究方法[10-11,15-18].GCN利用譜圖理論定義了圖卷積操作,在拓撲圖上傳播和聚合鄰居節點的消息,具有同時利用實體特征和圖結構特征學習實體嵌入表示的優勢.實質上,它是將傳統卷積神經網絡(convolutional neural network,CNN)[17]優良的特征學習和表示能力擴展到非規則的圖數據上.
推薦場景中的實體及其交互關系可以很自然地用拓撲圖表示,因而非常適于采用GCN模型實現基于圖的推薦任務.近3年來,一些基于圖卷積神經網絡的推薦模型相繼被提出.例如,Berg等人[10]使用GCN作為編碼器在圖自編碼框架下實現了GCMC(graph convolutional matrix completion)推薦模型,它利用單個圖卷積層在“用戶-項目”二分圖上聚合1階鄰居的協同信號,實現了端到端的評分預測.Wang等人[15]提出了一種NGCF(neural graph collaborative filtering)模型,它利用GCN的消息傳遞機制堆疊多個圖卷積層,實現了二分圖上高階鄰居的協同信號隱式傳遞,最后合并所有層的節點嵌入進行推薦,一定程度彌補了GCMC模型只能利用1階協同信號的弱點.此外,一些學者從提升圖卷積操作效率[16-17]、利用注意力機制[19-20]、引入輔助信息[21]、提高擴展性[11,22]、克服冷啟動[23]等方面改進了基于GCN的推薦模型.這些研究均表明:得益于強大的特征表示學習能力,基于GCN的推薦模型能夠更好地在實體交互圖上捕獲隱含、非線性的協同信號,通常獲得了比傳統協同推薦模型更優的準確率.
盡管圖卷積神經網絡已被公認在推薦任務中具有顯著優勢,但已提出的基于GCN的推薦模型通常忽視了2個方面的問題,尚需進一步完善.
1)大多數模型的圖卷積層沒有充分利用高階鄰居的協同信號.例如,GCMC只利用了1階鄰居的信號更新節點嵌入.而文獻[24]的研究表明高階鄰居的協同信號同樣對學習節點嵌入非常重要.此后的多個模型在GCN框架下堆疊多個圖卷積層隱含地傳遞高階協同信號[15-16,18,23],但在他們的圖卷積層內部仍然只用1階鄰居更新節點嵌入.該方式不僅很難控制聚合高階信號時的強度,而且容易受到噪聲的影響(詳見1.3節的分析).2019年提出的GraphRec模型直接利用社交關系聚合了好友的協同信號[20],但該方法并沒有利用項目的高階信號且需要額外的輔助信息.
2)現有模型的圖卷積層在傳播和聚合協同信號時很少重視用戶的不同觀點對推薦結果的影響.在推薦場景中,評分代表了用戶的觀點.例如,若用戶對項目v1和v2分別給予的評分為2和5,則顯然他對v2表達了更“喜歡”的觀點,或者該項目更符合用戶的偏好.然而,現有的大多數模型在聚合1階協同信號時忽略了用戶觀點的差異[15-19,23].我們注意到,GCMC和文獻[25]提出的模型試圖在不同評分等級上分別聚合協同信號,但是他們的方法在合并多個等級的信號時仍然沒有考慮用戶觀點的差別.
針對上述不足,本文以推薦系統中的評分預測任務為對象,研究利用2階鄰居的協同信號和用戶觀點來提升圖卷積神經網絡在學習節點嵌入時的準確性,進而提出一種增強的基于圖卷積神經網絡的協同過濾推薦模型——EGCN-CF(enhanced graph convolutional neural network based collaborative filtering recommendation model).
本文的主要貢獻有3個方面:
1)提出一種直接從鄰接矩陣計算2階協同信號及其強度的方法,用于更新圖卷積層的節點嵌入;
2)給出一種簡便方法將用戶觀點融合入1階協同信號聚合過程,以便利用用戶偏好更準確地學習節點的嵌入表示;
3)結合1)2)方法,提出了一種增強的基于圖卷積神經網絡的協同推薦模型,并在多個推薦數據集上驗證了其性能優勢.
在推薦場景中,假設已知稀疏的評分矩陣R∈m×n,它的少量非0元素ru,v∈{1,2,…,T}代表用戶u對項目v的評分結果,共有T個等級;矩陣Xu∈m×du和Xv∈n×dv分別表示用戶和項目的實體特征,其中,m和n分別是用戶集和項目集的規模,du和dv分別是用戶特征向量和項目特征向量的維度.評分預測的目標是:建立預測模型對大量尚未評分的項目給予準確地評分,進而實現項目推薦.

基于圖卷積神經網絡的推薦模型利用消息傳遞的思想在二分圖上傳播和聚合協同信號,學習節點的嵌入表示并用于推薦預測[10,15-16,18,26].它們的模型結構通常由3個部分構成:輸入層、圖卷積層和預測層.
e0=Enc(x,Θin),
(1)

2)圖卷積層.又稱為“嵌入傳播層”,它利用二分圖的結構特征在圖上傳播和聚合鄰居節點的協同信號,實現節點的嵌入更新.其主要操作包括:協同信號構造和節點嵌入更新.
以用戶u對項目v的一次評分為例,該操作反映了用戶對項目的一定程度的偏好.因此,可以將此次操作傳播的1階協同信號構造為
su←v=f(eu,ev,pu,v,Θf),
(2)

嵌入更新操作在二分圖上匯集所有1階鄰居的協同信號,用于更新用戶u的嵌入表示:

(3)
其中,聚合函數g(·)可以采用均值、最大池化、LSTM網絡等方式實現[13,18].
類似地,當項目v獲得用戶u的評分,表明項目的品質與用戶偏好一定程度的相符.因此,可以利用用戶的協同信號對項目實體的嵌入進行更新,即
sv←u=f(ev,eu,pu,v,Θf),
(4)

(5)
這樣,圖卷積層利用1階協同信號在二分圖上實現了實體節點的嵌入表示的一次更新.



(6)
其中,預測函數h(·)通常采用雙線性解碼函數[10,25]或多層感知機網絡[5,20]實現;Θh代表其參數集合.
一方面,如1.2節所述,圖卷積層采用的協同信號聚合式(3)(5)中,只使用了來自直接交互的1階鄰居和自身的協同信號,忽略了卷積層內的高階信號.然而,根據協同過濾的基本思想[1],用戶行為或偏好還受到與之相似的其他用戶的影響,他們在二分圖上可視為相似的高階鄰居.因此,在圖卷積層聚合高階信號是非常有益的.近期,文獻[27]也利用隨機游走模型指出了高階信號對于優化節點嵌入的價值.
一些基于GCN的推薦模型雖然通過堆疊多個圖卷積層隱含地傳播了高階協同信號[15-16,18,23],但這種方式難以控制高階信號的強度,容易受到噪聲的干擾.例如,假設在二分圖上存在一條連通路徑u0→v1→u2→v3→u4,其中,用戶u4由于偶然原因評分了項目v3,盡管它與目標用戶u0的偏好并不相似,但這次評分操作仍將導致u4的協同信號隱含地沿著堆疊的4個圖卷積層逆向傳遞到u0,而不是被視為噪聲信號受到抑制或消除.
另一方面,在圖卷積層的聚合式(3)(5)中,所有的1階鄰居信號被同等對待,沒有考慮用戶觀點(即評分值)的差別.顯然,高評分項目的品味比低評分項目更能夠反映用戶的偏好[20,28],應該在信號聚合操作中起到更大的作用.
本節將針對基于GCN的推薦模型存在的如1.3節所述的缺陷,提出一種端到端的EGCN-CF模型.它通過在圖卷積層內引入2階協同信號和用戶觀點,更有效地利用協同信號學習節點的嵌入表示,最后利用多層的感知機網絡(multi-layer perceptron,MLP)實現對未知評分的預測.其基本結構如圖1所示,包括輸入層、增強的圖卷積層和預測層3個部分.
EGCN-CF模型的輸入層負責對用戶或項目的實體特征進行編碼,生成的低維嵌入向量作為圖卷積層的輸入.它采用的編碼函數為

(7)

值得注意的是,式(7)采用了直接對用戶或項目的原始實體特征進行編碼的方法,獲得它們的初始嵌入向量.相比于NGCF等模型采用的基于節點序號的獨熱編碼方法[15-16],該方法可以將語義更豐富的實體特征或輔助信息編碼后輸入到圖卷積層,更有利于準確地學習節點的嵌入表示;并且,由于只需要優化編碼矩陣,使得模型的優化參數更少.實驗部分將具體描述對實體特征進行編碼的細節.
同NGCF模型類似,本文模型通過堆疊L個圖卷積層實現節點嵌入表示的逐層精化.但我們針對現有模型的圖卷積層的缺陷,通過融合2階協同信號和用戶觀點進行了增強.本節以第l∈{1,2,…,L}圖卷積層為例介紹其主要操作.
2.2.1 構造的2階協同信號

如1.3節的討論,在圖卷積層中聚合高階協同信號有益于節點嵌入表示的學習.但是,本文模型只使用了所有高階鄰居中的2階鄰居的協同信號,主要原因有2點:1)根據Xu等人[27]的研究,連通路徑上高階鄰居的協同信號的強度隨著階數增加而迅速衰減,并且噪聲信號容易在路徑上積累,實際上該論斷也一定程度解釋了許多基于GCN的模型只堆疊了3或4個圖卷積層的原因[15-16];2)2階鄰居是與目標用戶(項目)有共同交互項目(用戶)的同質實體,按照三元閉包理論的解釋[29],2階鄰居相對于更高階鄰居而言,它們與目標實體的偏好更為相似,并且,與目標實體共同的交互實體越多,相似度越高.此外,第3節的實驗結果也驗證了增加同質的4階鄰居的協同信號不能明顯提高推薦模型的性能.

(8)




(9)

令El-1∈(m+n)×h是第l-1層所有嵌入向量組成的矩陣;Sl(2)∈(m+n)×h表示第l層所有節點匯集的2階協同信號矩陣,其行向量由或構成.根據譜圖理論知識[31],可以整理出2階協同信號矩陣Sl(2)的簡潔形式:

(10)


(11)

2.2.2 帶用戶觀點的1階協同信號
用戶對項目的評分不僅說明他們之間存在交互關系,更重要的是評分具體表達了用戶的觀點.例如,在電影推薦中,用5分、3分、1分表達了用戶的“非常喜歡”“一般喜歡”“不喜歡”3種不同的觀點.根據文獻[28]的解釋,獲得了正向觀點的高評分項目更能反映用戶的真實偏好.因此,在匯聚1階協同信號時融入用戶觀點,能夠更準確地學習用戶嵌入.
我們借鑒GCN的消息傳遞機制,給出一種帶用戶觀點的1階協同信號構造方法.它把匯聚到用戶ui的1階協同信號定義為
(12)

顯然,高評分項目的觀點系數取較大值,其傳遞的協同信號更多,反之亦然.因此,這種帶觀點的方式更合理地聚合了1階協同信號.

同樣,我們根據譜圖理論整理出帶觀點的1階協同信號的簡潔矩陣形式,即

(13)

2.2.3 節點的嵌入更新
我們匯集1階、2階協同信號以及節點前一層的嵌入,對第l層的節點嵌入向量進行更新,如

(14)

此后,EGCN-CF模型可以堆疊L個圖卷積層,按照式(14)實現嵌入表示的逐層精化,也即,依次獲得E1,E2,…,EL.

(15)
其中,W3∈2h×d′,W4∈d′×1是待學習的MLP權重矩陣;d′是MLP第1層(隱層)神經元的數量.
需要指出的是,相比于一些文獻采用的線性預測模型[10,15-16,18],本文采用非線性的MLP模型具有對節點嵌入向量之間復雜關系的更強的擬合能力,更適用于評分預測問題.
EGCN-CF模型是一種端到端的推薦模型.為了訓練其模型參數,我們給出一種基于均方誤差的優化目標函數:

(16)

此外,在模型訓練時還借鑒文獻[15]采用的節點dropout技術防止過擬合,其dropout率為η.
最后,我們采用Adam梯度下降優化器對式(16)進行優化[32],并采用小批量(minibatch)技術提高模型訓練效率.
在EGCN-CF模型的圖卷積層中,顯式地增加了對同質的2階鄰居的協同信號的聚合.從理論上講,它可以聚合更高階的協同信號.例如,在二分圖上同時聚合2階和4階的同質協同信號時,只需簡單地將式(11)替換為式(17)即可:

(17)
另外,在文獻[20]的推薦模型中,將社交網絡中好友的協同信號聚合到圖卷積層.社交好友相當于二分圖上具有高相似性的同質高階鄰居,聚合其協同信號顯然有利于學習用戶節點的嵌入表示.與之相比,本文模型通過矩陣運算對2階鄰居及其信號強度進行了合理的計算,無需額外的輔助信息.并且,當數據集中存在關于同質節點關系的輔助信息時,比如,社交關系矩陣Qu∈m×m,項目相似性矩陣Qv∈n×n,通過修改式(11)很容易把它們融入本文模型,如

(18)
其中,α是融合參數.
最后,EGCN-CF的3層結構與文獻[15]的NGCF模型有相似之處,但它們在輸入層、2階協同信號利用、用戶觀點結合、預測層設計等方面具有顯著差異.
為了驗證提出的EGCN-CF推薦模型在評分預測任務上的性能,我們在5個通用的推薦數據集上進行了實驗,并將它與主流的推薦模型進行性能對比.
表1概括了實驗用數據集的情況.其中,Flixster和Douban直接使用文獻[33]提供的預處理后的數據集;ML-100K,ML-1M,ML-10 M是來自于Movie-Lens網站的不同規模的電影推薦數據集(1)https://grouplens.org/datasets/movielens/.
在預處理階段,我們在二分圖上直接利用輔助信息和圖結構特征對用戶和項目的原始實體特征進行編碼.對于Flixster和Douban數據集,實體特征由3個部分連接獲得:節點度F1、評分特征F2、鄰接關系特征F3.其中,評分特征F2統計了用戶(或項目)給予(或獲得)的不同等級評分的比例,鄰接關系特征F3體現了同質節點之間的鄰接關系,本文將其設置為用Node2vec模型[34]在用戶或項目鄰接矩陣上生成的256維向量.對于MovieLens數據集,項目的實體特征由節點度F1、評分特征F2、語義特征F3三部分組成.其中,語義特征F3采用文獻[28]中的實驗方法,對電影類別、名稱、發行年編碼獲得,用戶的實體特征由節點度F1、評分特征F2、人口統計特征F3、交互項目的平均語義特征F4四部分組成.其中,人口統計特征F3是由年齡、性別、職業編碼的23維向量.表1最后2列給出了編碼后的用戶和項目的實體特征維度.

Table 1 Statistics of Experimental Datasets表1 實驗數據集統計
實驗中,我們選取4種主流推薦模型作為對比算法,包括:NeuCF[5],GCMC[10],GraphRec[20],NGCF[15].其中,NeuCF是近幾年提出的基于矩陣分解的協同推薦模型,它采用深度神經網絡代替嵌入向量的內積運算,實驗中我們采用式(16)替換其原優化目標,使之能夠適用于評分預測任務.其他3種模型都是目前主流的基于GCN的協同過濾推薦模型,其中,對于GraphRec模型,我們采用用戶的2階鄰居模擬其在MovieLens數據集上的社交關系;對于NGCF模型,我們也采用式(16)代替其原有的成對BPR(Bayesian personalized ranking)損失目標函數,以便進行評分預測.
我們用Tensorflow實現了本文的EGCN-CF模型,其主要參數配置為:節點嵌入維度h=64,圖卷積層的數量L=3,正則系數λ通過交叉驗證的方法在{0.01,0.05,0.1,0.5,1,5,10}范圍內選取,MLP的隱層參數d′=16;訓練時Adam優化器的學習速率設置為10-3,最大迭代次數為1 000次,每批訓練數據規模設置為1 024,節點dropout概率η=0.3.對比算法的參數基本按照原文設置.
另外,將數據集按0.8,0.1,0.1的比例劃分為訓練集、驗證集和測試集.在驗證集上實現模型參數的選取,并采用均方根誤差(root mean square error,RMSE)指標在測試集上評價各模型的預測誤差.
我們在各數據集上比較EGCN-CF模型與對比算法的性能,它們在測試集上預測時的均方根誤差如表2所示.這里,除GCMC的結果來自于文獻[10]外,其他結果都是3次重復實驗的平均值.

Table 2 Comparison of Prediction Errors (RMSE)of Different Recommendation Models表2 比較不同推薦模型的預測誤差(RMSE)
觀察表2的實驗結果,可以得出4個結論:
1)基于圖卷積神經網絡的4種推薦模型的預測誤差明顯優于基于矩陣分解的NeuCF模型.這說明受益于在拓撲圖上融合了節點的實體特征和圖結構特征,前者能夠更加準確地學習節點的嵌入表示,從而獲得更好的預測結果.
2)GCMC模型由于采用1個圖卷積層,只能聚合1階鄰居的協同信號,對節點嵌入的學習能力不足,因而它在4種基于GCN的推薦模型中表現最差,特別是在非常稀疏的Flixster數據集上.
3)GraphRec和NGCF模型都利用了高階協同信號,均取得了優于GCMC的預測結果.不同的是,GraphRec直接聚合社交好友的協同信號,他們相當于二分圖中的相似的高階鄰居;NGCF則通過堆疊多個圖卷積層隱式地傳播和聚合高階協同信號.這說明了聚合高階協同信號有助于提高推薦模型的性能.
4)本文的EGCN-CF模型在絕大部分數據集上均取得了最低的預測誤差,僅僅在Douban數據集上稍微高于GraphRec模型.并且,我們通過采用“A/B測試”進行顯著性檢驗,發現本文的EGCN-CF模型的實驗結果在大多數情況下以95%置信度顯著優于其他模型(僅在3種情況下無明顯優勢,包括:在Douban,ML-1M數據集上與GraphRec比較、在ML-1M數據集上與NGCF比較).本文模型的優異性能可以歸結于它在圖卷積層中增加了對更高階協同信號的利用和將用戶觀點引入信號聚合過程.與之相比,GraphRec只是從社交關系中直接獲取了用戶的高階協同信號,并未考慮項目的高階信號;NGCF模型并未在圖卷積層內部顯式地利用高階協同信號,也未考慮用戶觀點的影響.


Table 3 Comparison of Prediction Errors (RMSE)of Different Variant Models表3 比較不同變體模型的預測誤差(RMSE)
觀察表3的實驗結果,可以發現:
1)盡管EGCN-CF-a4模型增加了4階協同信號,但其取得的預測誤差與基本模型相當.這說明由于更高階的協同信號強度較弱且可能帶有噪聲,無助于明顯提高推薦模型的性能,這也是本文模型在圖卷積層中只增加同質的2階協同信號的原因.
2)去掉用戶觀點的EGCN-CF-do模型在各數據集的預測誤差相比于基本模型均有一定程度的增大.這說明結合用戶觀點有利于提高推薦模型的性能.
3)去掉2階協同信號的EGCN-CF-oo模型在各數據集上表現最差.例如,Flixster數據集上的誤差相比基本模型增大了2.1%.這表明在圖卷積層中增加2階協同信號有利于提升評分預測的準確率.
4)采用線性預測層的EGCN-CF-1模型也取得了較低的預測誤差,稍差于標準模型.這表明:一方面圖卷積層已經能夠學習獲得準確的節點嵌入表示,即使利用簡單的線性預測方法也能獲得較好的準確率;另一方面,采用非線性的預測層能進一步提高模型的預測準確率.
考慮到NGCF和EGCN-CF都堆疊了多個圖卷積層,實現對節點嵌入的逐層精化.我們通過實驗考察2種模型取不同數量的圖卷積層時的預測誤差情況.出于篇幅原因,我們只給出在Flixster和ML-100K數據集上的對比結果,如圖2、圖3所示:

Fig.2 Effect of graph convolutional layer numbers on Flixster圖2 在Flixster數據集上圖卷積層數量的影響

Fig.3 Effect of graph convolutional layer numbers on ML-100K圖3 在ML-100K數據集上圖卷積層數量的影響
分析圖2,3中的結果,可以觀察到:
1)2種模型的預測誤差均明顯受到圖卷積層數量的影響,在2個數據集上呈現相似的變化趨勢:預測誤差先是隨著層數增加而明顯降低,但在3層以后,不再明顯降低并出現小幅增加的現象.這說明堆疊過多的圖卷積層容易產生過擬合問題.因此,本文模型的最大層數設置為3.
2)在各種情況下,本文模型的預測誤差均明顯優于NGCF.特別是當圖卷積層的數量較少時,其優勢更加明顯.該現象得益于EGCN-CF采用的增強圖卷積層的優勢,它通過在層內聚合2階協同信號和融入用戶觀點,更合理地聚合了協同信號,提高了節點嵌入學習的準確性,因而在圖卷積層較少的情況下也能獲得優異的預測準確率.
本文以推薦系統中的評分預測問題為對象,提出一種端到端的、基于增強圖卷積神經網絡的協同推薦模型.它通過增加2階協同信號和融入用戶觀點,得到一種增強的圖卷積層,并堆疊多個層次更合理地捕獲二分圖上的協同信號,提高對節點嵌入學習的準確性,最后利用非線性MLP網絡實現評分預測.在多個推薦數據集上的實驗結果表明,本文模型的預測準確率優于現有的推薦模型.
本文模型在運行時需要存儲二分圖的鄰接矩陣,在超大規模圖上可能遭遇存儲瓶頸.在未來的研究工作中,我們將研究借鑒文獻[11]的基于隨機游走的節點采樣技術,對本文模型進行改進,使其能夠適應超大規模的推薦應用.