蔡曉東 曾志楊
(桂林電子科技大學 信息與通信學院,廣西 桂林 541000)
序列推薦方法把用戶的購買信息構(gòu)造成與時間相關(guān)的交易序列,再從中挖掘購買行為之間的關(guān)聯(lián)性,捕獲用戶的交易偏好。傳統(tǒng)的基于馬爾可夫鏈的序列推薦方法大多只能建模用戶交易行為之間的短期關(guān)聯(lián)信息[1],導致推薦結(jié)果不夠準確。Hidasi等[2]首次將門控循環(huán)單元(GRU)[3]應用到序列推薦系統(tǒng)上,可同時捕獲用戶交易行為之間的長短期依賴,提高了系統(tǒng)的推薦準確率。隨著注意力機制[4]的發(fā)展,Li等[5]采用編解碼的方式,利用注意力機制同時捕獲了用戶交易偏好和序列行為特征。此后基于循環(huán)神經(jīng)網(wǎng)絡(RNN)和注意力機制的序列推薦系統(tǒng)得到了飛速發(fā)展[6-8]。盡管這類方法取得了較好的推薦結(jié)果,但忽略了用戶交易行為之間的轉(zhuǎn)換關(guān)系。為了彌補該不足,Wu 等[9]采用門圖神經(jīng)網(wǎng)絡[10]建模用戶交易序列,捕獲了交易物品間的轉(zhuǎn)換關(guān)系,提升了模型的推薦效果,但這種建模方法是無差別的。Wang 等[11]認為用戶的交易偏好不僅與當前的交易序列有關(guān),還與用戶全局交易信息有關(guān),捕獲全局交易中的關(guān)聯(lián)特征可以提升推薦準確率。隨著知識圖譜的發(fā)展,異質(zhì)圖[12]也受到了越來越多研究者的關(guān)注。文獻[13-14]將用戶全局交易信息建模到異質(zhì)圖中,但忽略了全局交易信息對用戶偏好的動態(tài)影響。此外,在社交平臺上,用戶的交易行為不僅與個人偏好有關(guān),還會受好友偏好的影響,如用戶A 想看喜劇電影,A 的好友收藏的同類型電影往往會吸引到A。為了捕獲這種社交影響,Song等[15]將社交網(wǎng)絡引入序列推薦系統(tǒng)中,證明了在序列推薦系統(tǒng)中引入社交網(wǎng)絡可以提高系統(tǒng)的推薦準確率。Gu 等[16]在文獻[15]的基礎上,引入圖神經(jīng)網(wǎng)絡來學習用戶交易物品之間的轉(zhuǎn)換關(guān)系,但節(jié)點特征捕獲方法也是無差別的。Chen等[17]提出了完全基于圖神經(jīng)網(wǎng)絡的SERec模型,用于捕獲用戶偏好和社交影響,但也忽略了全局交易信息對用戶偏好的影響。
雖然以上各種序列推薦方法都取得了不錯的推薦效果,但還存在一些問題需要解決:①沒有同時考慮全局交易信息和好友偏好對用戶當前偏好的影響,且全局交易信息對用戶偏好的影響應該隨著偏好的變化而變化;②傳統(tǒng)的圖神經(jīng)網(wǎng)絡一般只能無差別捕獲用戶交易行為之間的轉(zhuǎn)換關(guān)系;③隨著互聯(lián)網(wǎng)的發(fā)展,存在平臺數(shù)據(jù)增多導致模型訓練速度慢、訓練效果不好的情況。
為了解決上述問題,本文基于SERec 模型[17],在文獻[11,14,17-20]的啟發(fā)下,提出了一種自適應融合全局協(xié)同信息的社交推薦模型AFGSRec。首先,設計了一種基于選擇機制的門圖神經(jīng)網(wǎng)絡,用于捕獲用戶當前序列下的交易偏好;接著,設計了一種自適應融合方法,以動態(tài)捕獲全局協(xié)同特征對用戶當前偏好的影響,幫助系統(tǒng)更好地理解用戶最終的交易偏好;然后,將動態(tài)周期學習率用于模型訓練,以緩解數(shù)據(jù)集大導致模型訓練困難、訓練速度慢的情況;最后,在Gowalla 和Delicious 數(shù)據(jù)集上進行了相關(guān)實驗,并與SERec模型[17]進行了對比,以驗證本文提出模型AFGSRec 的有效性和魯棒性。
在社交平臺上,用戶交易行為不僅與個人偏好有關(guān),還受好友偏好的影響,因此可以將本文研究的基于社交網(wǎng)絡的序列推薦系統(tǒng)定義為:用戶集U=(u1,u2,…,uM),交易物品集I=(i1,i2,…,iN),社交網(wǎng)絡G=(U,E),E為節(jié)點之間的社交網(wǎng)絡連接,E中的邊(u1,u2)表示u1與u2之間是好友關(guān)系。任一用戶u所有的交易序列記為Su=(),T為序列總數(shù),u的序列T中的所有交易信息按時間戳標記為=(),t為序列T中的交 易 行為。AFGSRec的目的是利用用戶和用戶社交網(wǎng)絡中的交易信息為用戶推薦下一次最想要交易的物品。
本文提出的AFGSRec模型框架如圖1所示,基于注意力機制的異質(zhì)圖神經(jīng)網(wǎng)絡用于捕獲用戶全局協(xié)同特征和不同節(jié)點之間的社交影響,基于選擇機制的門圖神經(jīng)網(wǎng)絡用于捕獲用戶當前偏好,偏好自適應融合方法用于捕獲全局協(xié)同特征對用戶偏好的影響,最后對用戶推薦商品。
圖1 AFGSRec模型框架Fig.1 Frame of AFGSRec model
文獻[11]指出,用戶的當前偏好不僅與近期序列有關(guān),還與全局交易信息有關(guān),全局交易信息是指用戶所有的歷史交易信息。文獻[14,17]利用異質(zhì)圖建模用戶全局交易信息,取得了不錯的效果,在此啟發(fā)下,本文利用文獻[17]中的異質(zhì)圖神經(jīng)網(wǎng)絡來捕獲用戶全局協(xié)同特征和不同節(jié)點之間的社交影響,其中全局協(xié)同特征代表用戶所有歷史交易信息中的關(guān)聯(lián)特征。異質(zhì)圖中的節(jié)點包括用戶節(jié)點U和U的所有歷史交易節(jié)點I,節(jié)點之間的邊(uk,uv)表示用戶uk和uv之間是好友關(guān)系,它的權(quán)重定義為1。物品之間的轉(zhuǎn)換關(guān)系定義為用戶交易行為的順序,如(io,iq)表示先交易io后交易iq。轉(zhuǎn)換關(guān)系(io,iq)、用戶與物品間的交易關(guān)系(u,i)與(i,u)的權(quán)重分別定義為w1、w2、w3,表示發(fā)生這些關(guān)系的次數(shù)。利用基于注意力機制的異質(zhì)圖神經(jīng)網(wǎng)絡可以學習到用戶節(jié)點和物品節(jié)點的嵌入表示,整個學習過程如下:
在序列推薦系統(tǒng)中,用戶最后一次交易的嵌入常被視為最符合用戶當前偏好,用于選擇序列中的重要交易特征[9,17,21-23]。Ma 等[18]提出了用于捕獲用戶交易偏好的個性特征門,受此啟發(fā),本文利用用戶最后交易的嵌入Vlast設計了一種基于選擇機制的個人交易偏好捕獲方法,如圖2 所示,具體過程如下。
圖2 選擇機制原理圖Fig.2 Schematic diagram of the selection mechanism
將用戶u的當前交易序列建模到序列交易圖g=(B,E)上,節(jié)點集B表示用戶交易過的物品組成的集合,E表示節(jié)點之間的有向邊組成的集合,如BmBn表示用戶先交易物品m,后交易物品n,每條邊上的權(quán)重定義為發(fā)生這種交易轉(zhuǎn)換的次數(shù)wm→n。以往的圖神經(jīng)網(wǎng)絡大多以物品的初始化向量作為圖節(jié)點的初始狀態(tài)進行信息聚合,為了捕獲更多物品間的協(xié)同關(guān)聯(lián)信息,本文用物品節(jié)點的嵌入hli作為序列交易圖中各節(jié)點的初始狀態(tài)Vi。在信息聚合方面,本文在文獻[9,17]的基礎上設計了一種新的聚合方式:首先,把序列圖g中任一節(jié)點i的出入鄰居數(shù)分別定義為、,通過式(5)計算出入鄰居中的關(guān)聯(lián)特征信息fi,其中wj→i為節(jié)點i對應入邊的權(quán)重,wi→j為節(jié)點i對應出邊的權(quán)重,Win和Wout為可訓練的參數(shù)矩陣,Vj為節(jié)點j的嵌入表示;然后,通過式(6)-(9)更新各個節(jié)點的嵌入,并通過式(10)、(11)中的選擇機制,利用Vlast自適應地選擇符合當前序列特征的節(jié)點轉(zhuǎn)換關(guān)系,動態(tài)聚合各個節(jié)點的最終嵌入表示hi,其中σ( )為Sigmoid激活函數(shù),Wa、Wr、WH、Wg、ba、br、bH、bg分別為可訓練的參數(shù)矩陣和偏置向量,?為哈達碼乘積,Q是所有元素為1的矩陣。
近年的序列推薦研究中幾乎都忽略了用戶全局交易中的協(xié)同特征對用戶偏好的影響,部分研究即使捕獲了協(xié)同特征,也沒有考慮它與用戶偏好之間的動態(tài)關(guān)系。由于全局協(xié)同特征是從用戶的所有交易信息中捕獲,而用戶的偏好是動態(tài)變化的,所以全局協(xié)同特征對用戶的影響也應該隨著用戶偏好的變化而變化。受文獻[20]中特征融合的啟發(fā),本文設計了一種偏好自適應融合方法,以動態(tài)捕獲全局協(xié)同特征對用戶當前偏好的影響,幫助系統(tǒng)更準確地理解用戶最終的偏好。
首先,設計了一個動態(tài)融合單元Fi,在GRU中,遺忘門可以有選擇地記住和遺忘一些特征信息,F(xiàn)i也通過類似的門控機制來達到動態(tài)融合的效果。對于序列交易圖中的每一次交易,與hi按如下公式進行融合:
式中,W1、W2為可訓練的參數(shù)矩陣,b為偏置向量,為捕獲了全局協(xié)同特征后的節(jié)點嵌入表示。Fi中的門控機制可以從全局特征中抽取與序列節(jié)點特征hi相關(guān)的特征信息,所以自適應融合方法可以根據(jù)用戶偏好的變化來捕獲全局協(xié)同特征對用戶當前偏好的影響。
在序列推薦中,最后一個交易物品常被視為最符合用戶偏好[9,17,21-23],因此,本文采用最后一個物品的嵌入表示h'c作為選擇標準,對整個序列的交易物品進行注意力聚合,得到用戶當前偏好p,即
式中,Wi、Wt、V為可訓練的參數(shù)矩陣和參數(shù)向量。
為了捕獲社交好友對用戶偏好的影響,本文將異質(zhì)圖中包含了社交影響的與用戶當前偏好p進行拼接,得到用戶最終的交易偏好pfinal,即
式中,Wp、Wu是維度變換矩陣。
神經(jīng)網(wǎng)絡在訓練過程中,通過梯度下降法找到一組最合適的權(quán)重參數(shù),使模型的損失函數(shù)最小[24],即
式中,θτ為第τ次迭代計算后的參數(shù)值,λ為學習率,Dτ為參數(shù)梯度。從式(18)可以看到,學習率在梯度下降中發(fā)揮著至關(guān)重要的作用,它決定了梯度的下降速度,如果學習率設置得較大,模型很可能跳過最優(yōu)解,最終在最優(yōu)解的上下振蕩;如果學習率設置得過小,模型的收斂速度會非常緩慢。文獻[25]認為,損失下降難的原因大多來自于模型中的鞍點(也是梯度為0的點),當學習率較小,模型一旦陷入鞍點,將很難跳出,導致模型訓練效果差。學習率取不同值對模型訓練損失的影響如圖3所示,可以看到,只有合適的學習率才能保證模型學得又快又好。
圖3 學習率對模型的影響Fig.3 Effect of learning rate on model
在以往的模型中,學習率常通過網(wǎng)格搜索法來確定,即在給定范圍內(nèi)找到一個相對值,這類方法需要花費大量的時間,并且在后期的訓練過程中,當學習率的設定值不足以跳過鞍點時,模型難以達到最佳的推薦效果。文獻[19]指出,在模型的訓練過程中,增大學習率雖然在短期內(nèi)會讓模型發(fā)生較大的波動,但長遠看這可以有效地提升模型的訓練速度,當模型陷入鞍點時,增大學習率可以幫助模型很快跳出。受此啟發(fā),本文將周期動態(tài)學習率應用到本文推薦模型的訓練中,以解決因數(shù)據(jù)集大導致模型訓練困難的問題。文中的動態(tài)學習率按三角周期變化,從最低值線性增加到最高值,再從最高值降到最低值為一個周期,如圖4所示,其中上下邊界表示模型訓練過程中學習率能到達的最大值和最小值。
圖4 動態(tài)周期學習率示意圖Fig.4 Schematic diagram of dynamic cyclical learning rate
為得到最終的推薦結(jié)果,本文先用點積計算用戶偏好與候選物品之間的概率分數(shù),再通過Softmax函數(shù)得到推薦概率分布,即
損失函數(shù)定義為yj和的交叉熵,即
式中,yj是用戶下一次交易項的真實概率分布,對于Top-K推薦,只需取概率分布中的前K個作為結(jié)果推薦給用戶。
本 文 在Gowalla[17]、Delicious[17]數(shù) 據(jù) 集 上 進 行實驗,這兩個數(shù)據(jù)集都包含了社交網(wǎng)絡和用戶序列化的交易信息,能很好地模擬基于社交網(wǎng)絡的序列推薦。Gowalla 數(shù)據(jù)集中用戶交易次數(shù)多且社交關(guān)系較為復雜,可以很好地驗證模型的性能。直觀上看,雖然Delicious數(shù)據(jù)集上的總數(shù)據(jù)較少,但在平均交易信息和平均社交網(wǎng)絡復雜度上與Gowalla 數(shù)據(jù)集相差很小,因此也能很好地驗證模型的性能。并且,在小數(shù)據(jù)集上,模型的訓練時間更快,更方便模型性能的調(diào)整。本文采用文獻[23]的方法對Gowalla 數(shù)據(jù)集進行處理,采用文獻[15]的方法對Delicious 數(shù)據(jù)集進行處理。對每個數(shù)據(jù)集,取60%的數(shù)據(jù)作為訓練集,剩下的分別取20%作為驗證集和測試集,按照文獻[5-6,9]的數(shù)據(jù)處理方法對數(shù)據(jù)進行過濾和增強,得到各數(shù)據(jù)集信息如表1所示。
表1 兩個數(shù)據(jù)集信息Table 1 Statistics of two datasets
本文采用推薦系統(tǒng)常用的命中率(HR)@K[14]和平均倒數(shù)排名(MRR)@K[5]作為模型的評價指標。HR@K關(guān)注推薦Top-K中符合用戶交易偏好的物品的比例,值越大,推薦效果越好。MRR@K關(guān)注推薦Top-K中符合用戶交易偏好的物品的排名,值越大,物品排名越靠前。為了驗證模型的魯棒性,文中的K分別取為10和20。本文實驗系統(tǒng)配置如下:Ubuntu18.02, GTX2080Ti 顯 卡, PyTorch1.4.1,Python3.6,Batchsize、物品嵌入和用戶嵌入維度都設置為128。周期動態(tài)學習率的上、下限分別設置為0.01、0.000 01,周期值與訓練輪數(shù)Epoch 都設置為20,其他參數(shù)與文獻[17]保持一致。
為了證明本文模型AFGSRec 的有效性,將AFGSRec的實驗結(jié)果與3個基線模型(①SR-GNN[9],首次將圖神經(jīng)網(wǎng)絡應用到序列推薦系統(tǒng);②DGRec[15],首次將社交網(wǎng)絡應用到序列推薦系統(tǒng);③SERec[17],完全用圖神經(jīng)網(wǎng)絡捕獲用戶偏好和社交影響)進行了對比,結(jié)果如表2 所示。從表中可以發(fā)現(xiàn):SR-GNN 首次用圖神經(jīng)網(wǎng)絡來捕獲用戶交易物品之間的轉(zhuǎn)換關(guān)系,它的推薦效果不及同樣用圖神經(jīng)網(wǎng)絡建模用戶交易序列的SERec,這是因為SERec融入了用戶社交關(guān)系,故其推薦效果更好;DGRec 首次將用戶社交關(guān)系融入到序列推薦中,用循環(huán)神經(jīng)網(wǎng)絡捕獲社交網(wǎng)絡中的交易偏好,它的推薦效果優(yōu)于只捕獲用戶偏好的SR-GNN,次于同樣捕獲了社交影響的SERec,這可能是因為DGRec中的循環(huán)神經(jīng)網(wǎng)絡難以捕獲到用戶交易行為之間的轉(zhuǎn)換關(guān)系,而SERec 中的圖神經(jīng)網(wǎng)絡可以,故SERec的推薦效果更好;本文模型AFGSRec在兩個數(shù)據(jù)集上的推薦效果均超過了最優(yōu)模型SERec,在Gowalla數(shù)據(jù)集上,HR@10、HR@20分別提升了1.91%和1.15%,MRR@10、MRR@20 分別提升了5.05%和4.83%;在Delicious 數(shù)據(jù)集上,HR@10、HR@20 分別提升了2.45%和1.19%,MRR@10、MRR@20 分別提升了4.84%和4.32%,說明本文模型是有效的。同時可以看到,不管K等于10還是20,AFGSRec 模型的推薦效果對比之前的最優(yōu)SERec都有提升,說明AFGSRec模型具有較好的魯棒性。
表2 K取不同值時4個模型的實驗結(jié)果對比Table 2 Comparison of experimental results among four models with different values of K
3.4.1 組件的有效性
為了驗證文中所提組件(選擇機制、自適應特征融合、周期動態(tài)學習率)的有效性,本文利用控制變量法設計了關(guān)于三者的擴展消融實驗。其中,AFGSRec-wSPI 表示去除基于選擇機制的圖節(jié)點特征學習方法,采用文獻[17]中無差別的圖節(jié)點特征捕獲方法;AFGSRec-wAFC 表示去除自適應特征融合,只利用用戶近期交易信息來捕獲用戶偏好;AFGSRec-wCYC表示去除周期動態(tài)學習率,采用網(wǎng)格搜索法來確定學習率的大小。在相同的參數(shù)下,擴展消融實驗結(jié)果如表3 所示。從表中可以看到:①當去掉選擇機制后,AFGSRec-wSPI的HR和MRR均有所下降,說明了選擇機制的有效性。相比于無差別的圖節(jié)點捕獲方法,基于選擇機制的AFGSRec可以自動選擇與當前序列相關(guān)的特征信息,在捕獲物品復雜轉(zhuǎn)換關(guān)系的能力上更勝一籌,所以用戶的當前偏好表達得更準確。②當去掉自適應特征融合后,模型AFGSRec-wAFC 的HR 和MRR 都有所下降,說明了自適應特征融合的有效性。自適應特征融合考慮了全局協(xié)同特征與用戶偏好之間的動態(tài)關(guān)系,能幫助系統(tǒng)更準確地理解用戶最終的偏好,從而提高系統(tǒng)的推薦效果。③當去掉周期動態(tài)學習率后,模型AFGSRec-wAFC 的HR 和MRR 也有所下降,這說明基于周期動態(tài)學習率的方法比網(wǎng)格搜索法更有效。去除周期動態(tài)學習率,對Gowalla 數(shù)據(jù)集上的實驗結(jié)果的影響較大,說明周期動態(tài)學習率在數(shù)據(jù)多的數(shù)據(jù)集上能發(fā)揮更好的作用。④不管K等于10還是20,AFGSRec-wSPI、AFGSRec-wAFC和AFGSRec-wCYC模型的HR和MRR的值都不如模型AFGSRec,說明每個小組件都是不可缺少的,缺少每個組件都會導致模型不同程度的性能下降,只有三者組合才能使模型發(fā)揮最優(yōu)的性能。
表3 組件的有效性實驗結(jié)果Table 3 Validity experimental results of each component
3.4.2 自適應特征融合對用戶偏好的動態(tài)影響
為了證明全局協(xié)同特征對用戶偏好的影響是動態(tài)變化的,除了自適應動態(tài)特征融合(AFC)方式外,本文還設置了相加和拼接兩種靜態(tài)融合方式(即SUM 和CAT),并設計了基于這兩種融合方式的模型,在其他組件一樣、參數(shù)相同的條件下進行了對比實驗,結(jié)果如表4 所示. 從表中可以發(fā)現(xiàn),3 種融合方式中,AFC 在兩個數(shù)據(jù)集上的實驗結(jié)果基本上達到了最好,其他兩種方法次之,這說明用戶當前偏好與全局協(xié)同特征之間的關(guān)系是動態(tài)變化的,單一地將這兩者相加或拼接,并不能完整地捕獲全局協(xié)同特征對用戶當前偏好的影響。
表4 3種特征融合方式的實驗結(jié)果對比Table 4 Comparison of experimental results among three feature fusion methods
3.4.3 動態(tài)周期學習率對模型訓練的影響
為了從訓練角度直觀地展示動態(tài)周期學習率對模型訓練的影響,本文將AFGSRec 和去除周期動態(tài)學習率的AFGSRec-wCYC 模型在不同數(shù)據(jù)集上的訓練損失繪制成圖,結(jié)果如圖5 所示。從圖5(a)可以看到,在數(shù)據(jù)較多的Gowalla 數(shù)據(jù)集上,使用了周期動態(tài)學習率的AFGSRec 模型的訓練損失明顯小于AFGSRec-wCYC。從圖5(b)中可以看到,在數(shù)據(jù)較少的Delicious數(shù)據(jù)集上,AFGSRec在后半部分的訓練損失也小于AFGSRec-wCYC,這說明周期動態(tài)學習率在處理鞍點的能力上更強,它可以有效地提升模型的訓練效果。從圖5 中的折線走勢看,動態(tài)周期學習率還可以提升模型的收斂速度,尤其是在數(shù)據(jù)較多的Gowalla 數(shù)據(jù)集上,這種效果更為明顯,這也說明了動態(tài)周期學習率可以有效緩解因數(shù)據(jù)集大導致模型訓練困難的情況。
圖5 AFGSRec 和AFGSRec-wCYC 在兩個數(shù)據(jù)集上的損失比較Fig.5 Comparison of loss between AFGSRec and AFGSRecwCYC on two datasets
本文提出了一種基于社交網(wǎng)絡的序列推薦算法AFGSRec,該算法在Gowalla 和Delicious 數(shù)據(jù)集上的實驗結(jié)果都明顯優(yōu)于當前比較模型。其中,基于門控機制的序列圖節(jié)點嵌入方法可以有效地過濾與當前序列無關(guān)的特征信息,更準確地捕獲到交易物品間復雜的轉(zhuǎn)換關(guān)系;自適應偏好融合方法可以動態(tài)地捕獲全局協(xié)同特征對用戶當前偏好的影響,幫助系統(tǒng)更好地理解用戶最終的交易偏好;周期動態(tài)學習率可以同時提高模型的推薦準確率和收斂速度。雖然本文的研究取得了一定的成果,但本文在異質(zhì)圖中只融入了用戶社交網(wǎng)絡和歷史交易信息,未能融入其他更多的有效信息,同時本文也未能考慮到用戶序列交易中時間特征信息。未來將考慮把更多的用戶屬性和物品信息加入到異質(zhì)圖中,以捕獲更多的協(xié)同信息和更準確的社交影響,也將考慮捕獲序列交易中的時間信息,以進一步提升模型的推薦效果。