广告点击率预测,让广告更懂你
发布时间:2019-09-15 浏览次数:222
综合运用人工特征、GDBT特征、LogisticRegression、XGBoost和深度交叉神经网络预测广告点击率并比较预测效果。
作者:2018级应用统计专硕林嘉文裴曼如宋戈
编译:2019级数据科学班专硕曾澄
不知大家是否有这样的体验,互联网似乎比我们更懂自己,总能给我们推送自己恰好需要、恰好感兴趣的广告。刚刚还在说需要买什么,网页就推送了购物的广告;不久前还在讨论什么衣服好看,与穿搭相关的链接就出现了;还没吐槽完上一把游戏,关于游戏的词条又出现了。互联网是如何猜透你的心思?又如何利用互联网找到广告的投放人群?
本期“数据诊所”为大家带来的是2018级应用统计专硕林嘉文、裴曼如、宋戈撰写的——《广告点击率(CTR)预测》。
一、背景介绍
CTR(Click-Through-Rate):点击通过率,是互联网广告常用的术语,指网络广告的点击到达率,是衡量互联网广告效果的一项重要指标。提升CTR预估的准确率是提升精准营销效果的核心技术点。
CTR 预测的三大特征:
l 具备大量的离散特征,连续特征较少
l 存在大量高维度的稀疏特征,用户数据维数较大,而实际点击广告的用户较少,广告任务相对可推用户数量少
l 有效特征识别困难,存在误点击噪音数据
任务描述:基于用户对广告任务的历史行为和广告任务属性,选择合适的算法预测用户在特定上下文下对某个广告任务的点击概率,提高广告点击转化率预估的准确性。
二、数据说明及处理
1、数据简介
数据来源于华为算法精英大赛赛题二:CTR预测,数据(脱敏后)抽取的时间范围是连续6天(2019/3/26至2019/3/31)的行为数据。
数据集包含:
l 基础数据:训练集数据文件train、测试集数据文件test
l 扩展数据:用户特征文件user_Info、广告任务特征文件ad_info、素材信息数据文件content_info。
各数据集的字段说明:
上述数据均为分类数据,随机抽取一部分被点击的数据,即提取出label=1的数据,对有意义的时间、素材内容进行数据探索:
l 被点击次数与日期的关系。将六天每天的点击次数进行统计,其中2019/3/26为周二。发现在每周中间,也就是周三的时候广告点击次数较少。
l 被点击次数与时间段的关系。将每天分时间段进行点击次数统计,发现一天在夜晚临睡前广告被点击的次数最多,推测此时应该是一天玩手机人数最多的时候。
被点击次数与广告内容。统计不同广告内容的被点击次数,展示每种分类排名前十的内容如下表所示,说明人们对社会、美女这两类的广告最感兴趣。
2、数据选取
华为算法精英大赛中原始训练数据集中有一亿五千万条数据,正样本占比6%。由于训练数据量过大,所以从原始训练数据集中随机抽取50万条数据集,保证新抽取的数据集与原始训练数据集的正样本比例保持一致,结合大赛赛题的扩展数据共同构成此CTR预测的所有数据集。
由于有时间因素的影响,因此选取2019/3/26至2019/3/29的数据为训练集,2019/3/30的数据为验证集;选取2019/3/31的数据为测试集,用2019/3/27至2019/3/30数据来预测测试集,本文只考虑离线测试。
三、特征工程
CTR预测涉及的训练样本一般是上亿级别,样本量很大,有大量的离散特征和高维度稀疏特征,因此使用最多的模型是逻辑回归(LR, Logistic Regression)。
线性模型简单、可解释、容易扩展,且逻辑回归具有计算复杂度低、速度快、易于并行化、可得到离散化目标值0或1、使用正则化可减少过拟合的特点,因此对处理样本量很大的数据有一定的优势;但由于逻辑回归是简单的线性回归,没有交叉组合关系,因此需要进行大量的特征工程得到有效的特征及特征组合,间接增强LR的非线性学习能力。
1、人工特征工程
尝试依据实际情况进行人工特征选择,人为构造交叉项,进而引入非线性特征,提高模型的效果。
l 构建一些“非画像”类的特征,对时间进行一些特别的处理
l 由于点击率场景中的交互对象更多,因此构建交互对象的行为画像和属性画像。具体包括对用户、广告、媒体、广告位、素材构建行为画像;对这些对象的属性,如用户年龄、城市、广告的创意、交互形式等属性构建属性画像。
2、树特征工程
树也是一种可以用来发现特征组合的有效思路。参考2014年Facebook发表的GBDT+LR模型用于其预测广告点击量的论文,GBDT可对原始特征进行特征划分、特征组合和特征选择,并得到高阶特征属性和非线性映射,因此可用来发掘有区分度的特征及特征组合,减少特征工程中的人力成本。
事实上,在用树构造新的训练数据时,采用的也是One-hot方法。如下图,Facebook发表的GBDT+LR模型论文中,假设生成了两棵树,左树有三个叶子节点,右树有两个叶子节点,最终的特征为五维的向量。对于输入x,假设落在左树第一个节点,则编码[1,0,0],落在右树第二个节点则编码[0,1],所以整体的编码为[1,0,0,0,1],以这类编码作为特征,输入到线性分类模型中进行分类。
在将数据输入到GBDT中时,数据预处理为:缺失值用众数或中位数填补。树生成后,每棵树的路径可直接作为 LR 输入特征使用,树的算法迭代多少次就会生成多少颗树,而树有多少个叶子节点,其得到的特征空间就有多大,代入LR训练的特征数就有多少。
四、模型选取
1、逻辑回归模型
三种具体的模型如下:
l 人工特征+LR
l 人工特征+XGBoost
l GBDT特征+LR
2、深度神经网络
深度学习凭借其强大的表达能力和灵活的网络结构在NLP、图像、语音等众多领域取得了重大突破,由于其可以拟合数据之间的高阶非线性关系且拟合能力足够强,因此在预测用户点击率领域近年有大量研究。其可直接输入原始的数据减少交叉特征的选择工作,且由于embedding层的存在支持大量的稀疏特征输入,在大数据下可以有效计算。具体的模型有:
l 人工特征+DNN
l 人工特征+深度交叉网络DCN
五、结果评估
1、评估指标
选取AUC作为评估指标对上述模型进行评估。AUC(Area Under Curve)被定义为ROC曲线下与坐标轴围成的面积。
这个指标尤其适用在CTR预测这种情形下,因为最终返回的结果是根据CTR预测结果排序的最有可能点击的若干个广告,实际上是在考验模型的排序能力。并且CTR 中存在着样本不均衡的问题,正样本比例通常很小,使用AUC更为合理。AUC量化了ROC曲线表达的分类能力,这种分类能力是与概率、阈值紧密相关的,分类能力越好(AUC越大),输出概率越合理,排序的结果越合理。
2、结果评估
l 人工特征+LR(AUC值为0.733)
l 人工特征+XGBoost(AUC值为0.796)
l GBDT特征+LR(AUC值为0.784)
l 人工特征+深度交叉网络DCN(AUC值为0.692)
3、结论
根据四个模型的AUC值,人工特征+深度交叉网络DCN的AUC值最低,且低于0.7;其余三个模型的AUC值均在0.7以上,人工特征+XGBoost的AUC值最高,达到了0.796。整体来看模型还有很大的提升空间,后续还需要进行大量的调参工作。
六、展望
我们在课程设计过程中遇到了一些问题、提出了一些想法,可以作为未来进一步解决广告点击率预测问题的思路:
l 数据缺失问题
对于预测集中的用户,训练集中不一定存在其用户信息和对应的广告点击信息,相当于如何预测新用户是否点击广告的CTR预测问题。
l MLR(mixed logistic regression, 混合逻辑斯特回归)算法
MLR算法创新地提出并实现了直接在原始空间学习特征之间的非线性关系,基于数据自动发掘可推广的模式,相比于人工来说效率和精度均有了大幅提升,可以进一步尝试此种算法。
l 深度学习调参策略优化
如何更好的进行深度学习调参,展现深度学习的魅力,提升CTR预测的准确性,也是需要解决的问题之一。
参考文献: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 DataMining. ACM, 2014: 1-9.
https://github.com/DataClinic/DataClinic2019_Season3/tree/master/20191101_AdsCTR
