孫 鑫,劉學(xué)軍,李 斌,梁 珂
(南京工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 211816)
在基于會話的推薦問題中,經(jīng)典的協(xié)同過濾和矩陣分解[1,2]方法并不適用。近年來,大多數(shù)研究將循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)應(yīng)用于基于會話的推薦系統(tǒng)中[3-6],取得了良好的效果。然而,這些算法仍然存在以下問題:①只使用用戶點(diǎn)擊序列對連續(xù)項(xiàng)目之間的單向轉(zhuǎn)換建模,忽略了會話中的其它項(xiàng)目,即忽略了遠(yuǎn)距離項(xiàng)目之間的復(fù)雜轉(zhuǎn)換。②忽略項(xiàng)目的瀏覽時間信息。人們普遍認(rèn)為,用戶傾向于花更多時間在他們感興趣的項(xiàng)目上,而這些感興趣的項(xiàng)目總是與用戶當(dāng)前的目標(biāo)密切相關(guān)。因此,項(xiàng)目的瀏覽時間是會話序列推薦中的一個重要特征。③在基于會話的推薦中,會話大多是匿名的,而且數(shù)量眾多,再加上在會話點(diǎn)擊中涉及的用戶行為通常是有限的,因此很難準(zhǔn)確地估計(jì)每個會話的向量表示。為了解決上述問題,提出了一種基于圖神經(jīng)網(wǎng)絡(luò)和時間注意力機(jī)制的會話序列推薦方法,稱為GNN-TA-SR(graph neural networks with time attention mechanism for session-based reco-mmendations)。該方法利用門控圖形神經(jīng)網(wǎng)絡(luò),建模項(xiàng)目之間的復(fù)雜轉(zhuǎn)換并得到項(xiàng)目隱含向量,然后,基于得到的項(xiàng)目隱含向量,利用一個時間注意力網(wǎng)絡(luò)生成準(zhǔn)確的會話向量表示。其中,時間注意力因子(time attention factors,TAF)是根據(jù)用戶瀏覽過程中項(xiàng)目的持續(xù)時間信息創(chuàng)造性地計(jì)算出來的。
傳統(tǒng)的基于會話的推薦方法主要包括基于項(xiàng)目的鄰域方法和基于馬爾可夫鏈的序列方法。
基于項(xiàng)目的鄰域方法在會話期間根據(jù)項(xiàng)目的相似性矩陣來向用戶推薦與當(dāng)前點(diǎn)擊的項(xiàng)目最相似的項(xiàng)目,其中項(xiàng)目相似性是根據(jù)同一會話中的共現(xiàn)計(jì)算的,即在會話中經(jīng)常一起點(diǎn)擊的項(xiàng)目被認(rèn)為是相似的。這些方法難以考慮項(xiàng)目的順序并僅基于最后點(diǎn)擊生成預(yù)測。
然后,提出了基于馬爾可夫鏈的序列方法,該方法基于先前的點(diǎn)擊預(yù)測用戶的下一步行為?;隈R爾可夫鏈的序列方法將推薦生成作為序列優(yōu)化問題處理,文獻(xiàn)[7]采用馬爾可夫決策過程(MDPs)作為解決方案。文獻(xiàn)[8]基于馬爾可夫鏈提出了一種個性化的序列推薦模型,將矩陣分解和馬爾可夫鏈方法結(jié)合起來,同時適應(yīng)長期和短期動態(tài)。這些方法的主要問題是,當(dāng)試圖包括用戶所有可能選擇的序列時,狀態(tài)空間很快變得難以管理。
深度神經(jīng)網(wǎng)絡(luò)最近被驗(yàn)證在建模序列數(shù)據(jù)方面非常有效[9]。受自然語言處理領(lǐng)域最新研究進(jìn)展的啟發(fā),已經(jīng)開發(fā)了一些基于深度學(xué)習(xí)的解決方案。Hidasi等[3]首先提出了一種循環(huán)神經(jīng)網(wǎng)絡(luò)方法,然后通過數(shù)據(jù)增強(qiáng)技術(shù)和考慮用戶行為的時間轉(zhuǎn)換來改進(jìn)模型[4]。Li等[6]提出一種基于RNN的編碼器-解碼器模型(NARM),它將來自RNN的最后隱藏狀態(tài)作為序列行為,并使用先前點(diǎn)擊的隱藏狀態(tài)進(jìn)行注意力計(jì)算,以捕獲給定會話中的主要目的。Jannach和Ludewig[10]將循環(huán)方法和基于鄰域的方法結(jié)合在一起,以混合順序模式和共現(xiàn)信號。Tuan和Phuong[5]將會話點(diǎn)擊與內(nèi)容特征(例如項(xiàng)目描述和項(xiàng)目類別)結(jié)合起來,通過使用三維卷積神經(jīng)網(wǎng)絡(luò)生成推薦。Liu等[11]提出了一個短期注意優(yōu)先模型(STAMP),通過采用簡單的MLP網(wǎng)絡(luò)和注意力網(wǎng)絡(luò)來捕捉用戶的一般興趣和當(dāng)前興趣。
近年來,圖神經(jīng)網(wǎng)絡(luò)(graph neural network,GNN)在社交網(wǎng)絡(luò)、知識圖譜、推薦系統(tǒng),甚至生命科學(xué)等各個領(lǐng)域越來越受歡迎[12-15],它是一種直接在圖結(jié)構(gòu)上運(yùn)行的神經(jīng)網(wǎng)絡(luò)。門控GNN[16]是GNN的一種改進(jìn),它使用門控循環(huán)單元,通過BPTT(back-propagation through time)計(jì)算梯度。最近,GNN被用于建模自然語言處理和計(jì)算機(jī)視覺應(yīng)用的圖形結(jié)構(gòu)依賴性,例如,腳本事件預(yù)測[17]、情境識別[18]和圖像分類[19]。圖神經(jīng)網(wǎng)絡(luò)能夠在考慮豐富節(jié)點(diǎn)連接的情況下自動提取會話圖的特征,非常適合基于會話的推薦。
對于基于會話的推薦,首先從歷史會話序列構(gòu)造有向圖?;跁拡D,GNN能夠捕獲項(xiàng)目的轉(zhuǎn)換并相應(yīng)地生成精確的項(xiàng)目隱含向量,這是以前的序列方法難以做到的,如基于馬爾可夫鏈和基于RNN的方法。基于準(zhǔn)確的項(xiàng)目隱含向量,所提出的GNN-TA-SR可以構(gòu)造更可靠的會話表示,并且可以推斷出下一次點(diǎn)擊項(xiàng)目。
圖1為所提出的GNN-TA-SR方法的總體框架。首先,所有會話序列都被建模為有向會話圖G =(V,ε), V 是節(jié)點(diǎn)的集合,由項(xiàng)目空間所有且唯一的項(xiàng)目組成,一個項(xiàng)目就是有向圖中的一個節(jié)點(diǎn)v,ε是有向邊的集合,v→v′∈ε是有向邊,表示用戶在會話s中點(diǎn)擊項(xiàng)目v之后又點(diǎn)擊了項(xiàng)目v′。其中每個會話序列可以被視為子圖,如圖1會話圖中虛線框部分所表示的會話序列s=[v3,v1,v3,v5,v7]。然后,依次對每個會話圖進(jìn)行處理,通過門控圖神經(jīng)網(wǎng)絡(luò)得到每個圖中涉及的所有節(jié)點(diǎn)的隱含向量。之后,將每個會話表示為全局偏好和該會話中用戶的當(dāng)前興趣的組合,其中全局偏好向量和用戶當(dāng)前興趣均由節(jié)點(diǎn)的隱含向量組成。最后,對于每個會話,模型預(yù)測每個項(xiàng)目成為下一個點(diǎn)擊的概率。
圖1 GNN-TA-SR的總體框架
每個會話序列s=[v1,v2,…,vn]都可以被視為有向圖G的子圖Gs= (Vs,εs),在此會話圖中,每個節(jié)點(diǎn)代表一個項(xiàng)目vi∈V。每條邊(vi,vi+1)∈εs表示用戶在會話s中的vi之后點(diǎn)擊項(xiàng)目vi+1。由于會話序列中可能出現(xiàn)多個重復(fù)點(diǎn)擊的項(xiàng)目,所以需要給每條邊分配一個歸一化加權(quán)值,該值被計(jì)算為該邊的出現(xiàn)次數(shù)除以該邊的起始節(jié)點(diǎn)的出度。將每個項(xiàng)目v∈V映射到一個統(tǒng)一的嵌入空間中,節(jié)點(diǎn)向量hv∈d表示通過圖神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的項(xiàng)目v的隱含向量,其中d是維度。
具體地,對于圖Gs的節(jié)點(diǎn)vi,節(jié)點(diǎn)向量的學(xué)習(xí)更新函數(shù)如下
(1)
(2)
(3)
(4)
(5)
其中,H∈d×2d控制權(quán)重,hvi表示節(jié)點(diǎn)vi的隱含向量,矩陣A∈n×2n決定圖中的節(jié)點(diǎn)如何相互通信。以會話序列s=[v5,v6,v4,v6,v4,v6,v7]為例,如圖2所示,圖(a)是會話s對應(yīng)的會話圖,圖(b)是展開的一個時間步,實(shí)線邊對應(yīng)于圖(a)中的有向邊,虛線邊對應(yīng)于有向邊的反向邊,每條邊的權(quán)重分別對應(yīng)于圖(c)矩陣A中的非零參數(shù)。A定義為兩個鄰接矩陣Aout和Ain的串聯(lián),它們分別表示會話圖中輸出和輸入邊的加權(quán)連接。Ai:∈1×2n是矩陣A中對應(yīng)于節(jié)點(diǎn)vi的一行。對于每個會話圖Gs,門控圖神經(jīng)網(wǎng)絡(luò)同時處理節(jié)點(diǎn)。在矩陣A給出的限制條件下,等式(1)是在圖的不同節(jié)點(diǎn)之間通過傳入和傳出的邊傳遞信息的步驟,式(2)~式(5)類似于門控循環(huán)單元(gated recurrent unit,GRU)的更新,它們包含來自其它節(jié)點(diǎn)和前一個時間步的信息,以更新每個節(jié)點(diǎn)的隱藏狀態(tài)。其中,z和r是更新門和重置門,σ(·)是sigmoid函數(shù),⊙是點(diǎn)乘運(yùn)算符。通過對會話圖中所有節(jié)點(diǎn)進(jìn)行更新直至收斂,可以獲得最終的節(jié)點(diǎn)向量。
圖2 會話s=[v5,v6,v4,v6,v4,v6,v7]
在瀏覽過程中,用戶總是傾向于在感興趣的項(xiàng)目上花費(fèi)更多的時間,而對于不喜歡的項(xiàng)目或者無意間點(diǎn)擊的項(xiàng)目,他們可能只會瀏覽很短的時間。此外,用戶的下一個瀏覽項(xiàng)目總是與用戶當(dāng)前的興趣相關(guān)聯(lián)。因此,我們使用項(xiàng)目瀏覽時間來計(jì)算時間注意力因子,它可以反映之前點(diǎn)擊的項(xiàng)目與用戶當(dāng)前興趣的聯(lián)系。這些計(jì)算出的注意力因子將被添加到時間注意力網(wǎng)絡(luò)中用于生成會話向量表示。圖3顯示了時間注意力因子的計(jì)算過程。計(jì)算過程分為4個步驟:項(xiàng)目瀏覽時間的計(jì)算、設(shè)置瀏覽時間的閾值、z分?jǐn)?shù)變換和歸一化操作。
圖3 時間注意力因子的計(jì)算過程
從數(shù)據(jù)集中每個事件的時間戳,可以獲得每個項(xiàng)目的瀏覽時間。圖4顯示了RecSys Challenge 2015數(shù)據(jù)集中的項(xiàng)目瀏覽時間分布,只有約1%項(xiàng)目的瀏覽時間超過1500 s。這些長時間的瀏覽可能是由于瀏覽行為被某些東西打斷,并且在他(或她)離開之前瀏覽頁面沒有關(guān)閉。為了避免異常的長時間瀏覽的影響,應(yīng)該設(shè)置一個時間閾值Tth。假設(shè)在正常情況下,每個項(xiàng)目的瀏覽行為都可以在Tth時間范圍內(nèi)完成,如果用戶對一個項(xiàng)目的瀏覽時間超過該閾值,則視為異常行為并設(shè)置瀏覽時間為Tth。Tth的具體取值取決于實(shí)際應(yīng)用的需要,根據(jù)RecSys Challenge 2015數(shù)據(jù)集的特點(diǎn),下面的分析將Tth設(shè)置為1500 s。
圖4 RecSys Challenge 2015數(shù)據(jù)集中的項(xiàng)目瀏覽時間分布
在GNN-TA-SR模型中,我們不關(guān)心項(xiàng)目瀏覽時間的絕對值,而關(guān)心的是每個項(xiàng)目瀏覽時間所占的比例。例如,在會話s1中,用戶在項(xiàng)目v1、v2、v3上的瀏覽時間分別為30 s,60 s和180 s,而在另一條會話s2中,用戶在v1、v2、v3上的瀏覽時間分別為250 s、168 s和180 s。顯然,在第一條會話中用戶喜歡v3的程度要大于在第二條會話中用戶喜歡v3的程度,盡管他們在v3上的瀏覽時間相同。如果直接使用項(xiàng)目的瀏覽時間作為它們的注意力因子,系統(tǒng)可能會錯誤地認(rèn)為項(xiàng)目v3對會話s1和會話s2同等重要。為了避免這個錯誤,更準(zhǔn)確地衡量會話序列中每個項(xiàng)目的重要性,使用項(xiàng)目的瀏覽時間信息和它所屬會話的全局信息計(jì)算項(xiàng)目的z分?jǐn)?shù)。z分?jǐn)?shù)值定義如下
(6)
為了使每條會話的興趣表示保持一致,通過使用sigmoid函數(shù)將計(jì)算得到的z分?jǐn)?shù)進(jìn)行歸一化。項(xiàng)目的時間注意力因子由下式表示
(7)
基于節(jié)點(diǎn)向量,每個會話s可以表示為一個嵌入向量hs,該向量由該會話中涉及的節(jié)點(diǎn)向量直接表示。為了更好地預(yù)測用戶的下一次點(diǎn)擊,我們制定了幾種策略以結(jié)合會話的全局(長期)偏好和當(dāng)前興趣,并將此混合向量用作會話向量。
GNN-SR-AVE:將會話中點(diǎn)擊的項(xiàng)目視為同等重要,忽略瀏覽時間差異,sg表示用戶在當(dāng)前會話的長期偏好,被定義為節(jié)點(diǎn)向量的平均值,st表示該會話中用戶的當(dāng)前興趣,在該方法中,將最后一次點(diǎn)擊vn視為的用戶當(dāng)前興趣
(8)
st=hvn
(9)
GNN-SR-TAF:考慮在一個會話中,用戶對每個項(xiàng)目的喜愛程度不同,或者點(diǎn)擊某個項(xiàng)目是屬于意外點(diǎn)擊,這些情況大都可以根據(jù)項(xiàng)目瀏覽時間反映出來,因此,引入時間注意力因子來計(jì)算用戶在當(dāng)前會話的長期偏好和當(dāng)前興趣
(10)
st=αtnhvn
(11)
GNN-SR-TAF0:為了控制變量,對比在計(jì)算當(dāng)前會話的長期偏好和當(dāng)前興趣引入時間注意力因子對推薦性能的影響,令
(12)
st=hvn
(13)
GNN-TA-SR:考慮會話中每個點(diǎn)擊的項(xiàng)目對整條會話和最后一次點(diǎn)擊的貢獻(xiàn)度不同,給每個項(xiàng)目賦予不同的權(quán)重
αi=qΤσ(W1hvi+W2hvn+W3sg′+c)
(14)
其中,令
(15)
從等式(14)可以看出,會話序列中每個項(xiàng)目的注意力系數(shù)是基于目標(biāo)項(xiàng)目vi、最后點(diǎn)擊vn和會話全局偏好的初步表示sg′來計(jì)算的。
則用戶在當(dāng)前會話的全局偏好
(16)
用戶的當(dāng)前興趣
st=αtnhvn
(17)
其中,參數(shù)q∈d、W1,W2,W3∈d×d用于控制項(xiàng)目向量的權(quán)重。
最后,以上3種策略均通過sg和st向量的串聯(lián)進(jìn)行線性變換來計(jì)算混合向量hs
hs=W4[sg;st]
(18)
其中,矩陣W4∈d×2d將兩個組合向量映射到潛在空間d中。
(19)
(20)
對于每個會話圖,損失函數(shù)定義為預(yù)測值與真實(shí)值的交叉熵,然后使用BPTT算法來訓(xùn)練模型
(21)
其中,y是真實(shí)的會話序列中下一個點(diǎn)擊項(xiàng)目的one-hot向量。注意,在基于會話的推薦場景中,大多數(shù)會話的長度相對較短。因此,建議選擇相對較少的訓(xùn)練步驟來防止過擬合。
在本節(jié)中,首先描述了實(shí)驗(yàn)中使用的數(shù)據(jù)集,數(shù)據(jù)預(yù)處理和評價(jià)指標(biāo)。然后,將提出的GNN-TA-SR與其它方法進(jìn)行了比較。最后在不同的實(shí)驗(yàn)設(shè)置下對GNN-TA-SR進(jìn)行了詳細(xì)的分析。
GNN-TA-SR模型在RecSys Challenge 2015發(fā)布的公開數(shù)據(jù)集Yoochoose中進(jìn)行訓(xùn)練和評估,該數(shù)據(jù)集包括從電子商務(wù)網(wǎng)站收集的6個月的點(diǎn)擊流,其中訓(xùn)練集僅包含會話事件。從文獻(xiàn)[20]中分析,該數(shù)據(jù)集中約90%的會話有7個或更少的事件,最長的會話包含262個事件。所有項(xiàng)目的平均交互次數(shù)為23,其中最受歡迎的項(xiàng)目在數(shù)據(jù)集中被點(diǎn)擊162 622次。
首先,從Yoochoose數(shù)據(jù)集中過濾掉長度為1的會話和點(diǎn)擊次數(shù)小于5次的項(xiàng)目,并劃分出Yoochoose數(shù)據(jù)集最后一天的會話數(shù)據(jù)作為測試集,之前的會話數(shù)據(jù)分別作為訓(xùn)練集,然后從測試集中刪除那些不曾出現(xiàn)在訓(xùn)練集中的項(xiàng)目。最終,Yoochoose數(shù)據(jù)集保留了7 966 257條會話和37 483個項(xiàng)目,共計(jì)31 637 239次點(diǎn)擊。
為了公平比較,遵循文獻(xiàn)[4]對會話序列進(jìn)行拆分處理,對于會話s=[v1,v2,…,vn],拆分成序列和相應(yīng)的標(biāo)簽([v1],v2), ([v1,v2],v3),…,([v1,v2,…,vn-1],vn)。因?yàn)閅oochoose訓(xùn)練集非常大,并且根據(jù)文獻(xiàn)[6]的實(shí)驗(yàn),在距離測試集較近的數(shù)據(jù)的訓(xùn)練會產(chǎn)生比在整個數(shù)據(jù)集的訓(xùn)練更好的結(jié)果,因此,實(shí)驗(yàn)中使用距離測試集時間最近的1/64和1/4的訓(xùn)練序列。兩個數(shù)據(jù)集的統(tǒng)計(jì)數(shù)據(jù)見表1。
表1 實(shí)驗(yàn)數(shù)據(jù)集統(tǒng)計(jì)
P @ 20 (Precision)被廣泛用作基于會話的推薦領(lǐng)域中預(yù)測準(zhǔn)確度的度量。它代表前20項(xiàng)中正確推薦的項(xiàng)目的比例。
MRR @ 20(mean reciprocal rank,MRR)是正確推薦項(xiàng)目的倒數(shù)排名的平均值。當(dāng)排名超過20時,倒數(shù)排名被設(shè)置為0。MRR度量是范圍[0,1]的歸一化分?jǐn)?shù),考慮推薦排名的順序,其中較大的MRR值表示正確的推薦位于排名列表的頂部,這表明相應(yīng)推薦系統(tǒng)的性能更好。
通過對所有數(shù)據(jù)集進(jìn)行廣泛的網(wǎng)格搜索來優(yōu)化超參數(shù),并且通過基于驗(yàn)證集上的P @ 20得分的早期停止來選擇最佳模型,驗(yàn)證集是訓(xùn)練集的隨機(jī)10%子集。網(wǎng)格搜索的超參數(shù)范圍如下:隱含向量維度d:{50,100,150,200},學(xué)習(xí)率η:{0.001,0.005,0.01,0.1,1}。根據(jù)平均性能,在本研究中,兩個數(shù)據(jù)集隱含向量的維度d設(shè)置為100。所有參數(shù)都使用均值為0、標(biāo)準(zhǔn)差為0.1的高斯分布初始化,并使用小批量Adam優(yōu)化器對這些參數(shù)進(jìn)行優(yōu)化,其中初始學(xué)習(xí)率η設(shè)置為0.001,每3個周期后衰減0.1。此外,批量大小和L2 正則化參數(shù)分別設(shè)置為100和10-5。
為了驗(yàn)證所提出算法的整體性能,將GNN-TA-SR算法同以下8種現(xiàn)有的解決會話型推薦問題的算法——POP、S-POP、Item-KNN、FPMC、GRU4Rec、GRU4Rec+、NARM、STAMP[7]進(jìn)行了比較:
POP和S-POP分別推薦訓(xùn)練集和當(dāng)前會話中的前N個頻繁項(xiàng)目。
Item-KNN推薦與會話中先前點(diǎn)擊的項(xiàng)目類似的項(xiàng)目,其中相似性被定義為會話向量之間的余弦相似度。
FPMC是一種基于馬爾可夫鏈的序列預(yù)測方法。
GRU4Rec[3]使用RNN對基于會話的推薦的用戶序列進(jìn)行建模。
GRU4Rec+[4]進(jìn)一步研究了RNN在基于會話推薦領(lǐng)域的應(yīng)用,提出了一種數(shù)據(jù)增強(qiáng)技術(shù),并改變輸入數(shù)據(jù)的數(shù)據(jù)分布,用于改進(jìn)模型的性能。
NARM[6]采用具有注意機(jī)制的RNN來捕獲用戶的主要目的和序列行為。
STAMP[11]捕捉用戶當(dāng)前會話的一般興趣和最后一次點(diǎn)擊的當(dāng)前興趣。
表2展示了所有算法在兩個數(shù)據(jù)集上P@20和MRR@20的總體性能。由于內(nèi)存不足,無法初始化FPMC,所以沒有報(bào)告Yoochoose 1/4的性能[6]。
表2 實(shí)驗(yàn)結(jié)果對比
基于圖神經(jīng)網(wǎng)絡(luò)的會話序列推薦算法將分離的會話序列聚合到圖結(jié)構(gòu)數(shù)據(jù)中,通過門控圖神經(jīng)網(wǎng)絡(luò)得到項(xiàng)目隱含向量。從表2可以看出,GNN-TA-SR在Yoochoose1/64和Yoochoose1/4數(shù)據(jù)集上以P@20和MRR@20實(shí)現(xiàn)了最先進(jìn)的性能,驗(yàn)證了所提模型的有效性。在該模型中,考慮了項(xiàng)目之間的復(fù)雜轉(zhuǎn)換并利用了項(xiàng)目瀏覽時間信息,綜合考慮了會話的全局偏好和當(dāng)前興趣。在本文所提出的4種混合策略中,GNN-TA-SR性能最佳,GNN-SR-TAF次之,GNN-SR-TAF0又優(yōu)于GNN-SR-AVE,這表明將會話中的所有項(xiàng)目視為同等重要是不合理的,通過添加時間注意力因子,以及計(jì)算每個項(xiàng)目對整條會話和最近點(diǎn)擊項(xiàng)目的貢獻(xiàn)度來得到會話的全局偏好可以提高推薦性能。此外,GNN-SR-TAF0略優(yōu)于GNN-SR-AVE表明,在當(dāng)前興趣st引入時間注意力因子,對最后點(diǎn)擊的項(xiàng)目賦予一個權(quán)重,也可以提高推薦性能。
對于POP、SPOP、Item-KNN和FPMC等傳統(tǒng)方法,其性能相對較差。這種簡單的模型僅基于重復(fù)的共同點(diǎn)擊的項(xiàng)目或連續(xù)的項(xiàng)目進(jìn)行推薦,這在基于會話的推薦場景中是有問題的。即便如此,S-POP仍然優(yōu)于POP和FPMC等,驗(yàn)證了會話上下文信息的重要性。與基于馬爾可夫鏈的FPMC相比,Item-KNN具有更好的性能。Item-KNN僅利用項(xiàng)目之間的相似性而不考慮序列信息,這表明傳統(tǒng)的基于馬爾可夫鏈的方法主要依賴的連續(xù)項(xiàng)目的獨(dú)立性假設(shè)是不現(xiàn)實(shí)的。此外,這樣的全局解決方案可能耗費(fèi)時間和內(nèi)存,使得它們無法擴(kuò)展到大規(guī)模數(shù)據(jù)集。
所有的神經(jīng)網(wǎng)絡(luò)基線都明顯優(yōu)于傳統(tǒng)模型,從而驗(yàn)證了深度學(xué)習(xí)技術(shù)在該領(lǐng)域的有效性。GRU4Rec+通過使用將單個會話拆分為多個子會話的數(shù)據(jù)增強(qiáng)技術(shù)來進(jìn)行訓(xùn)練,以提高GRU4Rec的性能。雖然GRU4Rec+不修改GRU4Rec的模型結(jié)構(gòu),但它們都只考慮了序列行為,這可能會遇到用戶興趣漂移的困難。NARM在基線中實(shí)現(xiàn)了比較好的性能,因?yàn)樗粌H使用具有GRU單元的RNN來建模序列行為,而且還使用注意力機(jī)制來捕獲主要目的,這表明主要目的信息在推薦中的重要性。這是合理的,因?yàn)楫?dāng)前會話中的項(xiàng)目的一部分可能反映用戶的主要目的并且與下一個項(xiàng)目相關(guān)。而STAMP通過使用最后點(diǎn)擊的項(xiàng)目來改進(jìn)短期內(nèi)存。這些方法顯式地對用戶的全局行為偏好進(jìn)行建模,并考慮用戶以前的動作和下一次點(diǎn)擊之間的轉(zhuǎn)換,從而獲得優(yōu)于這些傳統(tǒng)方法的性能。然而,它們的性能仍然低于所提出的方法。與NARM和STAMP等最先進(jìn)的方法相比,GNN-TA-SR進(jìn)一步考慮了會話序列項(xiàng)目之間的復(fù)雜轉(zhuǎn)換,從而將每個會話建模為一個圖,它可以捕獲用戶點(diǎn)擊之間更復(fù)雜和隱式的連接。而在NARM和GRU4Rec中,它們顯式地為每個用戶建模,并通過分離的會話序列獲得用戶表示,而忽略了項(xiàng)目之間可能的交互關(guān)系。因此,本文所提出的模型對會話行為的建模能力更強(qiáng)。
此外,GNN-TA-SR采用時間注意力機(jī)制生成會話向量表示,該會話向量可以自動選擇最重要的項(xiàng)目轉(zhuǎn)換,并忽略當(dāng)前會話中的噪聲和無效的用戶動作。相反,STAMP僅使用最后點(diǎn)擊的項(xiàng)目和先前的動作之間的轉(zhuǎn)換,這可能是不夠的。其它的RNN模型,如GRU4Rec和NARM,在傳播過程中也不能選擇有效的信息。它們使用先前所有的項(xiàng)目來獲得一個表示用戶一般興趣的向量。當(dāng)用戶的行為漫無目的,或者他的興趣在當(dāng)前會話中快速變化時,傳統(tǒng)的模型無法處理嘈雜的會話。
為了分析會話向量的不同組成部分對推薦性能的影響,將GNN-TA-SR與以下4種方法進(jìn)行了比較:①只考慮用戶的當(dāng)前興趣 (GNN-SR-L),即只考慮用戶最后點(diǎn)擊的項(xiàng)目;②只考慮平均池化的全局偏好向量(GNN-SR-AVEG);③引入時間注意力因子的全局偏好向量(GNN-SR-TAFG);④通過時間注意力網(wǎng)絡(luò)得到的全局偏好向量(GNN-TA-SRG),即GNN-TA-SR的全局偏好向量。圖5給出了對比結(jié)果。
圖5 會話向量不同組成部分之間的比較
從圖5中可以看出,混合向量方法GNN-TA-SR在兩個數(shù)據(jù)集上都獲得了最佳結(jié)果,這證實(shí)了將當(dāng)前會話興趣與長期偏好相結(jié)合的重要性。圖5中還顯示了在兩個數(shù)據(jù)集上帶時間注意力因子的GNN-SR-TAFG的性能明顯優(yōu)于平均池化的GNN-SR-AVEG,這表明考慮項(xiàng)目瀏覽時間是有效的。項(xiàng)目瀏覽時間在一定程度上反映了不同項(xiàng)目在會話中的重要性不同,引入時間注意力因子有利于識別會話中用戶真正喜歡的項(xiàng)目,也可以在一定程度上弱化意外點(diǎn)擊等噪聲行為對獲取會話向量表示的影響。此外,GNN-TA-SRG的性能優(yōu)于GNN-SR-AVEG,表明GNN-TA-SRG更有助于從會話數(shù)據(jù)中提取重要行為來構(gòu)建長期偏好;GNN-SR-L的性能優(yōu)于GNN-SR-AVEG和GNN-SR-TAFG,并且性能僅次于GNN-TA-SRG,這表明當(dāng)前興趣和長期偏好對于基于會話的推薦都是至關(guān)重要的。
在用戶偏好和歷史記錄難以獲取的情況下,基于會話的推薦是必不可少的。本文提出了一種基于圖神經(jīng)網(wǎng)絡(luò)和時間注意力機(jī)制的會話序列推薦算法,不僅考慮了會話序列項(xiàng)目之間的復(fù)雜結(jié)構(gòu)和轉(zhuǎn)換,將每個會話建模為一個有向圖來捕獲用戶點(diǎn)擊之間更復(fù)雜和隱式的連接,而且考慮項(xiàng)目的瀏覽時間信息,提出了一種結(jié)合會話的長期偏好和當(dāng)前興趣的策略,以更好地預(yù)測用戶的下一步動作。綜合實(shí)驗(yàn)結(jié)果表明,所提出的算法優(yōu)于其它最先進(jìn)的方法。