1. 程式人生 > >CTR預估中GBDT與LR融合方案

CTR預估中GBDT與LR融合方案

1、 背景

      CTR預估(Click-Through Rate Prediction)是網際網路計算廣告中的關鍵環節,預估準確性直接影響公司廣告收入。CTR預估中用的最多的模型是LR(Logistic Regression)[1],LR是廣義線性模型,與傳統線性模型相比,LR使用了Logit變換將函式值對映到0~1區間[2],對映後的函式值就是CTR的預估值。LR這種線性模型很容易並行化,處理上億條訓練樣本不是問題,但線性模型學習能力有限,需要大量特徵工程預先分析出有效的特徵、特徵組合,從而去間接增強LR的非線性學習能力。

      LR模型中的特徵組合很關鍵, 但又無法直接通過特徵笛卡爾積解決,只能依靠人工經驗,耗時耗力同時並不一定會帶來效果提升。如何自動發現有效的特徵、特徵組合,彌補人工經驗不足,縮短LR特徵實驗週期,是亟需解決的問題。Facebook 2014年的文章介紹了通過GBDT(Gradient Boost Decision Tree)解決LR的特徵組合問題[3],隨後Kaggle競賽也有實踐此思路[4][5],GBDT與LR融合開始引起了業界關注。

      GBDT(Gradient Boost Decision Tree)是一種常用的非線性模型[6][7][8][9],它基於整合學習中的boosting思想[10],每次迭代都在減少殘差的梯度方向新建立一顆決策樹,迭代多少次就會生成多少顆決策樹。GBDT的思想使其具有天然優勢可以發現多種有區分性的特徵以及特徵組合,決策樹的路徑可以直接作為LR輸入特徵使用,省去了人工尋找特徵、特徵組合的步驟。這種通過GBDT生成LR特徵的方式(GBDT+LR),業界已有實踐(Facebook,Kaggle-2014),且效果不錯,是非常值得嘗試的思路。下圖1為使用GBDT+LR前後的特徵實驗示意圖,融合前人工尋找有區分性特徵(raw feature)、特徵組合(cross feature),融合後直接通過黑盒子(Tree模型GBDT)進行特徵、特種組合的自動發現。

圖1

2、 GBDT與LR融合現狀

      GBDT與LR的融合方式,Facebook的paper有個例子如下圖2所示,圖中Tree1、Tree2為通過GBDT模型學出來的兩顆樹,x為一條輸入樣本,遍歷兩棵樹後,x樣本分別落到兩顆樹的葉子節點上,每個葉子節點對應LR一維特徵,那麼通過遍歷樹,就得到了該樣本對應的所有LR特徵。由於樹的每條路徑,是通過最小化均方差等方法最終分割出來的有區分性路徑,根據該路徑得到的特徵、特徵組合都相對有區分性,效果理論上不會亞於人工經驗的處理方式。

圖2

      GBDT模型的特點,非常適合用來挖掘有效的特徵、特徵組合。業界不僅GBDT+LR融合有實踐,GBDT+FM也有實踐,2014 Kaggle CTR競賽冠軍就是使用GBDT+FM,可見,使用GBDT融合其它模型是非常值得嘗試的思路[11]。

      筆者調研了Facebook、Kaggle競賽關於GBDT建樹的細節,發現兩個關鍵點:採用ensemble決策樹而非單顆樹;建樹採用GBDT而非RF(Random Forests)。解讀如下:

      1) 為什麼建樹採用ensemble決策樹?

      一棵樹的表達能力很弱,不足以表達多個有區分性的特徵組合,多棵樹的表達能力更強一些。GBDT每棵樹都在學習前面棵樹尚存的不足,迭代多少次就會生成多少顆樹。按paper以及Kaggle競賽中的GBDT+LR融合方式,多棵樹正好滿足LR每條訓練樣本可以通過GBDT對映成多個特徵的需求。

      2) 為什麼建樹採用GBDT而非RF?

      RF也是多棵樹,但從效果上有實踐證明不如GBDT。且GBDT前面的樹,特徵分裂主要體現對多數樣本有區分度的特徵;後面的樹,主要體現的是經過前N顆樹,殘差仍然較大的少數樣本。優先選用在整體上有區分度的特徵,再選用針對少數樣本有區分度的特徵,思路更加合理,這應該也是用GBDT的原因。

      然而,Facebook和Kaggle競賽的思路是否能直接滿足現在CTR預估場景呢?

      按照Facebook、Kaggle競賽的思路,不加入廣告側的ADID特徵?但是現CTR預估中,AD ID類特徵是很重要的特徵,故建樹時需要考慮AD ID。直接將AD ID加入到建樹的feature中?但是AD ID過多,直接將AD ID作為feature進行建樹不可行。下面第三部分將介紹針對現有CTR預估場景GBDT+LR的融合方案。

3、 GBDT與LR融合方案

      AD ID類特徵在CTR預估中是非常重要的特徵,直接將AD ID作為feature進行建樹不可行,顧考慮為每個AD ID建GBDT樹。但網際網路時代長尾資料現象非常顯著,廣告也存在長尾現象,為了提升廣告整體投放效果,不得不考慮長尾廣告[12]。在GBDT建樹方案中,對於曝光充分訓練樣本充足的廣告,可以單獨建樹,發掘對單個廣告有區分度的特徵,但對於曝光不充分樣本不充足的長尾廣告,無法單獨建樹,需要一種方案來解決長尾廣告的問題。

      綜合考慮方案如下,使用GBDT建兩類樹,非ID建一類樹,ID建一類樹。1)非ID類樹:不以細粒度的ID建樹,此類樹作為base,即便曝光少的廣告、廣告主,仍可以通過此類樹得到有區分性的特徵、特徵組合。2)ID類樹:以細粒度的ID建一類樹,用於發現曝光充分的ID對應有區分性的特徵、特徵組合。

      如何根據GBDT建的兩類樹,對原始特徵進行對映?以如下圖3為例,當一條樣本x進來之後,遍歷兩類樹到葉子節點,得到的特徵作為LR的輸入。當AD曝光不充分不足以訓練樹時,其它樹恰好作為補充。

圖3

      通過GBDT 對映得到的特徵空間維度如何?GBDT樹有多少個葉子節點,通過GBDT得到的特徵空間就有多大。如下圖4一顆樹,一個葉子節點對應一種有區分性的特徵、特徵組合,對應LR的一維特徵。這顆樹有8個葉子節點,即對應LR 的8維特徵。估算一下,通過GBDT轉換得到的特徵空間較低,Base樹、ID樹各N顆,特徵空間維度最高為(N+N*廣告數+N*廣告主數+ N*廣告類目數)*葉子節點個數。其中廣告數、廣告主數、廣告類目數都是有限的,同時參考Kaggle競賽中樹的數目N最多為30,葉子節點個數小於10,則估算通過GBDT 對映得到的特徵空間維度並不高,且並不是每個ID訓練樣本都足以訓練多顆樹,實際上通過GBDT 對映得到的特徵空間維度更低。

圖4

      如何使用GBDT 對映得到的特徵?

      通過GBDT生成的特徵,可直接作為LR的特徵使用,省去人工處理分析特徵的環節,LR的輸入特徵完全依賴於通過GBDT得到的特徵。此思路已嘗試,通過實驗發現GBDT+LR在曝光充分的廣告上確實有效果,但整體效果需要權衡優化各類樹的使用。同時,也可考慮將GBDT生成特徵與LR原有特徵結合起來使用,待嘗試。

4、 總結與展望

      點選率預估模型涉及的訓練樣本一般是上億級別,樣本量大,模型常採用速度較快的LR。但LR是線性模型,學習能力有限,此時特徵工程尤其重要。現有的特徵工程實驗,主要集中在尋找到有區分度的特徵、特徵組合,折騰一圈未必會帶來效果提升。GBDT演算法的特點正好可以用來發掘有區分度的特徵、特徵組合,減少特徵工程中人力成本,且業界現在已有實踐,GBDT+LR、GBDT+FM等都是值得嘗試的思路。不同場景,GBDT融合LR/FM的思路可能會略有不同,可以多種角度嘗試。

5、 參考文獻

[1].Chapelle O, Manavoglu E, Rosales R. Simple and scalable responseprediction for display advertising[J]. ACM

[3]. He X, Pan J, Jin O, et al. Practical lessons from predicting clicks on adsat facebook[C]. Proceedings of 20th ACM SIGKDD Conference on KnowledgeDiscovery and Data Mining. ACM, 2014: 1-9.

[6]. http://www.cnblogs.com/leftnoteasy/archive/2011/03/07/random-forest-and-gbdt.html

[10]. Ensemble Methods: Foundations and Algorithms (Chapman& Hall/Crc Machine Learnig & Pattern Recognition): Zhi-Hua Zhou:9781439830031

 [11]. http://blog.csdn.NET/hero_fantao/article/details/42747281

[12]. Richardson M, Dominowska E, Ragno R. Predicting clicks: estimatingthe click-through rate for new ads[C]. Proceedings of the 16th internationalconference on World Wide Web. ACM, 2007: 521-530.