1. 程式人生 > >Collaborative Knowledge Base Embedding for Recommender Systems(譯)

Collaborative Knowledge Base Embedding for Recommender Systems(譯)

該論文發表於16年KDD,主要貢獻為在推薦系統中引入了結構資訊,文字資料,影象資料等知識庫中的資訊來提升推薦系統的質量。其中,結構資訊採用TransR來得到實體的向量特徵,文字資料與影象資料分別使用棧式降噪自編碼(Stacked Denoising Auto-encoders, SDAE)與棧式卷積自編碼(Stacked Convolutional Auto-encoders)來提取出向量特徵。

Item的向量表示是將最初的向量與來自知識庫中的三個特徵向量相結合。對於構建出的損失函式可以使用隨機梯度下降來進行優化,從而實現基於異構資料的ranking推薦。

動機

目前最常用的矩陣分解方法的效能會因為矩陣過於稀疏而效能下降,同時也存在無法推薦新的item和冷啟動等問題。基於內容的推薦無法很好的解決推薦結果的多樣性問題。考慮到使用者對於item的選擇也會受到與item相關的其他資訊的影響。因此,混合了協同過濾與其他資訊的推薦系統通常可以更好地解決這些問題,從而得到更好的結果。

知識庫中通常包含了大量的資訊,因此有部分工作將知識庫作為其他資訊來與協同過濾進行融合。然而,這些工作目前存在以下問題:

1、僅僅使用單一的網路結構資訊,沒有充分利用其他資訊。
2、從知識庫中提取特徵依賴於傳統特徵工程。為了解決這些問題,本文提出的CKE(Collaborative Knowledge Base Embedding) 推薦系統框架。

在講解CKE網路結構之前,首先介紹相關概念:

1、在user-item矩陣中,數值為1則表示存在相關關係,0則表示不存在。

2、知識庫中包含的知識可以分為以下三類。

​ 1)結構知識:通過頭尾實體與實體之間的關係組成。

​ 2)文字知識:對於一個實體的一段文字性描述。

​ 3)圖片知識:與當前實體有關的圖片資訊。如電影海報或書的封面。

3、當前需要解決的推薦系統的問題是:給定具有結構知識,文字及圖片的知識庫和使用者的隱式反饋,返回每一個使用者最有可能感興趣的item列表。

知識庫與user-item矩陣之間的關係如下圖所示。

Illustration of a snippet of user implicit feedback data and knowledge base data

網路結構

總覽

The flowchart of the proposed Collaborative Knowledge Base Embedding (CKE) framework for recommender systems

模型主要包含兩步。1)針對於知識庫中的知識進行向量化表示。2)協同聯合訓練。在進行知識庫的embedding階段,模型分別針對於結構知識(structural knowledge),文字知識(textual knowledge),圖片知識(visual knowledge)進行向量化表示。embedding的方式分別為Bayesian TransR, Bayesian SDAE, Bayesian SCAE.

在協同聯合訓練部分,item的向量由從知識庫中提取的三個向量與offset vector組成。訓練過程通過優化不同item之間的ranking來學習user的隱向量與item的隱向量。

結構化資料的向量表示

與其他embedding的方式相比,TransR可以通過關係矩陣來連結不同語義空間。如下圖所示,實體與關係存在在不同的空間空,而TransR通過矩陣M將實體從實體空間轉到關係空間,並在關係空間中進行進行計算。

Illustration of TransR for structural embedding

其中目標函式為

fv(vh,vt)=||vrh+rvrt||22

其中vrh=vhMr , vrr=vrMr, MrRk×d, rRd, vh,vtRk

在本文中,加入貝葉斯先驗之後的TransR的生成過程如下所示

請查閱劉知遠老師的論文 Learning entity and relation embeddings for knowledge graph completion(AAAI’15) 以獲取更多關於TransR的資訊

文字的向量表示

與CDL中的模型相似,CKE中採用的SDAE模型如下圖所示:

其中左側為新增噪聲之後的文件,經過編碼與解碼之後使得輸出的文件與未新增噪聲的文件要儘可能的接近。噪聲的新增方式為隨機將一些數字置零。以當前圖為例,X0至X3之間為編碼過程,X3至X6之間為解碼過程。而最終X3的輸出為文件的向量表示。

加入貝葉斯先驗之後的SDAE生成過程如下所示:

圖片的向量化表示

與SDAE的結構類似,SCAE中特徵的提取(即編碼過程)採用卷積操作來進行。而解碼過程則使用反捲積操作。因編碼的輸出為embedding之後的向量,因此向量與前後兩層之間的連結為全連線。網路左側輸入的圖片為新增噪聲之後的圖片。噪聲新增方式為隨機增加高斯噪聲。具體網路結構如下圖所示:

加入貝葉斯先驗之後的SCAE生成過程如下所示:

網路的聯合訓練

根據以上分析, item隱向量的計算方式為:

ej=ηj+vj+XL22,j+ZLv2,j
其中ηj, vj, XLt2,j, ZLv2,j,分別為item的offset向量以及結構化知識,文字知識,圖片知識的向量。對於每一個三元組(i,j,j) ,需要優化的目標為σ(uTiejuTiej)。 三元組滿足Rij=1以及Rij=0。 因此對於該目標函式,優化的方向應為最大值方向。

加入其他部分的目標函式以及正則項,最終的目標函式如下所示:

因為SDAE,SCAE以及正則項的目標為最小值而且目標函式要得到最大值,所以這些項前的符號為負號。當前目標函式可以使用隨機梯度下降來進行學習過程。

實驗

實驗部分分別在CKE框架下融入了結構化資訊(S),文字資訊(T),圖片資訊(V)以及其他組合與其他方法如LibFM+STV, BPRMF+STV在資料集MovieLens-1m與IntentBook上進行比較,並最終得到CKE+STV資訊可以得到最優的效能。