論文筆記之Wide & Deep Learning for Recommender Systems

Wide & Deep Learning for Recommender Systems

文中指出推薦系統(tǒng)的一個挑戰(zhàn)是同時實現(xiàn)memorization和generalization。
memorization指在歷史數(shù)據(jù)中挖掘一些頻繁共現(xiàn)的物品或特征,以及一些相互作用關系。
generalization指探索一些在過去未出現(xiàn)的新的特征組合。
基于memorization的推薦通常更加關注user已經(jīng)有過動作的item。而基于generalization的推薦會使得推薦的item更加的豐富和多樣化。
模型中通常有用one-hot編碼的二維稀疏特征,比如說二維特征user_installed_app = netflix(one-hot中的表示netflix的一位)當用戶下載過netflix時為1。
memorization可以通過在稀疏特征上的cross-product transformation來實現(xiàn),比如AND(user_installed_app=netflix, impression_app=pandora)當這其中的兩項都取到時才為1。
generalization的實現(xiàn)可以通過一些粗粒度的組合特征,比如AND(user_installed_category=video, impression_category=music)。
但是這些組合特征都是需要人工來設計的。
這種方法的一個限制在于不能泛化到一些訓練數(shù)據(jù)中沒有出現(xiàn)過的物品特征對。
基于embedding的模型,比如說FM,DNN能夠通過學習物品特征的低維稠密embedding向量來泛化到以前沒見過的物品特征對,并且不需要人工做額外的特征組合。然而,當物品矩陣稀疏時很難有效的學習到好的embedding向量。
本文提出了Wide&Deep模型,同時實現(xiàn)memorization和generalization,同時訓練一個線性模塊和一個深度網(wǎng)絡模塊。

WIDE & DEEP LEARNING

The Wide Component

wide模塊就是一個普通的線性模型y = wT * x + b,其中y是prediction,x=[x1, x2,..., xd]是d維的特征向量,w = [w1,w2,...,wd]是模型參數(shù),b是bias。其中特征集合中包括原始的輸入特征和轉換特征(transformed feature)。最重要的transformation是cross-product transformation,定義如下

cki是一個boolean變量,當?shù)趇個特征是第k個transformation φk的一部分時為1,否則為0。比如對于binary特征,有cross-product transformation AND(gender=female, language=en),只有當其中的兩個特征都為1時才為1,否則為0。
式1的理解非常重要,以gender和language這個transformation為例進行說明。gender和language都是one-hot的,如果我們希望組合gender=female, language=en,那么去找到這兩個對應的特征(分別是兩個one-hot中的一維),這兩個特征對應的cki是1,其他都是0(任何數(shù)的0次方都是1,也就是說,和其他的特征都沒有關系了)。只有當這兩個特征對應的xi都是1時,整個transformation φk才為1。
通過這種方式實現(xiàn)了binary特征的交互,增加了模型的非線性。

The Deep Component

先對one-hot做embedding,需要注意的是這里的embedding是和模型一起訓練的。即先對embedding vector隨機初始化,然后最小化loss function來訓練。然后放入MLP中

激活函數(shù)f通常用relu。

Joint Training of Wide & Deep Model

將wide模塊和deep模塊帶權求和,然后輸入logistics loss function共同訓練(joint training)。
文中強調了joint training和ensemble的區(qū)別,簡單說ensemble是不同模塊各自分別訓練,訓練好了再裝起來,joint training是各個模塊直接合成一個模型一起訓練。ensemble需要子模塊size更大,而joint training各個子模塊是互補的,相對來說size更小。
用back-pop來訓練整個模型,模型的預測為

x是原始特征,φ(x)是cross product transformation得到的特征,b是bias,a(lf)是deep模塊最后一層輸出。
具體的模型結構如下圖。

可以看到連續(xù)型特征不需要做embedding,直接往前輸入,離散型種類特征(one-hot)做embedding(32維)。cross product transformation是人工設計組合的一部分特征。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容