领域应用 | 如何将知识图谱特征学习应用到推荐系统?
本文轉載自公眾號:微軟研究院AI頭條。
編者按:在上周發(fā)表的“推薦算法不夠精準?讓知識圖譜來解決”一文中,我們?yōu)榇蠹医榻B了日常生活中幾乎每天都會用到的推薦系統(tǒng),以及用來提高推薦系統(tǒng)精準性、多樣性和可解釋性的推薦算法輔助信息——知識圖譜。今天,我們將進一步為大家講解將知識圖譜特征學習引入到推薦系統(tǒng)的各種思路與實現(xiàn)方法。
?
將知識圖譜作為輔助信息引入到推薦系統(tǒng)中可以有效地解決傳統(tǒng)推薦系統(tǒng)存在的稀疏性和冷啟動問題,近幾年有很多研究人員在做相關的工作。目前,將知識圖譜特征學習應用到推薦系統(tǒng)中主要通過三種方式——依次學習、聯(lián)合學習、以及交替學習。
依次學習(one-by-one learning)。首先使用知識圖譜特征學習得到實體向量和關系向量,然后將這些低維向量引入推薦系統(tǒng),學習得到用戶向量和物品向量;
?聯(lián)合學習(joint learning)。將知識圖譜特征學習和推薦算法的目標函數(shù)結合,使用端到端(end-to-end)的方法進行聯(lián)合學習;
?
交替學習(alternate learning)。將知識圖譜特征學習和推薦算法視為兩個分離但又相關的任務,使用多任務學習(multi-task learning)的框架進行交替學習。
?
Deep Knowledge-Aware Network (DKN)
我們以新聞推薦[1]為例來介紹依次學習。如下圖所示,新聞標題和正文中通常存在大量的實體,實體間的語義關系可以有效地擴展用戶興趣。然而這種語義關系難以被傳統(tǒng)方法(話題模型、詞向量)發(fā)掘。
為了將知識圖譜引入特征學習,遵循依次學習的框架,我們首先需要提取知識圖譜特征。該步驟的方法如下:
實體連接(entity linking)。即從文本中發(fā)現(xiàn)相關詞匯,并與知識圖譜中的實體進行匹配;
知識圖譜構建。根據(jù)所有匹配到的實體,在原始的知識圖譜中抽取子圖。子圖的大小會影響后續(xù)算法的運行時間和效果:越大的子圖通常會學習到更好的特征,但是所需的運行時間越長;
知識圖譜特征學習。使用知識圖譜特征學習算法(如TransE等)進行學習得到實體和關系向量。
需要注意的是,為了更準確地刻畫實體,我們額外地使用一個實體的上下文實體特征(contextual entity embeddings)。一個實體e的上下文實體是e的所有一跳鄰居節(jié)點,e的上下文實體特征為e的所有上下文實體特征的平均值:
下圖的綠色橢圓框內即為“Fight Club”的上下文實體。
?
得到實體特征后,我們的第二步是構建推薦模型,該模型是一個基于CNN和注意力機制的新聞推薦算法:
基于卷積神經(jīng)網(wǎng)絡的文本特征提取:將新聞標題的詞向量(word embedding)、實體向量(entity embedding)和實體上下文向量(context embedding)作為多個通道(類似于圖像中的紅綠藍三通道),在CNN的框架下進行融合;
基于注意力機制的用戶歷史興趣融合:在判斷用戶對當前新聞的興趣時,使用注意力網(wǎng)絡(attention network)給用戶歷史記錄分配不同的權重。
該模型在新聞推薦上取得了很好的效果:DKN取得了0.689的F1值和0.659的AUC值,并在p=0.1水平上比其它方法取得了顯著的提升。
我們也可以通過注意力權重的可視化結果看出,注意力機制的引入對模型的最后輸出產(chǎn)生了積極的影響。由于注意力機制的引入,DKN可以更好地將同類別的新聞聯(lián)系起來,從而提高了最終的正確預測的數(shù)量:
?
依次學習的優(yōu)勢在于知識圖譜特征學習模塊和推薦系統(tǒng)模塊相互獨立。在真實場景中,特別是知識圖譜很大的情況下,進行一次知識圖譜特征學習的時間開銷會很大,而一般而言,知識圖譜遠沒有推薦模塊更新地快。因此我們可以先通過一次訓練得到實體和關系向量,以后每次推薦系統(tǒng)模塊需要更新時都可以直接使用這些向量作為輸入,而無需重新訓練。
依次學習的缺點也正在于此:因為兩個模塊相互獨立,所以無法做到端到端的訓練。通常來說,知識圖譜特征學習得到的向量會更適合于知識圖譜內的任務,比如連接預測、實體分類等,并非完全適合特定的推薦任務。在缺乏推薦模塊的監(jiān)督信號的情況下,學習得到的實體向量是否真的對推薦任務有幫助,還需要通過進一步的實驗來推斷。
聯(lián)合學習的核心是將推薦算法和知識圖譜特征學習的目標融合,并在一個端到端的優(yōu)化目標中進行訓練。我們以CKE[2]和Ripple Network[3]為例介紹聯(lián)合學習。
Collaborative Knowledge base Embedding (CKE)
在推薦系統(tǒng)中存在著很多與知識圖譜相關的信息,以電影推薦為例:
結構化知識(structural knowledge),例如導演、類別等;
圖像知識(visual knowledge),例如海報、劇照等;
文本知識(textual knowledge),例如電影描述、影評等。
CKE是一個基于協(xié)同過濾和知識圖譜特征學習的推薦系統(tǒng):
CKE使用如下方式進行三種知識的學習:
結構化知識學習:TransR。TransR是一種基于距離的翻譯模型,可以學習得到知識實體的向量表示;
?
文本知識學習:去噪自編碼器。去噪自編碼器可以學習得到文本的一種泛化能力較強的向量表示;
圖像知識學習:卷積-反卷積自編碼器。卷積-反卷積自編碼器可以得到圖像的一種泛化能力較強的向量表示。
我們將三種知識學習的目標函數(shù)與推薦系統(tǒng)中的協(xié)同過濾結合,得到如下的聯(lián)合損失函數(shù):
?
使用諸如隨機梯度下降(SGD)的方法對上述損失函數(shù)進行訓練,我們最終可以得到用戶/物品向量,以及實體/關系向量。CKE在電影推薦和圖書推薦上取得了很高的Recall值和MAP值:
Ripple Network
Ripple的中文翻譯為“水波”,顧名思義,Ripple Network模擬了用戶興趣在知識圖譜上的傳播過程,整個過程類似于水波的傳播:
一個用戶的興趣以其歷史記錄中的實體為中心,在知識圖譜上向外逐層擴散;
一個用戶的興趣在知識圖譜上的擴散過程中逐漸衰減。
下圖展示了用戶興趣在知識圖譜上擴散的過程。以一個用戶看過的“Forrest Gump”為中心,用戶的興趣沿著關系邊可以逐跳向外擴展,并在擴展過程中興趣強度逐漸衰減。
??
下圖展示了Ripple Network的模型。對于給定的用戶u和物品v,我們將歷史相關實體集合V中的所有實體進行相似度計算,并利用計算得到的權重值對V中實體在知識圖譜中對應的尾節(jié)點進行加權求和。求和得到的結果可以視為v在u的一跳相關實體中的一個響應。該過程可以重復在u的二跳、三跳相關實體中進行,如此,v在知識圖譜上便以V為中心逐層向外擴散。
?
最終得到的推薦算法和知識圖譜特征學習的聯(lián)合損失函數(shù)如下:
?
類似于CKE,我們在該損失函數(shù)上訓練即可得到物品向量和實體向量。需要注意的是,Ripple Network中沒有對用戶直接使用向量進行刻畫,而是用用戶點擊過的物品的向量集合作為其特征。Ripple Network在電影、圖書和新聞的點擊率預測上取得了非常好的效果:
?
我們將Ripple Network的計算結果可視化如下。可以看出,知識圖譜連接了用戶的歷史興趣和推薦結果,其中的若干條高分值的路徑可以視為對推薦結果的解釋:
聯(lián)合學習的優(yōu)劣勢正好與依次學習相反。聯(lián)合學習是一種端到端的訓練方式,推薦系統(tǒng)模塊的監(jiān)督信號可以反饋到知識圖譜特征學習中,這對于提高最終的性能是有利的。但是需要注意的是,兩個模塊在最終的目標函數(shù)中結合方式以及權重的分配都需要精細的實驗才能確定。聯(lián)合學習潛在的問題是訓練開銷較大,特別是一些使用到圖算法的模型。
Multi-task Learning for KG enhanced Recommendation (MKR)
推薦系統(tǒng)和知識圖譜特征學習的交替學習類似于多任務學習的框架。該方法的出發(fā)點是推薦系統(tǒng)中的物品和知識圖譜中的實體存在重合,因此兩個任務之間存在相關性。將推薦系統(tǒng)和知識圖譜特征學習視為兩個分離但是相關的任務,采用多任務學習的框架,可以有如下優(yōu)勢:
兩者的可用信息可以互補;
知識圖譜特征學習任務可以幫助推薦系統(tǒng)擺脫局部極小值;
知識圖譜特征學習任務可以防止推薦系統(tǒng)過擬合;
知識圖譜特征學習任務可以提高推薦系統(tǒng)的泛化能力。
MKR[4]的模型框架如下,其中左側是推薦任務,右側是知識圖譜特征學習任務。推薦部分使用用戶和物品的特征表示作為輸入,預測的點擊概率作為輸出。知識圖譜特征學習部分使用一個三元組的頭結點和關系表示作為輸入,預測的尾節(jié)點表示作為輸出。
?
由于推薦系統(tǒng)中的物品和知識圖譜中的實體存在重合,所以兩個任務并非相互獨立。我們在兩個任務中設計了交叉特征共享單元(cross-feature-sharing units)作為兩者的連接紐帶。
交叉特征共享單元是一個可以讓兩個任務交換信息的模塊。由于物品向量和實體向量實際上是對同一個對象的兩種描述,他們之間的信息交叉共享可以讓兩者都獲得來自對方的額外信息,從而彌補了自身的信息稀疏性的不足。
?
MKR的整體損失函數(shù)如下:
在實際操作中,我們采用交替訓練的方式:固定推薦系統(tǒng)模塊的參數(shù),訓練知識圖譜特征學習模塊的參數(shù);然后固定知識圖譜特征學習模塊的參數(shù),訓練推薦系統(tǒng)模塊的參數(shù):
MKR在電影、圖書和新聞推薦上也取得了不錯的效果,其F1@K指標在絕大多數(shù)情況下都超過了baseline方法:
交替學習是一種較為創(chuàng)新和前沿的思路,其中如何設計兩個相關的任務以及兩個任務如何關聯(lián)起來都是值得研究的方向。從實際運用和時間開銷上來說,交替學習是介于依次學習和聯(lián)合學習中間的:訓練好的知識圖譜特征學習模塊可以在下一次訓練的時候繼續(xù)使用(不像聯(lián)合學習需要從零開始),但是依然要參與到訓練過程中來(不像依次學習中可以直接使用實體向量)。
知識圖譜作為推薦系統(tǒng)的一種新興的輔助信息,近年來得到了研究人員的廣泛關注。未來,知識圖譜和時序模型的結合、知識圖譜和基于強化學習的推薦系統(tǒng)的結合、以及知識圖譜和其它輔助信息在推薦系統(tǒng)中的結合等相關問題仍然值得更多的研究。歡迎感興趣的同學通過留言與我們互動溝通。
參考文獻
[1] DKN: Deep Knowledge-Aware Network for News Recommendation.
[2] Collaborative knowledge base embedding for recommender systems.
[3] Ripple Network: Propagating User Preferences on the Knowledge Graph for Recommender Systems.
[4] MKR: A Multi-Task Learning Approach for Knowledge Graph Enhanced Recommendation.
作者簡介
王鴻偉,本科畢業(yè)于上海交通大學計算機科學與技術專業(yè)ACM試點班,目前為上海交通大學在讀四年級博士,在微軟亞洲研究院社會計算組實習。研究興趣為網(wǎng)絡特征學習、推薦系統(tǒng)、文本和社交數(shù)據(jù)挖掘,并在WWW、AAAI、WSDM、CIKM、TPDS上發(fā)表了十余篇論文。
張富崢,微軟亞洲研究院研究員,從事人工智能和數(shù)據(jù)挖掘方面的研究。研究興趣包括推薦系統(tǒng)、用戶畫像、自然語言處理等領域,在這些領域的頂級會議和期刊上發(fā)表了近30余篇論文,如KDD、WWW、Ubicomp、TIST等,曾獲ICDM 2013最佳論文大獎。
謝幸,微軟亞洲研究院資深研究員,中國科技大學兼職博士生導師。他的團隊在數(shù)據(jù)挖掘、社會計算和普適計算等領域展開創(chuàng)新性的研究。他在國際會議和學術期刊上發(fā)表了200余篇學術論文,共被引用18000余次,多次在KDD、ICDM等頂級會議上獲最佳論文獎。他是ACM、IEEE高級會員和計算機學會杰出會員,曾擔任ACM UbiComp 2011、PCC 2012、IEEE UIC 2015、以及SMP 2017等大會程序委員會共同主席。
OpenKG.CN
中文開放知識圖譜(簡稱OpenKG.CN)旨在促進中文知識圖譜數(shù)據(jù)的開放與互聯(lián),促進知識圖譜和語義技術的普及和廣泛應用。
點擊閱讀原文,進入 OpenKG 博客。
總結
以上是生活随笔為你收集整理的领域应用 | 如何将知识图谱特征学习应用到推荐系统?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 箱线图和散点图叠加图形的绘制——R la
- 下一篇: transformer 中的注意力机制和