文/鐘小勇
(攜程計(jì)算機(jī)技術(shù)(上海)有限公司 上海市 200335)
眾所周知,廣告預(yù)期收益很大程度上取決于搜索廣告排序準(zhǔn)則,具體地講,表現(xiàn)在廣告質(zhì)量度和廣告競(jìng)價(jià)上。業(yè)界量化廣告質(zhì)量度最常用的辦法是通過(guò)廣告點(diǎn)擊率。點(diǎn)擊率(CTR,Click Through Rate)代表著人們點(diǎn)擊廣告的概率,CTR 預(yù)估是按照已有的廣告信息以及對(duì)應(yīng)的上下文來(lái)預(yù)估人們?yōu)g覽該廣告的可能性。因此,廣告排序最主要的工序是預(yù)估點(diǎn)擊率,因?yàn)樗P(guān)系著搜索引擎業(yè)務(wù)收入以及是否可以給出更符合用戶(hù)心理的信息,更進(jìn)一步講,CTR 還能夠作為廣告進(jìn)一步投放的參考標(biāo)準(zhǔn),總之廣告投放效果很大程度上取決于CTR,是實(shí)時(shí)競(jìng)價(jià)算法(Real Time Bidding,RTB)的重要因素之一。
廣告點(diǎn)擊率預(yù)測(cè)模型經(jīng)歷了傳統(tǒng)的機(jī)器學(xué)習(xí)模型與深度學(xué)習(xí)模型的演變。傳統(tǒng)的機(jī)器學(xué)習(xí)方法主要分為單一模型預(yù)測(cè)與模型組合預(yù)測(cè)兩部分。在單一模型中,邏輯回歸、決策樹(shù)等是較為常見(jiàn)的單一模型。相關(guān)文獻(xiàn)使用廣告特征、關(guān)鍵字與用戶(hù)特征,并結(jié)合邏輯回歸模型來(lái)預(yù)測(cè)廣告點(diǎn)擊率,并研究了不同關(guān)鍵字對(duì)廣告點(diǎn)擊狀況的影響。有關(guān)文獻(xiàn)基于充分的歷史廣告點(diǎn)擊數(shù)據(jù)使用決策樹(shù)等模型實(shí)現(xiàn)廣告點(diǎn)擊率預(yù)測(cè)。另外,還有其它一些機(jī)器學(xué)習(xí)模型比如:支持向量機(jī)模型等運(yùn)用于廣告點(diǎn)擊率預(yù)測(cè),而且效果較好。然而這些傳統(tǒng)的機(jī)器學(xué)習(xí)模型更依賴(lài)人工對(duì)特征的處理,在模型使用前期需要大量的人工特征工程。
近期,伴隨深度學(xué)習(xí)的熱潮,越來(lái)越多的人們將深度學(xué)習(xí)應(yīng)用于廣告點(diǎn)擊率預(yù)測(cè)中。百度公司研究人員將因子分解機(jī)與深度神經(jīng)網(wǎng)絡(luò)相結(jié)合用于預(yù)估廣告點(diǎn)擊率的FNN 模型。谷歌公司研究人員推出Wide&Deep 模型以處理點(diǎn)擊率預(yù)估問(wèn)題,在Wide&Deep 的Embedding 層后加入特征交叉功能形成的PNN 網(wǎng)絡(luò)效果不錯(cuò)。
本文使用卷積神經(jīng)網(wǎng)絡(luò)提取廣告數(shù)據(jù)中高影響力的特征,長(zhǎng)短期記憶(LSTM,Long Short Term Memory)模型則用于分類(lèi),基于此提出了一種基于卷積-LSTM 結(jié)合的廣告點(diǎn)擊率預(yù)測(cè)模型與算法。
(1)第一步:特征提取,運(yùn)用特征處理手段從原始數(shù)據(jù)中獲取影響力高的特征,并劃分為訓(xùn)練數(shù)據(jù)與測(cè)試數(shù)據(jù)兩大部分。
(2)第二步:創(chuàng)建模型并輸入訓(xùn)練集,使用優(yōu)化方法訓(xùn)練模型。
(3)第三步:將測(cè)試數(shù)據(jù)輸入訓(xùn)練完成的模型進(jìn)行預(yù)測(cè),平臺(tái)按照預(yù)測(cè)得到的點(diǎn)擊率來(lái)排序,從而得出廣告展示區(qū)域。廣告點(diǎn)擊率預(yù)測(cè)流程如圖1 所示。
邏輯回歸作為一種典型的分類(lèi)模型,非常適合處理分類(lèi)問(wèn)題,比如二分類(lèi)甚至多分類(lèi),內(nèi)部可能帶有線性或非線性決策函數(shù)。線性邏輯回歸為:
通過(guò)擴(kuò)展x 將x2 包含進(jìn)來(lái),可以得到邏輯回歸的非線性決策邊界:
圖1:點(diǎn)擊率預(yù)測(cè)流程
圖2:LSTM 單元模塊內(nèi)部結(jié)構(gòu)
圖3:卷積-LSTM 組合神經(jīng)網(wǎng)絡(luò)層組織
圖4:參數(shù)對(duì)比實(shí)驗(yàn)結(jié)果
其中,w 表示權(quán)值向量;x 表示輸入;b 表示偏置。
卷積神經(jīng)網(wǎng)絡(luò)(CNN,Convolutional Neural Networks)被認(rèn)為是一個(gè)經(jīng)典的前饋神經(jīng)網(wǎng)絡(luò)。除了輸入層、輸出層之間,大部分情況下卷積層可能作為它的隱藏層,甚至包括池化層與全連接層。一般情況下,會(huì)有多個(gè)卷積層和池化層,并且交替存在。在卷積神經(jīng)網(wǎng)絡(luò)中,特征圖(feature map)由多個(gè)神經(jīng)元構(gòu)成,卷積核連接上一層神經(jīng)元的輸出,從而衍生下一個(gè)神經(jīng)元。卷積核是一個(gè)由使用者自由定義大小的權(quán)重矩陣,通常作用于同一個(gè)圖像差異區(qū)域的小范圍感知域上,提取出每個(gè)小區(qū)域感知域的特征,以此構(gòu)造出下一層神經(jīng)元的輸入。卷積層將輸入特征進(jìn)行卷積。池化層按照指定的池化規(guī)則對(duì)輸入特征進(jìn)行再次提取。
長(zhǎng)短期記憶網(wǎng)絡(luò)作為一個(gè)時(shí)間遞歸神經(jīng)網(wǎng)絡(luò)。輸入門(mén)、輸出門(mén)和自由狀態(tài)等構(gòu)成了LSTM 神經(jīng)元,如圖2 所示。
卷積-LSTM 混合神經(jīng)網(wǎng)絡(luò)一共有三層。輸入層:將原始特征排重、數(shù)據(jù)清理后開(kāi)始獨(dú)立向量編碼(One-Hot Encoder),讓其映射到t 維空間中,t 表示編碼后的向量維度,然后獲取索引值生成新的特征。輸出層的作用是將卷積網(wǎng)絡(luò)的結(jié)果輸入給LSTM,從而可以進(jìn)行分類(lèi)和得到預(yù)測(cè)值,如圖3 所示。
然而,老百姓起初并不理解。甚至,“封禁令”一度引起不小的地震??谱蠛笃煲晃环帕艘惠呑友虻难蛸?,聽(tīng)到封禁消息時(shí),氣得把煙斗一扔,從炕上跳了起來(lái),指著干部就罵:“你們這些當(dāng)官的,全是吃飽了撐的。科爾沁草原自古就是放羊的地兒,不是圈羊的地兒。我爺爺那輩放羊,我爹爹那輩放羊,輪到我這輩怎么就成了不能放羊了呢?”
本文提出了一種模型訓(xùn)練算法,如表1 所示。
本文采用了Kaggle 比賽中Avazu 公司在2014年公開(kāi)的開(kāi)源數(shù)據(jù)集。從中選出了1 百萬(wàn)條數(shù)據(jù)作為訓(xùn)練集。每條數(shù)據(jù)都有20 個(gè)維度,包含10 個(gè)連續(xù)性特征,其中有9 個(gè)是已經(jīng)脫敏處理的)和9 個(gè)類(lèi)別特征。樣本標(biāo)簽的離散值是0 或1,分別代表負(fù)向樣本與正向樣本。原始訓(xùn)練數(shù)據(jù)中,正樣本比例與抽取數(shù)據(jù)中正樣本比例較為接近,這樣做的目的是不影響實(shí)驗(yàn)結(jié)果。
本文采用了兩種算法指標(biāo)來(lái)檢驗(yàn)分析模型。
(1)AUC(Area Under Curve)。AUC 的大小與ROC(Receiver Operating Characteristics)曲線下的覆蓋面大小有關(guān),ROC 曲線的橫軸表示假正率(False Positive Rate),縱軸表示真正率(True Positive Rate),按閾值的取值差異可得到不同的ROC 曲線。AUC 的取值在0 到1 之間,AUC 的值越大,分類(lèi)效果越佳。
(2)對(duì)數(shù)損失(Logarithmic Loss)。對(duì)數(shù)損失的值與分類(lèi)器效果成反比,對(duì)數(shù)損失值越小,分類(lèi)器效果越好。
通常來(lái)說(shuō),特征空間的大小取決于神經(jīng)網(wǎng)絡(luò)的層數(shù)和計(jì)算圖中神經(jīng)元的多少,越多的層和越多的神經(jīng)元,能夠表達(dá)的特征空間也就越大,學(xué)習(xí)過(guò)程也就越復(fù)雜,但運(yùn)行時(shí)間和內(nèi)存消耗也會(huì)越大,而且有可能會(huì)出現(xiàn)過(guò)擬合的問(wèn)題,因此最優(yōu)結(jié)果很大程度上取決于參數(shù)選擇是否合理。為了最優(yōu)化模型結(jié)果,本文做了相當(dāng)多的參數(shù)調(diào)節(jié)。結(jié)果發(fā)現(xiàn),CNN 輸出向量的維度大小、LSTM 層數(shù)、模型學(xué)習(xí)率的設(shè)置、選取的優(yōu)化方法是否合適等是主要影響因素。輸入不同的參數(shù),反復(fù)迭代優(yōu)化,最終計(jì)算得出最優(yōu)的AUC 值,如圖4 所示。
通過(guò)上述實(shí)驗(yàn)比對(duì),卷積-LSTM 組合神經(jīng)網(wǎng)絡(luò)模型的核心參數(shù)如表2 所示。
表1:卷積-LSTM 組合算法
表2:卷積-LSTM 組合神經(jīng)網(wǎng)絡(luò)模型初始參數(shù)
表3:?jiǎn)我唤Y(jié)構(gòu)的CNN 模型與LSTM 模型參數(shù)設(shè)置
表4:實(shí)驗(yàn)環(huán)境配置
表5:實(shí)驗(yàn)運(yùn)行結(jié)果
本文的機(jī)器配置如表4 所示。
在相同的特征處理環(huán)境下,將訓(xùn)練集和測(cè)試集按8:1 的比例切割,模型每從訓(xùn)練集中學(xué)習(xí)完一次,便將測(cè)試集輸入做預(yù)測(cè)和分類(lèi),反復(fù)迭代30 次后取最優(yōu)AUC 值和log loss 值,并統(tǒng)計(jì)迭代過(guò)程使用的總時(shí)間。
本文一共使用了6 種模型進(jìn)行點(diǎn)擊率預(yù)測(cè),分別有深層和淺層模型。運(yùn)行結(jié)果如表5 所示。其中邏輯回歸模型用LR 表示;FM模型是以矩陣分解為核心的機(jī)器學(xué)習(xí)算法,它的特點(diǎn)是能夠高效地學(xué)習(xí)特征之間的聯(lián)系,擅長(zhǎng)分析高維度稀疏數(shù)據(jù);NN 是一種常規(guī)的神經(jīng)網(wǎng)絡(luò)模型;CNN 代表一種卷積神經(jīng)網(wǎng)絡(luò);CNN+LSTM 代表本文提出的卷積-LSTM 組合的深度學(xué)習(xí)網(wǎng)絡(luò)模型。
本文從幾個(gè)方面分析了上述實(shí)驗(yàn)結(jié)果,分別如下:
(1)從模型層數(shù)來(lái)看,深層模型在預(yù)測(cè)方面的效果高于以往的淺層模型。淺層模型在第9 次迭代之后,AUC 值和log loss 值趨于收斂,F(xiàn)M 模型的預(yù)測(cè)準(zhǔn)確度高于LR 模型;與普通NN 模型相比,CNN 與LSTM 的預(yù)測(cè)效果顯然更好。
(2)比較AUC 值與log loss 值,卷積-LSTM 組合神經(jīng)網(wǎng)絡(luò)模型在這兩方面的指標(biāo)表現(xiàn)都比單一結(jié)構(gòu)的CNN 模型與LSTM 模型要好。與CNN 模型對(duì)比,其AUC 值提高了1.38%,log loss 值降低了0.29%;與LSTM 模型對(duì)比,其AUC 值提高了2.61%,log loss 值降低了1.38%。
(3)從時(shí)間上看,由于卷積-LSTM 組合神經(jīng)網(wǎng)絡(luò)模型的層數(shù)相對(duì)多一點(diǎn),復(fù)雜度比較高,其訓(xùn)練總共的時(shí)長(zhǎng)相比單一層次結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)模型,會(huì)更多一些。
本文通過(guò)充分研究和比較現(xiàn)有的線上搜索廣告集合,分析得出了互異特征之間相關(guān)性強(qiáng),人工提取特征費(fèi)時(shí)費(fèi)力等不足,最后分析了若干種淺層預(yù)測(cè)模型與深層預(yù)測(cè)模型的優(yōu)缺點(diǎn),研究出了一種新的深度學(xué)習(xí)模型卷積-LSTM 混合神經(jīng)網(wǎng)絡(luò)模型。實(shí)驗(yàn)表明:與傳統(tǒng)的廣告點(diǎn)擊率預(yù)測(cè)模型相比,卷積-LSTM 組合神經(jīng)網(wǎng)絡(luò)模型效果更明顯。通過(guò)卷積核移動(dòng)提取關(guān)鍵性特征,降低了人力開(kāi)銷(xiāo),又較好地提升了模型效率;使用LSTM 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)廣告點(diǎn)擊率,提升了分類(lèi)精度。接下來(lái),本文將繼續(xù)圍繞特征、模型,從工程化方向做迭代,以期達(dá)到更好的提升。