孫克雷,周志剛
(安徽理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)
推薦系統(tǒng)通過(guò)向用戶推薦有用的內(nèi)容成功地解決了信息過(guò)載的問(wèn)題。通常來(lái)說(shuō),推薦方法依賴于用戶的配置文件和長(zhǎng)期歷史交互的可用性,但當(dāng)這些信息不可用或可用的有限時(shí),這些方法就會(huì)失效。最近,針對(duì)該任務(wù)提出了很多基于深度學(xué)習(xí)的方法,其利用成對(duì)項(xiàng)目轉(zhuǎn)換信息來(lái)模擬給定會(huì)話的用戶偏好。這些方法取得了不錯(cuò)的效果,但仍面臨以下問(wèn)題:①通過(guò)使用循環(huán)按時(shí)間順序提取會(huì)話的成對(duì)項(xiàng)目轉(zhuǎn)換信息來(lái)推斷匿名用戶的偏好。②一些利用自我注意機(jī)制的圖神經(jīng)網(wǎng)絡(luò)模型,其性能嚴(yán)重依賴于當(dāng)前會(huì)話的用戶偏好與最后一個(gè)項(xiàng)目的相關(guān)性。
本文提出了一種基于自注意力和位置感知圖模型的會(huì)話推薦,稱為PA-GNN(session recommendations based on self-attention and position-aware graph models)。它不依賴最后一個(gè)項(xiàng)目和目標(biāo)項(xiàng)目的相關(guān)性,而是利用所有會(huì)話的一階鄰居信息和自注意機(jī)制進(jìn)行建模,以便更好地推斷當(dāng)前會(huì)話的用戶偏好以進(jìn)行基于會(huì)話的推薦。
會(huì)話推薦可以采用多種傳統(tǒng)方法,雖然這些方法的誕生的最初想法并不是用來(lái)做會(huì)話推薦的。例如,基于馬爾可夫鏈的方法將當(dāng)前會(huì)話映射到馬爾可夫鏈中,然后基于前一個(gè)會(huì)話來(lái)推測(cè)用戶的下一步操作。因子分解個(gè)性化馬爾可夫鏈(factorizing personalized markov chains for next-basket recommendation,F(xiàn)PMC)通過(guò)基于矩陣分解和一階馬爾可夫鏈組合的方法來(lái)捕獲長(zhǎng)期用戶偏好和順序模式以供推薦。它可以通過(guò)忽略用戶潛在表示來(lái)適應(yīng)會(huì)話推薦。然而,基于馬爾科夫鏈的方法通常側(cè)重于建模兩個(gè)相鄰項(xiàng)目的順序轉(zhuǎn)換。相比之下,PA-GNN模型將順序項(xiàng)目轉(zhuǎn)換為圖形結(jié)構(gòu)數(shù)據(jù),以捕獲會(huì)話項(xiàng)目轉(zhuǎn)換模式的固有順序。
近年來(lái),基于神經(jīng)網(wǎng)絡(luò)的方法由于能夠?qū)樞驍?shù)據(jù)建模已經(jīng)用于會(huì)話推薦中?;谘h(huán)神將網(wǎng)絡(luò)的會(huì)話推薦(session-based recommendations with recurrent neural networks,GRU4REC)是第一個(gè)將循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)應(yīng)用于會(huì)話推薦的模型。它采用多層門(mén)控遞歸單元(gated recurrent unit,GRU)來(lái)模擬項(xiàng)目交互序列。文獻(xiàn)[6]基于神經(jīng)專心會(huì)話的推薦模型(neural attentive session-based recommendation,NARM)提出了將注意機(jī)制結(jié)合到GRU編碼器中,它可以捕獲會(huì)話推薦更具代表性的項(xiàng)目轉(zhuǎn)換信息。文獻(xiàn)[8]基于注意力的短期記憶網(wǎng)絡(luò)推薦模型(short-term attention memory priority model for session-based recommendation,STAMP),通過(guò)記憶網(wǎng)絡(luò)捕捉用戶的當(dāng)前興趣。文獻(xiàn)[17]具有并行內(nèi)存模塊的基于協(xié)作會(huì)話的推薦方法(collaborative session-based recommendation approach with parallel memory modu-les,CSRM)利用記憶網(wǎng)絡(luò)和RNN關(guān)注最近的m個(gè)會(huì)話獲取協(xié)作信息,以端到端的方式豐富當(dāng)前會(huì)話的表示。然而,類似于基于馬爾科夫鏈的方法,上述根據(jù)RNN的方法在模型設(shè)計(jì)中始終側(cè)重于轉(zhuǎn)換相鄰項(xiàng)的比較順序來(lái)推斷用戶的個(gè)人偏好,因此無(wú)法對(duì)相當(dāng)復(fù)雜的轉(zhuǎn)換進(jìn)行建模(例如,非相鄰項(xiàng)目轉(zhuǎn)換)進(jìn)行建模。最近,基于圖神經(jīng)網(wǎng)絡(luò)(graph neural network,GNN)[18-20]被廣泛應(yīng)用于會(huì)話推薦,它通過(guò)從當(dāng)前會(huì)話構(gòu)建的圖形來(lái)學(xué)習(xí)會(huì)話推薦的項(xiàng)目嵌入。文獻(xiàn)[19]基于會(huì)話的圖神經(jīng)網(wǎng)絡(luò)推薦模型(session-based recommendation with graph neural networks,SR-GNN),它根據(jù)每個(gè)項(xiàng)目與最后一個(gè)項(xiàng)目的相關(guān)性學(xué)習(xí)項(xiàng)目嵌入與注意力相結(jié)合來(lái)獲得最終的會(huì)話嵌入。在SR-GNN模型成功之后,還為會(huì)話推薦提出了一些變體,例如文獻(xiàn)[20]基于圖上下文自我注意力網(wǎng)絡(luò)的會(huì)話推薦模型(graph contextualized self-attention network for session-based recommendation,GC-SAN),它將SR-GNN模型的注意力替換為自注意力機(jī)制[13,14],通過(guò)自注意力機(jī)制自適應(yīng)的捕捉項(xiàng)目之間的依賴關(guān)系。
為了捕捉會(huì)話中不同項(xiàng)目之間的復(fù)雜關(guān)系,提出了基于自注意力和位置感知圖模型的會(huì)話推薦(PA-GNN),模型框架如圖1所示。在模型中,我們將會(huì)話序列通過(guò)GNN建模為會(huì)話圖,學(xué)習(xí)當(dāng)前會(huì)話的項(xiàng)目嵌入。通過(guò)位置感知注意力學(xué)習(xí)不同節(jié)點(diǎn)之間更復(fù)雜的依賴關(guān)系。通過(guò)自注意力機(jī)制自適應(yīng)地捕捉會(huì)話的全局依賴關(guān)系。最后將全局會(huì)話與局部會(huì)話結(jié)合,獲取會(huì)話級(jí)別的表示。該模型分為4個(gè)部分。
(1)構(gòu)建會(huì)話圖,將會(huì)話序列建模為圖結(jié)構(gòu),通過(guò)GGNN學(xué)習(xí)當(dāng)前會(huì)話的項(xiàng)目嵌入。
(2)位置感知注意力及反向位置編碼,考慮到會(huì)話圖中的項(xiàng)目鄰居有不同的影響,本文借助注意力機(jī)制來(lái)分配兩個(gè)不同節(jié)點(diǎn)相互間的權(quán)重值。不同項(xiàng)目對(duì)下一個(gè)預(yù)測(cè)的貢獻(xiàn)是不相等的,稍后點(diǎn)擊的項(xiàng)目更能代表用戶當(dāng)前的偏好。因此本文結(jié)合了反向位置信息和會(huì)話信息以做出更好的預(yù)測(cè)。
(3)融合兩種注意力獲取最終會(huì)話表示,為了多維度的提取用戶的興趣,獲得會(huì)話級(jí)別的表示,本文采用自注意力機(jī)制與軟注意機(jī)制結(jié)合的新注意力機(jī)制。即自注意機(jī)制獲取的全局會(huì)話表示和軟注意機(jī)制獲取的局部會(huì)話表示。
(4)預(yù)測(cè)層,基于獲得的會(huì)話表示,每個(gè)候選項(xiàng)目基于其初始嵌入以及當(dāng)前會(huì)話表示預(yù)測(cè)每個(gè)候選項(xiàng)目在下一項(xiàng)中被點(diǎn)擊的概率。
圖1 PA-GNN模型框架
在會(huì)話圖中,每個(gè)會(huì)話序列都轉(zhuǎn)換為會(huì)話圖,用于通過(guò)GNN學(xué)習(xí)當(dāng)前會(huì)話中項(xiàng)目的嵌入,定義如下,給定會(huì)話S={vs1,vs2,…vsl}, 所有會(huì)話被建模為有向圖Gs=(Vs,Es),Vs表示被點(diǎn)擊的項(xiàng)目的統(tǒng)稱,Es則表示所有邊的集合,在會(huì)話S中,兩個(gè)相鄰的項(xiàng)目代表一條相鄰的邊,在本文中被稱為會(huì)話級(jí)項(xiàng)目轉(zhuǎn)換。通過(guò)之前FGNN的工作,本文為每一個(gè)項(xiàng)目都增加了一個(gè)自我循環(huán)。
與SR-GNN[19]模型不同的是,本文構(gòu)建的會(huì)話圖在項(xiàng)目i與項(xiàng)目j之間有4種不同的邊關(guān)系,分別表示為 {din,dout,din,out,dself}。 對(duì)于邊 (vsi,vsj) 來(lái)說(shuō),din表示僅僅有vsj到vsi的邊,dout表示僅僅有vsi到vsj的邊,din,out表示vsi到vsj以及vsj到vsi的邊都有,dself表示項(xiàng)目的自我循環(huán)。會(huì)話如圖2所示。
圖2 會(huì)話
門(mén)控圖神經(jīng)網(wǎng)絡(luò)是特殊的一種圖神經(jīng)網(wǎng)絡(luò),更新函數(shù)如下所示
(1)
zts,i=σ(Wzats,i+Uzht-1vi)
(2)
rts,i=σ(Wrats,i+Urht-1vi)
(3)
vti=tanh(Woats,i+Uo(rts,i⊙vt-1i))
(4)
(5)
式(1)表示不同節(jié)點(diǎn)之間的信息傳播的過(guò)程,其中H∈Rd×2d為權(quán)重矩陣,b∈Rd是權(quán)重向量,[ht-1v1,ht-1v2,…h(huán)t-1vn] 為會(huì)話s中的節(jié)點(diǎn)向量列表。式(2)和式(3)中,zts,i和rts,i分別是重置門(mén)和更新門(mén),分別決定保留和丟棄哪些信息,σ(·) 為激活函數(shù)。式(4)中,我們利用重置門(mén)和當(dāng)前狀態(tài)構(gòu)造候選狀態(tài),t為時(shí)間步長(zhǎng),⊙表示逐元素相乘。式(5)中,最終狀態(tài)是在更新門(mén)的控制下,利用之前隱藏狀態(tài)和候選狀態(tài)進(jìn)行組合。在更新會(huì)話圖中的所有節(jié)點(diǎn)直到收斂之后,我們可以獲得最終的節(jié)點(diǎn)表示htvi。
會(huì)話圖包含當(dāng)前會(huì)話中的成對(duì)項(xiàng)目轉(zhuǎn)換,接下來(lái)介紹如何學(xué)習(xí)會(huì)話級(jí)項(xiàng)目嵌入。
由于會(huì)話圖中項(xiàng)目的鄰居對(duì)自身具有不同的重要性,因此利用注意機(jī)制來(lái)學(xué)習(xí)不同節(jié)點(diǎn)之間的權(quán)重。注意力系數(shù)可以通過(guò)元素相乘和非線性變換來(lái)計(jì)算
(6)
式中:eij表示節(jié)點(diǎn)vj的特征對(duì)于節(jié)點(diǎn)vi的重要性,激活函數(shù)我們選擇LeakyReLU函數(shù),rij表示節(jié)點(diǎn)vi與vj之間的關(guān)系,d*∈Rd是權(quán)重向量。
對(duì)于不同的關(guān)系,本文訓(xùn)練4個(gè)權(quán)重向量即din,dout,din,out,dself, 由于并不是每?jī)蓚€(gè)節(jié)點(diǎn)都連接在圖中,因此只需計(jì)算eij, 其中vj∈Nδ(vi),Nδ(vi) 是節(jié)點(diǎn)vi的一階鄰居,給出的鄰居定義如下:對(duì)于一組序列會(huì)話Sm={v1m,v2m,…vlm}, 它的鄰居集合Sn表示為上所有節(jié)點(diǎn)的集合,它是選取Sm上序號(hào)為 [i-δ,i+δ] 的序列段構(gòu)造出的,會(huì)話上的任意項(xiàng)目vim∈Vm(會(huì)話Sm所有節(jié)點(diǎn)的集合)。項(xiàng)目v2一階鄰居如圖3所示。
圖3 項(xiàng)目v2一階鄰居
其中δ為超參數(shù),用來(lái)控制項(xiàng)目轉(zhuǎn)換建模的范圍,超參數(shù)δ支持在會(huì)話期間對(duì)短程項(xiàng)目轉(zhuǎn)換進(jìn)行建模,當(dāng)超過(guò)δ時(shí)會(huì)為項(xiàng)目建模帶來(lái)噪聲。為了使不同節(jié)點(diǎn)之間的系數(shù)具有可比性,通過(guò)Softmax函數(shù)對(duì)注意權(quán)重進(jìn)行歸一化
(7)
式中:由于項(xiàng)目彼此之間的鄰居不同,因此系數(shù)αij是不對(duì)稱的,這意味著它們對(duì)彼此的貢獻(xiàn)是不平等的,接下來(lái),通過(guò)計(jì)算與系數(shù)相對(duì)應(yīng)的特征的線性組合來(lái)獲得每個(gè)節(jié)點(diǎn)的輸出特征。
會(huì)話圖中的項(xiàng)目表示由當(dāng)前會(huì)話中項(xiàng)目本身及其鄰居的特征聚合。通過(guò)注意機(jī)制,減少了噪聲對(duì)會(huì)話項(xiàng)目表示學(xué)習(xí)的影響。
最終的會(huì)話信息表示為
(8)
hsvi=dropout(hsvi)
(9)
式(9)在會(huì)話項(xiàng)目表示上使用了dropout來(lái)避免過(guò)度擬合。
對(duì)于會(huì)話序列來(lái)說(shuō),不同位置的項(xiàng)目的重要性是不同的。具體來(lái)說(shuō),在會(huì)話中稍后單擊的項(xiàng)目更能代表用戶當(dāng)前的偏好,這表明它們對(duì)建議的重要性更高。此外,重要的是找到用戶的主要目的和當(dāng)前會(huì)話中的噪聲。因此結(jié)合了反向位置信息和會(huì)話信息以做出更好的預(yù)測(cè)。
在將會(huì)話序列輸入到圖形神經(jīng)網(wǎng)絡(luò)之后,可以獲得會(huì)話中涉及的項(xiàng)目的表示H=[h1s,h2s,…h(huán)ls], 還嵌入了一個(gè)位置矩陣P=[p1,p2…pl], 其中,pi∈Rd是特例i的位置向量,當(dāng)前會(huì)話的序列長(zhǎng)度為l。 通過(guò)連接和非線性變換整合位置信息表示為
zi=tanh(W1[hsvi‖Pl-i+1])+b1)
(10)
式中:參數(shù)W1∈Rd×2d,b1∈Rd是可訓(xùn)練的參數(shù)。與正向位置嵌入相比較,選擇反向位置嵌入的好處是它能夠捕捉到更多有效的信息。例如,在會(huì)話 {v1→v4→v2→?},v2是序列中的第三個(gè),對(duì)預(yù)測(cè)的目標(biāo)有很大的影響,但是在會(huì)話 {v1→v4→v2→v6→v5→v7→?} 中,v2對(duì)與預(yù)測(cè)目標(biāo)的影響力相對(duì)較小。因此,反向位置信息可以更準(zhǔn)確地表明每個(gè)項(xiàng)目的重要性。
會(huì)話信息是通過(guò)計(jì)算會(huì)話的項(xiàng)目表示的平均值來(lái)獲得的
(11)
自注意力機(jī)制[13,14]是注意力機(jī)制的一種,它可以通過(guò)堆疊多個(gè)自注意力層自適應(yīng)的捕捉節(jié)點(diǎn)信息。將式(5)中得到的會(huì)話信息輸入自注意力層進(jìn)一步更新會(huì)話的全局依賴關(guān)系。得到公式如下
(12)
式中:WQ,WK,WV∈Rd×d分別代表Q(查詢),K(鍵),V(值)參數(shù)矩陣。
得到F之后,需要按元素將其輸入到前饋神經(jīng)網(wǎng)絡(luò)當(dāng)中,輸出為gi
gi=ReLU(FW2+b2)W3+b3+F
(13)
式中:W2∈Rd×f,W3∈Rf×d為參數(shù)矩陣;b2∈Rf,b3∈Rd為偏置向量,f為前饋神經(jīng)網(wǎng)絡(luò)的維度。
可以通過(guò)線性組合項(xiàng)目表示來(lái)獲得全局會(huì)話表示s1
(14)
接下來(lái),通過(guò)軟注意機(jī)制學(xué)習(xí)相應(yīng)的權(quán)重
(15)
式中:W4,W5∈Rd×d,q1,b4∈Rd均為可訓(xùn)練的參數(shù)。
與式(14)一樣的方式,可以通過(guò)線性組合項(xiàng)目表示來(lái)獲得局部會(huì)話表示S2
(16)
通過(guò)全局會(huì)話表示S1和局部會(huì)話表示S2獲得最終的會(huì)話表示S,我們對(duì)全局會(huì)話表示S1和局部會(huì)話S2表示進(jìn)行如下操作
w=W6σ([S1‖S2])
(17)
式中:W6∈Rd×d為可訓(xùn)練參數(shù),激活函數(shù)采用sigmoid,w為輸出的權(quán)重。
最終的會(huì)話表示為S
S=wS1+(1-w)S2
(18)
(19)
損失函數(shù)計(jì)算選擇交叉熵?fù)p失函數(shù),定義為式(20)
(20)
式中:yi為one-hot向量。
我們?cè)?個(gè)真實(shí)世界的代表性數(shù)據(jù)集Yoochoose、Diginetica以及Nowplaying上評(píng)估了所提出的模型。YooChoose數(shù)據(jù)集來(lái)自于RecSys2015舉辦的比賽,主要用于會(huì)話推薦的預(yù)測(cè),為了遵循公平對(duì)比方法的原則,選擇其近時(shí)間段的1/64數(shù)據(jù)用作實(shí)驗(yàn),記為Yoochoose1/64。Digi-netica數(shù)據(jù)集是來(lái)自CIKM Cup 2016競(jìng)賽。Nowplaying數(shù)據(jù)集描述從Twitter提取的用戶聽(tīng)音樂(lè)的行為。為了公平實(shí)驗(yàn),在3個(gè)數(shù)據(jù)集上都過(guò)濾掉會(huì)話長(zhǎng)度為1的數(shù)據(jù)和數(shù)據(jù)集中出現(xiàn)次數(shù)少于5次的物品,并且采用與SR-GNN[19]相同的數(shù)據(jù)增強(qiáng)方法。最后將上周(最新數(shù)據(jù))的會(huì)話設(shè)置為測(cè)試數(shù)據(jù),余下的歷史數(shù)據(jù)用作訓(xùn)練集。數(shù)據(jù)集的統(tǒng)計(jì)結(jié)果見(jiàn)表1。
表1 預(yù)處理數(shù)據(jù)表示
為了評(píng)價(jià)本模型的有效性,將PA-GNN模型與下述具有代表性的方法進(jìn)行了比較。
(1)基于流行度的方法(Popularity,POP):推薦了訓(xùn)練集中出現(xiàn)的前N個(gè)常見(jiàn)項(xiàng)目。
(2)基于物品的最近鄰方法(item-based collaborative filtering recommendation algorithms,Item-KNN):通過(guò)相鄰項(xiàng)目的相似度來(lái)推薦下一個(gè)物品。
(3)FPMC:利用馬爾可夫鏈來(lái)捕獲用戶的行為偏好。
(4)GRU4REC:首次將(門(mén)控循環(huán)單元)GRU應(yīng)用于會(huì)話推薦,作為一個(gè)基于RNN的模型,只建模項(xiàng)目之間的順序關(guān)系。
(5)NARM[6]:將注意力機(jī)制與(門(mén)控循環(huán)單元)GRU相結(jié)合,考慮全局和順序關(guān)系來(lái)提出建議。
(6)STAMP[8]:采用注意層來(lái)替換以前工作中的所有RNN編碼器,方法是充分依賴當(dāng)前會(huì)話中最后一項(xiàng)的自我注意來(lái)捕獲用戶的短期興趣。
(7)SR-GNN[19]:利用門(mén)控圖卷積層獲得項(xiàng)目嵌入。然后,通過(guò)使用捕獲該會(huì)話的全局偏好和當(dāng)前興趣的關(guān)注網(wǎng)來(lái)生成用于推薦的會(huì)話表示。
(8)CSRM[17]:利用記憶網(wǎng)絡(luò)關(guān)注最近的m個(gè)會(huì)話以更好地預(yù)測(cè)當(dāng)前會(huì)話的意圖。
(9)GC-SAN[20]:首先將圖神經(jīng)網(wǎng)絡(luò)和多層自我關(guān)注網(wǎng)絡(luò)相結(jié)合,通過(guò)對(duì)局部相鄰項(xiàng)目轉(zhuǎn)換和上下文非局部表示進(jìn)行建模來(lái)提高推薦性能。
我們采用了兩個(gè)廣泛使用的基于排名的指標(biāo):P@20和MRR@20。
P@k是被應(yīng)用于來(lái)預(yù)測(cè)準(zhǔn)確性的衡量標(biāo)準(zhǔn),表示正確推薦物品的比例。MRR@k是衡量樣本中正確推薦物品在推薦列表中的排名。
按照之前的方法,隱向量的嵌入維度d為100,batch的大小均設(shè)置為100。為了公平的比較,PA-GNN模型所有參數(shù)與SR-GNN[19]保持一致。自注意網(wǎng)絡(luò)中,自注意層數(shù)layer設(shè)為4,頭數(shù)head設(shè)為2,前饋神經(jīng)網(wǎng)絡(luò)的大小f設(shè)為維度d的4倍,L2正則化設(shè)為10-5,驗(yàn)證集是訓(xùn)練集隨機(jī)10%的子集,最大的鄰居數(shù)設(shè)為12,參數(shù)δ設(shè)為1。
表2報(bào)告了評(píng)估方法在3個(gè)數(shù)據(jù)集上的性能,其中粗體顯示每列的最佳結(jié)果,次優(yōu)結(jié)果用下劃線顯示。從表中可以看出,PA-GNN模型在兩個(gè)評(píng)價(jià)指標(biāo)上都優(yōu)于對(duì)比模型。
在傳統(tǒng)方法中,基于物品的最近鄰方法Item-KNN在傳統(tǒng)方法中取得了最好的效果,但是它沒(méi)有辦法捕捉項(xiàng)目之間的轉(zhuǎn)換關(guān)系。
表2 不同模型在3個(gè)數(shù)據(jù)集上的性能比較
基于RNN方法在建模序列中的能力比傳統(tǒng)的方法具有更好的性能?;跁?huì)話的推薦問(wèn)題不僅僅是序列建模任務(wù),因?yàn)橛脩舻钠每赡茉跁?huì)話中發(fā)生變化。STAMP模型和NARM模型通過(guò)將注意力機(jī)制與RNN相融合,相比之下性能都優(yōu)于GRU4REC模型。表明了只使用RNN編碼會(huì)難以用于會(huì)話推薦,因?yàn)镽NN僅模擬單向項(xiàng)目轉(zhuǎn)換會(huì)話中的相鄰項(xiàng)目。盡管STAMP忽略了會(huì)話中項(xiàng)目的時(shí)間順序,但在Yoochoose1/64數(shù)據(jù)集上的效果仍然比NARM模型好一些。與RNN模型相比較,注意力機(jī)制可以自適應(yīng)地捕捉項(xiàng)目的轉(zhuǎn)換關(guān)系成為比RNN更好地選擇。CSRM模型性能優(yōu)于NARM模型和STAMP模型,驗(yàn)證了利用其它會(huì)話信息的有效性。但是CSRM模型將其它會(huì)話作為一個(gè)整體處理而不區(qū)分相關(guān)項(xiàng)目轉(zhuǎn)換與不相關(guān)的會(huì)話,從而帶來(lái)不必要的噪聲,影響模型的性能。
基于GNN的方法在3個(gè)數(shù)據(jù)集上的表現(xiàn)是所有方法中最優(yōu)的。SR-GNN和展示了在基于會(huì)話的推薦中應(yīng)用GNN的有效性,它通過(guò)將每個(gè)會(huì)話序列建模為子圖并應(yīng)用GNN對(duì)項(xiàng)目進(jìn)行編碼。GC-SAN模型的性能接近于SR-GNN,它通過(guò)自注意力網(wǎng)絡(luò)建模物品間的全局依賴關(guān)系。PA-GNN模型在3個(gè)數(shù)據(jù)集上的評(píng)價(jià)指標(biāo)均取得了最佳的效果。實(shí)驗(yàn)結(jié)果表明PA-GNN模型通過(guò)將會(huì)話序列建模為會(huì)話圖,通過(guò)GNN學(xué)習(xí)當(dāng)前會(huì)話的項(xiàng)目嵌入,通過(guò)位置感知注意力機(jī)制建模會(huì)話間的局部依賴關(guān)系,利用自注意機(jī)制捕捉全局依賴關(guān)系,從而不依賴最后一個(gè)會(huì)話與當(dāng)前會(huì)話的相關(guān)性的方法能夠提高會(huì)話推薦的準(zhǔn)確性。
PA-GNN模型與最優(yōu)模型相比,在Yoochoose1/64數(shù)據(jù)集上P@20提高了1.2%,MRR@20提高了2.3%;在Diginetica數(shù)據(jù)集上分別提升了4.3%和5.4%;而在Nowplaying數(shù)據(jù)集上更是分別提升了12.9%和14.3%,這是由于Nowplaying數(shù)據(jù)集的會(huì)話平均長(zhǎng)度比較長(zhǎng),自注意力機(jī)制能更好捕捉遠(yuǎn)距離的項(xiàng)目依賴關(guān)系。粗體和帶下劃線的文字分別表示最佳和次優(yōu)結(jié)果。以上3個(gè)數(shù)據(jù)集在兩個(gè)指標(biāo)上的提升驗(yàn)證了所提出的PA-GNN模型在會(huì)話推薦任務(wù)上的有效性。
圖4和圖5給出了會(huì)話長(zhǎng)度對(duì)3個(gè)數(shù)據(jù)集P@20和MRR@20指標(biāo)的影響,我們根據(jù)會(huì)話的長(zhǎng)度(即單擊項(xiàng)目的數(shù)量)來(lái)分隔會(huì)話。具體而言,包含少于或等于5個(gè)點(diǎn)擊項(xiàng)目的會(huì)話被視為“短”,而其它會(huì)話被視為“長(zhǎng)”。本文將閾值設(shè)置為5,因?yàn)樗?個(gè)數(shù)據(jù)集中會(huì)話平均長(zhǎng)度最接近的整數(shù)。Yoochoose 1/64數(shù)據(jù)集的“短”和“長(zhǎng)”會(huì)話測(cè)試比率分別為70.10%和29.90%,Diginetica分別為76.40%和23.60%,Nowplaying數(shù)據(jù)集為62.50%和37.50%。PA-GNN模型在兩個(gè)指標(biāo)P@20和MRR@20的表現(xiàn)如圖4和圖5所示。
圖4 會(huì)話長(zhǎng)度對(duì)3個(gè)數(shù)據(jù)集上P@20指標(biāo)的影響
圖5 會(huì)話長(zhǎng)度對(duì)3個(gè)數(shù)據(jù)集上MRR@20指標(biāo)的影響
從圖中可以看出PA-GNN模型在Yoochoose1/64和Nowplaying兩個(gè)數(shù)據(jù)集上對(duì)于長(zhǎng)會(huì)話的建模效果要好于短會(huì)話,并且在兩個(gè)數(shù)據(jù)集上,Nowplaying數(shù)據(jù)集因?yàn)槠鋾?huì)話的平均長(zhǎng)度最長(zhǎng),所以提升的效果比其它更為明顯,這都得益于自注意力機(jī)制可以自適應(yīng)地捕捉會(huì)話的遠(yuǎn)距離依賴關(guān)系,體現(xiàn)了自注意力機(jī)制對(duì)于長(zhǎng)會(huì)話建模的優(yōu)越性。但是由于在Diginetica數(shù)據(jù)集中,長(zhǎng)會(huì)話的數(shù)量比較少,所以模型對(duì)于長(zhǎng)會(huì)話的建模效果不理想。
為了驗(yàn)證提出方法的有效性,我們對(duì)相關(guān)部分做了消融實(shí)驗(yàn)。
(1)PA-GNN-1:用正向位置嵌入代替反向位置嵌入;
(2)PA-GNN-2:只采用自注意力機(jī)制;
(3)PA-GNN-3:只采用位置感知注意力。
表3中的實(shí)驗(yàn)結(jié)果表明,引入反向位置嵌入可以捕獲從每個(gè)項(xiàng)目到預(yù)測(cè)項(xiàng)目的距離,這將在訓(xùn)練各種長(zhǎng)度的會(huì)話時(shí)提升模型。使用自注意力機(jī)制[13,14]更夠捕捉會(huì)話信息的全局依賴關(guān)系,從而提高了模型的準(zhǔn)確性。位置感知注意力通過(guò)建模全部會(huì)話的一階鄰居信息比只采用全局自注意力更能捕捉復(fù)雜的項(xiàng)目轉(zhuǎn)換關(guān)系。
表3 PA-GNN消融實(shí)驗(yàn)性能的對(duì)比
為解決會(huì)話推薦只基于當(dāng)前會(huì)話而不利用其它會(huì)話信息的問(wèn)題,本文提出了一種基于自注意力和位置感知圖模型的會(huì)話推薦(PA-GNN)。它構(gòu)造包含所有會(huì)話一階鄰居信息的會(huì)話圖,利用注意力機(jī)制提取節(jié)點(diǎn)信息,并引入反向位置嵌入進(jìn)一步區(qū)分不同項(xiàng)目的重要性,最后通過(guò)自注意力機(jī)制捕獲全局依賴關(guān)系,結(jié)合局部會(huì)話信息生成最終的會(huì)話表示。雖然PA-GNN模型捕獲了項(xiàng)目之間的復(fù)雜關(guān)系,但是現(xiàn)實(shí)世界中,用戶的意圖多種多樣,下一步的工作主要是在PA-GNN模型的基礎(chǔ)上,考慮項(xiàng)目不同的因素的重要性,比如服裝的顏色、風(fēng)格、品牌等,從而能夠在因子級(jí)別提高模型的性能。