【SPA大赛】腾讯社交广告大赛心得分享

1. 数据分析

大赛题目是转化率预估,这也是第一次接触这类赛题,所以遇到的问题比较多。首先是对数据的理解就花了不少心思,数据中有不少除label不同外其他数据都相同的样本,刚开始也是像处理其他问题一样将这些样本看作是噪音,只保留了label为正的样本,后来发现在线上测试集中同样存在一部分数据都相同的样本,这时训练出来的模型对这些样本的预测值都是相同的,所以对于这些样本就不能简单的当作噪音来处理了。目前我们针对这种情况的处理参考了之前大神分享的经验,通过添加一些特征来标记他们之间的先后顺序。还有关于label不准确问题的处理,因为有些回流的时间超过5天还有最后几天的回流可能还没有反馈回来,这些就会使得label取值不准确。针对这种情况,我们通过统计所有数据的回流时间,发现:90.00%的回流发生在一天之内,99.00%的回流发生在两天之内,99.90%的回流发生在三天之内。这一分析我们如何构造选取线下训练集和验证集很有帮助。

2. 模型选择

关于模型选择,看到好多人都选择xgboost,而我们选择的是lightgbm,之所以选择它是因为之前做比赛的时候对比过这两者的训练时间与预测结果。有实验表明lightgbm在学习效率与准确率上都比xgboost表现得好,而且它还有这更低的内存消耗。

3. 构造训练集

通过之前的数据分析,我们直接舍弃了30日的数据。考虑自身设备情况,我们仅选取了两天的样本作为训练集。比如以27,28两天的样本为测试集,以29日样本为线下验证集。这样构造训练以及验证集可以有效避免数据泄露问题。具体构造训练集与测试集可以根据自身设备情况多取几天的样本。比赛开始阶段,我们使用一个模型进行预测,后期,使用了模型融合,分别训练了4个模型,对此,数据集的划分如图1所示。

4. 特征工程

我们首先对数据中age属性进行了等值域划分,然后通过统计找出对原始数据中维度较小那些基本特征,对这些特征进行了one-hot编码,这样不至于出现特征维数很大的情况。其次就是组合特征了,组合特征是相对比较重要的。组合特征是不能盲目胡乱组合,要多想想实际情况,做一些统计分析,当然也可简单的通过训练结果的来测试组合特征的重要性。

4.1 基本特征与特征one-hot

选取原始数据中维数较小的特征进行one-hot编码,主要包括用户的年龄、性别、婚恋状态、教育程度,广告的advertiserID、AppID、appPlatform,上下文的sitesetID和positionType。

4.2 特征交叉

不同特征之间的组合能起到更大的作用,我们分别使用户的年龄、性别、婚恋状态、教育程度、居住地与广告的creativeID、appID和positionID两两进行交叉,同时记录在这两个特征交叉时,广告CTR的排序特征。

4.3 特征贝叶斯平滑

在交叉得到的特征中,经观察,发现很多广告的CTR值并不准确,某些广告CTR值因为该广告总点击数较少而导致CTR较高,所以进行了贝叶斯平滑,贝叶斯平滑过程主要借鉴了博客上的思路。

4.4 离散化

在得到基本特征和处理后的特征后,主要针对统计出的广告CTR特征进行离散化,这种操作的目的是保证广告CTR值可以再预估时按照自身的重要性发挥不同的价值。

竞赛刚开始阶段,并没有注重交叉特征的构造和特征的贝叶斯平滑操作,只针对基本特征和基本特征上的统计特征进行处理,结果非常差,后来加入交叉特征和对特征进行贝叶斯平滑后,效果慢慢变好。这部分内容可以参看很多博客文章。

目前阶段,我们对特征的总体处理如图2表示。图2中其他特征包括了除图中列举出的特征以外的其他特征,绝大多数是统计特征。

5. 模型融合

四个模型分别采用lightgbm进行训练,使用四个模型进行预测,对4个预测结果进行线性融合以得到最终结果。融合后的结果比单个模型的预测结果好,但是线性模型融合需要调整4个模型参数,加大了工作量。

6. 比赛心得

首先,要保证训练集的构造没有问题,如果训练集有问题,再怎么提特征,调参数都没用。下来是特征的提取,可以说这个过程是整个过程中最重要的,因为特征的好坏直接决定了预测结果的好坏,特征不好,模型调的再好结果还是不行。最后就是模型调参了,这部分相对也比较重要,调参要理解参数背后的意义以及调参后会带来的影响,毫无规律的乱试能调出好的参数的概率渺茫。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

申星的专栏

1 篇文章1 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏新智元

复旦、清华和英特尔中国研究院ICCV新作:完全脱离预训练模型的目标检测方法

【新智元导读】复旦大学、清华大学和英特尔中国研究院合作提出的一种新型的目标检测方法 (DSOD) ,能够在完全脱离预训练模型的情况下,使用有限训练数据,达到st...

2513
来自专栏有趣的Python

1- Python3入门机器学习经典算法与应用-课程介绍

python3玩转机器学习 到底什么是机器学习? 让机器去学习 传统的算法课程中写的代码,是让机器去执行 ? mark 最早的机器学习应用 - 垃圾邮件分...

5499
来自专栏机器之心

深度 | 轻量级深度卷积神经网络在农业机器人中的应用

机器之心原创 作者:Shixin Gu 参与:Joni Chung、Xiang Chen、Nurhachu Null 最近,深度学习正随着训练过程简单化和准确化...

3418
来自专栏机器之心

专访 | 五一出游赏花,如何优雅地解释百度细粒度识别方案

1393
来自专栏iOSDevLog

机器学习概述与算法介绍

1535
来自专栏ATYUN订阅号

【学术】以精确性来提高对机器学习的信任

传统的机器学习工作流程主要集中在模型训练和优化上,最好的模型通常是通过像精确或错误这样的性能度量来选择的,我们倾向于假定一个模型如果超过了这些性能标准的某些阈值...

2827
来自专栏zaking's

编程运动——无监督深度学习网络

几个月前,我们开始讨论有关深度学习以及它在自然语言方面的一些相关问题。但是,在过去的几个月里,由于读者的一些其他要求,我们似乎有些跑题了。从本月起,我们会再度探...

3887
来自专栏CSDN技术头条

Netflix工程总监眼中的分类算法:深度学习优先级最低

【编者按】针对Quora上的一个老问题:不同分类算法的优势是什么?Netflix公司工程总监Xavier Amatriain近日给出新的解答,他根据奥卡姆剃刀原...

1895
来自专栏机器之心

ECCV 2018 | 美图云联合中科院提出基于交互感知注意力机制神经网络的行为分类技术

深度卷积神经网络中,特征图里相邻空间位置的局部通道特征,往往由于它们的感受野重叠而具有很高的相关性。自注意机制模型通常利用每个局部特征内部元素的加权和(或其他函...

1493
来自专栏专知

【深度学习最精炼详实干货中文讲义】复旦邱锡鹏老师《神经网络与深度学习》讲义报告分享01(附报告pdf下载)

【导读】复旦大学副教授、博士生导师、开源自然语言处理工具FudanNLP的主要开发者邱锡鹏(http://nlp.fudan.edu.cn/xpqiu/)老师撰...

3985

扫码关注云+社区