0. 寫(xiě)在前面
前面我們介紹了FM系列的三大模型,包括FM模型,DeepFM以及NFM。DeepFM與NFM模型都對(duì)FM做了不同程度的優(yōu)化,重點(diǎn)都是結(jié)合神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)特征的高階組合。今天我們來(lái)介紹將attention機(jī)制應(yīng)用于FM模型的AFM模型(Attentional Factorization Machine)。
個(gè)人心得:
- 特征組合的重要性會(huì)隨預(yù)測(cè)目標(biāo)的改變而發(fā)生變化
- attention機(jī)制用于學(xué)習(xí)特征交叉前的不同權(quán)重
論文地址:
https://www.ijcai.org/Proceedings/2017/0435.pdf
1. 背景
對(duì)于傳統(tǒng)的FM模型以及DeepFM、NFM模型,二階交叉項(xiàng)中特征向量的系數(shù)均為1,然而,在某些推薦場(chǎng)景下,不同的二階交叉特征對(duì)預(yù)測(cè)當(dāng)前目標(biāo)的權(quán)重是不同的。為了讓模型能夠?qū)W習(xí)不同二級(jí)交叉特征項(xiàng)的權(quán)重,AFM引入了Attention機(jī)制。
實(shí)際上,AFM仍然分為shallow-part和dnn-part,shallow-part與其他模型相同,這里就不重復(fù)說(shuō)明了。下面,我們將從整體模型架構(gòu),pair-wise interation layer, Attention layer三部分對(duì)AFM模型的dnn部分進(jìn)行介紹。
2. 整體架構(gòu)
AFM模型架構(gòu)如圖所示。模型整體包含五部分,分別為稀疏特征輸入、embedding layer、pair-wise interaction layer、attention-based pooling layer, predict layer. 其中,輸入層接受稀疏特征傳入,經(jīng)embedding后,得到每個(gè)特征域的embedding特征向量,向量維度均保持一致。

前兩步是FM系列神經(jīng)網(wǎng)絡(luò)推薦模型的常規(guī)操作,沒(méi)有做任何特殊處理。每個(gè)embedding特征向量會(huì)經(jīng)過(guò)一層pair-wise interaction layer,進(jìn)行特征向量?jī)蓛山徊娴牟僮?,獲得二階特征項(xiàng)。同時(shí),將每個(gè)二階特征向量送入Attention layer,輸出該特征向量的權(quán)重值,并通過(guò)sum-pooling加權(quán)得到一個(gè)綜合所有特征信息的向量,然后經(jīng)過(guò)全連接層輸出預(yù)測(cè)結(jié)果。
3. pair-wise interaction layer
我們先來(lái)看看這一層的實(shí)現(xiàn)方式,其數(shù)學(xué)表達(dá)式如下式所示。

其中,表示特征域?qū)?yīng)的embedding向量,
表示特征取值,
表示element-wise product操作。這樣一看,是不是和NFM中的bi-interaction很類(lèi)似呢。pair-wise interaction layer通過(guò)將特征embedding向量進(jìn)行兩兩交叉,得到二階特征項(xiàng)。同時(shí),二階特征項(xiàng)個(gè)數(shù)為
,其中
為樣本特征域個(gè)數(shù)。
4. attention-based pooling layer
既然設(shè)計(jì)者將模型稱之為attention-fm,那么attention機(jī)制的引入一定是論文最大的亮點(diǎn)。下面我們一起來(lái)看下AFM中的attention-based pooling layer是如何設(shè)計(jì)及實(shí)現(xiàn)的。
為了能夠估計(jì)二階向量的權(quán)重,一個(gè)比較直接的方法就是通過(guò)最小化loss函數(shù)去學(xué)習(xí)其值,雖然看起來(lái)是可行的,但是這又會(huì)碰到之前的問(wèn)題:當(dāng)某個(gè)交互特征沒(méi)有出現(xiàn)在樣本中時(shí),就無(wú)法計(jì)算得到某個(gè)交互特征的attention分?jǐn)?shù)了。為了解決這個(gè)泛化能力方面的問(wèn)題,AFM使用MLP網(wǎng)絡(luò)去參數(shù)化這個(gè)attention分?jǐn)?shù),該MLP網(wǎng)絡(luò)稱之為attention layer。Attention layer的數(shù)學(xué)表達(dá)式如下所示。

可以看出,attention layer的輸入為每一個(gè)二階特征向量,經(jīng)過(guò)一層MLP后,送入softmax歸一化為每個(gè)二階特征向量的權(quán)重。其中,網(wǎng)絡(luò)的激活函數(shù)使用的是常用的ReLU,隱層神經(jīng)元個(gè)數(shù)作為attention layer的超參數(shù),需要經(jīng)網(wǎng)絡(luò)調(diào)優(yōu)得到。得到每個(gè)二階特征向量的權(quán)重后,AFM通過(guò)對(duì)所有二級(jí)特征向量進(jìn)行加權(quán)sum-pooling的方式,得到綜合所有特征信息的向量,并送入全連接層,經(jīng)softmax得到最終預(yù)測(cè)結(jié)果。

5. 總結(jié)
AFM在FM模型的基礎(chǔ)上,引入了attention機(jī)制,使模型能夠有效學(xué)習(xí)二階特征項(xiàng)的權(quán)重,這是DeepFM、NFM等模型均未能考慮到的。