推荐系统CTR预估学习路线:引入注意力机制
推薦系統CTR預估學習路線:從LR到FM/FFM探索二階特征的高效實現
推薦系統CTR預估學習路線:利用樹模型自動化特征工程
推薦系統CTR預估學習路線:深度模型
推薦系統CTR預估學習路線:引入注意力機制
作者:Eric陳健鋒 來源:煉丹筆記導語
在廣告、推薦系統CTR預估問題上,早期的完全規則方法被過渡到以LR為代表的機器學習方法,為了充分發揮組合特征的價值,在相當長一段時間里,業界熱衷于使用LR+人工特征工程。但人工組合特征成本高昂 ,在不同任務上也難以復用。2010年FM因子分解方法的出現解決了人工組合特征的困境,2014年Facebook提出的GBDT+LR也給出了一種利用樹模型特點構建組合特征的思路。不過隨著深度學習的崛起,2015年以后,借助非線性自動組合特征能力的深度模型,開始成為業內的主流。從經典DNN到結合淺層的Wide&Deep,用于CTR預估的深度模型在近些年間百花盛開,各種交叉特征建模方法層出不窮,Attention機制也從其他研究領域引入,幫助更好的適應業務,提升模型的解釋性。在這進化路線之下,核心問題離不開解決數據高維稀疏難題,自動化組合特征,模型可解釋。我們梳理了近些年CTR預估問題中有代表性的模型研究/應用成果,并對部分經典模型的實現原理進行詳細剖析,落成文字作為學習過程的記錄。
目錄
0. CTR預估模型進化路線 1. 從LR到FM/FFM:探索二階特征的高效實現1.1 LR與多項式模型1.2 FM模型1.3 FFM模型1.4 雙線性FFM模型 2. GBDT+LR:利用樹模型自動化特征工程 3. 深度模型:提升非線性擬合能力,自動高階交叉特征,end-to-end學習3.1 特征的嵌入向量表示3.2 經典DNN網絡框架3.3 DNN框架下的FNN、PNN與DeepCrossing模型3.4 Wide&Deep框架及其衍生模型3.4.1 Wide部分的改進3.4.2 Deep部分的改進3.4.3 引入新的子網絡 4. 引入注意力機制:提高模型自適應能力與可解釋性4.1 AFM模型4.2 AutoInt模型4.3 FiBiNET模型4.4 DIN模型4.5 DIEN模型 5. 總結(四)引入注意力機制:提高模型自適應能力與可解釋性
直觀上,注意力機制可以借用人類的視覺行為來進行解釋,例如我們觀看一張照片的時候,視覺系統會很自然的將注意焦點集中在某些區域,而自動忽略其他不相關的內容。這種機制被引入到機器學習/深度學習,其中一個著名事件是,2014年Bengio將其提出應用于機器翻譯領域[17],取得SOTA結果。正如上圖所示的,橫軸是英文原句,縱軸是法文翻譯句,像素顏色越淺表示翻譯某單詞時對原句相關單詞的注意力權重越大,機器翻譯時的注意力權重分布是和人類的直覺認知相符的。相比黑盒模型,注意力機制增強了可解釋性,并且這些注意力權重是在翻譯時根據輸入動態計算的,模型的自適應能力也獲得提升。基于這些優點,注意力機制在廣告/推薦系統的排序模型上也有很多的探索和應用,下文列舉一些比較經典的工作。
4.1 AFM模型
首先,承接上文未展開的AFM模型(2017)[15],模型結構圖如上,符號“⊙”表示向量的哈達瑪積,不難看出模型實現的也是一種向量級vector-wise的特征交互。相比NFM模型將Bi-Interaction Pooling層兩兩向量交互后的結果直接求和壓縮成一個向量,AFM引入了attention權重因子來對交互后的向量進行加權求和,以增強不同特征交互對的重要度區分:
其中,attention權重因子由Attention Net計算得到,Attention Net的定義為:
最后,模型的表達式:
不過,如上文所說,AFM的不足是模型限制在二階交叉特征的表達上,缺少更高階信息的建模。
4.2 AutoInt模型
2018年提出的AutoInt模型[18]是一個使用多頭自注意力機制[19]增強模型解釋性,同時又具備高階交叉建模能力的模型。模型結構如上圖,主要創新點在interacting layer,因此下面我們也只圍繞interacting layer討論,其他模塊層不再贅述。下面我們來看interacting layer是怎么利用注意力機制生成有價值的特征組合的。
一層interacting layer的計算過程:
其中,M表示特征field的總數量,em表示第m個特征field的embedding向量。所有特征field都將進行兩兩embedding向量的交互組合,而圖中展示的是第m個field與其他各個field進行交互的示例。第m個特征field與第k個特征field(k=1~M)組合的權重由以下的attention因子決定,
這里的第h個子空間,也就是multi-head中的第h個head,使用多個子空間能豐富特征組合的語義表達。同時,由于進行attention交互的query和key都來自同一張量,即[e1,e2,...,eM],因此interacting layer的核心原理為多頭自注意力機制(Multi-head Self-Attention)。
AutoInt將并行的H個head的輸出進行拼接,得到一個考慮組合信息后的特征向量 (combinatorial feature)
除此之外,AutoInt也加入了其他的trick,例如殘差連接,以實現更深的網絡層數,
最后,模型表達式如下,
其中, RES表示經過若干interacting layer后的第m個考慮組合信息后的特征向量,“⊕”是向量拼接符號。通過級聯多層interacting layer,AutoInt可以以顯式向量級交互方式實現高階特征交叉。
附AutoInt論文中的實驗結果:
注:AutoInt+表示AutoInt + DNN (2-layer MLP)4.3 FiBiNET模型
FiBiNET[20],是結合特征重要性和雙線性特征交互的CTR預估模型,由新浪微博機器學習團隊發表在RecSys19。FiBiNET的整體模型結構如上圖,相比傳統深度學習模型,主要新穎點是加入了SENET Layer和Bilinear-Interaction Layer。
1)SENET Layer:
SENET Layer的主要作用是學習不同特征的重要度,對不同特征向量進行加權。即該Layer的輸入為特征組embedding矩陣 E = [e1, e2, ..., em],Layer內部學習出每組特征的重要度 A = [a1, a2, ..., am],最后輸出的“SENET-Like Embeddings”,V = A * E = [a1*e1, a2*e2, ..., am*em]。SENET Layer本質上也是Attention機制,具體包括三個步驟:
① Sequeen,將每個特征組embedding向量ei壓縮成標量zi,用zi表示第i個特征組的全局統計信息,m個特征組得到壓縮后的統計向量 Z = [z1, z2, ..., zm]。壓縮的方法可以是mean-pooling或max-pooling等,不過原文表示mean-pooling效果要優于max-pooling。
② Excitation,基于壓縮后的統計向量Z,學習特征組的重要度權重A,原文使用的是兩層神經網絡,第一層為維度縮減層,第二層為維度提升層,可形式化表示為:
③ Re-Weight,顧名思義,通過前一步得到的重要度權重A對原始特征組embedding向量進行重新賦權,得到SENET-Like Embeddings:
2)Bilinear-Interaction Layer:
原文作者認為傳統的內積或哈達瑪積形式難以有效對稀疏數據進行交叉特征建模,因此提出了一種雙線性特征交叉方式(這種形式前文介紹雙線性FFM時也有提到),如上圖c,通過引入額外參數矩陣W,先對vi和W進行內積,再與vj進行哈達瑪積,增強模型表達能力來學習特征交叉。如前文提到,引入參數W有3種形式,第一種是所有特征共享一個矩陣W,原文稱為Field-All Type;第二種是一個Field一個Wi,稱為Field-Each Type;第三種是一個Field組合一個Wij,稱為Field-Interaction Type。
回到FiBiNet模型整體結構,原始特征組embedding向量p和經過SENET層輸出的embedding向量q,經過Combination Layer,得到拼接后的向量c:
原文實驗了兩種應用方式,一種是直接對向量c的元素求和并經過sigmoid輸出,得到一個淺層CTR預估模型。另一種是對向量c后接一個DNN深度神經網絡,得到一個深層CTR預估模型。實驗結果表明,同淺層/深層模型下,FiBiNET要優于其他模型,并且深層模型要優于淺層模型。
4.4 DIN模型
Deep Interest Network(DIN)[21]是阿里媽媽廣告算法團隊在2017年提出的,DIN是一個工業應用性很強的方案,特別是在電商領域。在介紹模型創新之前,我們先簡單回顧一下DIN的研究動機。在線上廣告系統或者其他的推薦場景,為了提升用戶體驗,同時最大化平臺方的流量價值,要求我們的排序模型能精準識別用戶興趣,充分利用用戶興趣信息,對<user, ad/item>的匹配度進行打分。對于在線應用,用戶興趣主要來源于對用戶行為數據的刻畫,由多種多樣的行為數據所表達出來的用戶興趣也應該具有多樣性。但這里的一個挑戰是,傳統DNN模型會將這些用戶行為embedding向量通過固定的形式(sum/max/mean等)pooling成一個定長向量作為用戶興趣表示,所有用戶的興趣表示都被映射在一個相同的固定空間,而由于空間維度(即向量維度)的限制,用戶興趣的多樣性特點無法得到充足的表達。
舉個例子,一個用戶在電商網站上的瀏覽歷史中,有30%是美妝相關,30%育兒相關,20%運動健身相關,剩下20%是其他,直觀地看,這個用戶的興趣多樣性分布是很明顯的,但如果我們將這些歷史行為向量(embedding vector)用上述的形式pooling成一個向量,恐怕得到的興趣表示就很模糊,誰都不好解釋,甚至模型也難以理解。
而DIN對這個問題的解決方案是“局部激活”(Local Activation),即根據候選廣告來自適應的為歷史行為向量分配激活權重,以attention-based pooling的方式將其合并作為用戶在該候選廣告下的興趣表示,使得與候選廣告更相關的歷史行為在用戶興趣表示中占更主導的作用。
從特征組合的角度來看,DIN實際上是在建模廣告與用戶歷史行為的交叉特征信息,而“局部激活”的背后原理也正是注意力機制。
除了“局部激活”這一重殺器,DIN論文中還給出了一些非常實用的深度模型技巧,例如,批感知的正則化方法(Mini-batch Aware Regularization)、數據自適應的激活函數(Dice),不過限于篇幅,這里不再展開介紹。
下表是DIN在阿里電商廣告數據集中的離線實驗結果,DIN模型AUC絕對值比Base模型(Embedding&MLP)高0.0059,同時也要優于Wide&Deep、PNN、DeepFM等模型。作者同時也給了在阿里進行的線上A/B testing實驗結果,和Base模型相比,DIN*獲得了10% CTR和3.8% RPM (Revenue Per Mille)的提升。
注:gAUC(用戶級別的group AUC),好處是可兼顧用戶自身內部的廣告排序優劣,消除用戶偏差4.5 DIEN模型
DIEN,全稱Deep Interest Evolution Network[22],也是來自阿里DIN的提出團隊,是DIN的進化版,旨在挖掘用戶行為背后的更高抽象語義的用戶興趣演化規律。這個模型我們不再闡述細節,概括DIEN的兩個主要創新點:
最后,在論文的生產環境數據集上,DIEN模型的離線AUC和線上A/B testing實驗結果,均優于作者較早之前提出的DIN模型。DIEN作為序列模型結合注意力機制建模用戶興趣演化過程,優化業務問題的創造性工作,值得學習和借鑒。
總結
本文第一部分主要介紹CTR預估問題中的線性模型的演變,演變的主要思路是以因子分解的方法解決高維稀疏數據問題,以更有效的實現低階交叉特征。第二部分介紹了非線性模型GBDT+LR,它實現了自動化特征工程。第三、第四部分屬于深度模型的范疇,貫穿其中的是一個基本的DNN(Deep)框架,即sparse input layer -> embedding layer -> interaction layer -> output layer,其中interaction layer被用于以各種形式構建高階交叉特征的信息表達。而Wide&Deep的提出,彌補了Deep對低階信息利用的缺失,同時也豐富了模型架構的可能性。除了Deep部分的interaction layer可被不同形式地改進,Wide部分也被不斷探索和優化,例如以FM、CrossNet替代LR,甚至引入一些新的子網絡,例如CIN。在這些基礎上,注意力機制的引入,也使模型能夠自主充分地挖掘特征的重要性,有更好的自適應能力以及可解釋性。
參考文獻
[1] http://www.cs.cmu.edu/~wcohen/10-605/2015-guest-lecture/FM.pdf [2] https://www.csie.ntu.edu.tw/~b97053/paper/Rendle2010FM.pdf [3] https://www.csie.ntu.edu.tw/~cjlin/papers/ffm.pdf [4] 張俊林:FFM及DeepFFM模型在推薦系統的探索 [5] 美團技術團隊:深入FFM原理與實踐 [6] Practical Lessons from Predicting Clicks on Ads at Facebook, KDD 2014 [7] Efficient Estimation of Word Representations in Vector Space, ICLR Workshop 2013 [8] Deep Learning over Multi-field Categorical Data: A Case Study on User Response Prediction, ECIR 2016 [9] Product-based Neural Networks for User Response Prediction, ICDM 2016 [10] Deep Crossing: Web-Scale Modeling without Manually Crafted Combinatorial Features, KDD 2016 [11] Wide & Deep Learning for Recommender Systems, RecSys Workshop 2016 [12] DeepFM: A Factorization-Machine based Neural Network for CTR Prediction, IJCAI 2017 [13] Deep & Cross Network for Ad Click Predictions, KDD 2017 [14] Neural Factorization Machines for Sparse Predictive Analytics, SIGIR 2017 [15] Attentional Factorization Machines: Learning theWeight of Feature Interactions via Attention Networks, IJCAI 2017 [16] xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems, KDD 2018 [17] Neural Machine Translation by Jointly Learning to Align and Translate, ICLR 2015 [18] AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks, CIKM 2019 [19] Attention Is All You Need, NIPS 2017 [20] FiBiNET: Combining Feature Importance and Bilinear feature Interaction for Click-Through Rate Prediction, RecSys 2019 [21] Deep Interest Network for Click-Through Rate Prediction, IJCAL 2017 [22] Deep Interest Evolution Network for Click-Through Rate Prediction, AAAI 2019更多干貨,請關注微信公眾號:煉丹筆記算法大佬看了流淚,為什么這么好的CTR預估總結之前沒分享(上篇)
算法大佬看了流淚,為什么這么好的CTR預估總結之前沒分享(下篇)
總結
以上是生活随笔為你收集整理的推荐系统CTR预估学习路线:引入注意力机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推荐系统CTR预估学习路线:深度模型
- 下一篇: 推荐系统炼丹笔记:EdgeRec阿里边缘