深度CTR之AFM:基於Attention網絡的FM模型

解決的問題

該模型於2017年提出,由浙大與新加坡國立大學合作推出。
文章題目-《Attentional Factorization Machines:Learning the Weight of Feature Interactions via Attention Networks》

問題與FM算法有關,FM算法使用了二階特徵來提升線性模型的性能,但是FM在使用所有二階交叉特徵時,默認每個交叉特徵的權重是一樣的,都是1,但實際上每個交叉特徵的用處大小並不是相同的,而且有些沒用的交互特徵可能會給模型的學習帶來負面影響,阻礙了模型性能的提升。因此,paper中提出的新模型的核心就是用於區分不同交互特徵的重要性,而不是都是一樣的重要性,也就是文章提出的新模型AFM。在兩個真實世界數據集上,AFM模型體現出了其有效性。其中在迴歸任務上相比於FM模型提升顯著,並且相比於W&D和Deep&Cross模型效果更好,且模型結構更加簡單、參數數量更少。

介紹

這部分一般是 SOTA模型的回顧和文章中新模型的提出

監督學習是機器學習和數據挖掘中一種非常基礎的任務,不管是迴歸任務的實值預測還是分類任務的分類標籤預測,都是需要基於給定的特徵輸入來學習一個預測器函數。對預測器來說,提供兩個特徵之間的相互關係的可解釋性是非常重要的。

在學習器的構建過程中,有這樣的一個roadmap:

  1. (LR模型)普通的簡單學習模型,例如邏輯迴歸LR,其缺點是無法學習不同特徵之間的聯繫
  2. (W&D中Wide模塊,即在LR中加入人工特徵工程的交互特徵)提出了polynomial regression(PR)結構模型,使用交叉結構的特徵,模型也可以學習出來交叉特徵的權重值,例如W&D模型結構中的Wide模塊,其缺點是對於一些稀疏特徵只有極少的交叉特徵在樣本中存在,這無法保證模型能夠學習到真實的特徵權重,而且這對於樣本中未出現的交叉特徵是無法學習的
  3. (FMs模型)爲了解決PR結構模型的無法泛化的缺點,FMs被提出來,用於將交叉特徵權重參數化爲特徵embedding向量的內積,通過學習每個特徵的embedding向量表達,FM可以評估計任何交叉特徵的權重,這種泛化性能使得FMs可以用於很多類型的任務,其缺點是FMs同等對待所有交互特徵,這與真實世界中有的特徵可回憶發揮作用,而有的特徵無法對預測結果產生有效影響的事實是相悖的,因此FM缺乏區分不同交互特徵的重要性的能力,這有時候導致只能產生次優解
  4. (本paper的AFM模型)爲了解決FM模型無法區分交互特徵的重要性的缺點,文章中提出的AFM模型中引入了attention 機制—這可以使得不同的交互特徵對預測的結果產生不同重要性程度的影響,更重要的是,交互特徵的重要性大小可以不用人類的領域知識就能從數據中自動學習出來

AFM在內容方面和個性化推薦方面的兩個數據集上,進行的試驗表明在FM上結合attention的使用時具有兩方面的優勢:

  1. 學習的模型效果更好;
  2. 深入洞察哪個特徵可以對模型產生更重要的作用。
    AFM能夠極大地增強了FM模型的可解釋性和透明度,這允許我們對模型涉及的行爲進行更深入的分析。

FM模型

來簡單回顧下FM模型。

首先看下FM的預測公式:
y^(x):=w0+i=1nwixi+i=1nj=i+1n<vi,vj>xixj(1) \hat y(x) := w_0 + \sum_{i=1}^{n} w_{i}x_{i} + \sum_{i=1}^{n} \sum_{j=i+1}^{n} <v_{i}, v_{j}>x_{i}x_{j} \qquad (1)
其中需要學習的參數爲:
w0R,wRn,VRn×k(2) w_{0}\in \mathbb{R}, \qquad w\in \mathbb{R}^n, \qquad V\in \mathbb{R}^{n\times k} \qquad (2)
公式(1)中的⟨·, ·⟩表示兩個k維向量的點積:
<vi,vj>:=f=1kvi,fvj,f(3) <v_{i}, v_{j}> := \sum_{f=1}^{k} v_{i, f} \cdot v_{j, f} \qquad (3)
其中V的第i行vi表示第i個特徵的k維向量表示,而k∈Z+是一個表示因子分解的維數的超參數。

在2階FM模型中,可以表達出所有單特徵以及變量之間二階交互特徵,具體參數如下:

  1. w0表示全局的偏差;
  2. wi表示第i個特徵的強度;
  3. wˆi,j := ⟨vi , vj ⟩ 表示第i個特徵和第j個特徵之間的交互,在實際參數學習中不是直接學習交互特徵的權重參數wˆi,j的,而是通過學習因式分解參數來學習交互特徵的參數。

AFM

模型

在這裏插入圖片描述

爲簡單起見,我們在圖中省略了線性部分。輸入層和embedding層與FM模型是一樣的,其中對於輸入特徵都採取了稀疏表示,即將所有的非零特徵都嵌入到dense特徵。

文章的核心貢獻在於下面將要介紹的 pair-wise 交互層、attention-based 池化層。

Pair-wise 交互層

用X表示特徵向量的非零特徵的集合。
fPI(ε)={(vivj)xixj}(i,j)R(4) f_{PI}(\varepsilon) = \{(v_i \odot v_j)x_i x_j \}_{(i,j)\in \mathcal{R}} \qquad (4)
Rx={(i,j)}iχ,jχ,j>i(5) \mathcal{R_x} = \{(i, j)\}_{i\in \chi,j\in \chi,j>i} \qquad (5)
其中,⊙表示兩個向量的element-wise內積。這看起來其實跟FM無異。因此定義Pair-wise 交互層的目的就是爲了在神經網絡中表達FM的計算邏輯

y^=pT(i,j)Rx{(vivj)xixj}+b(6) \hat y = p^T \sum_{(i,j)\in \mathcal{R}_x}\{(v_i \odot v_j)x_i x_j \} + b \qquad (6)
其中
pRk,bR(7) p \in \mathbb{R}^k, \qquad b \in \mathbb{R} \qquad (7)
分別表示預測網絡的權重值和偏差值。對於將p置爲值全爲1的向量以及b=0,那麼公式(6)則可以完全復現FM模型的計算公式。

文章中還特別給作者團隊的另一篇文章 Bilinear Interaction pooling operation 打了個廣告。

Attention-based 池化層

自從attention機制被引入到神經網絡建模中以來,其在推薦、信息檢索、計算機視覺等很多任務中都獲得了廣泛的應用。這個idea是指在將他們壓縮成一個單獨的表示時,允許不同的部分貢獻不同大小。由於FM缺點的影響,我們通過對交互向量計算加權和,來將attention機制應用於特徵交互。

fAtt(fPI(ε))=a(i,j)Rxaij(vivj)xixj(8) f_{Att}(f_{PI}(\varepsilon)) = \sum_{a_(i,j)\in \mathcal{R}_x} a_{ij} (v_i \odot v_j)x_i x_j \qquad (8)
其中,aij表示交互特徵的wij的注意力分數,也就是表示wij的在預測目標值時的重要性程度。

爲了能夠估計aij,一個比較直接的方法就是通過最小化loss函數去學習其值,雖然看起來是可行的,但是這又會碰到之前的問題:當某個交互特徵沒有出現在樣本中時,就沒法某個交互特徵的attention分數了。爲了解決這個泛化能力方面的問題,我們使用MLP網絡去參數化這個attention分數,該MLP網絡稱之爲attention network。attention network的輸入是兩個特徵的交互向量,當然這裏是已經對交互信息進行了嵌入編碼了,最後attention network定義如下:
aij=hTReLU(W(vivj)xixj+b)(9) a_{ij}^{'} = h^T ReLU(W(v_i \odot v_j)x_i x_j + b) \qquad (9)
aij=eaij(i,j)Rxeaij(10) a_{ij} = \frac{e^{a_{ij}^{'}}}{\sum_{(i,j)\in \mathcal{R}_x}e^{a_{ij}^{'}}} \qquad (10)
WRtk,bRt,hRt(11) W \in \mathbb{R}^{t * k }, b \in \mathbb{R}^t, h \in \mathbb{R}^t \qquad (11)
其中,w、b、h都是模型參數,t表示attention network的隱層的大小,我們將t稱爲attention factor(後面的實驗環節中,t和embedding size都設置爲了256),attention分數是通過softmax函數進行歸一化的,這也是一個常規操作。我們在激活函數上選擇了ReLU函數,效果也比較好。

Attention-based 池化層的輸出是一個k維的向量,其在embedding空間中通過區分出他們各自的重要性,來壓縮了所有的特徵交互,我們將這些映射到最終的預測結果上面,即AFM模型的完整公式如下:
y^AFM(x)=w0+i=1nwixi+pTi=1nj=i+1naij(vivj)xixj(12) \hat y_{AFM}(x) = w_0 + \sum_{i=1}^{n}w_i x_i + p^T \sum_{i=1}^{n} \sum_{j=i+1}^{n} a_{ij}(v_{i} \odot v_{j})x_{i}x_{j} \qquad (12)
其中,aij在公式(10)已經定義,模型參數爲:
={w0,{wi}i=1n,{vi}i=1n,p,W,b,h} \circleddash = \{w_0, \{w_i\}_{i=1}^{n}, \{v_i\}_{i=1}^{n}, p, W, b, h \}

學習

AFM模型可以用於迴歸、分類、排序等任務中,但是對於不同的學習任務需要定製不同的目標函數,對於迴歸任務,目標label是一個實值,一個比較常見的額loss函數就是mse函數,而對於分類和排序任務可以使用常見的logloss函數,在這篇文章中,我們使用聚焦在使用mse函數的迴歸任務上。

過擬合的預防

過擬合問題本身就不多說了。主要提的是,因爲AFM模型相比於FM模型具有更強的表達能力,因此在訓練數據上有可能更容易過擬合,文章中主要考慮了dropout和L2正則這兩種防止過擬合的方式。

dropout方式是通過防止神經元之間的共現性從而防止過擬合。由於AFM模型中會學習所有的特徵之間的二階交互特徵,因此更加容易導致模型學習特徵之間的共現性從而更容易導致過擬合,因此在pair-wise交互層使用了dropout方法來避免共適性。

對於AFM模型中的attention network,它是一個單層的MLP網絡,這裏使用L2正則化來防止過擬合,對於attention network,不選擇dropout防止過擬合。

因此我們實際需要優化的目標函數爲:
L=xτ(y^AFMy(x))2+λw2(13) L = \sum_{x\in \tau}(\hat y_{AFM} - y(x))^2 + \lambda ||w||^2 \qquad (13)

Related Work

文章把前人的相關工作介紹部分放到了第4部分,也是少見的,不過不影響什麼。

對於具有很多稀疏特徵的任務中,如何建模特徵之間的交互關係是十分重要的。FMs在相關的任務中發揮了很重要的作用,但是相比於MF(矩陣分解)模型的只能建模兩個實體之間的交互作用FM模可以作爲更一般的學習器去建模任意數量的實體之間的交互性

通過指定特定的輸入特徵向量,FM模型可以囊括很多不同的分解模型,包括 MF、parallel factor analysis、SVD++等。而FM本身是被認爲是最有效的線性embedding算法。

  1. FM
  2. neural FM:在神經網絡中加深FM的深度從而學習到更高階的特徵交互關係;
  3. FFM:將一個特徵的多個embedding向量和其他不同閾特徵的交互關係區別開來;
  4. GBFM:使用梯度提升算法選擇優秀的特徵,並且只建模優秀特徵之間的交互關係;
  5. Wide&Deep
  6. Deep&Cross
  7. AFM

Experiments

Experimental Settings

試驗數據集爲Frappe和MovieLens這兩個,Frappe是用於上下文感知的推薦,MovieLens是用於用戶電影評分的推薦。

評估方式:Frappe和MovieLens中已有的日誌作爲正樣本1,對每條日誌隨機配對兩條負樣本-1。70% for training, 20% for validation, and 10% for testing。

用於對比的算法模型爲:
LibFM:FM的C++實現
HOFM:高階交互特徵的Tensorflow實現,階數設置爲3,Movielens只有user、item、tag這三種類型的預測變量
Wide&Deep:省略
DeepCross:省略

其中需要特別提到的是:Wide&Deep、DeepCross和AFM模型中,使用FM進行特徵embedding的預訓練相比於特徵embedding的隨機初始化方式,能得到更小的RMSE指標,因此使用embedding預訓練的方式。

超參數設置

在AFM模型中,pair-wise交互層中設置了dropout正則化的方式,attention網絡層設置了L2正則化的方式。

其他見paper中,也講解了對FM和LibFm的實驗方式。

Attention網絡層的影響

paper需要選擇合適的attention factor值t,總穩重給出的實驗結果可以看出AFM模型隨着不同的attention factor值,模型的效果比較穩定。當attention factor值t=1時,attention網絡層就退化成爲一個線性迴歸模型。AFM模型比較穩定,相比於FM模型提升明顯,這也證明了AFM涉及的合理性,即其通過評估基於交互向量的特徵交互的重要性分數來構成AFM模型的關鍵設計思想。
在這裏插入圖片描述

下圖也顯示出了AFM模型相比於FM模型的更快的收斂速度和在測試集上更好的模型效果。
在這裏插入圖片描述

微觀分析

主要提到了文章通過AFM的網絡結構設計,實現了交互特徵的以attntion分數作爲可解釋性的指標。在這一部分,paper也通過實驗,計算並展示了每個特徵交互的attention分數和交互分數,可以從表1中看到 attention_score * interaction_score的結果作爲一個交互特徵的重要性,相比而言,FM模型對每個交互特徵的attention分數是完全一樣的(表格中FM對應的row中的0.33的值)。在FM基礎上引入attention網絡,可以加強Item-Tag交互特徵的重要性,因此使得預測結果的誤差更小(三個測試用例的label都爲1)
在這裏插入圖片描述

模型效果對比

在這裏插入圖片描述
文章對幾個模型在模型效果以及模型容量上進行對比,比較容易從表格中得出下面的結論:

  1. AFM模型的效果最好,儘管AFM模型是一個淺層模型,但其具有優於深度學習方法的效果;
  2. HOFM算法模型相比於FM模型,效果有輕微的提升,但由於HOFM使用一組單獨的embedding集合來建模每一階的特徵交互,導致模型容量幾乎翻倍,因此性價比不高。但是這也給後續的研究提出了新的研究方向-使用更高效的方法來捕捉告誡特徵交互關係。
  3. DeepCorss模型,效果甚至比FM和HOFM模型效果更差,主要原因是DeepCorss模型的過擬合問題,因爲交互特徵的階數較高,導致模型容易過擬合,這個問題在DeepCorss原文中也有說道(使用early stopping來代替L2和dropout方法防止過擬合)。

文章總結

基於FM模型進行改進,主要通過引入attention網絡來學習交互特徵的重要性,以此提高了模型的表達能力和可解釋性。

作者也提到了AFM模型待改進的方面:
0. 優化AFM模型版本,在基於attention的池化層上,堆疊多層非線性網絡(目前只有一層)

  1. AFM模型的複雜度爲非零特徵數量的平方,例如可以借鑑使用學習hash的方式和數據採樣技術來降低複雜度
  2. 轉向半監督和多視角學習的方式
  3. 探索AFM模型在其他領域的應用,例如問答系統等。

參考代碼

https://github.com/hexiangnan/attentional_factorization_machine

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章