知識圖譜+推薦系統(一)


知識圖譜作為認知智能的重要一環,知識賦能的智能推薦將成為未來推薦的主流。智能推薦表現在多個方面,包括場景化推薦、任務型推薦、冷啟動場景下推薦、跨領域推薦、知識型推薦[1]

1)場景化推薦

比如用戶在淘寶上搜“沙灘褲”、“沙灘鞋”,可以推測這個用戶很有可能要去沙灘度假。那么平台是否能推薦“泳衣”、“防曬霜”之類的沙灘度假常用物品呢?

2) 任務型推薦

比如用戶購買了“羊肉卷”、“牛肉卷”、“菠菜”、“火鍋底料”,那么用戶很有可能是要做一頓火鍋,這種情況下,系統推薦火鍋調料、火鍋電磁爐,用戶很有可能買單

3) 冷啟動下的推薦

冷啟動階段的推薦一直是傳統基於統計行為的推薦方法難以有效解決的問題。利用外部知識,可以有效地解決傳統推薦系統存在的稀疏性和冷啟動問題

4) 跨領域的推薦

比如,如果一個微博用戶經常曬九寨溝、黃山、泰山的照片,那么為這位用戶推薦一些淘寶的登山裝備准沒錯。這是典型的跨領域推薦,微博是一個媒體平台,淘寶是一個電商平台。他們的語言體系、用戶行為完全不同,實現這種跨領域推薦顯然商業價值巨大,但卻需要跨越巨大的語義鴻溝。如果能有效利用知識圖譜這類背景知識,不同平台之間的這種語義鴻溝是有可能被跨越的。比如百科知識圖譜告訴我們九寨溝是個風景名勝,是個山區,山區旅游需要登山裝備,登山裝備包括登山杖、登山鞋等等,從而就可以實現跨領域推薦

5)知識型的內容推薦

在淘寶上搜索“三段奶粉”,能否推薦“嬰兒水杯”,同時我們是否能推薦用戶一些喝三段奶粉的嬰兒每天的需水量是多少,如何飲用等知識。這些知識的推薦,將顯著增強用戶對於推薦內容的信任與接受程度。消費背后的內容與知識需求將成為推薦的重要考慮因素

如何將知識在不同場景下以合理的方式引入推薦系統是一個值得研究的問題。目前,將知識圖譜特征學習應用到推薦系統中主要通過三種方式——依次學習、聯合學習、以及交替學習[2]。

  • 依次學習(one-by-one learning)[3]。首先使用知識圖譜特征學習得到實體向量和關系向量,然后將這些低維向量引入推薦系統,學習得到用戶向量和物品向量;

  • 聯合學習(joint learning)[4,5]。將知識圖譜特征學習和推薦算法的目標函數結合,使用端到端(end-to-end)的方法進行聯合學習;

  • 交替學習(alternate learning)[6]。將知識圖譜特征學習和推薦算法視為兩個分離但又相關的任務,使用多任務學習(multi-task learning)的框架進行交替學習。

我們先來看下依次學習是怎么做的.《DKN: Deep Knowledge-Aware Network for News Recommendation》這篇文章是上交和MSRA在www'18發表的,文章以新聞推薦為例介紹了如何將知識圖譜引入推薦系統。

在新聞推薦領域存在三個主要挑戰,第一,新聞具有時效性,傳統的協同過濾方法不再有效;第二,用戶在看新聞時會關注多個不同的主題,如何動態捕捉用戶興趣是一大難點;第三,新聞內容是高度精簡的。如圖所示,使用傳統的word-level方法,兩句話並沒有關系,但是在knowledge-level層面,兩句話的關聯性就比較大。

DKN的框架如下圖所示,DKN接受一組候選新聞和用戶歷史數據,KCNN部分負責將知識引入推薦過程,attention部分對新聞賦予不同的權重,捕捉用戶興趣,和DIN 一樣。最后將得到的向量拼接,送入神經網絡輸出點擊概率。下面重點看下KCNN部分,即知識如何引入的

KCNN的輸入特征包括三部分:新聞標題詞向量\(\mathbf{w_i}\)、實體向量\(\mathbf{e}_{i}\)、上下文向量\(\overline{\mathbf{e}}_{i}\)

  1. \(\mathbf{w_i}\)

標題詞向量根據語料庫預訓練得到

  1. \(\mathbf{e}_{i}\)

實體向量由知識圖譜特征學習算法得到,具體過程如下:

1.使用實體鏈接技術將新聞文本中的實體和知識圖譜中的實體相關聯,消除歧義;

2.基於識別出的實體構造一個子圖,並從原始知識圖中提取它們之間的所有關系鏈接。 注意,所識別的實體之間的關系僅是稀疏的並且缺乏多樣性。 因此,我們將知識子圖擴展到已識別實體的一跳內的所有實體。

3.根據構造的子圖,用TransE、TransH、TransR等方法得到embedding向量\(\mathbf{e}_{i}\)

  1. \(\overline{\mathbf{e}}_{i}\)

為了更好的理解實體在知識圖譜中的位置信息,作者提出了一個額外的語境向量。一個實體的語境 “context”定義為一跳鄰居節點,語境的直觀解釋如下

對應的語境向量為均值

\[\begin{aligned} &\text {context}(e)=\left\{e_{i} |\left(e, r, e_{i}\right) \in \mathcal{G} \text { or }\left(e_{i}, r, e\right) \in \mathcal{G}\right\}\\ &\overline{\mathrm{e}}=\frac{1}{| \text {context}(e) |} \sum_{e_{i} \in \text {context}(e)} \mathbf{e}_{i} \end{aligned} \]

每個輸入向量作為一個通道,類似圖像中的RGB通道,即多通道。注意,這里沒有直接拼接原始向量和實體向量,因為1)拼接會破壞詞和實體之間的關系;2)詞向量和實體向量是用不同方法學習得到的,直接在單個通道進行操作顯然不合理;3)拼接隱式的要求詞向量和實體向量有相同的維度,實際上它們之間有差異。

總結一下依次學習過程:

構建知識圖譜、學習實體特征向量、將實體特征向量和原始向量共同做為輸入進行多通道卷積、利用attention機制捕捉興趣、最終向量送入到網絡輸出點擊概率。

從實驗結果來看,DKN相比其他方法是有明顯提升的

依次學習的優勢:

  1. 知識圖譜特征學習模塊和推薦系統模塊相互獨立。

  2. 在知識圖譜很大的情況下,可以先通過一次訓練得到實體和關系向量,無需重新訓練。

依次學習的缺點

1)因為兩個模塊相互獨立,所以無法做到端到端的訓練。知識圖譜特征學習得到的向量會更適合於知識圖譜內的任務,比如連接預測、實體分類等,並非完全適合特定的推薦任務。

  1. 在缺乏推薦模塊的監督信號的情況下,學習得到的實體向量是否真的對推薦任務有幫助,還需要通過進一步的實驗來推斷。

references:

[1]肖仰華:知識圖譜與認知智能. https://zhuanlan.zhihu.com/p/35295166

[2]如何將知識圖譜特征學習應用到推薦系統. https://www.msra.cn/zh-cn/news/features/embedding-knowledge-graph-in-recommendation-system-ii

[3] SJTU,MSRA. DKN: Deep Knowledge-Aware Network for News Recommendation.www'18

[4] Collaborative knowledge base embedding for recommender systems.

[5] Ripple Network: Propagating User Preferences on the Knowledge Graph for Recommender Systems.

[6] MKR: A Multi-Task Learning Approach for Knowledge Graph Enhanced Recommendation.


免責聲明!

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



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