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