前言
FM能夠發現二階組合特徵,但是所有特徵的權重都是一樣的,這會阻礙FM的效果,因為不是所有的特徵都是有用的,例如有些無用的特徵進行組合會引入噪聲,降低FM的效果。本文提出了AFM模型,透過引入attention機制,學習互動特徵的重要程度。
Introduction
為了平衡特徵之間的互動,可以利用polynomial regression(多項式迴歸)來學習互動特徵的權重,但是會存在一個主要的問題(與Wide&Deep中的Wide部分一樣):在稀疏資料集中僅能觀察到少量互動特徵,對於樣本中沒出現這個組合特徵,Poly2學習不到權重,樣本的不充分也會導致學習的引數不準確,Poly2中對於每個組合特徵的權重是獨立的,你無法從A特徵的權重中得到關於B的任何資訊。
為了解決ploy2這個問題,提出了FM模型。FM中組合特徵的權重不再是獨立的。對於一些無用的特徵,應該設定很低的權重,但是FM缺少這個作用。本文引入attention機制來解決這個問題。自動學習組合特徵的不同的權重。
Attentional Factorization Machines
FM
\hat{y} \cdot FM(x) =\underbrace{w_{0} + \sum_{i=1}^{n}w_{i}x_{i}}{linear regression} + \underbrace{\sum{i=1}^{n}\sum_{j=i+1}^{n} \hat w_{ij}x_{i}x_{j}}_{pair-wise feature interactions}
其中W0為偏差,Wi為第i個特徵的權重,Wi,j為組合特徵xixj的權重。
\hat{w}{ij} = v{i}^{T}v_{j}
,vi∈ Rk,且對應第i個特徵的embedding vector。FM會賦給所有可能存在的互動特徵以相同的權重,即使這個特徵是無用的。
AFM
結構圖:
Input Layer&Embedding Layer
輸入的特徵向量X,去掉0值,經過Embedding Layer得到
\varepsilon = ( v_{i} x_{i} )_{i \in x}
Pair-wise Interaction Layer
受到FM的啟發,使用內積得到組合特徵(each pair of features),現在提出Pair-wise Interaction Layer,如果特徵向量大小為m,透過這一層後會得到 大小為m(m − 1)/2的組合特徵向量。把embedding後的向量進行兩兩組合,得到:
f_{PI}(\varepsilon) = [(v_{i} \bigodot v_{j})x_ix_j]_{(i,j)\in R_x}
然後經過sum pooling -> fc層得到最後的預測結果,表示式為:
\hat{y} = P^{T} \sum_{(i,j)\in R_x} (v_i \bigodot v_j)x_ix_j + b
其中p為權重,b為偏差,若p全為1,即所有特徵的權重為1,b為0,則此模型變成FM模型。
Attention-based Pooling Layer
引入attention機制,給每組互動特徵賦予權重,表示式為:
f_Att(f_PI(\varepsilon)) = \sum {(i,j)\in R_x} a{ij}(v_i \bigodot v_j)x_i x_j
其中ai,j的值是透過最小化損失函式得到的,所以還需要加入MLP,將此層稱為attention network,現定義為:
score:
{a_{ij}}’ = h^{T}ReLU(W(v_{i}\bigodot v_j)x_i x_j + b)
對score進行 softmax 的歸一化:
a_{ij} = \frac{exp({a_{ij}}’)}{\sum_{i,j}\in R_x exp({a_ij}’)}
最後AFM模型的輸出:
\hat y_{AFM}(x) = w_{0} + \sum_{i=1}^{n}w_{i}x_{i} + p^T \sum^n_{i=1}\sum^n_{j=i+1} a_{ij} (v_i \bigodot v_j) x_i x_j
AFM = LR + Embedding + Attention + MLP
LR:
\sum ^n _{i=1} w_i x_i
AFM目標函式
迴歸任務:使用平方損失函式
L_r = \sum {x\in \tau }(\hat{y}{AFM}(x) - y(x))^2
二分類任務:logloss
使用SGD進行引數最佳化,加入L2正則項或者dropout來防止過擬合的情況。
歡AFM的做法:
在pair-wise interaction layer使用dropout正則化
在attention network使用L2正則化,不採用dropout正則化的原因,是因為當把dropout加入attention network後會出現問題,使效果降低。
L = \sum_{x\in \tau} (\hat(y)_{AFM}(x) - y{x})^2 +\lambda \left || W \right ||^2
總結
AFM是在FM的基礎上進行最佳化,加入了attention Network,透過attention機制建立權重矩陣來學習兩兩向量組合時不同的權重,該權重矩陣將會作用到最後的二階項中,進而得到最終的結果。
本作品採用《CC 協議》,轉載必須註明作者和本文連結