付志昊
(東北大學(xué)理學(xué)院,遼寧 沈陽 110819)
隨著科學(xué)技術(shù)的進步,廣告行業(yè)借助傳播迅速且應(yīng)用廣泛的互聯(lián)網(wǎng)取得了蓬勃發(fā)展。為了對用戶實現(xiàn)廣告的精準(zhǔn)投放,廣告點擊率預(yù)估的準(zhǔn)確性顯得尤為重要。
關(guān)于廣告點擊率預(yù)估的研究由來已久。Rendle等[1]提出了因子分解機(Factorization Machine,簡稱FM)模型,該模型通過學(xué)習(xí)每個特征唯一對應(yīng)的隱向量來構(gòu)造出二階特征交叉項的權(quán)重。J等人[2]于2017年提出了注意力機制因子分解機(Attentional Factorization Machine,簡稱AFM)模型,它于FM模型的區(qū)別就在于二階特征交互項。
2016年,Google[3]提出了Wide & Deep模型,該模型將邏輯回歸與神經(jīng)網(wǎng)絡(luò)結(jié)合。同一年Qu等人[4]提出了基于Product層的神經(jīng)網(wǎng)絡(luò)(Product-based Neural Network,簡稱PNN)模型,該模型將嵌入后的特征細(xì)分為線性部分和非線性部分。 2017年,華為[5]提出了深度因子分解機(Deep Factorization Machine,簡稱DeepFM)模型,DeepFM模型由FM模型和神經(jīng)網(wǎng)絡(luò)兩部分并行組合而成,這兩部分分別負(fù)責(zé)低階和高階特征的提取。2017年,斯坦福大學(xué)和谷歌公司[6]提出了深度交叉網(wǎng)絡(luò)(Deep & Cross Network,簡稱DCN)模型,該模型引入了一個交叉網(wǎng)絡(luò),將其與全連接層融合。
本文提出的XCS模型,將交叉網(wǎng)絡(luò)和堆棧式自編碼器(stacked autoencoder,簡稱SAE)結(jié)合,SAE是經(jīng)常被用來學(xué)習(xí)原始數(shù)據(jù)的一個更好的表示,描述數(shù)據(jù)的非線性關(guān)聯(lián)關(guān)系,以此來探索高階特征交互。另外,使用XGBoost在特征工程階段來選擇非常重要的特征,通過設(shè)定決策樹的深度來決定XGBoost部分的特征交互階數(shù),XGBoost可以彌補交叉網(wǎng)絡(luò)和SAE部分的不足。
神經(jīng)網(wǎng)絡(luò)提出后,特征交互的改進變得更加復(fù)雜和精細(xì)。較為典型的模型有DCN模型,通過結(jié)合交叉網(wǎng)絡(luò)和全連接層的輸出來提升特征交互能力。由一些學(xué)者于2019年提出的ASAE模型引入了自編碼器算法,類似的還有SAEFL模型,該模型將門控回歸單元網(wǎng)絡(luò)與堆棧式自編碼器結(jié)合。
XCS模型的主要思想,是將交叉網(wǎng)絡(luò)與堆棧式自編碼器結(jié)合,其中交叉網(wǎng)絡(luò)能顯式地進行特征交叉,而堆棧式自編碼器可以捕捉特征之間非線性的相互作用。另外,運用XGBoost在特征工程階段來選擇非常重要的特征,再輸入進邏輯回歸模型得出結(jié)果。
XCS模型由3部分構(gòu)成:交叉網(wǎng)絡(luò)、堆棧式自編碼器與XGBoost。模型整體也分為3層:第一層為嵌入層,用于將高維稀疏向量轉(zhuǎn)化為稠密特征向量;第二層是交叉網(wǎng)絡(luò)、堆棧式自編碼器、XGBoost三個模塊的組合,其中,交叉網(wǎng)絡(luò)與堆棧式自編碼器共用同一個嵌入層;在堆棧式自動編碼器中,多個自編碼器形成多層深度網(wǎng)絡(luò)結(jié)構(gòu),它的每一個隱藏層都是前一層輸出的非線性變換; XGBoost可以自動提取和組合特征,并且可以通過設(shè)置決策樹的數(shù)量來決定特征交互的階數(shù)。
XGBoost全稱Extreme Gradient Boosting,可譯為極限梯度提升算法。
其使用如下前向分布算法:
(1)
(2)
交叉網(wǎng)絡(luò)由交叉層組成。
第l+1層的計算如式(3)所示:
Xl+1=X0XlTWl+bl+Xl
(3)
其中,X0是由嵌入向量和連續(xù)型特征向量疊加形成的向量,如式(4)所示:
X0=[XTembed,1,……,XTembed,k,XTdense]
(4)
自編碼器經(jīng)常用于數(shù)據(jù)可視化與數(shù)據(jù)降噪。
若給定訓(xùn)練集X={X(1),X(2),…,X(n)},編碼器會將X(i)映射到y(tǒng)(i),從輸入層X(i)到隱藏層y(i),表示如下:
y(i)=f(W(1)·X(i)+b(1))
(5)
其中,W(1)是編碼權(quán)重矩陣,b(1)是偏置項。
從隱藏層y(i)到輸出層Z(i)使用如下線性映射從y(i)映射到Z(i):
Z(i)=W(2)·y(i)+b(2)≈X(i)
(6)
其中,W(2)是解碼權(quán)重矩陣,b(2)是偏置項。
多個自編碼器構(gòu)成堆棧式自編碼器。堆棧式自編碼器的結(jié)構(gòu)是關(guān)于中間隱層對稱的,因為只有對稱結(jié)構(gòu)才可以將輸入壓縮成潛在空間表征,然后通過這種表征重構(gòu)輸出。
為了彌補現(xiàn)有CTR模型的不足,本文提出了名為XCS模型的融合模型,該模型充分利用了上下文特征,并且可以在特征交互的同時,進行顯式的特征交互。XCS模型的結(jié)構(gòu)如圖1所示。
圖1 XCS模型的結(jié)構(gòu)
在XCS模型中,本文利用XGBoost來自動地選取和組合特征,同時引入交叉網(wǎng)絡(luò),交叉網(wǎng)絡(luò)能以有效的方式應(yīng)用顯式特征交叉;并且為了捕捉特征之間高度非線性的相互作用,采用堆棧式自編碼器來學(xué)習(xí)高階特征。
實驗數(shù)據(jù)集采用公開的廣告點擊率數(shù)據(jù)集Criteo。實驗中對于所有模型均采用Adam作為優(yōu)化器,其中嵌入向量維度均為8,學(xué)習(xí)率均設(shè)置為0.05,隨機失活率均設(shè)置為0.5,L2正則化參數(shù)均設(shè)置為0.2,另外對于所有深層模型,網(wǎng)絡(luò)層均設(shè)置為[32,32,32]。
在相同的實驗環(huán)境下,分別采用FM模型、DeepFM模型、PNN模型、NFM模型、DCN模型和XCS模型進行對比實驗。
由于正負(fù)樣本極度不平衡,預(yù)測準(zhǔn)確率等指標(biāo)不能準(zhǔn)確地反映模型性能,因此本實驗采用均方根誤差(RMSE)和AUC值作為模型評價指標(biāo)。
均方根誤差用于衡量模型預(yù)測值與真實值之間的偏差。其計算公式如下:
(7)
AUC值為ROC曲線下的面積。 AUC值取值范圍為[0,1],AUC值越大,說明模型分類效果越好。
本節(jié)在Criteo數(shù)據(jù)集上依次評估了第(3.2)節(jié)中列出的5個模型與本文提出的模型,依據(jù)指定的評價指標(biāo)對模型分類效果進行了比較。
不同模型在Criteo數(shù)據(jù)集上的效果比較如表1所示。
表1 不同模型在Criteo數(shù)據(jù)集上的效果比較
由表1可知以下結(jié)果。
1)相比于只建模高階或低階特征交互的模型,同時兼顧高階和低階特征交互的模型預(yù)測效果更佳。如表1所示,與FM模型和PNN模型相比,同時兼顧高階和低階特征的DCN模型在Criteo數(shù)據(jù)集上的AUC指標(biāo)分別提高了3.99%和3.48%,RMSE指標(biāo)分別減小了4.06%和0.88%。
2)交叉網(wǎng)絡(luò)由于其獨特的結(jié)構(gòu)使得對于點擊率預(yù)估有很好的效果。如表1所示,使用交叉網(wǎng)絡(luò)的DCN模型和XCS模型在該Criteo數(shù)據(jù)集上的AUC指標(biāo)與RMSE指標(biāo)均優(yōu)于其他模型。
為提高模型對于CTR的預(yù)測效果,本文提出了一個新的融合模型——XCS模型。該模型一是通過引入XGBoost來在特征工程階段進行特征組合和選擇;二是引入堆棧式自編碼器,將其與交叉網(wǎng)絡(luò)結(jié)合,自編碼器部分可以建模高階特征交互。通過公開數(shù)據(jù)集,測試了模型預(yù)測效果,并與幾種CTR經(jīng)典模型進行了對比。實驗表明:本文提出的XCS模型相比于現(xiàn)有的CTR模型在AUC指標(biāo)與RMSE指標(biāo)上都有不同程度的提升,同時也說明模型之間的有效融合對于提升CTR預(yù)估效果有重要意義。