李春秋,卜天然,何 軍
隨著移動互聯網的高速發展,CTR 預估廣泛應用于推薦系統、信息檢索和在線廣告等領域,點擊率預估在上述領域占有越來越重要的地位.然而點擊率預估場景下的數據是高維稀疏的,因此,需要找到與點擊率高度相關的特征,并對特征進行有效組合.隨著機器學習技術的發展,因子分解機(Factorization Machines,FM)[1]利用二階特征組合,計算任意兩個特征嵌入向量的內積作為特征組合的權重,由于FM 能夠處理大規模稀疏特征和復雜度低的優點,被廣泛應用到工業界領域并取得良好的效果.Attentional factorization machines(AFM)[2]通過一個注意力網絡學習不同特征交互的重要性,但忽略了特征域的交互和不同輸入樣本的區別.Input?aware Factorization Machines(IFM1)[3]和Dual Input?aware Factor?ization Machine(DIFM)[4]考慮每個輸入實例的唯一性,并從bit?wise 和vector?wise 方面為不同輸入實例中的相同特征學習一個唯一的輸入感知因子,但是沒有考慮到特征域的交互影響,且忽略了層次化特征的交互對輸入感知因子的影響.上述方法在一定程度上提高了CTR 模型的預測能力,但仍存在明顯的缺點,FM 同等對待所有的特征,對所有的兩兩特征都做了等權重的交叉,但會引入額外的噪聲;給定特征的表示在不同的輸入樣本之間共享會限制CTR 模型的預測能力.
針對這些問題,根據每個實例的唯一性,通過允許相同的特征在不同的實例中具有不同的預測能力,并且結合多語義特征域的交互影響,提出了一個適用于CTR 預測任務的模型——深度協同感知因子分解機(Deep Cooperation?aware Factorization Machine,DCFM).首先,考慮了輸入感知和特征域交互感知,在學習輸入感知因子相比DIFM 新增了層次化特征域交互的影響,以重新加權原始特征表示.其次,在學習特征域交互感知時,考慮到了特征的多語義特點.最后,提出一個三重輸入感知網絡,同時對特征的field?wise、vector?wise、bit?wise 進行輸入感知因子的學習.分析和實驗結果表明,DCFM 模型有效地提高了點擊率預估的準確度.
點擊率預估是計算廣告和推薦算法中的一個關鍵環節,在機器學習領域將其視為一個二分類問題,即預測用戶是否會點擊一個商品.邏輯回歸模型(Logistic Regression,LR)[5]是點擊率預估最經典的方法,在線預測速度快,結構簡單,可解釋性強,然而由于LR 是一個線性模型,無法進行特征交叉,因此為了提高點擊率預估的準確性需要大量的人工特征工程.因子分解機FM[1]的提出解決了高維稀疏數據下的自動特征組合問題,用低維稠密的向量提高了模型的泛化能力并減少了計算復雜度.特征域信息很重要,但FM 沒有考慮特征域信息,Field?aware Factorization Machines(FFM)[6]通過引入特征所屬域的信息來提高模型準確度,特征在各自特征域學習一個隱向量,但由于時間復雜度高且不能表達高階信息,導致其并不能廣泛使用.隨著深度學習的發展,其擬合高階特征的能力被研究人員引入點擊率預估領域.FNN[7]利用FM 預訓練的隱向量輸入神經網絡來組合高階特征.Product?based Neural Networks(PNN)[8]將輸入特征進行內積/外積后的向量作為深度神經網絡的輸入,然而上述模型都是對高階特征建模,忽略了低階特征.Wide&Deep[9]模型結合了LR 模型和DNN 網絡,同時對低階和高階特征進行學習,但依然需要人工特征工程,DeepFM[10]利用DNN 和FM 聯合訓練,實現了高階特征和低階特征的組合學習.DCN[11]利用交叉網絡和DNN 網絡學習特征的關聯關系.但是上述模型沒有考慮特征域的交互、多語義特性和不同樣本對特征的影響.Interaction?aware Factorization Machines(IFM2)[12]首次將特征域信息融入到特征交互學習中,研究了特征在不同特征域交互時的不同作用.DIFM[4]研究了同一個特征在不同樣本中的作用,同時考慮了bit?wise 和vector?wise 兩個層面信息.
受到AFM[2]、DIFM[4]、IFM2[12]等研究成果的啟發,提出深度協同感知因子分解機(DCFM),DCFM 的網絡結構如圖1 所示,包含以下5 個模塊:①稀疏輸入和嵌入層,其中嵌入層包含特征嵌入層和多域嵌入層;②輸入感知網絡,包含三重因子估計網絡層、組合層和特征表示調整層;③多語義交互網,包含兩兩特征域之間交互、門網絡和矩陣映射;④協同感知融合層;⑤輸出層.

圖1 DCFM 網絡結構圖
稀疏輸入層和嵌入層被廣泛應用在深度CTR 預估模型中,例如AFM[2]和DeepFM[9].稀疏輸入層對原始輸入特征采用稀疏表示.嵌入層能夠將稀疏特征嵌入到一個低維、稠密的實值向量中.DCFM 使用兩種維度的嵌入矩陣V和Ui,i=1,2,…,K,分別作為特征嵌入和多域嵌入的查詢.
2.1.1 稀疏輸入
假設每個輸入實例x={x1,x2,…,xh},包含h個特征和一個目標y,xi是第i個特征值.定義非零特征的成對枚舉:
2.1.2 特征嵌入
特征是可以分層的,例如“商品標簽”和“商品id”都屬于更加層次化的“商品域”.在實踐中,根據特征描述的商品屬性和用戶/上下文屬性進行分類[13](即如圖1 所示的用戶特征、商品特征和上下文特征).假設有h個特征,劃分為M個層次化特征域,F(h)表示特征h屬于的層次化特征域.特征嵌入輸出是一個連接的特征嵌入向量fm是第m個層次化特征域連接的特征嵌入向量,fm=concat(vn|F(n)=m),vi∈Rk第i個 特征嵌入向量,k是嵌入維度.接下來,將sum?pooling操作應用于fm,計算層次化特征域向量表示:最后連接所有的層次化特征域向量表示得到
2.1.3 多域嵌入
根據IFM[12]文獻的研究,域嵌入從field 方面學習特征域交互,但忽略了特征多語義,因為不同的特征交互可能會對點擊有相反的效果,出現問題的原因是不同語義子空間特征交互多語義造成的,所以單域不能充分學習到重要特征域交互.為了解決上述問題,引入多域嵌入.多域嵌入是對同一個特征field 有多個嵌入矩陣,分別表示不同的特征語義空間.多域嵌入的輸出是K個連接的特征嵌入向量表示第j個語義空間的第i個特征的嵌入向量,kf是嵌入維度.
2.2.1 三重因子估計網絡層
三重輸入感知網絡層包含Cross 網絡和MF 網絡兩部分.Cross 網絡從vector?wise 和bit?wise 角度進行特征交互.MF 網絡學習高層特征域間的特征交互,稱為hierarchical field?wise 特征交互.
Cross 網 絡:受 到DCN?V2[14]中Cross 網 絡在建模特征交互方面的成功應用,其網絡結構如圖2 所示.在文中使用該特征交互網絡在vector?wise 和bit?wise 角度學習輸入感知因子.Cross 網絡的核心是cross 層,它可以顯示建模特征交互.下面公式展示了第l+1 層cross 層,

圖2 Cross 網絡
其中:☉表示按元素相乘;x0∈Rd是包含原始一階特征的基礎層,通常設置為嵌入層Ev;xl,xl+1∈Rd,分別表示第(l+1)Cross 層的輸入和輸出.對于一個l層的Cross 網絡,多項式的最高階數是l+1,該網絡包含的所有特征交互都能達到最高階.從文獻[14]可知,Cross 網絡同時從bit?wise 和vector?wise 角度進行特征交互.相比DIFM[4]中分別使用多頭注意力機制和MLP 進行vector?wise 和bit?wise 的特征交互,Cross 網絡使用一個網絡結構且降低了計算量和參數.為了保留原始嵌入向量的一些信息,在Cross 網絡之后,利用殘差網絡將原始特征嵌入向量添加到Cross 網絡的輸出中:
MF 網絡:該網絡主要學習兩兩層次化特征域間的特征交互,如圖3 所示.所有層次化域特征向量對進行元素積運算:

圖3 MF 網絡
其中:r[i][j]∈R是一個權重,用來學習層次特征域i和j之間的相互作用強度,☉表示兩個向量的元素乘積,Ofield∈Rk.
在實際的工業系統中,特征字段的數量通常為10 個或更多,但是層次化特征域的數量通常小于4 個,減少了計算量和過擬合的風險.這種分層字段方式是受YouTube 啟發的,根據它們描述的是商品的屬性和用戶/上下文的屬性[13].如圖3 所示,有3 個MF 分別為每一對層次用戶、商品和上下文信息學習特征交互,稱為field?wise 角度特征交互.
2.2.2 組合層
基于Ovec_bit和Ofield的輸入感知因子計算如下:
其中:Pvec_bit∈Rd×h和Pfield∈Rk×h表示權重矩陣,是Ovec_bit和Ofield映射到j維的特征向量,將兩個中間結果結合起來:
其中:mx∈Rh是對應的輸入感知因子,考慮bit?wise、vector?wise 和field?wise 三個層次的特征交互.
2.2.3 特征表示調整層
當獲得三重因子估計層的輸出mx,mx用來改善特征權重wi和嵌入向量vi.該層的輸入x是給定的wi、vi和上一層的輸入感知因子mxi.特征表示調整層的定義如下:
其中:mxi是mx中第i個元素,wxi和vxi表示對于特定輸入x提煉后的特征表示,該表示更準確,提供信息更有價值.
2.3.1 Pair-wise 交互層和門網絡
交互層枚舉交互潛在向量,每一個向量都是嵌入層中兩個嵌入向量的元素乘積.受文獻[15]的啟發,采用混合專家(mix?of?Experts,MoE)的觀點[16],基于MoE 的模型由兩個部分組成:專家(通常是一個小網絡)和門控(輸入函數).在實際應用中,不依賴單個語義的特征域交互,而是在多個語義的特征域空間交互,然后利用輸入的多域空間嵌入學習一個門函數自動組合多語義的域交互.設置域的pair?wise 交互為PI:
其中:Iij∈,K表示語義空間的數量,Gm(·)是一個門網絡,輸入是多域嵌入的池化后結果Eu∈,輸出是一個softmax 函數,動態決定不同語義特征域交互的重要性.
2.3.2 映射矩陣
嵌入矩陣V和U具有不同的嵌入維度,一般情況下:
因為維度不匹配,所以通過矩陣映射把維度kf映射到k;其中,D∈,Fi,j∈Rk表 示特征域i和j交互的結果,考慮了不同的語義空間.
2.4.1 Attention Net
該層融合了2.2 和2.3 提出的輸入感知和多語義交互感知的結果,并考慮了特征交互的重要性.受到文獻AFM[2]的啟發,當特征嵌入vi和vj交互時,因不同的特征交互重要性不一樣,且存在部分噪聲信息,所以利用一個注意力網絡學習該特征交互的重要性,記為Ti,j,計算如下:
其中:a'ij是注意力網絡的隱藏神經元數量和τ表示用來控制預測的隨機性的超參數,在應用softmax 之前,通過縮放logit[17],控制特征方面的有效性強度.對于(τ→∞),所有交互的重要性幾乎相同,對最終預測的影響有限;對于(τ→0)時,期望回報最高的交互向量的概率趨于1,其他交互忽略.該模塊如圖1 的Attention Net.
2.4.2 注意力網絡(Attention)
注意力網絡本質上是一種分配機制,其主旨是習得對象相對重要的特征,并重新分配權重.本文通過注意力網絡挖掘數據之間的關聯性,進而突出其中的重要特征,并為重要特征賦予更大的權重.
2.4.3 協同感知因子分解機(CFM)
綜上所述,給出CFM 公式:
在U和D上應用L2 正則化,F控制正則化強 度,并 在pair?wise 交互層上使用dropout[18]防止過擬合.CFM 綜合考慮了三重交互的輸入感知、多語義特征域交互和特征交互重要性.
現在很多工作思路是共同訓練兩個并行網絡,靈感來自于wide&deep 模型[10].受到該思路的啟發,提出了CFM 和MLP 并行訓練的版本,稱為深度協同感知因子分解機(DCFM).
2.5.1 多層感知機
使用一個多層感知機(MLP)網絡捕獲非線性的、高階的特征交互.輸入是所有字段嵌入向量的拼接,即Ev.在輸入Ev上構造一個完全連接的層堆棧.全連接層的定義如下:
其中:L表示隱藏層的數量,WL、bL、σL分別表示權重矩陣、偏置向量和激活函數.最后一層只有一個神經元,生成一個密集實值特征向量hL,即ydnn.
2.5.2 深度協同感知因子分解機
結合CFM 的輸出yCFM和MLP 網絡的輸出ydnn,得到y^,所有的參數都是聯合訓練的:
其 中:yCFM是CFM 的輸出,ydnn是deep 側的輸出.
2.5.3 損失函數
對于二分類任務,學習過程的目標是最小化以下目標函數(log loss):
其 中:yi∈{ 0,1} 是第i個實例的真實標簽,是預估的CTR(這里的σ是sig?mod 函數),N是訓練樣本的總數.
Avazu 數據集是在2014 年Avazu 點擊率預測競賽中發表,包含有4 000 萬個數據實例的點擊日志,每個點擊數據,有24 個特征,為了使模型的準確率更高,泛化能力更強,將數據集隨機劃分為兩個部分進行訓練,其中80%用于訓練,20%用于測試.Criteo 數據集包含一個月的廣告點擊日志,含有1 億個數據實例,13個連續特征和26 個分類特征;選擇連續7 天的樣本進行訓練,第8 天樣本進行評估.
AUC 和交叉熵損失Logloss 是評估點擊率預估性能的兩個重要指標.AUC 反映了點擊率預估模型將正樣本排在負樣本前面的概率大小.交叉熵損失是衡量二分類問題常用的損失函數,損失值越小,預測得越準確.通常來說,AUC 或Logloss 上0.001 的提高即被認為對CTR 預測有重要意義.
為了驗證模型的有效性,實驗選取FM[1]、AFM[2]、DIFM[4]、FFM[6]、DeepFM[9]和XDeepFM[19]模型進行對比.以下是對模型的介紹:
FM:利用特征隱向量學習二階特征組合,可對很少出現的組合進行建模,增強了模型的泛化性.
AFM:在FM 的基礎上引入注意力模塊,給所有的特征交互分配對應的權重向量,改進了FM 均等對待所有特征的缺點.
DIFM:可自適應地在bit?wise 和vector?wise上對原始特征表示進行重新修正.
FFM:域感知因子分解機,是FM 的擴展模型.每個特征對于不同特征域都有單獨的嵌入向量,與來自不同特征域的嵌入向量進行交互.
DeepFM:主要是利用因子分解機將稀疏特征編碼轉換成低維嵌入向量并與深度神經網絡進行結合,這兩部分共享相同的輸入向量,實現對低階和高階特征的同時提取.
XDeepFM:一個利用壓縮交互網絡對特征顯式建模的深度學習模型.
CFM:協同感知因子分解機,Criteo 中不能得到層次化特征域,所以估計網絡層中不包含MF 網絡.
DCFM:深度協同感知因子分解機,在CFM基礎上增加并行MLP 網絡聯合訓練.
所有對比模型都是基于TensorFlow 實現的,為了公平地比較,所有模型都是使用Adam(學習率:0.001)優化器優化對數損失進行學習.對于所有方法,Criteo 和Avazu 的嵌入維度分別設置為20 和40,與DIFM[4]中的參數設置相同.每層神經元數量的默認設置為:DeepFM、DIFM 和DCFM 中 的DNNs 層 為256;XDeepFM中CIN 層為200,AFM 注意因子按照原論文推薦設置為256,CFM 中Cross 網絡的層數設置為3,語義空間的數量K=3.每個模型的超參數均通過網格搜索進行了仔細調整,以達到最佳的性能.
經過多次實驗驗證,不同模型在Avazu 和Criteo 數據集上的性能如表1 所示.

表1 各模型在2 個數據集上的性能對比
首先,學習特征交互可以提高CTR 預測模型的性能.DeepFM 對低階和高階特征建模比單獨的FM、FFM 能夠取得更好的效果,說明特征的低階和高階交互對于模型效果是有價值的,使CTR 預估模型具有更好的表示能力.其次,AFM 比傳統的FM 效果更好說明特征重要性對模型性能是有提升.DIFM 模型比深度學習方法如AFM、DeepFM、XDeepFM 獲得更好的性能,說明了特征域交互感知的有效性.因此,不同樣本的輸入感知和特征域的交互感知對CTR 預測是至關重要的.最后,本文提出的CFM 和DCFM 在兩個數據集都達到了最好的效果,說明結合輸入感知和特征域的交互感知可以取得更好的效果.實驗結果表明,DCFM 模型可以有效提升點擊率預測的準確率.
CFM 模型從策略上集成了輸入感知和特征域交互感知,以學習感知因素到統一的端到端模型中.此外,學習輸入感知因素集成了bit?wise、vector?wise 和field?wise 三個層面;學習特征域交互的時候考慮了多重語義的特性.因此,為了驗證將兩者結合起來進行聯合預測是否確有必要和有效,哪個是DIFM 模型中最重要的組件,深入了解CFM 模型,進行了消融實驗.
經過多次實驗驗證,從消融實驗結果(表2)來看,對比CFM 和CFM(只包含輸入感知網絡)、CFM(只包含多語義交互網絡),可以發現結合輸入感知和多語義特征域交互感知效果更好.對比CFM(只包含輸入感知網絡)和DIFM,從Criteo 數據集的效果來看,使用Cross網絡從bit?wise 和vector?wise 兩個層面學習輸入感知因子、DIFM 中使用多頭注意力網絡學習vector?wise、MLP 學習bit?wise 的方法效果相差無幾.從Avazu 數據集的效果可以看出增加field?wise 層面學習輸入感知因子的有效性.對比CFM(只包含多語義交互網絡)和IFM,對比CFM 和CFM(輸入感知+單個語義空間)的效果可以看出,考慮特征的多語義特性是有效并且合理的.

表2 消融實驗在2 個數據集上的性能對比
因子分解機是現階段提高點擊率預估準確性的有效方法.有效挖掘特征的隱藏語義信息和特征交互信息對推動計算廣告領域快速發展具有重要的意義.本文首先利用三重輸入感知網絡學習感知因子,然后通過多語義交互網絡學習特征域的多語義交互,最后通過模型對比實驗、消融實驗,驗證了DCFM模型在公開集的性能最好,有效地提高了預估準確性.
本文提出的模型雖然可以提升預測準確性,但是缺少對其原理的可解釋性研究,包括特征交互原理、梯度分析等.以后可以進一步探索有效的特征表示和交互問題,并在可解釋性方面進行深入研究.