FM 模型理論基礎

1. 背景介紹

假設一個廣告分類的問題,根據用戶和廣告位相關的特征,預測用戶是否點擊了廣告。數據如下:

clicked? Country Day Ad_type
1 USA 26/11/15 Movie
0 China 19/2/15 Game
1 China 26/11/15 Game

由上表可知,3維特征和點擊標簽,對類別特征進行One-hot編碼轉化為數值特征,轉化為數據如下:

clicked? Country=USA Country=China Day=26/11/15 Day=19/2/15 Ad_type=Movie Ad_type=Game
1 1 0 1 0 1 0
0 0 1 0 1 0 1
1 0 1 1 0 0 1

特征空間還是比較稀疏的,并且在類別空間很大時,特征則越稀疏。并且根據不同的特征組合來看,兩兩組合的特征是十分必要的。原因如下:

通過觀察大量的樣本數據可以發現,某些特征經過關聯之后,與label之間的相關性就會提高。例如,“USA”與“Thanksgiving”、“China”與“Chinese New Year”這樣的關聯特征,對用戶的點擊有著正向的影響。換句話說,來自“China”的用戶很可能會在“Chinese New Year”有大量的瀏覽、購買行為,而在“Thanksgiving”卻不會有特別的消費行為。這種關聯特征與label的正向相關性在實際問題中是普遍存在的,如“化妝品”類商品與“女”性,“球類運動配件”的商品與“男”性,“電影票”的商品與“電影”品類偏好等。

如何表示兩個特征的組合呢?一種方法是采用多項式模型表示兩個特征的組合,x_i為第 i 個特征的取值,x_ix_j表示特征組合,其參數w_{ij}即為學習參數,也是x_ix_j組合的重要程度:
g(x)=w_{0}+\sum_{i} w_{i} x_{i}+\sum_{i} \sum_{j=i+1} w_{i j} x_{i} x_{j}

上式稱為 Poly2 模型,參數個數:一次項有 d+1 個,二次項共有 d(d-1)/2 個,而參數與參數之間彼此獨立,在稀疏場景下,二次項的訓練是很困難的。因為要訓練w_{ij},需要有大量的 x_ix_j都非零的樣本,樣本少則難以估計。

2. FM 模型

Poly2 模型認為參數w_{ij}是彼此獨立的,所以必須進行單獨訓練。但是實踐上不同的特征之間進行組合并非完全獨立。參考矩陣分解,rating 矩陣可以分解為 user 矩陣和 item 矩陣的矩陣乘,如下圖所示:

user 和 item 矩陣的維度分別為 (n, k) 和 (k, m),相比原來的rating矩陣,空間占用得到降低,并且分解后的user矩陣暗含著user偏好,Item矩陣暗含著item的屬性,而user矩陣乘上item矩陣就是rating矩陣中用戶對item的評分。

參考矩陣分解的過程,FM 模型將二次項參數w_{ij}進行分解:
g(x)=w_{0}+\sum_{i} w_{i} x_{i}+\sum_{i} \sum_{j=i+1}\left\langle v_{i}, v_{j}\right\rangle x_{i} x_{j}

其中v_i是第 i 維特征的隱向量,長度為k,(v_i, v_j)為內積,值為原來的w_{ij}

上式的復雜度可以從 O(kd^2)優化到O(kd)
\begin{aligned} & \sum_{i=1}^nzgdre1 \sum_{j=i+1}^mibguqm\left\langle\mathbf{v}_{i}, \mathbf{v}_{j}\right\rangle x_{i} x_{j} \\ = & \frac{1}{2} \sum_{i=1}^wd8e9c9 \sum_{j=1}^c5bqvku\left\langle\mathbf{v}_{i}, \mathbf{v}_{j}\right\rangle x_{i} x_{j}-\frac{1}{2} \sum_{i=1}^l9es6dc\left\langle\mathbf{v}_{i}, \mathbf{v}_{i}\right\rangle x_{i} x_{i} \\ = & \frac{1}{2} \sum_{i=1}^5ig1y1d \sum_{j=1}^zvjetpd \sum_{f=1}^{k} v_{i, f} v_{j, f} x_{i} x_{j}-\frac{1}{2} \sum_{i=1}^jgw96xq \sum_{f=1}^{k} v_{i, f} v_{i, f} x_{i} x_{i} \\ = & \frac{1}{2} \sum_{f=1}^{k}\left(\left(\sum_{i=1}^2afl1sq v_{i, f} x_{i}\right)\left(\sum_{j=1}^yl1b9el v_{j, f} x_{j}\right)-\sum_{i=1}^n6fkiws v_{i, f}^{2} x_{i}^{2}\right) \\ = & \frac{1}{2} \sum_{f=1}^{k}\left(\left(\sum_{i=1}^06fuaod v_{i, f} x_{i}\right)^{2}-\sum_{i=1}^tgdrn1d v_{i, f}^{2} x_{i}^{2}\right) \end{aligned}

3. FFM 模型

FM模型中,所有特征共享同一個隱空間,每一維特征對應為唯一的隱向量進行特征交互。存在的問題在于:不同特征是按照不同的 filed 劃分,比如 “EPSN、NBC” 屬于廣告商、“Nike、Adidas”屬于廣告主、“Male、Female”屬于性別。描述(EPSN,Nike)和(EPSN,Male)特征組合,FM模型都用同一w_{EPSN},而實際上,ESPN作為廣告商,其對廣告主和用戶性別的潛在影響可能是不同的。

表示的不同點為:
FM:<v_{EPSN}, v_{Nike}> * 1 * 1 + <v_{EPSN}, v_{Male}> * 1 * 1 + <v_{Nike}, v_{Male}> * 1 * 1
FFM:<v_{EPSN,廣告主}, v_{Nike, 廣告商}> * 1 * 1 + <v_{EPSN,性別}, v_{Male,廣告商}> * 1 * 1 + <v_{Nike,性別}, v_{Male,廣告主}> * 1 * 1

FFM的數學公式表示為:
g(x)=w_{0}+\sum_{i} w_{i} x_{i}+\sum_{i} \sum_{j>i}\left\langle v_{i, f_{j}}, v_{j, f_{i}}\right\rangle x_{i} x_{j}

其中f_if_j分別代表第 i 個特征和第 j 個特征所屬的 field,若field有f個,隱向量的長度為k,則二次項系數共有dfk個,遠多于FM模型的dk個。此外,隱向量和field相關,并不能像FM模型一樣將二次項化簡,計算的復雜度是d^2k。通常情況下,每個隱向量只需要學習特定field的表示,所以有 k_{FFM} << k_{FM}

下面的圖來自criteo,很好的表示了 Poly2、FM、FFM 模型的區別:

4. 總結

4.1. LR
g(x)=w_{0}+\sum_{i} w_{i} x_{i}

弊端:無法利用組合特征

4.2. Poly2
g(x)=w_{0}+\sum_{i} w_{i} x_{i}+\sum_{i} \sum_{j=i+1} w_{i j} x_{i} x_{j}

弊端:真實業務場景中組合特征高度稀疏,w_{i j}無法更新。

4.3. FM
g(x)=w_{0}+\sum_{i} w_{i} x_{i}+\sum_{i} \sum_{j=i+1}\left\langle v_{i}, v_{j}\right\rangle x_{i} x_{j}

局限:1. 僅建模二階特征交互【引入深度神經網絡】;2. 所有特征共享同一個latent space

4.4. FFM
g(x)=w_{0}+\sum_{i} w_{i} x_{i}+\sum_{i} \sum_{j>i}\left\langle v_{i, f_{j}}, v_{j, f_{i}}\right\rangle x_{i} x_{j}

不同特征按域劃分。

參考文獻:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,837評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,196評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,688評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,654評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,456評論 6 406
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,955評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,044評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,195評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,725評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,608評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,802評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,318評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,048評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,422評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,673評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,424評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,762評論 2 372

推薦閱讀更多精彩內容