推荐系统(5)-深度推荐模型-AutoRec、DeepCrossing、NeuralCF、PNN、WideDeep、FNN、DeepFM、NFM
GBDT+LR
- 1. AutoRec-2015
- 2. Deep Crossing-2016
- 3. NeuralCF-2016
- 4. PNN-2016
- 5. Wide&Deep-2016
- 6. Deep&Cross-2017
- 7.FM+深度學習
- 7.1 FNN-2016
- 7.2 DeepFM-2017
- 7.3 NFM-2017
《深度學習/推薦系統》讀書筆記
2016年開始,推薦系統和計算廣告全面進入深度學習時代。
(太多的模型,一搞就混了,沒意思。)
圍繞:特征如何更好的交叉,發現新的特征
以下方案基本囊括了特征工程的所有思路,(僅從特征工程的角度出發)模型進一步提升的空間非常小了,這也是這類模型的局限性所在。
1. AutoRec-2015
(澳大利亞國立大學)
核心思想:利用自編碼器重構用戶對物品的評分向量,再利用對物品評分的預估進行推薦排序。
自編碼器:使輸出向量與輸入向量盡可能接近,可以用來做數據壓縮和降維。
數據壓縮和降維說的是,自編碼器的參數數量要遠小于輸入向量的維度
AutoRec-用一個三成神經網絡構建自編碼器,輸出層與輸入層具有相同維度。
若輸入向量為rir^iri,重建函數為h(ri,θ)h(r^i,\theta)h(ri,θ),AutoRec目標函數為
min?θ∑i=1n∣∣ri?h(ri,θ)∣∣2+λ2∣∣θ∣∣2\min_\theta\sum_{i=1}^n||r^i-h(r^i,\theta)||^2+\frac{\lambda}{2}||\theta||^2θmin?i=1∑n?∣∣ri?h(ri,θ)∣∣2+2λ?∣∣θ∣∣2
Item Based AutoRec–物品評分向量–共現矩陣的列向量
User Based AutoRec–用戶評分向量–共現矩陣的行向量
優點:三層自編碼器簡單
缺點:表達能力不足
2. Deep Crossing-2016
(微軟)
Deep Crossing 模型的應用場景-Bing中搜索廣告推薦場景。用戶在搜索引擎中輸入搜索詞后,引擎出了會返回相關的結果,還會返回相關的廣告。這是大多數搜索引擎的盈利模式。準確地預測關稿的點擊率,并以此作為關稿排序指標之一,是非常重要的工作。
某條廣告預測點擊率可能用到的特征:搜索詞,廣告關鍵詞,標題,落地頁(不懂),匹配類型,歷史點擊率,另一個CTR模型預估的點擊率,廣告投放計劃,曝光/點擊樣例(不懂)
Deep Crossing 主要包括4層,用來解決-原始特征稀疏、特征自動交叉、輸出層特征優化三個問題。
3. NeuralCF-2016
(新加坡國立大學)
NeuralCF - 廣義矩陣分解模型-將矩陣分解后的用戶向量和物品向量 通過 互操作層相互作用后 得出用戶對物品的評分。
優點:靈活組合不同的 互操作層 特征,按需增加或者減少模型復雜度
局限性:基于協同過濾的思想構造,沒有更多的引入其他類型的特征。所提供的互操作就兩種,更多的方式需要后來者進行更深入的研究。
4. PNN-2016
上海交通大學–加強特征交叉能力–多組特征的之間的交叉(NeuralCF只有用戶向量和物品向量)
PNN創新點–使用了乘積層代替了Deepcross中的stack 層,就是說不同特征的Embedding向量不再是簡單的拼接,而是用Product操作進行兩兩交互。
Product層包括線形操作部分和乘積操作部分。
a). 內積操作–沒啥特殊
b). 外積操作–將所有特征兩兩外積矩陣疊加,形成疊加外積互操作矩陣:p=fΣfΣTp=f_{\Sigma}f^T_{\Sigma}p=fΣ?fΣT?。
疊加外積互操作矩陣的缺陷–等價于讓所有的emdedding過一個平均池化,再作內積。不在同一個向量空間的特征向量(年齡,地域)相加,會造成信息模糊。
5. Wide&Deep-2016
google–google play推薦團隊–單層Wide和多層Deep組合形成混合模型,綜合利用記憶能力和泛化能力。
記憶能力:模型直接學習并利用歷史數據中物品或者特征的“共現頻率”的能力。
強組合特征:如果點擊過A,就推薦B。協同過濾和邏輯回歸很容易發現這種聯系。例如通過加大A的特征權重,這樣就實現了對這個特征的直接記憶。
泛化能力:模型發掘稀疏甚至稀有特征與最終標簽相關性的能力。
矩陣分解比協同過濾泛化能力強,就是因為矩陣分解引入了隱向量,使得數據稀少的用戶或者物品也能生成隱向量,從而獲得有數據支撐的推薦得分。(非常典型的將全局數據傳遞到稀疏物品上,提高了泛化能力)
Wide&Deep 模型結構: 單層Wide和多層Deep的輸出拼接后直接輸入到輸出層。
(在具體特征工程和輸入層設計中,展現了Google PLay推薦團隊對業務場景的深刻理解)
Wide特征交叉操作–交叉積變化(解釋完反而懵了)–多個特征向量的同一維度都為1,輸出向量該維度才為1?
Deep&Wide模型的最主要共現–模型融合的魅力。
6. Deep&Cross-2017
斯坦福+google聯合-在Wide&Deep的基礎上,優化Wide部分,變為Cross網絡。
Cross網絡的目的–增加特征之間的交互力度,多層交叉層。(每一層均保留了輸入向量)
xl+1=x0xlTWl+bl+xlx_{l+1}=x_0x_l^TW_l+b_l+x_lxl+1?=x0?xlT?Wl?+bl?+xl?
7.FM+深度學習
7.1 FNN-2016
倫敦大學
改進點:DeepCross模型中embedding層的權重用FM模型訓練出的權重向量進行初始化
問題緣起:embedding層采用隨機初始化,收斂非常慢。主要原因有二
7.2 DeepFM-2017
哈工大+華為公司
改進點:用FM代替Deep&wide中的wide,提高特征交叉能力
FM部分和Deep 部分共享稠密的embedding層。
7.3 NFM-2017
新加坡國立大學
改進點:在Deep&wide模型中的deep 部分增加了特征交叉池化層
特征交叉池化層:所有稠密embedding 兩兩數量積之后求和,輸入到后續的深層網絡中。
改進點的另一種看法:FM中的二階交叉部分采用神經網絡來擬合。
總結
以上是生活随笔為你收集整理的推荐系统(5)-深度推荐模型-AutoRec、DeepCrossing、NeuralCF、PNN、WideDeep、FNN、DeepFM、NFM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python的命令解析getopt.ge
- 下一篇: UNIX(多线程):20---生产者消费