专栏首页周恒的专栏【SPA大赛】关于APP广告预测转化率的经验分享
原创

【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 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 越权漏洞(e.g. IDOR)挖掘技巧及实战案例全汇总

    Insecure Direct Object reference (IDOR)不安全的直接对象引用,基于用户提供的输入对象直接访问,而未进行鉴权,这个漏洞在国内...

    Jayway
  • 统计师的Python日记【第6天:数据合并】

    本文是【统计师的Python日记】第6天的日记 回顾一下: 第1天学习了Python的基本页面、操作,以及几种主要的容器类型。 第2天学习了python的函数、...

    数说君
  • getIdentifier获取资源id

    首先我想到的是反射,但是经过实验发现提示报错no emoty constructor。

    刘晓杰
  • 关于MySQL中insert ignore,insert on duplicate和replace into,你可能没想过区别

    在数据流转中或者日常的数据操作中,势必会有数据写入的过程,如果把一些数据写入一张数据库表中,如果写入量有100万,而重复的数据有90万,那么如何让这10%的数据...

    jeanron100
  • [android] 获取系统的联系人信息

    内容提供是实质上是个接口,后门,他给别人提供数据,系统联系人是个比较复杂的内容通过者。

    陶士涵
  • Mysql错误:_mysql_exceptions.OperationalError: (1054, "Unknown column 'CVE' in 'field lis解决办法

    _mysql_exceptions.OperationalError: (1054, “Unknown column ‘CVE’ in ‘field list’...

    周小董
  • 集团ERP满意度研究:产品质量PK 行业纵深短板明显国产厂商落后在情理之中

    ERP毫无疑问已经是所有企业管理软件中最重型的配置,由于产品本身属于大型平台化后端管理系统,功能性上复杂程度早已无法量化,因此产品的差异化、个性化竞争尤为激烈,...

    人称T客
  • 王帆谈大疆的未来:不做送货无人机,回归中国市场

    “大疆”这两个字尽管还没到家喻户晓的程度,然而在科技圈中已是无人不晓。在大量公司包括素来有“价格屠夫”之称的小米入局之后,大疆依然占有超过70%的民用无人机市场...

    机器人网
  • MySQL(七)DQL之分组查询

    leeqico
  • 四个xgb模型融合拿下金融风控冠军,是如何做特征工程的?(附代码+PPT+数据)

    随着人工智能和大数据等技术不断渗透,依靠金融科技主动收集、分析、整理各类金融数据,为细分人群提供更为精准的风控服务,成为解决消费金融风控问题的有效途径。简言之,...

    机器学习AI算法工程

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动