使用GBDT+LR作点击率预测

版权声明:本文为博主原创文章,转载请注明来自http://blog.csdn.net/jediael_lu/ https://blog.csdn.net/jediael_lu/article/details/77772581
主要内容来源于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。


猜你喜欢

转载自blog.csdn.net/jediael_lu/article/details/77772581