CTR 預估總結分享 -下篇-

作者:特邀資深煉丹師 Eric 陳健鋒

排版:十方

導語

在廣告、推薦系統 CTR 預估問題上,早期的完全規則方法被過渡到以 LR 爲代表的機器學習方法,爲了充分發揮組合特徵的價值,在相當長一段時間裏,業界熱衷於使用 LR + 人工特徵工程。但人工組合特徵成本高昂 ,在不同任務上也難以複用。2010 年 FM 因子分解方法的出現解決了人工組合特徵的困境,2014 年 Facebook 提出的 GBDT+LR 也給出了一種利用樹模型特點構建組合特徵的思路。不過隨着深度學習的崛起,2015 年以後,藉助非線性自動組合特徵能力的深度模型,開始成爲業內的主流。從經典 DNN 到結合淺層的 Wide&Deep,用於 CTR 預估的深度模型在近些年間百花盛開,各種交叉特徵建模方法層出不窮,Attention 機制也從其他研究領域引入,幫助更好的適應業務,提升模型的解釋性。在這進化路線之下,核心問題離不開解決數據高維稀疏難題,自動化組合特徵,模型可解釋。我們梳理了近些年 CTR 預估問題中有代表性的模型研究 / 應用成果,並對部分經典模型的實現原理進行詳細剖析,落成文字作爲學習過程的記錄。

目錄

  1. CTR 預估模型進化路線
  2. 從 LR 到 FM/FFM:探索二階特徵的高效實現
        1.1 LR 與多項式模型
        1.2 FM 模型
        1.3 FFM 模型
        1.4 雙線性 FFM 模型
  3. GBDT+LR:利用樹模型自動化特徵工程
  4. 深度模型:提升非線性擬合能力,自動高階交叉特徵,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 引入新的子網絡
  5. 引入注意力機制:提高模型自適應能力與可解釋性
        4.1 AFM 模型
        4.2 AutoInt 模型
        4.3 FiBiNET 模型
        4.4 DIN 模型
        4.5 DIEN 模型
  6. 總結

04

引入注意力機制

直觀上,注意力機制可以借用人類的視覺行爲來進行解釋,例如我們觀看一張照片的時候,視覺系統會很自然的將注意焦點集中在某些區域,而自動忽略其他不相關的內容。這種機制被引入到機器學習 / 深度學習,其中一個著名事件是,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 因子決定,

參數 WQuery,WKey,WValue 表示對原始 embedding 向量先進行空間 Rd 到 Rd'的轉換,  是 attention 函數,論文中將這個函數定義爲向量點積,即 <·, ·>。

最後,  表示在第 h 個子空間下,第 m 個特徵 field 經過 interacting layer 與其他特徵 field 進行交互後的輸出,

這裏的第 h 個子空間,也就是 multi-head 中的第 h 個 head,使用多個子空間能豐富特徵組合的語義表達。同時,由於進行 attention 交互的 query 和 key 都來自同一張量,即 [e1,e2,...,eM],因此 interacting layer 的核心原理爲多頭自注意力機制(Multi-head Self-Attention)。

AutoInt 將並行的 H 個 head 的輸出進行拼接,得到一個考慮組合信息後的特徵向量  (combinatorial feature),

除此之外,AutoInt 也加入了其他的 trick,例如殘差連接,以實現更深的網絡層數,

最後,模型表達式如下,

其中,  表示經過若干 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 = [a1e1, a2e2, ..., 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 的方式將其合併作爲用戶在該候選廣告下的興趣表示,使得與候選廣告更相關的歷史行爲在用戶興趣表示中佔更主導的作用。

上面這段話可用如下數學形式進行表示,用  表示用戶的興趣向量,在候選廣告 A 下,用戶的興趣向量  的表達式爲:

其中,  是候選廣告 A 的向量表示,  是用戶歷史行爲向量表示,a(·, ·) 是 attention 函數,wj 是最後計算得到的行爲向量激活權重。

從特徵組合的角度來看,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),好處是可兼顧用戶自身內部的廣告排序優劣,消除用戶偏差

從 DIN 論文實驗的可視化結果來看,和候選廣告相關性高的歷史行爲,確實得到了更高的激活權重,模型獲得很好的可解釋性。

4.5 DIEN 模型

DIEN,全稱 Deep Interest Evolution Network[22],也是來自阿里 DIN 的提出團隊,是 DIN 的進化版,旨在挖掘用戶行爲背後的更高抽象語義的用戶興趣演化規律。這個模型我們不再闡述細節,概括 DIEN 的兩個主要創新點:

  1. 興趣抽取層(Interest Extractor Layer),利用 GRU 序列建模,從用戶歷史行爲中抽取興趣狀態表示 h(t),並且引入輔助 loss 利用下一時刻的行爲信息幫助指導當前時刻 h(t) 的學習,更準確的建模用戶興趣向量。

  2. 興趣演化層(Interest Evolving Layer),引入 AUGRU(GRU with attentional update gate)建模用戶興趣的演化過程,在 AUGRU 的隱狀態更新中引入目標廣告和興趣向量的 attention 因子,目的是使最終輸出給 DNN 網絡的興趣終態 h'(T) 和目標廣告有更高的相關度。

最後,在論文的生產環境數據集上,DIEN 模型的離線 AUC 和線上 A/B testing 實驗結果,均優於作者較早之前提出的 DIN 模型。DIEN 作爲序列模型結合注意力機制建模用戶興趣演化過程,優化業務問題的創造性工作,值得學習和借鑑。

05

總結

本文第一部分主要介紹 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

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/WDvQlLjHrQE4zU3mdBMJfw