AFM結(jié)合了attention和FM,今天先來學(xué)習(xí)一下因子分解機(jī)和注意力機(jī)制的原理
1、因子分解機(jī)
在簡單的線性回歸模型中,得出的回歸方程中要求Xi與Xj不能有相關(guān)性,否則會(huì)存在共線性問題影響回歸方程。
*對(duì)于一個(gè)二階特征組合
因子分解機(jī)的回歸值表示如下,W i,j 可以視作Xi與Xj的相關(guān)系數(shù),如此一來該方程就包含了各個(gè)X之間的相關(guān)性,減少了尋找每個(gè)特征之間聯(lián)系的步驟。

以此作為基本思想,將第三項(xiàng)的W i,j? 替換為兩個(gè)向量的乘積? ViVj,進(jìn)而緩解了稀疏特征對(duì)模型求解的困難。
表示如下,這就是所謂因子分解。
(fm模型用n個(gè)隱向量 來刻畫特征之間 的交互關(guān)系,這里要強(qiáng)調(diào)的一點(diǎn)是,n是特征的總數(shù),是one-hot展開之后的,比如,三組特征,兩個(gè)連續(xù)特征,一個(gè)離散特征有5個(gè)取值,那么n=7,而不是 n=3;)


更近一步,fig3可以改寫為下式,并有效降低了時(shí)間復(fù)雜度

于是二階的FM表達(dá)式為

模型更新梯度計(jì)算,對(duì)各參數(shù)求導(dǎo) W0、Wi、V i,f,得

2、注意力機(jī)制
注意力機(jī)制最早被應(yīng)用于機(jī)器翻譯任務(wù),在中間添加了一層attention,其原理是在翻譯一個(gè)模塊時(shí),前一模塊的q與Encoder的輸入值進(jìn)行Attention計(jì)算,得到一個(gè)當(dāng)前時(shí)刻的context。(我的理解:利用前一時(shí)刻的輸出作為條件與Encode的輸入進(jìn)行計(jì)算,選擇可能性最大的模塊作為輸出,softmax用于打分和分類)


s(q,h)為打分函數(shù)
3、AFM
AFM的框架模型如下.attention機(jī)制作用在向量交叉之前,以賦予各交叉項(xiàng)權(quán)重 aij


其中h W b 都是模型參數(shù)