万字长文梳理CTR预估模型发展过程与关系图谱
“?本文主要是對CTR預(yù)估中的常見模型進(jìn)行梳理與總結(jié),并分成模塊進(jìn)行概述。每個模型都會從「模型結(jié)構(gòu)」、「優(yōu)勢」、「不足」三個方面進(jìn)行探討,在最后對所有模型之間的關(guān)系進(jìn)行比較與總結(jié)”
文章來源:天雨粟?https://zhuanlan.zhihu.com/p/104307718
背景
在推薦、搜索、廣告等領(lǐng)域,CTR(click-through rate)預(yù)估是一項非常核心的技術(shù),這里引用阿里媽媽資深算法專家朱小強大佬的一句話:“它(CTR預(yù)估)是鑲嵌在互聯(lián)網(wǎng)技術(shù)上的明珠”。
本篇文章主要是對CTR預(yù)估中的常見模型進(jìn)行梳理與總結(jié),并分成模塊進(jìn)行概述。每個模型都會從「模型結(jié)構(gòu)」、「優(yōu)勢」、「不足」三個方面進(jìn)行探討,在最后對所有模型之間的關(guān)系進(jìn)行比較與總結(jié)。本篇文章討論的模型如下圖所示(原創(chuàng)圖),這個圖中展示了本篇文章所要講述的算法以及之間的關(guān)系,在文章的最后總結(jié)會對這張圖進(jìn)行詳細(xì)地說明。
目錄
本篇文章將會按照整個CTR預(yù)估模型的演進(jìn)過程進(jìn)行組織,共分為7個大部分:
「分布式線性模型」
Logistic Regression
「自動化特征工程」
GBDT+LR
「FM模型以及變體」
FM(Factorization Machines)
FFM(Field-aware Factorization Machines)
AFM(Attentional Factorization Machines)
「Embedding+MLP結(jié)構(gòu)下的淺層改造」
FNN(Factorization Machine supported Neural Network)
PNN(Product-based Neural Network)
NFM(Neural Factorization Machines)
ONN(Operation-aware Neural Networks)
「雙路并行的模型組合」
wide&deep(Wide and Deep)
deepFM(Deep Factorization Machines)
「復(fù)雜的顯式特征交叉網(wǎng)絡(luò)」
DCN(Deep and Cross Network)
xDeepFM(Compressed Interaction Network)
AutoInt(Automatic Feature Interaction Learning)
「CTR預(yù)估模型總結(jié)與比較」
CTR預(yù)估模型關(guān)系圖譜
CTR預(yù)估模型特性對比
一. 分布式線性模型
Logistic Regression
Logistic Regression是每一位算法工程師再也熟悉不過的基本算法之一了,毫不夸張地說,LR作為最經(jīng)典的統(tǒng)計學(xué)習(xí)算法幾乎統(tǒng)治了早期工業(yè)機器學(xué)習(xí)時代。這是因為其具備簡單、時間復(fù)雜度低、可大規(guī)模并行化等優(yōu)良特性。在早期的CTR預(yù)估中,算法工程師們通過手動設(shè)計交叉特征以及特征離散化等方式,賦予LR這樣的線性模型對數(shù)據(jù)集的非線性學(xué)習(xí)能力,高維離散特征+手動交叉特征構(gòu)成了CTR預(yù)估的基礎(chǔ)特征。LR在工程上易于大規(guī)模并行化訓(xùn)練恰恰適應(yīng)了這個時代的要求。
「模型結(jié)構(gòu):」
「優(yōu)勢:」
模型簡單,具備一定可解釋性
計算時間復(fù)雜度低
工程上可大規(guī)模并行化
「不足:」
依賴于人工大量的特征工程,例如需要根據(jù)業(yè)務(wù)背知識通過特征工程融入模型
特征交叉難以窮盡
對于訓(xùn)練集中沒有出現(xiàn)的交叉特征無法進(jìn)行參數(shù)學(xué)習(xí)
二. 自動化特征工程
GBDT + LR(2014)—— 特征自動化時代的初探索
Facebook在2014年提出了GBDT+LR的組合模型來進(jìn)行CTR預(yù)估,其本質(zhì)上是通過Boosting Tree模型本身的特征組合能力來替代原先算法工程師們手動組合特征的過程。GBDT等這類Boosting Tree模型本身具備了特征篩選能力(每次分裂選取增益最大的分裂特征與分裂點)以及高階特征組合能力(樹模型天然優(yōu)勢),因此通過GBDT來自動生成特征向量就成了一個非常自然的思路。注意這里雖然是兩個模型的組合,但實際并非是端到端的模型,而是兩階段的、解耦的,即先通過GBDT訓(xùn)練得到特征向量后,再作為下游LR的輸入,LR的在訓(xùn)練過程中并不會對GBDT進(jìn)行更新。
「模型結(jié)構(gòu):」
通過GBDT訓(xùn)練模型,得到組合的特征向量。例如訓(xùn)練了兩棵樹,每棵樹有5個葉子結(jié)點,對于某個特定樣本來說,落在了第一棵樹的第3個結(jié)點,此時我們可以得到向量? ?;落在第二棵樹的第4個結(jié)點,此時的到向量 ?;那么最終通過concat所有樹的向量,得到這個樣本的最終向量 ?。將這個向量作為下游LR模型的inputs,進(jìn)行訓(xùn)練。
「優(yōu)勢:」
特征工程自動化,通過Boosting Tree模型的天然優(yōu)勢自動探索特征組合
「不足:」
兩階段的、非端到端的模型
CTR預(yù)估場景涉及到大量高維稀疏特征,樹模型并不適合處理(因此實際上會將dense特征或者低維的離散特征給GBDT,剩余高維稀疏特征在LR階段進(jìn)行訓(xùn)練)
GBDT模型本身比較復(fù)雜,無法做到online learning,模型對數(shù)據(jù)的感知相對較滯后(必須提高離線模型的更新頻率)
三. FM模型以及變體
(1)FM:Factorization Machines, 2010 —— 隱向量學(xué)習(xí)提升模型表達(dá)
FM是在2010年提出的一種可以學(xué)習(xí)二階特征交叉的模型,通過在原先線性模型的基礎(chǔ)上,枚舉了所有特征的二階交叉信息后融入模型,提高了模型的表達(dá)能力。但不同的是,模型在二階交叉信息的權(quán)重學(xué)習(xí)上,采用了隱向量內(nèi)積(也可看做embedding)的方式進(jìn)行學(xué)習(xí)。
「模型結(jié)構(gòu):」
FM的公式包含了一階線性部分與二階特征交叉部分:
在LR中,一般是通過手動構(gòu)造交叉特征后,喂給模型進(jìn)行訓(xùn)練,例如我們構(gòu)造性別與廣告類別的交叉特征:?(gender='女' & ad_category='美妝'),此時我們會針對這個交叉特征學(xué)習(xí)一個參數(shù) ?。但是在LR中,參數(shù)梯度更新公式與該特征取值 ? ?關(guān)系密切:
,當(dāng) ? ?取值為0時,參數(shù)? ?就無法得到更新,而 ?要非零就要求交叉特征的兩項都要非零,但實際在數(shù)據(jù)高度稀疏,一旦兩個特征只要有一個取0,參數(shù) ?不能得到有效更新;除此之外,對于訓(xùn)練集中沒有出現(xiàn)的交叉特征,也沒辦法學(xué)習(xí)這類權(quán)重,泛化性能不夠好。另外,在FM中通過將特征隱射到k維空間求內(nèi)積的方式,打破了交叉特征權(quán)重間的隔離性(break the independence of the interaction parameters),增加模型在稀疏場景下學(xué)習(xí)交叉特征的能力。一個交叉特征參數(shù)的估計,可以幫助估計其他相關(guān)的交叉特征參數(shù)。例如,假設(shè)我們有交叉特征gender=male & movie_genre=war,我們需要估計這個交叉特征前的參數(shù) ?,FM通過將 ? ?分解為
的方式進(jìn)行估計,那么對于每次更新male或者war的隱向量 ?時,都會影響其他與male或者war交叉的特征參數(shù)估計,使得特征權(quán)重的學(xué)習(xí)不再互相獨立。這樣做的好處是,對于traindata set中沒有出現(xiàn)過的交叉特征,FM仍然可以給到一個較好的非零預(yù)估值。「優(yōu)勢:」
可以有效處理稀疏場景下的特征學(xué)習(xí)
具有線性時間復(fù)雜度(化簡思路:? ?)
對訓(xùn)練集中未出現(xiàn)的交叉特征信息也可進(jìn)行泛化
不足:
2-way的FM僅枚舉了所有特征的二階交叉信息,沒有考慮高階特征的信息
FFM(Field-aware Factorization Machine)是Yuchin Juan等人在2015年的比賽中提出的一種對FM改進(jìn)算法,主要是引入了field概念,即認(rèn)為每個feature對于不同field的交叉都有不同的特征表達(dá)。FFM相比于FM的計算時間復(fù)雜度更高,但同時也提高了本身模型的表達(dá)能力。FM也可以看成只有一個field的FFM,這里不做過多贅述。
?(2)AFM:Attentional Factorization Machines, 2017 —— 引入Attention機制的FM
AFM全稱Attentional Factorization Machines,顧名思義就是引入Attention機制的FM模型。我們知道FM模型枚舉了所有的二階交叉特征(second-order interactions),即
,實際上有一些交叉特征可能與我們的預(yù)估目標(biāo)關(guān)聯(lián)性不是很大;AFM就是通過Attention機制來學(xué)習(xí)不同二階交叉特征的重要性(這個思路與FFM中不同field特征交叉使用不同的embedding實際上是一致的,都是通過引入額外信息來表達(dá)不同特征交叉的重要性)。舉例來說,在預(yù)估用戶是否會點擊廣告時,我們假設(shè)有用戶性別、廣告版位尺寸大小、廣告類型三個特征,分別對應(yīng)三個embedding:? ?, ? ?,? ?,對于用戶“是否點擊”這一目標(biāo) ?來說,顯然性別與ad_size的交叉特征對于 ?的相關(guān)度不大,但性別與ad_category的交叉特征(如gender=女性&category=美妝)就會與 ?更加相關(guān);換句話說,我們認(rèn)為當(dāng)性別與ad_category交叉時,重要性應(yīng)該要高于性別與ad_size的交叉;FFM中通過引入Field- aware的概念來量化這種與不同特征交叉時的重要性,AFM則是通過加入Attention機制,賦予重要交叉特征更高的重要性。
「模型結(jié)構(gòu):」
AFM在FM的二階交叉特征上引入Attention權(quán)重,公式如下:
?其中 ? ?代表element-wise的向量相乘,下同。
?其中, ? ?是模型所學(xué)習(xí)到的 ? ?與? ?特征交叉的重要性,其公式如下:
我們可以看到這里的權(quán)重 ? ?實際是通過輸入 ? ?和? ?訓(xùn)練了一個一層隱藏層的NN網(wǎng)絡(luò),讓模型自行去學(xué)習(xí)這個權(quán)重。
對比AFM和FM的公式我們可以發(fā)現(xiàn),AFM實際上是FM的更加泛化的一種形式。當(dāng)我們令向量
,權(quán)重 ? ?時,AFM就會退化成FM模型。「優(yōu)勢:」
在FM的二階交叉項上引入Attention機制,賦予不同交叉特征不同的重要度,增加了模型的表達(dá)能力
Attention的引入,一定程度上增加了模型的可解釋性
「不足:」
仍然是一種淺層模型,模型沒有學(xué)習(xí)到高階的交叉特征
四. Embedding+MLP結(jié)構(gòu)下的淺層改造
本章所介紹的都是具備Embedding+MLP這樣結(jié)構(gòu)的模型,之所以稱作淺層改造,主要原因在于這些模型都是在embedding層進(jìn)行的一些改變,例如FNN的預(yù)訓(xùn)練Embedding、PNN的Product layer、NFM的Bi-Interaction Layer等等,這些改變背后的思路可以歸納為:使用復(fù)雜的操作讓模型在淺層盡可能包含更多的信息,降低后續(xù)下游MLP的學(xué)習(xí)負(fù)擔(dān)。
(1)FNN:Factorisation Machine supported Neural Network, 2016 ——
預(yù)訓(xùn)練Embedding的NN模型
FNN是2016年提出的一種基于FM預(yù)訓(xùn)練Embedding的NN模型,其思路也比較簡單;FM本身具備學(xué)習(xí)特征Embedding的能力,DNN具備高階特征交叉的能力,因此將兩者結(jié)合是很直接的思路。FM預(yù)訓(xùn)練的Embedding可以看做是“先驗專家知識”,直接將專家知識輸入NN來進(jìn)行學(xué)習(xí)。注意,FNN本質(zhì)上也是兩階段的模型,與Facebook在2014年提出GBDT+LR模型在思想上一脈相承。
「模型結(jié)構(gòu):」
FNN本身在結(jié)構(gòu)上并不復(fù)雜,如上圖所示,就是將FM預(yù)訓(xùn)練好的Embedding向量直接喂給下游的DNN模型,讓DNN來進(jìn)行更高階交叉信息的學(xué)習(xí)。
「優(yōu)勢:」
離線訓(xùn)練FM得到embedding,再輸入NN,相當(dāng)于引入先驗專家經(jīng)驗
加速模型的訓(xùn)練和收斂
NN模型省去了學(xué)習(xí)feature embedding的步驟,訓(xùn)練開銷低
「不足:」
非端到端的兩階段模型,不利于online learning
預(yù)訓(xùn)練的Embedding受到FM模型的限制
FNN中只考慮了特征的高階交叉,并沒有保留低階特征信息
(2)PNN:Product-based Neural Network, 2016 —— 引入不同Product操作的Embedding層
PNN是2016年提出的一種在NN中引入Product Layer的模型,其本質(zhì)上和FNN類似,都屬于Embedding+MLP結(jié)構(gòu)。作者認(rèn)為,在DNN中特征Embedding通過簡單的concat或者add都不足以學(xué)習(xí)到特征之間復(fù)雜的依賴信息,因此PNN通過引入Product Layer來進(jìn)行更復(fù)雜和充分的特征交叉關(guān)系的學(xué)習(xí)。PNN主要包含了IPNN和OPNN兩種結(jié)構(gòu),分別對應(yīng)特征之間Inner Product的交叉計算和Outer Product的交叉計算方式。
「模型結(jié)構(gòu):」
PNN結(jié)構(gòu)顯示通過Embedding Lookup得到每個field的Embedding向量,接著將這些向量輸入Product Layer,在Product Layer中包含了兩部分,一部分是左邊的 ? ?,就是將特征原始的Embedding向量直接保留;另一部分是右側(cè)的? ?,即對應(yīng)特征之間的product操作;可以看到PNN相比于FNN一個優(yōu)勢就是保留了原始的低階embedding特征。
在PNN中,由于引入Product操作,會使模型的時間和空間復(fù)雜度都進(jìn)一步增加。這里以IPNN為例,其中 ?是pair-wise的特征交叉向量,假設(shè)我們共有N個特征,每個特征的embedding信息 ?;在Inner Product的情況下,通過交叉項公式 ? ?會得到
(其中 ? ?是對稱矩陣),此時從Product層到? ?層(假設(shè) ? ?層有 ?個結(jié)點),對于 ? ?層的每個結(jié)點我們有:,因此這里從product layer到L1層參數(shù)空間復(fù)雜度為 ? ?;作者借鑒了FM的思想對參數(shù)進(jìn)行了矩陣分解:?,此時L1層每個結(jié)點的計算可以化簡為:,空間復(fù)雜度退化 ? ?。「優(yōu)勢:」
PNN通過 ? ?保留了低階Embedding特征信息
通過Product Layer引入更復(fù)雜的特征交叉方式,
「不足:」
計算時間復(fù)雜度相對較高
(3)NFM:Neural Factorization Machines, 2017 —— 引入Bi-Interaction
Pooling結(jié)構(gòu)的NN模型
NFM全程為Neural Factorization Machines,它與FNN一樣,都屬于將FM與NN進(jìn)行結(jié)合的模型。但不同的是NFM相比于FNN是一種端到端的模型。NFM與PNN也有很多相似之出,本質(zhì)上也屬于Embedding+MLP結(jié)構(gòu),只是在淺層的特征交互上采用了不同的結(jié)構(gòu)。NFM將PNN的Product Layer替換成了Bi-interaction Pooling結(jié)構(gòu)來進(jìn)行特征交叉的學(xué)習(xí)。
「模型結(jié)構(gòu):」
NFM的整個模型公式為:
其中 ? ?是Bi-Interaction Pooling+NN部分的輸出結(jié)果。我們重點關(guān)注NFM中的Bi-Interaction Pooling層:
NFM的結(jié)構(gòu)如上圖所示,通過對特征Embedding之后,進(jìn)入Bi-Interaction Pooling層。這里注意一個小細(xì)節(jié),NFM的對Dense Feature,Embedding方式于AFM相同,將Dense Feature Embedding以后再用dense feature原始的數(shù)據(jù)進(jìn)行了scale,即 ? ?。
NFM的Bi-Interaction Pooling層是對兩兩特征的embedding進(jìn)行element-wise的乘法,公式如下:
假設(shè)我們每個特征Embedding向量的維度為 ? ?,則 ?,Bi-Interaction Pooling的操作簡單來說就是將所有二階交叉的結(jié)果向量進(jìn)行sum pooling后再送入NN進(jìn)行訓(xùn)練。對比AFM的Attention層,Bi-Interaction Pooling層采用直接sum的方式,缺少了Attention機制;對比FM莫明星,NFM如果將后續(xù)DNN隱藏層刪掉,就會退化為一個FM模型。
?NFM在輸入層以及Bi-Interaction Pooling層后都引入了BN層,也加速了模型了收斂。
?「優(yōu)勢:」
相比于Embedding的concat操作,NFM在low level進(jìn)行interaction可以提高模型的表達(dá)能力
具備一定高階特征交叉的能力
Bi-Interaction Pooling的交叉具備線性計算時間復(fù)雜度
「不足:」
直接進(jìn)行sum pooling操作會損失一定的信息,可以參考AFM引入Attention
「(4)ONN:Operation-aware Neural Network, 2019 —— FFM與NN的結(jié)合體」
ONN是2019年發(fā)表的CTR預(yù)估,我們知道PNN通過引入不同的Product操作來進(jìn)行特征交叉,ONN認(rèn)為針對不同的特征交叉操作,應(yīng)該用不同的Embedding,如果用同樣的Embedding,那么各個不同操作之間就會互相影響而最終限制了模型的表達(dá)。
我們會發(fā)現(xiàn)ONN的思路在本質(zhì)上其實和FFM、AFM都有異曲同工之妙,這三個模型都是通過引入了額外的信息來區(qū)分不同field之間的交叉應(yīng)該具備不同的信息表達(dá)。總結(jié)下來:
FFM:引入Field-aware,對于field a來說,與field b交叉和field c交叉應(yīng)該用不同的embedding
AFM:引入Attention機制,a與b的交叉特征重要度與a與c的交叉重要度不同
ONN:引入Operation-aware,a與b進(jìn)行內(nèi)積所用的embedding,不同于a與b進(jìn)行外積用的embedding
對比上面三個模型,本質(zhì)上都是給模型增加更多的表達(dá)能力,個人覺得ONN就是FFM與NN的結(jié)合。
「模型結(jié)構(gòu):」
ONN沿襲了Embedding+MLP結(jié)構(gòu)。在Embedding層采用Operation-aware Embedding,可以看到對于一個feature,會得到多個embedding結(jié)果;在圖中以紅色虛線為分割,第一列的embedding是feature本身的embedding信息,從第二列開始往后是當(dāng)前特征與第n個特征交叉所使用的embedding。
在Embedding features層中,我們可以看到包含了兩部分:
左側(cè)部分為每個特征本身的embedding信息,其代表了一階特征信息
右側(cè)部分是與FFM相同的二階交叉特征部分
這兩部分concat之后接入MLP得到最后的預(yù)測結(jié)果。
「優(yōu)勢:」
引入Operation-aware,進(jìn)一步增加了模型的表達(dá)能力
同時包含了特征一階信息與高階交叉信息
「不足:」
模型復(fù)雜度相對較高,每個feature對應(yīng)多個embedding結(jié)果
五. 雙路并行的模型組合
這一部分將介紹雙路并行的模型結(jié)構(gòu),之所以稱為雙路并行,是因為在這一部分的模型中,以Wide&Deep和DeepFM為代表的模型架構(gòu)都是采用了雙路的結(jié)構(gòu)。例如Wide&Deep的左路為Embedding+MLP,右路為Cross Feature LR;DeepFM的左路為FM,右路為Embedding+MLP。這類模型通過使用不同的模型進(jìn)行聯(lián)合訓(xùn)練,不同子模型之間互相彌補,增加整個模型信息表達(dá)和學(xué)習(xí)的多樣性。
(1)WDL:Wide and Deep Learning, 2016 —— Memorization與Generalization的信息互補
Wide And Deep是2016年Google提出的用于Google Play app推薦業(yè)務(wù)的一種算法。其核心思想是通過結(jié)合Wide線性模型的記憶性(memorization)和Deep深度模型的泛化性(generalization)來對用戶行為信息進(jìn)行學(xué)習(xí)建模。
「模型結(jié)構(gòu):」
「優(yōu)勢:」
Wide層與Deep層互補互利,Deep層彌補Memorization層泛化性不足的問題
wide和deep的joint training可以減小wide部分的model size(即只需要少數(shù)的交叉特征)
可以同時學(xué)習(xí)低階特征交叉(wide部分)和高階特征交叉(deep部分)
不足:
仍需要手動設(shè)計交叉特征
「(2)DeepFM:Deep Factorization Machines, 2017 —— FM基礎(chǔ)上引入NN隱式高階交叉信息」
我們知道FM只能夠去顯式地捕捉二階交叉信息,而對于高階的特征組合卻無能為力。DeepFM就是在FM模型的基礎(chǔ)上,增加DNN部分,進(jìn)而提高模型對于高階組合特征的信息提取。DeepFM能夠做到端到端的、自動的進(jìn)行高階特征組合,并且不需要人工干預(yù)。
「模型結(jié)構(gòu):」
DeepFM包含了FM和NN兩部分,這兩部分共享了Embedding層:
左側(cè)FM部分就是2-way的FM:包含了線性部分和二階交叉部分右側(cè)NN部分與FM共享Embedding,將所有特征的embedding進(jìn)行concat之后作為NN部分的輸入,最終通過NN得到。
「優(yōu)勢:」
模型具備同時學(xué)習(xí)低階與高階特征的能力
共享embedding層,共享了特征的信息表達(dá)
「不足:」
DNN部分對于高階特征的學(xué)習(xí)仍然是隱式的
「六.」 復(fù)雜的顯式特征交叉網(wǎng)絡(luò)
無論是以FNN、PNN、NFM、ONN為代表的Embedding+MLP,還是以Wide&Deep和DeepFM為代表的雙路模型,基本都是通過DNN來學(xué)習(xí)高階特征交叉信息。但DNN本身對于特征交叉是隱式的(Implicit)、bit- wise的,因此在這一階段,以DCN、xDeepFM、AutoInt為代表的模型均把思路放在如何以Explicit的方式學(xué)習(xí)有限階(bounded- degree)的特征交叉信息上。
?Bit-wise:even the elements within the same field embedding vector will influence each other.
?(1)Deep&Cross:Deep and Cross Network, 2017 —— 顯式交叉網(wǎng)絡(luò)Cross Net的誕生
Deep&Cross其實也屬于雙路并行的模型結(jié)構(gòu),只不過提出了一種新的模型叫做Cross Net來替代DeepFM中的FM部分。DNN本身雖然具備高階交叉特征的學(xué)習(xí)能力,但其對于特征交叉的學(xué)習(xí)是隱式的、高度非線性的一種方式,因此作者提出了Cross Net,它可以顯式地進(jìn)行特征的高階交叉,CrossNet相比于DNN的優(yōu)勢主要在于:
可以顯式地(Explicitly)學(xué)習(xí)有限階(bounded-degree)的特征交叉
計算時間復(fù)雜度相比于DNN更加低
「模型結(jié)構(gòu):」
DCN模型包含了兩部分,左邊一路是通過CrossNet來顯式地學(xué)習(xí)有限階特征交叉,右邊一路是通過DNN來隱式學(xué)習(xí)交叉特征,進(jìn)一步提高模型的多樣性和表達(dá)能力。
CrossNet的主要思想是顯式地計算內(nèi)積來進(jìn)行層與層之間的信息交叉;另外,CrossNet在設(shè)計上還借鑒了殘差網(wǎng)絡(luò)的思想,使得每一層的輸出結(jié)果能夠包含原始的輸入信息。
對于CrossNet中的某一層,其計算方法如上圖所示。分為三部分:
Feature Crossing:對input embeddings與上一層的輸出進(jìn)行交叉
Bias:偏置項
Input:上一層的輸出(也是本層的輸入)
公式可以表達(dá)為:
其中 ? ?,通過上式得到
,我們可以發(fā)現(xiàn) mapping function正好在擬合兩層網(wǎng)絡(luò)之間的殘差。對于CrossNet中的第 ?層,其能夠捕捉到的特征交叉的最高階為 ? ?。CrossNet本身在計算消耗上也不大,假設(shè)CrossNet共有 ? ?層,輸入的input vector是一個? ?維向量,那么對于每一層來說有 ? ?兩個參數(shù),即? ?個參數(shù),總共 ? ?層,共有
個參數(shù),參數(shù)規(guī)模與輸入的維度 ? ?呈線性相關(guān)。「優(yōu)勢:」
具備顯式高階特征交叉的能力
結(jié)合ResNet的思想,可以將原始信息在CrossNet中進(jìn)行傳遞
「不足:」
CrossNet在進(jìn)行交叉時是bit-wise方式
CrossNet最終的輸出有一定的局限性,CrossNet的每一層輸出都是輸入向量 ? ?的標(biāo)量倍,這種形式在一定程度上限制了模型的表達(dá)能力
證明:
我們令CrossNet的輸入為 ? ?,忽略每一層中的bias項,對于第一次cross,有:
? ?,其中? ?;
對于第二次cross,有:
基于上式進(jìn)行推廣可以得到 ? ?,即證得CrossNet的輸出是輸入? ?的標(biāo)量倍。
這里要注意的是, ? ?與 ? ?并不是線性關(guān)系,這是因為? ?也是關(guān)于 ? ?的函數(shù)。?
「(2)xDeepFM:」 eXtreme Deep Factorization Machine, 2018 —— **Compressed
Interaction Network的誕生**
xDeepFM全稱為eXtreme Deep Factorization Machine,可以看出其是在DeepFM基礎(chǔ)上進(jìn)行了改進(jìn)。xDeepFM的貢獻(xiàn)主要在于提出了壓縮交互網(wǎng)絡(luò)(Compressed Interaction Network),與DCN相同的是,都提出了要cross feature explicitly;但不同的是,DCN中的特征交叉是element- wise的,而CIN中的特征交叉是vector-wise的。
「模型結(jié)構(gòu):」
xDeepFM模型結(jié)構(gòu)如下,整個模型分為三個部分:
Linear Part:捕捉線性特征
CIN Part:壓縮交互網(wǎng)絡(luò),顯式地、vector-wise地學(xué)習(xí)高階交叉特征
DNN Part:隱式地、bit-wise地學(xué)習(xí)高階交叉特征
CIN網(wǎng)絡(luò)的設(shè)計主要分為兩步:交互(interaction)與壓縮(compression)。
在交互部分,如下圖(a)所示,將第 ? ?層的feature map與 ?(輸入層,這里將輸入層表示為一個 ?的tensor,其中m為特征個數(shù),D為embedding的size)。在D的每一個維度上,進(jìn)行外積計算,得到
。在壓縮部分,借鑒了CNN卷積+Pooling的思想,先通過 ? ?個filter將三維的? ?(可看做一張圖片)進(jìn)行壓縮計算,得到
。緊接著在D維上進(jìn)行sum pooling操作,得到最后輸出向量(如c圖中的黃色小圓圈)。經(jīng)過多個串行的壓縮與交互步驟,可以得到多個輸出向量,最終將這些向量concat起來,作為CIN的輸出結(jié)果。
可以看出CIN在計算上相對比較復(fù)雜,但是由于CNN參數(shù)共享機制以及sum pooling層的存在,CIN部分的參數(shù)規(guī)模與特征的Embedding size大小 ? ?是無關(guān)的。假設(shè)輸入field有 ? ?個,共有? ?層,每層有 ? ?個feature map,那么CIN部分的參數(shù)規(guī)模為? ?。
但是在時間復(fù)雜度上,CIN存在很大劣勢,CIN的時間復(fù)雜度為 ? ?。
「優(yōu)勢:」
xDeepFM可以同時學(xué)習(xí)到顯式的高階特征交叉(CIN)與隱式的高階特征交叉(DNN)
在交叉特征的學(xué)習(xí)上,CIN采用了vector-wise的交叉(而不是DCN中的bit-wise交叉)
「不足:」
CIN在實際計算中時間復(fù)雜度過高
CIN的sum-pooling操作會損失一定的信息
(3)AutoInt:Automatic Feature Interaction Learning, 2019 ——
跨領(lǐng)域NLP技術(shù)的引入:Multi-head Self-attention提升模型表達(dá)
AutoInt是2019年發(fā)表的比較新的論文,它的思路和DCN以及xDeepFM相似,都是提出了能夠顯式學(xué)習(xí)高階特征交叉的網(wǎng)絡(luò)。除此之外,AutoInt算法借鑒了NLP模型中Transformer的Multi- head self-attention機制,給模型的交叉特征引入了可解釋性,可以讓模型知道哪些特征交叉的重要性更大。
AutoInt的Attention機制采用了NLP中標(biāo)準(zhǔn)的Q,K,V形式,即給定Query詞和候選的Key詞,計算相關(guān)性
,再用 ? ?對Value進(jìn)行加權(quán)得到結(jié)果。「模型結(jié)構(gòu):」
相比于DCN和xDeepFM采用交叉網(wǎng)絡(luò)+DNN的雙路結(jié)構(gòu),AutoInt直接采用了單路的模型結(jié)構(gòu),將原始特征Embedding之后,直接采用多層Interacting Layer進(jìn)行學(xué)習(xí)(作者在論文的實驗部分也列出了AutoInt+DNN的雙路模型結(jié)構(gòu):AutoInt+)。
AutoInt中的Interacting Layer包含了兩部分:Multi-head Self-Attention和ResNet部分。
在self-attention中,采用的是Q,K,V形式,具體來說:我們只考慮1個head self-attention的情況,假設(shè)我們共有? ?個特征,對于輸入的第 ? ?個feature embedding來說,AutoInt認(rèn)為它與 ? ?個特征交叉后的特征擁有不同的權(quán)重,對于我們第? ?個特征,它與第 ? ?個特征交叉的權(quán)重為:
其中 ? ?,函數(shù)?是衡量兩個向量距離的函數(shù),在AutoInt中作者采用了簡單高效的向量內(nèi)積來計算距離。得到權(quán)重信息后,我們對M個特征的Value進(jìn)行加權(quán):?,得到向量m與其余特征的加權(quán)二階交叉信息。
進(jìn)一步地,作者使用了多個self-attention(multi-head self- attention)來計算不同subspaces中的特征交叉,其實就是進(jìn)一步增加了模型的表達(dá)能力。采用h個multi-head之后,我們會得到h個? ?,將這h個 ?concat起來,得到
。為了保留上一步學(xué)到的交叉信息,AutoInt和CrossNet一樣,都使用了ResNet的思想:
使用ResNet可以使得之前學(xué)習(xí)到的信息也被更新到新的層中,例如第一層原始的embedding也可以被融入到最終的輸出中。
剩余的特征也以同樣的方式進(jìn)行multi-head attention計算,得到
,將這M個向量concat之后連接輸出層得到最終的預(yù)估值。「優(yōu)勢:」
AutoInt可以顯示地、以vector-wise的方式地學(xué)習(xí)有限階(bounded-degree)特征交叉信息
可以以low interacting layer學(xué)習(xí)到higher-order feature interaction
原文這里給出了一個例子,兩層Interacting Layer就可以學(xué)習(xí)到4階特征交叉。定義交叉函數(shù)為
, 假如我們有4個特征 ? ?,第一層Interacting Layer之后,我們可以得到 ?等二階交叉信息,即兩兩特征的二階交叉;將二階交叉送入下一層Interacting Layer之后,由于輸入第一層網(wǎng)絡(luò)融入了二階交叉信息,那么在本層中就可以得到四階交叉,如就可以通過 ? ?得到。?Interacting Layer的參數(shù)規(guī)模與輸入特征個數(shù) ? ?無關(guān)。
七. CTR預(yù)估模型總結(jié)與比較
至此我們基本介紹完成了大多數(shù)常見的CTR預(yù)估模型,當(dāng)然還有MLR、DIN、DIEN等其它的模型,由于篇幅限制暫時沒有進(jìn)行介紹。縱觀整個CTR預(yù)估模型的發(fā)展過程,我們可以總結(jié)出一定的規(guī)律,這一部分主要是對上述模型的關(guān)系圖譜以及特征進(jìn)行總結(jié)。
(1)CTR預(yù)估模型關(guān)系圖譜
現(xiàn)在我們再回頭來看開篇的這張關(guān)系圖:
從上往下,代表了整個CTR預(yù)估的發(fā)展趨勢:
「LR的主要限制在于需要大量手動特征工程來間接提高模型表達(dá),此時出現(xiàn)了兩個發(fā)展方向:」
以FM為代表的端到端的隱向量學(xué)習(xí)方式,通過embedding來學(xué)習(xí)二階交叉特征
以GBDT+LR為代表的兩階段模型,第一階段利用樹模型優(yōu)勢自動化提取高階特征交叉,第二階段交由LR進(jìn)行最終的學(xué)習(xí)
「以FM為結(jié)點,出現(xiàn)了兩個方向:」
以FFM與AFM為代表的淺層模型改進(jìn)。這兩個模型本質(zhì)上還是學(xué)習(xí)低階交叉特征,只是在FM基礎(chǔ)上為不同的交叉特征賦予的不同重要度
深度學(xué)習(xí)時代到來,依附于DNN高階交叉特征能力的Embedding+MLP結(jié)構(gòu)開始流行
「以Embedding+MLP為結(jié)點:」
Embedding層的改造+DNN進(jìn)行高階隱式學(xué)習(xí),出現(xiàn)了以PNN、NFM為代表的product layer、bi-interaction layer等淺層改進(jìn),這一類模型都是對embedding層進(jìn)行改造來提高模型在淺層表達(dá),減輕后續(xù)DNN的學(xué)習(xí)負(fù)擔(dān)
以W&D和DeepFM為代表的雙路模型結(jié)構(gòu),將各個子模塊算法的優(yōu)勢進(jìn)行互補,例如DeepFM結(jié)合了FM的低階交叉信息和DNN的高階交叉信息學(xué)習(xí)能力
顯式高階特征交叉網(wǎng)絡(luò)的提出,這一階段以更復(fù)雜的網(wǎng)絡(luò)方式來進(jìn)行顯式交叉特征的學(xué)習(xí),例如DCN的CrossNet、xDeepFM的CIN、AutoInt的Multi-head Self-attention結(jié)構(gòu)
從整個宏觀趨勢來看,每一階段新算法的提出都是在不斷去提升模型的表達(dá)能力,從二階交叉,到高階隱式交叉,再到如今的高階顯示交叉,模型對于原始信息的學(xué)習(xí)方式越來越復(fù)雜的同時,也越來越準(zhǔn)確。
圖中右側(cè)紅色字體提取了部分模型之間的共性:
「Hand-crafted features:」 LR與W&D都需要進(jìn)行手動的特征工程
「Non-end-to-end:」 GBDT+LR通過樹模型提取特征+LR建模的兩階段,FNN則是FM預(yù)訓(xùn)練embedding+DNN建模的兩階段方式,這兩者都是非端到端的模型
「Multi-embeddings:」 這里是指對于同一個特征,使用多個embedding來提升信息表達(dá)。包括FFM的Field-aware,ONN的Operation-aware
「Attention:」 Attention機制為CTR預(yù)估中的交叉特征賦予了不同的重要性,也增加了一定的可解釋性。AFM中采用單個隱藏層的神經(jīng)網(wǎng)絡(luò)構(gòu)建attention層,AutoInt在Interacting Layer中采用NLP中QKV形式學(xué)習(xí)multi-head self-attention
「Explicitly Interactions:」 DNN本身學(xué)習(xí)的是隱式特征交叉,DCN、xDeepFM、AutoInt則都提出了顯式特征交叉的網(wǎng)絡(luò)結(jié)構(gòu)
「ResNet:」 ResNet的引入是為了保留歷史的學(xué)習(xí)到的信息,CrossNet與AutoInt中都采用了ResNet結(jié)構(gòu)
(2)CTR預(yù)估模型特性對比
這里對比主要包含了一下幾個方面:
No Pretraining:是否需要預(yù)訓(xùn)練
Automatic Feature Engineering:是否自動進(jìn)行特征組合與特征工程
End-To-End:是否是端到端的模型
Low-Order Features:是否包含低階特征信息
High-Order Features:是否包含高階特征信息
Explicitly High-Order Crossing:是否包含顯式特征交叉
結(jié)語
至此我們對于常見的CTR預(yù)估模型的演進(jìn)過程與關(guān)系就講解完畢,縱觀整個過程,CTR預(yù)估模型從開始的LR,到利用樹模型自動化組合特征,再發(fā)展到端到端的Embedding+MLP結(jié)構(gòu),再到如今越來越復(fù)雜的顯式交叉網(wǎng)絡(luò)等,每一次發(fā)展都是在不斷提升模型對于用戶行為的表達(dá)與學(xué)習(xí)能力。CTR預(yù)估不僅是一個數(shù)學(xué)優(yōu)化問題,更是一個工程問題,因此如何能夠以較低的計算成本,高效地提高模型表達(dá)能力將是未來需要努力的方向。
「參考文獻(xiàn):」
[1] Rendle, Steffen. "Factorization Machines." 2011.
[2] Mcartney, D . "Proceedings of the Eighth International Workshop on Data Mining for Online Advertising." Eighth International Workshop on Data Mining for Online Advertising ACM, 2014.
[3] Zhang, Weinan , T. Du , and J. Wang . "Deep Learning over Multi-field Categorical Data: A Case Study on User Response Prediction." (2016).
[4] Product-base Neural Networks for user responses
[5] Xiangnan He, and Tat-Seng Chua. "Neural Factorization Machines for Sparse Predictive Analytics." the 40th International ACM SIGIR Conference ACM, 2017.
[6] Yang, Yi.et. "Operation-aware Neural Networks for User Response Prediction.".
[7] Juan, Yuchin, Lefortier, Damien, and Chapelle, Olivier. "Field-aware Factorization Machines in a Real-world Online Advertising System.".
[8] Xiao, Jun, Ye, Hao, He, Xiangnan, Zhang, Hanwang, Wu, Fei, & Chua, Tat- Seng. . Attentional factorization machines: learning the weight of feature interactions via attention networks.
[9] Cheng, Heng Tze , et al. "Wide & Deep Learning for Recommender Systems." (2016).
[10] Guo, Huifeng, Tang, Ruiming, Ye, Yunming, Li, Zhenguo, & He, Xiuqiang. . Deepfm: a factorization-machine based neural network for ctr prediction.
[11] Wang, Ruoxi, Fu, Bin, Fu, Gang, & Wang, Mingliang. . Deep & cross network for ad click predictions.
[12] Lian, Jianxun, Zhou, Xiaohuan, Zhang, Fuzheng, Chen, Zhongxia, Xie, Xing, & Sun, Guangzhong. . Xdeepfm: combining explicit and implicit feature interactions for recommender systems.
[13] Song, Weiping, Shi, Chence, Xiao, Zhiping, Duan, Zhijian, Xu, Yewen, & Zhang, Ming et. . Autoint: automatic feature interaction learning via self- attentive neural networks.
(完)
總結(jié)
以上是生活随笔為你收集整理的万字长文梳理CTR预估模型发展过程与关系图谱的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 污水处理系统 | 污水处理项目
- 下一篇: 年度全球区块链最有影响力人物排行榜TOP