胡勝利,程 春
(安徽理工大學 計算機科學與工程學院,安徽 淮南 232001)
推薦系統[1]作為統籌互聯網上眾多數據的工具之一,在緩解信息過載、提升用戶體驗方面發揮著重要作用[2]。會話式序列推薦[3]是序列推薦研究的分支之一,它不依賴用戶歷史交互,可以在用戶未注冊或登錄時僅提取一段時間內的用戶行為信息,預測用戶在當前會話中的下一個行為(如點擊某個項目)。為實現更好的推薦效果,近年來國內外學者針對會話推薦做了很多研究工作。早期的馬爾可夫鏈[4]模型將推薦生成處理成序列化問題,假設用戶的下一個動作僅基于之前的動作。Hidasi等人基于循環神經網絡(RNN)提出GRU4Rec[5]模型。模型利用門控循環單元(GRU)對序列信息進行建模。SR-GNN[6]第一次提出將會話信息映射為圖結構,將序列問題轉換成圖的問題,通過GNN來學習項目的隱向量表示。GC-SAN[7]在SR-GNN的基礎上將一個會話經過多個自注意力層,以捕獲長期依賴關系。GCE-GNN[8]提出構建全局圖和局部圖來分別提取會話信息。由于傳播的迭代有限,GNN在捕獲相鄰物品間的局部依賴時效果顯著,但在捕獲項目間的長距離依賴關系中效果并不明顯[9]。有學者將在自然語言處理中表現優異的Transformer模型用于構建推薦系統,雖然其采用自注意力機制[10]捕獲所有物品間的全局依賴,但它在捕獲相鄰物品間短距離的復雜依賴時效果不夠明顯。
鑒于以上問題,為了能夠有效提取會話序列的全局和局部信息,本文提出一種融合圖神經網絡和稀疏自注意力的會話推薦模型(session-based recommendation fusing graph neural networks and sparse self-attention,SSA-GNN)。模型采用2種不同編碼方式,全局信息提取采用稀疏自注意力網絡,局部信息提取采用添加目標注意模塊的圖神經網絡,最后將2個模塊線性連接,完成推薦。


圖1 SSA-GNN總體框架
1.2.1 嵌入層
嵌入層將輸入的會話序列映射為低維稠密向量表示。將會話序列S=[s1,s2,...,sn]輸入到嵌入層,通過填充0或利用最近交互保留的方式將其處理成長度為n的定長序列,得到對應的嵌入序列E=[e1,e2,...,en],其中ei∈Rd,d為嵌入的維度。
1.2.2 全局信息提取網絡
自注意力機制可以不考慮項目與項目間的距離,減少了對外部信息的依賴,更擅長捕捉數據或特征的內部相關性[11]。本文為區分會話中的無關信息,將注意力機制中的softmax轉換函數替換為α-entmax[12]函數。α-entmax函數可以將與目標項毫不相關的項目權重置為0,減少了無關項目的干擾。α-entmax函數的公式如式(1)~(2)所示。
(1)
(2)
模型首先采用帶稀疏轉換的自注意力來捕獲會話中項目對之間的依賴關系
(3)
式中:WQ、WK和WV∈Rd×d分別為查詢、鍵、值參數矩陣;E為經過嵌入層得到的嵌入序列。為防止點積運算中內積太大,將查詢向量和鍵向量的點積除以d/2,同時添加殘差連接以減少在網絡傳播過程中的信息損失。采用一種自動學習α的方法,允許每個會話根據上下文自適應地選擇參數,以確保學習到的項目嵌入包含盡可能少的無關信息。對于每個會話,模型學習自身α的方式如式(4)所示。
α=sigmoid(Wαei+bα)+1,
(4)
式中:Wα∈R1×d表示參數矩陣;bα∈Rd為偏置向量。
然后將上述F輸入到添加殘差連接的前饋神經網絡中,使模型得到更好的非線性表示。最后,在模型中添加dropout機制以減輕過擬合。
G=max(0,FW1+b1)W2+b2+F.
(5)
式中:G=[g1,g2,...,gn]為會話中物品的全局隱向量;b1∈Rf、b2∈Rd為偏置向量,所有會話將共享相同的參數;W1∈Rd×f,W2∈Rf×d為參數矩陣;全局信息提取網絡的輸出用G表示。
1.2.3 局部信息提取網絡
把每一個會話序列S=[s1,s2,...,sn]都表示成一個單獨的有向圖,再將所有節點si∈V映射到一個統一的嵌入空間,si∈Rd是經圖神經網絡后得到的d維特征向量,項目s的隱向量用hs∈Rd表示。對于圖Gs的節點si,其更新規則如式(6)~(10)所示。
(6)
(7)
(8)
(9)
(10)
式中:t表示卷積層數,模型將會話建模成有向圖;Ai∈R1×2n代表鄰接矩陣的第i行對應于節點si;H∈Rd×2d代表可訓練的權重;b∈Rd為偏置矩陣;σ(·)是sigmoid非線性激活函數;⊙代表點積運算。
模型采用局部目標注意模塊,用于計算會話V中所有項目vi和每個目標項目st∈S之間的注意分數。首先,用權重矩陣W∈Rd×d參數化共享非線性變換應用于每個節點目標對。然后使用softmax函數標準化自注意分數,如式(11)所示。
(11)
最后,對于每個會話,用戶對目標項st的興趣由kt∈Rd表示,即
(12)
將最后一個項目作為短期偏好的局部嵌入能夠有效提高推薦結果的準確性。hn∈Rd表示每個會話最后訪問項目sn的嵌入向量表示。將目標嵌入和局部嵌入進行線性組和,為每個目標項目生成會話嵌入,如式(13)所示。
K=W2[kt;hn].
(13)
式中:W2∈Rd×2d是將兩個向量投影到一個嵌入空間Rd中;K=[k1,k2,...,kn]表示局部隱向量的輸出。
1.2.4 預測層
在預測層將序列中的第i個物品經過2個深度學習網絡得到的局部隱向量ki和全局隱向量gi進行線性連接,如式(14)所示。
li=ωgi+(1-ω)ki,
(14)
式中:ω為線性連接的比例;L=[l1,l2,...,ln]為經過線性連接后的會話向量表示。

(15)
(16)

為訓練模型,將損失函數定義為真值與預測值之間的交叉熵,如式(17)所示。
(17)
式中:有效物品的獨熱編碼用y表示,算法優化的損失函數采用時間反向傳播(BPTT)算法。
SSA-GNN模型使用Yoochoose1/64[13]數據集和Diginetica[14]數據集進行評估。為過濾噪聲數據和使試驗數據具有可比性,先預處理掉數據集中出現次數少于5的項目,再屏蔽掉2個數據集中長度少于2的所有會話。Yoochoose1/64將上周的會話數據作為測試集,Diginetica將上周的會話數據和最后一天的數據作為測試集,2個數據集中剩下的部分分別作為訓練集。通過對會話序列S=[s1,s2,...,sn]分割預處理,生成序列和相應的標簽,即([s1],s2),([s1,s2],s3),...,([s1,s2,...,sn-1],sn)用于數據集的訓練和測試。表1為2個數據集的統計數據。

表1 試驗數據集統計
Precision@20(P@20)和MRR@20是基于會話推薦的2種常用評估指標,前者評估未排名列表中正確推薦項目的比例,后者進一步考慮正確推薦項目在排名列表中的位置。
模型在所有試驗中將隱藏維度設置為d=100。Adam優化器的初始學習率設置為0.001,每3個訓練周期后衰減0.1。2個數據集的批處理大小都設置為100,L2正則化設為10-5。
為進一步研究全局偏好和局部偏好對會話推薦的影響,本文設計了SSA-GNN的2種變種模型來分別分析對模型性能的影響,如圖2所示。其中, SSA-GNN-L表示僅使用目標感知注意的圖神經網絡局部網絡模型, SSA-GNN-G表示僅使用稀疏自注意力的全局網絡模型。

(a) 不同網絡對P@20的影響
圖2的試驗結果直觀的展示了使用不同網絡對推薦結果的影響。以Diginetica為例,SSA-GNN在Diginetica數據集上的P@20比SSA-GNN-L提高1.25%,比SSA-GNN-G提高1.37%;MRR@20比SSA-GNN-L提高0.78%,比SSA-GNN-G提高3.47%。依據試驗結果分析,SSA-GNN試驗數據相較于SSA-GNN-G有較大提升,SSA-GNN-L比SSA-GNN-G效果更好。因為Diginetica數據集包含大量重復點擊行為且行為相關性較強,在處理短距離復雜依賴時自注意力機制的效果沒有圖神經網絡好,且SSA-GNN-L中還添加了目標注意模塊,能捕獲更深層次的項目間關系。此外,可以看到SSA-GNN模型比任意一個單個模型的推薦效果都要好。
圖3的試驗結果展示了全局網絡中使用稀疏自注意力與只使用普通自注意力之間的結果對比。與普通自注意力相比,使用稀疏自注意力的全局網絡在Diginetica數據集上的P@20指標提高0.16%,MRR@20提高0.75%,在Yoochoose1/64數據集上也有所提升。這是因為稀疏自注意力可以在全局信息上進一步減小無關項的比重,進一步印證了稀疏自注意力方法在全局信息提取中的有效性。

(a) 稀疏自注意力對P@20的影響
為更直觀的評估該方法的整體性能,將SSA-GNN模型與以下5種具有代表性的基線算法進行綜合比較。
(1) POP將訓練集中頻率最高的N個項目作為推薦。
(2) FPMC[4]結合了矩陣分解和一階馬爾可夫鏈,以捕獲序列效果和用戶偏好。
(3) GRU4Rec[5]是基于RNN的模型,使用門控循環單元(GRU)對用戶序列進行建模。
(4) SR-GNN[6]將序列化問題轉換成有向圖結構,通過圖神經網絡獲得項目嵌入,由注意力網絡捕獲短期興趣。
(5) GC-SAN[7]分別用自注意力網絡和圖神經網絡捕獲全局和局部信息,最后在預測層將二者進行線性連接。
為使試驗結果更加客觀,本文模型與基線模型在相同的公開數據集上進行比較,并以P@20和MRR@20作為評價指標,試驗結果如表2所示。

表2 試驗結果對比
從表2的試驗結果可以看出,傳統方法在P@20和MRR@20評價指標上的整體效果不如深度神經網絡。POP只推薦top-k個常見項目,主要強調高共現項目。FPMC利用一階馬爾可夫鏈和矩陣分解在上述評價指標下得到了比POP略好的結果。深度神經網絡GRU4Rec能夠更好的捕獲項目間的復雜轉換,以非線性的方式對用戶和物品進行建模,還可以在模型訓練過程中采用正則化、dropout等技術防止過擬合。
在上述基線方法中,基于GNN方法的模型在上述評價指標上的表現優于其他模型。SR-GNN將會話信息建模為圖結構化數據,保留物品之間復雜的關系結構。GC-SAN的查詢向量所使用的節點隱向量首先經過GNN網絡,使得與目標項目相關的非鄰節點的信息被弱化,無法準確捕獲全局信息。
相較于上述評分指標最好的基線模型GC-SAN,SSA-GNN在Yoochoose1/64數據集上的P@20提高1.25%,MRR@20提高4.59%;在Diginetica數據集上的P@20指標提高0.48%,MRR@20提高3.18%。可以看出,SSA-GNN在推薦能力上均有所提升,在MRR@20上的提升效果更加明顯。表明使用稀疏自注意力網絡捕獲全局信息,可以有效緩解無關項的干擾,并解決圖神經網絡在長距離信息表示中項目間依賴過于復雜的問題;在局部信息提取中加入目標注意模塊,可以更深層次的捕獲項目間的復雜依賴關系。試驗結果進一步說明了SSA-GNN模型的有效性。
本文提出了一種融合圖神經網絡和稀疏自注意力的會話推薦模型(SSA-GNN),模型采用2種不同的深度學習網絡對序列信息進行建模,不僅通過稀疏自注意力忽略距離因素的特性對全局信息進行提取,還將可以建模項目之間復雜關系的圖結構用在提取當前會話信息上。為進一步提升推薦能力,本文還將目標注意模塊添加到圖神經網絡中。試驗結果表明,本文提出的模型在評價指標P@20和MRR@20上的推薦效果明顯高于上述基線方法。本文雖對物品的全局和局部信息進行充分提取,但未對物品中包含的細粒度信息如時間、分類等信息進行充分挖掘,后續可以將提取細粒度信息作為模型的補充,進一步研究物品內部細粒度信息對推薦結果的影響。