RS Meet DL(77)-Field-weighted Factorization Machines(FwFM)
- 2020 年 3 月 3 日
- 筆記


本文介紹的方法FwFM,主要來自上面的兩篇文章,分別為:《Field-weighted Factorization Machines for Click-Through Rate Prediction in Display Advertising》和《A Sparse Deep Factorization Machine for E icient CTR prediction》。
1、背景
點擊率預估是展示廣告中核心問題之一,其目的是將合適的廣告在適當的情景下呈現給合適的用戶。目前點擊率預估中使用的數據通常包含多個域的離散變數,這導致整個的特徵維度非常巨大,處理這樣的數據,通常面臨以下三方面的挑戰:
1)需要建模特徵之間普遍存在的交互關係。比如,在NBA官網上展示Nike的廣告,其點擊率會遠高於Nike廣告的平均點擊率或者NBA官網上所有廣告的平均點擊率。
2)不同域的特徵之間的交互強度往往不同。比如,性別域和廣告主域的特徵之間關係強度比較高,但是性別域和設備域特徵之間的交互強度比較低。
3)模型的複雜度需要關注。在線上使用模型時,需要存儲模型的參數比如權重以及嵌入向量(Embedding),如果參數過多,會對線上的性能造成一定的影響。
為了解決上述的幾個問題,研究者提出了許多相關的建模方案,如FM和FFM。先來回顧下這兩個模型:
FM
FM為每一維特徵都賦予一個k維的嵌入向量,假設特徵維度為m,那麼參數總量為m + mK(或者m + mK + 1),其計算公式如下:

FFM
FM沒有考慮到不同域的特徵進行交互時的差異,因此對每一維特徵,FFM在不同的域賦予不同的嵌入向量。假設數據共有n個域、m維特徵,而且每個域都是單值離散變數的話,每維特徵會對應n-1個嵌入向量(不需要特徵所在域的嵌入向量,單值離散特徵情況下,一個特徵只會與其他域的特徵進行交互),因此參數總量為m + m(n-1)K(或者m + m(n-1)K + 1),其計算公式如下:

結合前面所提到的CTR預估中所面臨的三個挑戰,FM相當於解決了第一個挑戰,即考慮了特徵之間的交互關係,而FFM相當於在FM的基礎上解決了第二個挑戰,即考慮了不同域的特徵之間的交互強度。但是FFM的參數過多,在離線優化以及線上使用時,性能較為一般。因此,在FFM的基礎上繼續解決第三個挑戰,便是本文要介紹的FwFM(Field-weighted Factorization Machines)。
2、FwFM
同FFM一樣,FwFM也是在FM的基礎上考慮不同域之間的交互強度關係,但做法不同。FwFM中對不同域之間的交互強度賦予一個統一的權重,其計算公式如下:

這樣相較於FFM,總的參數量降低了許多,假設數據共有n個域、m維特徵,那麼FwFM的參數總量為m + mK + n(n-1)/2(或者m + mK + n(n-1)/2 + 1)。
3、FwFM的變形
結合兩篇文章,主要提出了兩種FwFM的變形,一是對原公式中的線性部分進行改造,二是將FwFM和DNN相結合,即DeepFwFM。
3.1 線性部分變形
文中將使用原計算公式的FwFM方法稱為FwFMs_LW,同時針對線性部分,提出了兩種變形方法,分別稱為FwFMs_FeLV和FwFMs_FiLV。
FwFMs_FeLV(FwFMs with feature-wise linear weight vectors)
原公式中的線性部分,每一維特徵i對應一個標量權重wi,而在FwFMs_FeLV中,標量權重變成了和嵌入向量vi同樣長度的向量wi,二者通過內積得到特徵i的標量權重,此時線性部分的計算公式如下:

此時參數的總數增加為2mK + n(n-1)/2。
FwFMs_FiLV(FwFMs with field-wise linear weight vectors)
在FwFMs_FiLV中,標量權重變成了和嵌入向量vi同樣長度的向量w F(i)(即同一個域中的特徵共享一個權重向量),二者通過內積得到特徵i的標量權重,此時線性部分的計算公式如下:

此時參數的總數為nK + mK + n(n-1)/2。
3.2 DeepFwFM
DeepFwFM即將DNN與FwFM相結合,其圖示如下(下圖來自第二篇文章,圖示應該是上文所說的FwFMs_FiLV):

4、實驗結果
下面的實驗結果來自文章1,對比了FwFM和FM、FFM的結果:

可以看到FwFMs的效果好於LR、FM,這說明對域之間的關係的建模可以帶來一定的效果的提升。雖然FFM的效果要要好於FwFMs,但相差並不多,因此可以說,FwFMs能夠實現預測效果和性能的平衡。
接下來是不同的FwFMs的效果,可以看到三種方法的差距並不大:
