RippleNet: Propagating User Preferences on the Knowledge Graph for Recommender Systems


一、摘要

為了解決協同過濾的稀疏性和冷啟動問題,社交網絡或項目屬性等輔助信息被用來提高推薦性能。

考慮到知識圖譜是邊信息的來源,為了解決現有的基於嵌入和基於路徑的知識圖譜感知重構方法的局限性,本文提出了一種端到端框架,它自然地將知識圖結合到推薦系統中。

與水上傳播的實際漣漪類似,RippleNet通過在知識圖譜實體集上傳播用戶興趣,從而自主迭代地沿着知識圖譜中的鏈接來擴展用戶的潛在興趣

因此,由用戶的歷史點擊項激活的多個“漣漪”被疊加以形成用戶相對於候選項目的偏好分布,該偏好分布可用於預測最終點擊概率

通過在真實世界數據集上的大量實驗,本文證明RippleNet在各種場景(包括電影、書籍和新聞推薦)中都能在多個最先進的基線上獲得實質性的效果。

ripple net :

ripple:波紋,是你往水里面扔石頭產生的。

石頭就是波紋的中心,也就是RS中的用戶歷史點擊矩陣。
被激起的波紋就對應了知識圖譜一個又一個的實體

由用戶的歷史紀錄激起的水波,就是用戶潛在感興趣的item
除此之外波紋還有一個特點,它會隨着層數的變大而逐漸衰減,這里類比到ripplenet也是同樣的。

二、引言

背景:

推薦系統(Recommender systems,RS)旨在通過為用戶尋找一組滿足其個性化興趣的小商品來彌補信息爆炸帶來的負面影響。

在推薦策略中,協作過濾(CF)考慮了用戶的歷史交互,並根據用戶潛在的共同偏好進行推薦,取得了巨大的成功。然而,基於CF的方法通常存在用戶-項目交互的稀疏性和冷啟動問題。為了解決這些局限性,研究人員提出了將側邊信息整合到CF中,如社交網絡、用戶/項目屬性、圖像和上下文。

在各種類型的邊信息中,知識圖譜(KG)通常包含更多關於項目的有成效的事實和聯系。KG是一種有向異構圖,其中節點對應於實體,邊對應於關系。最近,研究人員提出了一些學術KG,如NELL1、DBpedia2和商業KG,如Google Knowledge Graph和Microsoft Satori。這些知識圖已成功地應用於許多應用中,如KG構建、問答、單詞嵌入和文本分類。

KG用在推薦的好處:

(1)准確性。KG引入了項目之間的語義關聯性,有助於發現它們之間潛在的聯系,提高推薦項目的精度;

(2)多樣性。由各種類型的關系組成,有助於合理地維護用戶的利益,增加推薦項目的多樣性;

(3)可解釋性。KG將用戶的歷史記錄與推薦項目聯系起來,從而為推薦系統帶來可解釋性。

現有的KG結合推薦可分為兩類:

第一類是基於embedding的方法,它使用知識圖嵌入(KGE)預處理KG,並將學習到的實體嵌入合並到推薦框架中。

例如,深度知識感知網絡(Deep Knowledge aware Network,DKN)將實體embedding和單詞embedding作為不同的通道,然后設計一個CNN框架將它們結合起來進行新聞推薦。

協同知識庫嵌入(CKE)在統一的貝葉斯框架中將CF模塊與知識embedding、文本embedding和項目圖像embedding相結合。

簽名異構信息網絡嵌入(SHINE)設計深度自動編碼器,嵌入情感網絡、社交網絡和個人資料(知識)網絡,用於名人推薦。

基於嵌入的方法在利用KG來輔助推薦系統方面顯示出高度靈活性,但是在這些方法中采用的KGE算法通常更適合於諸如鏈接預測之類的圖形應用,而不是推薦。

第二類是基於路徑的方法,它揭示了以KG為單位的項目之間的各種連接模式,為建議提供額外的指導。

例如,個性化實體推薦(PER)和基於元圖的推薦將KG視為異構信息網絡(HIN),並提取基於元路徑/元圖的潛在特征,以表示用戶和項目之間沿着不同類型的關系路徑/圖的連接。

基於路徑的方法以更自然和直觀的方式使用KG,但它們嚴重依賴於手動設計的元路徑,這在實踐中很難優化。另一個問題是,在某些實體和關系不在一個域中的場景(例如,新聞推薦)中,不可能設計手工創建的元路徑。

ripple net :

RippleNet是為點擊率(CTR)預測而設計的,

輸入:用戶項目對

輸出:用戶參與(如點擊、瀏覽)項目的概率。

關鍵思想:偏好傳播。

對於每個用戶,RippleNet將其歷史興趣視為KG中的種子集,然后沿着KG鏈接迭代擴展用戶興趣,以發現其與候選項相關的層次潛在興趣。

我們將偏好傳播與雨滴在水面上傳播所產生的實際漣漪進行類比,其中多個“漣漪”疊加在一起,形成用戶對知識圖的偏好分布。

RippleNet與現有文獻的主要區別在於RippleNet結合了上述兩種方法的優點:(1)RippleNet通過偏好傳播自然地將KGE方法融入到推薦中;(2)RippleNet可以自動發現從用戶歷史記錄中的項目到候選項目的可能路徑,而無需任何手工設計。

實驗:

根據經驗,我們將RippleNet應用於電影、書籍和新聞推薦的三個真實場景。實驗結果表明,與最新的推薦基線相比,RippleNet在電影、書籍和新聞推薦中的AUC分別提高了2.0%-40.6%、2.5%-17.4%和2.6%-22.4%。我們還發現,RippleNet根據知識圖為推薦的結果提供了一種新的解釋方法。

 

三、問題描述

前提介紹:

在典型的推薦系統中,讓U={u1,u2,…}和V={v1,v2,…}分別表示用戶和項目的集合。用戶項目交互矩陣根據用戶的隱含反饋定義(例如點擊、觀看、瀏覽等行為),其中

除了交互矩陣Y之外,還有一個知識G,它由實體-大量關系-實體三元組(h、r、t)組成。

其中,,表示三元組的頭、關系、尾。表示實體,表示關系。

例如,三元組(Jurassic Park,film.director,Steven Spielberg):史蒂芬·斯皮爾伯格(Steven Spielberg)是電影《侏羅紀公園》(Jurassic Park)的導演。

在許多推薦場景中,一個項目v可能與G中的一個或多個實體關聯。

例如,電影《侏羅紀公園》與其同名的KG關聯,而標題為“法國熊貓寶寶首次公開亮相”的新聞則與實體“法國”和“熊貓”關聯。

問題定義:

給定交互矩陣Y和知識圖G,目的是預測用戶u是否對之前沒有交互的項目v有潛在興趣。我們的目標是學習一個預測函數,其中yˆuv表示用戶u單擊項目v的概率,而Θ表示函數F的模型參數。

 

四、RippleNet

1、RippleNet框架:

 

 RippleNet將用戶u和項目v作為輸入,並輸出用戶u單擊項目v的預測概率。

對於輸入用戶u,其歷史興趣集Vu被視為KG中的種子,然后沿鏈接擴展以形成多個ripple集Suk(k=1、2、…、H)。

ripple集Suk是遠離種子集Vu的k-hop的知識三元組集。這些ripple集用於迭代地與項目嵌入(黃色塊)交互,以獲得用戶u對項目v(綠色塊)的響應,然后組合這些響應以形成最終用戶嵌入(灰色塊)

最后,利用用戶u和項目v的嵌入來計算預測概率yˆuv。

2、Ripple Set

知識圖譜通常包含豐富的事實和實體之間的聯系。

例如,如圖3所示,電影《Forrest Gump》與“Robert Zemeckis”(導演)、“Tom Hanks”(明星)、“U.S.”(鄉村)和“Drama”(流派)聯系在一起,而Tom Hanks則與他主演的電影《The Terminal》和《Cast Away》進一步聯系在一起。

這些復雜的KG連接為我們提供了一個深入和潛在的視角來探索用戶偏好。

例如,如果用戶曾經看過《Forrest Gump》,他可能會成為Tom Hanks的粉絲,對《The Terminal》或《Cast Away》感興趣。

為了用KG來描述用戶的層次擴展偏好,在RippleNet中,我們遞歸地為用戶u定義了一組與k-hop相關的實體,如下所示:

定義1(相關實體)。給定交互矩陣Y和知識圖G,用戶u的k跳相關實體集定義為 

 其中,是用戶過去點擊項目集合,即KG中的種子集(seed)。

定義2(波紋集)。用戶u的k跳Ripple集定義為從開始的知識三元組:

ripple可能存在的問題:隨着跳數K的增加,圈子大小可能會變得很大。

解決:

(1)一個KG大量實體沒有出度,只有出度。【如圖3中的“2004”和“PG-13”實體】

(2)在電影或書籍推薦等特定推薦場景中,可以將關系限制在與場景相關的類別中來減小ripple集大小並提高實體之間的相關性。如圖3中,所有關系都與電影相關,並且他們的名稱中包含單詞“film”

(3)在實踐中,最大跳頻h的數目通常不太大,因為離用戶歷史太遠的實體可能帶來比正信號更多的噪聲。在實驗部分我們將討論H的選擇。

(4)在RippleNet中,我們可以對一個固定大小的鄰域集進行采樣,而不是使用一個完整的RippleNet集來進一步減少計算開銷。

3、偏好傳播(模型)

傳統的基於CF的方法及其變體[11,31]學習用戶和項目的潛在表示,然后通過直接將特定函數應用於其表示(如內積)來預測未知評級。在RippleNet中,為了以更細粒度的方式對用戶和項目之間的交互進行建模,我們提出了一種偏好傳播技術來探索用戶在RippleNet集合中的潛在興趣。

item embedding:直接在embedding層計算。

如圖2所示,每個item v 與item embedding V∈Rd相關聯,其中d是嵌入的維數。基於應用場景,item embedding可以合並項目的one hot ID、屬性、字袋或上下文信息。

 

 user embedding計算:【圖2 綠色矩形(向量)相加,即以下公式6】

綠色矩形的計算:

1、計算與item embedding的相關概率

給定項embedding V和用戶u的1跳ripple集Su1,Su1中的每個三元組(hi,ri,ti)通過比較項目v與該三元組中的頭hi和關系ri來分配相關概率:

 

 

   其中,Ri 和hi是關系和頭的embedding。相關概率pi可以視作項目 v 和 實體hi 在關系空間Ri中的相似度, 注意不同的Ri關系空間計算得到的相似度不一樣。

例如,《阿甘正傳》和《棄兒》在考慮導演或明星時非常相似,但如果從體裁或作家的角度來衡量,它們的共同點就少了。

 2、計算輸入向量:(第一個綠色矩形表示的向量)

在得到相關概率后,取Su1中的尾乘以相應的相關概率進行加權求和,得到向量ou1

 

 3、偏好傳播:(重復H次,H個綠色矩形)

 通過等式(4)和等式(5)中的操作,用戶的興趣沿着Su1中的鏈路從其歷史集合Vu轉移到其1跳相關實體Eu1的集合,這在RippleNet中稱為偏好傳播。

通過(4)和(5)將V 替換成 ou1,重復這個過程,獲得用戶的2階ou2,……。

從用戶歷史點擊項目偏好開始通過H階傳播,得到各階用戶的偏好ou1 , ou2 , ..., ouH 。

 用戶u對於項目v的最終embedding:

【注意:ouH 會包含前面所有ou1 , ou2 , ..., 的信息,但可能會被稀釋,所以把所有的o相加】

 4、最后預測的概率:

將user embedding 和item embedding結合成為最終要預測點擊的概率:

 4、學習算法

損失函數的推導:

給定知識圖譜G和交互矩陣Y,學習參數來使得預測的點擊概率最大化:

其中, 包括所有的實體、關系和項目的embedding。

后驗展開:

(根據貝葉斯)

第一項: :模型參數的先驗概率,設置為均值為0結合對角協方差矩陣的的高斯分布。

第二項::給定觀測知識圖譜G的似然函數,G在θ下為均值為0的正太分布,采用張量分解令hTRt 接近於Ih,r,t,如果(h,r,t)屬於G,則指標I h,r,t = 1,否則為0。hTRt ≈ 1或0(Ih,r,t服從正態分布類似於別的KGE方法。

第三項::給定Θ和KG的觀測隱式反饋的似然函數,其定義為伯努利分布的乘積。

結合前面的(2)到(7)的式子,最終的損失函數為:

其中,和 為所有項目和實體的embedding矩陣,I是在KG中關系 r 的指示張量 I 的切片,是關系 r 的embedding矩陣。

第一項:計算交互矩陣 和 預測值 的交叉熵。

第二項:計算I和重建指示矩陣ETRE的平方差。(沒懂)

第三項:多擬合正則項。

SGD求解: 

負采樣:分別從 G 和 Y 的真/假三元組中隨機抽取一小批,然后計算損失L相對於模型參數Θ的梯度,並基於采樣的小批量數據通過反向傳播更新所有參數。

 

 

 5、討論

(1) 可解釋性。RippleNet基於KG探索用戶的興趣,它通過跟蹤從用戶歷史到KG中具有高關聯概率的項目(等式(4))的路徑,提供了一個新的可解釋性觀點。

(2)ripple疊加。用戶點擊歷史記錄中不同項目的相關實體常常高度重疊。換句話說,從用戶的點擊歷史記錄開始,可以通過KG中的多個路徑訪問實體。

 

 五、實驗

三個場景:電影、書籍、新聞推薦

  • Movielens-1M是電影推薦中廣泛使用的基准數據集,評分1-5.
  • •Book-Crossing數據集包含對圖書交叉社區圖書的1149780個明確評分(從0到10不等)。
  • •Bing News數據集包含從2016年10月16日至2017年8月11日Bing News的服務器日志中收集的1025192條隱含反饋。每條新聞都有標題和片段。

輸入:

對於MovieLens-1M和Book Crossing,我們使用用戶和項目的ID embedding作為原始輸入,而對於Bing News,我們將一條新聞的ID embedding和其標題的平均單詞embedding連接為項目的原始輸入,因為新聞標題通常比電影或書籍的名稱長得多。

構造知識圖譜:

我們使用Microsoft Satori為每個數據集構造知識圖。

對於MovieLens-1M和Book Crossing,我們首先從KG集中選擇 關系名包含“movie”或“Book”且置信度大於0.9的三元組子集。

給定子KG,我們通過將所有有效電影/書籍的名稱與三元祖的尾部(head,film.film.name,tail)或(head,book.book.title,tail)匹配來收集它們的ID。為簡單起見,排除沒有匹配或多個匹配實體的項目。

然后,我們將ID 與所有KG三元組的頭和尾匹配,從子KG中選擇所有匹配良好的三元組,並將實體集迭代擴展到四跳。

Bing新聞的構造過程與Bing新聞相似,不同之處在於:

(1)我們使用實體鏈接工具來提取新聞標題中的實體;

(2)由於新聞標題中的實體不在一個特定的域內,因此我們不限制關系的名稱。三個數據集的基本統計數據見表1。

基線方法:

CKE、SHINE、DKN、PER、LibFM、Wide&Deep

實驗設置:

 

設置高的H性能不能提升且計算量大。

 

 訓練集:驗證集:測試集 = 6:2:2

指標:

准確性和AUC評估CTR預估性能。

精度、召回、F1評估推薦性能。

六、 實驗代碼

 

在對數據進行預處理后,我們得到了兩個文件:kg_final.txt和rating_final.txt

rating_final.txt數據形式如下,三列分別是user-id,item-id以及label(1表示正樣本,0是負樣本。0是通過負采樣得到的,正負樣本比例為1:1)。label表示用戶與項目的偏好和不偏好。

kg_final.txt格式如下三類分別代表h,r,t(這里entity和item用的是同一套id):

h和 t都是有關於item的實體,類似於 “4657 film.actor.film 64604” 。 電影 id 為4657的導演是 電影id 64604。

以下的關系 r 為film.actor.film等,比如 “film.film.star”、“film.film.writer”、“film.person_or_entity_appearing_in_film.film”。共有25種關系。

 

 

 

 


作者:文哥的學習日記
鏈接: https://www.jianshu.com/p/c5ffaf7ed449
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM