论文笔记(Neural Collaborative Filtering)
神經協同過濾
論文鏈接:Neural Collaborative Filtering, WWW’17
原理:融合 GMF 和 MLP
1. 摘要
雖然最近的一些研究使用深度學習作為推薦,但他們主要是用深度學習來建模輔助信息,例如 item 的文本描述。在表示協同過濾的關鍵因素——用戶和項目特征之間的交互時,仍然使用矩陣分解等用內積來建模。
通過用一種能從數據中學習任意函數的神經結構代替內積,提出了一種通用的神經網絡協同過濾框架 NCF。為了使非線性的 NCF 模型更加完善,我們提出利用 MLP 來學習用戶-項目交互函數。
關于Matrix Factorization
將用戶和項映射到同一潛在空間,用用戶向量和項向量的內積來評估他們之間的交互。
但當潛在空間的維度 K 小的時候會存在一些限制,而擴大 K 的話會有損模型的泛化能力。
2. 模型
2.1 GMF(Generalized Matrix Factorization )
我們稱之為GMF(Generalized Matrix Factorization,廣義矩陣分解)
PTVUu 表示用戶的潛在向量 pu ,QTVIi表示項目的潛在向量 qi,定義第一層神經CF層的映射函數為:
然后,將向量映射到輸出層:
2.2 MLP (Multi-Layer Perceptron)
用MLP(多層感知機)來學習用戶和項目潛在特征之間的相互作用。MLP模型定義為:
采用塔層結構,每一層比上一層的單元數減少一半。
2.3 Fusion of GMF and MLP
GMF:應用了一個線性內核來模擬潛在的特征交互
MLP:使用非線性內核從數據中學習交互函數
為了使得融合模型具有更大的靈活性,允許GMF和MLP學習獨立的嵌入,并結合兩種模型通過連接他們最后的隱層輸出。圖中展示了方案,公式如下:
該模型結合MF的線性度和DNNs的非線性度,用以建模用戶-項目之間的潛在結構。我們將這一模式稱為“NeuMF”,簡稱神經矩陣分解(Neural Matrix Factorization)。
2.4 Pre-training
由于NeuMF的目標函數的非凸性,基于梯度的優化方法只能找到局部最優解。由于 NeuMF 是 GMF 和 MLP 的組合,我們建議使用 GMF 和 MLP 的預訓練模型來初始化NeuMF。
我們首先訓練隨機初始化的 GMF 和 MLP 直到模型收斂。然后,我們用它們的模型參數初始化 NeuMF 相應部分的參數。唯一的調整是在輸出層,在那里我們將兩者用權重連接起來:
對于從頭開始訓練的 GMF 和 MLP ,我們采用自適應矩估計(Adam,Adaptive Moment Estimation),它通過對不頻繁的參數進行頻繁和更大幅度的更新來適應每個參數的學習速率。Adam方法在兩種模型上的收斂速度都比普通SGD快,并緩解了調整學習率的痛苦。在將預先訓練的參數輸入NeuMF之后,我們用普通SGD而不是Adam進行優化。 這是因為Adam需要保存更新參數的動量信息(momentum information)。因為我們用預先訓練的模型參數初始化NeuMF,并且放棄保存動量信息,不適合用基于動量的方法進一步優化NeuMF。
總結
以上是生活随笔為你收集整理的论文笔记(Neural Collaborative Filtering)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pytorch 和 tensorflow
- 下一篇: 【LeetCode】3月22日打卡-Da