陳海青,蔡江輝,楊海峰,賀艷婷
(太原科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山西 太原 030024)
點(diǎn)擊率(CTR)預(yù)測,旨在預(yù)測用戶點(diǎn)擊推薦項(xiàng)目(如音樂、廣告)的概率,在推薦系統(tǒng)中發(fā)揮著重要作用。在CTR預(yù)測任務(wù)中,原始輸入特征起著重要作用。由于直接使用原始特征很少能獲得理想的預(yù)測結(jié)果,數(shù)據(jù)科學(xué)家一般會對原始特征進(jìn)行交互獲得更加全面的數(shù)據(jù)信息,以生成最佳預(yù)測系統(tǒng)。但并非所有的特征交互都對預(yù)測任務(wù)有用,無用的特征交互可能引入噪聲信號,進(jìn)而導(dǎo)致過度擬合。同時(shí),模型的輸入特征大多都是類別特征,而且數(shù)量在幾十到數(shù)百,不同的特征對預(yù)測目標(biāo)影響不同。
在早期階段,Polynomial-2 (Poly2)[1]模型將輸入特征進(jìn)行兩兩組合并為每一個(gè)交叉項(xiàng)設(shè)置一個(gè)權(quán)重參數(shù)。但由于數(shù)據(jù)稀疏,模型無法很好地學(xué)習(xí)參數(shù)。于是,Steffen[2]提出了因子分解機(jī)(Factorization Machine,FM),它在具備高效計(jì)算性能的同時(shí)又具備良好的可解釋性,但主要缺點(diǎn)是,它對所有特征交互進(jìn)行建模,包括有用和無用的組合。與無用特征的交互可能會引入噪聲并降低性能。近年來,隨著深度神經(jīng)網(wǎng)絡(luò)的發(fā)展,出現(xiàn)了許多基于深度學(xué)習(xí)的預(yù)測模型,如Factorization-Machine Supported Neural Networks(FNN)[3]、Product-based Neural Networks(PNN)[4]、Higher-Order Factorization Machines(HOFM)[5]等。這些模型的主要缺點(diǎn)是,它們更多地關(guān)注高階特征交互,而很少捕捉低階交互。上述模型都利用深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)來學(xué)習(xí)高階特征交互,然而DNN以隱式建模來模擬高階特征交互,因此缺乏關(guān)于哪些特征組合是有意義的良好解釋。而Attentional Factorization Machines(AFM)[6]、深度因子分解機(jī)DeepFM[7]、極深因子分解機(jī)XdeepFM[8]、Automatic feature interaction learning via self-attentive neural networks(AutoInt)[9]等模型,使用顯式建模來尋求不同階的特征組合,將整個(gè)特征表示到低維空間中,同時(shí)提供良好的模型解釋性。但是顯式特征交互的缺點(diǎn)是:(1)對非線性的建模能力有限;(2)很難擴(kuò)展到更高階的特征交互;(3)數(shù)據(jù)稀疏性很大時(shí),模型訓(xùn)練比較困難;(4)對所有特征交叉項(xiàng)一視同仁,可能會限制模型的表達(dá)能力。為了彌補(bǔ)顯式和隱式模型的不足,該文用多頭自注意網(wǎng)絡(luò)[10]和深度神經(jīng)網(wǎng)絡(luò)去自動學(xué)習(xí)顯式和隱式的特征交互,它能同時(shí)以顯式和隱式的方式自動學(xué)習(xí)任意低階和高階的特征交互。
同時(shí),在廣告推薦場景中,輸入數(shù)據(jù)不僅數(shù)量多而且特征維度很高,在特征選擇時(shí)容易存在信息干擾或丟失等問題,限制了模型的表達(dá)能力。雖然AFM將attention機(jī)制引入到特征交叉模塊進(jìn)行加權(quán),進(jìn)而學(xué)習(xí)每種交互特征的重要性。但這種方式?jīng)]有考慮到在特征交互時(shí)會引入干擾信息并且只考慮了特征兩兩交互的情況,因此預(yù)測準(zhǔn)確度的提升十分有限。而Feature Importance and Bilinear feature Interaction(FiBiNET)[11]利用了擠壓提取網(wǎng)絡(luò)來獲取特征重要性。但這種網(wǎng)絡(luò)在擠壓信息時(shí)會造成大量特征信息的丟失,進(jìn)而影響模型性能。
綜上,以往方法在對特征進(jìn)行選擇時(shí)存在信息干擾和丟失問題,另外在進(jìn)行特征交互時(shí)不同的交互方式也會影響預(yù)測性能。為此,該文提出了一種基于特征加權(quán)與自動交互的點(diǎn)擊率預(yù)測模型(Automatic feature interaction prediction model based on feature weighting,FWAI)。首先,引入Efficient Channel Attention for Deep Convolutional Neural Networks(ECANet)模塊[12]對輸入特征進(jìn)行加權(quán),該模塊通過一維卷積有效地提取特征權(quán)重,解決了在特征選擇時(shí)存在信息干擾和丟失的問題。然后,分別用多頭自注意網(wǎng)絡(luò)和深度神經(jīng)網(wǎng)絡(luò)(DNN)去自動學(xué)習(xí)顯式和隱式的特征交互,從而有效挖掘有用的交互信息。
CTR預(yù)測任務(wù)中的關(guān)鍵挑戰(zhàn)是如何有效地建模特征交互。在該領(lǐng)域已經(jīng)提出了許多模型[13-15],如邏輯回歸(LR)[16]、多項(xiàng)式-2(Poly2)、DeepFM、XdeepFM、AutoInt等模型。隨著深度學(xué)習(xí)在計(jì)算機(jī)視覺和自然語言處理等許多研究領(lǐng)域的巨大成功,近年來提出了許多基于深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)的CTR模型,如:DeepFM、DCN[17]、AFM。
ECANet是2020年在CVPR上提出的一種通道注意力模塊,并在很多任務(wù)中被引用。例如,Gera等人[18]利用ECANet來消除面部識別過程中的冗余特征,顯著提高了模型的魯棒性?;谠撃K在特征重要性提取上的優(yōu)勢,該文提出的FWAI通過ECANet對輸入特征進(jìn)行動態(tài)加權(quán),以提高模型的準(zhǔn)確率。在后文將重點(diǎn)介紹該模塊的理論知識和實(shí)現(xiàn)機(jī)制等。
提出的模型利用了深度學(xué)習(xí)文獻(xiàn)中的最新技術(shù):注意力機(jī)制[19]和殘差網(wǎng)絡(luò)[20]。注意力最早是在視覺圖像領(lǐng)域提出的,并在各種任務(wù)中被證明是有效的,如問答、文本摘要和推薦系統(tǒng)。Vaswani等人進(jìn)一步提出了多頭自注意模型,以模擬機(jī)器翻譯中單詞之間的復(fù)雜依賴關(guān)系。該文利用它來建模不同特征之間的交互。殘差網(wǎng)絡(luò)在當(dāng)年的ImageNet競賽中取得了最優(yōu)的表現(xiàn)。它在解決神經(jīng)網(wǎng)絡(luò)中的梯度消失、梯度爆炸以及網(wǎng)絡(luò)退化等問題中具有突出作用。
本節(jié)介紹FWAI模型,模型結(jié)構(gòu)如圖1所示。。
FWAI主要包含以下部分:輸入層(Input Layer)、嵌入層(Embedding Layer)、ECANet層(ECANet Layer)、交互層(Interacting Layer)和輸出層(Output Layer)。接下來,介紹該方法的細(xì)節(jié)。
在CTR預(yù)測任務(wù)中,數(shù)據(jù)中的特征通常分為類別特征和數(shù)值特征。將所有特征輸入用稀疏向量表示:
x=[x1;x2;…;xm]
(1)
其中,m是總特征字段的數(shù)量,xi是第i個(gè)字段的特征表示。如果第i個(gè)字段是分類的,xi是一個(gè)熱編碼向量(one-hot vector)。如果第i個(gè)字段是數(shù)值的,xi是一個(gè)標(biāo)量值。
由于分類特征都是稀疏高維的,所以采用最常見的Embedding方法,將它們表示到低維空間。用低維向量表示每個(gè)分類特征,即:
ei=Vi·xi
(2)
其中,Vi是場i的嵌入矩陣,xi是一個(gè)熱編碼向量。在真實(shí)數(shù)據(jù)中,分類特征可能擁有多個(gè)值,xi是一個(gè)多值熱編碼向量(multi-hot vector)。為了與多值輸入兼容,對式(2)進(jìn)行修改,并將多值特征表示為相應(yīng)特征嵌入向量的平均值:
(3)
其中,n是第i個(gè)特征字段的值的數(shù)量,xi是該字段的多個(gè)熱向量表示。因?yàn)閿?shù)據(jù)中也會存在數(shù)值特征,為了允許分類特征和數(shù)值特征之間的相互作用,必須將數(shù)值特征也表示在同一低維特征空間中,即:
el=Vl·xl
(4)
其中,Vl是字段m的嵌入向量,xl是標(biāo)量值。
最后,嵌入層的輸出是多個(gè)特征嵌入向量的串聯(lián),E=[e1,e2,…,em]。
在真實(shí)應(yīng)用場景和數(shù)據(jù)中,不同的特征對于預(yù)測任務(wù)的重要性是不同的。比如在預(yù)測一條音樂廣告是否會被點(diǎn)擊時(shí),顯然演唱者這個(gè)特征比其他特征更重要。受ECANet在計(jì)算機(jī)視覺領(lǐng)域取得重大成功的啟發(fā),將ECANet機(jī)制引入到模型中。對于特定的CTR預(yù)測任務(wù),可以通過ECANet機(jī)制動態(tài)增加重要特征的權(quán)重,降低干擾特征的權(quán)重。用嵌入特征作為輸入,ECANet為嵌入特征生成權(quán)重向量A={a1,…,ai,…,am},然后用向量A新縮放原始嵌入E,得到新的嵌入V=[v1,…,vi,…,vm],其中ai∈R是一個(gè)標(biāo)量,表示第i個(gè)特征的Vi的權(quán)重。 如圖2所示,ECANet由三個(gè)步驟組成:特征壓縮、權(quán)重提取、特征加權(quán)。
(1)特征壓縮(FGAP)。
第一步用于獲取每個(gè)特征向量的統(tǒng)計(jì)信息,使用的方法是平均池化,將嵌入特征E=[e1,…,em]轉(zhuǎn)化為統(tǒng)計(jì)向量Z=[z1,…,zm],其計(jì)算方法如式(5)所示:
(5)
圖2 ECANet層
(2)權(quán)重提取(Ew)。
第二步用來學(xué)習(xí)基于統(tǒng)計(jì)向量Z的每個(gè)字段嵌入的權(quán)重。通過考慮每個(gè)特征及其k個(gè)鄰居來捕獲局部跨通道交互信息??梢酝ㄟ^大小為k的1D卷積來有效實(shí)現(xiàn),其中卷積核大小為k代表了局部跨信道交互的覆蓋率,即,該特征附近有多少鄰居特征參與了這個(gè)特征的注意力預(yù)測。形式上,字段嵌入的權(quán)重可以計(jì)算如下:
A=σ(conv1Dk(Z))
(6)
其中,conv1D表示一維卷積,A∈Rm是一個(gè)向量,K表示卷積核的大小,σ是激活函數(shù)。
(3)特征加權(quán)(Fw)。
ECANet最后一步是特征加權(quán),這一步將原始嵌入向量E和學(xué)習(xí)到的權(quán)重向量A進(jìn)行相乘,得到加權(quán)后的嵌入向量V=[v1,…,vi,…,vm]。計(jì)算過程如公式(7):
V=F(A,E)=[a1·e1,…,am·em]=
[v1,…,vm]
(7)
其中,ai∈R,ei∈Rk,vi∈Rk,i表示第i個(gè)特征域,k表示嵌入向量的維度。
2.4.1 隱式高階交互
文中在特征嵌入向量v上使用前饋神經(jīng)網(wǎng)絡(luò)對隱式特征交互進(jìn)行建模,其計(jì)算公式為:
x1=σ(W(1)v+b1)
(8)
xn=σ(W(n)v(n-1)+bn)
(9)
其中,n表示神經(jīng)網(wǎng)絡(luò)層的深度,σ是激活函數(shù),xn是第n層神經(jīng)網(wǎng)絡(luò)的輸出。
2.4.2 顯式高階交互
文中用多頭自注意網(wǎng)絡(luò)進(jìn)行顯示特征交互。以特征j為例,將解釋如何識別涉及特征j的多個(gè)有意義的高階特征。首先定義特定注意頭h下特征j和特征k之間的相關(guān)性,如下:
(10)
(11)
(12)
(13)
其中,⊕是串聯(lián)運(yùn)算符,H是總頭數(shù)。
為保留以前學(xué)習(xí)到的組合特征和原始特征,在網(wǎng)絡(luò)中添加了標(biāo)準(zhǔn)的殘差網(wǎng)絡(luò),即:
(14)
模型FWAI將隱式與顯式高階特征交互結(jié)合起來。其模型輸出為:
(15)
文中損失函數(shù)是交叉熵?fù)p失,定義如下:
(16)
本節(jié)將介紹實(shí)驗(yàn)數(shù)據(jù)以及參數(shù)設(shè)置,通過在四個(gè)真實(shí)的公開廣告數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),對FWAI模型的預(yù)測性能進(jìn)行評價(jià)。實(shí)驗(yàn)內(nèi)容包括:
(1)FWAI與目前常見的模型對比;
(2)ECANet層對模型性能的提升;
(3)不同交互方式對模型性能的影響;
(4)超參數(shù)設(shè)置對模型性能的影響。
3.1.1 實(shí)驗(yàn)數(shù)據(jù)集
使用4個(gè)公開的真實(shí)數(shù)據(jù)集。表1總結(jié)了數(shù)據(jù)集的統(tǒng)計(jì)數(shù)據(jù)。在二值化過程中,將評分小于3的樣本視為負(fù)樣本。Criteo、Avazu和KDD12原始數(shù)據(jù)集的規(guī)模都超過了4 000萬條,由于實(shí)驗(yàn)條件限制,該文對每個(gè)數(shù)據(jù)集都只選取了前1 000萬條數(shù)據(jù),然后通過均勻隨機(jī)抽樣方式將數(shù)據(jù)集按8∶1∶1劃分為三部分:80%用于訓(xùn)練,10%用于驗(yàn)證,10%用于測試。
表1 實(shí)驗(yàn)數(shù)據(jù)集統(tǒng)計(jì)
3.1.2 實(shí)驗(yàn)超參數(shù)設(shè)置
所有方法都在TensorFlow中實(shí)現(xiàn)。對于所有深度模型,根據(jù)經(jīng)驗(yàn)將嵌入維度d設(shè)置為16,batch size設(shè)置為1 024,Drop Out Ratio設(shè)置為0.7,學(xué)習(xí)率設(shè)置為0.000 1層深度設(shè)置為3,最后,使用Adam優(yōu)化所有基于深度神經(jīng)網(wǎng)絡(luò)的模型。
3.1.3 評價(jià)指標(biāo)
AUC:ROC曲線下的面積(AUC),衡量的是CTR預(yù)測因子對隨機(jī)選擇的正樣本項(xiàng)目的評分高于隨機(jī)選擇的負(fù)樣本項(xiàng)目的概率。AUC越高,性能越好。
LogLoss:是基于概率的最重要的分類度量,也是二分類問題中經(jīng)常使用的評價(jià)標(biāo)準(zhǔn),用來表示預(yù)測值與真實(shí)值之間的差距。當(dāng)LogLoss的下限為0時(shí),表示預(yù)測值與真實(shí)值完全相同。在實(shí)驗(yàn)中,較小的 LogLoss值表示預(yù)測模型具有更好的性能。
表2總結(jié)了在四個(gè)數(shù)據(jù)集上5次不同運(yùn)行的平均結(jié)果。觀察實(shí)驗(yàn)結(jié)果可以看出:(1)二階特征組合和高階特征交互的模型在所有數(shù)據(jù)集上的表現(xiàn)都大大優(yōu)于LR,這表明單個(gè)特征在CTR預(yù)測中是不夠的,挖掘高級特征交互對于模型至關(guān)重要。(2)FWAI模型在四個(gè)數(shù)據(jù)集上的性能始終優(yōu)于其他模型。這是因?yàn)槟P鸵肓俗⒁饬C(jī)制對輸入特征進(jìn)行加權(quán),而且分別用多頭自注意網(wǎng)絡(luò)和深度神經(jīng)網(wǎng)絡(luò)(DNN)去自動學(xué)習(xí)顯式和隱式的特征交互。使得FWAI能夠通過加權(quán)對輸入特征進(jìn)行重要性選擇,使得模型可以有選擇性地學(xué)習(xí)重要特征,并抑制不太有用的特征, 同時(shí)以顯式和隱式的方式自動學(xué)習(xí)高階特征交互,從而有效挖掘特征間的交互信息,顯著提升了模型的預(yù)測能力。
表2 四個(gè)數(shù)據(jù)集上不同模型的性能對比
本節(jié)將討論ECANet機(jī)制對模型性能的影響。為了方便起見,用NO-ECA表示從模型中刪除ECANet層。實(shí)驗(yàn)結(jié)果如表3所示。
表3 ECANet層對模型性能的提升
從實(shí)驗(yàn)數(shù)據(jù)可以發(fā)現(xiàn),當(dāng)模型加入ECANet機(jī)制后,預(yù)測效果有很大提升。這說明,ECANet層對于提升模型的性能是十分必要的,它通過對輸入特征加權(quán)來進(jìn)行重要性選擇,能夠有效增強(qiáng)模型能力并使基線模型獲得更好的性能。
本節(jié)討論了顯式和隱式交互方式對模型性能的影響。使用E和I來表示使用哪種交互方式?!癊”表示使用顯式特征交互(該文使用的是多頭自注意網(wǎng)絡(luò)),“I”表示使用隱式特征交互(即深度神經(jīng)網(wǎng)絡(luò)),而“EI”表示同時(shí)使用顯式和隱式交互。在四個(gè)不同數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),并將結(jié)果總結(jié)在表4中。根據(jù)實(shí)驗(yàn)結(jié)果可以觀察到,將顯性特征交互和隱性特征交互相結(jié)合的效果優(yōu)于單個(gè)交互方式,證明了模型的有效性。
本節(jié)討論了FWAI模型的一些超參數(shù)對算法性能的影響,重點(diǎn)放在嵌入層和DNN部分。具體包括:嵌入維度;網(wǎng)絡(luò)深度。
表4 不同交互方式的模型性能
表5 嵌入維度對模型AUC和LogLoss的影響
(1)研究了嵌入層的輸出維度d對FWAI預(yù)測性能的影響。該文將嵌入維度大小按照16,32,64進(jìn)行實(shí)驗(yàn)并在表5總結(jié)了實(shí)驗(yàn)結(jié)果。通過實(shí)驗(yàn)結(jié)果觀察到了以下信息:從四個(gè)數(shù)據(jù)集上可以看到,隨著維度大小的增加,性能不斷提高。但當(dāng)維度達(dá)到32后,性能開始下降。原因是當(dāng)參數(shù)太多時(shí),模型擬合過度。
(2)網(wǎng)絡(luò)深度對模型預(yù)測性能的影響。
表6展示了隱藏層數(shù)量對模型性能的影響。可以觀察到,FWAI的性能在開始時(shí)隨著網(wǎng)絡(luò)深度的增加而增加。然而,當(dāng)網(wǎng)絡(luò)深度大于3時(shí),模型性能會下降。這是由于過度擬合造成的。
表6 網(wǎng)絡(luò)深度對模型AUC和LogLoss的影響
該文提出了一種新的基于特征加權(quán)與自動交互的點(diǎn)擊率預(yù)測模型(FWAI),該模型旨在動態(tài)學(xué)習(xí)特征重要性并自動構(gòu)建有效的特征交互。一方面,FWAI能夠通過加權(quán)對輸入特征進(jìn)行重要性選擇;另一方面,它能同時(shí)以顯式和隱式的方式自動學(xué)習(xí)高階的特征交互。在四個(gè)真實(shí)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果證明了該模型的有效性。對于未來的工作,將繼續(xù)對模型進(jìn)行優(yōu)化,以降低模型的時(shí)間復(fù)雜度,并改進(jìn)其在線推薦的性能。