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