背景:設計個性化信息檢索時进倍,用戶行為預測扮演著重要的作用土至。用戶行為預測的目標是估計用戶點擊、購買等行為的概率猾昆,而該概率代表了用戶對該item的興趣程度陶因,用戶之前的行為同時也影響著我們隨后的排序。如何根據(jù)用戶的query選擇正確的ads并對其進行合理的排序垂蜗,不僅極大的影響著用戶點擊楷扬、瀏覽等行為,而且對于搜索廣告的收益也起到重要的作用贴见。
IR任務中烘苹,數(shù)據(jù)大部分為multi-field類型,例如:[weekday=Tuesday, Gender=Male, City=London]片部,我們可以通過one-hot對其進行編碼镣衡,映射為高維稀疏特征。例如档悠,我們可以將上述特征進行one-hot編碼捆探,然后concatenate得到
LR
,其中為特征站粟,為特征權重,b為偏差曾雕。
Degree-2 Polynomial (Poly2)
簡介: LR模型具有計算高效奴烙、可解釋性強等優(yōu)點,但是需要人工抽取交叉特征。而交叉特征對于模型性能起到重要的作用切诀,相比LR線性模型揩环,Poly2設計了特征自動交叉,從而自動計算交叉特征提升模型性能幅虑。
是將丰滑,編碼為一個自然數(shù)的函數(shù)。
FM
簡介: Poly2模型雖然能夠自動抽取交叉特征倒庵,但是當特征維度較高并且稀疏時褒墨,權重難以收斂。針對該問題作者提出了FM算法擎宝,其中正定矩陣郁妈,可以通過特征向量空間漸進表示。
是一個無對角線的上三角矩陣绍申,直接可以計算整個矩陣然后減去對角線噩咪。
FFM
簡介: FM算法將所有特征歸結到一個field,而FFM算法則按照field對不同特征進行區(qū)分极阅,主要體現(xiàn)在交叉項中胃碾。在FM算法中user這個特征對應的latent vector不論是對price、genre還是movie都是相同的筋搏,而FFM算法中則對特征進行歸類仆百,latent vector會區(qū)分交叉filed,模型參數(shù)個數(shù)n(n-1)/2拆又∪逖可以看出來FM算法時FFM算法的一個特例,但是隨著FFM算法對latent vector的細化帖族,F(xiàn)M算法中交叉簡化將不再適用.
其中栈源,,分別表示竖般,對應的field甚垦,代表與交叉的權重。
FwFMs
簡介: FFM算法按照field對latent vector進行區(qū)分涣雕,從而提升模型的效果艰亮。但是FFM算法沒有區(qū)分不同特征交叉的重要性,本文針對不同特征交叉賦予不同的權重挣郭,從而達到更精細的計算交叉特征的目的迄埃。
網(wǎng)絡結構
其中,表示field 兑障,交叉特征的重要性侄非。
AFM
簡介: AFM算法與FwFM算法類似蕉汪,目標都是希望通過對不同交叉特征采用不同權重,從而減少引入噪聲提升模型性能逞怨。
AFM的embedding層后者疤,先讓個field的特征做了element-wise product后,得到個交叉項叠赦,然后AFM引入了一個Attention Net驹马,認為這些交叉特征項每個對結果的貢獻是不同的。例如和的權重重要度除秀,用來表示糯累。從這個角度來看,其實AFM其實就是個加權累加的過程鳞仙。
1: Attention-based Pooling Layer
2:AFM模型結構
其中,棍好,仗岸,,為模型參數(shù)扒怖。
FNN
簡介: LR、FM被廣泛的應用在工業(yè)場景中业稼,但是這些模型對于抽取高階特征顯得無能為力盗痒。深度模型可以學習高階復雜的交叉特征,對于提升模型性能有著重要的作用低散。由于CTR中大部分特征是離散俯邓、高維且稀疏的,需要embedding后才能用nn學習熔号。
FNN模型將embedding層用FM初始化稽鞭,即每個特征對應一個偏置項和一個k維向量。然后參數(shù)向量再隨著訓練不斷學習調整引镊。假設每個field的類別特征都只有一個1值朦蕴,其余為0值,即可進行one-hot編碼弟头,然后做embedding吩抓,Dense Layer里每個Field對應的參數(shù)就是該Field那個不為0的變量對應的FM里的偏置項和k維隱向量。簡單說模型第一層到第二層之間其實是普通的全連接層赴恨,而為0的輸入變量對Dense Layer里的隱單元值不做貢獻疹娶。
FNN模型結構
損失函數(shù)(最小交叉熵)為:
CCPM
簡介: 模型結構整體結構相對比較簡單挣饥,首先將特征映射到embedding稠密向量,然后經(jīng)過卷積神經(jīng)網(wǎng)絡抽取高維特征沛膳,最后通過pooling層抽取主要的高維信息。
PNN
簡介: FNN算法實際上是對特征embedding之后進行concatenate汛聚,再接FC锹安,雖然使用了激活函數(shù)增加了非線性,實際上是對特征進行了加權組合(add 操作)倚舀。PNN算法與FNN算法的區(qū)別在于PNN算法中間多了一層Product Layer層叹哭。其中z為embedding層的線性部分,p為embedding層的特征交叉部分,其他與FNN算法結構相同痕貌。
網(wǎng)絡結構
Product layer分為兩部分舵稠,其中z代表線性信號向量超升,而p代表二次信號向量。
1: Inner Product-based Neural Network
哺徊,即用內積來表示特征的交叉室琢,類似于“且”的關系,為embedding向量落追。
2: Outer Product-based Neural Network
盈滴,即用矩陣乘法來表示特征的交叉,類似于“和”的關系
Wide & Deep
簡介: 線性模型具有計算高效轿钠、可解釋性強等優(yōu)點巢钓,但是模型的泛化性差。深度學習模型對于長尾特征具有更高的泛化性疗垛,并且不需要大量的特征工程症汹。然而當交叉特征稀疏時,深度學習模型容易出現(xiàn)over-generalize继谚。本文提出同時對線性模型和深度模型聯(lián)合訓練烈菌,從而結合線性模型記憶性強、深度模型泛化性強的優(yōu)點花履。
網(wǎng)絡結構
1: The Wide Component
wide部分長處在于學習樣本中的高頻部分芽世,優(yōu)點是模型的記憶性好,對于樣本中出現(xiàn)過的高頻低階特征能夠用少量參數(shù)學習诡壁;缺點是模型的泛化能力差济瓢,例如對于沒有見過的ID類特征,模型學習能力較差
2: The Deep Component
其中旺矾,代表第層蔑鹦,為激活函數(shù)。
deep部分長處在于學習樣本中的長尾部分箕宙,優(yōu)點是泛化能力強涡贱,對于少量出現(xiàn)過的樣本甚至沒有出現(xiàn)過的樣本都能做出預測(非零的embedding向量);缺點是模型對于低階特征的學習需要用較多參才能等同wide部分效果牡辽,而且泛化能力強某種程度上也可能導致過擬合出現(xiàn)badcase
3: Joint Training of Wide & Deep Model
其中,為wide部分的權重,為deep部分的權重宛篇,其中是指交叉特征值纱。
DeepFM
簡介: FM算法仍然屬于wide&deep架構京景,不過在wide部分做了改進星掰,采用FM替換linear layer,從而通過FM算法對交叉特征的計算能力提升模型的整體性能凤跑。其中inner product和deep network共享embedding feature爆安,因此模型能同時從原始特征中學習低階、高階特征仔引,并且不需要專業(yè)特征扔仓。
網(wǎng)絡結構
1:FM component
2:Deep component
3:combination output layer
NFM
簡介: FNN肤寝、wide&deep当辐、DeepFM等算法在deep network部分都是對embedding之后的特征進行concatenate,未能充分進行特征交叉計算鲤看。本文NFM算法則是對embedding直接采用element-wise后sum起來做特征交叉缘揪,然后通過MLP直接將特征壓縮,最后concatenate linear部分和deep部分的特征义桂。
網(wǎng)絡結構
1: Bi-Interaction Layer
其中找筝,代表element-wise product,因此的維度等于的維度慷吊。
2:Hidden Layers
3:Prediction Layer
NFM算法可退化為FM算法堰酿,將向量置為全1的向量疾宏,即有:
DCN
簡介: 目前FM、FFM触创、DeepFM和PNN算法都只計算了2階交叉坎藐,對于更高維度的交叉特征只能通過deep部分去學習。因此作者提出了Deep&cross network,可以任意組合特征岩馍,而且不增加網(wǎng)絡參數(shù)碉咆。
網(wǎng)絡結構
1:embedding and stacking layer
將稀疏特征用embedding進行表示,比如:country=USA蛀恩,以一個稠密向量表示USA這個特征疫铜,然后將所有的特征concatenate為一個向量用于表示輸入。這里將dense特征和embedding特征一起concatenate双谆,然后做為模型的輸入块攒。
2: cross layer
借鑒于residual network的思想 ,在每一層網(wǎng)絡對特征進行交叉
3: deep layer
趣避,其中為relu激活函數(shù)。
4:combination output layer
將經(jīng)過cross layer的輸出x和經(jīng)過deep layer的輸出h進行concat得到最終的特征向量新翎。
xDeepFM
簡介: DCN模型做特征交叉時采用的是特征內積程帕,我們知道inner product得到的是一個標量。
去掉偏執(zhí)項后有
是一個標量,因此多層之后仍是與標量的乘積亏吝,并且特征交叉只是bit-wise級岭埠。
本文通過vector-wise級進行交叉計算,并且不會帶來過高的計算復雜度蔚鸥。從圖中可以看出惜论,整個模型由三部分組成,分別是線性層止喷、CIN(Compressed Interaction Network)和DNN馆类,整體結構仍然屬于wide&deep架構。
根據(jù)前一層隱層的狀態(tài)和原特征矩陣弹谁,計算出一個中間結果乾巧,它是一個三維的張量。
其中预愤,代表field個數(shù)沟于,代表第層的特征向量個數(shù),類似于CNN中的filter鳖粟,而矩陣外積之后的矩陣就是需要卷積的image社裆,就是一個feature map。
其中向图,泳秀。這樣标沪,我們就得到一個pooling vector:。hidden layers的所有polling vectors在連接到output units之前會被concatenated:嗜傅,表示網(wǎng)絡的深度金句。
總結: 從LR到xDeepFM算法,模型的優(yōu)化主要在于從wide和deep兩方面去獲得更多更合理的交叉特征吕嘀。wide部分的優(yōu)化從ploy2违寞、FM、FFM偶房、AFM算法的二階交叉到DCN趁曼、xDeepFM的高階交叉;deep部分的優(yōu)化從FNN對embedding進行concatenate棕洋,到PNN對embedding進行inner product挡闰、outer product,再到NFM對embeding進行bi_interaction掰盘。為了獲得更好的效果摄悯,目前主流的深度學習算法大都采用wide&deep框架,同時結合wide部分和deep部分的優(yōu)點愧捕。
模型復雜度
model | Number of Parameters |
---|---|
LR | m |
Poly2 | m + H |
FMs | m + m * K |
FFMs | m + m * (n-1) * K |
FwFMs | m + m * K + n * (n-1)/2 |
AFM | m + m * K + K * H1 + H1 * 2 + K |
FNN | 1 + n + n * k + (1 + f + f * k) * H1 + H1 * H2 + H2 * 1 |
IPNN | 1 + n + n * k + (1 + f + f * k) * H1 + H1 * H2 + H2 * 1 |
OPNN | 1 + n + n * k + (1 + f + f * k) * H1 + H1 * H2 + H2 * 1 |
Wide&deep | 1 + n + n * k + f * k * H1 + H1 * H2 + H2 |
deepFM | 1 + n + n * k + f * k * H1 + H1 * H2 + H2 * 1 |
NFM | 1 + n + n * k + k * H1 + H1 * H2 + H2 * 1 |
DCN | 1 + n + 2 * d * Lc + d * (m + 1) + m * (m + 1) * (Ld - 1) + 1 + d + m |
xDeepFM | 1 + n + k * H1 * f + H1 * H2 + H2 * 1 + H2 * (1 + H1 * f) |
模型效果
DUPN
簡介: 前面列舉的算法都是針對單點數(shù)據(jù)奢驯,而用戶的行為序列一定程度上代表了用戶當前的興趣,但是行為序列中不是每一次行為都是同等重要的次绘。每一次行為對每一個用戶的重要程度都是不同的瘪阁,因此本文通過user對行為序列做attention計算得到一個user embedding,為了獲得更加通用的user embedding断盛,作者將該user embedding應用到多個任務做multi-task建模罗洗。
輸入item節(jié)點特征包含:
是一個兩層的全連接層。
RIB
簡介: RIB模型和DUPN網(wǎng)絡結構類似于钢猛,不同之處在于attention計算伙菜。另外本文輸入特征中加入商品頁停留時間特征、用戶行為(點擊命迈、瀏覽贩绕、購買、加入購物車)和哪個模塊進入商品頁壶愤,具體特征如下:
Var | Attribute | Description |
---|---|---|
Product ID | SKU(Stock Keeping Unit) | |
Category ID | Product category | |
Home2Product | Enter from homepage | |
ShopList2Product | Enter from category page | |
Sale2Product | Enter from sale page | |
Cart2Product | Enter from carted page | |
SearchList2Product | Enter from searched results | |
Detail_comments | In comment module | |
Detail_specification | In specification module | |
Detail_bottom | At the bottom | |
Cart | Add to cart | |
Order | Order | |
Dwell time | 0 9 seconds | |
Dwell time | 1024 seconds | |
Dwell time | 2560 seconds | |
Dwell time | 61120 seconds | |
Dwell time | 120 seconds |
其中attention計算為:
DIN
簡介: 與DUPN淑倾、RIB算法不同,本文并未采用GRU網(wǎng)絡對用戶歷史行為序列進行建模征椒,而是直接通過attention對行為序列進行加權娇哆。DIN模型通過當前item對用戶歷史行為數(shù)據(jù)進行加權求和計算用戶表征向量,這里通過dice激活函數(shù)計算歷史行為的權重。與候選廣告商品相關的行為賦予更高的權重碍讨,對用戶興趣的表示起主要作用治力。
1:用戶歷史行為向量
其中,代表用戶行為向量勃黍,代表廣告embedding向量宵统。
2:activation function
RELU激活函數(shù)從0點進行分割,大于0原樣輸出覆获,小于0輸出為0马澈,這樣將會導致模型更新緩慢,因此它的改進版PRELU弄息,又叫LeakyRELU的出現(xiàn)痊班,它修正了小于0輸出為0的問題,即使小于0也能更新網(wǎng)絡參數(shù)摹量,加快模型收斂辩块。但是它仍然是在0點進行分割,數(shù)據(jù)分割應該是隨著數(shù)據(jù)而自適應的變化荆永,因此作者提出了PRELU的改進版Dice。
3:自適應歸一化
不歸一化時国章,SGD只需要更新mini-batch中非零稀疏特征具钥。但是加入l2歸一化之后,每個mini-batch需要計算所有參數(shù)液兽,這將會導致計算負擔加重骂删。在CTR任務中,特征較為稀疏并且維度較高四啰,大部分特征只出現(xiàn)幾次宁玫,而小部分特征出現(xiàn)很多次,即長尾分布柑晒,這將會導致模型過擬合欧瘪。一個較為直接的方式,對出現(xiàn)次數(shù)較少的特征進行截斷匙赞,但是這樣將會導致信息的丟失佛掖,因此作者提出了一種根據(jù)特征頻次自適應的更新方式。
1:出現(xiàn)頻次較高的特征給予較小的正則化強度
2:出現(xiàn)頻次較高的特征給予較高的正則化強度
DIEN
簡介: din算法對用戶歷史行為通過當前item計算attention涌庭,獲得最終的user embedding芥被,整個算法計算簡單,易于理解坐榆。但是模型忽略了用戶行為之間的關聯(lián)關系拴魄,因此本文用一個GRU網(wǎng)絡(興趣提取模塊)來計算用戶興趣的關聯(lián)關系。DUPN算法也是通過一個GRU網(wǎng)絡計算用戶歷史行為,然后通過一個additional attention進行加權求和獲得最終的user embedding匹中,本文思路與DUPN類似夏漱,整體結構仍然是通過GRU計算用戶歷史行為,然后通過一個attention對不同行為item進行加權求和职员,得到最終的user embedding麻蹋,不同之處在于本文通過另一個GRU對時序數(shù)據(jù)更新進行控制。
Auxiliary loss
為了充分利用用戶歷史不同的時刻行為焊切,作者在每個時刻加入auxiliary loss用于表征用戶的興趣(用戶點擊item為正扮授、隨機采樣候選集為負)。
Attention
专肪,其中通過候選item和gru輸出計算attention權重刹勃。
Interest Evolving Layer
GRU with attentional input (AIGRU)
Attention based GRU(AGRU)
GRU with attentional update gate (AUGRU)
我們常用attention與GRU輸出進行加權求和得到最終的特征表示,但是本文通過另一個GRU網(wǎng)絡對第一個GRU網(wǎng)絡的輸出進行建模嚎尤,通過attention計算得到當前item與歷史行為item的相關度荔仁,然后通過該相關度得分做節(jié)點更新約束,如果與當前相關性較弱芽死,則趨近于零乏梁,狀態(tài)不更新,最后取最終的狀態(tài)輸出作為最終的特征輸出(作者嘗試了3種不同類型的Interest Evolving Layer )关贵。
參考文獻
[1]Factorization Machines
[2]Field-aware Factorization Machines for CTR Prediction
[3]Wide & Deep Learning for Recommender Systems
[4]Deep Learning over Multi-Field Categorical Data: A Case Study on User Response Prediction
[5]Product-based Neural Networks for User Response Prediction
[6]DeepFM: A Factorization-Machine based Neural Network for CTR Prediction
[7]Neural Factorization Machines for Sparse Predictive Analytics
[8] Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks
[9]Deep & Cross Network for Ad Click Predictions
[10]Deep Interest Network for Click-Through Rate Prediction
[11]Field-aware Factorization Machines for CTR Prediction
[12]Field-weighted Factorization Machines for Click-Through Rate Prediction in Display Advertising
[13] Micro Behaviors: A New Perspective in E-commerce Recommender Systems
[14] xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems