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