潘承瑞,何靈敏,胥智杰,王修暉,宋承文
1.中國(guó)計(jì)量大學(xué) 信息工程學(xué)院,杭州310000
2.中國(guó)計(jì)量大學(xué) 浙江省電磁波信息技術(shù)與計(jì)量檢測(cè)重點(diǎn)實(shí)驗(yàn)室,杭州310000
隨著互聯(lián)網(wǎng)事物的快速發(fā)展,網(wǎng)絡(luò)信息隨之爆炸式增長(zhǎng)。為了在海量數(shù)據(jù)中準(zhǔn)確挖掘用戶(hù)興趣,推薦算法應(yīng)運(yùn)而生,它能夠根據(jù)用戶(hù)的歷史行為,為用戶(hù)推薦可能感興趣的事物,以克服信息過(guò)載的問(wèn)題。
為解決傳統(tǒng)協(xié)同過(guò)濾[1]的數(shù)據(jù)稀疏和冷啟動(dòng)問(wèn)題,近十年來(lái),在推薦系統(tǒng)中引入輔助信息成為學(xué)術(shù)界的探索方向。知識(shí)圖譜[2]作為一種結(jié)構(gòu)化輔助信息,由于其儲(chǔ)存了用戶(hù)、物品、屬性之間的關(guān)系,蘊(yùn)含著豐富的語(yǔ)義,所以能提高推薦結(jié)果的準(zhǔn)確性、多樣性和可解釋性[3-5]。具體方法是將用戶(hù)-項(xiàng)目交互圖和用戶(hù)或項(xiàng)目知識(shí)圖譜融合為協(xié)同知識(shí)圖——Colloborative Knowledge Graph(CKG)[6],在CKG 上基于用戶(hù)的歷史交互記錄,充分挖掘用戶(hù)偏好。
為了在CKG 的網(wǎng)絡(luò)結(jié)構(gòu)中發(fā)掘用戶(hù)的潛在興趣,需要建立CKG 中的高階連通性,而建模協(xié)同知識(shí)圖的方法,可分為兩類(lèi):基于路徑和基于圖嵌入的方法[7]。以上兩種方法,前者將知識(shí)圖譜分解為一條條獨(dú)立的線性路徑[8],后者僅獲取用戶(hù)或項(xiàng)目的直接鄰居信息,兩種方法都沒(méi)有建立圖上的高階連通性。
為解決現(xiàn)有模型無(wú)法捕獲CKG中高階連通性的問(wèn)題,本文基于近年來(lái)在圖數(shù)據(jù)上初步興起的圖注意力網(wǎng)絡(luò)[9],融合知識(shí)圖譜,通過(guò)圖注意力網(wǎng)絡(luò)的遞歸傳播過(guò)程捕獲圖中節(jié)點(diǎn)的高階連通性。雖然圖注意力網(wǎng)絡(luò)具有強(qiáng)大的表示能力,但是在信息傳播和聚合過(guò)程中,忽略了鄰居節(jié)點(diǎn)間特征交互的重要性。而因子分解機(jī)FM[10]通過(guò)引入二階特征交互獲得的巨大成功啟示人們考慮節(jié)點(diǎn)交互可能帶來(lái)的收益,即通過(guò)特征交互,用戶(hù)的一些潛在偏好能夠被挖掘。因此本文在上述框架基礎(chǔ)上設(shè)計(jì)了一種新的雙線性信息采集器,它明確地建模兩個(gè)節(jié)點(diǎn)之間的交互,并聚合所有的交互結(jié)果,以增強(qiáng)中心節(jié)點(diǎn)的表示,最終提出了一個(gè)有效的推薦模型:融合知識(shí)圖譜的雙線性圖注意力推薦模型——KG-BGAT(Fusion Knowledge Graph and Bilinear Graph Attention Network)。本文的主要貢獻(xiàn)如下:
(1)將基于協(xié)同過(guò)濾的推薦方法和知識(shí)圖譜融合到統(tǒng)一的推薦框架中,設(shè)計(jì)了一個(gè)端到端的協(xié)同知識(shí)圖推薦模型,該模型克服了用戶(hù)-項(xiàng)目交互記錄間相互獨(dú)立的弊端,能夠獲取用戶(hù)基于項(xiàng)目屬性的協(xié)同信號(hào)。
(2)基于圖注意力網(wǎng)絡(luò),設(shè)計(jì)了雙線性采集器,并結(jié)合線性采集器,遞歸地聚合鄰居節(jié)點(diǎn)的特征交互信息和線性加權(quán)信息。這種顯式地編碼圖中節(jié)點(diǎn)交互關(guān)系和高階關(guān)系的方式,使得模型能夠捕獲協(xié)同知識(shí)圖中基于節(jié)點(diǎn)間特征交互的豐富語(yǔ)義和高階連通性。
Rendle[10]提出的因子分解機(jī)是一種將矩陣分解[11]廣義化的模型。因子分解機(jī)與矩陣分解相比,能夠引入除用戶(hù)和項(xiàng)目ID外的輔助信息,更重要的是,因子分解機(jī)引入了特征間的二階交互,使模型具備了生成高維組合特征的能力,大大提高了推薦性能。
為了融合更多的輔助信息,Zhang 等人[4]提出一種基于嵌入的方法:融合結(jié)構(gòu)化信息——知識(shí)圖譜,以及非結(jié)構(gòu)化信息——文本和圖像信息的CKE模型。該模型通過(guò)圖嵌入方法編碼知識(shí)圖譜信息,驗(yàn)證了引入結(jié)構(gòu)化知識(shí)可以提高推薦結(jié)果的準(zhǔn)確性。Sun等[12]提出了一種基于路徑的遞歸知識(shí)圖嵌入方法——RKGE,它首先提取知識(shí)圖譜中用戶(hù)-項(xiàng)目之間的連接路徑,用來(lái)表示用戶(hù)和項(xiàng)目之間的各種語(yǔ)義關(guān)系,然后通過(guò)循環(huán)神經(jīng)網(wǎng)絡(luò)對(duì)這些路徑進(jìn)行編碼。
除了上述單純基于圖嵌入或基于路徑的方法外,近年來(lái)開(kāi)始出現(xiàn)同時(shí)融合以上兩種方法的工作,被稱(chēng)為基于傳播的方法[13]。該方法將節(jié)點(diǎn)嵌入沿圖中的邊進(jìn)行傳播,以捕獲用戶(hù)的潛在興趣。如Wang 等[14]提出RippleNet,它將用戶(hù)的歷史交互項(xiàng)目作為種子,以類(lèi)似于水波的形式向外傳播用戶(hù)偏好,自動(dòng)挖掘用戶(hù)到候選項(xiàng)的路徑。得益于學(xué)術(shù)界在圖結(jié)構(gòu)數(shù)據(jù)上的探索,近年來(lái)出現(xiàn)的圖神經(jīng)網(wǎng)絡(luò)GNN 更擅長(zhǎng)學(xué)習(xí)圖結(jié)構(gòu)數(shù)據(jù)。隨后,將知識(shí)圖譜與圖卷積網(wǎng)絡(luò)[15]相結(jié)合,提出了知識(shí)圖卷積網(wǎng)絡(luò)KGCN[16],該模型首先獲取候選項(xiàng)一個(gè)設(shè)定跳數(shù)的鄰居集合,然后由外向內(nèi)的將各個(gè)節(jié)點(diǎn)周?chē)男畔⒕酆系街行墓?jié)點(diǎn),最終聚合到候選項(xiàng)的表示上,由此獲取候選項(xiàng)周?chē)泥徑畔ⅰ?/p>
圖卷積網(wǎng)絡(luò)中鄰居節(jié)點(diǎn)信息聚合到中心節(jié)點(diǎn)時(shí)采用的是均值聚合,考慮到該做法會(huì)引入較多噪聲,文獻(xiàn)[9]等提出的圖注意力網(wǎng)絡(luò)GAT使用注意力機(jī)制來(lái)替代靜態(tài)歸一化卷積運(yùn)算,使得模型能夠?qū)Σ煌泥従庸?jié)點(diǎn)指定不同的權(quán)值,避免鄰居節(jié)點(diǎn)信息量過(guò)大帶來(lái)的噪聲影響。
本文提出的網(wǎng)絡(luò)模型結(jié)合了知識(shí)圖譜和圖注意力網(wǎng)絡(luò),在推薦模塊中,引入了電影項(xiàng)目的知識(shí)圖譜,將其作為推薦系統(tǒng)的輔助信息,之后基于圖注意力網(wǎng)絡(luò),設(shè)計(jì)了雙線性信息采集器,結(jié)合線性信息采集器,對(duì)用戶(hù)、項(xiàng)目和知識(shí)圖譜中實(shí)體(如電影類(lèi)型、導(dǎo)演、演員)的交互信息和高階關(guān)系進(jìn)行建模,以捕獲用戶(hù)的深層興趣。模型結(jié)構(gòu)如圖1所示,它包含3個(gè)主要組件:(1)嵌入層;(2)基于節(jié)點(diǎn)交互和注意力的嵌入傳播層;(3)預(yù)測(cè)層。本章將詳細(xì)介紹模型結(jié)構(gòu),在正式介紹模型結(jié)構(gòu)之前,先介紹一下相關(guān)概念和任務(wù)目標(biāo)。
2.1.1 協(xié)同知識(shí)圖譜
本文構(gòu)建的協(xié)同知識(shí)圖譜是將用戶(hù)-項(xiàng)目交互圖G1和項(xiàng)目知識(shí)圖譜G2融合為統(tǒng)一的協(xié)同知識(shí)圖G。G1的定義為{ }(u,Interact,i)|u∈U,i∈I,U和I分別代表用戶(hù)和項(xiàng)目集合;Interact表示用戶(hù)u在項(xiàng)目i上有交互記錄。G2由實(shí)體-關(guān)系-實(shí)體的三元組表示,刻畫(huà)了現(xiàn)實(shí)世界中項(xiàng)目在其屬性上的相互關(guān)聯(lián),三元組的表現(xiàn)形式為{(h,r,t)|h,t∈E,r∈R} ,其中h、t分別表示頭實(shí)體和尾實(shí)體;r為兩個(gè)實(shí)體之間的關(guān)系;E是實(shí)體的集合,在項(xiàng)目知識(shí)圖譜G2中代表項(xiàng)目和項(xiàng)目屬性所指向的實(shí)體,例如本文項(xiàng)目知識(shí)圖譜中的實(shí)體是電影、電影類(lèi)型、導(dǎo)演和演員;R為實(shí)體間關(guān)系的集合。
圖1 KG-BGAT整體框架圖
構(gòu)建協(xié)同知識(shí)圖G時(shí),先分別基于用戶(hù)-項(xiàng)目交互歷史和項(xiàng)目知識(shí)圖譜構(gòu)建G1、G2,之后以項(xiàng)目為橋梁,將G1、G2整合為一張圖:
其中,E′=U?E,R′={ }Interact?R。需要注意的是,本文構(gòu)建的協(xié)同知識(shí)圖G為無(wú)向圖,即R具有正方向和反方向,以此為G中每個(gè)節(jié)點(diǎn)采集其所有相鄰節(jié)點(diǎn)的信息。
2.1.2 任務(wù)目標(biāo)
本文推薦系統(tǒng)的任務(wù)目標(biāo)如下。
輸入:協(xié)同知識(shí)圖G,G中包含用戶(hù)-項(xiàng)目交互圖G1 和項(xiàng)目知識(shí)圖譜G2。
輸出:一個(gè)預(yù)測(cè)函數(shù),用來(lái)計(jì)算用戶(hù)u與候選項(xiàng)目i產(chǎn)生交互的概率值。
本文重點(diǎn)在于如何利用協(xié)同知識(shí)圖G捕獲實(shí)體間的特征交互信息,并在此基礎(chǔ)上建立實(shí)體間的高階連通性,以下三節(jié)將從模型結(jié)構(gòu)進(jìn)行介紹。
模型嵌入層是將協(xié)同知識(shí)圖G的結(jié)構(gòu)信息進(jìn)行編碼,為圖中的每個(gè)實(shí)體和關(guān)系生成低維連續(xù)空間中的嵌入向量,并盡量保持圖的結(jié)構(gòu)信息。知識(shí)圖嵌入的主流方法是基于TransE及其變體的平移距離模型,該類(lèi)嵌入方法使用基于距離的評(píng)分函數(shù),被廣泛應(yīng)用于結(jié)合知識(shí)圖譜的推薦算法中[4,17-18]。
平移距離模型主要有TransE、TransH、TransR等,本文采用TransR[19]方法生成嵌入向量,原因在于TransR考慮到相同實(shí)體在不同關(guān)系上應(yīng)有不同的語(yǔ)義,通過(guò)額外引入關(guān)系空間,從而在計(jì)算兩個(gè)實(shí)體間的距離時(shí),實(shí)現(xiàn)了在特定關(guān)系空間上的考量[7]。嵌入層中生成的表示向量有以下兩點(diǎn)作用:(1)將圖的結(jié)構(gòu)信息注入模型,為推薦系統(tǒng)提供了豐富的輔助信息;(2)在注意力機(jī)制中,通過(guò)實(shí)體和關(guān)系的嵌入向量,可以衡量三元組的頭尾實(shí)體在特定關(guān)系r上的相似度,從而控制嵌入傳播層中某一實(shí)體傳遞到另一實(shí)體的信息量。
TransR的基本方法是:在協(xié)同知識(shí)圖G中,在某個(gè)特定關(guān)系r上,不斷學(xué)習(xí)三元組(h,r,t)中實(shí)體和關(guān)系的嵌入,使得,這里er是關(guān)系r的嵌入向量,分別是頭實(shí)體和尾實(shí)體在關(guān)系r空間中的嵌入向量。對(duì)于任意給定的一個(gè)三元組(h,r,t),不管它是否真正在G中存在,用如下距離公式描述其真實(shí)性:
其中,Mr∈?k×d是關(guān)系r的變換矩陣,用來(lái)將實(shí)體從d維的實(shí)體空間投影到k維的關(guān)系空間中;||·||2表示L2正則化,以防止過(guò)擬合。這里,得分越低的g(h,r,t)表示給定的三元組越有可能是在G中真實(shí)存在的。
TransR 的訓(xùn)練考慮到真實(shí)三元組與虛假三元組之間的相對(duì)順序,并通過(guò)兩兩的排名損失來(lái)考量區(qū)別:
對(duì)G中任意一個(gè)實(shí)體h,記嵌入層中為該實(shí)體生成的嵌入向量為,上標(biāo)的數(shù)字表示未聚合任何階數(shù)的鄰居信息,是h本身的嵌入向量。
在介紹嵌入傳播層之前,先根據(jù)圖1介紹相關(guān)概念和符號(hào):對(duì)協(xié)同知識(shí)圖G中的某個(gè)中心節(jié)點(diǎn)h,{h|h∈′} ,′為2.1.1 小節(jié)中引入的符號(hào),表示協(xié)同知識(shí)圖G中的所有實(shí)體集合,記N(h)為h的鄰居集合,其定義為:N(h)={t|(h,r,t)∈G} ,N(h) 記錄了G中與h相連的所有鄰居節(jié)點(diǎn),不包含h本身;記(h)為包含h的鄰居集合:(h)={h} ?N(h);d(h)表示節(jié)點(diǎn)h的鄰居個(gè)數(shù),d(h)=|N(h) |;~(h)為集合(h)中的元素個(gè)數(shù),(h)=|(h) |=d(h)+1。
對(duì)于目標(biāo)節(jié)點(diǎn)h,嵌入傳播層旨在將N(h)中的線性加和信息以及N~ (h)中的節(jié)點(diǎn)交互信息迭代地聚合到中心節(jié)點(diǎn)h的表示中,以捕獲h與l階鄰居的高階連通性以及鄰居間的特征交互信息。
同樣以圖1中的i3節(jié)點(diǎn)為例,先概述嵌入傳播層如何采集并傳播信息:(1)信息采集單元分別使用線性采集器Linear Collector和雙線性采集器Bilinear Collector采集上述兩種信息,線性采集器對(duì)N(i3)中的3個(gè)節(jié)點(diǎn)做線性加和,記收集的信息為L(zhǎng)C(i3),LC(i3)+,其中,π是根據(jù)注意力機(jī)制計(jì)算的系數(shù);雙線性采集器收集N~ (i3)中4 個(gè)節(jié)點(diǎn)的兩兩特征交互信息,記收集的信息為BC(i3)系數(shù)取,因?yàn)閺?i3)的6個(gè)節(jié)點(diǎn)中任取2個(gè)節(jié)點(diǎn)共有6種排列組合情況。信息采集部分的最后是整合上述兩種信息,將整合的鄰居信息記為。(2)將i3本身的表示和做聚合操作,得到i3節(jié)點(diǎn)聚合一階鄰居后的表示。需要指出的是,G中所有節(jié)點(diǎn)同時(shí)進(jìn)行以上步驟,在目標(biāo)節(jié)點(diǎn)i3聚合一階鄰居信息得到的同時(shí),N(i3)中的3 個(gè)鄰居節(jié)點(diǎn)也聚合了其各自一階鄰居的信息,得到了各自的表示向量:。(3)將(1)和(2)步驟中所有的上標(biāo)l遞增1,獲取聚合i3二階鄰居信息的表示,以此類(lèi)推,可獲取聚合i3更高階鄰居信息的表示。最終獲取的i3節(jié)點(diǎn)的多個(gè)表示、捕獲了不同階的連通性和節(jié)點(diǎn)交互信息。
下面從中心節(jié)點(diǎn)為h的一般情況描述嵌入傳播層,先介紹一個(gè)單層,它主要由三部分組成:信息采集、注意力機(jī)制和信息聚合,之后闡述如何推廣到多層。
2.3.1 信息采集
該部分采集的信息分為兩部分:一是N(h)中的線性組合信息;二是N~ (h) 中兩兩節(jié)點(diǎn)間的特征交互信息。本文分別使用線性和雙線性采集器收集上述兩種信息。
線性采集器:線性采集器Linear Collector(LC)用來(lái)采集節(jié)點(diǎn)h的鄰居節(jié)點(diǎn)集合N(h)中所有節(jié)點(diǎn)的線性加和信息,其定義如下:
其中,π(h,r,t)是線性采集器中的注意力機(jī)制,它是一個(gè)數(shù)值標(biāo)量,用來(lái)控制鄰居節(jié)點(diǎn)t在關(guān)系r上傳播到中心節(jié)點(diǎn)h的信息量,其計(jì)算過(guò)程將在2.3.2小節(jié)中介紹;是嵌入層中得到的鄰居節(jié)點(diǎn)的嵌入向量。線性采集器將h的一階連通性信息注入到LC(h)的表示中,并且通過(guò)π(h,r,t)區(qū)分了鄰居節(jié)點(diǎn)的重要性。
雙線性采集器本文提出了一種新型的雙線性信息采集器Bilinear Collector(BC),用來(lái)收集包含h的鄰居節(jié)點(diǎn)集合(h)中,兩兩節(jié)點(diǎn)間的特征交互信息,其定義如下:
信息整合信息采集的最后階段是對(duì)兩個(gè)采集器中的信息進(jìn)行匯總,將匯總了h節(jié)點(diǎn)一階鄰居信息的向量表示記為保留了節(jié)點(diǎn)h的一階連通性和一階鄰居交互信息,其定義如下:
其中,α是超參數(shù),其取值范圍為[0,1],用來(lái)控制采用的雙線性采集器和線性采集器的信息量比率。
G中所有節(jié)點(diǎn)的信息采集過(guò)程是同步進(jìn)行的,在獲得的同時(shí),其余所有節(jié)點(diǎn),包括h的所有鄰居節(jié)點(diǎn),也各自獲得了保留了其一階鄰居信息的向量表示。
2.3.2 線性采集器中的注意力機(jī)制
本文在線性采集器中引入了注意力機(jī)制。注意力機(jī)制通過(guò)上述π(h,r,t)的引入實(shí)現(xiàn),它的計(jì)算公式如下:
這里,本文選擇tanh 作為非線性激活函數(shù);Mr是嵌入層中生成的關(guān)系r上的變換矩陣。π(h,r,t)的大小取決于嵌入層中,中心節(jié)點(diǎn)h和鄰居節(jié)點(diǎn)t在關(guān)系r上的距離,若h和t相近,則t可以傳播更多的信息到h上。之后,對(duì)以h為頭結(jié)點(diǎn)的所有三元組計(jì)算得出的注意力分?jǐn)?shù)使用softmax做歸一化操作:
當(dāng)信息傳播迭代到更高階時(shí),該機(jī)制使模型將更多的注意力聚焦在部分節(jié)點(diǎn)上,減小了噪聲影響。
2.3.3 信息聚合
嵌入傳播的最后階段是聚合h實(shí)體本身的表示向量,和信息采集過(guò)程中從其鄰居獲取的表示向量,將其作為實(shí)體h聚合了一階鄰居信息的表示形式,記為,其定義如下:
(1)加和聚合器取上述兩個(gè)向量的和,然后對(duì)該結(jié)果做線性變換,W(1)∈?d′×d是可訓(xùn)練的權(quán)重矩陣,d′是設(shè)定的線性變換后的向量維度,b(1)是偏置項(xiàng),W(1)、b(1)的上標(biāo)1 表示生成時(shí),聚合器做線性變換的對(duì)應(yīng)參數(shù),Relu是非線性激活函數(shù):
(2)合并聚合器將上述兩個(gè)向量做合并操作:Concatenate(||),之后應(yīng)用線性變換,W(1)∈?d′×2d是權(quán)重矩陣,最后同樣應(yīng)用Relu作為非線性激活函數(shù):
2.3.4 高階傳播
通過(guò)以上步驟,獲得了實(shí)體h的一階表示,與此同時(shí),N(h)中的每個(gè)節(jié)點(diǎn)也獲得了各自的一階表示。接下來(lái)要獲取h的高階信息,需要迭代更新eh的表示,通過(guò)疊加以上單層的嵌入傳播層實(shí)現(xiàn)。本文將保存實(shí)體h的l階信息的嵌入記為,遞歸更新公式如下:
f(·)是2.3.3 小節(jié)中的聚合器;是(h)中的節(jié)點(diǎn)在上一步的嵌入傳播過(guò)程中獲取的l-1 階表示。通過(guò)高階嵌入傳播,G中節(jié)點(diǎn)的高階連通性和節(jié)點(diǎn)交互信息能夠在傳播過(guò)程中被捕獲。顯然,高階嵌入傳播將基于屬性的協(xié)作信號(hào)無(wú)縫地注入到表示學(xué)習(xí)過(guò)程中,從而克服了傳統(tǒng)協(xié)同過(guò)濾各條交互信息相互獨(dú)立的弊端,而高階交互信息的收集有助于模型挖掘用戶(hù)的潛在復(fù)雜偏好。
經(jīng)過(guò)l層的嵌入傳播層后,可以獲得用戶(hù)和項(xiàng)目的多尺度表示。對(duì)于某個(gè)用戶(hù)u,多尺度表示為{};對(duì)于某個(gè)項(xiàng)目i,多尺度表示為{}。受圖像領(lǐng)域的多尺度融合啟發(fā)[20],針對(duì)某個(gè)特定節(jié)點(diǎn)不同的l階信息,強(qiáng)調(diào)了不同階的連通性信息,因此,本文采用分層聚合機(jī)制,將每一步的表示連接到單個(gè)向量中,如下所示:
不僅可以通過(guò)執(zhí)行嵌入傳播來(lái)豐富初始嵌入,還可以通過(guò)調(diào)整l來(lái)控制信息聚合范圍。最后,本文對(duì)用戶(hù)和物品表示進(jìn)行內(nèi)積,從而預(yù)測(cè)它們的匹配分?jǐn)?shù):
3.1.1 數(shù)據(jù)集及評(píng)價(jià)指標(biāo)
本文使用的數(shù)據(jù)集是電影推薦場(chǎng)景MovieLens-1M,該數(shù)據(jù)集包含6 040位用戶(hù)與3 883部電影項(xiàng)目的100萬(wàn)的交互記錄,每個(gè)用戶(hù)至少與20部電影有過(guò)歷史交互。
除了用戶(hù)-項(xiàng)目交互數(shù)據(jù)外,本文需要搜集項(xiàng)目的相關(guān)信息以構(gòu)建項(xiàng)目知識(shí)圖譜。由于MovieLens-1M中包含電影的類(lèi)型,所以在IMDb 上爬取了3 745 部電影的導(dǎo)演和演員信息,其中有138 部電影無(wú)法在IMDb上檢索到,最終獲取的詳細(xì)數(shù)據(jù)信息見(jiàn)表1。
表1 數(shù)據(jù)集統(tǒng)計(jì)
若某用戶(hù)在某電影上有過(guò)交互記錄,則標(biāo)記為1,否則標(biāo)記為0。本文對(duì)每位用戶(hù),選取其標(biāo)記為1 的所有交互記錄的80%用于訓(xùn)練集,其余20%作為測(cè)試集中的正樣本,對(duì)于訓(xùn)練集中的每個(gè)正例交互記錄,本文隨機(jī)抽取一個(gè)負(fù)例交互記錄組成完整的訓(xùn)練集。測(cè)試時(shí)對(duì)每個(gè)用戶(hù),在完整項(xiàng)目集合上除去該用戶(hù)在訓(xùn)練集上的正樣本,對(duì)其余的所有項(xiàng)目給出該用戶(hù)的預(yù)測(cè)評(píng)分。
本文使用了3種評(píng)價(jià)指標(biāo):Precision@K、Recall@K、NDCG@K[21],K為推薦列表長(zhǎng)度,即為用戶(hù)推薦預(yù)測(cè)分?jǐn)?shù)最高的K部電影。Precision@K刻畫(huà)了用戶(hù)u的Top-K推薦列表中的項(xiàng)目是測(cè)試集中正樣本的比率;Recall@K刻畫(huà)了用戶(hù)u在測(cè)試集中所有的正樣本出現(xiàn)在Top-K推薦列表中的比率;NDCG@K則刻畫(huà)了用戶(hù)Top-K推薦列表中正樣本的排序情況,正樣本的排序越靠前,NDCG 的分值則越大。實(shí)驗(yàn)中,K的取值為[1,5,10,20],以衡量不同推薦列表長(zhǎng)度下的推薦性能。
3.1.2 實(shí)驗(yàn)環(huán)境
硬件環(huán)境為NVIDIA TITAN X 顯卡,128 GB 運(yùn)行內(nèi)存,Intel E5-2678V3 處理器。軟件環(huán)境為Ubuntu16系統(tǒng),Python3.6、Tensorflow1.12.0 和Pytorch1.0 開(kāi)發(fā)環(huán)境。
模型的損失函數(shù)分為三部分,公式如下:
LKG是嵌入層損失,在2.2節(jié)中給出;LCF是協(xié)同信號(hào)損失,本文采用了BPR[22]損失,BPR 假定被觀測(cè)到的用戶(hù)與項(xiàng)目間的交互應(yīng)該比未觀測(cè)到的交互分配更高的分?jǐn)?shù),其定義如下:
式中,Ω={(u,i,j)|(u,i)∈I+,(u,j)∈I-}代表訓(xùn)練集,I+代表用戶(hù)u與項(xiàng)目i間存在交互的正樣本;I-代表不存在交互的抽樣出的負(fù)樣本;σ(·) 是softplus 非線性激活函數(shù)。
公式(15)中,Θ={ E,Mr,{(W(l),b(l))|?l∈(1,2,…,L)}}是模型參數(shù)集合。其中,E 是所有實(shí)體和關(guān)系的嵌入向量;Mr是特定關(guān)系r上的變換矩陣;W(l)和b(l)分別代表生成時(shí),聚合器做線性變換對(duì)應(yīng)的權(quán)重矩陣和偏置項(xiàng)。λ是L2正則化參數(shù),以防止過(guò)擬合。
為挖掘協(xié)同知識(shí)圖中用戶(hù)與項(xiàng)目的高階連通性和高階交互特征,本文將模型隱藏層數(shù)設(shè)置為3,三層維度分別為128、64、32,協(xié)同知識(shí)圖實(shí)體和關(guān)系空間的嵌入維度均為128,α設(shè)置為0.6。模型采用分批訓(xùn)練,協(xié)同過(guò)濾部分批大小為4 096,知識(shí)圖譜嵌入部分批大小為8 092,初始學(xué)習(xí)率為0.001,L2正則化參數(shù)設(shè)置為1E-5,最大迭代次數(shù)設(shè)為100 次,訓(xùn)練過(guò)程采用早停策略,當(dāng)NDCG@20在連續(xù)的10次迭代中沒(méi)有提升時(shí),則停止訓(xùn)練過(guò)程。本文使用Adam 優(yōu)化器進(jìn)行學(xué)習(xí)率的自適應(yīng)調(diào)節(jié),并對(duì)模型參數(shù)集合Θ(見(jiàn)3.2節(jié))中的各參數(shù)進(jìn)行更新調(diào)整。
(1)NeuMF[23]:該方法將MF可建模一階線性特征和深度學(xué)習(xí)可建模高階非線性特征相結(jié)合,分別用廣義矩陣分解和多層感知機(jī)MLP(Multi-Layer Perceptron)捕獲特征間的線性和非線性關(guān)系。
(2)FM[10]:該模型考慮了輸入之間的二階特征交互。在這里,除了用戶(hù)和項(xiàng)目id 外,本文同樣引入項(xiàng)目知識(shí)作為輸入特征。
(3)NFM[24]:該模型將FM 在二階特征交互建模中的線性特性和神經(jīng)網(wǎng)絡(luò)在高階特征交互建模中的非線性特性結(jié)合在一起,使模型有更好的非線性表征能力。
(4)CKE[4]:通過(guò)將包括知識(shí)圖譜在內(nèi)的多種輔助信息編碼到最后的物品嵌入中,來(lái)增強(qiáng)推薦性能。為公平起見(jiàn),本文在CKE 模型中僅引入知識(shí)圖譜作為輔助信息。
(5)RKGE[12]:采用遞歸神經(jīng)網(wǎng)絡(luò),在知識(shí)圖譜上自動(dòng)學(xué)習(xí)實(shí)體之間路徑的語(yǔ)義表示,以描述用戶(hù)對(duì)項(xiàng)目的偏好。
(6)RippleNet[14]:該模型同樣引入項(xiàng)目知識(shí)圖譜作為輔助信息,結(jié)合了基于嵌入和基于路徑的方法,通過(guò)在每個(gè)用戶(hù)的根路徑中添加項(xiàng)目來(lái)豐富用戶(hù)表示,使用戶(hù)興趣在知識(shí)圖譜上傳播,以此生成推薦。
(7)KGCN[16]:將圖卷積網(wǎng)絡(luò)引入知識(shí)圖譜,使得知識(shí)圖譜中某個(gè)實(shí)體周?chē)男畔⒛鼙徊东@并存儲(chǔ)在該實(shí)體中,并且實(shí)體周?chē)年P(guān)系根據(jù)不同的用戶(hù)賦予不同的權(quán)重。
本文在MovieLens-1M 數(shù)據(jù)集上,將KG-BGAT 模型與上述多種推薦算法進(jìn)行了對(duì)比實(shí)驗(yàn)。為了簡(jiǎn)化表格,在3 個(gè)評(píng)價(jià)指標(biāo)Precision@K、Recall@K、NDCG@K上,本文選擇了K=20的實(shí)驗(yàn)結(jié)果繪制表格,實(shí)驗(yàn)結(jié)果如表2所示。
表2 推薦模型性能對(duì)比
KG-BGAT_sum代表采用加和聚合器,KG-BGAT_con代表采用合并聚合器,可見(jiàn)合并聚合器在該場(chǎng)景下的推薦效果更優(yōu)。
在推薦列表長(zhǎng)度為20時(shí),本文提出的KG-BGAT與以上6 個(gè)基準(zhǔn)模型相比,在3 個(gè)指標(biāo)上均取得了最佳效果,采用合并聚合器的KG-BGAT和排名第二的CKE模型比較,在Precision、Recall和NDCG上分別提高了1.9、1.6和2.5個(gè)百分點(diǎn),本文提出的推薦模型性能優(yōu)于各種方法的基準(zhǔn)模型。
KG-BGAT 推薦性能的優(yōu)越性主要原因在以下3點(diǎn):(1)利用圖神經(jīng)網(wǎng)絡(luò),迭代地將鄰居節(jié)點(diǎn)信息聚合到中心節(jié)點(diǎn)的表示中,建立了協(xié)同知識(shí)圖中的高階連通性;(2)采用基于TransR的注意力機(jī)制,將關(guān)系納入編碼范圍,將頭尾實(shí)體投影到關(guān)系空間中衡量其相似度,使相似實(shí)體能夠傳播更多的信息到中心節(jié)點(diǎn)中,減小了噪聲影響;(3)顯式注入節(jié)點(diǎn)交互信息,使得模型能夠捕獲基于特征交互的豐富語(yǔ)義,為模型學(xué)習(xí)用戶(hù)偏好帶來(lái)了更深層次的視角。
圖2~4是采用合并聚合器的KG-BGAT和其他模型在3個(gè)指標(biāo)上的詳細(xì)對(duì)比。
圖2 模型Precision性能對(duì)比
圖3 模型Recall性能對(duì)比
圖4 模型NDCG性能對(duì)比
6個(gè)基準(zhǔn)模型中,推薦效果最好的是CKE模型,F(xiàn)M和NFM性能稍弱。CKE由于引入了知識(shí)圖譜的結(jié)構(gòu)化信息,取得了最佳推薦效果;FM 和NFM 模型沒(méi)有引入知識(shí)圖譜,但依然取得了非常不錯(cuò)的推薦效果,再次證明了基于特征交互的重要性。其余兩個(gè)引入知識(shí)圖譜的模型——RippleNet和KGCN,在Top-K推薦任務(wù)上表現(xiàn)較差。本文分析原因在于以下三點(diǎn):(1)以上兩種模型都試圖基于傳播的思想建立CKG 中的高階連通性,但在每個(gè)hop中,它們都是隨機(jī)選擇固定數(shù)量的鄰居節(jié)點(diǎn)進(jìn)行信息傳遞,使得模型無(wú)法捕獲節(jié)點(diǎn)周?chē)暾木植啃畔?,同時(shí)捕獲到的信息有很大的隨機(jī)性。(2)兩種模型均采用了類(lèi)似于注意力機(jī)制的用戶(hù)偏好機(jī)制,具體做法是:對(duì)每個(gè)用戶(hù),在每種關(guān)系上學(xué)習(xí)不同的權(quán)重系數(shù),之后在獲取鄰居節(jié)點(diǎn)信息時(shí),基于該用戶(hù)對(duì)該關(guān)系固定的權(quán)重系數(shù)聚合鄰居信息,本文認(rèn)為這種偏好系數(shù)不利用推薦結(jié)果,因?yàn)橛脩?hù)的偏好是多種多樣的,固定的偏好系數(shù)不利用挖掘用戶(hù)偏好的多樣性。(3)聚合的高階信息是K-hop節(jié)點(diǎn)信息的簡(jiǎn)單線性加和,無(wú)法獲取豐富語(yǔ)義。
KG-BGAT 能夠從以上方法脫穎而出,主要得得益于遞歸嵌入傳播過(guò)程對(duì)節(jié)點(diǎn)周?chē)植啃畔⒌某浞掷煤捅磉_(dá),以及該過(guò)程中使用的兩種信息采集器和注意力機(jī)制,既充分捕獲了節(jié)點(diǎn)的特征交互信息和高階連通性,同時(shí)也避免了噪聲影響。
KG-BGAT在100次迭代的訓(xùn)練過(guò)程中,NDCG@20指標(biāo)變化情況如圖5所示,本文選取FM模型作為對(duì)比。
圖5 模型100次迭代NDCG@20指標(biāo)變化
圖5 顯示兩個(gè)模型均能較快收斂,其中KG-BGAT的最佳性能在第30次迭代,F(xiàn)M的最佳性能在第12次迭代,雖然KG-BGAT 需要花費(fèi)更多的時(shí)間來(lái)達(dá)到最佳性能,但它的性能更高、更穩(wěn)定,原因在于以下兩點(diǎn):(1)知識(shí)圖譜學(xué)習(xí)模塊將輔助信息注入實(shí)體表示,并且該模塊和推薦模塊的交替訓(xùn)練將有助于模型獲取更加準(zhǔn)確的實(shí)體表示;(2)嵌入傳播層中,中心節(jié)點(diǎn)遞歸地和鄰居節(jié)點(diǎn)產(chǎn)生信息交換,使得模型學(xué)習(xí)到的協(xié)同知識(shí)圖的拓?fù)浣Y(jié)構(gòu)更加穩(wěn)固,實(shí)體向量表示更加穩(wěn)定。
為了驗(yàn)證高階連通性和注意力機(jī)制對(duì)推薦性能是否有益,本文進(jìn)行了如下對(duì)比實(shí)驗(yàn):改變嵌入傳播層的層數(shù),并去除了有3層嵌入傳播層的KG-BGAT-3中的注意力機(jī)制,實(shí)驗(yàn)結(jié)果如表3所示。
表3 嵌入傳播層層數(shù)和注意力機(jī)制的影響
前4 個(gè)模型名稱(chēng)結(jié)尾的數(shù)字代表嵌入傳播層的層數(shù),嵌入傳播層層數(shù)控制了圖中節(jié)點(diǎn)可以聚合的鄰居節(jié)點(diǎn)的跳數(shù)。其中KG-BGAT-1 與CKE 的推薦結(jié)果相當(dāng),當(dāng)疊加嵌入傳播層層數(shù)時(shí),各項(xiàng)指標(biāo)均得到提升,證明了模型捕獲到的高階連通性確實(shí)有利于改善推薦結(jié)果。最后一個(gè)KG-BGAT-3/rem att 是在三層嵌入傳播層模型的基礎(chǔ)上去除了注意力機(jī)制,使得線性信息采集器不再根據(jù)兩個(gè)節(jié)點(diǎn)的相似度來(lái)采集鄰居信息,π(h,r,t)退化為1/d(h),即每個(gè)鄰居節(jié)點(diǎn)傳播到中心節(jié)點(diǎn)的信息量相同??梢钥吹?,和有注意力機(jī)制的KGBGAT-3 相比,其精確率、召回率、平均折損收益分別下降了1.89、2.24 和1.75 個(gè)百分點(diǎn),驗(yàn)證了在圖神經(jīng)網(wǎng)絡(luò)中引入注意力機(jī)制的必要性,即:注意力機(jī)制可以在一定程度上減小不相關(guān)實(shí)體的噪聲影響,從而將關(guān)注點(diǎn)聚焦在某部分?jǐn)?shù)據(jù)上。
為了驗(yàn)證設(shè)計(jì)的雙線性采集器的有效性,本文進(jìn)行了兩種信息采集器效果的對(duì)比實(shí)驗(yàn)。
GAT-LC和GAT-BC分別使用了線性采集器和雙線性采集器,從表4 可以看出,去除任何一種而采用單采集器,推薦性能較使用兩種采集器均有所下降。相對(duì)而言,單采集器模型中,雙線性采集器的推薦性能更好,在精確率、召回率和歸一化折損累計(jì)增益3個(gè)指標(biāo)上較線性采集器分別高出1.21、0.58、1.35個(gè)百分點(diǎn)。實(shí)驗(yàn)驗(yàn)證了本文對(duì)于特征交互重要性的想法,顯示了本文設(shè)計(jì)的雙線性采集器的有效性。
表4 兩種信息采集器效果對(duì)比
同時(shí),本文對(duì)式(5)中的α取值進(jìn)行了一組對(duì)比實(shí)驗(yàn),探索兩種采集器對(duì)推薦結(jié)果的具體影響。從圖6可以看出,從α=0 開(kāi)始,隨著雙線性采集器信息采集量的增加,精確率也隨之提高,在α=0.6時(shí),精確率達(dá)到最大值;若α繼續(xù)增加,精確率逐漸降低。該實(shí)驗(yàn)結(jié)果說(shuō)明以下兩點(diǎn):(1)α從0增加時(shí)引起精確率隨之提高,證明了設(shè)計(jì)的雙線性采集器的有效性。(2)線性采集器在該推薦場(chǎng)景下同樣可以收集到有用信息,兩種采集器相互協(xié)作更有利于推薦效果。
圖6 不同α 取值下的Precision@20
本文將知識(shí)圖譜引入圖注意力網(wǎng)絡(luò),模型通過(guò)設(shè)計(jì)的雙線性采集器和線性采集器相結(jié)合的方法捕獲鄰居節(jié)點(diǎn)信息,并將圖中各節(jié)點(diǎn)嵌入遞歸地傳播到相鄰節(jié)點(diǎn),使得每個(gè)節(jié)點(diǎn)都獲取了其周?chē)?jié)點(diǎn)基于特征交互的豐富語(yǔ)義,建立了節(jié)點(diǎn)間的高階連通性。KG-BGAT 通過(guò)挖掘推薦場(chǎng)景中用戶(hù)到項(xiàng)目基于特征交互的高階連通性,使得推薦效果明顯改善,相比于其他基于知識(shí)圖譜的先進(jìn)推薦模型,KG-BGAT 既省去了手動(dòng)設(shè)計(jì)元路徑的勞動(dòng)密集型過(guò)程,又使得用戶(hù)到項(xiàng)目的潛在路徑得到充分挖掘,在MovieLens-1M 數(shù)據(jù)集上獲得了較好的推薦效果。
在未來(lái)的工作中,可以考慮將注意力機(jī)制引入到雙線性采集器中,對(duì)于圖神經(jīng)網(wǎng)絡(luò)GNN 的研究尚處于早期階段,相信未來(lái)對(duì)GNN 的更多探索會(huì)使推薦場(chǎng)景下的推薦性能得到進(jìn)一步的提升。