CTR预估中GBDT与LR融合方案

http://www.cbdio.com/BigData/2015-08/27/content_3750170.htm

1、背景

CTR预估,广告点击率(Click-Through Rate Prediction)是互联网计算广告中的关键环节,预估准确性直接影响公司广告收入。CTR预估中用的最多的模型是LR(Logistic Regression)[1],LR是广义线性模型,与传统线性模型相比,LR使用了Logit变换将函数值映射到0~1区间 [2],映射后的函数值就是CTR的预估值。LR,逻辑回归模型,这种线性模型很容易并行化,处理上亿条训练样本不是问题,但线性模型学习能力有限,需要大量特征工程预先分析出有效的特征、特征组合,从而去间接增强LR 的非线性学习能力。

LR模型中的特征组合很关键,但又无法直接通过特征笛卡尔积 解决,只能依靠人工经验,耗时耗力同时并不一定会带来效果提升。如何自动发现有效的特征、特征组合,弥补人工经验不足,缩短LR特征实验周期,是亟需解决的问题。Facebook 2014年的文章介绍了通过GBDT (Gradient Boost Decision Tree)解决LR的特征组合问题[3],随后Kaggle竞赛也有实践此思路[4][5],GBDT与LR融合开始引起了业界关注。

GBDT(Gradient Boost Decision Tree)是一种常用的非线性模型[6][7][8][9],它基于集成学习中的boosting思想[10],每次迭代都在减少残差的梯度方向新建立一颗决策树,迭代多少次就会生成多少颗决策树。GBDT的思想使其具有天然优势,可以发现多种有区分性的特征以及特征组合,决策树的路径可以直接作为LR输入特征使用,省去了人工寻找特征、特征组合的步骤。这种通过GBDT生成LR特征的方式(GBDT+LR),业界已有实践(Facebook,Kaggle-2014),且效果不错,是非常值得尝试的思路。下图1为使用GBDT+LR前后的特征实验示意图,融合前人工寻找有区分性特征(raw feature)、特征组合(cross feature),融合后直接通过黑盒子(Tree模型GBDT)进行特征、特种组合的自动发现。

图1

2、GBDT与LR融合现状

GBDT与LR的融合方式,Facebook的paper有个例子如下图2所示,图中Tree1、Tree2为通过GBDT模型学出来的两颗树,x为一条输入样本,遍历两棵树后,x样本分别落到两颗树的叶子节点上,每个叶子节点对应LR一维特征,那么通过遍历树,就得到了该样本对应的所有LR特征。由于树的每条路径,是通过最小化均方差等方法最终分割出来的有区分性路径,根据该路径得到的特征、特征组合都相对有区分性,效果理论上不会亚于人工经验的处理方式。

图2

GBDT模型的特点,非常适合用来挖掘有效的特征、特征组合。业界不仅GBDT+LR融合有实践,GBDT+FM也有实践,2014 Kaggle CTR竞赛冠军就是使用GBDT+FM,可见,使用GBDT融合其它模型是非常值得尝试的思路[11]。

笔者调研了Facebook、Kaggle竞赛关于GBDT建树的细节,发现两个关键点:采用ensemble决策树而非单颗树;建树采用GBDT而非RF(Random Forests)。解读如下:

1)为什么建树采用ensemble决策树?

一棵树的表达能力很弱,不足以表达多个有区分性的特征组合,多棵树的表达能力更强一些。GBDT每棵树都在学习前面棵树尚存的不足,迭代多少次就会生成多少颗树。按paper以及Kaggle竞赛中的GBDT+LR融合方式,多棵树正好满足LR每条训练样本可以通过GBDT映射成多个特征的需求。

2)为什么建树采用GBDT而非RF?

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

然而,Facebook和Kaggle竞赛的思路是否能直接满足现在CTR预估场景呢?

按照Facebook、Kaggle竞赛的思路,不加入广告侧的AD ID特征?但是现CTR预估中,AD ID类特征是很重要的特征,故建树时需要考虑AD ID。直接将AD ID加入到建树的feature中?但是AD ID过多,直接将AD ID作为feature进行建树不可行。下面第三部分将介绍针对现有CTR预估场景GBDT+LR的融合方案。

3、GBDT与LR融合方案

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

综合考虑方案如下,使用GBDT建两类树,非ID建一类树,ID建一类树。

1)非ID类树:不以细粒度的ID建树,此类树作为base,即便曝光少的广告、广告主,仍可以通过此类树得到有区分性的特征、特征组合。

2)ID类树:以细粒度 的ID建一类树,用于发现曝光充分的ID对应有区分性的特征、特征组合。如何根据GBDT建的两类树,对原始特征进行映射?以如下图3为例,当一条样本x进来之后,遍历两类树到叶子节点,得到的特征作为LR的输入。当AD曝光不充分不足以训练树时,其它树恰好作为补充。

图3

通过GBDT 映射得到的特征空间维度如何?GBDT树有多少个叶子节点,通过GBDT得到的特征空间就有多大。如下图4一颗树,一个叶子节点对应一种有区分性的特征、特征组合,对应LR的一维特征。这颗树有8个叶子节点,即对应LR 的8维特征。估算一下,通过GBDT转换得到的特征空间较低,Base树、ID树各N颗,特征空间维度最高为N+N*广告数+N*广告主数+ N*广告类目数。其中广告数、广告主数、广告类目数都是有限的,同时参考Kaggle竞赛中树的数目N最多为30,则估算通过GBDT 映射得到的特征空间维度并不高,且并不是每个ID训练样本都足以训练多颗树,实际上通过GBDT 映射得到的特征空间维度更低。

图4

如何使用GBDT 映射得到的特征?通过GBDT生成的特征,可直接作为LR的特征使用,省去人工处理分析特征的环节,LR的输入特征完全依赖于通过GBDT得到的特征。此思路已尝试,通过实验发现GBDT+LR在曝光充分的广告上确实有效果,但整体效果需要权衡优化各类树的使用。同时,也可考虑将GBDT生成特征与LR原有特征结合起来使用,待尝试。

4、总结与展望

点击率预估模型涉及的训练样本一般是上亿级别,样本量大,模型常采用速度较快的LR。但LR是线性模型,学习能力有限,此时特征工程尤其重要。现有的特征工程实验,主要集中在寻找到有区分度的特征、特征组合,折腾一圈未必会带来效果提升。GBDT算法的特点正好可以用来发掘有区分度的特征、特征组合,减少特征工程中人力成本,且业界现在已有实践,GBDT+LR、GBDT+FM等都是值得尝试的思路。不同场景,GBDT融合LR/FM的思路可能会略有不同,可以多种角度尝试。(作者:腾讯大数据)

参考文献:

[1].Chapelle O, Manavoglu E, Rosales R. Simple and scalable response prediction for display advertising[J]. ACM[2].http://blog.csdn.net/lilyth_lilyth/article/details/10032993

[3].He X, Pan J, Jin O, et al. Practical lessons from predicting clicks on ads at facebook[C]. Proceedings of 20th ACM SIGKDD Conference on Knowledge Discovery and Data Mining. ACM, 2014: 1-9.

[4].http://www.csie.ntu.edu.tw/~r01922136/Kaggle-2014-criteo.pdf

[5].https://github.com/guestwalk/Kaggle-2014-criteo

[6].http://www.cnblogs.com/leftnoteasy/archive/2011/03/07/random-forest-and-gbdt.html

[7].https://github.com/dmlc/xgboost

[8].http://cos.name/2015/03/xgboost/?replytocom=6610

[9].http://vdisk.weibo.com/s/vlQWp3erG2yo/1431658679

[10].Ensemble Methods: Foundations and Algorithms (Chapman & Hall/Crc Machine Learnig & Pattern Recognition): Zhi-Hua Zhou: 9781439830031

[11].http://blog.csdn.net/hero_fantao/article/details/42747281

[12]. Richardson M, Dominowska E, Ragno R. Predicting clicks: estimating the click-through rate for new ads[C]. Proceedings of the 16th international conference on World Wide Web. ACM, 2007: 521-530.

时间: 2024-10-14 00:25:29

CTR预估中GBDT与LR融合方案的相关文章

推荐系统遇上深度学习(十)--GBDT+LR融合方案实战

推荐系统遇上深度学习(十)--GBDT+LR融合方案实战 0.8012018.05.19 16:17:18字数 2068阅读 22568 推荐系统遇上深度学习系列:推荐系统遇上深度学习(一)--FM模型理论和实践:https://www.jianshu.com/p/152ae633fb00推荐系统遇上深度学习(二)--FFM模型理论和实践:https://www.jianshu.com/p/781cde3d5f3d推荐系统遇上深度学习(三)--DeepFM模型理论和实践:https://www.

深度学习在CTR预估中的应用

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由鹅厂优文发表于云+社区专栏 一.前言 二.深度学习模型 1. Factorization-machine(FM) FM = LR+ embedding 2. Deep Neural Network(DNN) 3. Factorisation-machine supported Neural Networks (FNN) 4. Product-based Neural Network(PNN) 5. Wide & Deep Lear

GBDT与LR融合提升广告点击率预估模型

1GBDT和LR融合 LR模型是线性的,处理能力有限,所以要想处理大规模问题,需要大量人力进行特征工程,组合相似的特征,例如user和Ad维度的特征进行组合. GDBT天然适合做特征提取,因为GBDT由回归树组成所以, 每棵回归树就是天然的有区分性的特征及组合特征,然后给LR模型训练,提高点击率预估模型(很多公司技术发展应用过,本人认为dnn才是趋势). 例如,输入样本x,GBDT模型得到两颗树tree1和tree2,遍历两颗树,每个叶子节点都是LR模型的一个维度特征,在求和每个叶子*权重及时L

CTR预估---传统模型

传统CTR预估模型包括:LR.FM.GBDT等,其优点是:可解释性强.训练和部署方便.便于在线学习. (一)CTR预估 1.在cost-per-click:CPC广告中广告主按点击付费.为了最大化平台收入和用户体验,广告平台必须预测广告的CTR,称作predict CTR:pCTR.对每个用户的每次搜索query,有多个满足条件的广告同时参与竞争.只有pCTR x bid price最大的广告才能竞争获胜,从而最大化eCPM:eCPM=pCTR x bid 基于最大似然准则可以通过广告的历史表现

(读论文)推荐系统之ctr预估-Wide&Deep模型解析

在读了FM和FNN/PNN的论文后,来学习一下16年的一篇Google的论文,文章将传统的LR和DNN组合构成一个wide&deep模型(并行结构),既保留了LR的拟合能力,又具有DNN的泛化能力,并且不需要单独训练模型,可以方便模型的迭代,一起来看下吧. 更好的阅读体验请点击这里. 原文:Wide & Deep Learning for Recommender Systems 地址: [https://arxiv.org/pdf/1606.07792.pdf](https://arxiv

CTR预估评价指标介绍

1 离线指标 1.1 LogLoss 1.1.1 KL散度 logloss使用KL散度来计算.设样本的真实分布为P,预测分布为Q,则KL散度定义如下: 这里可以通俗地把KL散度理解为相同事件空间里两个概率分布的相异情况.KL散度越小,预测分布越接近真实分布. KL散度的物理意义是:使用分布Q来对真实分布为P的事件进行编码,导致平均编码长度增加了多少.具体解释可见百度和知乎. 1.1.2 CTR中KL散度的计算 CTR预估中,测试集中每个样本是一条广告,它有一个真实的点击率tctr和一个预测的点击

闲聊DNN CTR预估模型

原文:http://www.52cs.org/?p=1046 闲聊DNN CTR预估模型 Written by b manongb 作者:Kintocai, 北京大学硕士, 现就职于腾讯. 伦敦大学张伟楠博士在携程深度学习Meetup[1]上分享了Talk<Deep Learning over Multi-field Categorical Data – A Case Study on User Response Prediction in Display Ads>.他在2016 ECIR发表

为什么CTR预估使用AUC来评估模型?

ctr预估简单的解释就是预测用户的点击item的概率.为什么一个回归的问题需要使用分类的方法来评估,这真是一个好问题,尝试从下面几个关键问题去回答. 1.ctr预估是特殊的回归问题 ctr预估的目标函数为 f(x)=P(+1|x) 特殊之处在于目标函数的值域为[0,1],而且由于是条件概率,具有如下特性 如果将ctr预估按照一般的回归问题处理(如使用Linear Regression),面临的问题是一般的linear regression的值域范围是实数域,对于整个实数域的敏感程度是相同的,所以

log loss与ctr预估

ctr预估是工业界做推荐.广告等的基本问题,下面以熟悉的推荐场景为例,目标是提高abtest的线上指标,时长.互动和留存,反应到ctr模型的评估指标,可以是auc,logloss,ngcd等,auc反映了模型区分正负例的能力,auc提高不一定对应到线上指标提示,可能只是对item的预估分更准,对一个user来说排序能力并没有提高,这里很有考究,可以看看其他博客. 通常判断一个模型性能,除了auc.rigloss还要看 calibration,训练数据集的正负里比例和预估分均值是否一致,接近1才认