潘 茂 張夢菲 辛增衛(wèi) 金佳琪 郭 誠 方金云
(*中國科學(xué)院計算技術(shù)研究所 北京100190)
(**中國科學(xué)院大學(xué) 北京100190)
(***國家計算機網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心 北京100029)
推薦系統(tǒng)作為解決信息過載的有效方法,是學(xué)術(shù)界[1-2]和工業(yè)界[3-6]的研究熱點之一?;跁挼耐扑]算法(session-based recommendation,SBR)是推薦系統(tǒng)領(lǐng)域一個重要的研究分支。不同于傳統(tǒng)的推薦算法,SBR 的用戶通常是匿名的,即沒有歷史交互信息,只有當(dāng)前會話序列信息。SBR 旨在根據(jù)當(dāng)前會話序列,及時準(zhǔn)確地捕捉匿名用戶短期、動態(tài)的興趣以推薦用戶感興趣的物品。
根據(jù)建模方式不同,當(dāng)前SBR 研究主要分為如下3 類:(1)基于矩陣分解[7-8]的方法;(2)基于循環(huán)神經(jīng)網(wǎng)絡(luò)[9-10](recurrent neural networks,RNN)的方法;(3) 基于圖神經(jīng)網(wǎng)絡(luò)[11-13](graph neural networks,GNN)的方法。上述方法的共性是:獨立建模當(dāng)前用戶的會話信息,通過學(xué)習(xí)同一會話內(nèi)的用戶序列點擊行為,得到每個物品和會話的向量表達(dá),最終完成推薦。然而,這類基于當(dāng)前會話子序列的SBR 算法,僅僅建模當(dāng)前會話內(nèi)的物品關(guān)系,建模信息過于單一,存在一定程度的數(shù)據(jù)稀疏性問題,導(dǎo)致模型擬合性不佳,存在預(yù)測偏差。
本文認(rèn)為不同會話間物品的協(xié)同信息可以增強當(dāng)前會話的物品表示學(xué)習(xí),緩解數(shù)據(jù)稀疏性問題。例如,2 個用戶的不同會話:iPhone XR→Airpods→Mi 11 和iPhone 11→Mi 11→iPhone 12→Airpods,預(yù)測用戶在第1 個會話中點擊了Mi 11 之后感興趣的物品,可以融合存在相似行為模式的第2 個會話的協(xié)同信息來輔助學(xué)習(xí)。
為解決以往SBR 算法中的稀疏性問題,本文提出一種基于自監(jiān)督學(xué)習(xí)的圖轉(zhuǎn)移網(wǎng)絡(luò)協(xié)同會話推薦算法(self-supervised graph transition network for session-based recommendation,S-SGTN)。該算法首先基于當(dāng)前會話序列和所有會話序列構(gòu)造局部會話圖和協(xié)同會話圖,用于描述會話中物品的局部和協(xié)同信息。其中協(xié)同會話圖是由與目標(biāo)物品相似的物品節(jié)點構(gòu)成,局部會話圖由當(dāng)前會話中的物品組成。其次,利用雙通道圖轉(zhuǎn)移網(wǎng)絡(luò)(graph transition network,GTN)捕捉當(dāng)前會話內(nèi)和不同會話間物品的轉(zhuǎn)移關(guān)系,然后將自監(jiān)督學(xué)習(xí)融入到網(wǎng)絡(luò)訓(xùn)練中,把最大化局部和全局表示的互信息的任務(wù)作為推薦任務(wù)的輔助任務(wù),進(jìn)一步剔除與當(dāng)前物品不相關(guān)的物品,以更好地抽取目標(biāo)物品的潛在鄰居的特征信息,彌補建模當(dāng)前會話中物品信息的不足,進(jìn)而改進(jìn)物品和會話的表示。最后,計算候選集合中的物品表示與上一步得到的會話表示的相似度,進(jìn)而實現(xiàn)對用戶下一個交互物品的預(yù)測。綜上所述,本文的主要貢獻(xiàn)如下。
(1)提出一種雙通道圖轉(zhuǎn)移網(wǎng)絡(luò),可以同時捕捉同一會話內(nèi)物品的轉(zhuǎn)移信息和不同會話間物品的協(xié)同信息。
(2)在網(wǎng)絡(luò)訓(xùn)練中,創(chuàng)建自監(jiān)督學(xué)習(xí)任務(wù),作為推薦任務(wù)的輔助任務(wù),能更好地聚合鄰居節(jié)點特征,進(jìn)而優(yōu)化物品的表示,提升模型的推薦效果。
(3)在3 個公開數(shù)據(jù)集的實驗結(jié)果中,本文提出的S-SGTN 算法效果優(yōu)于其他基線算法。
本節(jié)詳細(xì)闡述了與本文相關(guān)的研究工作,包括傳統(tǒng)的方法、深度學(xué)習(xí)的方法以及自監(jiān)督學(xué)習(xí)的方法。
一般來說,傳統(tǒng)的SBR 都是基于啟發(fā)式的思想,本質(zhì)上是通過建模物品或者會話之間的相似度來為用戶提供推薦服務(wù)?;贙 最近鄰(k nearest neighbor,KNN)的算法[1],首先尋找和目標(biāo)物品或會話相近的物品和會話,然后通過計算候選集物品與當(dāng)前會話的相似度來推薦?;诜纸鈧€性化馬爾可夫鏈的模型[7](factorizing personalizing Markov chains,FPMC),結(jié)合傳統(tǒng)的矩陣分解(matrix factorization,MF)和馬爾可夫鏈模型(Markov chains,MC),通過分解底層的轉(zhuǎn)移矩陣來建模用戶的序列行為。但該模型假設(shè)序列中僅相鄰物品是有關(guān)系的,故無法捕捉序列的全局信息。
這些傳統(tǒng)的SBR 算法在物品間依賴關(guān)系比較簡單的數(shù)據(jù)集上效果可以和基于深度學(xué)習(xí)的SBR算法相媲美,但是其忽略了用戶的動態(tài)行為,無法建模會話內(nèi)和會話間物品之間復(fù)雜的高階依賴關(guān)系。
隨著深度學(xué)習(xí)的飛速發(fā)展,基于深度學(xué)習(xí)的方法也廣泛應(yīng)用到SBR 領(lǐng)域[11]。Hidasi 等人[9]提出GRU4Rec 模型,該算法將RNN 應(yīng)用到SBR 領(lǐng)域。在GRU4Rec 的研究基礎(chǔ)上,Quadrana 等人[10]提出層次化RNN 模型,分別刻畫會話和用戶信息。在建模會話意圖方面[14-16],Guo 等人[16]提出一種跳躍網(wǎng)絡(luò)來建模用戶的興趣變化。Wu 等人[11]將用戶的會話信息建模成圖結(jié)構(gòu)數(shù)據(jù),并用門控圖神經(jīng)網(wǎng)絡(luò)(gated graph neural network,GGNN)捕捉會話中物品之間的高階轉(zhuǎn)移關(guān)系,并取得相比以往RNN 模型更好的推薦效果。
推薦系統(tǒng)中的自監(jiān)督學(xué)習(xí)方法[13,17]通過構(gòu)造不同視圖的表征,利用自監(jiān)督信號來增強網(wǎng)絡(luò)的表達(dá)能力。Xia 等人[13]提出自監(jiān)督的超圖網(wǎng)絡(luò)捕捉會話中物品間的超配對關(guān)系,并通過融合超配對關(guān)系的會話表示完成相應(yīng)的推薦。在序列推薦方面,Zhou 等人[17]提出基于自注意力機制的模型框架并利用數(shù)據(jù)的內(nèi)在關(guān)聯(lián)性來構(gòu)建自監(jiān)督函數(shù),然后通過訓(xùn)練的方式來增強數(shù)據(jù)的表示,以改進(jìn)序列推薦的效果。
S-SGTN 模型架構(gòu)如圖1 所示,從左到右分別是會話序列層、會話圖層、圖轉(zhuǎn)移網(wǎng)絡(luò)層、自監(jiān)督學(xué)習(xí)層、物品和會話的表示層、預(yù)測層。
圖1 基于自監(jiān)督學(xué)習(xí)的圖轉(zhuǎn)移網(wǎng)絡(luò)會話推薦算法的整體框架圖
會話序列層包含所有匿名用戶的會話序列,下游會話圖層中的會話圖即由其構(gòu)建而成。圖轉(zhuǎn)移網(wǎng)絡(luò)層是由局部和協(xié)同會話圖兩部分組成的雙通道圖卷積神經(jīng)網(wǎng)絡(luò)(graph convolution network,GCN)構(gòu)成,該網(wǎng)絡(luò)不同于傳統(tǒng)的GCN 網(wǎng)絡(luò),特征變換和非線性激活由更簡單有效的均一化求和(normalized sum)操作代替[18]。網(wǎng)絡(luò)的輸入信息分別是目標(biāo)物品在局部會話圖中的表示和在協(xié)同會話圖中的所有鄰居節(jié)點的表示,經(jīng)過多層GTN 聚合以后,圖轉(zhuǎn)移網(wǎng)絡(luò)層的雙通道分別輸出融合了局部和協(xié)同全局信息的目標(biāo)節(jié)點表示。在自監(jiān)督學(xué)習(xí)層,上述雙通道節(jié)點表示被作為物品在局部和全局2 個不同層面但可以互補的信息表現(xiàn)形式,互相作為彼此的監(jiān)督信號,并把最大化它們之間互信息的任務(wù)作為推薦任務(wù)的輔助任務(wù),以去除不相關(guān)的物品信息,更好地聚合目標(biāo)物品鄰居節(jié)點的特征信息,優(yōu)化物品的表示。最后通過注意力機制學(xué)習(xí)會話的表示,計算并預(yù)測候選集合中物品的點擊概率。
定義1物品信息和對應(yīng)的會話序列S的定義:物品字典V={v1,v2,…,v|V|},其中| V|表示無重復(fù)的物品總數(shù),給定一個會話序列S={vs,1,vs,2,…,vs,n},vs,t∈V表示在會話S中匿名用戶在t時刻產(chǎn)生交互行為的物品。
定義2物品的鄰居物品節(jié)點的定義:對于物品vi∈S,其k跳(k-hop)的鄰居物品節(jié)點集合= {vp | p∈[i -k,i+k]}。
定義3會話圖:會話序列S構(gòu)成一張圖={VS,ES},其中每一個節(jié)點vs,i∈VS代表一個物品節(jié)點,圖的每一條邊(vs,t-1,vs,t) ∈ES表示用戶的一次交互行為。
定義4協(xié)同會話圖:根據(jù)定義2,對于?vi∈V,可得到其鄰居節(jié)點集合Nvi,然后構(gòu)造協(xié)同會話圖,其中分別表示協(xié)同會話圖的節(jié)點和邊。
根據(jù)上面對物品和會話信息的定義,SBR 算法是在已知會話序列S的條件下,輸出會話向量表示S和每個候選物品vi的評分的數(shù)值表示用戶可能與該物品交互的概率,用于預(yù)測下一個產(chǎn)生交互的物品vs,n+1。
會話圖是由包含用戶行為信息的物品序列構(gòu)成。研究表明,在一定序列長度內(nèi),同一會話中的相鄰物品具有較大的相似性或關(guān)聯(lián)關(guān)系[2,6,11]。受此啟發(fā),為彌補單個會話圖中物品信息的不足,本文組建協(xié)同會話圖,以從全局層面上建模物品的表示。其中,協(xié)同會話圖是由數(shù)據(jù)集中所有會話序列經(jīng)過一定的處理方式構(gòu)建而成。構(gòu)建方式如下所述。
首先對數(shù)據(jù)集所包含的每一個物品構(gòu)建倒排表,其中倒排表是由目標(biāo)物品的鄰居物品組成。如圖2 所示,以物品節(jié)點v4為例,假設(shè)要構(gòu)建的是目標(biāo)物品v4的倒排表,根據(jù)上文的定義2,從數(shù)據(jù)集中所有會話序列,選取v4的2 跳鄰居節(jié)點集合,即v4的倒排表為{v1,v2,v3,v5,v6,v7}。以此類推,依次構(gòu)建物品v1,…,vn的倒排表。為了降低噪聲節(jié)點的影響,本文對生成的倒排表進(jìn)行了優(yōu)化處理,僅選取倒排表中和目標(biāo)物品共現(xiàn)頻次較高的物品。本文選取的閾值為8,其中共現(xiàn)頻次的計算是由數(shù)據(jù)集統(tǒng)計得到。所以目標(biāo)物品v4的最終倒排表為{v1,v2,v5,v7}。最后將所有目標(biāo)物品和其倒排表中的物品節(jié)點直接相連以組建全局的協(xié)同會話圖。
圖2 會話圖的構(gòu)建示意圖
由以上會話圖的組建過程可知,局部會話圖是由單一會話中的物品節(jié)點構(gòu)成,根據(jù)會話中的行為序列,直接建立的無向圖;協(xié)同會話圖是從相似物品的層面上出發(fā),并對物品的倒排表進(jìn)一步優(yōu)化處理,降低不相關(guān)物品對會話圖的影響。如果一個物品出現(xiàn)在不同的會話序列中,其鄰居節(jié)點信息是不同的。
由于原始物品ID 的表達(dá)能力有限,并不能建模物品與物品之間的內(nèi)在關(guān)聯(lián)性。因此,本文先將物品ID 映射為獨熱(one-hot)編碼(目標(biāo)物品所在位置為1,其他數(shù)值為0),再將one-hot 編碼通過投影矩陣H∈RN×d轉(zhuǎn)化為低維稠密的向量表示:X=表示物品vi的嵌入向量(embedding),其中d是向量的維度。投影矩陣的參數(shù)將通過端到端訓(xùn)練的方式與模型其他層的參數(shù)一起學(xué)習(xí)。
根據(jù)當(dāng)前會話S的局部會話圖和協(xié)同會話圖,分別在和圖中選取目標(biāo)節(jié)點vi的鄰居節(jié)點集合和,然后將它們的embedding 輸入到雙通道GTN 中,學(xué)習(xí)vi在局部會話圖和全局會話圖中的表示。
由于一層GTN 網(wǎng)絡(luò)僅能學(xué)習(xí)到一階鄰居節(jié)點之間的關(guān)聯(lián)性,無法捕捉多階鄰居節(jié)點之間的復(fù)雜轉(zhuǎn)移關(guān)系,故本文采用多層的網(wǎng)絡(luò)結(jié)構(gòu)來學(xué)習(xí)目標(biāo)物品融合高階鄰居的信息表示。如圖1 所示,GTN中的每一層均通過均一化求和函數(shù)做融合計算,并輸入融合l階信息的表示到下一層。均一化求和函數(shù)核心思想是通過聚合目標(biāo)物品上一個狀態(tài)的表示和其鄰居物品的上一個狀態(tài)的表示來生成目標(biāo)物品下一個狀態(tài)的表示,以此更新迭代物品的embedding表示。具體計算方式如下:
隨著GTN 層數(shù)的增加,圖中節(jié)點之間的表示逐漸平滑并接近,并且不同層的物品節(jié)點表示捕獲的是不同的語義特征。因此,對序列中的物品表示加權(quán)求和相較于僅用最后一層的表示效果更佳,使得物品的表示更加全面[18-19]。所有物品節(jié)點經(jīng)過L層GTN 網(wǎng)絡(luò)特征聚合以后,生成物品的局部表示集合和全局表示集合:
最終通過聚合函數(shù)(aggregator)生成融合局部和全局協(xié)同信息的物品表示集合Ev:
其中evi是經(jīng)過雙通道GTN 學(xué)習(xí)到的vi的表示,計算方式如下:
本文采用加和操作來作為聚合函數(shù),并在3.7 節(jié)給出不同聚合函數(shù)選擇的對比實驗分析。
由于相同物品在不同會話中的鄰居節(jié)點不同,所以最終學(xué)習(xí)到的同一物品在不同會話中的表示也不同,具有動態(tài)性。
自監(jiān)督學(xué)習(xí)作為深度學(xué)習(xí)的一種,其與監(jiān)督學(xué)習(xí)不同之處是:自監(jiān)督學(xué)習(xí)避免了對數(shù)據(jù)集進(jìn)行大量的標(biāo)簽標(biāo)注工作,通過自身定義的偽標(biāo)簽作為訓(xùn)練信號,從而將學(xué)習(xí)到的表示用于下游任務(wù)。即自監(jiān)督學(xué)習(xí)可以對用戶的顯式數(shù)據(jù)進(jìn)行增強,因此可以用來解決推薦系統(tǒng)中數(shù)據(jù)稀疏性問題,更好地聚合鄰居節(jié)點特征,優(yōu)化物品的表示。
對比學(xué)習(xí)作為自監(jiān)督學(xué)習(xí)的一種判別式模型,其核心思想是:使得相似樣本之間的距離變近,不同樣本之間的距離變遠(yuǎn)[20]。
本文組建協(xié)同會話圖可以彌補局部會話圖中物品信息的不足問題,緩解數(shù)據(jù)稀疏性。因此,創(chuàng)建自監(jiān)督學(xué)習(xí)的子任務(wù),來輔助建模物品的表示,用于下游的會話表示學(xué)習(xí)。自監(jiān)督學(xué)習(xí)可以分為自監(jiān)督信號的創(chuàng)建(前置任務(wù))和對比學(xué)習(xí)兩部分。
前置任務(wù)是自監(jiān)督學(xué)習(xí)中非常重要的一個策略,可以用偽標(biāo)簽從數(shù)據(jù)中學(xué)習(xí)表示?;诖?本文中的雙通道GTN 是從協(xié)同會話圖和局部會話圖2個層面刻畫同一個物品的表示。在訓(xùn)練過程中,物品在局部會話圖中的表示和協(xié)同會話圖中的表示作為彼此的真值(ground truth),且這種一對一的對應(yīng)關(guān)系即是偽標(biāo)簽(標(biāo)簽的增廣),即彼此的自監(jiān)督信號。
對比學(xué)習(xí)總體上可以分為負(fù)樣本的構(gòu)建、數(shù)據(jù)樣本投射(encoder)到隱空間、對encoder 的訓(xùn)練(對比損失函數(shù))和下游任務(wù)優(yōu)化4 個小部分。據(jù)上文中提到的對比學(xué)習(xí)的核心思想,本文把通過局部會話圖學(xué)習(xí)到的目標(biāo)物品的表示作為錨點(anchor),經(jīng)過協(xié)同會話圖學(xué)習(xí)到目標(biāo)物品的表示作為相似樣本(正樣本),然后將經(jīng)過協(xié)同會話圖學(xué)習(xí)到的目標(biāo)物品以外的物品表示作為不同樣本(負(fù)樣本)。對于相似度的定義,本文采用余弦相似度來衡量。由于每一個小批量數(shù)據(jù)集中包含大量的物品,每個給定的目標(biāo)物品均包含大量的負(fù)樣本,所以本文采用InfoNCE[20]損失函數(shù)作為自監(jiān)督學(xué)習(xí)子任務(wù)的目標(biāo)函數(shù),計算方式如式(9)所示。
最終自監(jiān)督學(xué)習(xí)的任務(wù)還要結(jié)合下游的任務(wù)效果,一起優(yōu)化訓(xùn)練。這部分內(nèi)容將在下文2.6 小節(jié)和2.7 小節(jié)進(jìn)行詳細(xì)的論述。
通過上文的自監(jiān)督學(xué)習(xí),得到的是會話中某一物品的表示。由于一個會話序列包含多個物品,所以需要把會話中每一個物品的表示進(jìn)行聚合,進(jìn)而生成整個會話的表示。
另外,在現(xiàn)實數(shù)據(jù)集中,可能存在2 個序列其節(jié)點順序不同、但生成圖的結(jié)構(gòu)是相同的情況。例如會話序列1:[v1,v2,v3,v1] 和2:[v2,v3,v1,v2],經(jīng)過2.1 小節(jié)的定義3 將生成相同的會話圖,但是反映在真實序列中,不僅序列信息不同,用戶當(dāng)前興趣點也不同。因此,考慮位置編碼可以準(zhǔn)確區(qū)分節(jié)點集合相同但順序不同的同構(gòu)序列圖,對于學(xué)習(xí)圖節(jié)點表示很重要。
本文引入位置向量(position embedding,PE)來學(xué)習(xí)準(zhǔn)確的會話序列表示。對于會話S,其位置嵌入向量矩陣Ps為:Ps= {p1,…,pi,…,pt},其中pi∈Rd,變量t表示S的長度。位置嵌入向量矩陣的參數(shù)和2.3 小節(jié)的投影矩陣的參數(shù)一樣,將通過端到端訓(xùn)練的方式與模型其他層的參數(shù)一起學(xué)習(xí)。最終融入位置編碼信息的物品節(jié)點表示如式(10)所示。
其中W1∈Rd×2d是系數(shù)矩陣,evi是自監(jiān)督學(xué)習(xí)得到節(jié)點vi的表示,pt-i+1是節(jié)點vi所在位置的位置編碼向量,b1∈Rd為偏置,‖表示拼接函數(shù)操作。
對于會話序列,近期產(chǎn)生交互行為的物品節(jié)點更能反映匿名用戶的當(dāng)前興趣[13],即會話序列中每個物品對于整個會話序列的表示貢獻(xiàn)是不同的,因此模型采用注意力機制計算當(dāng)前會話的各個物品節(jié)點對于整個會話表示的貢獻(xiàn)度。計算方式如下:
其中W2,W3,W4∈Rd×d是系數(shù)矩陣,q,b2∈Rd是偏置,zvn是最近一次點擊的物品節(jié)點的表示,z′為當(dāng)前會話S所有物品節(jié)點表示的平均,計算z′是為了降低噪聲數(shù)據(jù)的影響,表達(dá)式為
最終會話的表示S為
根據(jù)2.6 節(jié)得到的目標(biāo)會話S的表示S,為每一個候選物品vi∈V生成一個匹配得分,再用softmax 函數(shù)將得分歸一化為推薦每一個候選物品的概率:
評分表示對于當(dāng)前會話S,預(yù)測下一個產(chǎn)生交互的物品是vi的概率。本文通過優(yōu)化概率最大的物品和實際下一個點擊物品的交叉熵來訓(xùn)練模型,計算方式如下:
其中yi是訓(xùn)練數(shù)據(jù)中用戶對物品vi真實的評分,是模型預(yù)測的評分。
另外,根據(jù)2.5 小節(jié)對自監(jiān)督學(xué)習(xí)子任務(wù)的論述,通過自監(jiān)督學(xué)習(xí)得到的物品表示是為下游的任務(wù)服務(wù)的,即2.6 小節(jié)的會話表示學(xué)習(xí)到2.7 小節(jié)的最終的模型預(yù)測(推薦任務(wù))。所以本文采取的是端到端的訓(xùn)練方式,把自監(jiān)督學(xué)習(xí)的子任務(wù)作為最終推薦任務(wù)的輔助任務(wù),一起訓(xùn)練學(xué)習(xí),使得模型能夠解決單一會話中物品信息不足的稀疏性問題,更加優(yōu)雅地聚合鄰居節(jié)點的特征,優(yōu)化物品的表示。最終多任務(wù)學(xué)習(xí)的聯(lián)合訓(xùn)練損失函數(shù)為
其中,β 為超參數(shù),Lr加號左側(cè)的是推薦任務(wù)的損失函數(shù),Ls是輔助任務(wù)的損失函數(shù)。
本節(jié)在3 個公開的真實數(shù)據(jù)集(Tmall、Diginetica 和Nowplaying)上進(jìn)行詳細(xì)的評估實驗,并分析模型與基準(zhǔn)方法的性能對比實驗、消融實驗和參數(shù)敏感度分析。
本文采用3 個公開的數(shù)據(jù)集,分別是Tmall、Diginetica 和Nowplaying。Tmall 和Diginetica 數(shù)據(jù)集分別是IJCAI-15 和CIKM Cup 2016 提供的電商平臺中用戶點擊行為的數(shù)據(jù)集。Nowplaying 是音樂數(shù)據(jù)集,包含用戶收聽歌曲的行為數(shù)據(jù)。
數(shù)據(jù)預(yù)處理方式和基準(zhǔn)模型[21-22]一致,首先過濾掉長度小于2 和物品出現(xiàn)次數(shù)少于5 的會話數(shù)據(jù),然后進(jìn)行數(shù)據(jù)增廣,例如,輸入會話序列S={vs,1,vs,2,…,vs,n},生成對應(yīng)的序列和標(biāo)簽數(shù)據(jù):([vs,1],vs,2),…,([vs,1,vs,2,…,vs,i],vs,i+1),其中[vs,1,vs,2,…,vs,i] 是輸入序列,vs,i+1是對應(yīng)標(biāo)簽;最后將最近1 周的數(shù)據(jù)作為測試數(shù)據(jù),其余的作為訓(xùn)練數(shù)據(jù)。在經(jīng)過上述預(yù)處理后,數(shù)據(jù)集統(tǒng)計信息如表1 所示。
表1 數(shù)據(jù)集的統(tǒng)計信息
為驗證本文S-SGTN 算法的性能,與以下基線方法進(jìn)行比較。
(1)POP:該傳統(tǒng)的方法始終推薦當(dāng)前數(shù)據(jù)集中出現(xiàn)頻次最高的前N個物品。
(2)Item-KNN[23]:推薦與先前會話序列中物品相似的物品,相似度是2 個物品向量的余弦相似度。
(3)FPMC[7]:基于Markov 鏈的序列推薦算法。
(4)GRU4Rec[9]:將RNN 結(jié)構(gòu)應(yīng)用到SBR 中,用GRU 模塊捕捉序列信息。
(5)NARM[22]:該算法在GRU4Rec 的基礎(chǔ)上,融入注意力機制,并結(jié)合用戶瀏覽時的順序行為信息來建模SBR 以提升模型效果。
(6)STAMP[21]:應(yīng)用自注意力機制建模會話的長期興趣和短期興趣,并通過提高短期興趣的重要性來緩和興趣偏移對推薦模型的影響。
(7)SR-GNN[11]:采用GGNN 學(xué)習(xí)會話內(nèi)物品的表示,再結(jié)合注意力機制生成會話表示,并將最近一次行為物品作為短期興趣,最后融合注意力機制生成會話表示,取得了顯著的推薦效果。
(8)FGNN[24]:通過廣義連接的會話圖,豐富會話中物品的表示以提升推薦模型的效果。
本文采用召回率(Recall@K)和平均倒數(shù)排名(mean reciprocal rank,MRR@K)評價指標(biāo)。
Recall@K 表示推薦結(jié)果排名列表中排在前K的推薦物品中正確答案的數(shù)量占所有測試數(shù)的比重,是評價SBR 準(zhǔn)確性的指標(biāo),計算方式如下:
其中,nhit表示目標(biāo)物品包含在排名前K推薦結(jié)果中的情況數(shù),N是測試集合會話序列數(shù)。
MRR@K 是排序指標(biāo),即前K個推薦結(jié)果中,所有目標(biāo)物品在推薦列表中的排名倒數(shù)的加和平均,如果排名不在前K個推薦列表中,則取0。假設(shè)vtarget是目標(biāo)物品,Rank(vtarget) 是目標(biāo)物品在推薦結(jié)果列表中的位置。計算方式如下:
本文在評價模型性能時,采用的K值為20,因為在SBR 實際的應(yīng)用場景中,絕大多數(shù)用戶關(guān)注的重點是第一頁的推薦結(jié)果。
文中參數(shù)設(shè)置同文獻(xiàn)[11]一致。在3 個數(shù)據(jù)集中,物品嵌入向量維度(hiddensize)d=100,數(shù)據(jù)集的批量(batch size)大小為128。模型使用Adam優(yōu)化器,初始化的學(xué)習(xí)率為0.001,并在每3 輪訓(xùn)練以后,學(xué)習(xí)率按照衰減率0.1 進(jìn)行衰減。為避免過擬合,L2 正則化設(shè)置為1e-5。本文設(shè)置K為20 來匯報模型性能。
表2 記錄了S-SGTN 模型和其他對比模型的實驗結(jié)果。從實驗結(jié)果可以分析得出如下結(jié)論。
表2 S-SGTN 和基線算法在3 個公開數(shù)據(jù)集的實驗結(jié)果(%)
(1)傳統(tǒng)算法(Item-KNN 和FPMC)性能低于基于深 度 學(xué) 習(xí) 的 SBR 算 法(GRU4Rec、NARM、STAMP、SR-GNN 和S-SGTN)。傳統(tǒng)的方法無法充分捕捉會話的序列行為。由于Item-KNN 融入了物品之間的相似度信息,在Diginetica、Nowplaying 數(shù)據(jù)集上比FPMC 效果好,但在更復(fù)雜的數(shù)據(jù)集上,啟發(fā)式的相似度方法表現(xiàn)不佳。
(2)GRU4Rec 作為第一個將RNN 應(yīng)用到推薦系統(tǒng)中的模型,在Diginetica 和Nowplaying 數(shù)據(jù)集上效果比Item-KNN 效果稍差,因為Item-KNN 算法不僅考慮會話的序列信息,還考慮用戶的興趣遷移問題。NARM 和STAMP 算法在GRU4Rec 的基礎(chǔ)上融入注意力機制來捕捉用戶的興趣,所以其推薦效果全面優(yōu)于GRU4Rec。STAMP 在Tmall 數(shù)據(jù)集上的效果優(yōu)于NARM,前者把會話序列中最近一次行為物品作為用戶短期興趣,證明在SBR 中,序列中不同物品對于會話表示的貢獻(xiàn)不同,更凸顯出用注意力機制捕捉用戶興趣遷移的重要性和有效性。
(3)基于GNN 的推薦算法(SR-GNN、FGNN 和S-SGTN)可以捕捉物品間高階關(guān)系,與基于RNN 和注意力機制的方法相比,有較大的性能提升。因此,高階轉(zhuǎn)移關(guān)系在建模SBR 中非常重要。
(4)本文所提S-SGTN 算法融合會話內(nèi)(local)和會話間(global)物品關(guān)聯(lián)關(guān)系,并且采用對比學(xué)習(xí)的方式優(yōu)化建模過程,在Tmall、Diginetica 和Nowplaying 3 個數(shù)據(jù)集上Recall@20 和MRR@20 相比于最好的基線算法分別提升16%和13.3%、5.7%和4.4%以及25%和13.9%。
為驗證S-SGTN 各個模塊的性能,本文做了進(jìn)一步的消融實驗。
(1)S-SGTN_global:僅含local 模塊物品特征,無global 模塊物品特征。
(2)S-SGTN_local:僅含global 模塊物品特征,無local 模塊物品特征。
(3)S-SGTN-MIM:含有g(shù)lobal 和local 模塊物品特征,無自監(jiān)督學(xué)習(xí)模塊。
實驗結(jié)果如表3 所示。表3 展示了不同子模塊對模型的影響,根據(jù)結(jié)果可以得出如下的結(jié)論。
表3 不同子模塊性能測試結(jié)果(%)
(1)在3 個數(shù)據(jù)集中,S-SGTN_global 實驗結(jié)果優(yōu)于S-SGTN_local。因為在會話序列中,用戶興趣往往是短期、動態(tài)變化的,并且對于當(dāng)前會話來說,協(xié)同會話圖中可能有些物品是噪聲信息,稀釋了當(dāng)前會話信息,所以單獨建模協(xié)同會話圖比建模局部會話圖性能要差。
(2)對于Tmall、Diginetica 數(shù)據(jù)集,S-SGTN_MIM 效果優(yōu)于S-SGTN_global 和S-SGTN_local,說明在當(dāng)前會話信息有限的情況下,融入?yún)f(xié)同會話信息是可行且有效的。在Nowplaying 數(shù)據(jù)集上,MRR有很大提升,Recall 反而下降,說明協(xié)同會話圖的信息對于推薦結(jié)果的排序有指導(dǎo)意義,但對于當(dāng)前會話,圖中含有一定的噪聲數(shù)據(jù),所以對Recall 指標(biāo)有一定程度的影響。
(3) 3 個數(shù)據(jù)集上,融合各個子模塊的S-SGTN算法取得最好的效果。證實了自監(jiān)督學(xué)習(xí)模塊在融合同一會話中和不同會話間物品信息的重要性和可行性,其從2 個角度生成物品的表示,并互相成為彼此的自監(jiān)督信號,優(yōu)化推薦效果。
本文分別采用加和(sum-pooling)、拼接(concatenation)、取最大(max-pooling)和線性組合(linear combination)的方式融合物品局部和全局的表示。實驗結(jié)果如圖3 所示。
圖3 不同聚合函數(shù)模型性能圖
實驗結(jié)果表明,在3 個數(shù)據(jù)集中,4 種不同的聚合函數(shù)對模型性能的影響有顯著的區(qū)別,其中加和的聚合方式取得了最優(yōu)的效果。
因為目標(biāo)物品在局部會話圖中和協(xié)同會話圖中生成的表示,雖然聚合的鄰居節(jié)點信息不同,但實際上是同一個物品在2 個不同方面的表示,具有互補性。取最大值的聚合方式模型效果最差,因為取最大值的聚合方式損失了物品表示中的物品稀有特征,例如,長尾的物品特征。拼接的模型效果優(yōu)于取最大值,但劣于線性組合的聚合方式。因為拼接的聚合方式重復(fù)建模了物品特征,淹沒了長尾物品的特征。而線性組合的聚合方式采用注意力機制,用以生成局部和全局表示的權(quán)重,進(jìn)而生成物品的特征表示,但其可能存在過擬合的問題,所以性能比加和的聚合函數(shù)效果差。本文采用的是加和的聚合函數(shù),可看作是線性組合的聚合函數(shù)的特殊表現(xiàn)形式。
本節(jié)結(jié)合實驗分析,分別從訓(xùn)練數(shù)據(jù)的批量(batch size)、物品嵌入向量維度d、自監(jiān)督學(xué)習(xí)輔助任務(wù)的超參數(shù)β、GTN 網(wǎng)絡(luò)的丟棄率和層數(shù)L5 個角度討論超參數(shù)對模型的影響。取值集合分別為[100,128];[64,100,128,256];[0.001,0.01,0.02,0.03,0.04,0.05];[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]和[1,2,3]。
具體的實驗分析如下。
和先前的研究方法[11-16,21-22]一致,批量的大小設(shè)置為100 或者128。從圖4 可以看出,當(dāng)模型中訓(xùn)練數(shù)據(jù)的批量從100 調(diào)整為128 時,模型在3 個數(shù)據(jù)集上的性能都有提升。因為隨著批量的增加,同一批次內(nèi)物品的數(shù)量會有增加,對于降低噪聲物品對目標(biāo)物品的影響、聚合物品鄰居節(jié)點的特征、建模物品之間的高階轉(zhuǎn)移關(guān)系和最終學(xué)習(xí)物品的embedding 表示都有一定的促進(jìn)作用。
圖4 不同批量對模型的性能影響圖
本文分別取64、100、128 和256 四個數(shù)值,探索嵌入向量維度d對模型性能的影響。實驗結(jié)果如圖5所示。當(dāng)物品嵌入向量維度d取值64 的時候模型效果最差,因為其不能完全表達(dá)物品的隱表示信息,物品特征有缺失。當(dāng)取值100 的時候,模型取得最好的效果,并且隨著嵌入向量維度d的逐漸變大,模型性能下降,因為隨著隱表示維度的增加,會引入其他不相關(guān)的信息。
圖5 不同嵌入向量維度對模型的性能影響圖
在自監(jiān)督學(xué)習(xí)模塊,當(dāng)β 取值不同,模型性能的變化如圖6 所示。由圖6 中可以看出,對于Tmall數(shù)據(jù)集,隨著β 的不斷增加,Recall@20 和MRR@20也隨之增加,當(dāng)β=0.03 的時候,模型效果取得整體最優(yōu),并且隨著β 增大,模型性能下降,說明2 個任務(wù)在模型訓(xùn)練的時候存在梯度沖突。然而對于Diginetica、Nowplaying 數(shù)據(jù)集,分別在0.001 和0.02處取得整體最優(yōu)的模型效果。故對于模型性能,需要找到合適的β 值,以獲得Recall@20 和MRR@20指標(biāo)之間的平衡。
圖6 不同β 對模型性能的影響圖
GTN 模塊中,不同的丟棄率(drop out)取值對模型性能的影響如圖7 所示??梢缘玫饺缦陆Y(jié)論:對于3 個數(shù)據(jù)集,隨著丟棄率取值從0.1 增加到0.9,Recall@20 和MRR@20 都呈現(xiàn)先增加然后降低的趨勢;并且Tmall 在丟棄率為0.8 處取得最優(yōu)的模型效果而Diginetica 和Nowplaying 分別在丟棄率為0.5 和0.2 時取得最優(yōu)效果。最優(yōu)取值不同,可能和會話序列的長度有一定的關(guān)系。
GTN 模塊中,不同的丟棄率取值對模型性能的影響如圖7 所示??梢缘玫饺缦陆Y(jié)論:對于3 個數(shù)據(jù)集,隨著丟棄率取值從0.1 增加到0.9,Recall@20和MRR@20 都呈現(xiàn)先增加然后降低的趨勢;并且Tmall 在丟棄率為0.8 處取得最優(yōu)的模型效果而Diginetica 和Nowplaying 分別在丟棄率為0.5 和0.2時取得最優(yōu)效果。最優(yōu)取值不同,可能和會話序列的長度有一定的關(guān)系。
圖7 不同丟棄率對模型性能的影響圖
GTN 模塊選取不同的層數(shù)L,對應(yīng)模型性能變化如圖8 所示。
圖8 不同GTN 層數(shù)對模型性能影響圖
可以看出,Diginetica 數(shù)據(jù)集在層數(shù)L為2 的時候取得最優(yōu)的效果,然而Tmall 和Nowplaying 數(shù)據(jù)集則是當(dāng)L=1 的時候取得整體最優(yōu)效果,且隨著L的增大模型性能逐漸下降。因為隨著GTN 網(wǎng)絡(luò)卷積層數(shù)L逐漸增大,物品之間的表示會越來越接近,并趨于相同,即存在過平滑的問題。
本文模型采用GCN 模型,計算的過程中可以并行以節(jié)省一部分計算時間。為了驗證模型的運行效率,測試每輪次訓(xùn)練的平均耗費時長,并且與最優(yōu)的基線算法模型SR-GNN 和FGNN 相比較,實驗結(jié)果如表4 所示。
表4 每輪次平均訓(xùn)練時長耗費對比
實驗結(jié)果表明,FGNN 整體訓(xùn)練時間最長,因為其結(jié)構(gòu)中的圖注意力網(wǎng)絡(luò)每層都需要計算物品之間的權(quán)重,且層與層之間有依賴關(guān)系,不能并行處理?;贕CN 的S-SGTN 模型,因其具有獨特的雙通道結(jié)構(gòu),可以并行處理,因此S-SGTN 同時具備較好的模型效果和時間效率。
基于當(dāng)前會話信息的推薦算法在建模物品和會話表示方面存在一定的局限性。每條會話都存在相似用戶或相似意圖的會話,這些會話中存在大量的協(xié)同信息,對這些協(xié)同信息進(jìn)行有效融合是提升推薦效果的有效途徑。
為了更準(zhǔn)確地建模物品和會話的表示,本文提出一種基于自監(jiān)督學(xué)習(xí)的圖轉(zhuǎn)移網(wǎng)絡(luò)會話推薦算法。該算法從物品層面上利用雙通道的圖轉(zhuǎn)移網(wǎng)絡(luò)分別建模匿名用戶會話內(nèi)和會話間的物品轉(zhuǎn)移關(guān)系,并在訓(xùn)練過程中,創(chuàng)建自監(jiān)督學(xué)習(xí)的輔助任務(wù),通過最大化會話內(nèi)和會話間的物品表示的互信息,降低噪聲信息對目標(biāo)物品的影響,更好地聚合目標(biāo)物品鄰居節(jié)點的特征,動態(tài)生成物品和會話的表示,完成會話推薦。基于3 個數(shù)據(jù)集的結(jié)果證明了本文提出的算法的有效性。