馮宇寒 陳琳 周剛
摘要:廣告點(diǎn)擊率預(yù)估模型在前深度學(xué)習(xí)時(shí)代工業(yè)界大多使用訓(xùn)練速度快、可解釋強(qiáng)的LR以及挖掘聯(lián)合特征的FM模型。2016年google提出的Wide&Deep模型為之后的預(yù)估模型開辟了一條雙網(wǎng)格訓(xùn)練的道路。本文聚焦于Wide&Deep族的廣告點(diǎn)擊率預(yù)估模型,在代碼上實(shí)現(xiàn)了各模型,并在數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)對比。
關(guān)鍵詞:深度學(xué)習(xí);廣告點(diǎn)擊率預(yù)估;Wide&Deep
中圖分類號:TH69? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2020)32-0224-02
Abstract:In the pre-deep learning era, the advertising click-through rate prediction model mostly used LR with fast training speed and strong interpretability and FM model with joint feature mining. The Wide&Deep model proposed by Google in 2016 opened up a dual-grid training path for the subsequent prediction model. This article focuses on the prediction model of advertising click-through rate of the Wide&Deep family,implements each model on the code,and conducts an experimental comparison on the data set.
Key words:deep learning; ad click-through rate estimation; Wide&Deep
1 引言
從1994年10月第一個(gè)banner廣告出現(xiàn)開始,互聯(lián)網(wǎng)廣告已經(jīng)發(fā)展成一個(gè)數(shù)十億美元的規(guī)模的產(chǎn)業(yè)[1]。廣告點(diǎn)擊率模型在傳統(tǒng)機(jī)器學(xué)習(xí)時(shí)代,主要的模型從2010年之前的邏輯回歸(LR),進(jìn)化到因子分解機(jī)(FM)、梯度提升樹(GBDT)。在廣告點(diǎn)擊率模型進(jìn)入到深度學(xué)習(xí)時(shí)代后,其中最為著名的是2016年google提出的Wide&Deep[2]模型,該模型創(chuàng)造性地提出了記憶能力與泛化能力,將線性模型與深度學(xué)習(xí)網(wǎng)絡(luò)融合訓(xùn)練,能夠同時(shí)兼具挖掘藏在數(shù)據(jù)身后規(guī)律和記住大量歷史信息的能力。后續(xù)發(fā)展出現(xiàn)的深度學(xué)習(xí)模型DCN[3]、DeepFM[4]、AFM[5]以及NFM[6]和NFFM均是經(jīng)過該模型為基礎(chǔ)所調(diào)整。
本文對在業(yè)界影響力較大的幾大模型[7]做了介紹,并且用代碼實(shí)現(xiàn)了各個(gè)模型,在數(shù)據(jù)集上運(yùn)行各個(gè)模型,在實(shí)驗(yàn)基礎(chǔ)上對各模型優(yōu)劣展開論述。
2 算法原理
本文著眼于Wide&Deep、DCN、DeepFM以及NFM模型。
2.1 Wide&Deep
Wide&Deep模型創(chuàng)造性地提出了記憶性和泛化性兩個(gè)概念,該模型把單輸入層的Wide部分和經(jīng)過多層感知機(jī)的Deep部分連接起來,一起輸入最終的輸出層。其中Wide部分的主要作用是讓模型具有記憶性,單層的Wide部分善于處理大量稀疏的id類特征,便于讓模型直接“記住”用戶的大量歷史信息;Deep部分的主要作用是讓模型具有“泛化性”,利用DNN表達(dá)能力強(qiáng)的特點(diǎn),挖掘藏在特征后面的數(shù)據(jù)模式。之后LR輸出層將Wide部分和Deep部分組合起來,形成輸出結(jié)果。Wide&Deep對之后模型的影響在于——大量深度學(xué)習(xí)模型采用了兩部分甚至多部分組合的形式,利用不同網(wǎng)絡(luò)結(jié)構(gòu)挖掘不同的信息后進(jìn)行組合,充分利用和結(jié)合了不同網(wǎng)絡(luò)結(jié)構(gòu)的特點(diǎn)。
2.2 FM
在Wide&Deep之后,諸多模型延續(xù)了雙網(wǎng)絡(luò)組合的結(jié)構(gòu),DeepFM就是其中之一。DeepFM對Wide&Deep的改進(jìn)之處在于,它用FM替換掉了原來的Wide部分,加強(qiáng)了淺層網(wǎng)絡(luò)部分特征組合的能力。事實(shí)上,由于FM本身就是由一階部分和二階部分組成的,DeepFM相當(dāng)于同時(shí)組合了原Wide部分、二階特征交叉部分與Deep部分三種結(jié)構(gòu),無疑進(jìn)一步增強(qiáng)了模型的表達(dá)能力。
2.3 DCN
Google 2017年發(fā)表的Deep&Cross Network(DCN)同樣是對Wide&Deep的進(jìn)一步改進(jìn),主要的思路使用Cross網(wǎng)絡(luò)替代了原來的Wide部分。其中設(shè)計(jì)Cross網(wǎng)絡(luò)的基本動機(jī)是為了增加特征之間的交互力度,使用多層cross layer對輸入向量進(jìn)行特征交叉。單層cross layer的基本操作是將cross layer的輸入向量xl與原始的輸入向量x0進(jìn)行交叉,并加入bias向量和原始xl輸入向量。DCN本質(zhì)上還是對Wide&Deep中的Wide部分表達(dá)能力不足的問題進(jìn)行改進(jìn),與DeepFM的思路非常類似。
2.4 NFM
相對于DeepFM和DCN對于Wide&Deep中對Wide部分的改進(jìn),NFM可以看作是對Deep部分的改進(jìn)。FM可以看作是由單層LR與二階特征交叉組成的W&D架構(gòu),與W&D架構(gòu)的不同之處僅在于Deep部分變成了二階隱向量相乘的形式。再進(jìn)一步,NFM從修改FM二階部分的角度出發(fā),用一個(gè)帶Bi-interaction層的DNN替換了FM的特征交叉部分,形成了獨(dú)特的W&D架構(gòu)。其中Bi-interaction可以看作是不同特征embedding的element-wise product的形式。這也是NFM相比Wide&Deep的創(chuàng)新之處。
3 實(shí)驗(yàn)分析
3.1 實(shí)驗(yàn)數(shù)據(jù)以及預(yù)處理
本文選擇了criteo在kaggle上舉辦的展示廣告點(diǎn)擊率預(yù)估挑戰(zhàn)大賽的數(shù)據(jù)集,在該數(shù)據(jù)集中,criteo共享了一周的流量數(shù)據(jù)。該數(shù)據(jù)集共有四十個(gè)特征,第一個(gè)為標(biāo)簽,為二分類類型,含義為該用戶是否點(diǎn)擊廣告。第二到十四個(gè)特征是連續(xù)性特征,全部為整數(shù)。剩下的26個(gè)特征為分類特征,并且值被hash處理過,以達(dá)到特征匿名的效果。
本實(shí)驗(yàn)將該數(shù)據(jù)集按9:1進(jìn)行劃分分為訓(xùn)練集和測試集。對連續(xù)性特征進(jìn)行缺失值補(bǔ)0,離散分桶處理;對離散型特征過濾頻率低于10的特征值處理。
3.2 評價(jià)指標(biāo)
本實(shí)驗(yàn)采用AUC評價(jià)指標(biāo)。
在介紹評價(jià)指標(biāo)之前,要先介紹準(zhǔn)確率和召回率兩個(gè)概念。準(zhǔn)確率P為預(yù)測為正的樣本中,真實(shí)標(biāo)簽為正的樣本的比例P=TP/(TP+FP);召回率R為真實(shí)標(biāo)簽為正的樣本中,預(yù)測為正的比例R=TP/(TP+FN)。
而在ROC曲線中,橫軸為假正例率FPR,縱軸為真正例率TPR。其中假正例率為真實(shí)標(biāo)簽為負(fù)的樣本中,預(yù)測為正的樣本比例FPR=FP/(FP+TN);真正例率實(shí)際上就是召回率。如果模型A的ROC曲線能完全包住模型B的ROC曲線,則可斷言A的性能比B好,但是兩個(gè)模型的ROC往往是相交的,這時(shí)為了比較性能就需要用到AUC。
AUC就是ROC曲線和x軸(FPR軸)之間的面積。AUC考慮的是模型預(yù)測的排序質(zhì)量,反映了模型把正例排在反例前面的比例,如果AUC=1,說明模型100%將所有正例排在反例前面。
3.3 實(shí)驗(yàn)結(jié)果與分析
在運(yùn)行時(shí)間上,如表2所示,7萬兩千個(gè)樣本W(wǎng)ide&Deep只訓(xùn)練了1686秒,DeepFM訓(xùn)練了2641秒,DCN訓(xùn)練了8549秒,NFM訓(xùn)練了2502秒。在表中我們可以直觀看出Wide&Deep在樣本上訓(xùn)練的時(shí)間極短、極快,而相應(yīng)的DCN的訓(xùn)練時(shí)間上很難達(dá)到Wide&Deep的量級,達(dá)到了2.4個(gè)小時(shí)。
如表2所示,更多的訓(xùn)練時(shí)間使得DCN在評價(jià)指標(biāo)上拿到了最好的表現(xiàn),AUC值比最差的Wide&Deep高出了兩個(gè)千分點(diǎn),相比于表現(xiàn)第二好的NFM模型提升了一個(gè)千分點(diǎn)。在實(shí)驗(yàn)中,我們也看到另一指標(biāo)LogLoss的值,雖然DCN在這些模型中的表現(xiàn)并不好看,但從指標(biāo)意義來看,LogLoss是一個(gè)通用性的指標(biāo),AUC則更加希望正類得分盡可能高,故我們?nèi)匀豢梢哉fDCN在這些深度學(xué)習(xí)模型中表現(xiàn)最好。
4 結(jié)論
在實(shí)驗(yàn)中,我們簡單地實(shí)現(xiàn)了模型,用這些基礎(chǔ)模型來對深度學(xué)習(xí)中的廣告點(diǎn)擊率模型做綜述,并未對參數(shù)進(jìn)行調(diào)優(yōu),故我們得出有限的結(jié)論:在運(yùn)行時(shí)間上,Wide&Deep有著巨大的優(yōu)勢,訓(xùn)練時(shí)間短,相比于DCN縮短了五倍。在理論上和實(shí)踐中,DCN模型的優(yōu)勢則更突出,超參數(shù)數(shù)目更多,模型更復(fù)雜。更充分地挖掘了特征背后的關(guān)系,聯(lián)合特征對結(jié)果的影響。在此實(shí)驗(yàn)中,網(wǎng)絡(luò)結(jié)構(gòu)更為復(fù)雜的DCN確實(shí)拿到了最好的表現(xiàn)效果。
參考文獻(xiàn):
[1] 劉鵬, 王超.計(jì)算廣告:互聯(lián)網(wǎng)商業(yè)變現(xiàn)的市場與技術(shù)[M].北京:人民郵電出版社, 2015.
[2] CHENG H T, KOC L, HARMSEN J, et al.Wide & Deep Learning for Recommender Systems[C]//The Workshop on Deep Learning for Recommender Systems.Boston, USA, 2016:7-10.
[3] WANG R, FU B, FU G, et al.Deep & Cross Network for Ad Click Predictions[C]//Proceedings of AdKDD and TargetAd.Halifax, 2017:1-7.
[4] GUO H, TANG R, YE Y, et al.DeepFM:A Factorization-Machine based Neural Network for CTR Prediction[C]//Procee-dings of the Twenty-Sixth International Joint Conference on Artificial Intelligence.Melbourne, Australia, 2017:1725-1731.
[5] XIAO J, YE H, HE X N.Attentional Factorization Machines:Learning the Weight of Feature Interactions via Attention Networks[C]//Proceedings of the Twenty-Sixth International Joint Conference on Artificial Intelligence.Melbourne, Australia, 2017:3119-3125.
[6] HE X G, CHUA T S.Neural Factorization Machines for Sparse Predictive Analytics[C]//The 40th International ACM SIGIR Conference on Research and Development in Information Retrieval.Shinjuku, Tokyo, Japan, 2017:355-364.
[7] 劉夢娟,曾貴川,岳威,等.面向展示廣告的點(diǎn)擊率預(yù)測模型綜述[J].計(jì)算機(jī)科學(xué),2019,46(7):38-49.
【通聯(lián)編輯:梁書】