暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【推荐系统】GBDT+LR融合模型

李彬的技术笔记 2021-05-17
785

一般说要训练推荐打分或者分类模型,99%的人会想到经典的逻辑回归(以下称LR),的确,LR的优点很明显:

  1. 搭建简单:无论你是使用Python或者Scala,简单易用的接口让你分分钟能搭好一个分类模型
  2. 结果容易解释:输出的结果介于[0,1]之间,用来打分或者分类妥妥的
  3. 易于大规模并行:其分布式优化算法SGD、LBFGS已经很成熟

但是它的缺点也是明显的,也就是往往特征工程的好坏决定了LR表现的上限,工程师在选取特征、组合特征需要耗费大量的人力不说,效果好不好还不一定。为了解决这个问题,2014Facebook发表的一篇论文提出了一种结合了GBDT和LR的融合模型,其思路简单来说就是利用GBDT来代替人工组合特征的过程,GBDT组合好的特征再输入到LR中完成分类或者预测任务

如下图,样本点经过GBDT时,遍历三棵树之后样本点会分别落入三棵树的叶子节点上,图中样本x分别落入了Tree1中的第一个叶节点、Tree2的第三个叶节点、Tree3的第一个叶节点,我们规定样本点落入了哪个叶子节点那个叶子节点就取1,否则取0,因此我们得到的新的特征向量为[1,0,0,0,0,1,0,1,0]
,这个特征向量可以作为LR模型的输入。新的特征向量的长度等于GBDT模型里所有树包含的叶子节点数之和。

因此,我们可以将GBDT+LR的核心思想归纳为:首先用已有特征训练好一个GBDT模型,然后用GBDT模型去预测数据,从GBDT模型的树中去获取叶子节点,从叶子节点构造新的特征,最后把新的特征加入原有的特征一起放入LR之中。关于GBDT+LR的代码实现请看我的下一篇文章,实现的思路是将连续型的特征训练得到一个gbdt的预测模型,然后用该模型去预测连续型特征所得到的离散特征,然后再将原始的离散特征和预测得到的离散特征合并,转换成DataFrame给LR训练和预测。

文章转载自李彬的技术笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论