盛 強,成衛(wèi)青
(南京郵電大學計算機學院,江蘇 南京 210023)
隨著互聯(lián)網(wǎng)信息技術(shù)的不斷發(fā)展,用戶在網(wǎng)上從事各種活動,例如電影、購物、社交等行為產(chǎn)生了龐大的信息,加劇了信息過載。現(xiàn)在越來越難以從龐大信息中找出適合自己需求的信息。推薦系統(tǒng)在幫助緩解信息超載問題和選擇合適內(nèi)容方面發(fā)揮著重要作用。其根據(jù)當前會話中的動作序列來預測用戶的下一個動作,可以有效緩解網(wǎng)上信息過載的問題。傳統(tǒng)的推薦系統(tǒng)只是將用戶與物品的交互歷史放在一個二維評分矩陣中,通過填補這個矩陣的空缺來實現(xiàn)預測,但在現(xiàn)實應用中可能存在數(shù)據(jù)稀疏和冷啟動問題,而且許多應用場景中用戶的意圖和用戶身份有可能都是未知的,在正在進行的會話中只有用戶的歷史操作。與傳統(tǒng)推薦不同的是,序列化會話推薦將用戶歷史交互的項目作為完整序列而不是項目的簡單集合,以便準確預測他們將與之交互的下一個項目。由于序列化會話推薦更符合實際情況,并且在考慮更多信息的情況下可以獲得更準確的結(jié)果,因此目前受到了廣泛研究。
基于馬爾可夫鏈(Markov Chain, MC)[1]是經(jīng)典序列化推薦方法,它假設(shè)下一個動作是在前一個動作的基礎(chǔ)上進行的,該方法已成功地用于捕獲推薦的短期項目轉(zhuǎn)換。它們通過作出強有力的簡化假設(shè),在高稀疏性環(huán)境中表現(xiàn)良好,但在更復雜的場景中可能無法捕捉復雜的動態(tài)。
近年來,越來越多的基于深度學習的方法被用于會話推薦,GRU4Rec[2]是最早將遞歸神經(jīng)網(wǎng)絡(luò)應用于順序推薦的模型,之后又通過數(shù)據(jù)擴充和考慮用戶行為的時移來增強GRU4Rec模型。Caser[3]利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)來學習會話中復雜的短期信息。在其他的一些研究中,圖神經(jīng)網(wǎng)絡(luò)(GNN)成為提取用戶短期意圖的重要的組成部分。SR?GNN[4]和 GC?SAN[5]利用圖神經(jīng)網(wǎng)絡(luò)捕獲會話圖中復雜的項目信息并結(jié)合注意力機制來捕獲用戶偏好。然而,這些基于深度學習的方法大多對會話全局偏好的學習不夠重視,更多考慮的是用戶當前會話的局部偏好,而忽略了來自其他會話的有用的項目信息和用戶的長期靜態(tài)偏好。
因此,本文提出了一種基于圖神經(jīng)網(wǎng)絡(luò)和改進自注意力網(wǎng)絡(luò)相融合的推薦模型,簡稱GNN?SAP,從會話的局部偏好和全局偏好角度上考慮,不僅通過GNN和注意力機制來捕獲當前會話的短期偏好,而且通過改進自注意力網(wǎng)絡(luò)作為全局模塊來捕獲會話的全局靜態(tài)偏好。此外,為會話序列加入位置嵌入模塊,以保存會話序列中用戶訪問順序信息。
本文的主要貢獻如下:
(1)大多數(shù)基于會話推薦僅捕獲用戶會話的短期偏好,本文提出了通過改進自注意力網(wǎng)絡(luò)(Improve Self?Attention)來提取用戶會話中長期靜態(tài)偏好,并與基于GNN局部偏好學習模塊相結(jié)合共同預測用戶的行為。
(2)考慮到會話序列用戶訪問的順序,會話節(jié)點不同的訪問順序隱含了不同的信息,本文加入了可學習的位置嵌入模塊,用于更好地學習會話序列之間的復雜信息,來進行準確地預測。
(3)本文在電商領(lǐng)域3個公開的數(shù)據(jù)集上進行了大量的實驗,結(jié)果表明,本文提出的GNN?SAP模型在各項指標上均優(yōu)于與之比較的9個基準模型。
本節(jié)回顧基于會話推薦系統(tǒng)的一些相關(guān)工作,包括傳統(tǒng)推薦方法、基于深度學習的方法和基于注意力機制的推薦方法。
傳統(tǒng)的推薦方法主要分為基于鄰域的方法[6-8],基于矩陣分解(MF)的方法[9-11]和混合推薦的方法[12],其中基于矩陣分解的方法因其高效、準確而受到歡迎。矩陣分解(MF)方法尋求揭示潛在維度來代表用戶的偏好和物品的屬性,并通過用戶和物品嵌入之間的內(nèi)積來估計交互作用。在此之后提出了基于物品相似性模型[13-14](如 FISM[13]),通過匯總用戶交互項的表示來獲取用戶的偏好。通過這種方式,用戶的歷史交互項目和候選項目之間的因子相似性可以作為預測評級的標準,這為基于MF的模型提供了與基于鄰域的模型一樣的良好解釋性?;旌贤扑]在處理數(shù)量有限的用戶交互時提供了更多的信息。傳統(tǒng)推薦方法在數(shù)據(jù)較為稀疏的條件下表現(xiàn)良好,但在現(xiàn)實中交互數(shù)據(jù)較為復雜的場景下,可能無法捕捉深層所隱含的復雜信息,無法對用戶行為進行更為精確的預測。
近年來,隨著深度學習的快速發(fā)展,已經(jīng)徹底改變了推薦系統(tǒng)。傳統(tǒng)的推薦方法已逐漸被基于深度學習的推薦方法所取代,其性能相較于傳統(tǒng)推薦方法取得了較大提升。GRU4REC[2]是首次在會話的推薦系統(tǒng)中引入RNN,使用具有門控遞歸單元的深度遞歸神經(jīng)網(wǎng)絡(luò)來對會話數(shù)據(jù)進行建模,從會話的歷史交互中學習會話表示,提供用戶下一次點擊的預測。由于RNN提供的序貫建模能力,它們的模型在預測下一步行動時可以考慮用戶的歷史行為。之后在此基礎(chǔ)上,Tan等[15]提出了一種數(shù)據(jù)增強技術(shù)來提高GRU4REC基于RNN的會話推薦的性能。NARM[16]利用RNN上的注意力機制來捕獲用戶的順序行為特征和主要目的。STAMP[17]是基于MLP網(wǎng)絡(luò)和注意力機制的短期注意優(yōu)先模型,可以有效地捕獲用戶的一般興趣和當前興趣。最近,Tang等[3]提出了一種基于卷積序列(CNN)進行建模的方法,通過水平卷積層和垂直卷積層來學習用戶的動態(tài)變化。該模型比基于RNN的方法具有更好的性能?;贑NN和RNN推薦方法相較傳統(tǒng)的推薦方法取得了不錯的預測效果,但其需要從大量的數(shù)據(jù)中學習用戶的表示才能取得較好的推薦結(jié)果,而在會話交互序列較為稀疏情況下,該類模型的學習相當困難,很難取得較好的效果。
隨著CNN和RNN在推薦領(lǐng)域的成功應用,目前在許多領(lǐng)域研究火熱的圖神經(jīng)網(wǎng)絡(luò)也被應用到推薦系統(tǒng)中。在推薦系統(tǒng)中,圖神經(jīng)網(wǎng)絡(luò)相較于CNN和RNN能夠通過會話圖更好提取用戶和物品之間交互的信息,以做出準確的預測。Wu等[4]率先提出了基于圖神經(jīng)網(wǎng)絡(luò)的推薦模型(SR?GNN),通過GNN和傳統(tǒng)注意力機制來提取會話中用戶短期動態(tài)偏好和預測用戶的行為。隨后,Xu等[5]提出了GC?SAN,通過GNN和自注意力機制來提取用戶的偏好信息。Qiu等[18]提出FGNN模型,該模型通過多頭注意力聚合其相鄰會話的嵌入來學習每個項目的表示,并通過反復將每個學習的嵌入與每次與會話的相關(guān)性結(jié)合起來生成最終的會話表示。但是,以上這些方法都只對當前轉(zhuǎn)換信息進行建模捕獲,卻忽略了來自會節(jié)點的全局靜態(tài)偏好信息和其他會話有用的項目轉(zhuǎn)換信息。
注意力機制最早是在視覺圖像領(lǐng)域中提出的,Mnih等[19]首次對RNN模型使用注意力機制來進行圖像分類,隨后注意力機制被用到機器翻譯[20]任務中。注意力機制背后的原理是輸出依賴于特定的相關(guān)輸入的部分。這種機制可以計算輸入的權(quán)重,使模型更易于解釋。最近,注意力機制已被應用到推薦系統(tǒng)[21-23]。 Transformer[24]是一種純粹基于注意力的序列到序列方法,在機器翻譯任務中實現(xiàn)了最先進的性能。Kang等[25]基于Transformer的簡單并行化的自注意力機制,提出了一種基于自注意力的序列推薦模型(SASRec),其推薦效果優(yōu)于基于MC/RNN/CNN的序列推薦方法。由于在序列化推薦方面取得了最先進的結(jié)果,之后許多模型在SASRec基礎(chǔ)上進行改進和提升(如 TiSASRec[26],AttRec[27],F(xiàn)ISSA[28])。 大多數(shù)現(xiàn)有的推薦模型利用自注意力機制來捕獲序列中的遠距離項目轉(zhuǎn)換,來進行用戶預測并取得了不錯的效果。然而,在相鄰項目之間建立復雜的上下文信息仍然是一個挑戰(zhàn),而且大多數(shù)會話推薦忽略了其他會話可能包含了與當前會話相關(guān)的項目信息。
本文通過圖神經(jīng)網(wǎng)絡(luò)來捕獲當前會話的相鄰項目之間的節(jié)點信息,并通過改進的自注意力網(wǎng)絡(luò)來獲取會話全局項目轉(zhuǎn)換的信息,從局部和全局的角度上來更全面地預測用戶下一次點擊意圖。
本節(jié)提出基于圖神經(jīng)網(wǎng)絡(luò)和改進自注意網(wǎng)絡(luò)的模型GNN?SAP,它將圖神經(jīng)網(wǎng)絡(luò)和自注意力網(wǎng)絡(luò)應用于基于會話的推薦中。下面先闡述基于會話推薦的問題,然后詳細描述GNN?SAP模型。
基于會話的推薦旨在僅根據(jù)用戶當前的交互順序預測用戶下一步希望訪問的項目。這里給出基于會話的推薦符號定義。
設(shè) V = {V1,V2,…,Vm}, 表示所有會話中涉及的所有唯一項目的集合,令匿名會話 S={V1,V2,…,Vn},其中Vt∈V表示會話S中用戶在時間步長t的點擊項目,基于會話的推薦目標是根據(jù)之前點擊序列預測會話下一次的點擊。本文通過GNN和傳統(tǒng)注意力網(wǎng)絡(luò)捕獲當前會話S中交互歷史中的局部信息,再結(jié)合全局偏好學習模塊捕獲的會話全局信息,來預測用戶當前會話下一次點擊的項目 Vn+1, 最終對于會話 S,GNN?SAP 模型會輸出所有可能訪問候選項目的概率y^,其中向量y^的元素值是相應項的推薦分數(shù),由于推薦者通常會為用戶提出多個建議,因此一般將從y^中選擇前K個項目作為推薦。
GNN?SAP從用戶歷史交互記錄的當前會話的局部和全局上來提取會話序列的信息,同時為當前會話加入相關(guān)位置信息,以便保存用戶會話交互記錄所隱含的順序信息。圖1展示了GNN?SAP模型的工作流程。
圖1 GNN?SAP模型圖
(1)用戶每次點擊序列會構(gòu)成一次會話,將會話構(gòu)建成會話圖,隨后通過圖神經(jīng)網(wǎng)絡(luò)(GNN)來提取會話圖中當前會話節(jié)點所蘊含的豐富的信息。
(2)將GNN提取后的會話節(jié)點加入可學習位置信息,來保存其原有位置信息,并通過注意力網(wǎng)絡(luò)來提取用戶短期動態(tài)偏好。
(3)對于會話全局偏好學習,將會話序列通過位置嵌入模塊加入位置信息,并送入基于改進的自注意力網(wǎng)絡(luò)來提取會話的全局靜態(tài)偏好,并且通過前饋神經(jīng)網(wǎng)絡(luò)(FFN)和殘差網(wǎng)絡(luò)來提取其非線性特征。
(4)最終將局部偏好與全局偏好非線性特征經(jīng)過線性融合,再送入預測層,得到項目集合V中每個項目的得分,得分越高表示被用戶點擊的可能性越大。
首先將每個會話構(gòu)建成一個會話圖。給定會話S = {V1,V2,…,Vn}, 將每個項目 vi視為一個節(jié)點,將 (Vi-1,Vi) 視為一條邊,表示用戶在會話 S 中的Vi-1之后點擊項目Vi,因此,每個用戶會話序列都可以建模為一個有向圖Gs= (γs,εs)。 由于會話序列中可能會重復出現(xiàn)多個項目,通過該邊的出現(xiàn)次數(shù)除以該邊起始節(jié)點的出度,來為每條邊分配歸一化權(quán)重。該模型可以支持構(gòu)建各種會話圖的方法,并生成相應的連接矩陣。最后圖神經(jīng)網(wǎng)絡(luò)應用兩個加權(quán)連接矩陣來捕獲用戶會話序列的局部信息。
接下來,通過圖神經(jīng)網(wǎng)絡(luò)獲得當前會話節(jié)點的潛在特征。首先把每個項目vi∈V轉(zhuǎn)化為統(tǒng)一的低維潛在空間向量,節(jié)點向量Vi∈Rd表示項目v的d維潛在向量。對于會話圖中的節(jié)點Vt,不同節(jié)點之間的信息傳播可以形式化為
然后將它們和之前的狀態(tài)vt-1一起輸入到圖神經(jīng)網(wǎng)絡(luò)中。因此,GNN層最終輸出ht計算如下
式中, Wz,Wr,Wh∈ R2d×d,Pz,Pr,Ph∈ Rd×d表示可學習的參數(shù);σ(·)表示sigmoid函數(shù),7表示逐元素乘法;zt,rt分別表示更新門和重置門,決定要保留和丟棄的信息;表示候選狀態(tài)組合,ht表示GNN最終輸出狀態(tài)。
用戶會話交互序列的位置信息同樣重要,會話歷史交互順序表明了用戶興趣隨著時間的變化過程。為了保存會話交互位置信息,在GNN捕獲的節(jié)點和會話全局序列之后加入可學習的位置嵌入模塊P∈Rn×d,不僅能更好保存會話序列中的信息,而且還能過濾會話中的噪聲。
式中,n表示會話的長度,hi表示圖神經(jīng)網(wǎng)絡(luò)提取的項目節(jié)點,vi表示會話序列中用戶點擊的項目i,P=[p1,p2,…,pn] 其中, pi∈表示vi的位置向量信息。
考慮到經(jīng)過GNN提取并加入位置信息之后,當前會話序列具有復雜的局部信息,會話中序列可能具有不同的優(yōu)先級。為了使推薦系統(tǒng)更專注于找到會話序列中與用戶偏好相關(guān)的信息,本文采用軟注意機制來更好捕獲會話的局部偏好sl。
式中,參數(shù)q∈Rd和W1,W2∈Rd×d表示嵌入向量的權(quán)重,c表示注意力偏置向量,αi表示序列xi的注意力分配系數(shù)。
Transformer在NLP領(lǐng)域中首次提出了自注意力機制,將嵌入層的輸入通過線性投影分別轉(zhuǎn)換為Query、Key和Value三個不同矩陣,并將它們輸入到使用放縮點積的注意力層中。由于序列化所隱含的順序性,在預測 (t+1)項時應該只考慮前t項,而自注意力層的輸出包含后續(xù)所有項目的嵌入,為了不依賴t時刻之后的輸出,自注意力機制通過禁止Qi和Kj(j>i)之間的點積來進行因果約束。自注意力機制的表示如下
盡管通過GNN和注意力機制可以很好地提取會話的局部動態(tài)偏好,但局部表示仍然忽略來自其他會話的有用的項目信息和會話的長期靜態(tài)偏好。本文從會話的全局序列上考慮,不再對用戶行為序列進行因果約束,使未來的更多可用信息可用于對訓練期間序列的預測,以便更好地提取會話的全局偏好,圖2展示了自注意力機制與改進自注意力機制的流程對比。
圖2 自注意力機制與改進自注意力機制流程對比
在序列化會話推薦中,具有相似項目的序列往往具有相似的表示。通過參照其他會話具有代表性的項目信息,可以增強對當前會話相似項目的預測。因此,本文引入了一個由所有會話共享的可學習Query矩陣向量qs∈R1×d來代替原有投影轉(zhuǎn)換的矩陣Query,同時放棄了原有自注意力機制中的因果約束,使得預測會話中每個項目時都可以參照全部序列,由此更好地來獲取匿名會話序列中的全局偏好信息。全局偏好學習模塊可以表示為
F = LBA(E) = softmax(qs(EW′K)T)EW′V(7)
式中,E∈Rn×d表示加入位置信息的會話序列節(jié)點, W′K,W′V∈ Rd×d表示通過投影學習矩陣參數(shù)。
在某些情況下,多層神經(jīng)網(wǎng)絡(luò)已經(jīng)證明了具有學習分層特征的能力。然而,在殘差網(wǎng)絡(luò)被提出之前,簡單地增加層數(shù)并不容易應對更好的性能。殘差網(wǎng)絡(luò)的核心思想是通過殘差連接將底層特征傳播到高層。在使用前饋神經(jīng)網(wǎng)絡(luò)提取非線性特征時,為了防止深度神經(jīng)網(wǎng)絡(luò)退化,將底層全局會話的序列信息嵌入到最后一層,使模型更好地獲取全局偏好信息。
盡管全局偏好學習模塊可以用于捕獲會話的全局信息,但其聚合會話全局的序列信息仍然是一個線性模型。為了賦予模型非線性并考慮不同潛在維度之間的相互作用,本文引入了前饋神經(jīng)網(wǎng)絡(luò),其應用兩個線性變換,通過中間的ReLU激活函數(shù)來提取非線性特征。為了低層特征傳播到更高層特征,更好捕獲全局信息,同時緩解深度神經(jīng)網(wǎng)絡(luò)中的過擬合問題,加入了殘差網(wǎng)絡(luò)和Dropout正則化技術(shù)。
式中, W3,W4∈ Rd×d,b1、b2表示偏置向量。
最后,通過對局部偏好表示和全局偏好表示的向量進行線性融合來表示最終的會話
式中,W5∈ Rd×2d,sl表示局部偏好,sg表示全局偏好。在獲得每個會話最終表示后,通過將其初始嵌入項乘以會話表示sh來計算每個候選項目vi的得分,最后通過softmax函數(shù)獲得最終輸出
本文采用交叉熵損失函數(shù)來訓練模型
本節(jié)首先描述實驗中使用的數(shù)據(jù)集、評估指標和比較方法。然后,將本文提出的GNN?SAP方法與其他基線方法進行比較。最后,對不同實驗環(huán)境下的GNN?SAP進行詳細的分析。
本文在 Diginetica[29]、Tmall[30]和 Nowplaying[31]這3個真實數(shù)據(jù)集上驗證本文所提出的GNN?SAP方法的有效性。其中Diginetica數(shù)據(jù)集來自2016年CIKM杯,本研究僅使用其中的交易數(shù)據(jù),Tmall來自IJCAI?15大賽,其中包含匿名用戶在天貓網(wǎng)購平臺上的購物日志記錄。NowPlaying數(shù)據(jù)集來自文獻[31],描述了用戶的音樂收聽的行為信息。
本文按照文獻[4-5]對這3個數(shù)據(jù)集進行預處理。過濾掉數(shù)據(jù)集中長度為1的會話和出現(xiàn)次數(shù)少于5次的項目。將最新數(shù)據(jù)設(shè)置為測試數(shù)據(jù),剩余的歷史數(shù)據(jù)用于訓練。對于會話序列S={V1,V2,…,Vn}, 生成輸入和相應的標簽 ({V1},V2),({V1,V2},V3),…,({V1,V2,…,Vn-1},Vn) 用于在 3個數(shù)據(jù)集上進行訓練和測試。預處理后的數(shù)據(jù)如表1所示。
表1 實驗中數(shù)據(jù)集的統(tǒng)計數(shù)據(jù)
本文使用P@K和MRR@K評估指標來評估推薦模型的性能,這些指標也廣泛用于其他相關(guān)的評價工作。
P@K:P@K指標被廣泛作為推薦領(lǐng)域預測準確性的衡量標準。P@K表示測試用例在排名列表中的前K個位置中具有正確推薦項目的比例。本文采用P@10,P@20用于所有測試。P@K定義為
式中,N表示推薦系統(tǒng)中測試樣本數(shù)據(jù)的總量,nhit表示在前K個排名列表中具有正確項目的數(shù)量,當推薦項目出現(xiàn)在推薦的排名列表的前K個位置時發(fā)生命中。
MRR@K:平均倒數(shù)排名是正確推薦的項目的倒數(shù)排名的平均值。當排名超過K時,指標值設(shè)置為0。MRR度量考慮推薦排名的順序,其中越大的MRR值表示推薦的項目排在列表頂部。本文采用MRR@10,MRR@20指標,MRR@K 定義為
式中,N表示測試數(shù)據(jù)中樣本總數(shù),M表示前K個推薦物品中包含正確項目的樣本集,Rank(t)表示項目t在推薦排名列表中的排名。
為了評價GNN?SAP方法的性能,本文將其與以下具有代表性的推薦方法進行比較:
POP:該模型是結(jié)構(gòu)較為簡單的推薦方法,總是根據(jù)訓練集中物品出現(xiàn)的頻率推薦項目,推薦出現(xiàn)頻率較高的項目。
Item?KNN[32]:該方法是一個傳統(tǒng)項目到項目的推薦,向用戶推薦與會話中先前點擊的項目相似的項目,其中相似性定義為會話向量之間的余弦相似性。
FPMC[1]:采用矩陣分解和一階馬爾可夫鏈分解的組合作為其推薦方法,可以捕獲用戶的長期偏好以及項目到項目的轉(zhuǎn)換。
GRU4Rec[15]:一種基于RNN的會話推薦模型,由門控循環(huán)單元GRU組成,利用會話并行的小批量訓練過程,并在訓練過程中采用基于排名的損失函數(shù)。
NARM[16]:采用具有注意力機制的RNN來捕捉用戶的主要目的和序列行為,并將其與候選項目相結(jié)合以生成推薦。
STAMP[17]:一種短期記憶優(yōu)先級模型,采用注意力機制和MLP網(wǎng)絡(luò)從之前的點擊中捕獲用戶的長期偏好與會話中最后一次點擊的當前興趣相結(jié)合。
CSRM[32]:通過利用記憶網(wǎng)絡(luò)來捕獲最新的會話,以更好地預測用戶當前會話的興趣。
FGNN[18]:最近提出的一種通過設(shè)計加權(quán)注意力圖層來捕獲項目嵌入,下一個推薦的會話項目由圖級特征提取器學習。
SR?GNN[4]:最近提出的基于會話的圖神經(jīng)網(wǎng)絡(luò)推薦模型,通過GNN捕獲當前會話的潛在信息并且通過傳統(tǒng)的注意力網(wǎng)絡(luò)提取會話中的信息進行預測。
為使實驗結(jié)果公平公正,所有基線模型的參數(shù)設(shè)置均一致。本文將3個數(shù)據(jù)集潛在向量的維度設(shè)置為 100,batch?size 大小設(shè)置為 100,對于 CSRM,將內(nèi)存編碼器大小設(shè)置為100,對于FGNN,將GNN層數(shù)設(shè)置為3,頭數(shù)設(shè)置為8。在本文提出的模型GNN?SAP中,參數(shù)均使用均值為0且標準差為0.1的高斯分布進行初始化,并使用Adam優(yōu)化器,其初始學習率為0.001,每3個epoch后將衰減0.1。L2懲罰系數(shù)設(shè)置為10-5,迭代次數(shù)為30。
3.5.1 與基線模型比較
GNN?SAP和9個基線模型在3個真實數(shù)據(jù)集上的實驗結(jié)果如表2所示。其中每一列的最佳結(jié)果以粗體突出顯示,與基線模型相比 GNN?SAP在Diginetica上的表現(xiàn)比SR?GNN平均高出3.6%,在Tmall上平均高出8.7%,在Nowplaying上平均高出5.6%??梢杂^察到,GNN?SAP在所有3個數(shù)據(jù)集上以兩個指標(k=10和k=20)一致地實現(xiàn)了最佳性能,從而驗證了本文提出的方法的有效性。
表2 GNN?SAP與基線模型的性能對比
對于POP這種傳統(tǒng)算法,它的性能相對較差。這種簡單的模型僅基于重復的共現(xiàn)項目或?qū)B續(xù)項目進行推薦,這在基于會話的推薦場景中是存在問題的。與POP相比,F(xiàn)PMC利用一階馬爾可夫鏈和矩陣分解在3個數(shù)據(jù)集上均顯示了其有效性。Item?KNN在Diginetica和Nowplaying數(shù)據(jù)集上取得了比基于馬爾可夫鏈的FPMC更好的結(jié)果。但是Item?KNN僅利用項目之間的相似性,而沒有考慮會話序列順序。這表明傳統(tǒng)的基于馬爾可夫鏈的方法主要依賴于連續(xù)項目的獨立性的假設(shè)是不現(xiàn)實的。
在基于深度學習的會話推薦中,基于神經(jīng)網(wǎng)絡(luò)的方法與傳統(tǒng)方法相比往往具有更好的性能。GRU4Rec作為基于 RNN的推薦方法,盡管在Diginetica和Nowplaying數(shù)據(jù)集上表現(xiàn)較差,但仍然顯示了RNN在序列建模中的能力。NARM和STAMP在3個數(shù)據(jù)集上均優(yōu)于GRU4Rec。NARM不僅使用RNN對會話序列進行建模,而且使用注意力機制來捕獲主要會話序列中信息,這表明關(guān)鍵會話序列的信息在推薦中的重要性。STAMP基于注意力機制提取長期興趣并將最后一次點擊作為短期興趣,將短期與長期興趣相結(jié)合預測用戶偏好,在幾乎所有情況下都優(yōu)于傳統(tǒng)會話推薦。這一結(jié)果證明了在會話不同項目上分配不同的注意力權(quán)重將短期與長期偏好相結(jié)合的有效性。
在所有的基線方法中,基于GNN的方法在大多數(shù)情況下表現(xiàn)優(yōu)于傳統(tǒng)和基于RNN的方法。其考慮了當前會話中項目之間的轉(zhuǎn)換,將每個會話建模為圖形,通過GNN捕獲當前會話節(jié)點的豐富信息。SR?GNN和FGNN證明了在基于會話的推薦中應用GNN提取局部信息的有效性。這表明利用圖神經(jīng)網(wǎng)絡(luò)建模會話局部信息將比序列建模、RNN或集合建模更適合于會話推薦。
本文提出GNN?SAP方法通過GNN和注意力網(wǎng)絡(luò)捕獲用戶的局部偏好,與之前推薦方法不考慮全局偏好或者簡單提取全局偏好不同,本文在模型中加入了一個用來專門提取全局偏好表示的模塊,以此更好地提取匿名會話的全局偏好。為了提取全局偏好非線性特征以及防止神經(jīng)網(wǎng)絡(luò)過擬合,加入了前饋神經(jīng)網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)??紤]到不同訪問順序會話節(jié)點隱含了不同的信息,因此在會話節(jié)點之間加入了可學習的位置嵌入模塊,保留原有的位置信息。
本文提出的方法GNN?SAP在所有3個數(shù)據(jù)集上都明顯優(yōu)于SR?GNN,具體結(jié)果如圖3所示。與傳統(tǒng)GNN和RNN方法不同,本文提出的方法考慮了會話全局信息和會話的局部信息,并且還集成了相對位置信息,從而獲得一致的更好性能。
圖3 GNN?SAP與基線模型的性能對比
3.5.2 不同捕獲方式的影響
本文提出的GNN?SAP從會話局部和全局的角度考慮來預測用戶行為,為了找出不同模塊對GNN?SAP性能的貢獻,本節(jié)進行了消融研究,比較僅采用局部偏好學習模塊(GNN?Local)、全局偏好學習模塊(GNN?Global)和兩者相結(jié)合(GNN?SAP)的效果,如表3所示。請注意,這里只展示 P@20和MRR@20的結(jié)果,因為P@10和MRR@10的變化趨勢與它們相似。
表3 不同捕獲方式的比較
從表3結(jié)果可以看出,在3個數(shù)據(jù)集上,對于基于GNN的短期偏好學習比基于自注意力的長期偏好學習取得了更好的預測效果。這證明了圖神經(jīng)網(wǎng)絡(luò)比注意力機制更適合用來提取當前會話節(jié)點的局部的復雜信息和動態(tài)偏好,同時全局偏好學習模塊在捕獲靜態(tài)偏好上也具有一定的有效性。本文提出的GNN?SAP模型在3個數(shù)據(jù)集上明顯優(yōu)于單獨的局部偏好學習和全局偏好學習模塊,這表明從當前會話的局部和全局偏好捕獲用戶動態(tài)和靜態(tài)偏好的有效性,局部信息與全局信息互補,為用戶提供更好的推薦。
3.5.3 不同組件的影響
本文提出的GNN?SAP中加入了可學習的位置嵌入模塊、FFN和殘差網(wǎng)絡(luò)等,本節(jié)通過消融研究來分析它們產(chǎn)生的不同影響,表4顯示了默認方法及其變體在3個數(shù)據(jù)集上取得的效果。
表4 不同組件的性能比較
Remove PE(Postitional Embedding):從 GNN?SAP中移除可學習的位置嵌入模塊,從表4中可以看出,GNN?SAP在3個數(shù)據(jù)集上相比移除位置嵌入模塊的方法取得了更好的效果。這表明在當前會話節(jié)點和全局會話序列中加入位置信息,可以更好地保存會話中原有訪問順序,以便更好捕獲會話序列中的復雜信息,來進行更為準確的推薦。
Remove FR:從GNN?SAP中移除FFN和殘差網(wǎng)絡(luò)。從表4中可以看出,GNN?SAP在3個數(shù)據(jù)集上均表現(xiàn)比較好。這表明了通過加入FFN和殘差網(wǎng)絡(luò)來提取用戶非線性特征和底層用戶信息的有效性,能更好地提取用戶會話的全局偏好信息。
本文研究了基于會話的推薦問題,這是一項具有挑戰(zhàn)性的任務,因為由于隱私和數(shù)據(jù)保護的考慮,用戶身份和歷史訪問記錄常常難以獲取。因此,本文提出了一種基于圖神經(jīng)網(wǎng)絡(luò)和改進的自注意力機制的會話推薦系統(tǒng)。從用戶全局偏好和局部偏好上共同考慮用戶興趣的變化。具體地說,首先將會話序列構(gòu)建成會話圖,通過GNN來提取會話圖中豐富的局部上下文信息,隨后通過注意力機制來提取用戶的短期偏好。其次,通過改進注意力網(wǎng)絡(luò)和前饋神經(jīng)網(wǎng)絡(luò)來提取會話的全局偏好,將局部上下文信息和全局上下文信息相融合,以增強對用戶的預測。同時在用戶會話中加入了位置嵌入向量,以保存原有的訪問信息。在3個真實數(shù)據(jù)集上的實驗結(jié)果表明,該方法顯著優(yōu)于9個基線算法。