在上周發(fā)表的“推薦算法不夠精準(zhǔn)?讓知識圖譜來解決”一文中,我們?yōu)榇蠹医榻B了日常生活中幾乎每天都會用到的推薦系統(tǒng),以及用來提高推薦系統(tǒng)精準(zhǔn)性、多樣性和可解釋性的推薦算法輔助信息——知識圖譜。今天,我們將進(jìn)一步為大家講解將知識圖譜特征學(xué)習(xí)引入到推薦系統(tǒng)的各種思路與實現(xiàn)方法。
將知識圖譜作為輔助信息引入到推薦系統(tǒng)中可以有效地解決傳統(tǒng)推薦系統(tǒng)存在的稀疏性和冷啟動問題,近幾年有很多研究人員在做相關(guān)的工作。目前,將知識圖譜特征學(xué)習(xí)應(yīng)用到推薦系統(tǒng)中主要通過三種方式——依次學(xué)習(xí)、聯(lián)合學(xué)習(xí)、以及交替學(xué)習(xí)。
依次學(xué)習(xí)(one-by-one learning)。首先使用知識圖譜特征學(xué)習(xí)得到實體向量和關(guān)系向量,然后將這些低維向量引入推薦系統(tǒng),學(xué)習(xí)得到用戶向量和物品向量;
聯(lián)合學(xué)習(xí)(joint learning)。將知識圖譜特征學(xué)習(xí)和推薦算法的目標(biāo)函數(shù)結(jié)合,使用端到端(end-to-end)的方法進(jìn)行聯(lián)合學(xué)習(xí);
交替學(xué)習(xí)(alternate learning)。將知識圖譜特征學(xué)習(xí)和推薦算法視為兩個分離但又相關(guān)的任務(wù),使用多任務(wù)學(xué)習(xí)(multi-task learning)的框架進(jìn)行交替學(xué)習(xí)。
依次學(xué)習(xí)
Deep Knowledge-Aware Network (DKN)
我們以新聞推薦[1]為例來介紹依次學(xué)習(xí)。如下圖所示,新聞標(biāo)題和正文中通常存在大量的實體,實體間的語義關(guān)系可以有效地擴(kuò)展用戶興趣。然而這種語義關(guān)系難以被傳統(tǒng)方法(話題模型、詞向量)發(fā)掘。
為了將知識圖譜引入特征學(xué)習(xí),遵循依次學(xué)習(xí)的框架,我們首先需要提取知識圖譜特征。該步驟的方法如下:
實體連接(entity linking)。即從文本中發(fā)現(xiàn)相關(guān)詞匯,并與知識圖譜中的實體進(jìn)行匹配;
知識圖譜構(gòu)建。根據(jù)所有匹配到的實體,在原始的知識圖譜中抽取子圖。子圖的大小會影響后續(xù)算法的運(yùn)行時間和效果:越大的子圖通常會學(xué)習(xí)到更好的特征,但是所需的運(yùn)行時間越長;
知識圖譜特征學(xué)習(xí)。使用知識圖譜特征學(xué)習(xí)算法(如TransE等)進(jìn)行學(xué)習(xí)得到實體和關(guān)系向量。
需要注意的是,為了更準(zhǔn)確地刻畫實體,我們額外地使用一個實體的上下文實體特征(contextual entity embeddings)。一個實體e的上下文實體是e的所有一跳鄰居節(jié)點,e的上下文實體特征為e的所有上下文實體特征的平均值:
下圖的綠色橢圓框內(nèi)即為“Fight Club”的上下文實體。
得到實體特征后,我們的第二步是構(gòu)建推薦模型,該模型是一個基于CNN和注意力機(jī)制的新聞推薦算法:
基于卷積神經(jīng)網(wǎng)絡(luò)的文本特征提?。簩⑿侣剺?biāo)題的詞向量(word embedding)、實體向量(entity embedding)和實體上下文向量(context embedding)作為多個通道(類似于圖像中的紅綠藍(lán)三通道),在CNN的框架下進(jìn)行融合;
基于注意力機(jī)制的用戶歷史興趣融合:在判斷用戶對當(dāng)前新聞的興趣時,使用注意力網(wǎng)絡(luò)(attention network)給用戶歷史記錄分配不同的權(quán)重。
該模型在新聞推薦上取得了很好的效果:DKN取得了0.689的F1值和0.659的AUC值,并在p=0.1水平上比其它方法取得了顯著的提升。
我們也可以通過注意力權(quán)重的可視化結(jié)果看出,注意力機(jī)制的引入對模型的最后輸出產(chǎn)生了積極的影響。由于注意力機(jī)制的引入,DKN可以更好地將同類別的新聞聯(lián)系起來,從而提高了最終的正確預(yù)測的數(shù)量:
依次學(xué)習(xí)的優(yōu)勢在于知識圖譜特征學(xué)習(xí)模塊和推薦系統(tǒng)模塊相互獨立。在真實場景中,特別是知識圖譜很大的情況下,進(jìn)行一次知識圖譜特征學(xué)習(xí)的時間開銷會很大,而一般而言,知識圖譜遠(yuǎn)沒有推薦模塊更新地快。因此我們可以先通過一次訓(xùn)練得到實體和關(guān)系向量,以后每次推薦系統(tǒng)模塊需要更新時都可以直接使用這些向量作為輸入,而無需重新訓(xùn)練。
依次學(xué)習(xí)的缺點也正在于此:因為兩個模塊相互獨立,所以無法做到端到端的訓(xùn)練。通常來說,知識圖譜特征學(xué)習(xí)得到的向量會更適合于知識圖譜內(nèi)的任務(wù),比如連接預(yù)測、實體分類等,并非完全適合特定的推薦任務(wù)。在缺乏推薦模塊的監(jiān)督信號的情況下,學(xué)習(xí)得到的實體向量是否真的對推薦任務(wù)有幫助,還需要通過進(jìn)一步的實驗來推斷。
聯(lián)合學(xué)習(xí)
聯(lián)合學(xué)習(xí)的核心是將推薦算法和知識圖譜特征學(xué)習(xí)的目標(biāo)融合,并在一個端到端的優(yōu)化目標(biāo)中進(jìn)行訓(xùn)練。我們以CKE[2]和Ripple Network[3]為例介紹聯(lián)合學(xué)習(xí)。
Collaborative Knowledge base Embedding (CKE)
在推薦系統(tǒng)中存在著很多與知識圖譜相關(guān)的信息,以電影推薦為例:
結(jié)構(gòu)化知識(structural knowledge),例如導(dǎo)演、類別等;
圖像知識(visual knowledge),例如海報、劇照等;
文本知識(textual knowledge),例如電影描述、影評等。
CKE是一個基于協(xié)同過濾和知識圖譜特征學(xué)習(xí)的推薦系統(tǒng):
CKE使用如下方式進(jìn)行三種知識的學(xué)習(xí):
結(jié)構(gòu)化知識學(xué)習(xí):TransR。TransR是一種基于距離的翻譯模型,可以學(xué)習(xí)得到知識實體的向量表示;
文本知識學(xué)習(xí):去噪自編碼器。去噪自編碼器可以學(xué)習(xí)得到文本的一種泛化能力較強(qiáng)的向量表示;
圖像知識學(xué)習(xí):卷積-反卷積自編碼器。卷積-反卷積自編碼器可以得到圖像的一種泛化能力較強(qiáng)的向量表示。
我們將三種知識學(xué)習(xí)的目標(biāo)函數(shù)與推薦系統(tǒng)中的協(xié)同過濾結(jié)合,得到如下的聯(lián)合損失函數(shù):
使用諸如隨機(jī)梯度下降(SGD)的方法對上述損失函數(shù)進(jìn)行訓(xùn)練,我們最終可以得到用戶/物品向量,以及實體/關(guān)系向量。CKE在電影推薦和圖書推薦上取得了很高的Recall值和MAP值:
Ripple Network
Ripple的中文翻譯為“水波”,顧名思義,Ripple Network模擬了用戶興趣在知識圖譜上的傳播過程,整個過程類似于水波的傳播:
一個用戶的興趣以其歷史記錄中的實體為中心,在知識圖譜上向外逐層擴(kuò)散;
一個用戶的興趣在知識圖譜上的擴(kuò)散過程中逐漸衰減。
下圖展示了用戶興趣在知識圖譜上擴(kuò)散的過程。以一個用戶看過的“Forrest Gump”為中心,用戶的興趣沿著關(guān)系邊可以逐跳向外擴(kuò)展,并在擴(kuò)展過程中興趣強(qiáng)度逐漸衰減。
下圖展示了Ripple Network的模型。對于給定的用戶u和物品v,我們將歷史相關(guān)實體集合V中的所有實體進(jìn)行相似度計算,并利用計算得到的權(quán)重值對V中實體在知識圖譜中對應(yīng)的尾節(jié)點進(jìn)行加權(quán)求和。求和得到的結(jié)果可以視為v在u的一跳相關(guān)實體中的一個響應(yīng)。該過程可以重復(fù)在u的二跳、三跳相關(guān)實體中進(jìn)行,如此,v在知識圖譜上便以V為中心逐層向外擴(kuò)散。
最終得到的推薦算法和知識圖譜特征學(xué)習(xí)的聯(lián)合損失函數(shù)如下:
類似于CKE,我們在該損失函數(shù)上訓(xùn)練即可得到物品向量和實體向量。需要注意的是,Ripple Network中沒有對用戶直接使用向量進(jìn)行刻畫,而是用用戶點擊過的物品的向量集合作為其特征。Ripple Network在電影、圖書和新聞的點擊率預(yù)測上取得了非常好的效果:
我們將Ripple Network的計算結(jié)果可視化如下。可以看出,知識圖譜連接了用戶的歷史興趣和推薦結(jié)果,其中的若干條高分值的路徑可以視為對推薦結(jié)果的解釋:
聯(lián)合學(xué)習(xí)的優(yōu)劣勢正好與依次學(xué)習(xí)相反。聯(lián)合學(xué)習(xí)是一種端到端的訓(xùn)練方式,推薦系統(tǒng)模塊的監(jiān)督信號可以反饋到知識圖譜特征學(xué)習(xí)中,這對于提高最終的性能是有利的。但是需要注意的是,兩個模塊在最終的目標(biāo)函數(shù)中結(jié)合方式以及權(quán)重的分配都需要精細(xì)的實驗才能確定。聯(lián)合學(xué)習(xí)潛在的問題是訓(xùn)練開銷較大,特別是一些使用到圖算法的模型。
交替學(xué)習(xí)
Multi-task Learning for KG enhanced Recommendation (MKR)
推薦系統(tǒng)和知識圖譜特征學(xué)習(xí)的交替學(xué)習(xí)類似于多任務(wù)學(xué)習(xí)的框架。該方法的出發(fā)點是推薦系統(tǒng)中的物品和知識圖譜中的實體存在重合,因此兩個任務(wù)之間存在相關(guān)性。將推薦系統(tǒng)和知識圖譜特征學(xué)習(xí)視為兩個分離但是相關(guān)的任務(wù),采用多任務(wù)學(xué)習(xí)的框架,可以有如下優(yōu)勢:
兩者的可用信息可以互補(bǔ);
知識圖譜特征學(xué)習(xí)任務(wù)可以幫助推薦系統(tǒng)擺脫局部極小值;
知識圖譜特征學(xué)習(xí)任務(wù)可以防止推薦系統(tǒng)過擬合;
知識圖譜特征學(xué)習(xí)任務(wù)可以提高推薦系統(tǒng)的泛化能力。
MKR[4]的模型框架如下,其中左側(cè)是推薦任務(wù),右側(cè)是知識圖譜特征學(xué)習(xí)任務(wù)。推薦部分使用用戶和物品的特征表示作為輸入,預(yù)測的點擊概率作為輸出。知識圖譜特征學(xué)習(xí)部分使用一個三元組的頭結(jié)點和關(guān)系表示作為輸入,預(yù)測的尾節(jié)點表示作為輸出。
由于推薦系統(tǒng)中的物品和知識圖譜中的實體存在重合,所以兩個任務(wù)并非相互獨立。我們在兩個任務(wù)中設(shè)計了交叉特征共享單元(cross-feature-sharing units)作為兩者的連接紐帶。
交叉特征共享單元是一個可以讓兩個任務(wù)交換信息的模塊。由于物品向量和實體向量實際上是對同一個對象的兩種描述,他們之間的信息交叉共享可以讓兩者都獲得來自對方的額外信息,從而彌補(bǔ)了自身的信息稀疏性的不足。
MKR的整體損失函數(shù)如下:
在實際操作中,我們采用交替訓(xùn)練的方式:固定推薦系統(tǒng)模塊的參數(shù),訓(xùn)練知識圖譜特征學(xué)習(xí)模塊的參數(shù);然后固定知識圖譜特征學(xué)習(xí)模塊的參數(shù),訓(xùn)練推薦系統(tǒng)模塊的參數(shù):
MKR在電影、圖書和新聞推薦上也取得了不錯的效果,其F1@K指標(biāo)在絕大多數(shù)情況下都超過了baseline方法:
交替學(xué)習(xí)是一種較為創(chuàng)新和前沿的思路,其中如何設(shè)計兩個相關(guān)的任務(wù)以及兩個任務(wù)如何關(guān)聯(lián)起來都是值得研究的方向。從實際運(yùn)用和時間開銷上來說,交替學(xué)習(xí)是介于依次學(xué)習(xí)和聯(lián)合學(xué)習(xí)中間的:訓(xùn)練好的知識圖譜特征學(xué)習(xí)模塊可以在下一次訓(xùn)練的時候繼續(xù)使用(不像聯(lián)合學(xué)習(xí)需要從零開始),但是依然要參與到訓(xùn)練過程中來(不像依次學(xué)習(xí)中可以直接使用實體向量)。
知識圖譜作為推薦系統(tǒng)的一種新興的輔助信息,近年來得到了研究人員的廣泛關(guān)注。未來,知識圖譜和時序模型的結(jié)合、知識圖譜和基于強(qiáng)化學(xué)習(xí)的推薦系統(tǒng)的結(jié)合、以及知識圖譜和其它輔助信息在推薦系統(tǒng)中的結(jié)合等相關(guān)問題仍然值得更多的研究。歡迎感興趣的同學(xué)通過留言與我們互動溝通。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4733瀏覽量
100420 -
算法
+關(guān)注
關(guān)注
23文章
4587瀏覽量
92505 -
知識圖譜
+關(guān)注
關(guān)注
2文章
132瀏覽量
7683
原文標(biāo)題:如何將知識圖譜特征學(xué)習(xí)應(yīng)用到推薦系統(tǒng)?
文章出處:【微信號:AI_Thinker,微信公眾號:人工智能頭條】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論