RippleNet:Propagating User Preferences on the KnowLedge Graph for Recommender Systems PPT講稿

PPT下載鏈接:RippleNet

page 1

今天主要介紹的論文是發表在CIKM2018上的RippleNet
首先這個題目就比較繞
翻譯:在推薦系統上使用知識圖譜來推測用戶的偏好
這篇論文有三個keywords:
Recommender systems; knowledge graph; preference propagation

page 2

接下來將通過6個方面來分別剖析這篇論文以及相關的概念

page 3

推薦系統的任務:
推薦系統的任務就是聯繫用戶和信息一方面幫助用戶發現對自己有價值的信息,而另一方面讓信息能夠展現在對它感興趣的用戶面前從而實現信息消費者和信息生產者的雙贏
從而解決information overload的狀況

我們也時常講推薦系統與搜索引擎做比較
因爲他們是同一個問題的兩種解決方法

相同點:幫助用戶快速發現有用信息的工具
不同點:和搜索引擎不同的是推薦系統不需要用戶提供明確的需求而是通過分析用戶的歷史行爲來給用戶的興趣建模從而主動給用戶推薦出能夠滿足他們興趣和需求的信息。

首先來看一下推薦系統的分類
推薦系統簡單可分爲三大類:
1.協同過濾推薦系統
又分memory-based CF 和 model-based CF
而memory-based CF
包括user-based CF和item-based CF
user-based算法核心:當一個用戶A需要個性化推薦時,可以先找到他有相似興趣的其他用戶,然後把那些用戶喜歡的、而用戶A沒聽過的物品推薦給A。
a) 找到和目標用戶興趣相似的用戶集合
b) 找到這個集合中的用戶喜歡的,且目標用戶沒有聽說過的物品推薦給目標用戶。

item-based算法核心思想:給用戶推薦那些和他們之前喜歡的物品相似的物品。
第一步:計算物品之間的相似度;
第二步:根據物品的相似度和用戶的歷史行爲給用戶生成推薦列表;
2.基於內容過濾的推薦系統
使用不同的模型來查找文本項目之間的相似性。它可以使用向量空間模型( Vector Space Model),如關鍵詞權重計算法(TF / IDF,Term Frequency Inverse Document Frequency),或概率模型,如樸素貝葉斯分類器、決策樹、或神經網絡,在語料庫中模擬不同文本項目之間的關係。之後,通過統計分析或機器學習技術來學習基礎模型,從而生成推薦結果。
3.混合方法的推薦系統

機器學習中有所謂的集成學習(Ensemble Learning),廣泛應用於分類和迴歸問題,本質上是利用多個分類或者回歸算法,通過這些算法的有效整合獲得更好的分類或者預測效果。集成方法之所以有效,是因爲通過不同的算法組合可以有效地降低系統性誤差(方差),最終達到更好的效果。在理財投資中也有類似的思路,通過分散投資,構建多類別的投資組合來降低風險

4.最後我們生活中常見的推薦系統的實際應用場景有很多


待定講不講
推薦系統所做的事情就是通過發掘用戶的行爲找到用戶的個性化需求從而將長尾中的商品準確地推薦給需要它們的用戶幫助用戶發現那些他們感興趣但很難發現的商品。

page 4

接下來我們引入知識圖譜的概念
上世紀提出的語義網絡和專家系統都可以看到知識圖譜的影子

直到2012年5月16日,谷歌爲了提升自己搜索返回結果的質量和保證用戶查詢的高效性,寫了一篇文章來叫做:introducing
the KG:things, not strings提出了知識圖譜的概念,並明確區分其與字符串的不同

在本篇論文中所涉及的知識圖譜是一個異構網絡
爲了解決推薦系統傳統算法中存在的用戶數據稀疏和冷啓動問題
我們一般會把知識圖譜作爲side-information

  1. 冷啓動問題
    冷啓動一般分爲新用戶冷啓動和新”標的物”冷啓動。對於新用戶,由於沒有相關行爲或者行爲很少,無法獲得該用戶的興趣偏好,因而無法爲他進行有效的推薦。對於新入庫/上線的標的物,由於沒有用戶或者很少用戶對它進行操作(點擊、瀏覽、評論、購買等),我們不知道什麼類型的用戶喜歡它,因而也很難將它推薦出去。

  2. 數據稀疏性問題
    由於很多推薦應用場景涉及到的“標的物”數量巨大(頭條有百億級規模的文章、淘寶有千萬級的商品等),導致用戶行爲稀少,對於同一個“標的物”,只有很少用戶有相關行爲,這讓構建推薦算法模型變得非常困難。

一般認爲知識圖譜由SPO三元組構成,即subject- predict - object 並用資源描述框架RDF來進行標準的統一

在右下角的知識圖譜表示中

每一個節點對應一個實體,比如這裏的cast away(荒島餘生) back to the future (回到未來)等
這裏有些是電影明星有些是電影導演(指)

這幅圖裏面還有的其他元素就是邊
每條邊攜帶一種語義,即表示一種實體之間關係,這就是典型的知識圖譜的組成形式

舉tom hanks和cast away之間的關係是演出與被演出
這裏的語義都比較直接

而以知識圖譜爲基礎的推薦系統就是把知識圖譜作爲side information來像用戶推薦
對於電影而言,這裏的relation和其他一些entities都可以作爲side-information來豐富影片本身的feature的表徵

page 5

比如說這個用戶看了這裏的三部電影
我們可以通過知識圖譜得到左側這些電影和所有其他電影之間的關係
如果一個用戶更關注電影明星而不是一類電影,那麼相比insteller,阿甘正傳更容易被推薦給這個用戶
或者說在推薦的列表上,阿幹正轉的排名要更前

page 6

我們也可以把知識圖譜看作兩層的一個結構

在上層我們放置一個kg,在這一層我們會有很多的節點和連接關係
在用戶層上,每一個節點就對應一個用戶

兩層之間的連接就是用戶的歷史點擊
可以認爲是用戶和電影之間的聯繫

就我放出的圖而言,一個用戶看了三部電影

我們KG-based推薦系統的目標就是推測出用戶看除這三部電影之外所有其他電影的概率

好的推薦系統不僅僅能夠準確預測用戶的行爲,而且能夠擴展用戶的視野,幫助用戶發現他們可能會感興趣,但卻不那麼容易發現的東西

page 7

我們現在介紹這篇paper之前已經有的一些結合了kg和推薦系統的工作

首先是基於embedding的方法,這些方法是基於KG中節點的鄰居關係學習一個entity-embedding出來,之後把學出來的embedding用於推薦
這個方法的問題在於它比較適合一些圖上的任務,比如link-prediction,直接拿來用未必非常適合推薦系統

第二類是基於路徑的方法
也就是在圖上進行隨機遊走或者基於meta-path採樣一些路徑
然後建模路徑中節點的共性關係等等
這個方法的問題是你需要手工設計一些meta-path,這在實際當中比較困難,因爲你不知道你手工設計出來的meta-path是不是合適,也不一定全面

page 8

所以這篇工作的motivation就是結合上面的兩個方法,它不僅僅是靠鄰居關係學一個embedding出來,而且是引入了多跳的類似於路徑的信息
這篇paper的關鍵idea就是用戶的興趣沿着邊(relation)在知識圖譜上進行擴散,擴散到的節點就可以認爲是side-information,與用戶興趣有關,可以用來加強用戶興趣的表徵,這個過程就像是水波擴散一樣,所以叫做ripplenet

講圖:
起點是用戶看過的電影 阿甘正轉
從這個點出發,沿着KG上面的這些邊即relation向外擴散
1,2,3跳一直擴散出去,擴散到的節點就可以作爲side-information作爲用戶興趣的表徵

page 9

我們來看一下ripplenet的整體架構
先看這個圖的上半部分,也就是用戶興趣擴散的這個過程,從左到右,我們把用戶的點擊歷史作爲種子節點
從這些種子節點出發,往外跳,每條一下拿到這一條的rippleset,head是起點,tail是重點
接下來就是representation aggregation (表徵聚合)
也就是說我們要把多跳拿到的信息聚合起來,變成一個表徵作爲用戶的興趣表徵,對於每一跳的rippleset中的item,它利用一種加權和的形式拿到統一的表徵,這樣的過程迭代多次就能拿到高階的表徵

page 10

接下來我們用一個實例來講解模型的細節
我們假設一個用戶看了兩部電影
下一步我們需要衡量用戶看的電影與其他可能實體之間的偏好可能性
介紹h r t,這個圖中有1-hop的rippleset有6個三元組
但我們的目標是推測用戶偏好,拿1-hop來說
我們接下來需要衡量的就是用戶看的這個電影與1-hop away實體之間的關聯度來試探出用戶的可能偏好
因爲不是所有1-hop away的節點都有同樣高的重要性,有些重要,有些就不重要或者說不符合用戶偏好

解釋三個相乘 分別是什麼
從右向左開始講
最右側是head (hi)
中間d*d維的事relation 即公式中的r_i
最左側爲item-embedding 即v
這裏的item-embedding根據不同的應用場景來決定使用什麼編碼方式,常見的就是我們平時經常聽到的比如效果不是很好的one-hot啊,還有bow(bag-of-words)模型

接下來就跟框架總體圖中展示的內容一致,通過embedding矩陣相乘,使用softmax來normlize,得到attention結果,比如在這裏就是6個attention score,也就是歸一化相似度

問題一:算pi爲什麼要加上relation?
因爲item-entity 對 在使用不同relation度量的時候可能有不同的relevance
就比如你看上面的圖,額,《阿甘正傳》和《荒無人煙》在考慮演員時非常相似,但如果以流派(genre)來衡量,它們就沒有那麼相似了,所以需要加上relation來算pi

page 11

在得到相關概率後,即歸一化相似度之後,我們對第一層Ripple set 的(t)進行加權求和,得到的結果作爲這一層的輸出o

如果有人問相關問題,那麼講法如下:
本質上屬於Attention,Q=v,K=h*r,V=t);這裏用到了圖譜假設hR=t

page 12

接下來的Hop2過程,用戶可能不只是對與自己1-hop away的entity感興趣,所以我們需要繼續傳播

重複Hop1過程,將第一層的Ripple set的tail作爲第二層的head,先取出第二層的Ripple set,然後用用第二層的Ripple set跟item的相似度及加權表示作爲輸出o

page 13 14 15

下面我們介紹一下ripplenet的loss function
loss function採用交叉驗證的方式並加上了正則項防止模型過擬合
我們的目標是最大化模型參數的後驗概率
given知識圖譜和用戶的點擊記錄
條件概率通過貝葉斯定理展開可以發現正比於後面三項的乘積
theta是模型的所有參數,p_theta表示模型參數的先驗概率我們通過一個高斯分佈來對他進行建模
可以看到這裏我們將p(Θ)設爲具有零均值和對角協方差矩陣的高斯分佈

第二項是給定模型的參數,我們觀測到KG的概率
這裏的I_h,r,t是一個indicater,如果三元組存在就爲1,不存在就爲0
實際上就是說通過embedding來重建這個kG

最後一項是用戶點擊行爲的likelihood
這就是我們常見的likelihood的表示

那麼我們就可以推導得到
maximize probability就是minimize log likelihood
第一個部分就是 cross-entropy 比較常見
後面是兩個正則項,embedding表徵E,relation表徵R
乘在一起重建KG的一個平方誤差的loss,第三個是embedding的l2-norm,加在一起構成了最後的loss

Learning algorithm就是說先準備好H個rippleset
sample好正負的點擊記錄
然後sample KG上的正負三元組

正的triple就是KG上存在的三元組
然後反向傳播計算各個參數的導數,進行SGD 更新

page 16

我們接下來看一下實驗結果
使用了三個數據集
真實世界的推薦場景(電影、圖書、新聞)進行了實驗

爲什麼只進行4-hop?
如果向外跳太多跳,數據量會很大,而且距離用戶起點太遠的點和用戶興趣就不是很大了,所以截斷了一下只用了四跳的信息

超參數:H就是向外傳播的次數
d是item-embedding 和 user-embedding的維度

page 17-18

推薦有兩個場景或者說檢驗推薦系統性能的指標:
首先是CTR推薦
我們使用訓練數據集進行訓練直到模型收斂
這樣我們就學到了user-embedding和item-embedding
然後我們就可以講訓練好的模型來預測對於某個用戶推薦他點擊歷史以外的其他item的概率

如果推薦的概率是大於0.5的那麼我們就say yes,否則就是say no
這裏的檢驗指標選擇了Accuracy和acc score
可以看到ripplenet在三個數據集上相比其他模型都有比較大的提升

另外一個推薦的場景就是TOP-k推薦
之前我們檢驗的標準是我們是否要向用戶推薦該item
但是我們也想知道我們推薦的ranking-list是否準確
對於測試的推薦正負樣本進行排序,最後選擇前k個的樣本
使用三個標準進行檢驗
分別是。。。。。。

page 19

每一行對應一個dataset,每一列對應一個evaluation metrics
可以看到對於precision@k而言,我們增加k就引入了更多的噪聲,效果隨着k的下降而變差,但是ripplenet也還是始終效果要比其他模型的baseline要好

page 20

在實際在數據集上進行模型訓練的過程中
我們發現模型存在比較高的參數敏感性
首先我們可能會存在疑問,是否存在一個普適最優的H值呢
像上圖所示,我們的推薦準確率在H的不斷增大中必然會經歷下降,就實驗的數據而言,其中H爲2或3時性能最佳。
論文上這樣解釋:
我們將這種現象歸因於長距離依賴性的正信號與噪聲的負信號之間的權衡
所以我們看到正如上面講到的
H太小几乎無法探索實體間的相關性和長距離下的實體依賴性,而H太大會帶來比有用信號更多的噪聲

同理我們可以看到對於user和item-embedding的維度較小的時候我們通過提高維度可以實現性能的提升,但是過大的維度會同樣帶來噪聲的引入,導致性能的下降

page 21

最後介紹一下可視化場景下的case study來展示ripplenet學到了什麼信息,這是一個新聞推薦的場景
我們需要打分的candidate news是trump宣佈美國警察擊斃了一個槍手
上面click history展示了用戶歷史上看過的四個新聞
是有關像海豹突擊隊啊,朝核問題,朝鮮局勢,微軟筆記本電腦
那麼我們把這些click history作爲種子節點,在KG上進行擴散,算出來的沒有進行歸一化的權重就如圖所示,連線的顏色越深就代表那個值越大,也就是越有關,越相關

我還發現從那四個歷史點擊過的新聞的節點出發,有幾條顏色比較深的邊
比如Navy SEAL 到Special Forces 到Gun 到 police
或者
Navy SEAL 到U.S.到Donald Trump

這些顏色比較深的路徑延伸到了candidate新聞有關的節點,這樣就能夠說明ripplenet能夠學到對某個candidate item應該如何傳播用戶的preference,證明了模型學到了一個有效的pattern

page 22

Conclusion:
RippleNet通過引入偏好傳播,克服了現有的基於嵌入和基於路徑的KG感知推薦方法的侷限性,RippleNet可以自動傳播用戶的潛在偏好,並探索他們在KG中的層次性興趣

RippleNet將偏好傳播與KGE在貝葉斯框架中的正則化統一起來,預測了用於點擊率。通過在三種實際應用場景下進行了大量的實驗發現該方法比其他相關方法的baseline具有明顯的優越性

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章