因子分解機(Factorization Machine,FM)大家在熟悉不過了,利用矩陣分解思想在推薦系統中曾經大放光芒。而許多文章也基於FM方法進行改進,在實驗上也獲得了不錯的效果。今天帶來的論文解讀是一種基於輸入感知的FM方法:

其實該方法從總體來看是一種Attention方法,但是又與我們熟知的AFM不太一樣。既然都是Input-aware,自然是從輸入特徵入手,下面就對IFM進行梳理。

1 IFM模型

IFM模型的任務同所有CTR預估模型一致,是利用稀疏輸入向量

x

來完成對點選率的預測。圖1為IFM模型的整體框架。

在輸入特徵中尋找影響特徵的特徵——Input-aware Factorization Machine(IFM)

圖 1 IFM網路模型整體框架圖

總體來說整個流程可用如下公式表示:

\hat{y}_{IFM}(x) = w_0+\sum_{i=1}^nw_{x,i}x_i+\sum_{i=1}^n\sum_{j=i+1}^n<v_{x,i},v_{x,j}>x_ix_j

單從此公式來看,其實跟FM沒什麼兩樣,然而IFM則針對上式中的一階項和二階項進行了修正。這種修正利用每個特徵對標籤的影像進行了非線性的建模。

從下往上分析,模型可大致分為4個部分:

Embedding Layer

Factor Estimating Network

Reweighting Layer

FM Prediction Layer

下面對這4個部分進行詳細的解析。

1。1 嵌入層(Embedding Layer)

在這一部分,原文對輸入的向量x進行如同FM方法中的Embedding表示。利用可訓練的對映矩陣,將輸入向量x中的非0特徵進行稠密表示。文中令

k

為Embedding尺寸,

h

表示為每個例項中非0元素的數量。這樣即可得到一個

k\times h

維的稠密矩陣

V_x=[v_1^T, v_2^T,...v_h^T]

在此處文中標註,h為每個資料集中的固有值。個人理解作者應該想表達的是資料集中每個個案的分類數量是相同的,就好比GBDT中所獲得的結果一樣,因此h為每個資料集中的固有值。但是按照拓展來說,one-hot編碼中的非0元素的數量不一定相同(比如使用者愛好資料可能有1個也可能有多個),因此此處可能限制了資料集的使用。

3。2 影響估計計算網路(Factor Estimating Network,FEN)

在輸入特徵中尋找影響特徵的特徵——Input-aware Factorization Machine(IFM)

圖 2 FEN結構示意圖

FEN的思想主要來源於記憶網路,結構如圖2所示。該部分主要是透過輸入非零特徵的Embedding,針對性的計算輸入感知因子(Input-aware factor)

m_{x,i}

,從而在後續影響特徵權重

\omega_i

和Embedding向量

v_i

。從輸入到輸出,我們可以將其整理為兩個部分:

①資訊解析部分:

這一部分透過全連線操作來解析不同輸入特徵Embedding

V_x

的獨特資訊,即圖中的Fully Connected Layers。由公式可表達為:

a_1=\sigma_1(W_1V_x+b_1)

……

 U_x=a_L=\sigma_L(W_La_{L-1}+b_L)

其中

W_l

b_t

\sigma_l

a_l

分別為第

l

層全連線層的權重矩陣、偏置向量和啟用函式和輸出值。

②權值計算部分:

透過全連線層的輸出

U_x

來計算我們所需要的輸入感知因子

m_{x,i}

。公式如下:

m_x

 m_{x,i}=h\times \frac{exp(m

其中

P

表示將

U_x

轉換為

h

維向量

m_x

的權重矩陣。而後透過

softmax

函式進行歸一化操作,並乘以

h

保持所有元素之和為固定值,以此來表示為

x

中每個非0特徵的輸入感知因子

m_{x,i}

3。3 重配權值層(Reweighting Layer)

利用我們在FEN中獲得的輸入感知因子

m_{x,i}

,我們即可針對當前輸出用於細化特徵權重

\omega_i

和Embedding向量

v_i

。即:

\omega_{x,i}=m_{x,i}\omega_i

v_{x,i}=m_{x,i}v_i

3。4 FM預測層(FM Prediction Layer)

最後,利用輸入感知影響過後的特徵權重

\omega_i

和Embedding向量

v_i

,我們便可進行點選率預估。在原文中作者選擇了在後續使用原FM進行預測,並給出了我們熟悉的計算量化簡公式:

\sum_{i=1}^n\sum_{j=i+1}^nx_ix_j=\frac{1}{2}\sum_{f=1}^k [(\sum_{j=1}^nv_{x,j,f}x_j)^2-\sum_{j=1}^nv_{x,j,f}^2x_j^2]

最後利用LR輸出機率即為預測結果。

★ IFM與FM和AFM的關係

其實從上面的整體梳理我們可以清楚的看到,IFM的本質是在FM中插入了一個FEN模型,其與FM和AFM還是有著很多的相似之處:

若將該模型的輸入感知因子

m_{x,i}

均設定為1,IFM則退化為FM模型。

若將3。3退化為直接對FM的二階交叉項進行權重分配,並化簡FEN結構,IFM則退化為AFM的相似結構。

2 實驗部分

個人感覺實驗部分是本文的亮點之一,整體的寫作風格比較適合我們在撰寫論文是使用。作者在原文實驗部分開頭先提出了這樣三個問題:

1。 How do the key hyper_parameters of IFM (e。g。, the dropput ratio and the number of hidden layers) impact its performance?

2。 Can the factor estimating network effectively refine the representation of features for different instances?

3。 How does IFM perform compared to state-of-the-art methods for spares prediction?

而後針對這三個問題進行了實驗的展開。

▲ 實驗前期準備

本文使用了三個常見的公共資料集

Frappe

MovieLens

Avazu

。在衡量標準上使用了絕平均差(MAE)、均方誤差根(RMSE)、AUC、指數損失(log loss),用於衡量在不同任務上的效能。對比的模型有

LibFM

Wide\&Deep

DeepFM

NFM

以及

AFM

。具體的超引數預設可參考原文。

2。1 Hyper-Parameter Study

為回答第一個問題,作者對隱藏層數量、Dropout比率、以及啟用函式的選取進行了對比實驗。圖3、圖4、圖5分別給出了對比結果。

在輸入特徵中尋找影響特徵的特徵——Input-aware Factorization Machine(IFM)

圖 3。 模型超引數預設在RMSE上的表現

在輸入特徵中尋找影響特徵的特徵——Input-aware Factorization Machine(IFM)

圖 4。 模型超引數預設在MAE上的表現

在輸入特徵中尋找影響特徵的特徵——Input-aware Factorization Machine(IFM)

圖 5。 不同的啟用函式在模型上的表現

文中還給出了與FM進行對比的訓練過程收斂對比(圖6),可以看出相較於原始FM模型來說,IFM有著一定的優越性。

在輸入特徵中尋找影響特徵的特徵——Input-aware Factorization Machine(IFM)

圖 6。 與FM相比在不同資料集上訓練效果的展示

2。2 Impact of the Factor Estimating Network

本文創新點的主題就是FEN的引入,作者針對這個創新點進行了遮蓋性對比。表1可以看出引入FRN後,預測的絕對差值有所縮小。而表2則展示出,對於不同的FM的改進,IFM的提升比率是最高的。

在輸入特徵中尋找影響特徵的特徵——Input-aware Factorization Machine(IFM)

表 1。 引入FEN的效果表現對比表

在輸入特徵中尋找影響特徵的特徵——Input-aware Factorization Machine(IFM)

表 2。 在FM的基礎上,不同模型的改進對比表

2。3 Performance Comparison

最後是不同模型的表現對比。文中基於3個數據集進行了兩種下游任務的實驗,表3和表4給出了詳細的結果。

在輸入特徵中尋找影響特徵的特徵——Input-aware Factorization Machine(IFM)

表 3。 在Frappe和MovieLens上不同模型的迴歸任務效能對比表

在輸入特徵中尋找影響特徵的特徵——Input-aware Factorization Machine(IFM)

表 4。 在Avazu上不同模型的二分類任務效能對比表

3 總結

整體文章從上至下看下來,IFM模型的結構十分傳統化,大體上相當於在FM的框架中央插入了一個FEN的結構用於獲取輸入感知因子

m_{x,i}

,以此來影響最後的特徵權重

\omega_i

和Embedding向量

v_i

而有意思的是文中指出FEN的想法是出自”Memory Networks“。然而,如果從這類網路出發,個人覺得FEN元件更像是一種另類的Attention,並沒有所謂的記憶網路結構,而從”Memory“這個概念出發,熟悉Wide&Deep的都知道淺層網路的記憶性是優於深層網路的。而本文選擇使用隱藏層進行分析其實與這種想法是背道而馳的。不過從Attention角度來看就比較清楚:模型相較於不同的輸出會分析出不同的注意力權值,並在交叉項影響較深的情況下該部分的權重自然就會被放大,這可能也是該模型表現較好的原因。

注意此處與AFM還是有所出入,AFM旨在對交叉項進行直接的權重分配。而IFM則是對最後的特徵權重和Embedding向量進行注意力處理。

從IFM結構的最後敘述來看,個人認為作者其實並沒有真正理解FM的整體架構。原文將FM作為一種Embedding輸入的分類器進行網路構建,而實際上FM的主體是運用了”矩陣分解“的類Embedding方法,最後分類相當於是

POLY_2

模型。(當然,如果真是直接在後續接上FM,那也太。。)

從實驗看來,特性的精確表示比捕獲高階特徵互動更有效。IFM在迴歸和分類任務方面顯著優於經典的FM和最先進的基於深度學習的方法,如Wide&deep、AFM、NFM和DeepFM。這也證實了這種改進的有效性。

總體來說,IFM是在FM模型上的一種進步,文章創新點一般,但是實驗較為豐富,可能也是會議文章比較趕,所以沒有特別注重理論部分的敘述。

參考文獻

[1] Yu Y, Wang Z, Yuan B。 An Input-aware Factorization Machine for Sparse Prediction[C]//IJCAI。 2019: 1466-1472。

(本文為知乎賬號“McAloma”原創,如有解讀不正確之處麻煩各位指正,轉載請註明來源)