在ctr預估中,為了解決稀疏特徵的問題,學者們提出了fm模型來建模特徵之間的互動關係。但是fm模型只能表達特徵之間兩兩組合之間的關係,無法建模兩個特徵之間深層次的關係或者說多個特徵之間的互動關係,因此學者們通過deep network來建模更高階的特徵之間的關係。因此 fm和深度網路dnn的結合也就成為了ctr預估問題中主流的方法。有關fm和dnn的結合有兩種主流的方法,並行結構和序列結構。兩種結構的理解以及實現如下表所示:
圖1、兩種結構的理解
今天介紹的nfm模型(neural factorization machine),便是序列結構中一種較為簡單的網路模型。
我們首先來回顧一下fm模型,fm模型用n個隱變數來刻畫特徵之間的互動關係。這裡要強調的一點是,n是特徵的總數,是one-hot展開之後的,比如有三組特徵,兩個連續特徵,乙個離散特徵有5個取值,那麼n=7而不是n=3.
y (x
)=w0
+∑i=
1nwi
xi+∑
i=1n
∑j=i+1n
,vj>xi
xjy(x)=w_+ \sum_^n w_ x_+ \sum_^ \sum_^n x_ x_
y(x)=w
0+∑
i=1n
wi
xi+
∑i=1
n∑j
=i+1
n,vj
>xi
xj
可以看到,不考慮最外層的求和,我們可以得到乙個k維的向量。對於nfm模型,目標值的**公式變為:
y ^n
fm(x
)=w0
+∑i=
1nwi
xi+f
(x)\hat_=w_+ \sum_^n w_ x_+ f(x)
y^nfm
(x)
=w0
+∑i=
1nw
ixi
+f(
x)其中,f(x)是用來建模特徵之間互動關係的多層前饋神經網路模組,架構圖如下所示:
圖2、架構圖
mbedding layer和我們之間幾個網路是一樣的,embedding 得到的vector其實就是我們在fm中要學習的隱變數v。
bi-interaction layer名字挺高大上的,bi是bi-linear的縮寫,這一層其實是乙個pooling層操作,它把很多個向量轉換成乙個向量,,其實它就是計算fm中的二次項的過程,因此得到的向量維度就是我們的embedding的維度。最終的結果是:
f bi
(vx)
=12[
(∑i=
1nxi
vi)2
−∑i=
1n(x
ivi)
2]f_ (v_ )=\frac [(\sum_^n x_ v_ )^2- \sum_^n (x_ v_)^2]
fbi(v
x)=
21[
(∑i=
1nx
ivi
)2−
∑i=1
n(x
ivi
)2]
hidden layers就是我們的dnn部分,將bi-interaction layer得到的結果接入多層的神經網路進行訓練,從而捕捉到特徵之間複雜的非線性關係。
在進行多層訓練之後,將最後一層的輸出求和同時加上一次項和偏置項,就得到了我們的**輸出:
y ^n
fm(x
)=w0
+∑i=
1nwi
xi+h
tσl(
wl(.
..σ1
(w1f
bi(v
x)+b
1)..
.)+b
l)\hat_=w_+ \sum_^n w_ x_+ h^t \sigma _l(w_(...\sigma_1(w_1f_(v_x)+b_1)...)+b_l )
y^nfm
(x)
=w0
+∑i=
1nw
ixi
+ht
σl(
wl(
...σ
1(w
1fb
i(v
x)+
b1)
...)
+bl
) nfm模型將fm與神經網路結合以提公升fm捕捉特徵間多階互動資訊的能力。根據**中實驗結果,nfm的**準確度相較fm有明顯提公升,並且與現有的並行神經網路模型相比,複雜度更低。
nfm本質上還是基於fm,fm會讓乙個特徵固定乙個特定的向量,當這個特徵與其他特徵做交叉時,都是用同樣的向量去做計算。這個是很不合理的,因為不同的特徵之間的交叉,重要程度是不一樣的。因此,學者們提出了afm模型(attentional factorization machines),將attention機制加入到我們的模型中。
參考文獻:
**:neural factorization machines for sparse predictive analytics
推薦好文: 深度學習在ctr預估中的應用
深度學習推薦模型 NFM
知乎 推薦nfm fm對於特徵的組合僅限於二階,缺少對特徵之間深層次關係的抽取。因此,nfm提出來就是在fm的基礎上引入神經網路,實現對特徵的深層次抽取。與fm 因式分解機 相似,nfm使用實值特徵向量。給定乙個稀疏向量x rn作為輸入,其中特徵值為xi 0表示第i個特徵不存在,nfm預估的目標為 ...
推薦演算法 NFM
fm對於特徵的組合僅限於二階,缺少對特徵之間深層次關係的抽取。因此,nfm提出來就是在fm的基礎上引入神經網路,實現對特徵的深層次抽取。nfm的模型結構圖如下所示 模型的結構如上圖所示,首先輸入就是離散化的特徵,然後再進行embedding操作,獲得每乙個特徵的向量表示。接著就到了bi intera...
推薦系統 基於itemCF推薦模型
雖然目前工業界很少再直接通過itemcf來進行推薦,但可以從這個演算法中體會到這種集體智慧型的應用。充分利用集體智慧型,即在大量的人群的行為和資料集中收集答案,以幫助我們對整個人群得到統計意義上的結論,推薦的個性化程度高。基於以下兩個出發點 1 興趣相近的使用者可能會對同樣的東西感興趣 2 使用者可...