孫 偉,陳平華,熊建斌,申建芳
1.廣東工業(yè)大學 計算機學院,廣州 510006
2.廣東技術(shù)師范大學 自動化學院,廣州 510665
隨著在線信息量復雜性和動態(tài)性的不斷增長,推薦系統(tǒng)已成為克服信息過載的有效方法。為了提高推薦的準確率以及給推薦結(jié)果帶來可解釋性[1],研究學者已經(jīng)開始在推薦系統(tǒng)中利用知識圖譜(knowledge graphs,KG)作為輔助信息,考慮用戶對實體的個性化偏好[2]進行推薦。將KG納入推薦有以下三個方面優(yōu)點:(1)KG中項目之間豐富的語義相關性有助于探索潛在的聯(lián)系,提高推薦的準確性;(2)KG中各種類型的關系有助于合理地擴展用戶興趣,并增加推薦項目的多樣性;(3)KG連接用戶歷史上喜歡的一個推薦項目,為推薦系統(tǒng)帶來可解釋性。傳統(tǒng)的處理推薦問題往往從矩陣的角度考慮,矩陣里面每一行代表用戶,每一列代表物品,每個點代表用戶對物品的操作,將推薦問題轉(zhuǎn)化為通過矩陣里面現(xiàn)有的點來填充那些未知的位置。圖視角成為解決推薦問題的新方法,把用戶和物品看作圖上的節(jié)點,用戶對物品的操作建立邊,從而得到一個二部圖,在二部圖的基礎上添加更多的節(jié)點和邊,形成更為復雜的圖,輔助二部圖的計算,最終把推薦問題轉(zhuǎn)化為在圖上尋找高效的鏈接模式。近年來,圖神經(jīng)網(wǎng)絡(graph neural network,GNN)因其強大的建模能力引起廣泛關注,具有從圖的領域?qū)?shù)據(jù)進行特征提取和表示的優(yōu)勢,與傳統(tǒng)的圖學習方法[3](隨機游走和圖嵌入)相比,表現(xiàn)得更好。對于用戶-項目二部圖,GNN迭代地從交互項中傳播信息并更新用戶向量(項目也是如此),并且增強用戶/項目的表示。此外,利用GNN來學習具有圖形結(jié)構(gòu)邊信息的壓縮表示[4],然后將所學輔助信息的嵌入與來自交互項數(shù)據(jù)的嵌入集成在一起,從而提高推薦的整體性能。
基于嵌入方法的推薦?;谇度氲膽弥R圖譜在推薦系統(tǒng)的方法主要是通過圖嵌入的方式對實體和關系進行表征[5-6],進而擴充原有物品和用戶表示的語義信息。這類方法目的是將實體和關系映射到連續(xù)的向量空間中,獲得低維稠密表示。Zhang等[7]使用TransR的方法在知識圖譜中學習物品相關實體的結(jié)構(gòu)化知識,得到物品的結(jié)構(gòu)化語義嵌入表示,從而對推薦系統(tǒng)中原有基于協(xié)同過濾中每個物品的隱向量進行擴充。文獻[8]使用TransE生成圖譜中的實體和物品的表征,并進一步使用鍵值對記憶網(wǎng)絡[9],基于用戶歷史交互數(shù)據(jù)中關聯(lián)的實體得到用戶的細粒度動態(tài)特征[10],從而有效地提升推薦效果。Wang等[11]則使用TransR得到的用戶歷史交互數(shù)據(jù)中關聯(lián)的實體表征,并利用自注意力機制學習它們的加權(quán)和,進而更有效地獲得用戶的特征。但是,這些基于知識圖譜的嵌入方法更適用于圖內(nèi)相關應用,主要優(yōu)化目標是知識圖譜補全或邊預測任務,而不是推薦任務。
基于路徑方法的推薦?;诼窂降膽弥R圖譜在推薦系統(tǒng)的方法主要是挖掘基于圖譜用戶、物品之間多種連接關系[12]。由于知識圖譜可以和推薦系統(tǒng)中的用戶-物品交互數(shù)據(jù)構(gòu)成一個異質(zhì)信息網(wǎng)絡,因此可以在推薦系統(tǒng)中引入傳統(tǒng)的對異質(zhì)信息網(wǎng)絡[13]進行挖掘的元路徑方法。在文獻[14]中,作者使用卷積神經(jīng)網(wǎng)絡對每種不同元路徑采樣得到從用戶到物品路徑進行嵌入的表征[15],進而構(gòu)造基于元路徑的用戶偏好特征,并結(jié)合NeuMF的算法構(gòu)建推薦系統(tǒng)。在文獻[16]中,作者使用元圖的方式替代元路徑對異質(zhì)信息網(wǎng)絡進行特征提取,元圖相比元路徑可以描繪異質(zhì)信息網(wǎng)絡中更復雜的特征信息。但是,這類算法嚴重依賴元路徑或元圖,需要領域知識和人工來處理,因此不適合端到端訓練,當場景或圖譜發(fā)生改變時,需要重新構(gòu)造。
推薦系統(tǒng)中大多數(shù)數(shù)據(jù)本質(zhì)上都是圖結(jié)構(gòu),利用它在捕獲節(jié)點之間的相關性以及對圖形數(shù)據(jù)表示方面強大的能力,并且對知識圖譜進行建模[2],使其優(yōu)化目標與推薦系統(tǒng)一致,從而提升推薦效果。KGCN模型[17]的每層網(wǎng)絡通過對異質(zhì)圖中每個實體采樣得到其部分鄰居節(jié)點,利用鄰居節(jié)點上一層的狀態(tài)更新該實體所在層的表征,通過多層KGCN的迭代進而得到對應物品的表征,最后利用目標函數(shù)預測用戶與物品的交互行為[18]。KGAT模型[19]將用戶節(jié)點視為知識圖譜中的一種實體,該模型將用戶-項目圖與知識圖譜看作為一個圖,采用圖注意機制學習每個節(jié)點的嵌入時,利用實體之間的關系遞歸傳播其鄰居的嵌入,并且鄰居的重要性通過注意力機制來區(qū)分。RippleNet模型[11]從異質(zhì)信息網(wǎng)絡圖中抽取與用戶節(jié)點相連的多跳實體節(jié)點,融合利用這些實體節(jié)點的嵌入表征更新用戶的表征,從而利用用戶和物品表征的點積去預測推薦結(jié)果。王等人提出一種基于知識圖譜的雙端鄰居聚合推薦算法,但該算法在物品端只是將用戶鄰居信息進行簡單聚合,沒有過多考慮項目方面的特性。
總體而言,目前利用GNN捕獲KG中的信息并進一步應用于推薦中僅僅是從項目端進行建模[17],無法從用戶的角度進行考察。上述現(xiàn)有的很多文章都在推薦系統(tǒng)中引入外部知識來提升推薦系統(tǒng)的效果,但沒有過多考慮項目方面的特性,不能非常精確學習商品表示,即某些用戶對同一作者的書籍感興趣,而其他用戶則對某一本書體裁感興趣,在現(xiàn)實世界中,每個用戶對給定的項目都有不同的看法視圖,而在實體視圖中,項目表示由知識圖譜中連接到它的實體來定義。本文的研究基于雙端知識圖的圖注意推薦(DGAR),為了豐富用戶和實體之間的交互,提出用戶實體交互模塊來增強項目表示,當從知識圖譜中對給定項目附近收集信息時,從用戶角度使用面向用戶的關系注意力模塊表征每個實體之間關系和信息的重要性,利用給定用戶、項目和關系的信息,確定該項目連接到哪個鄰居更重要,并且對每個節(jié)點固定大小的鄰域進行重要性采樣,使得實驗的成本在可預測范圍。為了提高面向用戶信息的質(zhì)量,豐富包含用戶點擊信息的KG實體構(gòu)建用戶表示,使用一種偏好傳播技術(shù)來探索用戶在偏好集中的潛在興趣,對高階實體相關性進行建模并捕獲用戶的潛在興趣,以此通過KG增強的用戶表示來增強用戶的導向信息。
在推薦方案中,用戶和項目設置為U={u1,u2,…}、V={v1,v2,…}以及用戶項目交互矩陣按照用戶隱式反饋定義為Y={yuv|u∈U,v∈V},如果觀察到用戶項目之間有交互,設置yuv=1,否則就為0。此外,為了增強推薦的性能,利用知識圖譜的信息,知識圖譜由實體-關系-實體這樣的三元組{(h,r,t)|h,t∈ε,r∈R}構(gòu)成。三元組(h,r,t)描述關系r從頭實體h到尾實體t,并且ε和R設置為知識圖譜中的實體和關系集,此外,項目v∈V也連接著知識圖譜中的一個或多個實體e,N(v)表示v附近的鄰居實體。給定交互矩陣Y和知識圖譜G,試圖預測用戶u是否對商品v有潛在興趣。最終目的是學習一個預測函數(shù)y?uv=F(u,v;Θ,G),其中yuv是用戶u與項目v互動的概率,而Θ代表函數(shù)F的模型參數(shù)。
本文總體模型框架圖如圖1所示。
圖1 模型框架圖Fig.1 Model frame figure
為了進一步提高面向用戶的性能,本文通過用戶-實體交互來增強項目表示,從用戶的角度收集知識圖譜中實體的信息,把用戶-實體交互操作分為面向用戶的關系注意力和面向用戶的實體投影。具體流程如圖2所示。
圖2 用戶-實體交互(包含面向用戶的關系注意力和面向用戶的實體投影)Fig.2 User-entity interaction
2.2.1 面向用戶的關系注意力
從知識圖譜中給定項目的附近收集信息時,以用戶特定的方式對項目周圍的每個關系進行評分,通過這個機制利用給定用戶、項目和關系的信息來確定連接到該項目的哪個鄰居更重要。例如,一些用戶可能認為電影《鋼鐵俠》由它的主要演員小羅伯特·唐而出名,其他人也可能認為電影《少年派的奇幻漂流》是因為它的導演是李安而出名。每個實體鄰域的權(quán)重由得分由πurv,e決定,u表示不同的用戶,rv,e表示從實體v到鄰居實體e的關系r(評分方法在公式(2)中給出)。通過聚合相鄰實體嵌入的權(quán)重,得到面向用戶給定實體鄰域的最終信息
為了計算實體鄰域得分πurv,e,首先將關系r∈Rs,項目表示v∈Rs以及用戶嵌入u∈Rs進行串聯(lián)操作,然后將它們轉(zhuǎn)換為最終的面向用戶的得分πurv,e:
其中,Wr∈R3s和br∈R是可訓練的參數(shù),最后對面向用戶的得分πurv,e進行歸一化操作:
2.2.2 面向用戶的實體投影
為了進一步增強用戶-實體交互,本文提出面向用戶的實體投影模塊,對于不同的用戶,知識圖譜中實體應該具有不同的信息來表征它的屬性。例如,在電影推薦中,用戶對演員威爾·史密斯的印象會因人而異,通過電影《阿拉丁》,有人會把他當作喜劇演員,而由于電影《壞男孩》會被人認為他是動作演員。因此,面向用戶的實體投影看作是增加用戶-實體交互的前一層,經(jīng)過這一層的訓練,再通過面向用戶的關系注意模塊以特定于用戶的方式聚合鄰域信息。實體投影機制通過將每個實體e投影到用戶視圖u上來優(yōu)化實體的嵌入,其中,投影函數(shù)可以是線性或者是非線性:
We和be是訓練參數(shù),σ是非線性激活函數(shù)。
最后一步是將實體表示v及其鄰域表示聚合到單個向量中:
通過單層項目聚合,實體的最終表示由它自身以及直接鄰居決定,將其稱為一階實體表示,并將其從一層擴展到多層,以更廣泛和更深入的方式探索用戶的潛在興趣。過程如下:將每個實體的初始表示(0階表示)傳播到其鄰居會導致1階實體表示,然后繼續(xù)重復這個過程,即由1階獲得2階表示,到最后一個實體的h階表示是其本身及其鄰居的初始表示的結(jié)合,以上步驟在算法1中進行了詳細的描述。H表示接收場的最大深度或者聚合迭代的次數(shù),對于給定的用戶項目對(u,v)(第1行),首先以迭代方式逐層計算v的接收場M(第10~17行),然后,將重復聚合H次(第5行):在迭代過程中,計算每個實體的鄰域表示(第7行),然后將其與自己的表示聚合獲得用于下一次迭代的表示(第8行),由此形成H階實體的表示形式(第9行)。
算法1項目表征
為了提高面向用戶的信息的質(zhì)量,豐富根據(jù)包含用戶點擊信息的KG實體構(gòu)建的用戶表示。例如,如果用戶觀看了《我,機器人》,由此會發(fā)現(xiàn)這部電影是由威爾·史密斯扮演,威爾·史密斯也在《黑衣人》和《追求幸福》中扮演角色。從KG獲取用戶偏好信息依賴于KG中的所有相關實體,實體之間的聯(lián)系有助于人們找到潛在的用戶興趣。用戶偏好的提取也適合所提出的面向用戶的模塊,在用戶的心目中,一個著名演員的圖標不僅由他們看過的電影來定義,而且由用戶可能感興趣的KG中的電影來定義。在上面所舉的例子中,如果用戶對威爾·史密斯有潛在的興趣,這些模塊將會很快集中在他演的其他電影身上??傊?,相關KG的實體對用戶表示進行了建模,并通過KG增強了用戶表示,增強面向用戶的信息,整個過程如算法2和圖3所示。
圖3 傳播用戶偏好集生成用戶最終表示Fig.3 Propagate user preference sets to generate user final representation
算法2用戶表征
定義1給定交互矩陣Y和知識圖譜G,將用戶u的k跳相關實體集定義為:
定義2用戶u的k跳偏好集定義為從開始的知識圖譜三元組:
2.3.1 計算與項目嵌入的相關概率
給定項目v的嵌入向量和用戶u的偏好集S1u,S1u中的每個三元組(hi,ri,ti)通過比較項目v與該三元組中的頭實體hi和關系ri來分配相關概率:
陶小西說溫衡的手機一直關機,他已經(jīng)在火車站等了四天了,連夜晚也不敢走開,他還刻意穿了扎眼的橘紅色羽絨服,只是為了讓她一眼就能在人群里看見他。
其中,Ri和hi是關系和頭實體的嵌入向量,相關概率pi可以視為項目v和實體hi在關系空間Ri中的相似度,并且不同的關系空間計算得到的相似度不一樣。例如,《阿甘正傳》和《棄兒》在考慮導演或明星時非常相似,但如果從體裁或作家的角度來衡量,彼此的共同點就少了。
2.3.2 計算輸入向量
算法3中給出了上述訓練步驟的正式描述,對于給定的用戶項目對(u,v),首先生成用戶表示u和項目表示vu,用于計算點擊率如下:
為了優(yōu)化這個模型,在訓練過程中采用負采樣,目標函數(shù)如下:
其中,f是交叉熵損失函數(shù),p是負采樣分布,并且p服從均勻分布,Nu是用戶u的負采樣數(shù)量,Nu=||{v:yuv=1},第二項是正則化優(yōu)化。
算法3
在現(xiàn)實世界的知識圖譜中,N(e)的大小在所有實體上都可能存在很大的差異,另外,隨著跳數(shù)的增加,可能會增長得太快。為了使每個批次的計算模式保持固定和高效,對每個實體進行重要性采樣,而不是使用其全部鄰居,好處在于:第一,鄰居節(jié)點個數(shù)可控,內(nèi)存占用及計算耗時可控;第二,聚合鄰居節(jié)點的過程中可以根據(jù)鄰居節(jié)點的重要性聚合。具體來說,將實體v的鄰域計算表示為,為每個實體v均勻采樣一組固定大小的鄰居S(v),其中S(v)={e|e~N(v)},而N(v)直接表示這些實體連接到v,其中|S(v)|=Kn和Kn是項目鄰域的抽樣規(guī)模,可以修改。在躍點p,對用戶首選項集進行采樣,以維護固定數(shù)量的相關實體,其中是固定的鄰居樣本大小,可以修改。在模型中,S(v)也稱為實體v的單層接收場,因為v的最終表示對這些位置敏感,圖4給出了實體的兩層接收場的示例說明,其中K設置為2。
圖4 知識圖譜中給定實體的兩層接收場Fig.4 Two layers of receptive fields for given entity in knowledge graph
本文主要使用MovieLens-20M、Book-Crossing、Last.FM三個數(shù)據(jù)集進行實驗,將本文所提出的模型與針對這些數(shù)據(jù)集的模型進行比較,并且使用Microsoft Satori7為每個數(shù)據(jù)集構(gòu)造知識圖譜,從整個KG中選擇一個三元組的子集,并把它的置信度設置為大于0.9。為簡單起見,排除具有多個匹配或沒有匹配實體的項目,然后,將商品id與所有三元組的頭部實體匹配,并從子KG中選擇所有匹配良好的三元組,見表1所示。
本文將在兩個實驗場景評估所提出的方法:(1)在點擊率(CTR)預測中,應用經(jīng)過訓練的模型來預測測試集中的每個互動,本文將使用AUC和ACC來評估點擊率預測。(2)在前K項推薦中,使用訓練好的模型為測試集中的每個用戶選擇K個預測點擊概率最高的項目,然后選擇Precision@K評估推薦的集合,所有可訓練的參數(shù)均通過Adam算法進行優(yōu)化。
表2是按點擊率預測得出的結(jié)果,通過用戶-項目對作為輸入,最后預測用戶使用該項的可能性,在這里采用二進制分類問題中廣泛使用的AUC和ACC來評估點擊率預測的性能。對于top-N推薦,首先為每個用戶選擇N個預測點擊率最高的項,然后選擇Precision@N來評估推薦的集合,圖5驗證在ML-1M和LFM-1b這兩個數(shù)據(jù)集中,本文所提出的模型產(chǎn)生最好的性能,另外一個數(shù)據(jù)集由于論文排版空間的原因在這里就不展示。
表2 不同算法在所有數(shù)據(jù)集中進行AUC和ACC的性能比Table 2 Performance ratio of AUC and ACC for different algorithms on all datasets
圖5 在top-N推薦中的Precision@N結(jié)果Fig.5 Precision@N results in top-N recommendation
通過表2可以看出,DGAR在所有數(shù)據(jù)集上產(chǎn)生了最佳性能,并且在top-N推薦中也具有出色的性能,如圖5所示。
兩種基線RippleNet和KGAT優(yōu)于基于協(xié)同過濾的方法NFM,表明KG有助于推薦。盡管RippleNet和KGAT取得出色的性能,但是因為RippleNet既沒有將用戶點擊歷史記錄項并入用戶表示,也沒有引入高階連通性,且KGAT不混合圖卷積網(wǎng)絡層信息,也不會在收集KG信息時考慮用戶偏好。
KGCN沒有充分利用用戶點擊項信息,DGAR通過用戶點擊項和相關實體來豐富用戶表示,然后對附近的實體進行加權(quán)并強調(diào)最重要的實體。
表3說明,將Km設置為較大值時,除了AZ-book以外,本文所提出的模型性能都會得到提高,當Km設置為32時,本文所提出的模型可以在AZ-book上獲得最佳性能,主要在于這個數(shù)據(jù)集里與用戶互動的項目數(shù)量比較少,也就說,當用戶互動的項目很少時,Km很小仍然允許本文模型找到足夠的信息來代表用戶。鄰居節(jié)點的影響也在表3所示,將其設置為16或32時,可以獲得最佳性能,當Kn太大時會導致噪音。
表3 不同偏好集Km和鄰居節(jié)點采樣Kn的AUCTable 3 AUC of different preference set Km and neighbor nodes sampling Kn
更改嵌入大小時的結(jié)果顯示在表4中,增大嵌入尺寸s最初可以提高性能,因為較大的s包含更多有關用戶和實體的有用信息,而將s設置得太大則會導致過擬合。
表4 具有不同嵌入大小s的AUC結(jié)果。Table 4 AUC of results with different embedding s
表5說明將H從1更改為4來研究模型的接收場深度的影響,結(jié)果表明模型相對于K對H更為敏感。當H=3或4時,模型將會處于崩潰邊緣,較大的H會給模型帶來太大的噪聲,依據(jù)實驗結(jié)果,H等于1或者2時足以滿足實際情況。
表5 具有不同接收深度H的AUC結(jié)果Table 5 AUC of results with different depth of receptive field H
本文提出一種基于雙端知識圖的圖注意網(wǎng)絡推薦模型,通過從用戶端和項目端對現(xiàn)有的基于圖卷積的推薦模型進行改進,考慮用戶和實體的一些信息,提出的DGAR模型在知識圖譜中收集個性化的知識信息來增強項目表示,并且通過知識圖譜實體集傳播用戶興趣,從知識圖譜中捕獲用戶偏好信息,找到用戶的潛在興趣最終得到用戶的表示,通過實驗證明本文模型的優(yōu)越性。未來研究中可以考慮社交網(wǎng)絡或項目上下文這樣的結(jié)構(gòu)信息,將DGAR推廣到相關應用中。