日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

【十】推荐系统遇到知识图谱RippleNet

發布時間:2024/7/5 windows 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【十】推荐系统遇到知识图谱RippleNet 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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


代碼: https://github.com/hwwang55/RippleNet

心得

(1)你需要知道Kg是如何起到作用的! KG的形式是什么!
(2)Ripple中的o是什么? 怎么起到一圈一圈的作用的!
(3)Ripple的獲得是通過上一層,但是Ripple是如何減弱的呢? 代碼呢? 怎么控制h-hop?怎么控制興趣范圍,防止太大?
(4)多個漣漪疊加?

核心創新點

其實就是利用了波紋的逐漸遞減的原理,對應于相關性的逐漸遞減,也就是權重! 將嵌入和路徑結合,也就是路徑上的統一作為嵌入! 經過函數后得到最后的結果

摘要

  • 方法要解決的問題
    本文將知識圖作為邊信息的來源,結合基于嵌入和基于路徑的知識圖感知方法,我們提出了RippleNet。
  • 具體點:
    與在水面上傳播的實際波紋類似,RippleNet通過自動迭代地沿著知識圖中的鏈接擴展用戶的潛在興趣來刺激用戶偏好在知識實體集合上的傳播。將用戶歷史點擊物品激活的多個“漣漪”疊加,形成用戶對候選物品的偏好分布,用于預測最終的點擊概率。

引入

推薦策略:

協同過濾方法: 協同過濾(CF)考慮用戶的歷史交互,根據用戶潛在的共同偏好進行推薦; 但是基于CF的方法會受到用戶-項目交互稀疏和冷啟動問題的困擾! 為了解決這些問題,研究人員建議在CF中加入邊信息,如社交網絡、用戶/物品屬性,圖片和上下文等! 而其中知識圖譜通常包含項目的事實和聯系!
KG加入策略: (1)KG引入了items之間的語義關聯,有助于發現項目之間的潛在聯系,提高推薦項目的精度;(2)KG包含了各種類型的關系,有利于合理擴展用戶興趣,增加推薦條目的多樣性; (3)KG將用戶的歷史記錄與推薦記錄連接起來,從而為推薦系統帶來了可解釋性。

推薦策略之KG嵌入

KG現有方法 一般來說,現有的kg-aware的推薦可分為兩類:

第一類

第一類是基于嵌入的方法[32,33,43],該方法使用知識圖嵌入(KGE)[35]算法對KG進行預處理,并將學習到的實體嵌入到推薦框架中。

方法

  • Deep Knowledge-aware Network(DKN)將實體嵌入和單詞嵌入設置為不同的通道, 之后設置一個CNN框架來將它們結合處理來提高進行新聞推薦;
  • 而Collaborative Knowledge base Embedding(CKE)將一個item的知識圖譜嵌入、文本和圖像嵌入結合CF模塊,統一到了貝葉斯框架中;
  • signed Hetero-generous Information Network Embedding (SHINE)設計了深層次的自編碼器來嵌入到情感網絡、社交網絡和摘要(知識)網絡來進行名人推薦;
  • 優缺點
    基于嵌入的方法在利用KG輔助推薦系統方面表現出了很高的靈活性,但是這些方法采用的KGE算法通常更適合于圖內應用,如鏈接預測,而不是推薦(也就是只是圖中自己過家家,預測圖內是不是有關系! )

    第二類

    第二種方法是基于路徑的方法,這個探索了在KG中items之間不同關系的連接來給推薦系統一些不一樣的引導。

    方法

  • 比如,個性化實體推薦(PER)和 Meta-Graph Based network將KG看做了一個異構信息網(HIN), 并且提取基于元路徑/元圖的潛在特征,表示沿著不同類型的關系路徑(圖)時,用戶和items之間是不是有連通性。
  • 優缺點
    基于路徑的方法以一種更加自然、更直觀的方式使用KG, 但是它們嚴重依賴于手工設計的元路徑,在實踐中很難進行優化。 另一種問題是,在實體和關系不在同一個域中的特定場景(例如,新聞推薦)中,不可能設計手工制作的元路徑!

    第三類: 我們的方法

    RippleNet用于預測點擊率(CTR),以user-item對作為輸入,輸出用戶參與(如點擊、瀏覽)該物品的概率! 這個方法最重要的idea是更關注到傳播: 對于每個用戶,RippleNet將其歷史興趣視為KG中的種子集,然后沿著KG鏈接迭代地擴展用戶的興趣,以發現其相對于候選item的分層潛在興趣。

    優缺點
    (1)RippleNet通過偏好傳播將KGE方法自然融入到推薦中; (2) RippleNet可以自動發現從用戶歷史中的物品到候選物品的可能路徑,而無需任何手工設計。

    綜上所述,本文的貢獻如下:

    • 據我們所知,這是第一次在kg感知推薦中結合基于嵌入和基于路徑的方法。
    • 我們提出了RippleNet,這是一個端到端的框架,利用KG來幫助推薦系統。RippleNet通過在KG中迭代傳播用戶偏好,自動發現用戶的層次潛在興趣。

    2. 問題公式化

    推薦系統中,U=u1,u2,...U = {u_1, u_2, ...}U=u1?,u2?,...V=v1.v1,...V = {v_1. v_1,...}V=v1?.v1?,...分別表示users和items,user-item交互矩陣Y={yuv∣u∈U,v∈V}\mathrm{Y}=\left\{y_{u v} \mid u \in \mathcal{U}, v \in \mathcal{V}\right\}Y={yuv?uU,vV}是根據用戶的隱性反饋來定義的,其中

    其中1表示有隱式交互,比如點擊、觀看、瀏覽等行為; 除了交互矩陣Y,我們還有一個可用的知識圖G,其中包含了大量的三元組(h,r,t)(h, r, t)(h,r,t), 其中h∈Eh \in{\mathcal{E} }hE, r∈Rr \in{\mathcal{R} }rRt∈Et \in{\mathcal{E} }tE表明了在KG中的頭、關系和三元組的尾部! E\mathcal{E}ER\mathcal{R}R表明了KG中的實體和關系的集合! 而且一個實體可能和多個實體由不同的關系!

    也就是user、items、Y、G(h、r、t輸入E\mathcal{E}ER\mathcal{R}R)處理!

    3 RIPPLENET

    3.1框架


    綜述方法
    輸入: RIPPLENET將用戶u和物品v作為輸入
    輸出: 輸出用戶u點擊物品v的概率。
    對于輸入用戶u, 他的歷史興趣集VuV_uVu?被作為KG的種子,之后擴展成不同的ripple setsSuk(k=1,2,...,H)S_u^{k}(k = 1,2,...,H)Suk?(k=1,2,...,H),一個ripple setSukS_u^{k}Suk?是遠離種子集VuV_uVu?的k-hop(s)的知識三元組! 這些ripple set用于與item embedding(黃色塊)進行迭代交互,獲取useru對item v(綠色塊)的響應,然后將這些響應組合成最終的user embedding(灰色塊)。

    3.2 第一步: 獲取Ripple Set

    我們知道,如果我們喜歡一部電影是因為什么? 電影類型? 電影主演? 電影導演? 這些都是知識圖譜中和電影相連接的關系!

    定義1(相關實體) :給定交互矩陣Y和知識圖G,定義user u的k-hop相關實體集合為

    其中Eu0=Vu={v∣yuv=1}\mathcal{E}_{u}^{0}=\mathcal{V}_{u}=\left\{v \mid y_{u v}=1\right\}Eu0?=Vu?={vyuv?=1}是用戶過去點擊過的物品集,可以看作是user u在KG中的種子集。
    相關實體視為用戶歷史興趣相對于KG的自然擴展。根據相關實體的定義,定義user u的k-hop ripple集如下:

    定義2(紋波集) :user u的第k hop ripple set定義為從Eu(k?1)\mathcal{E}^{(k-1)}_{u}Eu(k?1)?開始的知識圖譜三元集合:

    “ripple”一詞有兩層含義:(1)用戶對實體的潛在興趣是由其歷史偏好激活的,然后沿著KG中的鏈接逐層傳播,從近到遠。我們可以通過圖3中所示的同心圓來進行類比。(2)用戶在紋波集中的潛在偏好強度隨著跳數k的增加而減弱,相關性也在減弱。

    其中hop的k是需要我們留意的!
    (1)在真實KG中大部分的實體都是sink entities,這意味著它們只有傳入鏈接而沒有傳出鏈接,比如“2004”和“PG-13”
    (2)在特定的推薦場景(如電影或書籍推薦)中,可以將關系限制在場景相關的類別中,以減少漣波集的大小并提高實體之間的相關性。例如,在圖3中,所有關系都與電影相關,并且在它們的名稱中包含單詞“film”。
    (3)在實踐中,最大量的hop H的數量通常不會太大,因為與用戶歷史距離太遠的實體可能帶來更多的干擾,而不是積極的信號。我們將在實驗部分討論H的選擇
    (4)在RippleNet中,我們可以對一個固定大小的鄰居集進行抽樣,而不是使用一個完整的ripple集來進一步減少計算開銷。這類采樣器的設計是未來工作的重要方向,尤其是非均勻采樣器的設計,以更好地捕捉用戶的層次潛在興趣。

    3.3偏好傳播

    第一步: 首先是item的Embedding:
    傳統的基于CF的方法和他們的變體學習用戶和物品之間的潛在的關系,然后使用一個評分函數!
    在RippleNet中,則是探索用戶對其Ripple集的潛在興趣!以一種更加細粒度的方式對用戶和items之間的交互建模(什么叫做細粒度????),我們提出了一種偏好傳播技術!什么叫細粒度,就是
    在圖表2中,每個物品vvv和一個物品嵌入v∈Rdv\in\ \mathbb{R}^dv?Rd鏈接,其中d是維度; 根據應用場景物品Embedding可以包含one-hot ID、屬性、bag-of-words(BOW詞袋)或者是上下文信息!這就是細粒度!

    第二步: 波紋集合和其概率
    同時我們利用該Embedding vvv, 得到該用戶u的1-hop波紋集Su1S_u^1Su1?,而在該Su1S_u^1Su1?中的每個三元組(hi,ri,tih_i, r_i, t_ihi?,ri?,ti?)都會被分配一個相關概率,通過比較物品vvv和頭部hih_ihi?和關系rir_iri?

    其中Ri∈Rd×dR_i\in\ \mathbb{R}^{d\timesozvdkddzhkzd}Ri??Rd×dhi∈Rdh_i\in\ \mathbb{R}^dhi??Rd是頭部hih_ihi?和關系rir_iri?的Embedding! 而pip_ipi?可以被看做是物品v和兩者的相似性!
    在得到相關概率后,我們取Su1S_u^1Su1?關聯概率的權重的和! 然后這個向量ou1o_u^1ou1?被返回:


    其中ti∈Rdt_i \in \mathbb{R}^ozvdkddzhkzdti?Rd是tailtit_iti?的嵌入! 向量ou1o_u^1ou1?可以被看做用戶u的關于物品vvv的點擊歷史VuV_uVu?的一階反應! 這類似于基于item的CF方法,但是,用戶由他的相關項而不是獨立的特征向量來表示,以減少參數的大小。
    用戶的興趣是從它的歷史記錄VuV_uVu?中轉移過來的! 這就是preference propagation!

    通過用ou1o_u^1ou1?代替公式4中的vvv可以重復傳播,最后可以得到ou2o_u^2ou2?
    最后item可以被計算通過融合所有的:

    最后,結合用戶嵌入和物品嵌入,預測點擊概率:

    其中是激活函數是

    3.4學習算法

    在RippleNet中,我們希望最大化模型參數的后驗概率
    通過觀察知識圖譜和隱式反饋矩陣

    其中包括所有實體、關系和項目的嵌入。這等價于最大化

    根據貝葉斯定理。在式(9)中,第一項p(Θ)度量模型參數Θ的先驗概率。根據[43],設p(Θ)為零均值高斯分布,對角協方差矩陣:

    在式子9中的第二個item是被觀察的知識圖譜
    的似然函數。最近,研究員提出了許多知識圖譜嵌入方法,包含translational distance models和semantic matching models! 而在RippleNet中,我們使用三種方式的張量分解方法來定義KGE的似然函數:

    其中會等于1在下,否則會等于0; 基于(11)中的定義,在KGE中的實體-實體對和在preference propagation中的item-entity對可以在同一計算模型下被統一,Eq.(9)中的最后一項是已知Θ的隱式反饋與KG的似然函數,定義為伯努利分布的乘積

    對Eq.(9)取負對數,則RippleNet的損失函數為:

    其中V和E是所有items和實體的嵌入矩陣,IrI_rIr?是在KG中的張量指標III的切片在關系r中,和R是關系R的嵌入矩陣。Eq(13)中,第一個term是交叉熵矩陣,預測值和真實值Y之間的差異; 第二項term測量KG IrI_rIr?和重構指標矩陣之間的平方誤差! 第三個term是防止過擬合!
    解決上面的目標函數是很難的,因此我們采用了SGD來迭代的更新loss! 為了更有效,我們會根據消極取樣策略進行隨機取樣(從Y中取樣的positive/negtive交互和從知識圖譜G中取樣的true/false三元組)

    3.5 Discussion

    3.5.1 Knowledge Graph Embedding.(KGE)

    KGE方法主要有兩種:https://blog.csdn.net/qq_27590277/article/details/106263407
    原文: https://ieeexplore.ieee.org/document/8047276/metrics#metrics
    平移距離模型和語義匹配模型。前者使用基于距離的評分函數,后者使用基于相似度的評分函數。
    仔細看看上面的解釋!
    解釋為什么用知識圖譜,以及圖譜怎么嵌入!

    但是上面的方法更加適合圖內應用,如鏈接預測或者三重分類! 從這個角度來看,RippleNet可以看做專門設計的KGE方法!

    3.5.2 Memory Network

    記憶網絡是一個recurrent attention模型,他們使用了一個外在記憶模塊! 這個在外在內存上進行迭代讀入操作使得記憶網絡能夠提取長距離的依賴!
    原來作品專注于入門級或者句子級別,但是我們的工作在KG中處理實體級別的連接,這在執行多跳迭代時更加精細和直觀!

    3.5.3 注意力機制

    在RippleNet中,tails會根據相似性來平均權重! 在他們聯系的頭、尾巴和某些item!

    3.5.4 Ripple Superposition

    我們會發現一個用戶歷史點擊的不同items最終會經過不同的路徑(關系)牽引到同一個entity! 這種重疊實體就是用戶最大的興趣!

    4. Experiment

    三個數據集: Movies、Books、Bing-News

    由于MovieLens-1M和Book-Crossing是顯式反饋數據,我們將它們轉換為隱式反饋,其中每個條目都被標記為1,表示用戶已經對項目進行了評分(MovieLens-1M的評分閾值為4,而Book-Crossing由于其稀疏性沒有設置閾值),并對每個用戶標記為0的未觀看集進行采樣,該集與被評級的集大小相同。

    我們使用Microsoft Satori來為每個數據集創建知識圖譜(從中選擇知識圖譜)。 首先,對于MovieLens-1M和book - crossing,我們首先從整個KG中選擇關系名稱包含“movie”或“book”且置信度大于0.9的三元組子集。給定sub-KG,我們收集所有valid 電影/書籍的id,通過匹配它們的名字和三元組的尾部,為簡單起見,沒有匹配或多個匹配實體的item被排除! 然后我們將id與所有KG三元組的頭和尾進行匹配,從sub-KG中選擇所有匹配良好的三元組,并迭代地將實體集擴展到four hops。


    在總數據集中選擇不同的hop后,多個數據集是不是有共同的raters(也就是實體交集)







    不同hop

    總結

    以上是生活随笔為你收集整理的【十】推荐系统遇到知识图谱RippleNet的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。