羅逸倫
(廣東財(cái)經(jīng)大學(xué),廣東廣州 510320)
隨著移動設(shè)備的普及,移動互聯(lián)網(wǎng)時代已經(jīng)來臨。廣告商利用互聯(lián)網(wǎng)以及數(shù)據(jù)媒體平臺進(jìn)行廣告營銷成為趨勢。同時,海量的推薦信息往往會影響用戶的上網(wǎng)體驗(yàn)。因此,在網(wǎng)絡(luò)資源有限的情況下,如何高效地提取用戶行為特征,精準(zhǔn)推薦適合用戶的業(yè)務(wù)和內(nèi)容,成為廣告推薦領(lǐng)域需要解決的問題。
廣告推薦領(lǐng)域中的一個重要環(huán)節(jié)就是對將廣告投放到一個曝光機(jī)會(ad Impression)的用戶點(diǎn)擊概率進(jìn)行預(yù)測[1],將廣告盡可能的投放到點(diǎn)擊率高的曝光機(jī)會用以最大化廣告商的收益。因此,廣告推薦的問題一般可以理解為廣告點(diǎn)擊率(Click-Through Rate,CTR)預(yù)測的問題。
CTR預(yù)測是一個典型的回歸問題,邏輯斯蒂回歸(Logistic Regression,LR)可以很好的將非線性的原始數(shù)據(jù)處理成線性的輸出結(jié)果[2]。但是由于線性模型無法學(xué)習(xí)并提取數(shù)據(jù)中的高階組合特征(非線性信息),從而限制該模型的性能。為了解決這一問題,因子分解機(jī)(Factorization Machine,FM)模型將數(shù)據(jù)中的高維隱形稀疏特征映射到低維稠密向量中,并使用向量內(nèi)積方法來學(xué)習(xí)兩兩特征之間隱含的特征信息,在學(xué)習(xí)非線性信息的同時大幅度降低了特征兩兩組合導(dǎo)致的計(jì)算復(fù)雜度[3]。但是受限于計(jì)算復(fù)雜度和計(jì)算效率,FM模型一般只考慮提取2階交叉特征,無法更深層次的提取高階特征。
在過去幾年,深度學(xué)習(xí)在自然語言處理、語義識別以及計(jì)算機(jī)視覺等一系列領(lǐng)域中取得了令人矚目的成就,其挖掘數(shù)據(jù)特征間高階隱含信息的能力也被應(yīng)用于CTR預(yù)測領(lǐng)域中。文獻(xiàn)[4]中提出了一個FM與深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)相結(jié)合的模型FNN。該模型的特點(diǎn)是使用預(yù)先訓(xùn)練好的FM模型,得到特征之間的稠密隱含向量,之后將這些隱含向量作為DNN的輸入進(jìn)行訓(xùn)練得到最終的預(yù)測結(jié)果[4]。但是模型性能受限于FM的預(yù)訓(xùn)練的效果,同時FNN模型無法很好的學(xué)習(xí)低階的特征組合,進(jìn)一步限制了模型的性能。Google的研究人員為了滿足同時學(xué)習(xí)低階與高階組合特征信息的需求,在文獻(xiàn)[5]中提出了Wide&Deep模型,該模型使用融合結(jié)構(gòu)將線性模型和深度學(xué)習(xí)模型融合在一起并行訓(xùn)練,在利用深度學(xué)習(xí)提取特征間高階隱含信息的同時,使用線性模型學(xué)習(xí)低階特征攜帶的信息,因此預(yù)測性能超過了FNN等模型[5]。文獻(xiàn)[3]在該模型的基礎(chǔ)上,將Wide&Deep模型中線性模型模塊使用的LR模型替換成FM模型,從而提出了DeepFM模型,進(jìn)一步的改進(jìn)了模型的預(yù)測性能。
本文借鑒了Wide&Deep以及DeepFM模型的設(shè)計(jì)思路,在模型的深度學(xué)習(xí)模塊中加入殘差神經(jīng)網(wǎng)絡(luò),提高模型特征間高階隱含信息的學(xué)習(xí)能力。在線性模塊中采用FM模型去學(xué)習(xí)低階特征里攜帶的信息,得到一種由殘差神經(jīng)網(wǎng)絡(luò)和因子分解機(jī)組成的模型——FM&Resnet模型,并驗(yàn)證該模型的效果。
FM(Factorization Machine)因子分解機(jī)最早是由Steffen Rendle(現(xiàn)任職于Google公司)于2010年的ICDM會議(Industrial Conference on Data Mining)上提出的,該模型在數(shù)據(jù)非常稀疏的情況下,依然可以估計(jì)出可靠的特征參數(shù),并進(jìn)行預(yù)測[6]。FM模型思想是基于線性回歸模型,對于一個給定的特征向量X=(x1,x2,…,xn)T,線性回歸模型為=w0+w1x+…+wnx,其中特征分量xi與xj(i≠j)之間相互獨(dú)立,此時的 僅僅考慮單個特征的分量,而沒有考慮互異特征之間的組合關(guān)系。因此FM引入了二階組合項(xiàng)xixj,模型變換為:
其中,wij代表組合特征的參數(shù),在xi和xj都非零的時候才有意義,但是數(shù)據(jù)稀疏的問題在實(shí)際應(yīng)用場景中普遍存在,在樣本數(shù)據(jù)本身就比較稀疏的情況下,能滿足“xi和xj都非零”條件的樣本數(shù)量將會更少,訓(xùn)練樣本不足會影響到模型性能。為了解決這個問題,FM模型針對每一個特征分量,引入了一個隱向量的概念Vi=(vi1,vi2,…,vik)T∈RT,i=1,2…n,用于替代參數(shù)wij,其中k∈N+為根據(jù)實(shí)際情況與經(jīng)驗(yàn)設(shè)置的超參數(shù),可得到新的FM模型公式如下:
此時公式中有兩層循環(huán)和k維內(nèi)積,方程的時間復(fù)雜度為O(kn2),因此在計(jì)算的時候可以采用下式的優(yōu)化方法,將時間復(fù)雜度從O(kn2)降低至O(kn),提高FM模型的計(jì)算效率。
圖1 FM&ResNet模型架構(gòu)圖Fig.1 FM&ResNet model architecture diagram
隨著深度學(xué)習(xí)發(fā)展的不斷深入,更多的深度神經(jīng)網(wǎng)絡(luò)模型被提出,如Lenet、Alexnet以及VGG-16等。然而在許多情況下,訓(xùn)練深層網(wǎng)絡(luò)的過程中,我們都會發(fā)現(xiàn)一個更加復(fù)雜的8層的網(wǎng)絡(luò)的效果往往不如相對簡單的3層的神經(jīng)網(wǎng)絡(luò)。殘差網(wǎng)絡(luò)為了解決深層網(wǎng)絡(luò)訓(xùn)練的問題,增加一個恒等映射(identity mapping),將原始所需要學(xué)的函數(shù)H(x)轉(zhuǎn)換成F(x)+x。假設(shè)某段神經(jīng)網(wǎng)絡(luò)中的輸入與輸出是x和H(x),如果將原始輸入x直接傳到輸出作為初始的結(jié)果,那么學(xué)習(xí)的目標(biāo)就從H(x)變?yōu)榱薋(x)+x,即殘差。雖然兩種表達(dá)式效果相同,但是F(x)+x的優(yōu)化難度比H(x)簡單的多。給網(wǎng)絡(luò)末端添加一個恒等映射不會給網(wǎng)絡(luò)增加額外的參數(shù)和計(jì)算量,并且在模型層數(shù)增加時能夠很好的解決模型的退化問題。
由前文所分析,FM模型在邏輯回歸模型的基礎(chǔ)上提出了使用隱向量作為內(nèi)積用來表示特征之間的組合,但是受限于模型的計(jì)算復(fù)雜度考量,FM模型一般也只是提取二階的特征組合進(jìn)行學(xué)習(xí)。在廣告點(diǎn)擊率預(yù)測領(lǐng)域,低階特征和高階特征組合同樣重要,但是特征組合階數(shù)越高越復(fù)雜,學(xué)習(xí)的難度也隨之上升,同時學(xué)習(xí)兩種特征組合的性能要比只學(xué)習(xí)其中一種的性能要好。所以本文從同時學(xué)習(xí)高階隱性特征與低階顯現(xiàn)特征的角度出發(fā),在原有的DeepFM模型上進(jìn)行改進(jìn),引入殘差神經(jīng)模塊,增強(qiáng)高階組合特征的挖掘能力,得到了由殘差深度神經(jīng)網(wǎng)絡(luò)和因子分解機(jī)組成的模型——FM&ResNet模型,圖1是FM&ResNet模型的架構(gòu)圖。
如圖1中可以看出FM&Resnet模型主要分為兩個部分:深度殘差神經(jīng)網(wǎng)絡(luò)部分和FM部分,利用FM模型學(xué)習(xí)一階以及二階組合特征,完成樣本低階特征的提取;在深度神經(jīng)網(wǎng)絡(luò)中引入殘差模塊,利用深度學(xué)習(xí)提取高階特征的能力,來學(xué)習(xí)樣本中的高階特征信息。又在深度殘差深度模塊輸入層前部引入了嵌入層,將輸入的樣本向量壓縮成低位稠密的向量,既解決了數(shù)據(jù)稀疏的問題,又避免了多類型的特征one-hot編碼之后維度過大增加計(jì)算復(fù)雜度的問題。由殘差神經(jīng)網(wǎng)絡(luò)和FM共同組成模型,同時進(jìn)行訓(xùn)練,最終得到的結(jié)果如下:
其中,YResNet代表深度殘差神經(jīng)網(wǎng)絡(luò)部分的輸出,YFM代表FM部分的輸出,兩者的輸出結(jié)果通過一個Sigmoid函數(shù)將結(jié)果轉(zhuǎn)換為(0,1)之間的一個數(shù)值,最終模型得到了點(diǎn)擊率預(yù)測的計(jì)算結(jié)果。
本文采用的實(shí)驗(yàn)數(shù)據(jù)集來自于Criteo點(diǎn)擊率預(yù)測挑戰(zhàn)賽的公開數(shù)據(jù)集,該數(shù)據(jù)集的樣本量為4千萬的訓(xùn)練樣本,5百萬的測試樣本,一共有13個數(shù)值特征和26個分類特征。模型的評估方法采用的是AUC評分和LogLoss損失函數(shù),其中AUC定義為ROC曲線下與坐標(biāo)圍成的面積,AUC值越大代表模型性能越好;LogLoss代表交叉熵?fù)p失,用來評估預(yù)測值與真實(shí)值不一致的程度,LogLoss值越小,說明預(yù)測模型性能越好。本次實(shí)驗(yàn)以DeepFM、FM&ResNet兩個模型作為對比分析。從Criteo數(shù)據(jù)集中分別抽取2千萬條記錄與1千萬條記錄作為數(shù)據(jù)A和數(shù)據(jù)B,訓(xùn)練樣本與測試樣本比例10:1,實(shí)驗(yàn)結(jié)果如表1。
表1 對比實(shí)驗(yàn)結(jié)果Tab.1 Comparative experimental results
可以看出FM&ResNet模型引入殘差神經(jīng)網(wǎng)絡(luò)后,模型提升了高階隱形特征的學(xué)習(xí)能力,在不同數(shù)量級的數(shù)據(jù)集上比較原模型有更好的預(yù)測效果,AUC值平均提升了0.25%,LogLoss平均降低了0.41%。FM&ResNet增強(qiáng)了提取樣本中高階隱形特征的能力,預(yù)測效果要比DeepFM模型要好。
本文針對點(diǎn)擊率預(yù)測問題,改進(jìn)原模型DeepFM,增強(qiáng)了高階隱形特征的學(xué)習(xí)能力,得到了基于因子分解機(jī)和殘差神經(jīng)網(wǎng)絡(luò)的模型——FM&ResNet,并與原模型進(jìn)行了比較,最終發(fā)現(xiàn)在不同數(shù)量級別的訓(xùn)練樣本上,FM&ResNet模型的預(yù)測效果要更好,可以有效的挖掘樣本中的特征組合,提高廣告推薦的精準(zhǔn)性。綜上,利用FM&ResNet模型可以從用戶行為習(xí)慣中高效地挖掘用戶行為特征,提高廣告點(diǎn)擊率預(yù)測性能,幫助廣告商精準(zhǔn)、高效地投放廣告,達(dá)到最大化收益的目的,對于用戶來說可以大量減少無效信息的干擾,提高了用戶上網(wǎng)體驗(yàn),從而達(dá)到一個雙贏的局面。