腾讯社交广告高校算法大赛——总结
#腾讯社交广告高校算法大赛——总结
Another url: https://bulihanjie.github.io/2017/07/08/腾讯社交广告高校算法大赛总结/
题目描述
http://algo.tpai.qq.com/home/home/index.html
成绩
决赛第7名
赛题分析
比赛中,我们比较关心的一个问题在于:数据线上线下分布不一致:1、某些app和用户的记录比较少;2、数据的时效性要求较高。这对于特征工程会是一个比较大的要求,在比赛中有许多的特征会使得线上的成绩下降,比如各种差分的特征。
特征工程
特征的提取主要有以下几个方面:
- 基础特征:计数特征、转化率、比例特征等各种基本的特征;
- 线上的特征:基于当天数据统计的用户行为、app行为的特征;
- 用户行为挖掘特征:word2vec计算用户行为与历史行为的关联;
特征提取方式有以下几个方面考虑:
- 基于cv统计、贝叶斯平滑等方法,能够很好的修正线上线下的特征分布不一致的问题;
- 特征提取主要有基于全局的数据统计以及滑窗的历史统计。
- 基于全集的数据统计生成的特征:是决赛中主要的特征提取方式,效果比较平稳,而且信息量比较多,但容易会有信息泄露的问题需要通过cv统计来避免,而且难以反映时间变化的信息。
- 基于滑窗的生成特征:能反映时序上的信息,不会有信息泄露的问题。但是生成的特征数量多,线上线下的分布差异比较大,特征工程方面的工作量比较大。
因此,比赛中我选择了两种生成特征的方式来产生不同的模型进行融合。
特征选择
- 在初赛阶段,主要有以下三种方式来筛选特征:1、删除线上线下均值差异30%以上的特征;2、通过xgboost计算的特征重要性,删除重要性较低的特征;3、通过wrapper的方式选择特征。通过以上方式能够保证线上线下的特征稳定,但这工作在决赛数据量大的情况下会比较耗时。
- 在决赛阶段,每加入一部分特征,通过线上的成绩反馈来选择特征的去留。
模型方法
比赛中主要使用stacking 的方式,其中一个模块的示意图如下:
如图所示,模块中使用cv的方法,把数据分成5份来进行训练和预测,这样模型的效果会比单模型的要好些(相当于投票的一种策略)。此外模块中stack3层,每一层使用原有的特征和预测值作为下一个模型的输入,增强模块的精度。模型中使用xgboost和lightgbm。
这种模型的缺点在于,效率是单模型的十几倍,因此需要一种策略来保证效率。这里我使用分而治之的思想,每一次训练使用上一个模块的预测值和当前新提取的特征,作为下一个模块的输入进行训练,不断迭代。这样相当于把所有的特征分成很多部分分开训练,并且在决赛中通过线上成绩反馈来选择特征的去留。最终模型的流水线如下:
Component就是模型的一个模块(cv5份和stack3层的模块),每次提取新的特征则加入到新的component中训练。这里流水线中使用了15个模块。
实验中,随着加入的特征越多,模型效果变得更好。模型的效果如下:
模型融合
主要有两种融合的方式:
- 加权融合:当融合的模型效果差异大时,根据线上的成绩人工设定融合的权重;
- logistic平均:当融合的模型效果差异小时,采用以下公式进行融合: p = f ( ∑ i f − 1 ( p i ) n ) p=f(\frac{\sum_i f^{-1}(p_i)}{n}) p=f(n∑if−1(pi))
除了stacking的模型,同时也考虑全集和滑窗特征上的单模型效果,还有每个component成绩,进行融合:
赛后总结
个人感觉在模型的stack方面,已经做到了很好的程度,实验的结果表明比单模型的效果要好且鲁棒性更高。但是决赛后期尝试使用ffm算法,但是效果一直不理想,所以只是稍微的加进去原来的模型中进行融合。
腾讯社交广告高校算法大赛——总结相关推荐
- 【专访】首届腾讯社交广告“高校算法大赛”落幕 冠亚季军团队参赛心得精彩分享
导言: 7月6日,首届腾讯社交广告"高校算法大赛"正式落幕.在众多参赛团队中,来自南京大学的三人组合"nju_newbie"一举夺得决赛冠军,将30万元奖金收入 ...
- 【采访】腾讯社交广告高校算法大赛决赛第二周最大进步队伍——拔萝卜比赛经验及心得分享
腾讯社交广告高校算法大赛决赛第二周 进步最大的一支队伍 她的名字叫拔萝卜 这是一支单人队伍 而且还是少有的女孩子哦 可爱.乖巧.独立的小女孩 祝贺你 话不多说直接上照片 小编对咱们的周进步冠军同学进行 ...
- 【采访】腾讯社交广告高校算法大赛决赛第一周最大进步队伍——SkullGreymon比赛经验及心得分享
这是腾讯社交广告高校算法大赛进入决赛阶段 进步最大的一支队伍 他们的名字叫SkullGreymon 他们低调到照片都不放 小编也不知道怎么介绍 只知道队长同我一样喜欢哆啦A梦 那应该是个有童真爱想象的 ...
- 【采访】腾讯社交广告高校算法大赛 决赛第一周周冠军——ThreeIdiots比赛经验及心得分享 腾讯广告算法大赛
这是腾讯社交广告高校算法大赛进入决赛阶段 产生的第一个周冠军 他们的名字叫ThreeIdiots 据说ThreeIdiots是谜一般的存在 大家都在猜他们到底是何方神圣 忍不住先提前透露一下关键词 低 ...
- 【采访】腾讯社交广告高校算法大赛决赛第二周周冠军——nju_newbiew比赛经验及心得分享
腾讯社交广告高校算法大赛决赛 第二周周冠军 他们的名字叫nju_newbiew 进入决赛之后他们的成绩是火速提升 直到稳定在第一名 这又是一支谜一般的队伍 今天小编就来给大家揭开神秘大佬的面纱 三个偶 ...
- 【采访】腾讯社交广告高校算法大赛第二周周冠军——Groot 比赛经验及心得分享
[采访]腾讯社交广告高校算法大赛第二周周冠军--Groot 比赛经验及心得分享 经过又一周紧张又激烈的角逐 腾讯社交广告高校算法大赛产生了第二周周冠军 他们的名字叫Groot 三个冷静沉着的大男孩 低 ...
- 【采访】腾讯社交广告高校算法大赛第三周周冠军——到底对不队比赛经验及心得分享
[采访]腾讯社交广告高校算法大赛第三周周冠军--到底对不队比赛经验及心得分享 经过又一周紧张又激烈的角逐 腾讯社交广告高校算法大赛产生了第三周周冠军 他们的名字叫"到底对不队" 这 ...
- 【采访】腾讯社交广告高校算法大赛第一周周冠军——郭达雅 比赛经验及心得分享
[采访]腾讯社交广告高校算法大赛第一周周冠军--郭达雅 比赛经验及心得分享 经过一周紧张又激烈的角逐 腾讯社交广告高校算法大赛产生了第一位周冠军 他的名字叫郭达雅 一个腼腆沉静的小男孩 低调的实力派, ...
- 【干货】从点击率预估的视角看腾讯社交广告算法大赛
[干货]从点击率预估的视角看腾讯社交广告算法大赛 大赛简介 腾讯社交广告算法大赛以广告领域常见的转化率预估问题作为出题思路,从用户历史一个月的行为数据中采样竞赛数据,数据规模达几十GB.比赛题目足够诚 ...
最新文章
- [android] 异步http框架与实现原理
- springweb拦截器
- NYOJ 115 城市平乱
- android 解决Error:This Gradle plugin requires a newer IDE able to request IDE model level 3. For Andro
- 使用java修改图片DPI
- 元素凸起效果_被誉为作物“生殖元素”的“硼”到底有多重要?看完你就明白了...
- adprw指令通讯案例_超实用,非常典型的Modbus通讯项目案例,三分钟学会
- 《Using Docker》书评和与作者Adrian Mouat的问答
- spring启动quartz定时器
- 可怕!让无数女明星下海的换脸术来了,Facebook推出视频换脸功能!
- Andorid11 暗码启动应用(一)
- html 实现复制功能
- 【汇编】2、从汇编源码逐步分析函数调用过程
- IDEA 错误: 找不到或无法加载主类 com.Main
- 一个屌丝程序猿的人生(八十八)
- 【数据结构】二叉树遍历
- Java并发——CountDownLatch
- Linux实现ppp拨号4G模块联网全球APN之亚美尼亚(Armenian)
- 01. Web漏洞靶场的搭建
- sql语法基础,sql分组查询
热门文章
- java combobox大小_java – JComboBox首选大小,选择空值但不在ComboBoxModel中
- mysql 存储过程 定义数组_MySql存储过程
- ACCP学习旅程之----- SQL Server(第五章 数据查询(二))
- Java项目:ssm药品管理系统
- 解决一个青龙容器ck数量上限教程 青龙面板 docker
- 东软刘积仁:国际化是中国软件企业的必然选择
- 西门子系列PLC教学视频资源2——S7-300、400
- animate改变背景颜色_CSS 颜色体系详解,看完弄懂,直通大厂(近万字精华)
- 蓝牙定位5.0技术,高精度定位,你get到了吗?--新导智能
- paip 银行卡号的发卡行归属地查询