FM丁溅、FFM、DeepFM

1. CTR預(yù)估綜述

點(diǎn)擊率(Click through rate)是點(diǎn)擊特定鏈接的用戶(hù)與查看頁(yè)面探遵,電子郵件或廣告的總用戶(hù)數(shù)量之比窟赏。 它通常用于衡量某個(gè)網(wǎng)站的在線廣告活動(dòng)是否成功,以及電子郵件活動(dòng)的有效性箱季。
點(diǎn)擊率是廣告點(diǎn)擊次數(shù)除以總展示次數(shù)(廣告投放次數(shù))

目前涯穷,CTR的數(shù)值平均接近0.2%或0.3%,超過(guò)2%被認(rèn)為是非常成功的藏雏。

常用的CTR預(yù)估算法有FM, FFM, DeepFM求豫。

2. Factorization Machines(FM)

FM的paper地址如下:https://www.csie.ntu.edu.tw/~b97053/paper/Rendle2010FM.pdf
FM主要目標(biāo)是:解決數(shù)據(jù)稀疏的情況下,特征怎樣組合的問(wèn)題
根據(jù)paper的描述,F(xiàn)M有一下三個(gè)優(yōu)點(diǎn):

  • 可以在非常稀疏的數(shù)據(jù)中進(jìn)行合理的參數(shù)估計(jì)
  • FM模型的時(shí)間復(fù)雜度是線性的
  • FM是一個(gè)通用模型蝠嘉,它可以用于任何特征為實(shí)值的情況

假如在某個(gè)電影播放網(wǎng)站有這么一組實(shí)時(shí)數(shù)據(jù):

MoviesClass Actor Director MoviesIsPlay?
Action A AA 1
Romantic B BB 0
Action A BB 1

其中MoviesIsPlay?是label最疆,MoviesClass 、Actor蚤告、Director是特征努酸。以上這三種特征都是categorical類(lèi)型的,需要經(jīng)過(guò)獨(dú)熱編碼(One-Hot Encoding)轉(zhuǎn)換成數(shù)值型特征杜恰。

MoviesClass = Action MoviesClass = Romantic Actor = A Actor = B Director = AA Director = BB MoviesIsPlay = 1 MoviesIsPlay = 0
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 0 1 0 0 1 1 0

從該獨(dú)熱編碼表可以看出矩陣許多值都為0获诈,數(shù)據(jù)十分稀疏,而且會(huì)導(dǎo)致數(shù)據(jù)維度增大心褐,數(shù)量級(jí)從n增大到n^2舔涎。

而我們的目的是從該矩陣中獲取到特征的某些關(guān)聯(lián),比如MovieClass=action 與 actor=A 關(guān)聯(lián)比較大逗爹,電影播放量可很客觀亡嫌,從而對(duì)用戶(hù)進(jìn)行推薦。

一般的線性模型為:
y=w0+∑_{i=1}^nw_ix_i
從上面的式子中看出掘而,一般的線性模型沒(méi)有考慮特征之間的關(guān)聯(lián)挟冠。為了表述特征間的相關(guān)性,我們采用多項(xiàng)式模型袍睡。在多項(xiàng)式模型中知染,特征xi與xj的組合用xixj表示。為了簡(jiǎn)單起見(jiàn)斑胜,我們討論二階多項(xiàng)式模型控淡。
y=w0+∑_{i=1}^nw_ix_i + \sum_{i=1}^n\sum_{j=i+1}^nw_{i,j}x_ix_j
從此公式可以看出組合特征一共有n(n-1)/2個(gè),如果特征n上百個(gè)止潘,組合特征上萬(wàn)個(gè)逸寓,就是任意兩個(gè)wij相互獨(dú)立,樣本數(shù)據(jù)很稀疏覆山,xixj為非零的項(xiàng)會(huì)非常的少竹伸,導(dǎo)致訓(xùn)練樣本的不足,很容易導(dǎo)致參數(shù) wij 不準(zhǔn)確簇宽,最終將嚴(yán)重影響模型的性能和穩(wěn)定性勋篓。

所有二次項(xiàng)參數(shù) wij 可以組成一個(gè)對(duì)稱(chēng)陣 W,可以分解為 W=V^TV魏割,VV 的第 j 列便是第 j 維特征的隱向量譬嚣,也就是說(shuō)每個(gè)參數(shù) wij=?vi,vj?,這就是FM模型的核心思想(不討論高階形式)钞它。所以可以得到:
y=w0+∑_{i=1}^nw_ix_i + \sum_{i=1}^n\sum_{j=i+1}^n<v_i, v_j>x_ix_j
其中<>表示兩個(gè)向量的點(diǎn)積
<v_i, v_j> = \sum_{f=1}^kv_{i,f} \cdot v_{j,f}
直觀上看拜银,F(xiàn)M的復(fù)雜度是 O(kn^2)殊鞭。但是,通過(guò)下列等式尼桶,F(xiàn)M的二次項(xiàng)可以化簡(jiǎn)操灿,其復(fù)雜度可以?xún)?yōu)化到 O(kn)。由此可見(jiàn)泵督,F(xiàn)M可以在線性時(shí)間對(duì)新樣本作出預(yù)測(cè)趾盐。
\sum_{i=1}^n\sum_{j=i+1}^n<v_i, v_j>x_ix_j = \frac{1}{2}\sum_{f=1}^k\lgroup(\sum_{i=1}^nv_{i,f}x_i)^2 - \sum_{i=1}^nx_{i,f}^2\cdot x_i^2\rgroup
下面給出詳細(xì)證明過(guò)程:

3. Field-aware Factorization Machines(FFM)

FFM的論文地址:https://www.csie.ntu.edu.tw/~cjlin/papers/ffm.pdf
在FFM中,每一維特征 x_i小腊,針對(duì)其它特征的每一種field f_j救鲤,都會(huì)學(xué)習(xí)一個(gè)隱向量 V_{i,f_j}。因此秩冈,隱向量不僅與特征相關(guān)本缠,也與field相關(guān)。這也是FFM中“Field-aware”的由來(lái)入问。

設(shè)樣本一共有n個(gè)特征, f 個(gè)field丹锹,那么FFM的二次項(xiàng)有nf個(gè)隱向量。而在FM模型中队他,每一維特征的隱向量只有一個(gè)。FM可以看作FFM的特例峻村,是把所有特征都?xì)w屬到一個(gè)field時(shí)的FFM模型麸折。根據(jù)FFM的field敏感特性,可以導(dǎo)出其模型方程粘昨。
y=w0+∑_{i=1}^nw_ix_i + \sum_{i=1}^n\sum_{j=i+1}^n<v_{i,f_j}, v_{j, f_i}>x_ix_j
其中垢啼,f_j是第j個(gè)特征所屬的field。如果隱向量的長(zhǎng)度為k张肾,那么FFM的二交叉項(xiàng)參數(shù)就有nfk個(gè)芭析,遠(yuǎn)多于FM模型的nk個(gè)。此外吞瞪,由于隱向量與field相關(guān)馁启,F(xiàn)FM的交叉項(xiàng)并不能夠像FM那樣做化簡(jiǎn),其預(yù)測(cè)復(fù)雜度為O(kn^2)芍秆。

4. Deep FM

論文地址:https://arxiv.org/pdf/1703.04247.pdf

對(duì)于一個(gè)基于CTR預(yù)估的推薦系統(tǒng)惯疙,最重要的是學(xué)習(xí)到用戶(hù)點(diǎn)擊行為背后隱含的特征組合。在不同的推薦場(chǎng)景中妖啥,低階組合特征或者高階組合特征可能都會(huì)對(duì)最終的CTR產(chǎn)生影響霉颠。

DeepFM模型結(jié)合了廣度和深度模型的有點(diǎn),聯(lián)合訓(xùn)練FM模型和DNN模型荆虱,來(lái)同時(shí)學(xué)習(xí)低階特征組合和高階特征組合蒿偎。此外朽们,DeepFM模型的Deep component和FM component從Embedding層共享數(shù)據(jù)輸入,這樣做的好處是Embedding層的隱式向量在(殘差反向傳播)訓(xùn)練時(shí)可以同時(shí)接受到Deep component和FM component的信息诉位,從而使Embedding層的信息表達(dá)更加準(zhǔn)確而最終提升推薦效果骑脱。DeepFM相對(duì)于現(xiàn)有的廣度模型、深度模型以及Wide&Deep; DeepFM模型的優(yōu)勢(shì)在于:

  • DeepFM模型同時(shí)對(duì)低階特征組合和高階特征組合建模不从,從而能夠?qū)W習(xí)到各階特征之間的組合關(guān)系
  • DeepFM模型是一個(gè)端到端的模型惜姐,不需要任何的人工特征工程

DeepFM的系統(tǒng)框圖


DeepFM包含兩部分,左邊的FM部分和右邊的DNN部分椿息。這兩部分共享相同的輸入歹袁。對(duì)于給定的特征i, wi用于表示一階特征的重要性,特征ii的隱向量(latent vector)Vi用戶(hù)表示和其他特征的相互影響寝优。在FM部分条舔,Vi用于表征二階特征,同時(shí)在神經(jīng)網(wǎng)絡(luò)部分用于構(gòu)建高階特征乏矾。對(duì)于當(dāng)前模型孟抗,所有的參數(shù)共同參與訓(xùn)練。DeepFM的預(yù)測(cè)結(jié)果可以寫(xiě)為

y∈(0,1) 是預(yù)測(cè)的CTR钻心,是FM部分得到的結(jié)果凄硼,是DNN部分的結(jié)果

FM結(jié)構(gòu):


DNN結(jié)構(gòu):

深度部分是一個(gè)前饋神經(jīng)網(wǎng)絡(luò),可以學(xué)習(xí)高階的特征組合捷沸。需要注意的是原始的輸入的數(shù)據(jù)是很多個(gè)字段的高維稀疏數(shù)據(jù)摊沉。因此引入一個(gè)embedding layer將輸入向量壓縮到低維稠密向量。
embedding layer的結(jié)構(gòu)如下圖所示痒给,

embedding layer有兩個(gè)有趣的特性:

  • 輸入數(shù)據(jù)的每個(gè)字段的特征經(jīng)過(guò)embedding之后说墨,都為kk維(lantent vector的維度),所以embedding后的特征維度是 字段數(shù)×k字段數(shù)×k
  • 在FM里得到的隱變量VV現(xiàn)在作為了嵌入層網(wǎng)絡(luò)的權(quán)重,FM模型作為整個(gè)模型的一部分與其他深度學(xué)習(xí)模型一起參與整體的學(xué)習(xí), 實(shí)現(xiàn)端到端的訓(xùn)練。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末苍柏,一起剝皮案震驚了整個(gè)濱河市尼斧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌试吁,老刑警劉巖棺棵,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異熄捍,居然都是意外死亡律秃,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)治唤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)棒动,“玉大人,你說(shuō)我怎么就攤上這事宾添〈遥” “怎么了柜裸?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)粱锐。 經(jīng)常有香客問(wèn)我疙挺,道長(zhǎng),這世上最難降的妖魔是什么怜浅? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任铐然,我火速辦了婚禮,結(jié)果婚禮上恶座,老公的妹妹穿的比我還像新娘搀暑。我一直安慰自己,他們只是感情好跨琳,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布自点。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赡矢,一...
    開(kāi)封第一講書(shū)人閱讀 51,737評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音术唬,去河邊找鬼。 笑死滚澜,一個(gè)胖子當(dāng)著我的面吹牛粗仓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播博秫,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼潦牛,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼眶掌!你這毒婦竟也來(lái)了挡育?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤朴爬,失蹤者是張志新(化名)和其女友劉穎即寒,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體召噩,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡母赵,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了具滴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凹嘲。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖构韵,靈堂內(nèi)的尸體忽然破棺而出周蹭,到底是詐尸還是另有隱情趋艘,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布凶朗,位于F島的核電站瓷胧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏棚愤。R本人自食惡果不足惜搓萧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宛畦。 院中可真熱鬧瘸洛,春花似錦、人聲如沸刃永。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)斯够。三九已至囚玫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間读规,已是汗流浹背抓督。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留束亏,地道東北人铃在。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像碍遍,于是被迫代替她去往敵國(guó)和親定铜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355