【SPA大赛】关于APP广告预测转化率的经验分享

我们是参加腾讯社交广告算法大赛的队伍,这次想在这分享下我们队伍的经验。首先介绍下我们队伍,我们队伍3个成员是来自西安的高校生,在互联网上了解到这个竞赛,挺感兴趣,所以就参加了这个竞赛!

这次竞赛的要求是让选手预测出 App 广告点击后被激活的概率,也就是一种转化率的变形问题。对于这种问题,在提取特征的时候一般有3种有效的特征,一是原有的id特征,二是根据一些id特征做出来的历史转化率特征,三是相似度特征。对于我们这次竞赛,应该具体情况具体分析。

这次竞赛没有把所有的数据全部放在两个文件,也就是训练集和测试集中,而是给了8个数据文件,其中包括训练集、预测集、还有6个其他数据文件。在训练集和测试集中,共有的特征是:clickTime(用户点击时间,我想应该是点击广告中素材的时间,题目没明说);creativeID(广告素材的id),userID(用户id),positionID(广告位id,广告曝光的具体位置),connectionType(移动设备当前联网方式),telecomsOperator(运营商);训练集还多个 lable 列(我们要预测的列,二分类)和conversionTime(转化回流时间);训练集给了第17天到第30天的数据,也就是说点击时间是从第17天开始的,测试集是要预测第31天的情况。

其余的6个数据文件依次是:

1、user.csv (用户基础特征文件):有 用户 id、年龄、性别、教育程度、婚恋状态、是否有小孩、家乡、常住地;

2、app_categories.csv ( App 特征文件):有 Appid、app分类;

3、ad.csv (广告特征文件):有 广告主 id、推广计划 id、广告 id、素材 id、App的 id、App 所在平台;

4、position.csv (广告位特征文件):有 广告位 id、站点 id、广告位类型;

上面4个文件,我都可以根据 和训练集 预测集中相同的列,将他们的数据 merge 到训练集 预测集中,这样就完成了第一部分特征的提取,对于其他几部分特征,我之后就不再举这么详细的例子了!

5、user_installedapps.csv(用户 App 安装列表文件):截止到训练数据时间段中第一天用户全部的 App 安装列表,但是这个文件中只有 144万用户,和训练集中的 259万用户 相差些,和测试集用户的交集是 15万(测试集中一共有29万用户);

6、user_app_actions.csv (用户 App 安装流水文件):有3列,用户 id、安装时间、appid,但是这个文件只有 78万用户,和训练集中的259万用户 相差些,和测试集用户的交集是 8万(测试集中一共有29万用户)。

上面是所有的数据处理部分,接下来讲下我们的模型部分,在这次竞赛中很多选手都选用了 xgboost 和 ffm 这两种模型,初赛的数据量不是很大,用这两种模型还说的过去,但是在复赛的时候,数据量几乎达到了原先的10倍大小,只有在 xgb 上设置 gpu 加速模块,同时增加机器的核数,在参数设置中将这些设置好,才能达到一个不错的速度。

上面提到了基本配置,下面解释下我们为什么采用xgb这种模型。

首先因为它是一种树模型,属于 booster 的迭代算法,支持损失函数,支持L1L2正则可以防止过拟合,里面还有 scale_pos_weight 这个参数可以调节正负样本的加权训练。基分类器是 CART 树,每一棵树上的叶子节点都会有对应的判断,算法中采取投票器原则,得到最终的预测结果。而且在树分裂的时候,每一次分裂基于前一次分裂和目标函数 来计算信息增益,根据信息增益来选择最合适的特征,以及分割点。这是一种很完备的算法。当然建议其他选手也可以选择 gbdt lightgbm 这两种树模型,这几种模型最终的预测结果,他们之间的相关系数如果在 0.96之下,根据我的经验就可以进行融合,这也就是在比赛末尾有的选手利用多个模型 stacking 提分的原理!

参加这次竞赛最要感谢的就是我的师兄队友们,跟着他们学到了很多知识。这次也希望能将这些知识分享给大家!

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

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

编辑于

周恒的专栏

1 篇文章1 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

资源 | Darkon:可更好理解深度学习模型的开源工具包

2625
来自专栏量子位

AI玩微信跳一跳的正确姿势:跳一跳Auto-Jump算法详解

作者:肖泰洪 安捷 北京大学 | 数学科学学院研究生 量子位 已获授权编辑发布 转载请联系原作者 ? 最近,微信小游戏跳一跳可以说是火遍了全国,从小孩子到大孩子...

3345
来自专栏悦思悦读

自己动手制作“平均脸”【2】

在本系列的上一篇中,我们讲解了用Image morphing方法合成人脸图片的基本原理。 所有代码都在:https://github.com/juliali/A...

3609
来自专栏ATYUN订阅号

【项目】Github上的一个简单项目:用人工智能预测大学录取概率

每年有超过200万的大学申请被提交,每个申请都有一定的机遇与风险。即使是最高学术水平的学生的申请也存在随机因素,因此往往会面临困难的局面——大学招生中固有的精英...

3345
来自专栏机器之心

开源 | OpenAI基准DQN及其三个变体:通过最佳实践确保DQN正确性

选自Open AI Blog 机器之心编译 参与:黄小天、微胖 我们开源了 OpenAI 基准(https://github.com/openai/baseli...

3378
来自专栏AI研习社

从零开始用 TensorFlow 分析情绪,硅谷网红带你飞

Siraj Raval 作为深度学习领域的自媒体人在欧美可以说是无人不知、无人不晓。 凭借在 Youtube 上的指导视频,Siraj Raval 在全世界吸...

3416
来自专栏FreeBuf

通过预测API窃取机器学习模型

由于机器学习可能涉及到训练数据的隐私敏感信息、机器学习模型的商业价值及其安全中的应用,所以机器学习模型在一定程度上是可以认为是机密的。但是越来越对机器学习服务提...

2495
来自专栏深度学习入门与实践

【深度学习系列】PaddlePaddle垃圾邮件处理实战(一)

2154
来自专栏AI研习社

北邮张庆恒:如何基于 rasa 搭建一个中文对话系统 (有源码视频)| 分享总结

对话系统是自然语言处理的一个热门话题,而自然语言理解则是对话系统的关键组成部分,现有的很多自然语言理解工具往往以服务的方式获取(Google 的 API.ai...

5155
来自专栏Y大宽

跨物种比较(同源基因)

同源基因是来自一个共同个祖先DNA序列的genes。不同物种中的同源基因指的是直系同源基因(rotholog genes,例如从一个共同祖先基因因为物种进化来的...

1044

扫码关注云+社区