劉恩伯, 趙玲玲, 蘇小紅
(哈爾濱工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 哈爾濱150001)
計(jì)算廣告[1-4]是在給定具體的網(wǎng)頁(yè)內(nèi)容和用戶(hù)下,通過(guò)大量的計(jì)算,將最佳廣告內(nèi)容匹配給用戶(hù)的一種精準(zhǔn)化廣告投放機(jī)制。 隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展,廣告投放平臺(tái)不斷迭代,廣告投放的形式加速改變,如今已經(jīng)擁有龐大的市場(chǎng)體系,成為互聯(lián)網(wǎng)重要的商業(yè)模式。 廣告投放效果的好壞通過(guò)轉(zhuǎn)化、曝光和點(diǎn)擊等指標(biāo)來(lái)權(quán)衡,因此廣告轉(zhuǎn)化率預(yù)估是計(jì)算廣告領(lǐng)域的關(guān)鍵問(wèn)題。 通過(guò)對(duì)用戶(hù)的行為動(dòng)作、興趣愛(ài)好等的分析獲得對(duì)用戶(hù)的特征抽象,通過(guò)對(duì)特征的分析建模對(duì)特定的用戶(hù)推送不同的個(gè)性化廣告內(nèi)容。 不但可以提高廣告的投放效果,使廣告主的收益更大,將廣告從無(wú)用的騷擾內(nèi)容變身成有價(jià)值的用戶(hù)感興趣的內(nèi)容,從而為用戶(hù)的工作和生活等方面帶來(lái)了極大的便利。
廣告轉(zhuǎn)換率估算方法依賴(lài)于用戶(hù)、發(fā)布商和廣告客戶(hù)數(shù)據(jù)層次結(jié)構(gòu)中的過(guò)去性能觀察值[5]。 更具體地說(shuō),是利用單獨(dú)的二項(xiàng)分布在不同的選擇層次上對(duì)轉(zhuǎn)換事件建模并估計(jì)分布參數(shù), 使用邏輯回歸將這些單獨(dú)的估計(jì)量結(jié)合起來(lái)以準(zhǔn)確識(shí)別轉(zhuǎn)換事件。 Amr Ahmed, Abhimanyu Das 等人提出了一個(gè)分層模型和可伸縮算法來(lái)執(zhí)行多任務(wù)學(xué)習(xí)的推理。在聯(lián)合稀疏設(shè)置中推斷任務(wù)關(guān)聯(lián)和子任務(wù)結(jié)構(gòu),通過(guò)一個(gè)分布式次梯度預(yù)言器以及與變量組和子組相關(guān)的prox-operators 的連續(xù)應(yīng)用來(lái)實(shí)現(xiàn)[6]。 并將此算法應(yīng)用于展示廣告中的轉(zhuǎn)化問(wèn)題上,精度和準(zhǔn)度得到了很大的提升。 隨著移動(dòng)廣告的增長(zhǎng),使得預(yù)測(cè)廣告響應(yīng)的任務(wù)對(duì)于最大化業(yè)務(wù)收入至關(guān)重要。由于廣告的響應(yīng)數(shù)據(jù)受限于歷史記錄的冷啟動(dòng),阻礙預(yù)測(cè)的可靠性。 為此, Richard J. Oentaryo,Ee-Peng Lim 等人開(kāi)發(fā)了一個(gè)分層重要性意識(shí)因子分解機(jī)器(HIFM),它提供了一個(gè)有效的通用潛在因素框架,其中包含重要性權(quán)重和分級(jí)學(xué)習(xí)[7]。 實(shí)證研究表明,HIFM 優(yōu)于當(dāng)前時(shí)間潛在因素模型,冷啟動(dòng)情景下的整體預(yù)測(cè)效果得到改善。 Weinan Zhang,Tianming Du 等人提出了兩種使用深度神經(jīng)網(wǎng)絡(luò)(DNN)的新模型,以自動(dòng)學(xué)習(xí)來(lái)自類(lèi)別特征的有效模式,并預(yù)測(cè)用戶(hù)的廣告轉(zhuǎn)化率[8]。 解決了用戶(hù)響應(yīng)預(yù)測(cè)模型必須將自身限制為線性模型或者需要手動(dòng)構(gòu)建高階組合功能。 Hongxia Yang,Quan Lu等人提出一種新的概率生成模型,通過(guò)將自然語(yǔ)言處理,動(dòng)態(tài)轉(zhuǎn)移學(xué)習(xí)和可伸縮預(yù)測(cè)的組件緊密集成來(lái)預(yù)測(cè)轉(zhuǎn)化率[9]。 過(guò)度預(yù)測(cè)和過(guò)度出價(jià)是實(shí)時(shí)出價(jià)平臺(tái)中的基本挑戰(zhàn)。 為了解決這個(gè)問(wèn)題,Quan Lu,Shengjun Pan 等人[10]提出了一個(gè)安全的預(yù)測(cè)框架,其中包含轉(zhuǎn)換分配調(diào)整以處理過(guò)度預(yù)測(cè),并進(jìn)一步緩解不同級(jí)別的過(guò)度出價(jià)[10]。
本課題采用Tencent 公開(kāi)的移動(dòng)社交應(yīng)用廣告數(shù)據(jù),預(yù)估廣告點(diǎn)擊后被激活的概率,即在給定廣告信息、用戶(hù)信息和上下文情況等外需信息和廣告日志的情況下,預(yù)估廣告被點(diǎn)擊并發(fā)生轉(zhuǎn)化的概率。
目前工業(yè)界常用的方法有很多,比如廣點(diǎn)通精排使用的LR 模型,Yahoo 和Bing 使用傳統(tǒng)的GBDT模型,Facebook 使用GBDT+LR 的組合模型,百度鳳巢采用FM 模型。 這些模型針對(duì)不同的應(yīng)用場(chǎng)景和不同的廣告數(shù)據(jù)效果不盡相同,各有自己的有缺點(diǎn),將傳統(tǒng)模型進(jìn)行試驗(yàn),并用實(shí)驗(yàn)結(jié)果與我們的方法進(jìn)行效果對(duì)比。
輕量梯度提升機(jī)(Light Gradient Boosting Machine, LightGBM[11]), 是 一 種 基 于 Gradient Boosting[12-13]的集成學(xué)習(xí)算法。 傳統(tǒng)的Boosting 算法包括:AdaBoost, RankBoost, GBDT 等。 由于廣告轉(zhuǎn)化日志特征維度很高且數(shù)據(jù)量龐大,數(shù)據(jù)稀疏性高,傳統(tǒng)的GBDT 不能滿(mǎn)足搞得效率和可擴(kuò)展,LightGBM 算法是傳統(tǒng)梯度提升模型的改進(jìn),算法性能有了極大的提升,非常適合廣告轉(zhuǎn)化日志的屬性特征。 因此,本文將LightGBM 算法應(yīng)用于互聯(lián)網(wǎng)廣告轉(zhuǎn)化率預(yù)估中,挖掘用戶(hù)的行為和廣告等有用信息,建立回歸預(yù)估模型,調(diào)整優(yōu)化參數(shù)從而得到理想的預(yù)估概率。 實(shí)驗(yàn)結(jié)果表明,LightGBM 與傳統(tǒng)的機(jī)器學(xué)習(xí)方法相比,具有精確度高、運(yùn)行速度快、內(nèi)存消耗低和可擴(kuò)展等特點(diǎn)。
原始數(shù)據(jù)集包括訓(xùn)練集和測(cè)試集,以及廣告特征,用戶(hù)特征,上下文特征等8 個(gè)數(shù)據(jù)文件。 訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)每行代表一個(gè)樣本,各字段之間由逗號(hào)分隔,順序依次為:“instanceID,label,clickTime,creativeID, userID, positionID, connectionType,telecomsOperator”,其中,instanceID 唯一標(biāo)識(shí)一個(gè)樣本。 數(shù)據(jù)集為廣告系統(tǒng)中隨機(jī)抽取某半個(gè)月的轉(zhuǎn)化日志,并遵照運(yùn)營(yíng)中的應(yīng)用App 和用戶(hù)特征維度進(jìn)行隨機(jī)采樣。 每一條訓(xùn)練樣本代表一條廣告轉(zhuǎn)化日志記錄,樣本標(biāo)簽label 取值1 代表該條廣告被點(diǎn)擊并發(fā)生了轉(zhuǎn)化,0 表示沒(méi)有發(fā)生轉(zhuǎn)化。
廣告特征包括賬戶(hù)——推廣計(jì)劃——廣告——素材四級(jí)結(jié)構(gòu)。 不同的賬戶(hù)對(duì)應(yīng)不同的特定廣告主;推廣計(jì)劃包含多個(gè)不同的廣告,是廣告的一個(gè)集合。 廣告主可以把預(yù)算額度情況、是否勻速投放、計(jì)劃推廣平臺(tái)等條目一致的廣告整理到同一個(gè)推廣計(jì)劃中,便于管理;廣告是指廣告商設(shè)計(jì)的廣告素材或創(chuàng)意以及展示等相關(guān)的設(shè)置;素材是直接展現(xiàn)給用戶(hù)的廣告內(nèi)容,同一條廣告可以包含多個(gè)廣告素材。廣告特征還包含有各類(lèi)App 的相關(guān)特征。 用戶(hù)特征包括用戶(hù)的基本特征:年齡、性別、學(xué)歷、婚戀狀態(tài)、育兒狀態(tài)、家鄉(xiāng)和籍貫、常住地等,還包括用戶(hù)安裝App 流水等。 上下文特征包括廣告曝光的具體位置;移動(dòng)工具等的上網(wǎng)模式如4G、Wifi 等;移動(dòng)工具的運(yùn)營(yíng)商如聯(lián)通、電信等;多個(gè)廣告位的聚合以及對(duì)于某些站點(diǎn)人工定義的一套廣告位規(guī)格分類(lèi)等。
基于對(duì)轉(zhuǎn)化日志回流時(shí)間的分析,發(fā)現(xiàn)幾乎100%的回流時(shí)間發(fā)生在三天內(nèi),其次是兩天之內(nèi),占到了90%。 因此,考慮到硬件因素,選擇28,29 兩天為訓(xùn)練集,30 天為測(cè)試集。
數(shù)據(jù)特征的提取,主要包括以下四部分特征。
(1)基礎(chǔ)特征。 基礎(chǔ)特征即原數(shù)據(jù)集合包含的已知特征,如age、creativeID、adID、positionType、appInstallList 等。 用這些基礎(chǔ)特征訓(xùn)練出來(lái)的模型,已經(jīng)具備指導(dǎo)轉(zhuǎn)化率預(yù)估的能力。 即讓分類(lèi)器學(xué)習(xí)這些基本屬性對(duì)于是否轉(zhuǎn)化的分布,完成最基本淺層的預(yù)估。
(2)用戶(hù)的統(tǒng)計(jì)特征。 一條廣告是否發(fā)生轉(zhuǎn)化,主要取決于用戶(hù),因此提取與用戶(hù)相關(guān)的特征屬性是保證預(yù)估準(zhǔn)度和精度的關(guān)鍵。 用戶(hù)的統(tǒng)計(jì)特征主要包括兩部分:基本統(tǒng)計(jì)和時(shí)序統(tǒng)計(jì)。 基本統(tǒng)計(jì)包括:用戶(hù)的轉(zhuǎn)化類(lèi)別、轉(zhuǎn)化次數(shù)、安裝數(shù)量、點(diǎn)擊數(shù)量、安裝同類(lèi)別App 的數(shù)量等;時(shí)序統(tǒng)計(jì)包括:統(tǒng)計(jì)點(diǎn)擊時(shí)間之前的App 安裝數(shù)量、種類(lèi)、用戶(hù)點(diǎn)擊量等。
(3)Trick。 由于網(wǎng)速延時(shí)、帶寬等外部因素影響,用戶(hù)在短期內(nèi)可能不斷重復(fù)的點(diǎn)擊同一條廣告,挖掘這些連續(xù)不斷的點(diǎn)擊日志的信息是很有價(jià)值的。 例如,對(duì)短期內(nèi)連續(xù)的多條重復(fù)記錄進(jìn)行編號(hào),記錄當(dāng)前點(diǎn)擊分別與前一次點(diǎn)擊和后一次點(diǎn)擊的時(shí)間差,統(tǒng)計(jì)相同時(shí)段內(nèi)的點(diǎn)擊量等。
(4)貝葉斯平滑后的轉(zhuǎn)化率。 在某些特殊條件下,如統(tǒng)計(jì)同一廣告位下某App 的歷史轉(zhuǎn)化率,由于廣告位上線時(shí)間有延時(shí),往往上線慢的廣告統(tǒng)計(jì)不充分,特征對(duì)其基本無(wú)影響,因此用戶(hù)歷史轉(zhuǎn)化率并不能相對(duì)準(zhǔn)確的表示該條件下的真實(shí)轉(zhuǎn)化率。 又如大多數(shù)用戶(hù)只點(diǎn)擊過(guò)某個(gè)App 一次,歷史轉(zhuǎn)化率就可能會(huì)達(dá)到1,使用這些記錄訓(xùn)練模型即使用標(biāo)簽來(lái)訓(xùn)練模型,極大的影響訓(xùn)練結(jié)果。 所以,對(duì)某些特定屬性計(jì)算該屬性下的貝葉斯平滑后的轉(zhuǎn)化率。
按照上述提取方案一步步生成最終的數(shù)據(jù)集合,整體生成流程如圖1 所示。 component 1 - n 是生成的中間數(shù)據(jù)集。
圖1 數(shù)據(jù)集生成流程圖Fig. 1 Data set generation flow chart
本文對(duì)生成的數(shù)據(jù)集,使用XGBoost 工具對(duì)所選取特征進(jìn)行重要性排序,從而可以判斷出哪些特征與廣告轉(zhuǎn)化與否關(guān)系較大,這是實(shí)驗(yàn)的特征選取的關(guān)鍵一步。 分析結(jié)果如圖2 所示。
圖2 XGBoost 特征重要性排序Fig. 2 Importance of feature variables by XGBoost
由圖2 可知,短期內(nèi)重復(fù)點(diǎn)擊的廣告最可能會(huì)被轉(zhuǎn)化,貝葉斯平滑對(duì)轉(zhuǎn)化率的影響也極為關(guān)鍵,一些基礎(chǔ)特征對(duì)轉(zhuǎn)化率的指導(dǎo)也很重要。 利用相關(guān)性特征,通過(guò)皮爾森相關(guān)系數(shù)對(duì)相關(guān)性排序低的特征進(jìn)行篩選。
LightGBM 是基于GBDT 的梯度提升算法。 在此基礎(chǔ)上LightGBM 提出兩種新方法:Gradientbased One - Side Sampling (GOSS) 和 Exclusive Feature Bundling (EFB)。
針對(duì)數(shù)量大,GOSS 保留所有梯度較大的實(shí)例,在梯度小的實(shí)例上使用隨機(jī)采樣。 為了抵消對(duì)數(shù)據(jù)分布的影響,計(jì)算信息增益的時(shí)候,GOSS 對(duì)小梯度的數(shù)據(jù)引入常量乘數(shù)。 GOSS 首先根據(jù)數(shù)據(jù)的梯度絕對(duì)值排序,選取Top A 個(gè)實(shí)例,然后在余下的數(shù)據(jù)里通過(guò)隨機(jī)采樣B 個(gè),接著計(jì)算信息增益時(shí)為采樣出的小梯度數(shù)據(jù)乘以(1-A)/B,這樣算法就會(huì)更關(guān)注訓(xùn)練不足的實(shí)例,而不會(huì)過(guò)多改變?cè)瓟?shù)據(jù)集的分布。 所以LightGBM 采用了基于Leaf-wise 的決策樹(shù)算法,這是一種按葉子生長(zhǎng)并帶有深度限制的生長(zhǎng)策略。 而大多數(shù)梯度提升模型使用Level-wise 的決策樹(shù)算法,這是一種按層生長(zhǎng)的生長(zhǎng)策略,如圖3 所示。 Leaf-wise 是一種作用更好的生長(zhǎng)策略,它每次從當(dāng)前所有葉子節(jié)結(jié)點(diǎn)中,找到分裂增益最大的一個(gè)葉子結(jié)點(diǎn)進(jìn)行分裂,如此循環(huán)。 因此與Levelwise 生長(zhǎng)策略相比,在分裂次數(shù)等條件相同的情況下,Leaf-wise 可以得到更好的結(jié)果,訓(xùn)練速度更快。
針對(duì)特征維度高,高維的數(shù)據(jù)通常是稀疏的。特別的,稀疏特征空間中,許多特征是互斥的,例如他們從不同時(shí)為非零值。 EFB 算法能夠?qū)⒃S多互斥的特征變?yōu)榈途S稠密的特征,能夠有效的避免不必要零值特征的計(jì)算,能夠極大地加速GBDT 的訓(xùn)練過(guò)程而且損失精度。 實(shí)際上,使用直方圖算法,用表格來(lái)標(biāo)記非零元素來(lái)忽略零值特征。 通過(guò)對(duì)表格中的數(shù)據(jù)的掃描,建立直方圖的時(shí)間復(fù)雜度將從O(#data)降到O(#non_zero_data)。 從內(nèi)存消耗上看,直方圖算法只需(#data* #features * 1Bytes)的內(nèi)存,在尋找分割點(diǎn)時(shí),直方圖算法的時(shí)間復(fù)雜度代價(jià)是O(#feature * #data),而在數(shù)據(jù)分割時(shí),直方圖算法時(shí)間復(fù)雜度的代價(jià)只有O(#data)。 在計(jì)算上,分割結(jié)點(diǎn)次數(shù)得到很大的降低;在數(shù)據(jù)并行時(shí),通信代價(jià)得到極大的降低。
圖3 Level-wise 和Leaf-wise 生長(zhǎng)策略Fig. 3 Level-wise and Leaf-wise growth strategies
LightGBM 還直接支持類(lèi)別特征,不需要進(jìn)行獨(dú)熱編碼操作,從而極大地降低了數(shù)據(jù)維度。 此外,Cache 命中率、網(wǎng)絡(luò)通信和并行計(jì)算上都有一定程度的優(yōu)化,且支持GPU 加速。
LightGBM 參數(shù)組成主要分為調(diào)節(jié)訓(xùn)練速度的參數(shù),調(diào)節(jié)精度的參數(shù),防止過(guò)擬合的參數(shù)三部分。在給定其他參數(shù)默認(rèn)值情況下,分別使用網(wǎng)格搜索進(jìn)行最佳參數(shù)選擇,其中重要的參數(shù)設(shè)置如:bagging_fraction+bagging _ freq 同 時(shí) 設(shè) 置 來(lái) 提 高bagging 的速度,控制樹(shù)決策樹(shù)復(fù)雜度的參數(shù)num_leaves 設(shè)置為355,此時(shí)并未選擇max_depth 來(lái)防止過(guò)擬合,提高訓(xùn)練精度的參數(shù)學(xué)習(xí)率learning_rate設(shè)置為0.02,提高速度的參數(shù)feature_fraction 設(shè)置為0.5 等。
由于廣告轉(zhuǎn)化率數(shù)據(jù)具有數(shù)據(jù)量大且稀疏的特性,為了體現(xiàn)預(yù)測(cè)結(jié)果與真實(shí)值的吻合程度,評(píng)價(jià)指標(biāo)采用對(duì)數(shù)損失(Logloss),公式(1)如下:
其中,N 為測(cè)試樣本總數(shù),yi是二值變量,取值0或1,表示第i 個(gè)樣本的label,pi為模型預(yù)測(cè)第i 個(gè)樣本label 為1 的概率。
使用LR、GBDT、GBDT+LR、FM、FFM 分別對(duì)相同特征工程處理后的數(shù)據(jù)集進(jìn)行建模,其中FFM 模型是在FM 模型的基礎(chǔ)上進(jìn)行改進(jìn),主要區(qū)別在于FM 模型中,每一個(gè)特征會(huì)對(duì)應(yīng)一個(gè)隱變量,而在FFM 模型中,將不同類(lèi)特征分為多個(gè)域,每個(gè)特征對(duì)應(yīng)每個(gè)域分別對(duì)應(yīng)一個(gè)隱變量。 通過(guò)參數(shù)優(yōu)化和交叉驗(yàn)證,對(duì)第30 天的轉(zhuǎn)化率進(jìn)行預(yù)估。 并計(jì)算得到各自的Logloss 值與本文的模型LightGBM 進(jìn)行對(duì)比,得到的實(shí)驗(yàn)結(jié)果如圖4 所示。
圖4 實(shí)驗(yàn)結(jié)果對(duì)比圖Fig. 4 Comparison of experimental results
實(shí)驗(yàn)結(jié)果表明,在所有實(shí)驗(yàn)?zāi)P椭?通過(guò)對(duì)Logloss 值的對(duì)比,發(fā)現(xiàn)LightGBM 預(yù)估結(jié)果在準(zhǔn)度和精度上都要好于其他五種模型。 在實(shí)驗(yàn)過(guò)程中,LightGBM 的內(nèi)存占用率與其他模型相比最低,CPU利用率僅為0.47,而運(yùn)算速度僅次于LR,但明顯高于其他幾種模型。
本文采用輕量梯度提升機(jī)算法,基于騰訊社交廣告日志,對(duì)其數(shù)據(jù)進(jìn)行特征選擇構(gòu)造和回歸算法建模,并與LR、GBDT、GBDT+LR、FM、FFM 算法進(jìn)行對(duì)比,得到了更加精準(zhǔn)的轉(zhuǎn)化率預(yù)估結(jié)果。 對(duì)于日后互聯(lián)網(wǎng)廣告轉(zhuǎn)化率的提高具有重要的現(xiàn)實(shí)和指導(dǎo)意義。