胡一帆,楊小健,秦嶺
(南京工業(yè)大學 計算機科學與技術學院,江蘇 南京 210000)
傳統(tǒng)的CF 模型[1-2]只針對例如電商平臺的購買行為這一單一的用戶行為而設計,但對于一些沒有購買的新用戶,就很難做到很好的推薦。例如瀏覽記錄、分享、收藏、加入購物車等行為平臺也極易獲得,因此利用這些行為來輔助預測可使得推薦效果進一步提升?,F(xiàn)有的研究[3-6]也探討過這一方面,文獻[3]假設不同的行為所代表的重要性不同,通過用一種積極行為和另一種普通行為抽樣擴展BPR。文獻[5-6]通過建立多任務學習的深度模型,設定了用戶不同行為之間的重要程度,但此模型很簡單地認為用戶的輔助行為的作用就一定弱于目標行為,但有時候分享可能比購買更能反映用戶的偏好。文獻[7]MBGCN 通過利用圖神經(jīng)網(wǎng)絡從不同類型的邊和圖上的高階連通性中學習,但卻忽略了目標行為之后的評論內容也很大程度上展示了用戶對于該項目的最終評價。
近年來對于評論信息的推薦算法主要以深度學習為主,盡管深度學習發(fā)展迅速但深度學習可能會忽視詞語之間的依賴關系,圖學習卻可以解決上述問題。因此,本文提出了一種改進的基于圖神經(jīng)網(wǎng)絡的推薦算法,對比同類的用戶多種輔助行為的推薦方式同時融入用戶評論對該項目的最終評價對用戶進行推薦。實驗結果表明,該算法對推薦效果有一定的提升。
圖神經(jīng)網(wǎng)絡的中心思路是通過迭代聚合鄰居的特征信息與中心節(jié)點的表示集成。圖神經(jīng)網(wǎng)絡與圖嵌入也有著很密切的關系,圖嵌入是指在圖結構和圖信息不變的情況下,將圖中的節(jié)點投影到低維向量空間,最終用低維嵌入對數(shù)據(jù)進行分析。通過圖神經(jīng)網(wǎng)絡推薦的實際含義是學習用戶和項目的隱含特征。
Kipf等[8]提出的GCNs 模型利用節(jié)點屬性和圖結構學習節(jié)點表示,它的每個卷積層將中心節(jié)點的表示和其鄰居節(jié)點的表示相結合作為新的節(jié)點表示。Fan等[9]分別建立用戶-物品、物品-用戶、用戶-朋友3 種圖,結合起來推薦。Ying等[10]通過將隨機游走和圖卷積相結合的方式進行網(wǎng)頁應用的推薦。Wang等[11]使用目標節(jié)點及其鄰居節(jié)點點積更新。這些模型的成功說明了圖神經(jīng)網(wǎng)絡對于推薦效果有著明顯的提升。
基于深度學習的推薦算法,很早就對用戶評論信息的提取起到了很大的作用:在ConvMF 中K 利用CNN 從用戶的評論信息中學習用戶和物品的偏好,相較于之前的矩陣分解算法,該算法的結果有著很明顯的提升。隨后,出現(xiàn)的DeepCoNN[12]并行CNN 結構、LCPMF[13]將LDA模型與CNN 相結合、DIN[14]提出注意力機制、MAGN[15]在此之上增加新的注意力等都使得深度學習在推薦系統(tǒng)領得到了很好的發(fā)展。
圖神經(jīng)網(wǎng)絡的出現(xiàn),因其可以學習到用戶項目之間深度學習無法學習的關聯(lián)關系,所以本文使用圖的優(yōu)勢,將用戶的評論表示成圖,分析評論中的情感。
設行為的數(shù)量為T,所有的行為矩陣可以表示為{Y1,Y2,…,YT-1,YT},其中YT為目標行為,矩陣中的每個值為1 或0。但每個行為之間并沒有嚴格的時間先后順序,每個行為對于用戶偏好的影響強弱也不是一定的。整個模型的步驟分為4 步:(1)初始化用戶和項目的嵌入;(2)學習每個行為的強度,提取基于多行為的協(xié)同信號;(3)分析行為類型的行為語義;(4)聯(lián)合預測。
本文使用無向圖G=(V,E)來表示,其中節(jié)點為V,由用戶節(jié)點u∈U 和項目節(jié)點i∈I 組成,E 中的邊包含不同行為的不同用戶-項目交互邊,即(u,i)t,t∈Nr,其中Nr是發(fā)生在用戶和項目之間的所有行為類型的集合。當=1 時,將建立一個邊(u,i)。使用不同種類的邊來表示不同的行為。基于用戶共同行為在項目之間建立元路徑,如很多用戶同時購買iPhone 和AirPods,在iPhone 和AirPods 節(jié)點之間會有物品-購買-用戶-購買-物品元路徑,元路徑類型的數(shù)量等于行為類型的數(shù)量。
2.1.1 圖嵌入
在這里使用矩陣乘法來獲得具有一個熱矢量的用戶(項目)的嵌入,如下所示:
2.1.2 用戶嵌入的傳播
要根據(jù)行為類型的不同的考慮項目對用戶的偏好影響,對比與傳統(tǒng)多行為算法,本文融入更多的輔助行為,且每個行為對目標行為的貢獻不再通過人為地衡量,而是由模型本身來學習。此外,還應同時考慮數(shù)據(jù)稀疏性。
用戶行為傳播權重計算時,由于不同的行為對目標行為的貢獻不同,因此為每個行為分配一個權重,即wt。為了將行為重要性和行為稀疏性融合在一起,為用戶u定義了特定行為t 的傳播權重,表示為aut,如下所示:
其中,nut是由用戶u 操作的行為t 的計數(shù),該計數(shù)因用戶而異。。這里注意,wt是通過模型學習的,不需要為每個行為賦值。
對于用戶不同行為對目標行為的貢獻不同,但同一行為交互的項目反映了用戶相似的偏好強度。將用戶具有相同行為交互的項目聚集在一起,為每個行為獲得一個嵌入即行為t 下的用戶u 的嵌入,定義如下:
根據(jù)權重α 將鄰居項集合嵌入在一起,然后通過一個編碼矩陣,得到用戶的最終鄰居項集合。
2.1.3 項目嵌入的傳播
用戶到項目的傳播與項目到用戶不同,因為項目的特性是靜態(tài)的。假設不同的用戶對一個項目有相同的貢獻。因此,下面示出了用戶到項目的傳播方法:
其中,NU(i)是項目I 與之交互的用戶集合是用戶j在第l 層上的嵌入,W(l)是l 層上信息聚合的編碼矩陣。
2.1.4 項目之間的傳播
用戶交互的項目可能有特殊的聯(lián)系。將在行為t 下共同行為的項目j 的嵌入與項目I 聚合,以獲得下一層嵌入。通過這種機制,與I 項共同作用的項的特征將被聚合到I 的嵌入中,這有助于更好地嵌入學習和最終預測。
2.1.5 聯(lián)合預測
通過L 層傳播后,得到多個表示,對于最終的預測,來自不同鄰居的信息都很重要。因此,將它們連接在一起,以獲得用戶和項目的最終嵌入:
其中,||是串聯(lián)運算。
傳播層學習了用戶嵌入和項目嵌入后,就可以計算出基于用戶的評分,項目到項目的傳播就可以獲得項目相關性,由此可以就算出基于項目的評分。
基于用戶的CF 評分。這里使用內部產(chǎn)品的簡單交互函數(shù),以便基于用戶項目傳播來計算分數(shù):
基于項目的CF 評分。用戶對兩個項目的共同行為可能暗示這兩個項目之間的相關性,項目之間的相關性可能影響用戶的行為,將從不同行為計算的項目相關性分數(shù)相加以獲得最終相關性分數(shù):
綜合評分:
對于評論信息的圖學習分為用戶模塊和項目模塊,兩個模塊的結構相同,因此下面只介紹用戶模塊。
對于用戶ui的評論集Sui,先通過文本預處理挑選出評論文本的關鍵詞,然后將所有關鍵詞作為節(jié)點,詞與詞間的關系作為邊,構建有向圖。由于評論中詞語間的順序可能會導致用戶的不同情感,因此要保留詞序,將先出現(xiàn)的關鍵詞指向后出現(xiàn)的關鍵詞的邊記為ej,同時生成反向的邊eb,此外每個節(jié)點還會生成一條自連接的邊es以分析自身的信息。
評論信息中的每一個關鍵詞間是相互聯(lián)系的,可以豐富彼此的含義,對于輸入的圖G,節(jié)點用xh表示,xh的鄰接點用Nh={xt|(xh,r,xt)∈G}表示,Nh包含xh。則xt的權重為:
其中,Tanh 為激活函數(shù)。
接下來根據(jù)用戶和項目信息,計算出圖中節(jié)點關于交互水平的權重,xh的權重為:
由2.1.5 節(jié)可知,用戶和項目的最終嵌入為pu和qi,本文采用concat 方式將2.1.5 節(jié)的最終嵌入與通過評論信息的一般偏好特征融合從而得到最終的特征:
基于用戶CF 的評分公式也更新為:
采用了優(yōu)化的帶BPR 損失的模型定義損失函數(shù):
其中,O={(u,i,j)|(u,i)∈R+,(u,j)∈R-}表示成對目標行為訓練數(shù)據(jù)集,R+表示觀察到的目標行為,R 表示未觀察到的目標行為;σ(·)是sigmoid函數(shù),Θ表示所有可訓練參數(shù),β是控制L2歸一化強度的系數(shù)。
本文實驗采用兩個數(shù)據(jù)集(Tmall 數(shù)據(jù)集、Beibei 數(shù)據(jù)集)進行實驗,這兩個數(shù)據(jù)集為很大規(guī)模的真實的電商平臺的數(shù)據(jù)集。在這些數(shù)據(jù)集中除了目標行為購買之外也都有著各自不同的其他用戶行為。
為了評估本文模型的性能選取了召回率準確率和NDCG 3 種指標來測試,計算公式如下:
NDCG 將較高的分數(shù)分配給在top-K 排名列表中較高位置的點擊。準確率和召回率分別指推薦正確的數(shù)量占推薦總數(shù)和占用戶總共購買數(shù)量的比例。
(1)NGCF:通過GCN 模型使用目標行為來構建用戶項二分圖,是一種經(jīng)典的圖神經(jīng)網(wǎng)絡模型。
(2)GraphSAGE:通過嵌入傳播和聚集,用鄰居信息豐富節(jié)點嵌入,應用十分廣泛。
(3)MC-BPR:融入多行為的推薦系統(tǒng),將用戶不同的行為反映出的不同偏好作為先驗知識構建訓練對。
(4)MBGCN:也是一種融入用戶多行為的推薦模型,與此同時也使用圖神經(jīng)網(wǎng)絡訓練用戶行為的重要性,有著很好的推薦效果。
將本文之前提到的所有模型的實驗在PyTorch 中實現(xiàn)。對于評論數(shù)據(jù)針對每個用戶和物品選取10 條評論信息。模型的嵌入大小為32,超參數(shù)方面,學習率定為5×10-5,最終使用的參數(shù)λ 將基于用戶的分數(shù)與基于項目的分數(shù)相結合,在數(shù)據(jù)集上進行了實驗,結果如圖1所示。當λ值為0 時,模型只基于項目評分,推薦效果不理想;λ 的值在0~1 之間變化時,推薦結果的變化不大;當λ=1 時,結果會有所下降。從圖中看出,當λ=0.7 時,推薦效果最佳。
圖1 λ值對推薦結果的影響
通過在兩個數(shù)據(jù)集上的實驗,統(tǒng)計出了各個算法分別在推薦數(shù)量k 的值分別為10、20、40 時的實驗結果。
Tmall 的召回率、準確率和NDCG 的結果如表1~表3所示。
表1 Tmall 數(shù)據(jù)集召回率對照
表2 Tmall 數(shù)據(jù)集準確率對照
表3 Tmall 數(shù)據(jù)集NDCG 對照
Beibei 的召回率、準確率和NDCG 的結果如表4~表6 所示。
表4 Beibei數(shù)據(jù)集召回率對照
從表1~表6 中可以看出,本文提出的算法在召回率、準確率和NDCG 上都有一定的提升,證明了模型的有效性,對于前兩個模型有著很不錯的推薦效果,這說明圖神經(jīng)網(wǎng)絡確實對于推薦系統(tǒng)有著很大的提升,對于稀疏數(shù)據(jù)集具有一定的緩解效果,但對于此類型的電商網(wǎng)站上的推薦用戶行為的加入也是很必要的。在對于后兩個模型的比較中可以發(fā)現(xiàn),融入用戶行為的方式對推薦效果確實有一定的提升,MC-BPR 假定用戶不同行為反映不同用戶偏好,不如MBGCN 根據(jù)圖信息的自學習,本文算法同時又融入了用戶最終行為后的評論信息更進一步提升了MBGCN 的推薦效果。
表6 Beibei數(shù)據(jù)集NDCG 對照
表5 Beibei數(shù)據(jù)集準確率對照
為解決電商網(wǎng)站上的冷啟動問題,本文將用戶的多行為加入到用戶-項目的關系圖中,利用圖卷積網(wǎng)絡從復雜的圖結構中學習各個節(jié)點的表示,又考慮到用戶關鍵行為后的評論信息也可能很大程度地影響到用戶的偏好,于是通過評論信息圖表示學習評論中的用戶和項目偏好與之前多行為相結合,提出了一種融合用戶行為與評論信息的圖神經(jīng)網(wǎng)絡推薦算法。在真實數(shù)據(jù)集上的實驗結果證明該模型對推薦效果有一定的提升,也在一定程度上對冷啟動問題進行了優(yōu)化。