推荐算法炼丹笔记:排序模型CTR点击率预估系列
?CTR點(diǎn)擊率預(yù)估系列家譜
煉丹之前,先放一張CTR預(yù)估系列的家譜,讓脈絡(luò)更加清晰。
(一)FiBiNET:結(jié)合特征重要性和雙線性特征交互進(jìn)行CTR預(yù)估
1.1 背景
本文發(fā)表在RecSys 2019,主要通過動(dòng)態(tài)學(xué)習(xí)不同特征的特征重要性權(quán)重,解決CTR預(yù)估中對(duì)不同場(chǎng)景下不同特征的權(quán)重(ReWeight)重定義問題,同時(shí),雙線性的使用解決稀疏數(shù)據(jù)在特征交叉建模時(shí)的有效性問題。
1.2 創(chuàng)新
由模型結(jié)構(gòu)圖我們可以發(fā)現(xiàn),本文核心結(jié)構(gòu)主要有兩個(gè),Embedding Layer中的SENET Layer和Bilinear-Interaction Layer。(1)其中 SENET Layer又包含3個(gè)步驟,分別是
- 對(duì)每個(gè)Field用Max Pool或者M(jìn)ean Pool 操作的Squeeze Step;
- 對(duì)每個(gè)Field用兩層FC層計(jì)算特征重要性權(quán)重的Excitation;
- 對(duì)原始每個(gè)Field利用Excitation得到的特征重要性權(quán)重重新賦權(quán)的ReWeight。
(2)而 Bilinear-Interaction Layer 層提出一種結(jié)合Inner Product和Hadamard Product方式,并引入額外參數(shù)矩陣W,學(xué)習(xí)特征交叉。主要通過3種方式得到交叉向量,分別是
- 1)Field-All Type:所有特征組交叉時(shí)共享額外參數(shù)矩陣W;
- 2)Field-Each Type:每個(gè)特征組Field-i 維護(hù)一個(gè)參數(shù)矩陣W-i;
- 3)Filed-Interaction Type:每對(duì)交互特征P(i,j)都有一個(gè)參數(shù)矩陣W(i,j)。最后,Bilinear-Interaction Layer 將原始的特征Embedding向量 和 SENET層輸出的Embedding向量分別得到交叉向量p和q。
1.3 效果
(二)DSIN:利用用戶時(shí)序行為中興趣變化進(jìn)行CTR預(yù)估
2.0 前言
在讀本文之前,我們需要先搞清楚兩個(gè)概念,Sequence和Sessions。基于用戶行為Behavior Sequence進(jìn)行興趣特征挖掘的方式目前被用于絕大數(shù)的CTR任務(wù)中。Sequence和Sessions的相同點(diǎn)在于它們都是由Behaviors組成的,但不同的是Sessions是根據(jù)一定的規(guī)則將用戶的歷史點(diǎn)擊行為Behavior 進(jìn)行劃分得到的,也就是說,通過用戶的點(diǎn)擊時(shí)間對(duì)Sequence進(jìn)行劃分后,可以得到多個(gè)Sessions。
2.1 背景
本文發(fā)表在IJCAI 2019,主要通過將用戶的歷史點(diǎn)擊行為劃分為不同session,然后利用Transformer對(duì)每個(gè)Session進(jìn)行學(xué)習(xí)得到興趣向量后,使用BiLSTM學(xué)習(xí)用戶在多個(gè)Session之間的興趣變化,從而更好地完成CTR預(yù)估。
2.2 創(chuàng)新
由模型結(jié)構(gòu)圖我們可以發(fā)現(xiàn),本文核心結(jié)構(gòu)主要有4個(gè)。
1)Session Division Layer完成對(duì)用戶歷史點(diǎn)擊行為的劃分,以30分鐘為劃分依據(jù),得到多個(gè)Sessions;
2)Session Interest Extractor Layer使用Bias Encoding 方式表征不同Session間的順序,同時(shí)考慮到用戶興趣可能來自不同因素,利用 multi-head self-attention對(duì)每個(gè)session 建模得到興趣向量表征;
3)Session Interest Interacting Layer在得到用戶的興趣向量表征之后,利用Bi-LSTM學(xué)習(xí)不同Session之間的由順序帶來的興趣變化;
4)Session Interest Activating Layer利用注意力機(jī)制學(xué)習(xí)不同Session和Item之間的相關(guān)性,混合上下文信息的興趣信息之后,對(duì)距離Item較近的Session賦予更大的權(quán)重。
2.3 效果
(三)DIEN:深度興趣進(jìn)化網(wǎng)絡(luò):
3.0 前言
DIEN在筆者實(shí)際應(yīng)用中,并未復(fù)現(xiàn)出原文的效果。這其中的原因可能很多,我想很多讀過該論文的讀者在進(jìn)行復(fù)現(xiàn),也可能遇到過類似的問題。但從學(xué)習(xí)的角度,不影響我們?nèi)?duì)論文中一些創(chuàng)新點(diǎn)去進(jìn)行學(xué)習(xí)和思考。
3.1 背景
在推薦場(chǎng)景下,用戶的興趣會(huì)隨著時(shí)間(如季節(jié)等)和空間(如不同場(chǎng)景等)的變化而發(fā)生變化,只通過用戶歷史數(shù)據(jù)中的興趣因素,而不關(guān)注興趣的變化,使得現(xiàn)有的一些模型無法很好的在CTR預(yù)估任務(wù)中對(duì)用戶興趣的變化進(jìn)行刻畫捕捉。DIEN利用雙層GRU對(duì)用戶興趣序列進(jìn)行刻畫捕捉。
3.2 創(chuàng)新
由模型結(jié)構(gòu)圖我們可以發(fā)現(xiàn),本文核心結(jié)構(gòu)主要有3個(gè)。
(1)Behavior Layer將用戶瀏覽過的商品按照瀏覽時(shí)間轉(zhuǎn)換成對(duì)應(yīng)的embedding。
(2)Interest Extractor Layer興趣抽取層利用GRU提取用戶興趣特征。具體地,作者加入了一個(gè)二分類模型來計(jì)算興趣抽取的準(zhǔn)確性,選取下一個(gè)行為作為正樣本,也從未點(diǎn)擊的樣本中選取一個(gè)作為負(fù)樣本,別與抽取出的興趣表征結(jié)合輸入到設(shè)計(jì)的輔助網(wǎng)絡(luò)中,得到預(yù)測(cè)結(jié)果,并通過logloss計(jì)算輔助網(wǎng)絡(luò)的損失。
(3)Interest Evolution Layer興趣演化層,利用Attention(局部激活能力)配合 GRU(序列學(xué)習(xí)能力)的形式,,從時(shí)序特征中構(gòu)建與目標(biāo)Item相關(guān)的興趣演化特征。
3.3 效果
(四)DIN:深度興趣網(wǎng)絡(luò)
4.0 前言
DIN(Deep Interest Network)模型在介紹之前,需要對(duì)BaseModel(Embedding+MLP)具有一定了解才能更好的理解DIN模型的創(chuàng)新點(diǎn)和它能夠在實(shí)際生產(chǎn)環(huán)境有效的原因。
4.1 背景
在BaseModel中,不同維度的Embedding在最后進(jìn)行拼接,這樣方法通過NN可以擬合高階非線性關(guān)系,但用戶的Embedding是不變的,這就很難獲取用戶多興趣的場(chǎng)景。
4.2 創(chuàng)新
(1)Attention機(jī)制使用。其實(shí)這點(diǎn)挺有歷史的巧合,因?yàn)镈IN的提出并沒有借鑒已有的Attention概念,它的的出發(fā)點(diǎn)是看到消費(fèi)者往往不是在看同一類東西,模型上如何建模用戶的多峰興趣。因?yàn)橹苯语@示構(gòu)建多峰興趣有些麻煩,所以作者轉(zhuǎn)而用反向激活函數(shù)構(gòu)建一個(gè)和預(yù)測(cè)Item有關(guān)的非參數(shù)化興趣表達(dá)。巧合的是,當(dāng)DIN團(tuán)隊(duì)構(gòu)建好模型后發(fā)現(xiàn)這和NLP領(lǐng)域剛提出的Attention結(jié)構(gòu)一樣,所以論文里就必須寫成Attention。作者認(rèn)為問題的出發(fā)點(diǎn)和解題思路更重要,而不是簡化的看這是不是Attention。
(2)DICE激活函數(shù)的設(shè)計(jì)。由于ReLU和PReLU激活函數(shù)都是在0處進(jìn)行變化,但并非所有輸入都會(huì)在0處變化,因此文章設(shè)計(jì)了Dice激活函數(shù),根據(jù)每層的輸入來自適應(yīng)的調(diào)整激活點(diǎn)的位置。
(3)GAUC的使用。相比于常用的AUC,在CTR預(yù)估場(chǎng)景中,不同的用戶之間存在著差異,這種差異可以理解為一個(gè)閑逛的購物者和一個(gè)要買小米手機(jī)的購物者間的差異。因?yàn)锳UC表示的是正樣本排在負(fù)樣本前面的概率,所以不能很好地解決不同用戶點(diǎn)擊率分布的差異。文章提出GAUC作為線下評(píng)估指標(biāo),通過曝光點(diǎn)擊進(jìn)行加權(quán)平均,較少用戶之間個(gè)性差異對(duì)模型造成的影響。
(4)Adaptive正則化方法。CTR預(yù)估場(chǎng)景下,構(gòu)造的模型越復(fù)雜參數(shù)越多,越容易過擬合。實(shí)際場(chǎng)景中,存在著大量的長尾數(shù)據(jù),這些數(shù)據(jù)的存在一方面在訓(xùn)練過程中增加了復(fù)雜度,另一方面在結(jié)果上產(chǎn)生了過擬合。直接去掉這些長尾數(shù)據(jù)是一種簡單的處理方式,但也丟掉了很多信息。因此,DIN文章中給出了自適應(yīng)正則化調(diào)整的方式,對(duì)高頻減小正則,對(duì)低頻增大正則。
4.3 效果
(五)xDeepFM:線性、顯式、隱式的組合拳
5.1 背景
使用CIN交叉網(wǎng)絡(luò)和DNN的雙路結(jié)構(gòu),同時(shí)以顯式和隱式的方式學(xué)習(xí)高階特征。
5.2 創(chuàng)新
(1)Linear、CIN與DNN的結(jié)構(gòu)化組合。Linear部分從輸入數(shù)據(jù)中學(xué)習(xí)線性特征,交叉網(wǎng)絡(luò)CIN部分由交互(interaction)和壓縮(compression)兩步通過VectorWise角度學(xué)習(xí)高階交叉特征,同時(shí)共享Embedding輸入的方式讓模型更具有適應(yīng)性;
(2)CIN。交叉網(wǎng)絡(luò)通過VectorWise學(xué)習(xí)高階特征之間的交互,特征交互部分在Embedding的每個(gè)維度上進(jìn)行外積計(jì)算。特征壓縮部分借鑒了卷積和池化的方式。同時(shí)最后將多層CIN的輸出進(jìn)行拼接。(3)DNN。通過BitWise隱式的學(xué)習(xí)高階特征。
5.3 效果
(六)DeepFM:將Wide&Deep模型的LR部門替換為FM
6.1 背景
解決在高緯度特征的情況下,人工特征工程的高成本和無法實(shí)現(xiàn)的問題。同時(shí)解決FM只能獲取二階特征,無法獲取高階特征的問題。解決傳統(tǒng)DNN在隱式交叉方式在高稀疏特征無法很好獲取表征的問題。
6.2 創(chuàng)新
(1)FM部分通過顯式向量和點(diǎn)積的方式學(xué)習(xí)二階交叉特征,配合DNN部分使模型對(duì)高階特征組合能夠更好的進(jìn)行特征提取。
(2)Deep部分將原始稀疏特征表示映射為稠密表示,同時(shí)FM和DNN部分共享Embedding層特征表達(dá)。
6.3 效果
(七)AFM:FM串行結(jié)構(gòu)加入Attention機(jī)制:
7.1 背景
串行結(jié)構(gòu),將FM的輸出作為后續(xù)神經(jīng)網(wǎng)絡(luò)的輸入,利用FM解決稀疏特征問題及淺層交互特征,利用深度網(wǎng)絡(luò)解決深層交互特征的獲取。
7.2 創(chuàng)新
(1)和NFM一樣,文章使用Pair-wise Interaction層,同時(shí)在Sum Pooling之后接了一個(gè)FC層。該方法從思路上具有一定的創(chuàng)新性。但實(shí)際中應(yīng)用卻存在一定的問題,較高的時(shí)間復(fù)雜度在實(shí)際復(fù)現(xiàn)中無法通過矩陣實(shí)現(xiàn)。
(2)Attention-based Pooling Layer關(guān)注不同的交叉特征和目標(biāo)之間的關(guān)系,通過加權(quán)的方式處理不同特征對(duì)結(jié)果的貢獻(xiàn)度,同時(shí)利用MLP進(jìn)一步處理訓(xùn)練數(shù)據(jù)中未出現(xiàn)樣本的的評(píng)估問題,從而達(dá)到泛化模型的目的。
7.3 效果
(八)NFM:FM串行引入DNN并加入Bi-interaction Pooling操作
8.1 背景
在FM基礎(chǔ)上,串行加入DNN模型,并使用Bi-interaction Pooling操作對(duì)二階交叉特征進(jìn)行處理,解決傳統(tǒng)FM作為線性模型表達(dá)有限的問題和對(duì)高階交叉特征學(xué)習(xí)不充分的問題。
8.2 創(chuàng)新
Bi-interaction Pooling操作作為NFM的核心,本質(zhì)是Pooling操作。在實(shí)際場(chǎng)景中,我們發(fā)現(xiàn)直接對(duì)Embedding向量進(jìn)行Concat拼接之后接MLP進(jìn)行模型訓(xùn)練在獲取二階交叉特征時(shí)的效果是一般的。Bi-interaction Layer與FM二階交叉相比,沒有引入額外的參數(shù),將Embedding向量進(jìn)行兩兩交叉相乘后對(duì)所有對(duì)應(yīng)元素求和的方式,以線性復(fù)雜度具有良好的實(shí)際應(yīng)用價(jià)值,同時(shí)在曾經(jīng)的CTR競(jìng)賽中一度成為王者模型。
8.3 效果
(九)FNN:使用FM參數(shù)進(jìn)行Embedding初始化
9.1 背景
傳統(tǒng)的FM受限于計(jì)算復(fù)雜度,對(duì)特征只能進(jìn)行二階交叉,對(duì)更高階的特征交叉卻無能為力,同時(shí)實(shí)踐證明,高階的特征交叉組合方式對(duì)CTR預(yù)估模型具有更好的效果,為了解決這個(gè)問題,引入DNN。其實(shí)FNN的思想比較簡單,從模型結(jié)構(gòu)圖里我們就可以看出,主要是利用FM后直接接DNN網(wǎng)絡(luò),利用FM參數(shù)初始化Embedding層。
9.2 創(chuàng)新
二段式訓(xùn)練方式,使用FM層模型的參數(shù)初始化Embedding,替換隨機(jī)初始化方式,然后接DNN進(jìn)行高階特征提取。但這種方式優(yōu)點(diǎn)和缺點(diǎn)都比較明顯,優(yōu)點(diǎn)是使用預(yù)訓(xùn)練初始化的方式,降低了訓(xùn)練的不穩(wěn)定性。缺點(diǎn)是二階段訓(xùn)練方式在應(yīng)用中便利性不夠。
9.3 效果
(十)DCN:替換Wide&Deep模型的Wide部分為Cross
10.1 背景
通過對(duì)比Wide&Deep和DCN網(wǎng)絡(luò)的架構(gòu)圖,不難發(fā)現(xiàn)后者是對(duì)前者Wide部分進(jìn)行了替換,提出CrossNetwork替換Wide用于自動(dòng)化特征交叉,從而無需人工特征工程。
10.2 效果
模型主要由Embedding and Stacking layer、Cross Network、Deep Network、Combination output layer 組成。但相較于其他模型,他的創(chuàng)新點(diǎn)主要在Cross Network 部分,它的設(shè)計(jì)理念是通過參數(shù)共享的方式減少向量壓縮變換時(shí)產(chǎn)生參數(shù)量過多的情況,從而減少模型的過擬合,增強(qiáng)模型的泛化能力。同時(shí)Cross Network的方式將模型復(fù)雜度降為層級(jí)線性增長,具有很好的應(yīng)用價(jià)值。
10.3 效果
(十一)PNN:在Embedding MLP模式中設(shè)計(jì)加入Product Layer
11.1 背景
傳統(tǒng)Embedding+MLP的方式并不能很好對(duì)高階交叉特征進(jìn)行獲取,同時(shí)FNN用FM初始化參數(shù)接DNN的方式也并不完美,針對(duì)這些缺點(diǎn)PNN進(jìn)行了改進(jìn),并不只是關(guān)注高階交叉特征,通過設(shè)計(jì)Product層對(duì)特征進(jìn)行交叉組合,改變?cè)袑?duì)特征進(jìn)行ADD的操作方式。
11.2 創(chuàng)新
Product Layer的設(shè)計(jì),是本文的核心結(jié)構(gòu)。Product層利用內(nèi)積(Inner PNN)和外積(Outer PNN)兩種方式實(shí)現(xiàn)對(duì)特征的交叉組合。其中,IPNN本質(zhì)上利用共享參數(shù)來減少參數(shù)量,采用一階矩陣分解來近似矩陣結(jié)果的同時(shí)犧牲了一定的精度,保證計(jì)算開銷控制在可接受的范圍內(nèi)。OPNN,從公式層面,該方法的時(shí)間空間復(fù)雜度比IPNN更高,作者使用了Sum Pooling的方式來降低復(fù)雜度,但同時(shí)也造成了精度的嚴(yán)重?fù)p失。
11.3 效果
(十二)AutoInt:利用多頭注意力構(gòu)造高階特征
12.1 背景
CTR預(yù)估領(lǐng)域面臨著諸多挑戰(zhàn),輸入特征的稀疏高維問題,高階特征的計(jì)算復(fù)雜度問題等。本文將數(shù)值特征和類別特征映射到同一個(gè)低維空間,利用帶殘差連接的多頭注意力機(jī)制顯式的進(jìn)行交叉特征獲取,提出了一種能夠自學(xué)習(xí)特征高階交叉的方法。
12.2 創(chuàng)新
Interacting Layer是本篇論文中最核心的創(chuàng)新點(diǎn),借鑒了NLP問題中的Multi-head Self-Attention方法,利用Key-Value Attention,每個(gè)Attention Head對(duì)應(yīng)三個(gè)轉(zhuǎn)換矩陣,Query、Key、Value。本文利用內(nèi)積的方式計(jì)算每個(gè)特征與其他特征的相似度,然后通過計(jì)算softmax歸一化注意力分布后,加權(quán)得到新特征。以上步驟為一層Attention,作者簡單的拼接多個(gè)Attention head的輸出,引入標(biāo)準(zhǔn)的殘差連接作為最終輸出,構(gòu)造更高階的組合特征。
12.3 效果
引用
- 1)FiBiNET:Combining Feature Importance and Bilinear feature Interaction for Click-Through Rate Prediction
- 2)Deep Session Interest Network for Click-Through Rate Prediction
- 3)AutoInt_Automatic Feature Interaction Learning via Self-Attentive Neural Networks
- 4)Deep Interest Evolution Network for Click-Through Rate Prediction
- 5)Deep Interest Network for Click-Through Rate Prediction
- 6)Product-based Neural Networks for User Response Prediction
- 7)Deep & Cross Network for Ad Click Predictions
- 8)Deep Learning over Multi-field Categorical Data_A Case Study on User Response Prediction
- 9)Attentional Factorization Machines - Learning the Weight of Feature Interactions via Attention Networks
- 10)DeepFM_A Factorization-Machine based Neural Network for CTR Prediction
- 11)Neural Factorization Machines for Sparse Predictive Analytics
- 12)xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems
作者:九羽
公眾號(hào):煉丹筆記
http://weixin.qq.com/r/XSjP1zrEzGezrX60931P (二維碼自動(dòng)識(shí)別)
煉丹筆記推薦算法煉丹筆記:電商搜索推薦業(yè)務(wù)詞匯表
推薦算法煉丹筆記:推薦系統(tǒng)采樣評(píng)估指標(biāo)及線上線下一致性問題
推薦算法煉丹筆記:CTR點(diǎn)擊率預(yù)估系列入門手冊(cè)
2020年推薦系統(tǒng)工程師煉丹手冊(cè)
總結(jié)
以上是生活随笔為你收集整理的推荐算法炼丹笔记:排序模型CTR点击率预估系列的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 搜索推荐炼丹笔记:Transformer
- 下一篇: 搜索推荐炼丹笔记:融合GNN、图谱、多模