推荐系统
推荐理论
算法模型
简单介绍下GBDT+LR模型?
GBDT+LR利用GBDT进行“自动化”的特征组合,将原始特征向量转换成离散型特征向量,并输入逻辑回归模型,进行最终的CTR预估。
相比深度模型,GBDT+LR模型在架构而言十分的简洁。GBDT部分通过多颗回归树将输入特征重新筛选组合后为新的特征离散,LR部分则通过读取GBDT的输出特征进行模型训练。
GBDT+LR组合模型的步骤是什么?
GBDT+LR 由两部分组成,其中GBDT用来对训练集提取特征作为新的训练输入数据,LR作为新训练输入数据的分类器。
具体来讲,有以下几个步骤:
-
GBDT首先对原始训练数据做训练,得到一个二分类器,当然这里也需要利用网格搜索寻找最佳参数组合。
-
与通常做法不同的是,当GBDT训练好做预测的时候,输出的并不是最终的二分类概率值,而是要把模型中的每棵树计算得到的预测概率值所属的叶子结点位置记为1,这样,就构造出了新的训练数据。
-
新的训练数据构造完成后,下一步就要与原始的训练数据中的label(输出)数据一并输入到Logistic Regression分类器中进行最终分类器的训练。
为什么GBDT+LR模型中建树采用ensemble决策树?
一棵树的表达能力很弱,不足以表达多个有区分性的特征组合,多棵树的表达能力更强一些。GBDT每棵树都在学习前面棵树尚存的不足,迭代多少次就会生成多少颗树。按paper以及Kaggle竞赛中的GBDT+LR融合方式,多棵树正好满足LR每条训练样本可以通过GBDT映射成多个特征的需求。
为什么建树采用GBDT而非RF?
RF也是多棵树,但从效果上有实践证明不如GBDT。且GBDT前面的树,特征分裂主要体现对多数样本有区分度的特征;后面的树,主要体现的是经过前N颗树,残差仍然较大的少数样本。优先选用在整体上有区分度的特征,再选用针对少数样本有区分度的特征,思路更加合理,这应该也是用GBDT的原因。
为什么GBDT可用于特征选择和特征组合?
GBDT是由多颗回归树组成的树林,后一棵树以前面树林的结果与真实结果的残差为拟合目标。每棵树生成的过程是一课标准的回归树生成过程,因此回归树中每个节点的分裂是一个自然的特征选择过程,而多层节点的结构则对特征进行了有效的自动组合,也就非常高效地解决了特征选择和特征组合的问题。
GBDT的叶子节点能够表示多个特征的组合?
GBDT中的CART回归树的深度决定了特征交叉的阶数。如果决策树的深度为4,则通过3次节点分裂,最终的叶节点实际上是进行三阶特征组合后的结果。
所以我们说可以用GBDT自动进行特征(一阶、二阶、三阶…)筛选和组合。
GBDT+LR的缺点是什么?
GBDT容易产生过拟合,以及GBDT的特征转换方式实际上丢失了大量特征的数值信息,因此在模型的选择和调试上,永远都是多种因素综合作用的结果。
GBDT+LR在工程上使用需要注意哪些点?
在实际应用中,需要注意模型训练,通常在海量特征的情况下,按照大厂的做法,GBDT是每个一周跑一次,而LR是每天跑一次,这样可以保证模型的有效性,从本质上说,因为GBDT在海量的特征维度的下跑的比较慢而已,一般小厂可以再资源不够的情况下用。
GBDT+LR是分阶段的吗?
用GBDT构建特征工程,利用LR预估CTR这两步是独立训练的,所以不存在如何将LR的梯度回传到GBDT这类复杂的问题。LR训练时候的特征维度是由GBDT训练出来的多棵回归树的叶子节点总数决定的。
https://zhuanlan.zhihu.com/p/400403326
https://blog.csdn.net/qq_43827595/article/details/12373526