本文將介紹常見推薦算法的升級之路,從最初的LR到業界常用的DIN、DIEN等模型。
1. 線性模型
1.1 邏輯迴歸LR
簡介
邏輯迴歸算法是一種監督學習分類算法,對特徵進行線性加權求和,通過Sigmoid變換將結果映射到0-1。
模型結構
假設n個特徵爲線性關係
下面,選取一個函數將結果映射爲0到1,由於階躍函數性質不好,不可導求解過於複雜,選取Sigmoid函數
因此,求得預測值爲y的概率表達式
建立n次預測值爲y的似然估計函數
對應極大對數似然估計函數爲
最後,損失函數表徵預測值與真實值之間的差異程度,極大似然估計函數刻畫的是預測值儘可能逼近y,損失函數可以取爲最大似然估計函數的相反數,其次除以m這一因子並不改變最終求導極值結果,通過除以m可以得到平均損失值,避免樣本數量對於損失值的影響。
結構風險函數 = 經驗風險項 + 正則項 其中損失函數爲經驗風險項的重要組成部分
採取隨機梯度下降更新模型,梯度如下
迭代公式如下
優點
- 實現簡單,可解釋性強、計算速度快、存儲量小;
- 融入L0、L1、L2正則項,解決過擬合手段豐富,適用於高維稀疏特徵;
- 擴展性強,適用於Online Learning模型增量更新;
缺點
- 特徵工程較複雜,依賴人工構造特徵;
- 難以學習特徵之間相互關係,數據必須線性可分;
- 特徵空間較大時,性能較差;
參考文獻
https://blog.csdn.net/yz930618/article/details/104363705
1.2 非線性模型FM、FFM
簡介
因子分解機模型爲了解決數據稀疏的情況下,特徵組合的問題。
模型結構
爲了表述特徵間的相關性,採用多項式模型。在線性模型的基礎上,加入兩兩特徵的組合項。
數據稀疏性普遍存在的實際應用場景中,兩兩特徵同時不爲0的數據較少,導致二階特徵係數的訓練變的十分困難。
爲了克服模型無法在稀疏數據場景下學習二階特徵係數,針對樣本的第i維特徵分量,引入輔助隱向量
其中k爲超參數,表示每個特徵對應一個k維隱向量,則wij可表示爲
因此,將FM模型公式改爲
此時,模型複雜度爲O(n2),下面通過矩陣分解優化計算複雜度。
首先,每個特徵x對應的隱向量組成的矩陣如下
FM模型的二階特徵係數組成的方陣W如下
此時,矩陣W的非對角元素即爲FM的二階特徵係數,利用這點可以對二階項係數展開
(第一個等式含義:由於W爲對稱矩陣,而二階項係數爲W的非對角線元素,因此二階項係數等於W的所有元素之和減去對角線元素之和再除以2)
則FM模型公式如下,使得模型複雜度降低到了線性級別
下面,構建損失函數
其中,對於迴歸問題,損失函數可以取最小平方誤差函數,對於分類問題,損失函數可以取logit邏輯函數。
採取梯度下降更新模型,偏導公式爲
其中
對於FM模型而言,優化的參數爲:
則FM模型方程對各個參數的偏導數爲:
FM算法步驟如下
優點
- 對一階和二階特徵的都具有較好的學習能力;
- 訓練和預測的時間複雜度是線性的;
- 隱向量常用於DNN的embedding vector;
缺點
- 由於高階特徵具有較高複雜度,僅學習到二階特徵;
- 特徵與不同類型特徵只用同一隱向量表示;
- 在實際預測任務中,特徵往往包含多種id,如果不同id組合時採用不同的隱向量,那麼這就是 FFM(Field Factorization Machine)
參考文獻
https://www.jianshu.com/p/8d792422e582
https://www.cnblogs.com/wkang/p/9588360.html
樹模型GBDT、XGboost、LightGbm
模型融合LR+GBDT、FM+GBDT
深度模型DeepFM、XDeepFM
寬深模型Wide And Deep
興趣網絡DIN、DIEN