美文网首页
【排序】GBDT+LR

【排序】GBDT+LR

作者: 葡萄肉多 | 来源:发表于2019-08-05 08:04 被阅读0次

问题

1.LR,FM都比较适用高维稀疏特征,GBDT不适用。

解释来源于知乎:

2. 为什么采用GBDT而非RF

RF也是多棵树,但从效果上有实践证明不如GBDT。且GBDT前面的树,特征分裂主要体现对多数样本有区分度的特征;后面的树,主要体现的是经过前N颗树,残差仍然较大的少数样本。优先选用在整体上有区分度的特征,再选用针对少数样本有区分度的特征,思路更加合理,这应该也是用GBDT的原因。

RF+LR 可以并行训练,但是RF区分度不高。

3. 如何处理大量id类特征

【如果类别维度较高的话会导致该特征比较稀疏 难以学出有效的分割点】

(1)广告类对user id 的处理:利用出现频率和转化率来替代;

(2)wide&deep思想,id类特征放在lr阶段 ;这样做的好处既利用了GBDT对连续特征的自动离散化和特征组合,同时LR又有效利用了id类离散特征,防止信息损失。

 AD ID类特征在CTR预估中是非常重要的特征,直接将AD ID作为feature进行建树不可行,顾考虑为每个AD ID建GBDT树。但互联网时代长尾数据现象非常显著,广告也存在长尾现象,为了提升广告整体投放效果,不得不考虑长尾广告[12]。在GBDT建树方案中,对于曝光充分训练样本充足的广告,可以单独建树,发掘对单个广告有区分度的特征,但对于曝光不充分样本不充足的长尾广告,无法单独建树,需要一种方案来解决长尾广告的问题。

(3)id类特征单独建树训练;对于id类树可以保留头部信息不受损失,对于非id类树,长尾资源可以利用其泛化信息。但这样做有一个缺点,介于头部资源和长尾资源中间的一部分资源,其有效信息既包含在泛化信息中(反馈CTR)中,又包含在id类特征中,而GBDT的非id类树只存下头部的资源信息,所以还是会有部分信息损失。

结论

1. 数据支撑去做决策,收货和实验数量成正比;

2.数据新鲜度:模型天级训练比周级训练在NE下降1%;

3.GBDT和LR模型采用不同的更新频率,解决训练耗时不同。gbdt的embedding肯定每次都不一样,所以gbdt重新训练的话,lr必须一同重新训练。

4.构建特征和lr训练使用同一训练集。

论文阅读

1. 实验设置

离线训练数据:2013年4季度任意一周的数据。尽量跟线上的条件保持一致,把这些数据分为训练集和测试集,并且模拟成线上数据流。本文的所有实验都是基于这个数据。

评估函数:

(1)NE,Normalized entropy

NE = \frac{-\frac{1}{N}\sum\nolimits_{i = 1}^n(\frac{1+y_{i} }{2}log(p_{i}  )+\frac{1-y_{i} }{2}log(1-p_{i}  ))  }{-(p*log(p)+(1-p)*log(1-p))}

分子是逻辑回归的损失函数,分母是平均的损失,平均的损失实际上等于整个数据集的entropy,所以称为 normalized entropy。消除了不平衡数据集的影响。p代表平均经验CTR。

(2)Calibration = 预测点击数/实际点击数

AUC也是一个非常不错的评价指标,但是它有个问题。比如当我们的模型预测的CTR概率都偏高了2倍,我们可以通过Calibration校准,使用一个全局的0.5的系数来修正。修正之后NE也会提高,而AUC却保持不变。

在实际工作中,我们希望得到的是尽可能准确的预测每个广告被点击的概率,而不是仅仅得到相对的概率排序。所以AUC不如上面的NE、Calibration合适。

2. 预测模型架构

图中共有两棵树,x为一条输入样本,遍历两棵树后,x样本分别落到两颗树的叶子节点上,每个叶子节点对应LR一维特征,那么通过遍历树,就得到了该样本对应的所有LR特征。构造的新特征向量是取值0/1的。举例来说:上图有两棵树,左树有三个叶子节点,右树有两个叶子节点,最终的特征即为五维的向量。对于输入x,假设他落在左树第一个节点,编码[1,0,0],落在右树第二个节点则编码[0,1],所以整体的编码为[1,0,0,0,1],这类编码作为特征,输入到LR中进行分类。

可以把GBDT看作特征的转换器,把现实中的向量转换成紧凑的二值向量。从树根到叶子的路径,可以理解为特征的规则。把转换后的特征向量输入到线性分类器中,本质上是学习这些规则集合的权重。

GBDT用批处理的方式训练。

3. online learning

文章中提到的 Online Learning 包括三个部分: - Joiner 将每次广告展示结果(特征)是否用户点击(标签) join 在一起形成一个完成的训练数据; - Trainer 定时根据一个 small batch 的数据训练一个模型; - Ranker 利用上一个模块得到模型预测用户点击。

(1) waiting window 的设定:waiting window指的是在impression发生后,我们要等待多久才能够判定一个impression是否有click。如果waiting window过大,数据实时性受影响,如果waiting window过小,会有一部分click来不及join到impression,导致样本CTR与真实值不符。这是一个工程调优的问题,需要有针对性的找到跟实际业务匹配的合适的waiting window。除此之外,无论怎样我们都会漏掉一部分click,这就要求我们阶段性的全量retrain我们的模型,避免online learning误差的积累。

(2)分布式的架构与全局统一的action id:为了实现分布式架构下impression记录和click记录的join,facebook除了为每个action建立全局统一的request id外,还建立了HashQueue缓存impressions。hashQueue缓存的impression,如果在窗口过期时还没有匹配到click就会当作negative sample,这里说的窗口与上面提到的waiting window相匹配。facebook使用scribe实现了这一过程,更多公司使用Kafka完成大数据缓存和流处理。

(3)数据流保护机制:facebook专门提到了online data joiner的保护机制,因为一旦data joiner失效,比如click stream无法join impression stream,那么所有的样本都会成为负样本,由于模型实时进行online learning和serving,模型准确度将立刻受到错误样本数据的影响,进而直接影响广告投放和公司利润,后果是非常严重的。为此,facebook专门设立了异常检测机制,一旦发现实时样本数据流的分布发生变化,将立即切断online learning的过程,防止预测模型受到影响。

4.降采样和模型校正

对于巨型互联网公司来说,为了控制数据规模,降低训练开销,降采样几乎是通用的手段,facebook实践了两种降采样的方法,uniform subsampling和 negative down sampling。

(1)uniform subsampling是对所有样本进行无差别的随机抽样,为选取最优的采样频率,facebook试验了0.001,0.01, 0.1, 0.5 和1五个采样频率,loss的比较如下:

可以看到当采样率是10%时,相比全量数据训练的模型,仅损失了不到1%的效果。

 (2)negative down sampling 保留全量正样本,对负样本进行降采样。除了提高训练效率外,负采样还直接解决了正负样本不均衡的问题,facebook经验性的选择了从0.0001到0.1的一组负采样频率,试验效果如下:

负采样带来的问题是CTR预估值的漂移,比如真实CTR是0.1%,进行0.01的负采样之后,CTR将会攀升到10%左右。而为了进行准确的竞价以及ROI预估等,CTR预估模型是要提供准确的有物理意义的CTR值的,因此在进行负采样后需要进行CTR的校正,使CTR模型的预估值的期望回到0.1%。校正的公式如下:

其中q是校正后的CTR,p是模型的预估CTR,w是负采样频率。


参考

1.https://zhuanlan.zhihu.com/p/57987311

2.https://zhuanlan.zhihu.com/p/62372860

相关文章

  • 【排序】GBDT+LR

    问题 1.LR,FM都比较适用高维稀疏特征,GBDT不适用。 解释来源于知乎: 2. 为什么采用GBDT而非RF ...

  • GBDT+LR

    1.本质上GBDT+LR是一种具有stacking思想的二分类器模型,所以可以用来解决二分类问题。这个方法出自于F...

  • GBDT+LR模型

    1. GBDT+LR简介 协同过滤和矩阵分解存在的劣势就是仅利用了用户与物品相互行为信息进行推荐, 忽视了用户自身...

  • 推荐系统-GBDT+LR 融合

    背景 在CTR预估的早期,使用最多的方法时逻辑回归,逻辑回归通过Sigmoid函数,将函数值映射到0-1区间,映射...

  • Web-Scale Bayesian Click-Through

    自己说 这个是在facebook中的gbdt+lr这篇文章中提到的bopr模型,据说是微软在做内部比赛的时候提出的...

  • 推荐系统-重排序-CTR-DeepFM等DNN模型

    概述 关键词:特征组合LR:缺乏特征组合能力,需人工做特征工程GBDT+LR:特种组合能力不强,对高维的稀疏特征应...

  • CTR预估中GBDT与LR融合方案

    GBDT+LR 使用最广泛的场景是 CTR 点击率预估,即预测当给用户推送的广告会不会被用户点击。 训练样本一般是...

  • GBDT+LR CTR预估-Kaggle实例[有数据集]

    最近读了一篇GBDT+LR实现推荐系统的文章,准备实践一下,但是所有讲这种方式的文章都没有放数据集,所以我从头开始...

  • 【恋上数据结构与算法二】(一)排序(Sorting)

    排序方法 冒泡排序 选择排序 堆排序 插入排序 归并排序 快速排序 希尔排序 计数排序 基数排序 桶排序 初识排序...

  • 排序-冒泡排序

    排序系列传递门 排序—选择排序排序—快速排序排序—插入排序排序-希尔排序(待完善)排序—归并排序(待完善)排序—基...

网友评论

      本文标题:【排序】GBDT+LR

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