美文网首页算法小白菜
推荐系统-重排序-CTR-GBDT+LR

推荐系统-重排序-CTR-GBDT+LR

作者: 莱昂纳多91 | 来源:发表于2019-05-31 00:31 被阅读39次

概述

GBDT的加入,是为了弥补LR难以实现特征组合的缺点。

LR

LR作为一个线性模型,以概率形式输出结果,在工业上得到了十分广泛的应用。
其具有简单快速高效,结果可解释,可以分布式计算。搭配L1,L2正则,可以有很好地鲁棒性以及挑选特征的能力。
但由于其简单,也伴随着拟合能力不足,无法做特征组合的缺点。
f(x)=\frac{1}{1+exp(-wx)}
L=-\sum_{i=1}^{n}(y_ilogf(x_i)+(1-y_i)log(1-f(x_i))
通过梯度下降法可以优化参数

可以称之上是 CTR 预估模型的开山鼻祖,也是工业界使用最为广泛的 CTR 预估模型

但是在CTR领域,单纯的LR虽然可以快速处理海量高维离散特征,但是由于线性模型的局限性,其在特征组合方面仍有不足,所以后续才发展出了FM来引入特征交叉。在此之前,业界也有使用GBDT来作为特征组合的工具,其结果输出给LR。

GBDT+LR

首先,GBDT是一堆树的组合,假设有k棵树(T_1,T_2...T_k)
对于第i棵树T_i,其存在N_i个叶子节点。而从根节点到叶子节点,可以认为是一条路径,这条路径是一些特征的组合,例如从根节点到某一个叶子节点的路径可能是“x_1<a,x_2>b,x_3<c”这就是一组特征组合。到达这个叶子节点的样本都拥有这样的组合特征,而这个组合特征使得这个样本得到了GBDT的预测结果。
所以对于GBDT子树T_i,会返回一个N_i维的one-hot向量
对于整个GBDT,会返回一个\sum_{i=1}^{k}N_i维的向量X_{gbdt},这个向量由0-1组成。

然后,这个X_{gbdt},会作为输入,送进LR模型,最终输出结果

GBDT+LR.jpg
模型大致如图所示。上图中由两棵子树,分别有3和2个叶子节点。对于一个样本x,最终可以落入第一棵树的某一个叶子和第二棵树的某一个叶子,得到两个独热编码的结果例如
[0,0,1],[1,0]组合得[0,0,1,1,0]输入到LR模型最后输出结果。

由于LR善于处理离散特征,GBDT善于处理连续特征。所以也可以交由GBDT处理连续特征,输出结果拼接上离散特征一起输入LR。

讨论

至于GBDT为何不善于处理高维离散特征?

https://cloud.tencent.com/developer/article/1005416
缺点:对于海量的 id 类特征,GBDT 由于树的深度和棵树限制(防止过拟合),不能有效的存储;另外海量特征在也会存在性能瓶颈,经笔者测试,当 GBDT 的 one hot 特征大于 10 万维时,就必须做分布式的训练才能保证不爆内存。所以 GBDT 通常配合少量的反馈 CTR 特征来表达,这样虽然具有一定的范化能力,但是同时会有信息损失,对于头部资源不能有效的表达。

https://www.zhihu.com/question/35821566
后来思考后发现原因是因为现在的模型普遍都会带着正则项,而 lr 等线性模型的正则项是对权重的惩罚,也就是 W1一旦过大,惩罚就会很大,进一步压缩 W1的值,使他不至于过大,而树模型则不一样,树模型的惩罚项通常为叶子节点数和深度等,而我们都知道,对于上面这种 case,树只需要一个节点就可以完美分割9990和10个样本,惩罚项极其之小.
这也就是为什么在高维稀疏特征的时候,线性模型会比非线性模型好的原因了:带正则化的线性模型比较不容易对稀疏特征过拟合。

GBDT当树深度>2时,其实组合的是多元特征了,而且由于子树规模的限制,导致其特征组合的能力并不是很强,所以才有了后续FM,FFM的发展

参考

https://cloud.tencent.com/developer/article/1005416
https://fuhailin.github.io/GBDT-LR/

相关文章

  • 推荐系统-重排序-CTR-GBDT+LR

    概述 GBDT的加入,是为了弥补LR难以实现特征组合的缺点。 LR LR作为一个线性模型,以概率形式输出结果,在工...

  • 推荐系统排序算法之一:LR

    推荐系统整体流程: 在推荐系统中,排序其实和召回一样重要,推荐的结果用户是否满意跟排序算法有不可磨灭的关系。 其中...

  • 推荐系统总结

    1.推荐系统的阶段: 召回Match(CF,找到候选者);排序;重排序(多样性/新颖性) 2.推荐系统的评价指标:...

  • UNION与UNION ALL的区别

    UNION去重且排序,UNION ALL不去重不排序。 UNION表示“并”,当用的时候,系统会自动将重复的元组去...

  • 马蜂窝推荐排序算法模型的迭代实现

    马蜂窝推荐系统主要由召回(Match)、排序(Rank)、重排序(Rerank)几个部分组成,整体架构图如下: 在...

  • 推荐系统排序之FFM

    回顾一下FM 在FFM(Filed-aware Factorization Machines)中每一维特征(fea...

  • 推荐系统 - 排序优化(CTR)

    在实际业务中搜索和推荐都背负着转化率的目标:点击转化、下单转化、支付转化等,搜索、推荐核心本质是想通的,核心目标都...

  • 神经网络实现推荐系统

    目录:1.1 推荐系统以及神经网络在推荐上的使用简介1.2 推荐召回文献1.3 推荐排序文献1.4 总结 1. 推...

  • 机器学习之排序学习

    Learn to Rank 排序学习主要用于搜索引擎,推荐系统等领域。 对于传统的排序算法,一般只能根据少量特征,...

  • Graph Embeding(图嵌入)在短视频推荐系统的落地实战

    背景:众所周知,在个性化推荐系统,后端算法核心逻辑,分为召回,排序以及strategy调整,用户访问系统时,受限于...

网友评论

    本文标题:推荐系统-重排序-CTR-GBDT+LR

    本文链接:https://www.haomeiwen.com/subject/kecitctx.html