广告点击率(CTR)预测经典模型 GBDT + LR 理解与实践(附数据 + 代码)

CTR预估模型中,GBDT + LR 结合使用能够提高预测效果。GBDT通过多棵树不断减少误差,输出的叶节点编码作为LR的新特征。代码实现中,利用LightGBM构建GBDT,Sklearn实现LR,通过one-hot编码处理叶节点信息,最终训练LR模型。这种模型优于单棵决策树,因为多棵树能表达更多特征组合,并且GBDT的递归特性有助于发现有效特征。
摘要由CSDN通过智能技术生成

CTR 系列文章:

  1. 广告点击率(CTR)预测经典模型 GBDT + LR 理解与实践(附数据 + 代码)
  2. CTR经典模型串讲:FM / FFM / 双线性 FFM 相关推导与理解
  3. CTR深度学习模型之 DeepFM 模型解读
  4. 【CTR模型】TensorFlow2.0 的 DeepFM 实现与实战(附代码+数据)
  5. CTR 模型之 Deep & Cross (DCN) 与 xDeepFM 解读
  6. 【CTR模型】TensorFlow2.0 的 DCN(Deep & Cross Network) 实现与实战(附代码+数据)
  7. 【CTR模型】TensorFlow2.0 的 xDeepFM 实现与实战(附代码+数据)

CTR预估早期使用最多的方案是逻辑回归(LR),LR 性能非常高,但是其效果十分依赖于大量的特征工程。但是手动构造许多有用特征费时费力,因此需要有更自动化的方法来发现有效特征并构造组合特征。

2004 年Facebook 在论文 Practical Lessons from Predicting Clicks on Ads at Facebook 中提出的 GBDT + LR 模型给出了一个可行的解决方案。

GBDT + LR 模型

基本思想

GBDT 基于集成学习中的boosting思想,每次迭代都在减少残差的梯度方向新建立一颗决策树,迭代多少次就会生成多少颗决策树,不断减少误差。假设GBDT由两颗树构成,如下图中的 树1 和 树2 :

在这里插入图片描述

对于输入的样本特征,每一颗树都最终都会到达叶子节点,如图中的红色箭头和绿色箭头所示。将是否落在叶节点上用 0 与 1 表示,则得到的01编码序列就可以作为下一层LR模型的特征来完成CTR的预估任务。

具体来说,对于有三个叶节点的树1而言,按照红色箭头的路径,落在了第2个叶子节点上,则树1输出的编码为[0, 1, 0]。同理,对于树2而言,其输出的编码为 [1, 0]。将所有树的编码拼接起来就得到了 [0, 1, 0, 1, 0],此编码就可以作为该样本的新特征使用。最后将得到的[0, 1, 0, 1, 0] 作为特征输入到LR模型,完成CTR的预估。

代码实现

下面介绍其代码实现,相关的代码与数据可以从此处获得:https://github.com/zxxwin/GBDT_LR。为了突出重点,本文只说明代码中的关键部分。

代码将LightGBM作为GBDT使用,LR模型则使用Sklearn内置的方法。 假设使用32棵树,且每棵树有64个叶节点,则训练这样的模型代码如下:

n_estimators = 32
num_leaves = 64
# 开始训练gbdt,使用100课树,每课树64个叶节点
model = lgb.LGBMRegressor(objective='binary',
                          subsamp
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值