如何將知識圖譜引入推薦系統?

語言: CN / TW / HK

分享嘉賓:王鴻偉 斯坦福大學 博士後

編輯整理:屈垠岑

出品平台:DataFunTalk


導讀:在信息爆炸的互聯網時代,推薦系統可以理解用户的個性化偏好和需求,幫助用户篩選出自己感興趣的產品和服務。然而,傳統的基於協同過濾的推薦系統無法解決數據稀疏和冷啟動問題。知識圖譜是一種表示實體之間的複雜關係的異構圖。在本文,我會介紹如何將知識圖譜作為輔助信息引入推薦系統,以解決傳統方法的缺點和提升推薦系統的性能。主要介紹:

  • 推薦系統

  • 知識圖譜

  • 知識圖譜輔助推薦系統

01
推薦系統

推薦系統的目標是滿足用户個性化需求,降低用户篩選信息的難度。推薦系統有着廣泛地應用,在MDB的電影推薦中可以推薦更多人喜歡的電影,在Amazon的圖書推薦會推薦與當前書相似的書,Booking.com會推薦可能會感興趣的旅遊的目的地,Quora上對用户可能感興趣問答的推薦,Tik tok上對用户可能感興趣的短視頻推薦,以及音樂網站對用户可能感興趣的音樂推薦。

推薦系統有兩大任務,評分預測和點擊率預測。

  • 評分預測是給定用户對物體的打分,可以直接地反應用户喜好程度,因此稱為顯式反饋(Explicit feedback)

  • 點擊預測是給定用户對物體的點擊情況,並不能顯式地反應出用户偏好,因此稱為隱式反饋(Implicit feedback),隱式反饋收集難度更低,因此真實線上環境中常用Implicit feedback


1. 協同過濾 collaborative filtering

協同過濾(Collaborative Filtering, CF)假定相似用户有相似偏好,根據用户歷史行為算出用户相似度,並用相似度加權平均其他用户的評分來預測該用户未打分物體的評分。

CF存在的缺點:

  • 用户、物體矩陣存在稀疏性,用少量數據預測大量缺失的數據存在過擬合的風險。

  • 冷啟動問題,難以解決新用户和新物品沒有歷史數據的情況。

2. CF + Side Information

通過引入輔助信息(Side Information)來解決協同過濾存在的問題,常用的輔助信息包括社交網絡比如微博間關注的關係、用户物品的屬性信息、圖片文本音頻視頻等多媒體信息、上下文信息比如購買時的位置時間信息。

02
知識圖譜

知識圖譜(Knowledge Graph, KG)也可以看作一種輔助信息,KG是一種有向異構圖,它的節點表示實體,邊表示實體間關係。一個KG通常包含多個三元組,形如(head, relation, tail),表示頭實體與尾實體存在某種關係。我們假定推薦系統中的物品也是一個KG中的節點,因此KG提供了物品和物品之間的關係。

1. 知識圖譜實例

以電影推薦為例,一個用户看過的電影可以靠KG中的實體連接到其他電影,通過合理推斷,可以認為用户也會喜歡與該電影緊密連接的電影,因此從電影的屬性和特徵出發,一個KG可以幫助我們合理地推測用户的興趣。

以新聞推薦為例,可以通過用户閲讀過的新聞實體,利用KG重複擴展並連接到另一條新聞。雖然下圖中上下兩條新聞字面上沒有重合,但可以通過常識知識圖譜進行判斷關聯非常緊密。

2. 知識圖譜嵌入 Knowledge Graph Embedding

知識圖譜嵌入(Knowledge Graph Embedding, KGE)可以解決知識圖譜作為複雜圖結構難以直接利用的問題,KGE可以學習KG中實體關係的低維向量表示。

常用轉移距離模型(Translate Distance Model)

TransE目標是使head實體embedding加上relation embedding接近tail實體embedding。

TransH解決一對多多對多關係,通過計算head和tail實體embedding在關係embedding上的投影,計算投影之間的關係。

TransR通過將head、tail embedding轉換到relation embedding空間,是轉換後的投影滿足三元組的關係。

03

知識圖譜輔助推薦系統

Knowledge-Graph-Enhanced Recommender Systems

問題定義(Problem Formulation):給定用户集合、物品集合、用户參與標籤,以及相關知識圖譜G,目標為預測用户點擊概率y^uv

知識圖譜嵌入方法分為兩類:

基於嵌入方法(Embedding-based methods)

首先用KGE的方法處理KG,得到實體、關係的embedding,利用推薦系統的方法得到物品、用户的embedding,設計一種模型來融合四類embedding。

基於結構方法(Structure-based methods)
將KG和用户物品交互的圖結構概括在一個統一的框架下,挖掘圖結構信息。

1. Deep Knowledge-aware Networks

embedding-based 方法(H. Wang, et al. "DKN: Deep knowledge-aware network for news recommendation." WWW 2018.)

① 框架

給定新聞數據,使用實體鏈接提取出相對應的實體,利用給定實體取出完整知識圖譜的子圖,用KGE的方法處理子圖,得到實體embedding。

將鄰居實體embedding平均得到該實體的embedding表示。

  • Knowledge-Aware CNN

Kim CNN用來學習句子的embedding。給定句子中有n個詞語,詞嵌入維度為d,使用3個長度為d寬度為2的1維卷積核處理詞嵌入矩陣,再用4個寬度為3長度為d的一維卷積核處理詞嵌入矩陣,對最後一維進行max-pooling,將池化結果concat後得到的向量作為sentence embedding。

Knowledge-Aware CNN(KCNN)是對Kim CNN的擴展,輸入為三個embedding,包括word embedding、entity embedding和context embedding。如果word embedding中單詞對應一個實體entity embedding中對應位置為學到的實體embedding,如果不對應實體則用0來填充。此時的卷積核高度變為3。

  • Attention-Based User Interest Extraction

給定用户歷史新聞數據和候選新聞,判斷用户是否對候選新聞感興趣。先使用KCNN的方法學習新聞embedding,並用attention net來判斷以前讀過的新聞對候選新聞的重要程度,attention network 通過將向量拼接並經過dnn來計算最後的權重,利用attention net的權重加權用户歷史數據可以得到用户的embedding,最後將用户embedding和候選新聞embedding拼接並通過dnn得到點擊候選新聞的概率。

② 實驗

使用Bing News作為數據集,KG使用微軟Satori。Bing News數據集中標題平均詞數量為7.9個,平均實體數量為3.7個。

實驗結果如下圖,(-)代表沒有使用KG的方法,可以看到DKN方法顯著地好於其他baseline的方法。

2. Multi-Task Feature Learning for KG-Enhanced RS

embedding-based 方法(H. Wang, et al. "Multi-Task Feature Learning for Knowledge Graph Enhanced Recommendation. " WWW 2019)

① 框架

多任務學習框架,下圖左為推薦系統的框架,下圖右為KGE的框架。

由於知識圖譜中的實體就是推薦系統中的item,可以認為它們的embedding存在特定的關係,因此使用cross&compress units來建模實體和物品embedding之間的關聯。其中cross操作將計算向量內積得到矩陣,compress操作通過將矩陣壓縮為向量。

推薦系統用MLP處理用户embedding,並使用cross & compress計算物品的embedding,最後拼接來計算點擊概率。

KGE模塊中,使用cross & compress處理head實體embedding,使用MLP處理關係embedding,拼接後通過MLP計算tail實體的預測值,並以embedding預測值和真實值之間的差距作為損失函數。

因此,整體的損失函數分為三塊:推薦系統的損失、KGE的損失和正則損失。

② 實驗

分別在四個數據集上進行了實驗,實驗結果好於其他方法。

3. RippleNet: Propagating User Preference in KGs

Structure-based 方法,以跳數來表示用户的興趣傳播,類似於水滴的傳播過程,因此稱為RippleNet。(H. Wang, et al. "RippleNet: Propagating User Preferences on the Knowledge Graph for Recommender Systems.” CIKM 2018.)

① 框架

輸入為用户和物品,輸出為用户點擊物品的概率。利用用户的歷史點擊數據vu,將vu沿着KG向外傳播,得到歷史點的鄰節點t和關係r,並利用下式計算鄰節點t與候選物品v的關聯概率。

利用關聯概率加權平均得到用户的一階表示,不斷重複傳播過程,得到多個用户embedding,將其相加作為最終用户embedding,最後使用用户embedding和item embedding內積的sigmoid激活結果作為最終的點擊概率。

在給定KG和用户物品歷史數據時,基於最大化後驗概率來計算模型參數,利用貝葉斯方法將概率公式拆為三項。

第一項為模型參數的先驗分佈,採用高斯分佈作為先驗。

第二項為給定模型參數判斷觀測知識圖譜的可能性函數,即通過頭實體、尾實體、關係embedding的乘積來模擬出現的概率,如下圖公式。

第三項為給定KG和模型參數判斷用户歷史行為的物品點擊概率函數,為伯努利分佈,如下圖公式。

將概率公式取負對數後得到最終損失函數。

② 實驗

實驗結果好於其他方法。

4. Knowledge Graph Convolutional Networks

Structure-Based Methods (H. Wang, et al. Knowledge Graph Convolutional Networks for Recommender Systems. WWW 2019.

H. Wang, et al. Knowledge-aware Graph Neural Networks with Label Smoothness Regularization for Recommender Systems. KDD 2019)

① 方法

KG中的邊不存在權值,因此引入,通過用户embedding和關係embedding的內積,將權值引入KG。

逐層傳播的函數如下圖,其中Au為每個用户u的KG鄰接矩陣,DuAu的對角矩陣,Hl為第l層實體embedding,Wl為參數矩陣。

最終點擊概率如下圖公式計算。

② 實驗

實驗結果如下圖,一般使用KGCN-sum的方法效果最好。

5. 比較

在性能方面,KGCN性能最好,DKN表現最差。

在可擴展性方面,embedding-based方法可擴展性更好,因為embedding方法可以複用,而structure-based方法在面對新的物品、用户時需要對整個方法需要重新訓練。

在可解釋性方面,我們認為structure-based方法的圖結構比embedding更直觀。

04

知識圖譜可以作為解決數據稀疏性和冷啟動問題的一種新的推薦系統輔助信息,引入知識圖譜輔助推薦系統,可以提高推薦系統的準確性、多樣性和可解釋性。

一起交流

想和你一起學習進步!『NewBeeNLP』目前已經建立了多個不同方向交流羣(機器學習 / 深度學習 / 自然語言處理 / 搜索推薦 / 圖網絡 / 面試交流 / 等),名額有限,趕緊添加下方微信加入一起討論交流吧!(注意一定要備註信息才能通過)

- END -




近代自然語言處理技術發展的『第四範式』

2021-08-04

[舊文新讀] 深度學習在Airbnb搜索的應用實踐

2021-08-02

NLP預訓練家族 | Transformer-XL及其進化XLNet

2021-07-30

Focal Loss --- 從直覺到實現

2021-07-28




本文分享自微信公眾號 - NewBeeNLP(NewBeeNLP)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閲讀的你也加入,一起分享。