劉 乾,孫英娟,邢晶淇,車志敏
(1.長春師范大學計算機科學與技術學院,吉林 長春 130032; 2.長春市第一○三中學,吉林 長春 130041)
基于會話的推薦是現代推薦系統的一個關鍵方面,它旨在通過關注用戶當前的意圖來預測用戶的下一個興趣。由于用戶通過在各種平臺(如電子商務網站[1]、音樂流媒體服務[2]和社交媒體[3])上的互動產生的數據越來越多,基于會話的推薦已成為一個重要的研究領域。
大多數現有的會話推薦研究都將會話視為嚴格有序的序列[4]。在會話推薦研究之初,已經提出了許多基于循環神經網絡(RNN)的模型,例如,GRU4Rec[5]通過對用戶交互的序列信息建模來捕獲用戶潛在的興趣。近年來,研究者提出了許多基于圖神經網絡(GNN)的會話推薦模型[6-7],將會話建模為一個有向圖,并著重于用節點的成對關系對相鄰交互建模。這些算法有效地捕獲了序列信息,通過交叉熵損失函數來優化參數,從而取得很大的性能提升。
然而這些算法忽略了項目嵌入空間的優化。圖注意力機制在節點信息聚合上有很大優勢,通過在每個源節點和目標節點之間分配權重,使節點能夠在聚合來自本地鄰居的消息時決定哪個鄰居節點更重要,而不是以相同的權重聚合來自所有鄰居的信息。對比學習通常作為優化項目表示的一種有效方法,其核心是通過計算樣本表示之間的距離,拉近正樣本,拉遠負樣本。本文使用圖注意力神經網絡作為基礎模型,引入一種自我對比學習[8]輔助訓練,改進項目嵌入空間,在項目嵌入空間中實現了更好的均勻性,從而提高了模型性能。
首先將會話數據構建成有向圖數據,再在相鄰節點間使用注意力機制聚合數據,然后生成會話嵌入,根據會話嵌入和候選項目生成推薦,同時使用對比學習輔助訓練。算法流程如圖1所示。
圖1 算法流程
每個會話序列S可以建模為一個有向圖GS=(VS,ES)。其中,GS表示所有會話序列有向圖的集合,VS表示圖中節點集合,ES表示邊的集合,Vi,S表示會話S中的第i個節點(物品),(Vi-1,S,Vi,S)∈ES在圖上顯示為Vi-1,S指向Vi,S的有向邊,(Vi-1,S,Vi,S)對應邊的值為1,兩物品之間無交互記為0。
Vi表示源節點,Vj表示Vi的鄰居節點,鄰居信息的聚合如下所示:
首先根據Vi和Vj求得權重系數αij。
(1)
其中,LR(·)表示激活函數LeakRelu。q1∈Rd。Vi,Vj∈Rd?!驯硎竟_瑪乘積,指對應矩陣元素相乘。
然后對權重系數使用Softmax進行歸一化。
(2)
其中,Ni表示節點i的鄰居結點的集合。
最后根據歸一化的權重系數聚合鄰居信息。
(3)
對節點的出度鄰居和入度鄰居使用相同的上述操作,最后合并出度和入度信息。
(4)
將更新后的圖的節點和原來的節點做一個合并。
Vl=LR(W1[Vl-1‖Vl]),
(5)
其中,Vl-1,Vl∈Rd,Vl-1表示l-1層圖節點,Vl表示l層圖節點,本算法只進行一層圖更新?!硎具B接操作。W1∈Rd×2d,將拼接后的向量轉換到d維。
將得到的局部節點嵌入輸入到軟注意力機制中,用來捕獲全局會話嵌入,使用會話中最后一個項目嵌入作為查詢向量,注意力權重計算公式如下:
(6)
(7)
其中,q2∈Rd,W2,W3∈Rd×d是項目嵌入向量的參數矩陣,c∈Rd是偏置向量。
將會話嵌入和最后一個項目的嵌入合并:
S=W4[Vn,l‖Sg],
(8)
其中,W4∈Rd×2d,將拼接后的向量轉換到d維。
(9)
損失函數定義為預測結果的交叉熵:
(10)
其中,yi為真值項的one-hot向量。
LIU等[8]首先提出了自我對比學習,是一種通過引入額外的損失函數來提高項目嵌入空間均勻性的直接解決方案,損失函數通過直接懲罰同一個批次內項目嵌入的接近性實現,該方案基于假設每個物品的嵌入應該遠離所有其他物品的嵌入。
將自我對比學習作為額外的損失函數:
(11)
其中,xi表示正樣本,是一個批次的任一項目嵌入;xj表示負樣本,是一個批次內的全部項目;n表示一個批次內所有項目的總數。
(12)
其中,sim表示余弦相似性,τ表示溫度系數。
最后推薦損失和對比學習損失共同產生效果,δ是對比學習損失函數的權重系數,作為可學習的參數。
(13)
使用兩個基準數據集Diginetica和Yoochoose。其中,Diginetica來自2016年CIKM Cup挑戰賽的電子商務數據集;Yoochoose來自2015年RecSys挑戰賽的電子商務數據集。對兩個數據集進行預處理。首先過濾掉長度為1的會話和出現次數少于5次的項目。然后對于Diginetica將最新一周的會話作為測試數據,剩余的歷史數據用于訓練。對于Yoochoose將最新一天的會話作為測試數據,剩余的歷史數據用于訓練,由于Yoochoose數據集比較大,取訓練集中最新數據的1/64作為Yoochoose1/64數據集。最后對兩個數據集進行數據擴充,對于一個會話S=(v1,v2,…,vn),通過序列分裂預處理生成序列和相應的標簽,即([v1],v2), ([v1,v2],v3),…,([v1,v2,…,vn-1],vn)。數據集經過預處理后的統計結果如表1所示。
表1 數據集信息
采用兩個廣泛使用的基于排名的指標:HR@K和MRR@K。HR@K是衡量召回率的指標,表示推薦列表能正確推薦的比例。MRR@K指標用于度量會話推薦算法的排序質量,即正確推薦項目在推薦列表中的位置的倒數。
(1)Item-KNN[9]:一種基于項目的最近鄰(KNN)推薦算法,通過計算會話向量之間的余弦相似度進行推薦。
(2)FPMC[10]:一種基于馬爾科夫鏈的傳統推薦算法,通過建模相鄰點擊項目之間的順序行為預測用戶下一次可能點擊的項目。
(3)GRU4Rec[5]:首個有效的基于深度學習的會話推薦算法,使用循環神經網絡(RNN)對基于會話的用戶序列建模,通過堆疊多層門控循環單元(GRU)進行訓練。
(4)SR-GNN[11]:首個有效的基于圖神經網絡(GNN)的會話推薦算法,通過將歷史會話序列構建成網絡圖形式,通過GNN模塊編碼會話中項目之間的復雜轉移關系,采用軟注意力機制提取用戶的全局和當前偏好,進一步輸出推薦結果。
(5)TAGNN[12]:一種 SR-GNN的改進算法,在原有算法的軟注意力模塊中引入目標注意力單元,使算法能夠自適應地激活不同的用戶偏好,從而提高算法的表達能力。
將向量維度設置為100,mini-batch大小設置為100。經過多次實驗,將溫度系數τ設定為0.1。選擇訓練集的隨機10%子集作為驗證集。使用Adam優化器,初始學習率為0.01,每3個epoch后衰減0.1,L2懲罰設置為10-5。
5個基線算法和本文算法在兩個真實數據集的實驗結果見表2,其中每列的最佳結果以加粗體字突出顯示??梢杂^察到,CLGNN在兩個數據集上的兩個指標一致地達到了最佳性能,這確定了本文提出的方法的有效性。
表2 實驗結果
本文提出了聯合對比學習的圖神經網絡推薦算法,使用圖注意力機制獲得項目嵌入,通過軟注意力機制聚合會話內的項目生成會話嵌入,同時使用自我對比學習來優化項目嵌入空間。在Diginetica和Yoochoose1/64兩個真實數據集上取得了較好的推薦結果。