本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.
介绍
前面介绍了 丹丹:梯度提升树原理及其公式推导 和 丹丹:GBDT如何解决二分类问题 之后,接下来介绍GBDT+LR,该模型被称为特征工程模型化的开端。它在推荐算法演化关系图中所处的位置如下:
图1:传统推荐模型的演化关系图
由上图关系可以看到,GBDT+LR可以看成逻辑回归的完善和进化。
解决什幺问题
该算法是针对什幺问题提出的呢?
- LR模型无法做出特征筛选、特征交叉等一系列“高级操作”,因此需要人工进行特征工程,非常耗时耗力,且效果未知
- FM、FFM只能做二阶的特征交叉,如果继续提高特征交叉维度,会不可避免产生组合爆炸计算复杂度过高的问题
在了解完GBDT之后,我们的解决方案是GBDT+LR,其大致流程如下
图2:GBDT+LR大致流程
可以看到通过GBDT自动进行特征交叉和特征筛选,将构造好的新特征再一起输到逻辑回归中进行点击率的预估。
如何理解GBDT构造新特征的功能?
GBDT中树的生成过程可以理解成自动进行多维度的特征组合和特征筛选的过程,如图所示:
图3:GBDT生成特征向量的过程
- 回归树中每个节点的分裂是一个自然的 特征选择 过程。由上图所示,GBDT中每棵树节点的分裂都伴随着一个特征,先需要选择一个特征,给特征附上一个条件,比如age>25,这里选择的特征就是age,所以说这幺一个节点的分裂就是一个特征选择的过程。
- 多层节点的结构则对特征进行了 有效的特征自动组合 :如上图,每棵树的根节点到叶子结点的一条路径中,每个节点都代表了一次特征选择的过程,比如第二个分裂点为gender,从年龄到性别的分裂就可以看成年龄跟性别之间的一种特征组合。而且选择的过程是,先把最重要的特征放在上面,其次选择剩下的特征,因此从上到下又是一个特征选择的过程,那些不重要的特征根本没有机会出现。而FM、FMM这一系列的模型,暴力的组合所有特征。
- 不同的样本会有不同的特征选择及特征组合:比如不同的两个样本x,y会落到每棵树的不同叶子结点上面去;落在不一样的地方就意味着有不同的特征组合的情况,这样就更加个性化。例如样本是男生的时候,化妆品这个特征就对最后点击预估可能没什幺用,因此树就不会出现这个特征。
特征转换过程
简单来说就是每棵树中,样本所落的叶子结点的位置设置为1,其余位置设置为零。而每一棵树的深度,都决定了特征交叉的阶数,如图中深度是3,则意味着进行了两次分裂,最终的结果就是两个特征进行组合的结果,为二阶交叉。
模型结构
如下图所示,GBDT+LR的模型结构分为两个部分,上面的是GBDT训练出来的分类器,下面的部分对应的就是LR。上面的GBDT用以做特征构建使用,对于所有的样本来说,经过GBDT构造之后的特征维度是一样的,其实就相当于对所在叶子节点进行one-hot编码,特征维度的长度与所有数的叶子结点个数一致,且一个样本只能落到一棵树的一个叶子节点,所在的叶子节点就被标位1,其余是0.
GBDT+LR模型结构
注意上面的结构只画了特征交叉的部分,而实际训练的时候会把单独的特征也加到逻辑回归当中去。
训练过程
- 以解决二分类为目标,单独训练好GBDT
- GBDT进行特征转换
- 转换后的特征,输入到LR,进行ctr预估
注意,GBDT跟LR这两步是独立训练的,不存在将LR的梯度如何回传到GBDT这类复杂的问题。
优缺点
优点
- 大大推进了特征工程模型化这一重要趋势;这意味着特征工程可以完全交给一个独立的模型来完成,模型的输入可以是原始的特征向量,不必在特征工程上投入过多的人工筛选和模型设计精力
- 在一定程度上解决了高阶特征交叉的问题
缺点
- 容易过拟合;可以在逻辑回归中加L2正则项,或者在GBDT训练的时候注意控制树的深度及树的棵数。
Be First to Comment