【SPA大赛】移动app广告转化率预估算法优化思路及解决办法

一、引言

本次腾讯社交广告算法大赛以移动app广告转化率预估为背景,以移动App广告为研究对象,预测App广告点击后被激活的概率:pCVR=P(conversion=1 | Ad,User,Context),即给定广告、用户和上下文情况下广告被点击后发生激活的概率。大赛为我们提供了非常珍贵的真实数据,使得我们有机会把平时所接触到的理论加以实践,下面我们分享一些我们参赛过程中的心得体会。

二、数据,特征与模型

数据使用方面,几位周冠军同学都做了很好的分享,合理的选择线下测试集,使线下线上同步即可,唯一需要注意的就是数据的时序性,提取特征时要小心不要发生数据泄漏。在模型方面,因为之前没有转化率预测方面的经验,我们查看了kaggle上类似的几个比赛的成功经验,发现在这类问题上表现较好的大概有两类模型:ftrl与ffm这类针对id类稀疏特征的模型,以及xgboost这类主要采用dense特征的模型。

经过了一些尝试,我们发现ftrl,并没有取得预期的结果,这个不知道是我们的使用姿势不正确,还是app激活数据本身与广告ctr数据有所区别。后来通过同学们在公众号以及qq群中的分享,我们转向了xgboost模型,专注于点击数,激活数,转化率等各类统计特征,并进行组合特征的提取。这样粗暴的做法使得我们的特征维数很快就超过了100维,但是成绩并没有相应的提高,反而大大的增加了模型训练时间,于是我们开始着手精简手上的特征,精简的方式,一方面是通过查看xgboost的feature importance的结果,另一方面对于一些通过我们对业务的理解觉得重要的特征我们进行单独的验证,渐渐的我们的成绩有了提高。做特征时我觉得最重要的就是要细心,每一个细节可能都会有小小的提高。

这里分享一下我们最初做的数据分析:

初赛后期很多队伍进行了模型融合,取得了非常显著的提高,这里我们介绍一下我们的融合策略。我们分别尝试了模型加权平均,blending,stacking三种模型融合方式。采用融合的模型为xgboost模型,lightgbm模型以及scikit learn的ExtraTreesClassifier模型,对于不同的模型我们进一步的采取了不同的特征进行训练,进一步的增加模型的多样性。其中stacking方法提升最为显著,这里详细介绍一下。

相比于简单的模型加权平均以及blending,stacking可以更好的利用训练数据,这以 5-Fold Stacking 为例,说明下说明下我们的融合策略,train集上的操作如下图所示:

我们在stacking第一层选取xgboost1,xgboost2,lightgbm1,lightgbm2,ExtraTreesClassifier五个模型进行融合,上图即描述了具体的融合过程。对于模型1xgboost1,首先我们将训练数据随机的分成5份,用其中的4份数据(上图左侧蓝色部分)预测余下的1份数据(上图左侧黄色部分),重复上面过程5次,将5次预测结果放到一起就得到了上图中右侧的新特征1,对于五个要融合的模型重复上述过程,我们就的到了5维新特征。这5维度新特征将会在stacking第二层的中起到训练数据特征的作用。

对与test数据在是在stacking第二层的5维特征,我们通过下图方式得到:

以模型1xgboost1为例,上面已经说了在train集上用其中的4份数据预测余下的1份数据这个行为被重复了5次,每一次我们不止预测余下的1份数据,我们也对整个test数据集进行预测,这样我们就对test集预测了5次,对5次预测取平均,我们就得到了test集上的新特征1。对模型2到模型5我们在test集上重复上述过程,得到另外的4维特征。这样我们便在test集上得到了与train集上5维新特征对应的特征。在stacking第二层,我们依然选取xgboost模型,此时train和test集上的特征即为地一层stacking生成的新特征。

我们目前采取的融合策略还是相对简单的,模型数量和种类相对较少,所选模型都是tree based model,复赛中我们希望能结合ftrl,ffm等差异性较大的模型进行融合得到更好的结果。

三、展望

初赛已经接近了尾声,整个过程学到了非常多的知识,从特征的处理再到模型的选择,参数的调节,都有了更深的认识,非常感谢主办方能让我们接触到这么珍贵的数据,期待复赛更大数据给我们带来的挑战。

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

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

编辑于

何颖的专栏

1 篇文章1 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

深度 | 卷积神经网络十五问:CNN与生物视觉系统的研究探索

和我近期的大多数博文一样,我写这篇文章的起因是近期一个 Twitter 讨论,具体是关于如何将深度卷积神经网络(CNN)的组件与大脑联系起来。但是,这里的大多数...

930
来自专栏数据科学与人工智能

【原理】机器学习偏差与方差

小编邀请您,先思考: 1 为什么KNN算法在增大k时,偏差会变大? 2 RF增大树的数目时偏差却保持不变,GBDT在增大树的数目时偏差却又能变小? 在机器学习的...

35811
来自专栏CSDN技术头条

机器学习温和指南

【编者按】机器学习是如今人工智能领域中进展最大的方面,更多的初学者开始进入了这个领域。在这篇文章中,机器学习与NLP专家、MonkeyLearn联合创始人&CE...

2085
来自专栏专知

一文讲述CNN与视觉系统的爱恨情仇,15个关键问答集锦

2832
来自专栏深度学习自然语言处理

学界 | NLP年度盛宴EMNLP/CoNLL 2018最精彩论文精选(摘要+评论)

每年,全球最顶尖的NLP研究者们会在这两个大会上展示最前沿的NLP科研成果。然而,动辄上千篇的论文却令很多关注NLP领域最新动态的小伙伴望而却步。

1132
来自专栏FD的专栏

深度学习简介及单词的向量化表示

首先应当明确的是,深度学习是机器学习中的一个领域。然而与传统机器学习所不同的是,传统的机器学习的重点在于特征的设计。在设计过特征之后,就变成了研究如何调整权重、...

782
来自专栏量子位

OpenAI最新成果:无监督情绪神经元(水军面临失业威胁……)

李林、舒石 编译自 OpenAI官方博客 量子位出品 | 公众号 QbitAI OpenAI公布了一项最新成果:一个无监督的系统,很好的学会了表征感情。尽管这个...

32210
来自专栏机器学习算法与Python学习

2019校招面试必备,15个CNN关键回答集锦【必收藏】

关于利用卷积神经网络作为视觉系统的模型是否有生物学理论支持,目前仍然存在许多质疑之声。本文作者通过多年在计算神经领域的经验,以问答的形式详细阐述了CNN与神经科...

902
来自专栏机器之心

学界 | 从监督式到DAgger,综述论文描绘模仿学习全貌

2426
来自专栏华章科技

入门级攻略:机器学习 VS. 深度学习

本文以浅显易懂的语言介绍了机器学习和深度学习的定义及应用,以及在源数据要求,硬件支持,特征工程、问题解决方式、执行时间及可解释性等方面的区别,对于新手入门有很大...

952

扫码关注云+社区