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