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í)從增大到
舔涎。
而我們的目的是從該矩陣中獲取到特征的某些關(guān)聯(lián),比如MovieClass=action 與 actor=A 關(guān)聯(lián)比較大逗爹,電影播放量可很客觀亡嫌,從而對(duì)用戶(hù)進(jìn)行推薦。
一般的線性模型為:
從上面的式子中看出掘而,一般的線性模型沒(méi)有考慮特征之間的關(guān)聯(lián)挟冠。為了表述特征間的相關(guān)性,我們采用多項(xiàng)式模型袍睡。在多項(xiàng)式模型中知染,特征xi與xj的組合用xixj表示。為了簡(jiǎn)單起見(jiàn)斑胜,我們討論二階多項(xiàng)式模型控淡。
從此公式可以看出組合特征一共有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,可以分解為 魏割,VV 的第 j 列便是第 j 維特征的隱向量譬嚣,也就是說(shuō)每個(gè)參數(shù) wij=?vi,vj?,這就是FM模型的核心思想(不討論高階形式)钞它。所以可以得到:
其中<>表示兩個(gè)向量的點(diǎn)積
直觀上看拜银,F(xiàn)M的復(fù)雜度是 殊鞭。但是,通過(guò)下列等式尼桶,F(xiàn)M的二次項(xiàng)可以化簡(jiǎn)操灿,其復(fù)雜度可以?xún)?yōu)化到
。由此可見(jiàn)泵督,F(xiàn)M可以在線性時(shí)間對(duì)新樣本作出預(yù)測(cè)趾盐。
下面給出詳細(xì)證明過(guò)程:
3. Field-aware Factorization Machines(FFM)
FFM的論文地址:https://www.csie.ntu.edu.tw/~cjlin/papers/ffm.pdf
在FFM中,每一維特征 小腊,針對(duì)其它特征的每一種field
救鲤,都會(huì)學(xué)習(xí)一個(gè)隱向量
。因此秩冈,隱向量不僅與特征相關(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)出其模型方程粘昨。
其中垢啼,是第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ù)雜度為
芍秆。
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)練。