付志昊
(東北大學理學院,遼寧 沈陽 110819)
隨著科學技術的進步,廣告行業借助傳播迅速且應用廣泛的互聯網取得了蓬勃發展。為了對用戶實現廣告的精準投放,廣告點擊率預估的準確性顯得尤為重要。
關于廣告點擊率預估的研究由來已久。Rendle等[1]提出了因子分解機(Factorization Machine,簡稱FM)模型,該模型通過學習每個特征唯一對應的隱向量來構造出二階特征交叉項的權重。J等人[2]于2017年提出了注意力機制因子分解機(Attentional Factorization Machine,簡稱AFM)模型,它于FM模型的區別就在于二階特征交互項。
2016年,Google[3]提出了Wide & Deep模型,該模型將邏輯回歸與神經網絡結合。同一年Qu等人[4]提出了基于Product層的神經網絡(Product-based Neural Network,簡稱PNN)模型,該模型將嵌入后的特征細分為線性部分和非線性部分。 2017年,華為[5]提出了深度因子分解機(Deep Factorization Machine,簡稱DeepFM)模型,DeepFM模型由FM模型和神經網絡兩部分并行組合而成,這兩部分分別負責低階和高階特征的提取。2017年,斯坦福大學和谷歌公司[6]提出了深度交叉網絡(Deep & Cross Network,簡稱DCN)模型,該模型引入了一個交叉網絡,將其與全連接層融合。
本文提出的XCS模型,將交叉網絡和堆棧式自編碼器(stacked autoencoder,簡稱SAE)結合,SAE是經常被用來學習原始數據的一個更好的表示,描述數據的非線性關聯關系,以此來探索高階特征交互。另外,使用XGBoost在特征工程階段來選擇非常重要的特征,通過設定決策樹的深度來決定XGBoost部分的特征交互階數,XGBoost可以彌補交叉網絡和SAE部分的不足。
神經網絡提出后,特征交互的改進變得更加復雜和精細。較為典型的模型有DCN模型,通過結合交叉網絡和全連接層的輸出來提升特征交互能力。由一些學者于2019年提出的ASAE模型引入了自編碼器算法,類似的還有SAEFL模型,該模型將門控回歸單元網絡與堆棧式自編碼器結合。
XCS模型的主要思想,是將交叉網絡與堆棧式自編碼器結合,其中交叉網絡能顯式地進行特征交叉,而堆棧式自編碼器可以捕捉特征之間非線性的相互作用。另外,運用XGBoost在特征工程階段來選擇非常重要的特征,再輸入進邏輯回歸模型得出結果。
XCS模型由3部分構成:交叉網絡、堆棧式自編碼器與XGBoost。模型整體也分為3層:第一層為嵌入層,用于將高維稀疏向量轉化為稠密特征向量;第二層是交叉網絡、堆棧式自編碼器、XGBoost三個模塊的組合,其中,交叉網絡與堆棧式自編碼器共用同一個嵌入層;在堆棧式自動編碼器中,多個自編碼器形成多層深度網絡結構,它的每一個隱藏層都是前一層輸出的非線性變換; XGBoost可以自動提取和組合特征,并且可以通過設置決策樹的數量來決定特征交互的階數。
XGBoost全稱Extreme Gradient Boosting,可譯為極限梯度提升算法。
其使用如下前向分布算法:
(1)
(2)

交叉網絡由交叉層組成。
第l+1層的計算如式(3)所示:
Xl+1=X0XlTWl+bl+Xl
(3)
其中,X0是由嵌入向量和連續型特征向量疊加形成的向量,如式(4)所示:
X0=[XTembed,1,……,XTembed,k,XTdense]
(4)
自編碼器經常用于數據可視化與數據降噪。
若給定訓練集X={X(1),X(2),…,X(n)},編碼器會將X(i)映射到y(i),從輸入層X(i)到隱藏層y(i),表示如下:
y(i)=f(W(1)·X(i)+b(1))
(5)
其中,W(1)是編碼權重矩陣,b(1)是偏置項。
從隱藏層y(i)到輸出層Z(i)使用如下線性映射從y(i)映射到Z(i):
Z(i)=W(2)·y(i)+b(2)≈X(i)
(6)
其中,W(2)是解碼權重矩陣,b(2)是偏置項。
多個自編碼器構成堆棧式自編碼器。堆棧式自編碼器的結構是關于中間隱層對稱的,因為只有對稱結構才可以將輸入壓縮成潛在空間表征,然后通過這種表征重構輸出。
為了彌補現有CTR模型的不足,本文提出了名為XCS模型的融合模型,該模型充分利用了上下文特征,并且可以在特征交互的同時,進行顯式的特征交互。XCS模型的結構如圖1所示。

圖1 XCS模型的結構
在XCS模型中,本文利用XGBoost來自動地選取和組合特征,同時引入交叉網絡,交叉網絡能以有效的方式應用顯式特征交叉;并且為了捕捉特征之間高度非線性的相互作用,采用堆棧式自編碼器來學習高階特征。
實驗數據集采用公開的廣告點擊率數據集Criteo。實驗中對于所有模型均采用Adam作為優化器,其中嵌入向量維度均為8,學習率均設置為0.05,隨機失活率均設置為0.5,L2正則化參數均設置為0.2,另外對于所有深層模型,網絡層均設置為[32,32,32]。
在相同的實驗環境下,分別采用FM模型、DeepFM模型、PNN模型、NFM模型、DCN模型和XCS模型進行對比實驗。
由于正負樣本極度不平衡,預測準確率等指標不能準確地反映模型性能,因此本實驗采用均方根誤差(RMSE)和AUC值作為模型評價指標。
均方根誤差用于衡量模型預測值與真實值之間的偏差。其計算公式如下:
(7)

AUC值為ROC曲線下的面積。 AUC值取值范圍為[0,1],AUC值越大,說明模型分類效果越好。
本節在Criteo數據集上依次評估了第(3.2)節中列出的5個模型與本文提出的模型,依據指定的評價指標對模型分類效果進行了比較。
不同模型在Criteo數據集上的效果比較如表1所示。

表1 不同模型在Criteo數據集上的效果比較
由表1可知以下結果。
1)相比于只建模高階或低階特征交互的模型,同時兼顧高階和低階特征交互的模型預測效果更佳。如表1所示,與FM模型和PNN模型相比,同時兼顧高階和低階特征的DCN模型在Criteo數據集上的AUC指標分別提高了3.99%和3.48%,RMSE指標分別減小了4.06%和0.88%。
2)交叉網絡由于其獨特的結構使得對于點擊率預估有很好的效果。如表1所示,使用交叉網絡的DCN模型和XCS模型在該Criteo數據集上的AUC指標與RMSE指標均優于其他模型。
為提高模型對于CTR的預測效果,本文提出了一個新的融合模型——XCS模型。該模型一是通過引入XGBoost來在特征工程階段進行特征組合和選擇;二是引入堆棧式自編碼器,將其與交叉網絡結合,自編碼器部分可以建模高階特征交互。通過公開數據集,測試了模型預測效果,并與幾種CTR經典模型進行了對比。實驗表明:本文提出的XCS模型相比于現有的CTR模型在AUC指標與RMSE指標上都有不同程度的提升,同時也說明模型之間的有效融合對于提升CTR預估效果有重要意義。