本文主要是對CTR預估中的常見模型進行梳理與總結,並分成模塊進行概述。 每個模型都會從「模型結構」、「優勢」、「不足」三個方面進行探討,在最後對所有模型之間的關係進行比較與總結

文章來源: 天雨粟 https://zhuanlan.zhihu.com/p/104307718

背景

在推薦、搜索、廣告等領域,CTR(click-through rate)預估是一項非常核心的技術,這裏引用阿里媽媽資深算法專家朱小強大佬的一句話:“它(CTR預估)是鑲嵌在互聯網技術上的明珠”。

本篇文章主要是對CTR預估中的常見模型進行梳理與總結,並分成模塊進行概述。每個模型都會從「模型結構」、「優勢」、「不足」三個方面進行探討,在最後對所有模型之間的關係進行比較與總結。本篇文章討論的模型如下圖所示(原創圖),這個圖中展示了本篇文章所要講述的算法以及之間的關係,在文章的最後總結會對這張圖進行詳細地說明。

目錄

本篇文章將會按照整個CTR預估模型的演進過程進行組織,共分爲7個大部分:

  • 「分佈式線性模型」

    • Logistic Regression

  • 「自動化特徵工程」

    • GBDT+LR

  • 「FM模型以及變體」

    • FM(Factorization Machines)

    • FFM(Field-aware Factorization Machines)

    • AFM(Attentional Factorization Machines)

  • 「Embedding+MLP結構下的淺層改造」

    • 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)

  • 「複雜的顯式特徵交叉網絡」

    • DCN(Deep and Cross Network)

    • xDeepFM(Compressed Interaction Network)

    • AutoInt(Automatic Feature Interaction Learning)

  • 「CTR預估模型總結與比較」

    • CTR預估模型關係圖譜

    • CTR預估模型特性對比

一. 分佈式線性模型

Logistic Regression

Logistic Regression是每一位算法工程師再也熟悉不過的基本算法之一了,毫不誇張地說,LR作爲最經典的統計學習算法幾乎統治了早期工業機器學習時代。這是因爲其具備簡單、時間複雜度低、可大規模並行化等優良特性。在早期的CTR預估中,算法工程師們通過手動設計交叉特徵以及特徵離散化等方式,賦予LR這樣的線性模型對數據集的非線性學習能力,高維離散特徵+手動交叉特徵構成了CTR預估的基礎特徵。LR在工程上易於大規模並行化訓練恰恰適應了這個時代的要求。

「模型結構:」

「優勢:」

  • 模型簡單,具備一定可解釋性

  • 計算時間複雜度低

  • 工程上可大規模並行化

「不足:」

  • 依賴於人工大量的特徵工程,例如需要根據業務背知識通過特徵工程融入模型

  • 特徵交叉難以窮盡

  • 對於訓練集中沒有出現的交叉特徵無法進行參數學習

二. 自動化特徵工程

GBDT + LR(2014)—— 特徵自動化時代的初探索

Facebook在2014年提出了GBDT+LR的組合模型來進行CTR預估,其本質上是通過Boosting Tree模型本身的特徵組合能力來替代原先算法工程師們手動組合特徵的過程。GBDT等這類Boosting Tree模型本身具備了特徵篩選能力(每次分裂選取增益最大的分裂特徵與分裂點)以及高階特徵組合能力(樹模型天然優勢),因此通過GBDT來自動生成特徵向量就成了一個非常自然的思路。注意這裏雖然是兩個模型的組合,但實際並非是端到端的模型,而是兩階段的、解耦的,即先通過GBDT訓練得到特徵向量後,再作爲下游LR的輸入,LR的在訓練過程中並不會對GBDT進行更新。

「模型結構:」

通過GBDT訓練模型,得到組合的特徵向量。例如訓練了兩棵樹,每棵樹有5個葉子結點,對於某個特定樣本來說,落在了第一棵樹的第3個結點,此時我們可以得到向量;落在第二棵樹的第4個結點,此時的到向量  ;那麼最終通過concat所有樹的向量,得到這個樣本的最終向量  。將這個向量作爲下游LR模型的inputs,進行訓練。

「優勢:」

  • 特徵工程自動化,通過Boosting Tree模型的天然優勢自動探索特徵組合

「不足:」

  • 兩階段的、非端到端的模型

  • CTR預估場景涉及到大量高維稀疏特徵,樹模型並不適合處理(因此實際上會將dense特徵或者低維的離散特徵給GBDT,剩餘高維稀疏特徵在LR階段進行訓練)

  • GBDT模型本身比較複雜,無法做到online learning,模型對數據的感知相對較滯後(必須提高離線模型的更新頻率)

三. FM模型以及變體

(1)FM:Factorization Machines, 2010 —— 隱向量學習提升模型表達

FM是在2010年提出的一種可以學習二階特徵交叉的模型,通過在原先線性模型的基礎上,枚舉了所有特徵的二階交叉信息後融入模型,提高了模型的表達能力。但不同的是,模型在二階交叉信息的權重學習上,採用了隱向量內積(也可看做embedding)的方式進行學習。

「模型結構:」

FM的公式包含了一階線性部分與二階特徵交叉部分:

在LR中,一般是通過手動構造交叉特徵後,餵給模型進行訓練,例如我們構造性別與廣告類別的交叉特徵:(gender='女' & ad_category='美妝'),此時我們會針對這個交叉特徵學習一個參數  。但是在LR中,參數梯度更新公式與該特徵取值  關係密切:

,當  取值爲0時,參數 就無法得到更新,而  要非零就要求交叉特徵的兩項都要非零,但實際在數據高度稀疏,一旦兩個特徵只要有一個取0,參數  

不能得到有效更新;除此之外,對於訓練集中沒有出現的交叉特徵,也沒辦法學習這類權重,泛化性能不夠好。

另外,在FM中通過將特徵隱射到k維空間求內積的方式,打破了交叉特徵權重間的隔離性(break the independence of the interaction parameters),增加模型在稀疏場景下學習交叉特徵的能力。一個交叉特徵參數的估計,可以幫助估計其他相關的交叉特徵參數。例如,假設我們有交叉特徵gender=male & movie_genre=war,我們需要估計這個交叉特徵前的參數,FM通過將  分解爲

的方式進行估計,那麼對於每次更新male或者war的隱向量  

時,都會影響其他與male或者war交叉的特徵參數估計,使得特徵權重的學習不再互相獨立。這樣做的好處是,對於traindata set中沒有出現過的交叉特徵,FM仍然可以給到一個較好的非零預估值。

「優勢:」

  • 可以有效處理稀疏場景下的特徵學習

  • 具有線性時間複雜度(化簡思路: )

  • 對訓練集中未出現的交叉特徵信息也可進行泛化

不足:

  • 2-way的FM僅枚舉了所有特徵的二階交叉信息,沒有考慮高階特徵的信息

FFM(Field-aware Factorization Machine)是Yuchin Juan等人在2015年的比賽中提出的一種對FM改進算法,主要是引入了field概念,即認爲每個feature對於不同field的交叉都有不同的特徵表達。FFM相比於FM的計算時間複雜度更高,但同時也提高了本身模型的表達能力。FM也可以看成只有一個field的FFM,這裏不做過多贅述。

(2)AFM:Attentional Factorization Machines, 2017 —— 引入Attention機制的FM

AFM全稱Attentional Factorization Machines,顧名思義就是引入Attention機制的FM模型。我們知道FM模型枚舉了所有的二階交叉特徵(second-order interactions),即

,實際上有一些交叉特徵可能與我們的預估目標關聯性不是很大;AFM就是通過Attention機制來學習不同二階交叉特徵的重要性(這個思路與FFM中不同field特徵交叉使用不同的embedding實際上是一致的,都是通過引入額外信息來表達不同特徵交叉的重要性)。

舉例來說,在預估用戶是否會點擊廣告時,我們假設有用戶性別、廣告版位尺寸大小、廣告類型三個特徵,分別對應三個embedding:,  , ,對於用戶“是否點擊”這一目標  來說,顯然性別與ad_size的交叉特徵對於  的相關度不大,但性別與ad_category的交叉特徵(如gender=女性&category=美妝)就會與  更加相關;換句話說,我們認爲當性別與ad_category交叉時,重要性應該要高於性別與ad_size的交叉;FFM中通過引入Field- aware的概念來量化這種與不同特徵交叉時的重要性,AFM則是通過加入Attention機制,賦予重要交叉特徵更高的重要性。

「模型結構:」

AFM在FM的二階交叉特徵上引入Attention權重,公式如下:

其中代表element-wise的向量相乘,下同。

其中,是模型所學習到的  與 特徵交叉的重要性,其公式如下:

我們可以看到這裏的權重實際是通過輸入  和 訓練了一個一層隱藏層的NN網絡,讓模型自行去學習這個權重。

對比AFM和FM的公式我們可以發現,AFM實際上是FM的更加泛化的一種形式。當我們令向量

,權重  

時,AFM就會退化成FM模型。

「優勢:」

  • 在FM的二階交叉項上引入Attention機制,賦予不同交叉特徵不同的重要度,增加了模型的表達能力

  • Attention的引入,一定程度上增加了模型的可解釋性

「不足:」

  • 仍然是一種淺層模型,模型沒有學習到高階的交叉特徵

四. Embedding+MLP結構下的淺層改造

本章所介紹的都是具備Embedding+MLP這樣結構的模型,之所以稱作淺層改造,主要原因在於這些模型都是在embedding層進行的一些改變,例如FNN的預訓練Embedding、PNN的Product layer、NFM的Bi-Interaction Layer等等,這些改變背後的思路可以歸納爲:使用複雜的操作讓模型在淺層儘可能包含更多的信息,降低後續下游MLP的學習負擔。

(1)FNN:Factorisation Machine supported Neural Network, 2016 ——

預訓練Embedding的NN模型

FNN是2016年提出的一種基於FM預訓練Embedding的NN模型,其思路也比較簡單;FM本身具備學習特徵Embedding的能力,DNN具備高階特徵交叉的能力,因此將兩者結合是很直接的思路。FM預訓練的Embedding可以看做是“先驗專家知識”,直接將專家知識輸入NN來進行學習。注意,FNN本質上也是兩階段的模型,與Facebook在2014年提出GBDT+LR模型在思想上一脈相承。

「模型結構:」

FNN本身在結構上並不複雜,如上圖所示,就是將FM預訓練好的Embedding向量直接餵給下游的DNN模型,讓DNN來進行更高階交叉信息的學習。

「優勢:」

  • 離線訓練FM得到embedding,再輸入NN,相當於引入先驗專家經驗

  • 加速模型的訓練和收斂

  • NN模型省去了學習feature embedding的步驟,訓練開銷低

「不足:」

  • 非端到端的兩階段模型,不利於online learning

  • 預訓練的Embedding受到FM模型的限制

  • FNN中只考慮了特徵的高階交叉,並沒有保留低階特徵信息

(2)PNN:Product-based Neural Network, 2016 —— 引入不同Product操作的Embedding層

PNN是2016年提出的一種在NN中引入Product Layer的模型,其本質上和FNN類似,都屬於Embedding+MLP結構。作者認爲,在DNN中特徵Embedding通過簡單的concat或者add都不足以學習到特徵之間複雜的依賴信息,因此PNN通過引入Product Layer來進行更復雜和充分的特徵交叉關係的學習。PNN主要包含了IPNN和OPNN兩種結構,分別對應特徵之間Inner Product的交叉計算和Outer Product的交叉計算方式。

「模型結構:」

PNN結構顯示通過Embedding Lookup得到每個field的Embedding向量,接着將這些向量輸入Product Layer,在Product Layer中包含了兩部分,一部分是左邊的,就是將特徵原始的Embedding向量直接保留;另一部分是右側的 ,即對應特徵之間的product操作;可以看到PNN相比於FNN一個優勢就是保留了原始的低階embedding特徵。

在PNN中,由於引入Product操作,會使模型的時間和空間複雜度都進一步增加。這裏以IPNN爲例,其中是pair-wise的特徵交叉向量,假設我們共有N個特徵,每個特徵的embedding信息  ;在Inner Product的情況下,通過交叉項公式  會得到

(其中  是對稱矩陣),此時從Product層到 層(假設  層有  個結點),對於  層的每個結點我們有:,因此這裏從product layer到L1層參數空間複雜度爲  ;作者借鑑了FM的思想對參數進行了矩陣分解: ,此時L1層每個結點的計算可以化簡爲:,空間複雜度退化  

「優勢:」

  • PNN通過  保留了低階Embedding特徵信息

  • 通過Product Layer引入更復雜的特徵交叉方式,

「不足:」

  • 計算時間複雜度相對較高

(3)NFM:Neural Factorization Machines, 2017 —— 引入Bi-Interaction

Pooling結構的NN模型

NFM全程爲Neural Factorization Machines,它與FNN一樣,都屬於將FM與NN進行結合的模型。但不同的是NFM相比於FNN是一種端到端的模型。NFM與PNN也有很多相似之出,本質上也屬於Embedding+MLP結構,只是在淺層的特徵交互上採用了不同的結構。NFM將PNN的Product Layer替換成了Bi-interaction Pooling結構來進行特徵交叉的學習。

「模型結構:」

NFM的整個模型公式爲:

其中是Bi-Interaction Pooling+NN部分的輸出結果。我們重點關注NFM中的Bi-Interaction Pooling層:

NFM的結構如上圖所示,通過對特徵Embedding之後,進入Bi-Interaction Pooling層。這裏注意一個小細節,NFM的對Dense Feature,Embedding方式於AFM相同,將Dense Feature Embedding以後再用dense feature原始的數據進行了scale,即。

NFM的Bi-Interaction Pooling層是對兩兩特徵的embedding進行element-wise的乘法,公式如下:

假設我們每個特徵Embedding向量的維度爲,則  ,Bi-Interaction Pooling的操作簡單來說就是將所有二階交叉的結果向量進行sum pooling後再送入NN進行訓練。對比AFM的Attention層,Bi-Interaction Pooling層採用直接sum的方式,缺少了Attention機制;對比FM莫明星,NFM如果將後續DNN隱藏層刪掉,就會退化爲一個FM模型。

NFM在輸入層以及Bi-Interaction Pooling層後都引入了BN層,也加速了模型了收斂。

「優勢:」

  • 相比於Embedding的concat操作,NFM在low level進行interaction可以提高模型的表達能力

  • 具備一定高階特徵交叉的能力

  • Bi-Interaction Pooling的交叉具備線性計算時間複雜度

「不足:」

  • 直接進行sum pooling操作會損失一定的信息,可以參考AFM引入Attention

「(4)ONN:Operation-aware Neural Network, 2019 —— FFM與NN的結合體」

ONN是2019年發表的CTR預估,我們知道PNN通過引入不同的Product操作來進行特徵交叉,ONN認爲針對不同的特徵交叉操作,應該用不同的Embedding,如果用同樣的Embedding,那麼各個不同操作之間就會互相影響而最終限制了模型的表達。

我們會發現ONN的思路在本質上其實和FFM、AFM都有異曲同工之妙,這三個模型都是通過引入了額外的信息來區分不同field之間的交叉應該具備不同的信息表達。總結下來:

  • FFM:引入Field-aware,對於field a來說,與field b交叉和field c交叉應該用不同的embedding

  • AFM:引入Attention機制,a與b的交叉特徵重要度與a與c的交叉重要度不同

  • ONN:引入Operation-aware,a與b進行內積所用的embedding,不同於a與b進行外積用的embedding

對比上面三個模型,本質上都是給模型增加更多的表達能力,個人覺得ONN就是FFM與NN的結合。

「模型結構:」

ONN沿襲了Embedding+MLP結構。在Embedding層採用Operation-aware Embedding,可以看到對於一個feature,會得到多個embedding結果;在圖中以紅色虛線爲分割,第一列的embedding是feature本身的embedding信息,從第二列開始往後是當前特徵與第n個特徵交叉所使用的embedding。

在Embedding features層中,我們可以看到包含了兩部分:

  • 左側部分爲每個特徵本身的embedding信息,其代表了一階特徵信息

  • 右側部分是與FFM相同的二階交叉特徵部分

這兩部分concat之後接入MLP得到最後的預測結果。

「優勢:」

  • 引入Operation-aware,進一步增加了模型的表達能力

  • 同時包含了特徵一階信息與高階交叉信息

「不足:」

  • 模型複雜度相對較高,每個feature對應多個embedding結果

五. 雙路並行的模型組合

這一部分將介紹雙路並行的模型結構,之所以稱爲雙路並行,是因爲在這一部分的模型中,以Wide&Deep和DeepFM爲代表的模型架構都是採用了雙路的結構。例如Wide&Deep的左路爲Embedding+MLP,右路爲Cross Feature LR;DeepFM的左路爲FM,右路爲Embedding+MLP。這類模型通過使用不同的模型進行聯合訓練,不同子模型之間互相彌補,增加整個模型信息表達和學習的多樣性。

(1)WDL:Wide and Deep Learning, 2016 —— Memorization與Generalization的信息互補

Wide And Deep是2016年Google提出的用於Google Play app推薦業務的一種算法。其核心思想是通過結合Wide線性模型的記憶性(memorization)和Deep深度模型的泛化性(generalization)來對用戶行爲信息進行學習建模。

「模型結構:」

「優勢:」

  • Wide層與Deep層互補互利,Deep層彌補Memorization層泛化性不足的問題

  • wide和deep的joint training可以減小wide部分的model size(即只需要少數的交叉特徵)

  • 可以同時學習低階特徵交叉(wide部分)和高階特徵交叉(deep部分)

不足:

  • 仍需要手動設計交叉特徵

「(2)DeepFM:Deep Factorization Machines, 2017 —— FM基礎上引入NN隱式高階交叉信息」

我們知道FM只能夠去顯式地捕捉二階交叉信息,而對於高階的特徵組合卻無能爲力。DeepFM就是在FM模型的基礎上,增加DNN部分,進而提高模型對於高階組合特徵的信息提取。DeepFM能夠做到端到端的、自動的進行高階特徵組合,並且不需要人工干預。

「模型結構:」

DeepFM包含了FM和NN兩部分,這兩部分共享了Embedding層:

左側FM部分就是2-way的FM:包含了線性部分和二階交叉部分右側NN部分與FM共享Embedding,將所有特徵的embedding進行concat之後作爲NN部分的輸入,最終通過NN得到。

「優勢:」

  • 模型具備同時學習低階與高階特徵的能力

  • 共享embedding層,共享了特徵的信息表達

「不足:」

  • DNN部分對於高階特徵的學習仍然是隱式的

「六.」 複雜的顯式特徵交叉網絡

無論是以FNN、PNN、NFM、ONN爲代表的Embedding+MLP,還是以Wide&Deep和DeepFM爲代表的雙路模型,基本都是通過DNN來學習高階特徵交叉信息。但DNN本身對於特徵交叉是隱式的(Implicit)、bit- wise的,因此在這一階段,以DCN、xDeepFM、AutoInt爲代表的模型均把思路放在如何以Explicit的方式學習有限階(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 —— 顯式交叉網絡Cross Net的誕生

Deep&Cross其實也屬於雙路並行的模型結構,只不過提出了一種新的模型叫做Cross Net來替代DeepFM中的FM部分。DNN本身雖然具備高階交叉特徵的學習能力,但其對於特徵交叉的學習是隱式的、高度非線性的一種方式,因此作者提出了Cross Net,它可以顯式地進行特徵的高階交叉,CrossNet相比於DNN的優勢主要在於:

  • 可以顯式地(Explicitly)學習有限階(bounded-degree)的特徵交叉

  • 計算時間複雜度相比於DNN更加低

「模型結構:」

DCN模型包含了兩部分,左邊一路是通過CrossNet來顯式地學習有限階特徵交叉,右邊一路是通過DNN來隱式學習交叉特徵,進一步提高模型的多樣性和表達能力。

CrossNet的主要思想是顯式地計算內積來進行層與層之間的信息交叉;另外,CrossNet在設計上還借鑑了殘差網絡的思想,使得每一層的輸出結果能夠包含原始的輸入信息。

對於CrossNet中的某一層,其計算方法如上圖所示。分爲三部分:

  • Feature Crossing:對input embeddings與上一層的輸出進行交叉

  • Bias:偏置項

  • Input:上一層的輸出(也是本層的輸入)

公式可以表達爲:

其中,通過上式得到

,我們可以發現 mapping function正好在擬合兩層網絡之間的殘差。對於CrossNet中的第  層,其能夠捕捉到的特徵交叉的最高階爲  

CrossNet本身在計算消耗上也不大,假設CrossNet共有層,輸入的input vector是一個 維向量,那麼對於每一層來說有  兩個參數,即 個參數,總共  層,共有

個參數,參數規模與輸入的維度  

呈線性相關。

「優勢:」

  • 具備顯式高階特徵交叉的能力

  • 結合ResNet的思想,可以將原始信息在CrossNet中進行傳遞

「不足:」

  • CrossNet在進行交叉時是bit-wise方式

  • CrossNet最終的輸出有一定的侷限性,CrossNet的每一層輸出都是輸入向量  的標量倍,這種形式在一定程度上限制了模型的表達能力

證明:

我們令CrossNet的輸入爲  ,忽略每一層中的bias項,對於第一次cross,有:

,其中 ;

對於第二次cross,有:

,其中  

基於上式進行推廣可以得到  ,即證得CrossNet的輸出是輸入 的標量倍。

這裏要注意的是,  與  並不是線性關係,這是因爲 也是關於  

的函數。

「(2)xDeepFM:」 eXtreme Deep Factorization Machine, 2018 —— **Compressed

Interaction Network的誕生**

xDeepFM全稱爲eXtreme Deep Factorization Machine,可以看出其是在DeepFM基礎上進行了改進。xDeepFM的貢獻主要在於提出了壓縮交互網絡(Compressed Interaction Network),與DCN相同的是,都提出了要cross feature explicitly;但不同的是,DCN中的特徵交叉是element- wise的,而CIN中的特徵交叉是vector-wise的。

「模型結構:」

xDeepFM模型結構如下,整個模型分爲三個部分:

  • Linear Part:捕捉線性特徵

  • CIN Part:壓縮交互網絡,顯式地、vector-wise地學習高階交叉特徵

  • DNN Part:隱式地、bit-wise地學習高階交叉特徵

CIN網絡的設計主要分爲兩步:交互(interaction)與壓縮(compression)。

在交互部分,如下圖(a)所示,將第層的feature map與  (輸入層,這裏將輸入層表示爲一個  的tensor,其中m爲特徵個數,D爲embedding的size)。在D的每一個維度上,進行外積計算,得到

在壓縮部分,借鑑了CNN卷積+Pooling的思想,先通過個filter將三維的 (可看做一張圖片)進行壓縮計算,得到

。緊接着在D維上進行sum pooling操作,得到最後輸出向量(如c圖中的黃色小圓圈)。

經過多個串行的壓縮與交互步驟,可以得到多個輸出向量,最終將這些向量concat起來,作爲CIN的輸出結果。

可以看出CIN在計算上相對比較複雜,但是由於CNN參數共享機制以及sum pooling層的存在,CIN部分的參數規模與特徵的Embedding size大小是無關的。假設輸入field有  個,共有 層,每層有  個feature map,那麼CIN部分的參數規模爲 。

但是在時間複雜度上,CIN存在很大劣勢,CIN的時間複雜度爲。

「優勢:」

  • xDeepFM可以同時學習到顯式的高階特徵交叉(CIN)與隱式的高階特徵交叉(DNN)

  • 在交叉特徵的學習上,CIN採用了vector-wise的交叉(而不是DCN中的bit-wise交叉)

「不足:」

  • CIN在實際計算中時間複雜度過高

  • CIN的sum-pooling操作會損失一定的信息

(3)AutoInt:Automatic Feature Interaction Learning, 2019 ——

跨領域NLP技術的引入:Multi-head Self-attention提升模型表達

AutoInt是2019年發表的比較新的論文,它的思路和DCN以及xDeepFM相似,都是提出了能夠顯式學習高階特徵交叉的網絡。除此之外,AutoInt算法借鑑了NLP模型中Transformer的Multi- head self-attention機制,給模型的交叉特徵引入了可解釋性,可以讓模型知道哪些特徵交叉的重要性更大。

AutoInt的Attention機制採用了NLP中標準的Q,K,V形式,即給定Query詞和候選的Key詞,計算相關性

,再用  

對Value進行加權得到結果。

「模型結構:」

相比於DCN和xDeepFM採用交叉網絡+DNN的雙路結構,AutoInt直接採用了單路的模型結構,將原始特徵Embedding之後,直接採用多層Interacting Layer進行學習(作者在論文的實驗部分也列出了AutoInt+DNN的雙路模型結構:AutoInt+)。

AutoInt中的Interacting Layer包含了兩部分:Multi-head Self-Attention和ResNet部分。

在self-attention中,採用的是Q,K,V形式,具體來說:我們只考慮1個head self-attention的情況,假設我們共有個特徵,對於輸入的第  個feature embedding來說,AutoInt認爲它與  個特徵交叉後的特徵擁有不同的權重,對於我們第 個特徵,它與第  個特徵交叉的權重爲:

其中,函數 是衡量兩個向量距離的函數,在AutoInt中作者採用了簡單高效的向量內積來計算距離。得到權重信息後,我們對M個特徵的Value進行加權: ,得到向量m與其餘特徵的加權二階交叉信息。

進一步地,作者使用了多個self-attention(multi-head self- attention)來計算不同subspaces中的特徵交叉,其實就是進一步增加了模型的表達能力。採用h個multi-head之後,我們會得到h個,將這h個  concat起來,得到

爲了保留上一步學到的交叉信息,AutoInt和CrossNet一樣,都使用了ResNet的思想:

使用ResNet可以使得之前學習到的信息也被更新到新的層中,例如第一層原始的embedding也可以被融入到最終的輸出中。

剩餘的特徵也以同樣的方式進行multi-head attention計算,得到

,將這M個向量concat之後連接輸出層得到最終的預估值。

「優勢:」

  • AutoInt可以顯示地、以vector-wise的方式地學習有限階(bounded-degree)特徵交叉信息

  • 可以以low interacting layer學習到higher-order feature interaction

原文這裏給出了一個例子,兩層Interacting Layer就可以學習到4階特徵交叉。定義交叉函數爲

, 假如我們有4個特徵  ,第一層Interacting Layer之後,我們可以得到  等二階交叉信息,即兩兩特徵的二階交叉;將二階交叉送入下一層Interacting Layer之後,由於輸入第一層網絡融入了二階交叉信息,那麼在本層中就可以得到四階交叉,如就可以通過  

得到。

  • Interacting Layer的參數規模與輸入特徵個數  無關。

七. CTR預估模型總結與比較

至此我們基本介紹完成了大多數常見的CTR預估模型,當然還有MLR、DIN、DIEN等其它的模型,由於篇幅限制暫時沒有進行介紹。縱觀整個CTR預估模型的發展過程,我們可以總結出一定的規律,這一部分主要是對上述模型的關係圖譜以及特徵進行總結。

(1)CTR預估模型關係圖譜

現在我們再回頭來看開篇的這張關係圖:

從上往下,代表了整個CTR預估的發展趨勢:

  • 「LR的主要限制在於需要大量手動特徵工程來間接提高模型表達,此時出現了兩個發展方向:」

    • 以FM爲代表的端到端的隱向量學習方式,通過embedding來學習二階交叉特徵

    • 以GBDT+LR爲代表的兩階段模型,第一階段利用樹模型優勢自動化提取高階特徵交叉,第二階段交由LR進行最終的學習

  • 「以FM爲結點,出現了兩個方向:」

    • 以FFM與AFM爲代表的淺層模型改進。這兩個模型本質上還是學習低階交叉特徵,只是在FM基礎上爲不同的交叉特徵賦予的不同重要度

    • 深度學習時代到來,依附於DNN高階交叉特徵能力的Embedding+MLP結構開始流行

  • 「以Embedding+MLP爲結點:」

    • Embedding層的改造+DNN進行高階隱式學習,出現了以PNN、NFM爲代表的product layer、bi-interaction layer等淺層改進,這一類模型都是對embedding層進行改造來提高模型在淺層表達,減輕後續DNN的學習負擔

    • 以W&D和DeepFM爲代表的雙路模型結構,將各個子模塊算法的優勢進行互補,例如DeepFM結合了FM的低階交叉信息和DNN的高階交叉信息學習能力

    • 顯式高階特徵交叉網絡的提出,這一階段以更復雜的網絡方式來進行顯式交叉特徵的學習,例如DCN的CrossNet、xDeepFM的CIN、AutoInt的Multi-head Self-attention結構

從整個宏觀趨勢來看,每一階段新算法的提出都是在不斷去提升模型的表達能力,從二階交叉,到高階隱式交叉,再到如今的高階顯示交叉,模型對於原始信息的學習方式越來越複雜的同時,也越來越準確。

圖中右側紅色字體提取了部分模型之間的共性:

  • 「Hand-crafted features:」LR與W&D都需要進行手動的特徵工程

  • 「Non-end-to-end:」GBDT+LR通過樹模型提取特徵+LR建模的兩階段,FNN則是FM預訓練embedding+DNN建模的兩階段方式,這兩者都是非端到端的模型

  • 「Multi-embeddings:」這裏是指對於同一個特徵,使用多個embedding來提升信息表達。包括FFM的Field-aware,ONN的Operation-aware

  • 「Attention:」Attention機制爲CTR預估中的交叉特徵賦予了不同的重要性,也增加了一定的可解釋性。AFM中採用單個隱藏層的神經網絡構建attention層,AutoInt在Interacting Layer中採用NLP中QKV形式學習multi-head self-attention

  • 「Explicitly Interactions:」DNN本身學習的是隱式特徵交叉,DCN、xDeepFM、AutoInt則都提出了顯式特徵交叉的網絡結構

  • 「ResNet:」ResNet的引入是爲了保留歷史的學習到的信息,CrossNet與AutoInt中都採用了ResNet結構

(2)CTR預估模型特性對比

這裏對比主要包含了一下幾個方面:

  • No Pretraining:是否需要預訓練

  • Automatic Feature Engineering:是否自動進行特徵組合與特徵工程

  • End-To-End:是否是端到端的模型

  • Low-Order Features:是否包含低階特徵信息

  • High-Order Features:是否包含高階特徵信息

  • Explicitly High-Order Crossing:是否包含顯式特徵交叉

結語

至此我們對於常見的CTR預估模型的演進過程與關係就講解完畢,縱觀整個過程,CTR預估模型從開始的LR,到利用樹模型自動化組合特徵,再發展到端到端的Embedding+MLP結構,再到如今越來越複雜的顯式交叉網絡等,每一次發展都是在不斷提升模型對於用戶行爲的表達與學習能力。CTR預估不僅是一個數學優化問題,更是一個工程問題,因此如何能夠以較低的計算成本,高效地提高模型表達能力將是未來需要努力的方向。

「參考文獻:」

[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.

瞭解更多關於CTR預估與推薦系統的內容,可以 關注公衆號 淺夢的學習筆記

相關文章