推荐算法炼丹笔记:科学调参在模型优化中的意义
作者:九羽 ,公眾號:煉丹筆記
基于Embedding的推薦算法模型一直是近幾年研究的熱門,在各大國際會議期刊都能看到來自工業界研究與實踐的成果。MF(Matrix Factorization)作為傳統基于點積和高階組合Embedding的方式,在推薦系統被廣泛應用。對user和item的交互行為的建模大多使用MF,對user和item的隱特征使用內積計算,而這是一種線性方式。
而通過引入user、item偏置提高MF效果也說明內積不足以捕捉到用戶交互數據中的復雜結構信息。因此在NCF(Neural Collaborative Filtering)論文中,作者引入深度學習方法對特征之間的相互關系進行非線性的描述是解決該問題的一種方式。
本文主要闡述的內容主要為:
1、在相同實驗情況下,矩陣分解(Matrix Factorization)在進行參數調優之后是否能比MLP(Multi Layer Perceptron)具有較大幅度的提升?
2、雖然MLP理論上可以逼近任何函數,但是本文通過實驗對比分析MLP與點積函數之間的逼近關系;
3、最后,討論MLP在實際線上生成環境中提供Service時的高成本問題,對比“點積”可以通過類似Faiss等高效搜索算法快速找到相似Item。
什么是Dot Product 和MLP?
Dot Product
用戶向量UserEmbedding(圖中p)和物品向量ItemEmbedding(圖中q)的點積。
MLP (Multi Layer Perceptron)& NCF
MLP理論上能擬合任何函數,在NCF論文中作者用MLP替換點積,將用戶向量UserEmbedding和物品向量ItemEmbedding拼接后作為輸入。
NCF網絡可以分解為兩個子網絡,一個被稱為廣義矩陣分解Generalized Matrix Factorization (GMF),另一個是多層感知機Multi-Layer Perceptron (MLP)。
其中GMF,利用用戶向量UserEmbedding和物品向量ItemEmbedding,進行了哈達瑪乘積進行組合(元素級別),然后在全連接層進行了線性的加權組合,即訓練了一個h向量(權重向量)。
MLP部分,用戶向量UserEmbedding和物品向量ItemEmbedding進行拼接,然后輸入多層FC層。由于<User,Item>的拼接操作后過FC層,所以這些特征經過了充分的非線性組合,最后的輸出再使用sigmoid函數。
原論文里模型效果如下:
Dot Product vs. MLP
本文有意思的地方是作者提出了一個疑問,MLP模型真的優于點積嗎?
基于以上的介紹,我們會有一種潛在的認知,使用MLP替換點積可以增強模型的表達能力,畢竟MLP具有擬合任意函數的能力。在《Neural Collaborative Filtering vs. Matrix Factorization Revisited》論文中,完成了對NCF實驗的復現,同時在相同數據集上,采用留一法,保留每個用戶最后一次點擊作為驗證。并且通過HR和NDCG評估點積Dot Product和NCF的效果如下:
通過圖中的效果,是不是對原有的認知有所懷疑了。當然無論是原文中對比試驗也好,還是本文想表達的,都不是否定Deep Learning推薦領域所發揮的積極作用。作為一名深度學習煉丹者,思考對比背后的一些意義反而更加有意思。原文中對調參部分的是較為詳盡的,也是非常值得學習的,作者介紹了自己的煉丹過程,如何為矩陣分解(MF)模型搜索最優參數。
矩陣分解煉丹過程
論文原文
From our past experience with matrix factorization models, if the other hyperparameters are chosen properly, then the larger the embedding dimension the better the quality – our experiments Figure 2 confirm this. For the other hyperparameters: learning rate and number of training epochs influence the convergence curves. Usually, the lower the learning rate, the better the quality but also the more epochs are needed. We set a computational budget of up to 256 epochs and search for the learning rate within this setting. In the first hyperparameter pass, we search a coarse grid of learning rates η ∈ {0.001, 0.003, 0.01} and number of negatives m = {4, 8, 16} while fixing the regularization to λ = 0. Then we did a search for regularization in {0.001, 0.003, 0.01} around the promising candidates. To speed up the search, these first coarse passes were done with 128 epochs and a fixed dimension of d = 64 (Movielens) and d = 128 (Pinterest). We did further refinements around the most promising values of learning rate, number of negatives and regularization using d = 128 and 256 epochs.
Throughout the experiments we initialize embeddings from a Gaussian distribution with standard deviation of 0.1; we tested some variation of the standard deviation but did not see much effect. The final hyperparameters for Movielens are: learning rate η = 0.002, number of negatives m = 8, regularization λ = 0.005, number of epochs 256. For Pinterest: learning rate η = 0.007, number of negative samples m = 10, regularization λ = 0.01, number of epochs 256.
煉丹筆記
(1)訓練集、驗證集、測試集劃分,用戶最后一次點擊作為測試集,倒數第二次點擊作為驗證集正樣本。
(2)超參調整。可調參數列表:
| 訓練輪數 |
| 負采樣率 |
| SGD學習率 |
| Embedding維度 |
| 初始化模型系數的(標準正態分布的)標準差 |
| 正則化系數 |
(3)利用Grid Search調整學習率η ∈ {0.001, 0.003, 0.01}和負采樣率m={4,8,16}進行第一層結果粗粒度選擇,然后選擇較優的結果對λ = {0.001, 0.003, 0.01}進行第二層結果進行細粒度選擇。于此同時固定epochs、embedding維數、標準差。
(4)對訓練輪數,負采樣率等進行調優;
參考文獻
1、《Neural Collaborative Filtering vs. Matrix Factorization Revisited》
https://arxiv.org/abs/2005.09683
2、復現代碼https://github.com/hexiangnan/neural_collaborative_filtering
后續我們會篩選出在我們實踐中帶來提升或者啟發的工作進行細致的解讀與探討,歡迎關注我們的公眾號,也歡迎多交流,我是三品煉丹師: 一元。
作者:一元
公眾號:煉丹筆記
煉丹筆記推薦算法煉丹筆記:序列化推薦系統
推薦算法煉丹筆記:電商搜索推薦業務詞匯表
推薦算法煉丹筆記:推薦系統采樣評估指標及線上線下一致性問題
推薦算法煉丹筆記:CTR點擊率預估系列入門手冊
推薦算法煉丹筆記:科學調參在模型優化中的意義
推薦算法煉丹筆記:如何讓你的推薦系統具有可解釋性?
2020年推薦系統工程師煉丹手冊
總結
以上是生活随笔為你收集整理的推荐算法炼丹笔记:科学调参在模型优化中的意义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020年推荐系统工程师炼丹手册
- 下一篇: 推荐算法炼丹笔记:如何让你的推荐系统具有