1. 程式人生 > >知識圖譜+推薦系統(一)

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

知識圖譜作為認知智慧的重要一環,知識賦能的智慧推薦將成為未來推薦的主流。智慧推薦表現在多個方面,包括場景化推薦、任務型推薦、冷啟動場景下推薦、跨領域推薦、知識型推薦[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}\)

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

2) \(\mathbf{e}_{i}\)

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

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

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

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

3) \(\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)因為兩個模組相互獨立,所以無法做到端到端的訓練。知識圖譜特徵學習得到的向量會更適合於知識圖譜內的任務,比如連線預測、實體分類等,並非完全適合特定的推薦任務。

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

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 Recommendati