1. 程式人生 > >使用GBDT+LR作點選率預測

使用GBDT+LR作點選率預測

主要內容來源於facebook的論文:Practical Lessons from Predicting Clicks on Ads at Facebook》 1、基本思路 使用GBDT根據使用者特徵轉換生成新的特徵,每棵樹的每個葉子均作為一個特徵,然後將這些特徵代入LR。 舉個例子: (1)訓練GBDT樹:我們現在m個樣本,總共有6000個標籤,將這些樣本用於訓練GBDT,生成10棵樹,每棵樹100個葉子(當然各棵樹的葉子數可能不同),總共1000個葉子。上述的1000個葉子會作為特徵。 (2)使用GBDT樹轉換特徵:還是上面的m個樣本,我們將這m個樣本代入上面生成的10棵樹,這些樣本在每棵樹上都會被分類到其中一個葉子,將這個葉子對應的位置設定為1,其餘為0。這樣就得到我們轉換後的特徵了。 (3)使用轉換特徵訓練LR:使用上面轉換後的特徵作為樣本特徵,用於訓練LR,得到最終的模型。 (4)當有新樣本需要預測時,使用步驟2生成轉換特徵後代入第3步生成的模型,得出最終的預測結果。 附一張facebook的圖: 2、問題 (1)使用GBDT抽取特徵以後,這些特徵就應該固定了,也就是說第一天GBDT就固定了,以後不再訓練,只是用這棵樹來根據樣本生成特徵。 但是我們的特徵是會變化的,如果增加了一個特徵,由於GBDT樹不再發生變化,因此這個特徵不會再被加入模型。唯一的處理方法是,重新訓練GBDT樹,但這樣的話由於轉換生成的特徵發生了變化,因此LR要從最初的資料開始全部訓練。 解決辦法:原有特徵繼續進入GBDT,新來的特徵作為一新特徵開始訓練。然後每隔一段時間重新訓練GBDT,並且全部重新進入LR。