陳 瑤,熊 棋,郭一娜
(太原科技大學(xué) 電子信息工程學(xué)院,太原 030024)
互聯(lián)網(wǎng)信息量的爆炸式增長,帶來信息過載問題[1],阻擋了大數(shù)據(jù)時代的前進步伐.人們思索如何緩解信息過載問題,從大數(shù)據(jù)中獲取有效信息,推薦系統(tǒng)應(yīng)運而出.推薦系統(tǒng)可以緩解“信息過載”,這一發(fā)現(xiàn)受到了社會各界的廣泛關(guān)注.
1997年,推薦系統(tǒng)的概念(Recommendation System,RS)由Resnick[2]首次提出.它的出現(xiàn)為用戶提供更好的個性化推薦服務(wù),這一暢想帶來了希望.其主要通過分析用戶的歷史行為信息,發(fā)現(xiàn)隱藏其中的用戶偏好,從而為用戶進行推薦.然而在實際的推薦應(yīng)用中,對于一個較小的電子商務(wù)網(wǎng)站而言,能夠留存下的用戶歷史信息往往是有限的.網(wǎng)站的新用戶,其歷史行為又是不可知的.在這些情況下,傳統(tǒng)的基于用戶長期歷史行為信息的個性化推薦算法不再適用.學(xué)者們提出了會話型推薦系統(tǒng).
“會話”是指一名用戶在瀏覽網(wǎng)站期間,他在網(wǎng)站頁面上進行點擊、購買商品等一系列交互行為[3].這名用戶可以是一名沒有明確身份標(biāo)識,也可以是一名沒有過去歷史行為記錄的用戶.其間,用戶點擊的商品序列就是一個會話序列.會話型推薦系統(tǒng)就是僅根據(jù)用戶當(dāng)前的會話行為序列,去預(yù)測他接下來可能會點擊購買的物品.系統(tǒng)會將可能性最高的幾個物品提取出來,供用戶選擇.傳統(tǒng)會話型推薦算法是在傳統(tǒng)的機器學(xué)習(xí)基礎(chǔ)上提出的一系列方法[4,5].Badrul等[4]提出了基于物品鄰域的方法(item-based neighborhood methods),它是通過計算物品在一個會話中共現(xiàn)的頻率,以此來衡量物品之間的相似性,將用戶最后點擊的物品的k最近鄰的物品作為推薦結(jié)果.Rendle等[5]提出了一種矩陣分解與馬爾可夫鏈相結(jié)合的序列化推薦模型FPMC(Factorized Personalized Markov Chains),獲取隱藏在相鄰交互物品中的順序關(guān)系.總的看來,上述傳統(tǒng)算法雖然都取得了不錯的效果,但它們均忽略了會話序列數(shù)據(jù)中各個物品間存在的轉(zhuǎn)變模式.至此,人們?yōu)榭朔鹘y(tǒng)算法帶來的問題[6-11],嘗試用深度學(xué)習(xí)的自動特征提取能力來提高推薦性能.Hidasl等[7]首次將循環(huán)神經(jīng)網(wǎng)絡(luò)應(yīng)用到會話推薦領(lǐng)域,其通過數(shù)據(jù)增強和考慮用戶行為的時間轉(zhuǎn)移來增強模型的推薦性能,相比較于傳統(tǒng)推薦方法,取得了顯著的進步.Li等[9]為捕獲用戶在目前會話中的主要意圖,提出了NARM(Neural Attentive Recommendation Machine)模型,將循環(huán)神經(jīng)網(wǎng)絡(luò)與注意力機制結(jié)合起來,為捕捉用戶序列行為中蘊含的特征和主要目的.后來,Liu等[10]提出了STAMP(Short-Term Attention/Memory Priority)模型,它是將簡單的多層感知模型和注意力網(wǎng)絡(luò)結(jié)合,提取用戶的潛在興趣.但該方法忽略了會話中的序列行為特征.
隨著圖神經(jīng)網(wǎng)絡(luò)在各個領(lǐng)域如火如荼的應(yīng)用,基于圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Networks,GNN)[12-14]對節(jié)點數(shù)據(jù)強大的特征提取和學(xué)習(xí)能力,Wu等[12]提出SR-GNN(Session-based Recommendation with Graph Neural Networks)模型,它們通過計算相對重要性來了解整個會話的表示,這種相對重要性是基于會話的每一項與最后一項之間的成對項目轉(zhuǎn)換,性能在很大程度上依賴于最后一項與當(dāng)前會話中用戶偏好的相關(guān)性.Feng等[14]提出了TAGNN(Target Attentive Graph Neural Networks for Session-based Recommendation),采用圖神經(jīng)網(wǎng)絡(luò)及目標(biāo)注意模塊相結(jié)合,通過考慮給定目標(biāo)項目歷史行為的相關(guān)性,自適應(yīng)地激活用戶興趣.上述基于圖神經(jīng)網(wǎng)絡(luò)的推薦算法,雖然可以獲得項目嵌入和考慮項目的復(fù)雜轉(zhuǎn)換,但不能從多維度提取用戶的興趣和偏好,因此本文提出了面向會話推薦的注意力圖神經(jīng)網(wǎng)絡(luò)(An Attention Mechanism Enhanced Graph Neural Networks for Session-based Recommenda-tion,AMGNN),該網(wǎng)絡(luò)能夠建立會話級別表示,多維度提取用戶的長期興趣和短期偏好.本文的主要貢獻如下:
1)圖神經(jīng)網(wǎng)絡(luò)和位置編碼結(jié)合,為圖神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)生成的物品嵌入向量引入位置編碼,將每個嵌入向量的位置編號,以分辨出不同位置的嵌入向量.
2)提出一種多頭注意力機制和軟注意力機制有機結(jié)合的新注意力機制,給會話序列中的點擊物品賦予不同的權(quán)重,聚焦于當(dāng)前推薦任務(wù)中更為關(guān)鍵的信息.
為了從多個維度提取會話中的長期興趣和短期偏好,本文提出了面向會話推薦的注意力圖神經(jīng)網(wǎng)絡(luò),模型架構(gòu)如圖1所示.在該模型中,本文提出一種多頭注意力機制和軟注意力機制有機結(jié)合的新注意力機制,為節(jié)點表示的依賴關(guān)系建模,獲取會話級別的表示.該模型主要分為4個部分:
圖1 面向會話推薦的注意力圖神經(jīng)網(wǎng)絡(luò)模型Fig.1 Attention mechanism enhanced graph neural networks for session-based recommendation model
1)構(gòu)圖,將會話序列建模為圖形結(jié)構(gòu)數(shù)據(jù).
2)圖神經(jīng)網(wǎng)絡(luò)及位置編碼,圖神經(jīng)網(wǎng)絡(luò)從會話圖中獲取節(jié)點信息,捕獲復(fù)雜的項目轉(zhuǎn)換,生成物品嵌入向量.為了分辨出不同位置的物品嵌入向量,本文為嵌入向量引入位置編碼,給每個嵌入向量的位置編號,添加位置信息.
3)注意力機制,傳統(tǒng)的圖神經(jīng)網(wǎng)絡(luò)僅能獲取復(fù)雜的項目轉(zhuǎn)換關(guān)系,不能從多個維度提取用戶的長期興趣和短期偏好,進而推薦性能低.為了多維度提取用戶的興趣和偏好,獲得會話的級別表示,本文提出一種多頭注意力機制和軟注意力機制有機結(jié)合的新機制.文中以包含位置信息的物品嵌入向量作為新機制的輸入,得到用戶的長期偏好,并將會話序列中的最后點擊項作為當(dāng)前興趣.
4)預(yù)測,每個會話表示為用戶的長期偏好和當(dāng)前興趣的有機組合.根據(jù)當(dāng)前會話行為序列,預(yù)測每個候選物品在下一項點擊中出現(xiàn)的概率,將可能性最高的幾個物品提取出來,供用戶選擇.
基于會話的推薦任務(wù)是根據(jù)用戶在當(dāng)前會話中的物品交互記錄,發(fā)掘用戶偏好,預(yù)測用戶接下來可能點擊的物品.以下給出本文的符號定義.
在本文的模型中,每個會話序列S建模為一個有向圖Gs=(Vs,Es),其中Vs是在會話序列S中出現(xiàn)過的物品集合、Es表示物品間有向邊的集合.在會話S中,每個節(jié)點代表一個物品vs,i∈V,每條邊(vs,i-1,vs,i)∈Es代表用戶在會話序列S中依次訪問vs,i-1,vs,i,此時(vs,i-1,vs,i)對應(yīng)的邊權(quán)加1.以上所述為文中圖Gs的構(gòu)造方法.由于幾個序列中的物品可能會出現(xiàn)重復(fù),因此本文給每條邊賦予歸一化加權(quán)值.按照上述方法,將會話序列建模為圖形結(jié)構(gòu)數(shù)據(jù).
本文通過圖神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)會話圖中會話序列的節(jié)點向量表示.Li等[15]提出了門控圖神經(jīng)網(wǎng)絡(luò),并使用時間的反向傳播算法來計算梯度.門控圖神經(jīng)網(wǎng)絡(luò)極大地增強了圖神經(jīng)網(wǎng)絡(luò)處理序列數(shù)據(jù)的能力.它可以在考慮豐富節(jié)點連接的情況下自動提取會話圖的特征,因此其非常適合用于會話推薦.本文將每個物品v∈V通過圖神經(jīng)網(wǎng)絡(luò)映射到統(tǒng)一的嵌入空間中,學(xué)習(xí)到物品v的d維隱向量v∈Rd,也稱為節(jié)點向量.節(jié)點向量v組成物品嵌入向量s.至此,每個會話序列S可以用嵌入向量s來表示.
(1)
(2)
(3)
(4)
(5)
圖2 會話圖和鄰接矩陣A的示例Fig.2 Example of a session graph and the connection matrix A
圖3 位置編碼圖Fig.3 Position embedding
so=Wo(sgnn‖P)
(6)
式(6)中,Wo為可訓(xùn)練參數(shù),‖表示對應(yīng)元素拼接.
為了更好地預(yù)測用戶的下一項點擊,本文將每個會話表示為用戶在該會話中的長期偏好和當(dāng)前興趣的有機組合,最終會話的嵌入向量表示為sc∈Rd.本文首先考慮會話的局部嵌入向量sa,即會話S的當(dāng)前興趣.對于會話S={vs,1,vs,2,…,vs,n},當(dāng)前興趣可以簡單的定義為最后點擊項vs,n,用vn′表示,則sa=vn′.與此同時,匯聚所有節(jié)點向量作為會話圖Gs的全局嵌入向量sb,表示會話的長期偏好.考慮到這些嵌入信息可能具有不同的優(yōu)先級,為從多個維度提取會話中的長期興趣和短期偏好,本文提出一種多頭注意力機制和軟注意機制結(jié)合的新注意力機制(如圖4所示),給不同的輸入數(shù)據(jù)賦予不同權(quán)重,根據(jù)每個項目與最后一項的相關(guān)性,計算出一個具有代表性的會話嵌入向量,實現(xiàn)對當(dāng)前推薦任務(wù)更為關(guān)鍵信息的聚焦.
基于用戶序列化行為的個性化推薦系統(tǒng),多頭注意力機制可以將用戶點擊序列中的任意兩個項目通過計算直接連接起來,無關(guān)距離長短.因此引入多頭注意力機制可以減少無關(guān)行為對用戶興趣的依賴,從而更有效的捕獲點擊序列的內(nèi)部相關(guān)性.圖4中多頭注意力機制的頭部數(shù)量h為4,當(dāng)引入位置信息后的嵌入向量so,輸入到第1個頭的注意力機制中,so更新為so11,當(dāng)它輸入其余3個頭的注意力機制后,so分別更新為so12、so13、so14.本文中多頭注意力機制的輸出為so1,是4個頭注意力機制輸出結(jié)果的拼接.
sk=Wkσ(W1vn′+W2vi′+c)
(7)
sq=Wqσ(W1vn′+W2vi′+c)
(8)
sv=Wvσ(W1vn′+W2vi′+c)
(9)
(10)
so11=Fmsv
(11)
(12)
(13)
式(7)~式(9)和式(12)中,Wk、W1、W2、W3、Wq、Wv、c均為可訓(xùn)練參數(shù),將局部偏好和全局偏好的組合映射為3個矩陣k、q、v,作為多頭注意力模塊的輸入;式(10)中,Fm∈Rd×d為多頭自注意力評分矩陣,為了避免向量內(nèi)積的值過大,需將點積后的結(jié)果除以d的平方根.隨后再對多頭注意力評分進行正則化處理.式(10)和式(11)組成圖4中的縮放點積注意力.式(12)為多頭注意力機制的輸出計算公式.式(13)以多頭注意力的輸出為注意力分數(shù),計算多頭注意力下的全局偏好,更新物品嵌入表示.
圖4 新注意力機制模型架構(gòu)示意圖Fig.4 Schematic diagram of a new attention mechanism
軟注意力機制可以讓模型賦予和任務(wù)更相關(guān)的元素更大的注意力分數(shù).引入位置信息后的物品嵌入向量輸入到軟注意力機制中,so更新為so2:
Fs=qTσ(W1vn′+W2vi′+c)
(14)
(15)
公式(14)中q∈Rd為可訓(xùn)練參數(shù).兩種注意力機制的有機結(jié)合,提高了聚焦關(guān)鍵信息的效能.可以將全局會話偏好更好地表示為:
sb=so1+(so1-so2)
(16)
最后,本文將全局嵌入向量sb和局部嵌入向量sa組合在一起,再經(jīng)線性變?yōu)榛旌锨度刖仃噑c:
sc=W(sb‖sa)
(17)
式(17)中W3∈Rd×2d為可訓(xùn)練參數(shù),由此得到每個會話的嵌入向量sc.
(18)
(19)
(20)
式(20)中,yi為one-hot向量,表示用戶真實交互的物品.
本文選擇公開數(shù)據(jù)集Diginetica(1)http://cikm2016.cs.iupui.edu/cikm-cup、Tmall(2)https://tianchi.aliyun.com/dataset/dataDetail?dataId=42、Nowplaying(3)http://dbis-nowplaying.uibk.ac.at/#nowplaying以及Yoochoose(4)http://2015.recsyschallenge.com/challege. html中的部分數(shù)據(jù)進行實驗,來驗證AMGNN的有效性.Diginetica數(shù)據(jù)集來自于CIKM Cup 2016的競賽,本文只用到了其中的交易數(shù)據(jù).Tmall數(shù)據(jù)集來自IJCAI-15競賽,其中包含匿名用戶在天貓網(wǎng)購平臺上的購物日志.Zangerle等[16]提出了Nowplaying數(shù)據(jù)集,其描述用戶的音樂收聽行為.Yoochoose數(shù)據(jù)集是從RecSys Challenge 2015中獲得的,其中包含用戶在6個月內(nèi)在電子商務(wù)網(wǎng)站上的點擊流.
為了實驗結(jié)果的公平比較,本文對以上數(shù)據(jù)集進行預(yù)處理,預(yù)處理的方式仿照Rendle等[5],過濾掉所有長度為1的會話、在數(shù)據(jù)集中出現(xiàn)少于5次的物品以及僅在測試集中出現(xiàn)的物品.為了測試AMGNN在不同規(guī)模數(shù)據(jù)集上的有效性,本文選取Diginetica數(shù)據(jù)集中的3150個會話,1417個物品構(gòu)成Dgeca數(shù)據(jù)集.選取Yoochoose數(shù)據(jù)集中的39733個會話,2408個物品構(gòu)成Y-choose數(shù)據(jù)集.預(yù)處理后,有關(guān)這5個數(shù)據(jù)集的統(tǒng)計數(shù)據(jù)如表1所示.
表1 實驗中使用的數(shù)據(jù)集的統(tǒng)計數(shù)據(jù)Table 1 Statistical data of the dataset used in the experiment
本文仿照Hidasi等人[11]提出的方法,對一個已經(jīng)存在的會話S={vs,1,vs,2,…,vs,n},通過分割該會話來生成序列和相應(yīng)的標(biāo)簽.會話S可以分割為{[vs,1],vs,2},{[vs,1,vs,2],vs,3},…,{[vs,1,vs,2,…,vs,n-1],vs,n},其中[vs,1,vs,2,…,vs,n-1]為生成的物品序列,作為輸入數(shù)據(jù),vs,n則作為標(biāo)簽數(shù)據(jù),以此構(gòu)成一個樣本.對于這5個數(shù)據(jù)集,本文選擇最后一周的數(shù)據(jù)作為測試集,其余的數(shù)據(jù)作為訓(xùn)練集.
本文為了評估提出的模型的性能,選用P@K、MRR@K作為模型評測標(biāo)準(zhǔn).
P@K(Precision)被廣泛用作預(yù)測準(zhǔn)確性的衡量標(biāo)準(zhǔn).它代表了前K項中正確推薦的物品的比例.計算式為:
(21)
式(21)中,n表示測試集中樣本總數(shù);nhit表示前K個推薦物品中包含正確推薦物品的樣本數(shù).
MRR@K(Mean Reciprocal Ranks)是衡量樣本中正確推薦物品在推薦列表中的排名,它的值越大,表明正確推薦物品排名越靠前.若正確物品未出現(xiàn)在推薦列表中,則對MRR的增益為0,其計算式為:
(22)
式(22)中,n代表測試集中總樣本數(shù);M代表前K個推薦物品中包含正確推薦物品的樣本集;ranki則代表物品i在推薦排名列表中的排名.
本文設(shè)定節(jié)點的隱向量的維度d=100.此外,本研究在驗證集上選擇了其他超參數(shù),該驗證集是訓(xùn)練集的一個10%的隨機子集.所有參數(shù)都使用均值為0,標(biāo)準(zhǔn)差為0.1的高斯分布進行初始化.使用Adam算法優(yōu)化模型參數(shù),其中初始學(xué)習(xí)率設(shè)為0.001,每迭代3次學(xué)習(xí)率衰減0.1,正則化系數(shù)是10-5,訓(xùn)練批量設(shè)定為100.每個實驗重復(fù)10次,取訓(xùn)練結(jié)果的平均值.
為了證明提出的模型的有效性,本文在Tmall等五個數(shù)據(jù)集上進行實驗.將AMGNN與所有的基準(zhǔn)方法做了詳細地比較.表2即是實驗的對比結(jié)果.從表2中,可以觀察到:基于神經(jīng)網(wǎng)絡(luò)方法的實驗結(jié)果都明顯優(yōu)于傳統(tǒng)推薦方法的實驗結(jié)果,印證了神經(jīng)網(wǎng)絡(luò)在推薦領(lǐng)域的有效性.
表2 AMGNN與其他基準(zhǔn)方法在5個數(shù)據(jù)集上的性能比較Table 2 Performance comparison of AMGNN with other state-of-the-art methods over five datasets
基于注意力機制的STAMP等方法在效果上要明顯優(yōu)于FPMC等方法,表明在會話型推薦中引入注意力機制不僅可以捕獲會話中蘊含的用戶偏好,還提高了推薦準(zhǔn)確度.SR-GNN 、GC-SAN引入圖神經(jīng)網(wǎng)絡(luò)來捕獲物品間的轉(zhuǎn)移關(guān)系,并與注意力機制結(jié)合來發(fā)掘用戶的偏好,取得了不錯的效果.體現(xiàn)了圖神經(jīng)網(wǎng)絡(luò)捕獲物品間的轉(zhuǎn)移關(guān)系的強大能力.
表2中,對比本文提出的AMGNN與其他基準(zhǔn)模型,可以看出:AMGNN在5個數(shù)據(jù)集的每一項指標(biāo)上,均表現(xiàn)優(yōu)異.在Diginetica、Tmall、Nowplaying以及Y-choose 數(shù)據(jù)集上,AMGNN的各項指標(biāo)均有顯著提升.而在Dgeca數(shù)據(jù)集上,AMGNN的P@20值相較于基準(zhǔn)方法中最優(yōu)的SR-GNN的P@20值提升了11.95%,同時MRR@20值提升了7.27%.表明本文中提出的模型在不同規(guī)模的數(shù)據(jù)集上,均能取得不錯的推薦效果.同時也說明相較于其他基于圖神經(jīng)網(wǎng)絡(luò)的推薦算法,本文提出的面向會話推薦的注意力圖神經(jīng)網(wǎng)絡(luò),可以多維度提取用戶的興趣和偏好.
在實際推薦系統(tǒng)中,每次能夠向用戶推薦的物品數(shù)量是極為有限的.所以為進一步研究AMGNN模型與上述最優(yōu)基準(zhǔn)模型SR-GNN在實際推薦環(huán)境中的性能,本文需對模型進行進一步的評估.減小評價指標(biāo)P@K和MRR@K中的K值(K=10,K=5),可以模擬實際推薦應(yīng)用中用戶的需求.表3、表4總結(jié)了兩個模型在Tmall等數(shù)據(jù)集上基于不同評價指標(biāo)K值的實驗結(jié)果.
表3 基于評價指標(biāo)K=10的實驗結(jié)果對比Table 3 Comparison of experimental results based on K=10
表4 基于評價指標(biāo)K=5的實驗結(jié)果對比Table 4 Comparison of experimental results based on K=5
可以看到,在K值不同的情況下,AMGNN模型依然表現(xiàn)良好,且在所有評價指標(biāo)上均顯示出明顯的優(yōu)勢.這也進一步印證了本文提出的面向會話推薦的注意力圖神經(jīng)網(wǎng)絡(luò)在處理會話序列時,可以聚焦于當(dāng)前推薦任務(wù)中更為關(guān)鍵的信息.
模型訓(xùn)練過程中超參數(shù)的設(shè)置不同,會對實驗結(jié)果產(chǎn)生不同的影響,本文在不改變其他超參數(shù)的條件下,探索不同的學(xué)習(xí)率對實驗結(jié)果的影響.實驗在Diginetica數(shù)據(jù)集上進行,學(xué)習(xí)率分別設(shè)為0.0001、0.0005、0.001以及0.005.測試結(jié)果如圖5所示.從圖中可以看出,學(xué)習(xí)率為0.001時,P@K和MRR@K的值大多高于其他學(xué)習(xí)率條件下的P@K和MRR@K的值.因此,學(xué)習(xí)率為0.001,利于模型準(zhǔn)確率增加.
圖5 學(xué)習(xí)率對結(jié)果的影響Fig.5 Effect of different learning rates on model results
本文提出一種多頭注意力機制和軟注意力機制有機結(jié)合的新機制,并據(jù)此提出面向會話推薦的注意力圖神經(jīng)網(wǎng)絡(luò).提出的注意力機制通過給不同的輸入數(shù)據(jù)賦予不同權(quán)重,多維度提取用戶的長期興趣和短期偏好,實現(xiàn)對當(dāng)前推薦任務(wù)更為關(guān)鍵的信息的聚焦,提高了推薦性能.本文在Tmall等數(shù)據(jù)集下進行了對比實驗,相較于現(xiàn)有的基準(zhǔn)模型,本文提出的AMGNN模型在各項指標(biāo)上均有提升.驗證了方法的有效性.為準(zhǔn)確提取會話序列中的有效信息,提供了一種可行的解決方案.在下一步的研究工作中,將研究如何在提取會話中的用戶的興趣前,篩除會話中的無用信息,縮小用戶興趣的提取范圍,進一步提升推薦性能.