潘春雨 趙朋朋
(蘇州大學(xué)計算機科學(xué)與技術(shù)學(xué)院人工智能研究院 江蘇 蘇州 215006)
隨著電子商務(wù)的迅猛發(fā)展,越來越多的公司建立網(wǎng)上購物平臺方便用戶購物,比如亞馬遜、淘寶和京東商城等。這些購物平臺有著品類繁多的商品供用戶選擇,然而種類多樣的商品會使用戶面臨選擇困難,從而影響用戶購物體驗。所以電子商務(wù)推薦的一項重要任務(wù)就是根據(jù)用戶的歷史購物信息,挖掘用戶的購物行為模式進而推薦下一個購物籃,給用戶更好的體驗。將用戶的購物歷史記錄表示為一系列購物籃,可以將下一個購物籃推薦形式化為序列預(yù)測問題。傳統(tǒng)基于序列的推薦[1-2]是以單個物品為序列給出預(yù)測。不同于傳統(tǒng)序列預(yù)測任務(wù),下一個購物籃推薦是給定一系列的購物籃(物品集合),預(yù)測用戶接下來將要購買的購物籃[3-5]。
用戶歷史購買的物品存在著某些聯(lián)系,其中一種就是時序信息[1]。隨著時間的推移,用戶購買的物品會包含很多信息,反映著用戶潛在的偏好,這些偏好也為將來的購買提供依據(jù)。比如,那些喜歡聽鄉(xiāng)村音樂的人往往對這種音樂風(fēng)格的新歌也感興趣;喜歡吃甜食的客人,也可能會偏愛糕點、甜品。在下一個購物籃推薦問題上,還存在著另一個顯著的特點。用戶每個購買的籃子內(nèi),有著一個或多個物品,它們在某些屬性方面體現(xiàn)著共有的內(nèi)在聯(lián)系,同時也反映著用戶的偏好。圖1可以說明用戶籃子中的物品存在一些聯(lián)系。如圖1所示,用戶1的籃子內(nèi)有手機、保護殼、平板電腦和牙刷,它們同在一個購物籃內(nèi),兩兩之間存在著聯(lián)系,但是從物品的屬性上看,如手機、保護殼、平板電腦這些都屬于電子產(chǎn)品,它們之間聯(lián)系較強,相較而言,牙刷與它們的聯(lián)系就比較弱。同時牙刷在另外兩個用戶的購物籃內(nèi)出現(xiàn),并且同屬生活用品,洗面奶、衣架、杯子以及牙膏通過牙刷這個物品維持強相關(guān)性。因此,充分利用購物籃內(nèi)物品的相關(guān)性信息就顯得更加重要。
圖1 用戶籃子物品關(guān)系
近年來,圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Network,GNN)[6-8]因其廣泛的適用性和優(yōu)秀的性能受到各個領(lǐng)域歡迎。圖神經(jīng)網(wǎng)絡(luò)自然地集成節(jié)點信息和拓?fù)浣Y(jié)構(gòu),在學(xué)習(xí)圖數(shù)據(jù)方面具有強大的功能。其中圖注意力網(wǎng)絡(luò)(Graph ATtention Network,GAT)[9]是圖神經(jīng)網(wǎng)絡(luò)的一種,該算法有效地引入注意力機制,在網(wǎng)絡(luò)迭代更新節(jié)點特征時分配不同權(quán)重到鄰居節(jié)點進而有選擇地聚合鄰居信息。后來圖門控注意力網(wǎng)絡(luò)(Gated Attention Networks,GaAN)[10]創(chuàng)新性引入門控單元和多頭注意力網(wǎng)絡(luò)提升算法精度。異構(gòu)圖神經(jīng)網(wǎng)絡(luò)[11](Heterogeneous Graph Neural Network,HAN)進一步引入語義級別的注意,以獲得不同元路徑的重要性。
目前在下一個購物籃推薦任務(wù)上已經(jīng)有一些有效工作。一種方法是只根據(jù)用戶最近的一個籃子信息來預(yù)測下一個購物籃[3-4]。它們側(cè)重的是用戶的短期偏好,沒有從長遠(yuǎn)角度考慮用戶的興趣。因此,研究者們著眼于這一研究思路,用基于循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)的方法[12]捕捉序列長期依賴。然而,這些方法僅基于它們與過去購物籃的對應(yīng)關(guān)系而獨立地給出下一個購物籃推薦,卻忽略了推薦的物品之間的集合關(guān)聯(lián)。基于這個問題,Le等[5]采集所有購物籃內(nèi)物品成對出現(xiàn)的頻率建立一個物品相關(guān)性矩陣。他們認(rèn)為籃子是一個包含相關(guān)物品的集合,而不是關(guān)乎獨立的物品集合。但是他們忽視了不同籃子內(nèi)物品的聯(lián)系,不能就某一物品捕獲與其相關(guān)聯(lián)的路徑上鄰居物品的依賴關(guān)系。如圖1所示,用戶2籃子內(nèi)的洗面奶與牙刷有聯(lián)系,用戶3的籃子內(nèi)牙刷和牙膏有聯(lián)系,直覺上洗面奶同牙膏就有了聯(lián)系。Le等[5]的方法因為只考慮了籃子內(nèi)的物品聯(lián)系,所以該方法就不能捕捉洗面奶和牙膏之間的關(guān)系。Hu等[13]通過調(diào)整編碼器RNN-解碼器RNN以對短期偏好和用戶的重復(fù)行為進行建模。后來,Peng等[14]提出一種結(jié)合混合用戶偏好捕獲購物籃轉(zhuǎn)換模式和籃子內(nèi)部物品轉(zhuǎn)換模式的方法。本文提出的基于圖神經(jīng)網(wǎng)絡(luò)的下一個購物籃推薦能夠通過多層GAT建模復(fù)雜的物品-物品的關(guān)系,并且在GAT層聚合鄰居節(jié)點時設(shè)置一個聚合節(jié)點的閾值,減少圖中其他節(jié)點對模型的噪聲。為了捕獲用戶的短期行為模式,本文設(shè)計一個大小固定的滑動窗口,使窗口滑動到特定時刻融合用戶數(shù)個先前的購物籃信息。
本文的貢獻主要有以下幾點:
(1) 發(fā)現(xiàn)現(xiàn)有購物籃推薦算法還未充分考慮物品關(guān)系的建模問題,提出在構(gòu)建購物籃物品圖的基礎(chǔ)上使用圖注意力網(wǎng)絡(luò)對圖物品節(jié)點的非結(jié)構(gòu)化的信息推理,捕獲網(wǎng)絡(luò)中物品節(jié)點存在的依賴關(guān)系,獲得信息更加豐富的物品嵌入表示。
(2) 在對用戶序列進行信息編碼時,采用一個大小固定的滑動窗口,沿著時間軸動態(tài)融合用戶最近幾個交互(購物籃)的興趣特征,捕獲用戶短期的購物偏好,提高了推薦效果。
(3) 在兩個公開數(shù)據(jù)集上進行了充分的實驗,驗證了所提出的推薦方法的有效性。
下一個購物籃推薦是一個典型的序列推薦任務(wù)。這部分將簡要地從如下兩個方面回顧與之相關(guān)的工作:序列推薦和圖神經(jīng)網(wǎng)絡(luò)。
序列推薦可以分為兩類:基于馬爾可夫鏈(Markov Chain,MC)和基于循環(huán)神經(jīng)網(wǎng)絡(luò)(RNNs)。
1.1.1基于馬爾可夫鏈的方法
Rendle等[3]提出經(jīng)典的下一個購物籃推薦方法(Factorizing Personalized Markov Chains,FPMC),該方法基于因子機和馬爾可夫鏈,在任意一對連續(xù)的籃子之間建立個性化的物品-物品過渡矩陣模型,并利用計算得到的條件概率生成最終的推薦列表。Wang等[4]提出了一個相似的馬爾可夫鏈模型。不同于使用張量分解,他們建議使用池化來聚合最近一個籃子中的物品作為最近一個籃子的表示,并根據(jù)聚合表示來預(yù)測下一個購物籃。Ying等[15]增強了引用[4]中的結(jié)構(gòu),并且用注意力機制代替池化操作。注意機制可以專注于最相關(guān)的物品,從而提高性能。同樣,他們將歷史物品分為兩組,最近一個籃子中的商品代表短期組合,而它之前一個籃子中的商品代表長期組合。在這兩個集合上都應(yīng)用了注意力分散機制,以生成混合用戶表示。該預(yù)測基于混合用戶表示和物品嵌入。
1.1.2基于循環(huán)神經(jīng)網(wǎng)絡(luò)的方法
基于MC方法的假設(shè)是下一個購物籃主要由最近(或者最近幾個)籃子決定。由于這個假設(shè),基于MC的方法不能捕獲來自長時間的高階依賴關(guān)系。為了捕獲整個歷史籃子信息,學(xué)者們轉(zhuǎn)向使用RNNs建模用戶的這個歷史序列。Yu等[12]編碼每一個籃子,使用RNN單元學(xué)習(xí)序列表示,不僅學(xué)習(xí)了用戶的動態(tài)表示,而且還從商品購買歷史中建模全局序列特征。Le等[5]觀察到籃子內(nèi)部的物品之間有個一定的聯(lián)系,于是將所有籃子內(nèi)物品成對出現(xiàn)的頻率用相關(guān)性矩陣表示,再將該矩陣與用戶購物籃的二元向量表示放入相關(guān)性敏感的購物籃編碼器中得到籃子表示。Hu等[13]提出一個集合到集合(Sets2Sets)的模型,使用注意力機制來聚焦最相關(guān)的籃子。Peng等[14]引入用戶全局偏好、存在物品中和籃子的轉(zhuǎn)換模式提高模型的性能。
隨著圖神經(jīng)網(wǎng)絡(luò)的快速發(fā)展,許多學(xué)者將GNN[7,16]引入推薦算法捕捉用戶-物品、物品-物品的復(fù)雜交互關(guān)系。此外,注意力機制在很多領(lǐng)域都顯示出了它的有效性,比如圖像分類[17]、視頻標(biāo)題[18]和機器翻譯[19]等。注意力機制使模型將重點放在具有不同權(quán)重目標(biāo)的最重要的部分上,同樣也被應(yīng)用到圖神經(jīng)網(wǎng)絡(luò)。圖注意力網(wǎng)絡(luò)[9](GAT)尋求一種聚合函數(shù)來融合圖中的鄰居節(jié)點、隨機游走和候選模型以學(xué)習(xí)新的表示形式。關(guān)鍵區(qū)別在于圖注意力網(wǎng)絡(luò)采用注意力機制,該機制將更大的權(quán)重分配給更重要的節(jié)點、行走或模型。為了學(xué)習(xí)不同子空間中的注意力權(quán)重,GAT使用多頭注意力。圖門控注意力網(wǎng)絡(luò)[10](GaAN)還利用多頭注意力來更新節(jié)點的隱藏狀態(tài)。但是,GaAN并沒有為每個頭部分配相等的權(quán)重,而是引入了一種自我注意機制,該機制會為每個頭部計算不同的權(quán)重。后來,異構(gòu)圖神經(jīng)網(wǎng)絡(luò)[11](HAN)進一步引入了語義級別的注意,以獲得不同元路徑的重要性。在本文工作中,考慮到添加其他信息的復(fù)雜性,將專注于物品節(jié)點級別的注意力。
本節(jié)將問題形式化,并介紹物品關(guān)系圖的建立。表1中為主要符號定義。
表1 符號定義
在模型輸出方面,對于測試序列B={B1,B2,…,Bt},本文的目標(biāo)是預(yù)測出下一個購物籃Bt+1,把它作為推薦。因為Bt+1的真實大小是未知的,所以近似為給定常數(shù)K作為籃子推薦的大小。
為了更好地表示Bi,本文構(gòu)建了籃子內(nèi)物品的同源關(guān)系圖,用它在對Bi內(nèi)物品使用圖注意力網(wǎng)絡(luò)進行聚合表示的時候,能夠自動對物品鄰居節(jié)點信息進行有選擇的融合。通過這樣的操作,籃子的表示能夠更加體現(xiàn)物品的相關(guān)性。具體地說,在訓(xùn)練集中所有籃子進行物品關(guān)系處理時,當(dāng)籃子內(nèi)出現(xiàn)大于或等于2種不同的物品,就對它們兩兩配對,如物品a、b(a≠b)都在Bi中,那么就在G中添加a、b節(jié)點,并且在a、b之間加邊連接。
本節(jié)介紹基于圖注意力網(wǎng)絡(luò)的下一個購物籃推薦方法,使用GAT的方法獲取籃子表示,并在循環(huán)神經(jīng)網(wǎng)絡(luò)中應(yīng)用滑動窗口捕捉特定時刻的短期興趣,圖2是本文模型的框架。
圖2 框架圖
本文利用一個大小固定的滑動窗口捕獲用戶的短期購物籃偏好,并且使用GAT獲得含有豐富物品關(guān)系的購物籃表示,經(jīng)過RNN單元處理后再結(jié)合用戶短期以及全局購物籃偏好得到預(yù)測。
3.1.1籃子編碼和用戶籃子偏好
已有文獻[13,20]表明用戶的交互很大程度會受他們的總體偏好影響。因此,為用戶建模全局偏好,使用每個用戶與之交互的物品的頻率來代表用戶的全局偏好。給定用戶的歷史籃子,用戶全局偏好表示為向量g=[g1,g2,…,gn]∈Rn,其中g(shù)i表示該用戶與物品在其所有的交互記錄中總的交互次數(shù)(購買次數(shù)),其計算式為:
(1)
基本假設(shè)是,如果用戶與某個物品有很多交互,則該用戶對該物品具有很高的偏好。另外,基于這一假設(shè),對用戶的籃子序列進行同樣的操作,得到對應(yīng)的籃子頻率序列P=[p,p2,…,pt]。
3.1.2窗口化偏好
本文,考慮到用戶的短期偏好一定程度上會受相近的一個或多個籃子影響,設(shè)計了一個大小為l的滑動窗口(如對應(yīng)圖2中的大小為3),對長度為t的P上滑動,每個移動一個時間單位,聚合一次物品頻率窗口,再喂入一個全連接層得到該用戶的短期偏好qi∈Rd,在i時刻表示為:
(2)
式中:Φ∈Rn×d可學(xué)習(xí)的權(quán)重矩陣,λ是一個預(yù)先設(shè)置的超參,表示對過往信息的衰減。如果式(2)中l(wèi)>i,則l=i。
3.1.3圖神經(jīng)網(wǎng)絡(luò)聚合物品和建?;@子序列
嵌入表示能夠?qū)⑽锲非度雰蓚€連續(xù)的低維空間,增強表示能力。為此,學(xué)習(xí)一個物品嵌入矩陣E∈Rn×d,其中每一行都是一個物品的嵌入表示。GAT層的輸入是物品節(jié)點特征的集合,就需要籃子物品的嵌入表示,E′={e1,e2,…,en},Φ∈Rn×d,en∈Rd,N是節(jié)點的數(shù)量。采用GAT[9]的聚合方式,節(jié)點更新如下:
(3)
式中:‖表示對向量進行橫向拼接;X是GAT的多頭數(shù)目;σ是sigmoid函數(shù);s表示網(wǎng)絡(luò)GAT網(wǎng)絡(luò)層數(shù);Ni是節(jié)點i的鄰居節(jié)點;βx(·)是在GAT第x頭中節(jié)點的注意力函數(shù),Wx∈Rd×d,H∈R(X×d)×d是網(wǎng)絡(luò)可學(xué)習(xí)的參數(shù)β(·)具體表示為:
(4)
式中:A∈R2d是權(quán)重參數(shù),T表示轉(zhuǎn)置。最后得到新的物品節(jié)點特征:
(5)
Es是經(jīng)過GAT層得到的物品節(jié)點特征。為了實驗的效率以及防止顯卡內(nèi)存溢出,使用批次化的輸入方式,把每個批次所有用戶籃子內(nèi)的物品在GAT多層網(wǎng)絡(luò)中要聚合的所有相關(guān)物品都放入E′中。因為與物品節(jié)點相關(guān)聯(lián)的節(jié)點很多,實驗中本文有選擇地為每層GAT網(wǎng)絡(luò)設(shè)置物品節(jié)點在聚合相鄰節(jié)點的個數(shù)。
為了獲得Bi更具物品相關(guān)性的表示,模型從Es選出與Bi對應(yīng)節(jié)點特征,然后放入平均池化層:
(6)
最新的一些工作[5,12-13]使用RNNs來隱式建模序列。這些方法中,把籃子的編碼表示以每一個時間步為單位循環(huán)地喂入一個RNN單元來生成下一個購物籃的隱式表示。同樣,遵循這個想法,訓(xùn)練籃子序列的轉(zhuǎn)換模式。給定ot,下一個購物籃的隱式表示是:
(7)
式中:GRU[21]是門控循環(huán)單元,RNNs的一種,能夠?qū)W習(xí)序列的長短期特性。
3.1.4籃子預(yù)測
(8)
式中:Ω∈R2d×d是一個可學(xué)習(xí)的參數(shù),s∈Rd是一個向量,[a,b]表示把向量a和b水平拼接。
(9)
式中:α表示籃子長短期屬性的重要程度,如下用了門控機制:
(10)
式中:σ是sigmoid函數(shù),Ψ、Γ是可學(xué)習(xí)的權(quán)重矩陣。
在每一個訓(xùn)練序列Bu中,本文移除它的最后一個籃子Bt得到B′={B1,B2,…,Bt-1}。目標(biāo)是讓預(yù)測得分y與真實的下一個購物籃Bt對齊。學(xué)習(xí)階段,采用貝葉斯個性化排序[22](BPR)。
(11)
(12)
1) 數(shù)據(jù)集。為了驗證本文提出模型的性能,本文在TaFeng和JingDong兩個數(shù)據(jù)集上進行實驗對比。TaFeng數(shù)據(jù)集包含4個月(2000年11月至2001年2月)的TaFeng超市購物交易。JingDong數(shù)據(jù)集包含3個月(2016年2月1日至2016年4月15日)的用戶行為數(shù)據(jù)集。這些數(shù)據(jù)集包含用戶在每個購物籃中購買的帶有時間戳的商品交易記錄。
2) 預(yù)處理。為了滿足相關(guān)每個用戶和物品建模的足夠信息,分別對數(shù)據(jù)集Ta-Feng、JingDong進行預(yù)處理,分別確保每個用戶至少交互10個(Ta-Feng)、15個(JingDong)物品,并且每個物品至少被10位(Ta-Feng)、5位(JingDong)用戶交互。此外,還過濾掉那些籃子序列數(shù)小于2的用戶。再設(shè)置訓(xùn)練、驗證、測試數(shù)據(jù),將序列按時間順序分為三個不重疊的時期(ttrain,tval,ttest),即Ta-Feng為(3,0.5,0.5)個月,(1.5,0.5,0.5)個月的交易時間為JingDong。注意,如果用戶記錄超過30個籃子,超過的前綴部分籃子會被截斷。兩個數(shù)據(jù)集處理后的分析表見表2。
表2 數(shù)據(jù)集分析
3) 評估方法。為了評估針對下一個購物籃推薦問題的各種方法性能,本文采用廣泛使用的指標(biāo)F1@K、NDCGl@K、MAP@K來評估不同的方法。F1@K是計算精確率和召回率的調(diào)和平均值,而NDCG@K是一種基于排名的度量,它考慮了列表中元素的順序。MAP@K是平均準(zhǔn)確率AP:
(13)
式中:Tu是真實的結(jié)果,pui表示i物品在推薦排列表中的位置,puj (14) 4) 學(xué)習(xí)細(xì)節(jié)。模型使用的是Pytorch 1.4.0。在最小化式(12)的log損失目標(biāo)函數(shù)下,本文的模型在25個批次大小周期為32后得到結(jié)果。在兩個數(shù)據(jù)集上使用學(xué)習(xí)率為1e-3的Adam優(yōu)化器。訓(xùn)練時GRU層使用0.4概率的神經(jīng)元丟棄。窗口化偏好層的滑動窗口大小設(shè)為3。本文實驗發(fā)現(xiàn)下面的參數(shù)在驗證集上能夠達到最好的性能,然后使用它們在測試集上做實驗:在TaFeng數(shù)據(jù)集上,衰減參數(shù)λ為0.9,GAT層使用兩層節(jié)點扇出數(shù)分別為15、5,多頭數(shù)為2的網(wǎng)絡(luò);JingDong數(shù)據(jù)集上的衰減值λ是0.6,GAT層使用兩層節(jié)點扇出數(shù)分別為5、5,多頭數(shù)目為2的網(wǎng)絡(luò)。 將本文提出的模型標(biāo)記為SWGAT(Sliding Window+GAT)。實驗選取了目前比較流行的幾種算法進行對比: (1) POP:該方法先從訓(xùn)練數(shù)據(jù)的所有籃子中計算出所有用戶最頻繁的物品,然后把這些物品推薦給所有用戶的下一個購物籃。 (2) POEP[13]:它將在給定用戶的過去購物籃中出現(xiàn)最頻繁的物品作為下一個購物籃的預(yù)測。 (3) FPMC[3]:該方法通過矩陣分解對用戶偏好進行建模,并通過一階馬爾可夫鏈同時對序列信息進行建模,然后通過線性方式將其組合以進行下一籃子推薦。 (4) DREAM[12]:基于物品嵌入和RNN的深度模型,學(xué)習(xí)用戶的動態(tài)表示以及購物籃物品的全局順序特性,最后推薦下一個購物籃。用戶的動態(tài)表示可以顯示出用戶在不同時間的愛好;全局順序特性反映了用戶的所有購物籃隨時間的相互作用。 (5) Beacon[5]:該方法通過捕獲訓(xùn)練數(shù)據(jù)所有籃子中物品成對出現(xiàn)的頻率構(gòu)建一個物品與物品的相關(guān)性矩陣,將它融合在籃子編碼階段,通過LSTM的方法捕獲序列信息,最后給出推薦。 (6) M2pht[14]:該方法針對下一個購物籃推薦問題設(shè)計了一種具有用戶總體偏好和利用存在物品中和籃子的轉(zhuǎn)換模式的新混合模型。 此外,為了驗證本文提出的滑動窗口與圖注意力網(wǎng)絡(luò)結(jié)合(SW+GAT)的有效性,分別做了以下實驗: (1) No-SW:刪除SWGAT的滑動窗口(SW)模塊,其他實驗相關(guān)參數(shù)與SW-GAT保持一致。 (2) No-GAT:刪除SWGAT的圖神經(jīng)網(wǎng)絡(luò)(GAT)模塊,其他實驗相關(guān)參數(shù)與SW-GAT保持一致。 表3按順序展示了TaFeng和JingDong數(shù)據(jù)集的各方法的實驗結(jié)果。 表3 在下一籃子推薦任務(wù)中不同方法的性能比較(%) 首先,在所有基準(zhǔn)算法中,因為POP的推薦沒有提供個性化的推薦,也沒有捕捉購物籃的序列性,給所有用戶的推薦都是一致的,所以它的性能指標(biāo)表現(xiàn)最差。相比POP,POEP記錄每個用戶獨有的興趣點,為他們分別推薦獨屬的物品,在各項指標(biāo)都有明顯的提升。經(jīng)典模型FPMC的推薦效果超過了POP,這是因為它把臨近的籃子信息融合到了模型,捕捉了用戶的短期序列性。對比POEP,FPMC在TaFeng的數(shù)據(jù)上的表現(xiàn)略低,可能是由于TaFeng是零售數(shù)據(jù)集,用戶購買商品的序列行為對上一次購買的依賴不強。 其次,基于RNN的籃子推薦方法DREAM能夠捕獲用戶的動態(tài)表示以及購物籃物品的全局順序特性??梢杂^察到其表現(xiàn)雖強于POP,但是比POEP和FPMC差,Beacon的實驗結(jié)果也較差。這類基于RNNs的模型,因其缺乏對用戶的個性化推薦和短期興趣建模,效果不如POEP和FPMC。從實驗數(shù)據(jù)上看, M2pht的各項性能提升顯著。這與該模型利用用戶總體偏好、挖掘籃子物品之間的轉(zhuǎn)換模式以及籃子之間的過渡方式有著密切關(guān)系。 最后,本文提出的模型在JingDong數(shù)據(jù)集上的推薦性能是所有基準(zhǔn)模型最優(yōu)的,NDCG@5和NDCG@10分別比基準(zhǔn)模型最好的提高0.7%和1.2%,其他4項指標(biāo)同樣也有不錯的提升;在TaFeng數(shù)據(jù)集上,MAP方面的效果略低于基準(zhǔn)模型,可能是模型捕捉籃子物品關(guān)系沒有足夠充分,未獲得充分的籃子編碼信息。為了驗證滑動窗口、圖注意力網(wǎng)絡(luò)(SW、GAT)對模型的貢獻,本文設(shè)計了No-SW、No-GAT兩部分實驗。從表3中可以觀察到,在沒有SW、GAT時,模型推薦的效果相比SW-GAT有明顯下降,說明本文將這兩部分結(jié)合可以幫助模型推薦效果提升。綜合以上實驗數(shù)據(jù)可以說明本文模型SW-GAT在下一個購物籃推薦方面的有效性。 為了驗證滑動窗口對本文模型性能的影響,分別在兩個數(shù)據(jù)上針對F1@5、F@10、NDCG@5和NDCG@10指標(biāo)進行實驗,窗口的大小分別是[1,2,3,4]。 結(jié)果如圖3所示。實驗結(jié)果表明,在各項指標(biāo)隨著窗口大小從1增長到3時,模型性能得到提高。這說明,通過滑動窗口融合窗口內(nèi)用戶的短期物品購買頻率信息,能夠更好地學(xué)習(xí)出用戶的購買習(xí)慣,提高推薦準(zhǔn)確性。當(dāng)窗口大小達到4時,兩個數(shù)據(jù)集上不同指標(biāo)的性能都在下降,這說明一味增大窗口的大小,可能給模型帶來更多的噪聲,影響模型準(zhǔn)確性。 圖3 滑動窗口大小的影響 為了驗證圖注意力網(wǎng)絡(luò)不同層在節(jié)點聚合方面對模型的影響,分別在兩個數(shù)據(jù)集上用單層GAT和雙層GAT對聚合鄰居節(jié)點的個數(shù)進行實驗。實驗設(shè)置第一層的聚合節(jié)點的個數(shù)分別是[5, 10, 15, 20],在雙層GAT中,為第二層的聚合節(jié)點個數(shù)都設(shè)置為5。結(jié)果如圖4所示。在TaFeng數(shù)據(jù)集上,可以觀察到隨著聚合節(jié)點個數(shù)從5增加到15,在F1@5、NDCG@5以及MAP@5上,模型的性能有所提高;當(dāng)聚合節(jié)點個數(shù)達到20的時候,除了F1@5在雙層GAT上結(jié)果略微增強,其他指標(biāo)都下降明顯。在JingDong數(shù)據(jù)集上,發(fā)現(xiàn)聚合節(jié)點的個數(shù)是5的時候,模型的綜合表現(xiàn)比較優(yōu)秀。觀察表2,可以得知JingDong的物品關(guān)系圖平均節(jié)點度數(shù)為29.59,可能是在聚合過多節(jié)點時,會引入過多的噪聲信息,削弱模型。而總體上,雙層GAT的性能優(yōu)于單層的結(jié)果,所以最后在TaFeng、JingDong上都采用雙層GAT,每層節(jié)點的聚合個數(shù)分別是[15, 5]、[5, 5]。 圖4 聚合鄰居節(jié)點個數(shù)的影響 本文提出用圖注意力網(wǎng)絡(luò)建模物品聯(lián)系以及滑動窗口捕捉用戶短期偏好方法,并應(yīng)用于下一個購物籃推薦。特別地,將用戶籃子內(nèi)物品成對的關(guān)系融入圖中,使用GAT網(wǎng)絡(luò)學(xué)習(xí)購物籃物品的相關(guān)性。然后,設(shè)計一個滑動窗口,用它在用戶的歷史籃子內(nèi)物品的購買偏好上滑動,捕捉用戶的短期偏好。在兩個公開數(shù)據(jù)集上的實驗結(jié)果表明本文模型的有效性。未來的工作中,將考慮將在構(gòu)建物品的關(guān)系圖時融入更多的關(guān)系,如物品的分類、用戶是否交互等,構(gòu)造一個異構(gòu)圖,豐富購物籃物品的聯(lián)系,讓網(wǎng)絡(luò)訓(xùn)練更加精確。4.2 對比方法
4.3 滑動窗口大小分析
4.4 圖神經(jīng)網(wǎng)絡(luò)層分析
5 結(jié) 語