本系列的第六篇,一起讀論文~
本人才疏學淺,不足之處歡迎大家指出和交流。
今天要分享的是另一個Deep模型NFM(串行結構)。NFM也是用FM+DNN來對問題建模的,相比於之前提到的Wide&Deep(Google)、DeepFM(華為+哈工大)、PNN(上交)和之后會分享的的DCN(Google)、DIN(阿里)等,NFM有什么優點呢,下面就走進模型我們一起來看看吧。
原文:Neural Factorization Machines for Sparse Predictive Analytics
地址:https://arxiv.org/pdf/1708.05027.pdf
1、問題由來
老生常談,再聊數據特點:對於廣告中的大量的類別特征,特征組合也是非常多的。傳統的做法是通過人工特征工程或者利用決策樹來進行特征選擇,選擇出比較重要的特征。但是這樣的做法都有一個缺點,就是:無法學習訓練集中沒有出現的特征組合。
最近幾年,Embedding-based方法開始成為主流,通過把高維稀疏的輸入_embed_到低維度的稠密的隱向量空間中,模型可以學習到訓練集中沒有出現過的特征組合。
Embedding-based大致可以分為兩類:
1.factorization machine-based linear models
2.neural network-based non-linear models
(具體就不再展開了)
FM:以線性的方式學習二階特征交互,對於捕獲現實數據非線性和復雜的內在結構表達力不夠;
深度網絡:例如Wide&Deep 和DeepCross,簡單地拼接特征embedding向量不會考慮任何的特征之間的交互, 但是能夠學習特征交互的非線性層的深層網絡結構又很難訓練優化;
而NFM摒棄了直接把嵌入向量拼接輸入到神經網絡的做法,在嵌入層之后增加了_Bi-Interaction_操作來對二階組合特征進行建模。這使得low level的輸入表達的信息更加的豐富,極大的提高了后面隱藏層學習高階非線性組合特征的能力。
2、NFM
2.1 NFM Model
與FM(因式分解機)相似,NFM使用實值特征向量。給定一個稀疏向量x∈Rn作為輸入,其中特征值為xi=0表示第i個特征不存在,NFM預估的目標為:
2.1.1 Embedding Layer
和其他的DNN模型處理稀疏輸入一樣,Embedding將輸入轉換到低維度的稠密的嵌入空間中進行處理。這里做稍微不同的處理是,使用原始的特征值乘以Embedding vector,使得模型也可以處理real valued feature。
2.1.2 Bi-Interaction Layer
Bi是Bi-linear的縮寫,這一層其實是一個pooling層操作,它把很多個向量轉換成一個向量,形式化如下:
注:Bi-Interaction並沒有引入額外的參數,而且它的計算復雜度也是線性的,參考FM的優化方法,化簡如下:
2.1.3 Hidden Layer
這個跟其他的模型基本一樣,堆積隱藏層以期來學習高階組合特征。一般選用constant的效果要好一些。
2.1.4 Prediction Layer
最后一層隱藏層Zl到輸出層最后預測結果形式化如下:
2.2 NFM vs Wide&Deep、DeepCross
實質:
NFM最重要的區別就在於Bi-Interaction Layer。Wide&Deep和DeepCross都是用拼接操作(concatenation)替換了Bi-Interaction。
Concatenation操作的最大缺點就是它並沒有考慮任何的特征組合信息,所以就全部依賴后面的MLP去學習特征組合,但是很不幸,MLP的學習優化非常困難。
使用Bi-Interaction考慮到了二階特征組合,使得輸入的表示包含更多的信息,減輕了后面MLP部分的學習壓力,所以可以用更簡單的模型(實驗中只一層隱層),取得更好的效果。
3、總結(具體的對比實驗和實現細節等請參閱原論文)
NFM主要的特點如下:
1. NFM核心就是在NN中引入了Bilinear Interaction(Bi-Interaction) pooling操作。基於此,NN可以在low level就學習到包含更多信息的組合特征。
2. 通過deepen FM來學習高階的非線性的組合特征。
3. NFM相比於上面提到的DNN模型,模型結構更淺、更簡單(shallower structure),但是性能更好,訓練和調整參數更加容易。
所以,依舊是FM+DNN的組合套路,不同之處在於如何處理Embedding向量,這也是各個模型重點關注的地方。現在來看業界就如何用DNN來處理高維稀疏的數據並沒有一個統一普適的方法,依舊在摸索中。
實現DeepFM的一個Demo,感興趣的童鞋可以看下我的github。