陳可迪, 趙 雷, 陳心怡, 施科男
(蘇州大學 計算機科學與技術學院, 蘇州 215006)
近年來, 伴隨著互聯網技術的不斷發展, 信息的洪流逐漸淹沒人生活的方方面面, 以至于用戶想要在短時間內獲得自己需要的內容是一件非常困難的事情.為了解決這些問題, 個性化推薦系統應運而生.
傳統的推薦系統模型主要有基于內容的推薦、基于協同過濾的推薦以及混合模型3大主流方法. 由于用戶的歷史信息過少, 即數據稀疏性問題, 可能會影響推薦系統的結果. 并且, 如果有新進入的用戶, 那么此用戶沒有歷史行為數據, 此時會產生冷啟動問題, 無法根據用戶的歷史偏好進行有效的推薦. 為了解決這兩個問題, 人們嘗試引入補充信息(邊緣信息)來協助推薦.
知識圖譜是近些年來使用非常廣泛的邊緣信息之一. 以知識圖譜(knowledge graph, KG)作為邊緣信息構建的推薦系統主要有兩類常規的方法. 第1類是基于知識圖譜表示學習[1]的方法, 包括了聯合學習, 交替學習和依次學習3種主要模式, 如聯合學習中的KGCN模型[2]和交替學習中的MKR模型[3], 這些方法考慮到了實體之間的關聯性, 但是沒有充分利用知識圖譜的語義信息, 從而未能夠沿著知識圖譜的邊關系方向深度挖掘潛在的有價值的信息. 第2類是基于知識圖譜路徑信息的方法, 如Zhu等提出的知識注意力推理網絡[4]等. 除了這兩類以外, 知識圖譜推薦系統還可以利用其他知識圖譜或者是其他異質信息網絡來進行知識的遷移學習, 但是這些方法所需要的數據量龐大, 需要的計算成本高并且跨領域學習解釋性相對有限.
本文的模型可有效解決上述問題. 由于知識圖譜中大多不止一種關系, 整個信息網絡就蘊含了不止一種約束. 本文依次根據知識圖譜中的每個三元組構建蘊含不同邊信息的有向圖, 從而形成了異質信息網絡.隨后通過構造兩條元路徑, 使用圖神經網絡(graph neural network, GNN)根據兩層實體近鄰學習得到用戶和實體向量表示. 同時, 構建注意力網絡連接知識圖譜表示任務與推薦任務, 使倆任務同時進行. 最后, 利用知識圖譜表示任務的損失作為約束項控制整體的訓練過程, 從而實現了基于知識圖譜表示學習和基于知識圖譜路徑信息的混合模型, 即異質信息嵌入知識圖譜推薦模型(heterogeneous information with multi-task feature learning for knowledge graph recommendation,HeteMKR). 本文主要貢獻如下:
1)結合了知識圖譜表示學習和路徑信息兩種方法, 一方面利用了注意力網絡強化了知識圖譜和推薦任務之間的互動, 另一方面在知識圖譜中融入了元路徑信息, 充分挖掘被推薦項之間的潛在的語義聯系.
2)在進行推薦的同時更新知識圖譜的表示過程,將“用戶偏好”的信息融入知識圖譜的建模過程之中,將知識圖譜嵌入(knowledge graph embedding, KGE)作為約束項, 來為整個模型進行正則化.
3)貢獻了以DBLP (digital bibliography & library project) 論文數據集為基礎的, 可被用作推薦任務測試數據集的文獻圖譜.
相似度推薦的方法, 是在所有待推薦項中計算與已知推薦項的相似度, 進行排序后選擇相似度最高的項目, 從而進行推薦. 其常用的算法包括皮爾遜相關系數法[5]和聚類算法[6]. 皮爾遜相關性準確計算兩個用戶以及其屬性之間的相似性, 該算法根據兩個變量(或用戶)的屬性來度量兩個變量之間的線性相關性, 對相似性進行量化處理. 而聚類算法是無監督學習的一種, 是根據事物自身的特性對被聚類對象進行類別劃分的統計分析方法, 其目的是根據某種相似度度量對無監督數據集進行類別的劃分.
協同過濾算法[7]是推薦系統中最早誕生的算法之一, 并且在推薦系統領域已經被普遍使用. 不同于之前的相似度推薦方法, 協同過濾的目標是找到其相似用戶而不是相似性待推薦項, 其通過相似用戶的喜好進而挖掘出目標用戶的喜好. 在預測過程中通過使用目標用戶的行為及日志等用戶信息去挖掘目標用戶的偏好模型, 然后通過這個偏好模型再去找出相似的帶有該偏好模型的用戶.
隨著數據類型逐漸多樣化, 項與項之間的關系越來越復雜, KGE的難度也越來越高, 對知識的表示方法也同樣提出的更高的要求. 知識表示學習, 這一新的研究方向受到了廣泛的關注[8]. 知識表示學習的模型主要分為兩類: 平移距離模型和語義匹配模型. 前者使用基于距離的評分函數, 后者使用基于相似度的評分函數.平移距離模型經過發展, 形成以TransE[9]為代表的翻譯模型, 其通過計算真假三元組之間的差來進行向量表達方式的優化. 為解決TransE在處理1-N、N-1、N-N關系時存在的缺陷, 又派生出TransH[10]、TransR[11]和TransD[12]等模型. 語義匹配的代表方法則是RESCAL[13]模型和神經網絡模型.
將知識圖譜作為邊緣信息應用于推薦系統, 有基于路徑的推薦方法和知識圖譜表示學習的推薦方法.基于路徑的方法將知識圖譜視為一個異質信息網絡,構造被推薦項之間的路徑以此來挖掘實體之間的潛在關系, 如RKGE模型[14], 其基于循環神經網絡來構造元路徑并且推理路徑信息. 知識圖譜表示學習的推薦方法是為知識圖譜中的每個實體和關系學習得到特征向量, 將特征向量輸入傳統的推薦模型進行訓練. 結合知識圖譜表示學習的推薦系統有3種訓練方式, 分別是依次訓練、聯合訓練和交替訓練, 如依次學習DKN模型[15]利用圖嵌入得到的特征進行推薦、聯合學習Ripple Network模型[16]利用水波在水面傳播模擬用戶的興趣在圖譜上傳播. 這些方法描述了真實世界中存在的各種實體概念, 以及他們之間的關聯關系, 采用端到端的學習方式, 能夠進行更精確的推薦. 本文模型則是基于知識圖譜表示和基于路徑表示的混合模型.
常見的推薦場景中, 包含一個擁有m個用戶的集合U={u1,u2,···,um}以及一個擁有n個被推薦項的集合V={v1,v2,···,vn}. 與此同時, 數據集還提供一個用戶-被推薦項交互矩陣Rm×n, 矩陣中Ri,j的取值為1或者0, 表示用戶i是否對被推薦項j進行了點擊或者產生了興趣.
除此之外, 本文使用知識圖譜G作為邊緣信息. 知識圖譜G是由三元組(head,relation,tail)構成的,head表示頭部實體結點,relation表示實體間的關系,而tail表示尾部實體結點. 在具體的推薦任務中, 被推薦項集合V和知識圖譜G中的實體集合擁有非空交集, 知識圖譜的頭部實體集合和尾部實體集合也存在大量重合.
在擁有已知用戶-被推薦項交互矩陣Rm×n和知識圖譜G的前提條件下, 模型需要對新用戶u對新的被推薦項v的點擊率或者是否感興趣進行預測. 整個推薦問題就可以公式化的表達為^γ =f(u,v|R,G).
本文的模型HeteMKR在傳統的知識圖譜表示模型中, 融入了知識圖譜中所隱含的元路徑信息. 整體的模型框架如圖1所示.

圖1 HeteMKR模型
在圖1所示的模型中, 首先將知識圖譜中所有的三元組拓展成為異質信息網絡, 沿著信息網絡中人為規定的兩條的元路徑, 使用GNN得到相應的用戶和被推薦項的向量表達. 隨后利用交叉注意力網絡進行推薦任務和知識圖譜表示任務的交互, 即使用多個被推薦項向量對頭實體向量進行學習建模, 而被推薦項向量本身則與權重矩陣內積. 最后將高維被推薦項向量與高維用戶向量拼接后傳入多層感知機(multi-layer perceptron, MLP)訓練得到最后推薦任務的點擊率預測結果. 知識圖譜表示任務的尾實體預測結果則作為整個模型的正則項, 進行學習訓練與約束.
異質信息網絡是一種具有多種連接關系的圖結構.在異質信息網絡中, 網絡模式描述了網絡的元結構——對象類型及其交互關系. 而元路徑則是一個連接兩個對象的關系序列, 其被提出用于捕捉對象之間的結構和語義關系. DBLP異質信息網絡如圖2所示, 不同實體節點之間使用不同類型(不同顏色)的邊相連.

圖2 DBLP異質信息網絡
對于異質信息網絡中的任意一個實體, 該實體在異質信息網絡中的實體近鄰被定義為: 由該實體作為起點, 經過一條邊可以到達的所有的實體的集合. 同樣地, 由該實體出發經過兩條邊可以到達的實體集合稱作二階實體近鄰. 以圖2為例, 對于實體User1, 其實體近鄰為{Paper1}, 其二階實體近鄰為{Paper5, Paper3}.
元路徑A1→A2→···→Al是指一個異質信息網絡中的兩個結點 A1和 Al的復合關系, 其不僅可以同時利用用戶和被推薦項間的多種關系, 還使推薦具有了可解釋性.
根據兩條元路徑, 即可對異質信息網絡中的用戶和被推薦項(或實體)進行向量化表示. 本文提出了一種基于兩條元路徑UTAT和UTT的圖神經網絡, 利用元路徑來獲取用戶和被推薦項的不同步長的實體近鄰,用戶和被推薦項的向量是它們在不同元路徑下的鄰居的向量聚合. 首先使用統一的正態分布對向量初始化.圖3表示了對于每一個用戶實體u, 兩條元路徑中該實體的多階實體近鄰聚合的過程, 圖中箭頭的方向表示圖神經網絡的正向傳播方向. 以路徑UTT為例, 首先對于u結點的其中一個二階近鄰{ T1,T2,T3}, 使用映射函數g1于一階近鄰{ T5}, 從而蘊含了路徑信息, 重新構建實體T5:


圖3 基于元路徑的圖神經網絡
同理可重構該路徑下的用戶實體向量, u1f表示經過第一條元路徑UTT得到的用戶實體向量表示:

通過路徑UTAT同理得到 u2f, 將兩者使用函數g2融合, 得到最終的用戶實體向量表示:

采用同樣的方法可以獲得被推薦項實體的向量表示. 其中函數g1和g2的選擇將在實驗部分展開論述.
為了實現推薦任務和知識圖譜表示任務之間的交互, 本文使用了被推薦項-實體交叉注意力機制網絡,從而豐富了被推薦項向量和頭部實體向量的特征, 如圖4所示.

圖4 項—實體交叉注意力機制網絡
首先, 推薦任務經過z輪學習后, 將傳入的z個d維被推薦項向量{ v1,v2,···,vz}與知識圖譜表示任務中同樣為d維的頭部實體向量e0進行注意力交互, 再經過一個全連接層之后得到高維頭實體向量:

其中,A代表一個全連接層. 每個被推薦項向量也同樣通過全連接層, 以達到維度的擴增.
圖中,vi(i=1,2,···,z)代表推薦任務經過z次學習后得到的z個被推薦項向量,e0代表初始化頭部實體向量, 而ef則代表經過交叉注意力網絡后的頭部實體向量. 經過一個key的數量為z的交叉注意力網絡的過程記為Cz. 推薦任務學習輪數與知識圖譜表示任務學習輪數的比值z和向量維度d將在實驗部分進行討論.
在推薦任務中, 將用戶向量u0經過全連接層得到最終的用戶向量uf, 將其與交叉注意力網絡輸出的被推薦項向量結合, 從而得到預測的點擊率.

其中,f表示預測函數(如MLP),表示點擊率預測值.
在知識圖譜表示任務中, 將初始化關系向量ro通過全連接層, 得到最終關系表征向量rf, 將其與交叉注意力網絡輸出的頭部實體向量結合, 經過MLP從而得到尾部實體向量的預測向量.

其中,是尾部實體向量的預測值.
得到尾部實體向量后, 最終得到的三元組(head,relation,tail)的相似度使用得分相似度函數fKG得出:

其中,t是尾部實體向量的真實值. 在本文的模型中, 使用了歸一化內積, 作為向量間相似度得分函數的選擇.

模型初始化之后, 完整的損失函數為:

在損失函數中, 第1項為推薦層中函數的損失,?為交叉熵函數,U和G分別是最初定義的用戶集合和知識圖譜. 第2項為知識圖譜層中的損失, 本文需要增加真實三元組的得分并且減少虛假三元組的得分, 其中 λ1為 平衡參數. 第3項則是損失函數的正則項, λ2為正則項系數.
在整個訓練過程中采取負采樣訓練, 在每次訓練過程中在推薦任務上訓練z輪之后, 在知識圖譜表示任務中訓練1次作為知識圖譜的修正和信息的補充.λ1和 λ2作為參數的設定將在實驗部分提及.
在本節中, 本文將HeteMKR模型應用于兩個來自真實生活中的推薦場景: 書籍推薦和論文推薦, 并且進行了性能的評估. 本文在推薦領域公開數據集Book-Crossing和我們自己創建的DBLP數據集上進行實驗.
Book-Crossing數據集來自于Book-Crossing社區中的1 149 780個書籍評分(從1分到10分). Wang等[2]使用Microsoft Satori來為Book-Crossing數據集構建知識圖譜. 由于此數據集大多為顯式反饋數據, 所以將其轉換成了隱式反饋: 若本文對每一個書籍條目標記為1, 代表用戶對該書籍做出了評級; 若對書籍條目標記為0, 表示用戶沒有對當前書籍進行評級. 由于Book-Crossing數據集中無效信息很多, 數據的稀疏性很大, 所以沒有設置正評級的閾值.
而本文還貢獻了自己的DBLP論文數據集. DBLP網站作為大型數據庫, 為了方便訪問者快速地收集所需要的數據, 增加了“索引”——引文網絡. 根據DBLP引文網絡中的4 894 081篇論文和45 564 149個論文引用關系, 本文構建了DBLP知識圖譜. 知識圖譜包括了6種關系: 論文作者, 論文標題, 論文的發表年份, 論文關鍵詞, 論文參考文獻和論文出版商. 本文使用論文的引用量構建了用戶-論文引用條目, 為了正負數據集之間的平衡, 將閾值設置為3, 從而構建了用戶點擊率列表. 同樣, 本文對所獲得的十萬余篇論文數據進行了進一步篩選. 去除包含無效url鏈接以及6種關系數據不全面的實體條目. 最終提取出共包含10 001篇論文實體, 6種關系, 26 897個作者實體, 52個年份實體,76 310篇參考文獻實體, 6 857個關鍵字實體, 1 174個出版社實體的共擁有251 702個三元組的DBLP圖譜.
在DBLP數據集中, 本文將注意力放在知識圖譜本身而非用戶上, 所以僅將用戶數設置為1, 從而通過結果可以更好地展現出本模型中知識圖譜的表達能力,并且能夠解決數據稀疏性問題.
兩個數據集規模如表1所示.

表1 數據集基本信息
對于Booking-Crossing和DBLP兩個數據集, 本文將訓練集, 測試集按照8:2的比例進行劃分. 調整參數后進行5次實驗, 計算平均值作為最終結果.
本文在上述兩個實際的推薦場景中使用點擊率預測CTR, 對模型進行評估. 實驗總共設置了4個評價指標: 曲線下面積AUC, 準確度Acc, 召回率Recall和F1.
實驗在兩個數據集上的參數具體設置如表2所示.其中,g1和g2表示圖神經網絡的聚合函數,d表示用戶向量和被推薦項向量的初始維數, λ1和 λ2分別表示總體的損失函數平衡參數和正則項系數,z表示一個周期中推薦任務和知識圖譜表示任務訓練次數之比,lr表示學習率.

表2 實驗參數設置
首先, 對于向量維度, 本文分別在d=16, 32, 64,96的設置下進行了實驗, 實驗結果如圖5所示. 在Book-Crossing數據集上, 一開始小維度向量對于實驗結果的影響趨于平穩, 而在DBLP數據集上也是緩慢增長, 但是兩者的實驗結果AUC都在d=64左右達到了最值點. 當d繼續上升時, 向量中將會蘊含大量干擾信息, 比如噪點等, 從而無法達到最好的信息表達效果.

圖5 d對AUC的影響
為了讓知識圖譜的知識表示訓練和推薦任務的交互達到最好的效果, 本文測試了一個周期中推薦任務和知識圖譜表示任務訓練次數之比z對結果的影響,z的取值分別是1, 3, 5, 10. 實驗的結果如圖6所示.

圖6 z對AUC的影響
首先對于公開數據集Book-Crossing, AUC在z=3的時候達到了最值, Book-Crossing中用戶的數目可觀,并且用戶被推薦項的交互條例數較多, 從而首先對推薦任務進行少量次數的訓練后便可以得到相對良好的建模結果. 但是對于DBLP數據集, 雖然知識圖譜中三元組數量是Book-Crossing的數量的5倍左右, 但是由于數據集僅針對單一用戶設計, 從而用戶數量有限, 因此用戶論文交互難以集中, 為了達到相應的建模效果就必須增大z的數值. 最后我們發現, 對于DBLP數據集, 當z很小時, AUC約等于0.5, 表明整個模型近乎隨機分類, 只有當z=5時結果才有所改觀, 并且達到了最大值, 而當z大于5, 則又容易產生過擬合現象.
最后, 本文對圖神經網絡聚合函數g1和g2進行了實驗分析. 一共使用了Mean, GCN, Pooling和LSTM四種聚合方法. 兩種聚合函數的實驗結果分別如圖7和圖8所示.

圖7 聚合函數g1對AUC的影響

圖8 聚合函數g2對AUC的影響
實驗結果表明, 在兩個數據集中同一路徑內近鄰聚合時采用LSTM達到了AUC的最高值0.73和0.74.而在進行兩條路徑之間進行聚合時, 對于Book-Crossing數據集適合使用Mean方法, 而對于具有很強稀疏性的DBLP數據集則使用Pooling時達到了AUC的最高值0.71.
本文將HeteMKR模型與近些年來優秀的知識圖譜推薦方面的模型進行了比較, 這些優秀的模型如下.
MEIR[17]: 將KG視為異質信息網絡, 并提取基于元路徑的功能, 以表示用戶和項目之間的連接. 在本文中, 對于Book-Crossing數據集, 使用“用戶-書籍-流派-書籍”這一條元路徑.
DeepFM[18]: DeepFM是FM的衍生算法, 其使用FM做特征間低階組合, 用DNN做特征間高階組合,通過并行的方式融合了連續的特征和離散的特征.
DKN: DKN的關鍵部分是一個多通道和單詞-實體對齊的知識感知卷積神經網絡(knowledge-aware CNN, KCNN), 它融合了新聞的語義層面和知識層面的表示. KCNN將單詞和實體視為多個通道, 并在卷積過程中顯式地保持它們之間的對齊關系.
MKR: 利用知識圖譜嵌入去協助推薦任務, 兩個任務是相互獨立的, 但是由于推薦系統中的item和KG中的實體相互聯系而高度相關, MKR使用交叉壓縮單元交替優化推薦和知識圖譜表示任務來訓練.
實驗的最終結果如表3所示. 由表中結果可以知道, MEIR在DBLP上近乎隨機分類, 而DeepFM則需要將數據集處理成離散和連續兩種形式, 這對于統一標號的知識圖譜實體無法形成區分. DKN模型的效果也不盡人意, 這是由于DBLP數據集難以展現具體物品的語義信息, 只能夠從知識層面建模, 但是由于DBLP數據集只設置了一個用戶, 所以在這個數據集上注意力機制發揮了一定的作用. 而MKR方法則有較好的表現. HeteMKR的性能最為優異. 最后本文還實驗了HeteMKR的變體: 使用LSTM替代MLP. 這樣的效果沒有提升, 并且加大了運行的成本. 本文還進行了消融實驗, 發現減少了模型中的GNN或者注意力機制后,模型的性能將會下降明顯.

表3 在Book-Crossing和DBLP數據集上的點擊率預測
本文提出的異質信息嵌入知識圖譜推薦模型將知識圖譜轉化為了異質信息網絡, 提取出其中的元路徑信息, 通過圖神經網絡將其融入到知識圖譜中, 再利用交叉注意力網絡連接推薦任務和知識圖譜表示任務, 最后進行用戶點擊率預測. 本文還提供了原創的DBLP數據集, 包括DBLP用戶點擊率條目和DBLP知識圖譜.最終實驗在公開數據集Book-Crossing和DBLP數據集上均比其他算法在AUC,F1等指標上達到了更好的效果.
我們計劃進一步使用實體關系抽取等方法優化自己的知識圖譜, 并且期望對于特定的用戶, 能夠在推薦系統中以時間序列進行被推薦項的動態推薦.