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