GBDT梯度提升决策树+LR 逻辑回归 推荐模型
(1)算法来源及背景:
【1】来源:
算法论文:Practical Lessons from Predicting Clicks on Ads at Facebook,2014 (Facebook经典CTR预估论文)
论文地址:http://quinonero.net/Publications/predicting-clicks-facebook.pdf
Facebook针对CTR预估场景,提出了GBDT+LR的算法框架,算法本质是利用GBDT梯度提升决策树的树模型的分类结果代替人工构造新特征。
【2】背景:
- CTR场景样本数量大,点击率预估模型中的训练样本可达上亿级别
- 学习能力有限,以往的CTR预估采用LR模型,LR是线性模型,虽然速度较快,但是学习能力有限
- 人工成本高,为了更好的进行特征提取,提升LR的学习能力,需要采用人工特征工程,即通过人工方式找到有区分度的特征、特征组合。对人的要求高,时间成本高
- 希望算法能够自动发现有效的特征及特征组合,弥补人工经验不足,缩短LR实验周期
(2)算法原理:
【1】概述
- 具有stacking思想的二分类器模型用来解决二分类问题
- 通过GBDT将特征进行组合,然后传入给线性分类器
- LR对GBDT产生的输入数据进行分类(使用L1正则化防止过拟合)
【2】GBDT自动特征构造原理
当GBDT训练好做预测的时候,输出的并不是最终的二分类概率值,而是要把模型中的每棵树计算得到的预测概率最大值所属的叶子结点位置记为1 => 构造新的训练数据
举例:
- 下图有2棵决策树,一共有5个叶子节点。
- 如果一个实例,选择了第一棵决策树的第2个叶子节点。
- 同时,选择第2棵子树的第1个叶子节点。
- 那么前3个叶子节点中,第2位设置为1,后2个叶子节点中,第1位设置为1。
- concatenate所有特征向量,得到[0,1,0,1,0] 。
- GBDT是一堆树的组合,假设有k棵树(T1,T2…Tk),每棵树的节点数分别为Ni , GBDT会输出一个 ∑0��� 维的向量。
k),每棵树的节点数分别为Ni , GBDT会输出一个 ∑0��� 维的向量。