TransNets: Learning to Transform for Recommendation
來自專欄西土城的搬磚日常
論文來源:RecSys 2017
論文鏈接:TransNets: Learning to Transform for Recommendation
1、推薦問題介紹
商品推薦的目標是準確判斷某個用戶對某個物品的打分。可以將某個物品的所有review concat之後作為該物品的描述文檔,同樣可以將某個用戶的review concat之後作為該用戶的描述文檔,之後基於描述文檔對用戶和物品建模,分別得到用戶和物
品的向量表示,最後採用FM方法預測打分。
2、作者要改進的模型
比較好的對用戶文檔或者物品文檔的建模方式是CNN,結構如下:
CNN的輸入長度是固定的,一般會選取一個長度閾值,長於這個閾值的部分會被截斷。
第一層的embedding層是對截斷文檔中的每個詞做embedding,之後是卷積、池化,最後得到一個截斷文檔的隱層表示作為用戶或者物品的特徵表示。
作者要改進的模型:
2邊分別是用戶的建模和物品的建模,中間的 和 是Figure 1中的CNN模型,CNN模型之後是全連接層和Dropout層,Dropout層的輸出可以認為是某個用戶或者物品的特徵表達,最後經過FM得到預測打分。
其中 向量是2邊Dropout層的輸出concat得到的, 和 是 的元素。
loss採用L1 loss:
3、DeepCoNN模型的limit
由於用戶(物品)的描述文檔是用戶(物品)所有review concat得到的,所以在訓練中要擬合用戶A對物品B的打分時,用戶A對物品B的review也是包含在該描述文檔中的,但是在實際中,要預測某個用戶對某個物品的打分時,一般是得不到此用戶對此物品的review的,所以訓練數據的構造是不合理的。作者基於這個想法,提出了新的模型TransNet。
4、TransNet
source network的輸入和DeepCoNN相比,在擬合用戶A對物品B的打分時,會把A對B的review 從描述文檔中去掉。TRANSFROM 之前的部分和DeepCoNN是相同的,描述文檔經過CNN,之後用戶的特徵向量和物品的特徵向量concat起來作為TRANSFROM的輸入。
TRANSFROM部分利用了用戶A對物品B的review,右邊的Target Network用CNN對 建模,也就是 部分,之後得到該review的特徵表示,作者的思想是Source NetWork學到的特徵表示應該和Target Network 學到的特徵表示類似,也就是說只要Source Network可以擬合出用戶真實review的表達就可以,即圖中的loss部分。Target Network會根據真實打分來學習該review的特徵表示。
Target Network的數學表達:
Source Network的前部分數學表達(TRANSFROM 輸入之前):
TRANSFROM之後是前向神經網路。loss部分放在訓練過程中講。
5、訓練過程和預測過程
作者的幾種訓練方式嘗試:
- end2end 訓練vs training with sub-steps
如果在一次迭代中一起更新所有的loss: ,就會使得 的更新不僅僅依賴於Target Network,還有受Transform的影響,可能最終 比較小,但是其它的loss卻相對大,這不是我們期待的結果。最終的目標是希望 比較小。
- 訓練Target Network獨立收斂
單獨訓練Target Network的時候,無法評估網路參數學的好壞,當 比較低的時候,未必 會比較小。
6、實驗
- 數據集
- 評價指標
- 實驗結果
TransNet-Ext是作者在上述模型的基礎上加上了用戶和物品的偏置矩陣。詳細可以參考論文。
7、可視化
對於一個測試example 用戶P和物品Q,為了驗證source network學到了用戶P對物品Q的真實review特徵,作者首先根據用戶p和物品Q的描述文檔,經過source network得到review隱特徵表示,也就是 ;之後將其它用戶對物品Q 的review文檔分別通過target network,得到很多的 ,根據歐式距離, 與那個 最接近,就代表該 對應的review與用戶P對物品Q的review最相似。
8、總結
其實作者只是改進了一個點,但是論文裡面訓練過程的分析特別清楚,包括為什麼選擇這種方式訓練,以及後面和很多現有結構的對比,還有可視化過程,讓整篇論文非常完整,邏輯也很清晰,值得學習。
推薦閱讀:
※笑到全身抽搐的經典圖片![22P] [幽默推薦]
※[好文推薦]等待是一生最初的蒼老 —— 顧小白
※強烈推薦7對超強食物組合
※閱讀推薦:《納粹德國:一部新的歷史》
※東皇太一有什麼銘文推薦?
TAG:推薦 |