【采访】腾讯社交广告高校算法大赛 决赛第一周周冠军——ThreeIdiots比赛经验及心得分享 腾讯广告算法大赛

妖精的绣舞 提交于 2020-01-24 03:14:07

这是腾讯社交广告高校算法大赛进入决赛阶段

产生的第一个周冠军

他们的名字叫ThreeIdiots

据说ThreeIdiots是谜一般的存在

大家都在猜他们到底是何方神圣

忍不住先提前透露一下关键词

低调、内敛还有点小帅

有实力的三个大男孩 祝贺你们

小编对咱们的周冠军同学进行了短暂的采访

于是就有了下面这篇分享

.....

 

周冠军 ThreeIdiots

大家好,我们是ThreeIdiots队。

首先需要澄清的是,我们并非在Kaggle比赛中使用FFM模型屡获佳绩的台大队伍3Idiots。我们的队伍成员分别是来自北京大学的charles和wepon,和来自中科大的wsss。最初参赛时,我们采取了兵分两路的策略,由wepon主攻稠密特征的提取和xgboost模型的训练,我研究了一段时间的基于稀疏特征训练的FFM模型。FFM模型在初赛的数据上表现并不是很好,最好的结果和xgboost相比也略逊一筹。后来在wsss加入后,一方面是自嘲,另一方面也是出于对台大队伍的敬意,我们将队伍名设为ThreeIdiots并保留至今。如果给大家造成困惑和误解,在此表示歉意。

或许是幸运女神眷顾我们,这次我们拿到了数据切换后的第一个周冠军。之所以说是幸运,是因为我们提取特征的思路与初赛几乎是一致的,而初赛我们的成绩并不理想。我们相信很多人肯定还在默默酝酿等待发力,我们可能只是占了一些实现快速的优势,所以期待后续能与各位再行切磋。至于比赛心得,我们总结了一些供大家参考。

进入正题,我们的比赛心得主要有以下几个方面:

1、整体思路

基于一个最基础的常识,特征决定模型表达的上限,对于此次比赛,我们也认为特征是最为关键的。而特征的提取,我们认为,必须从真实的业务逻辑出发,去发现和提取特征。所以,我们建议大家在动手做之前,先花一定的时间去仔细考虑这样一个问题:用户在什么情景下点击一个广告之后会选择转化,有哪些驱动力,有哪些限制条件。我们认为,转化的主要驱动力是需求,即用户有使用该广告对应的App的需求,次要驱动力是广告的展现形式和上下文特征,有时候惊艳的展现形式和合理的出现时机也能够引起用户的兴趣。除此之外,还有可能影响用户转化的就是限制条件,比如我们可以假设用户不可能在2G状态下下载超过50M的App等。在此我们是抛砖引玉,期待大家能够有更详尽的思考并提取出更好的特征。

2、关于数据划分

一般来说,构建一个机器学习的应用,需要将数据集划分为训练集、验证集和测试集。我们采用了按时间划分的方法。对于像此次比赛这样具有明显时间序列特征的数据,我们认为任何形式的数据泄露都是致命的,所以并不提倡随机划分的方法,尤其是在复赛数据集规模已经足够大的情况下。数据划分的基本原则大家也都清楚,就是尽量使线上线下保持同步增减,并尽可能的缩小差距。

3、关于特征工程

每次打比赛,我总会记起同学曾跟我说的一句话“特征没提好,参数调到老”,深以为然,牢记于心。所以在整个比赛赛程里,特征工程耗费我们时间是最多的。我们也建议大家把更多时间放在特征提取上,不要无谓地去调节参数。特别是基于树的模型,从我们以往的经验来看,参数的影响是微乎其微的。这个比赛大家一直在说的trick,想必对结果的提升已经很有限,前面也有很多选手分享了,在此不再赘述。而另一种大家都能想到的特征就是各种ID的转化率特征,这个相信大多数队伍也都提取了。在此基础上,我们还尝试了用word embedding的思路从user_installapp表中提取相关的特征,用Wide & Deep Model生成稠密特征。

4、关于数据规模

与大家一样,在复赛中我们也遭遇了数据规模太大导致的一系列问题,如内存不够用,运行缓慢等。在这里,我们首先建议大家做好数据选取和特征筛选的工作。数据选取方面,可以对数据进行下采样。特征选择方面,可以根据初赛的经验剔除相对弱的特征等。特征选择的方法大体上可以分为Filter、Wrapper、Embedded三种,最后一种是我们常用的,也是比较方便的一种特征选择方法,像集成树模型、Lasso具有天然的特征选择的能力,在此也推荐大家尝试。

除此之外可以对特征进行增量提取的方法,每次提取一部分特征之后就保存至硬盘,下次需要用到该特征的时候直接读数据并concat就可以了,如果需要添加新的特征也可以很方便的处理。最后,建议大家选择那些实现便捷提取迅速的特征优先尝试,我们认为快速迭代也是这个比赛中非常重要的取胜因素(为我曾经跑了两天两夜没有提出来的特征哀悼1s)。

5、关于模型

初赛时我们用的是xgboost,效果优于lightgbm。但在复赛,由于数据量较大,xgboost速度比lightgbm慢,所以我们暂时采用了lightgbm和FM模型进行训练。目前还没有进行任何形式的模型融合的尝试,仍处于特征提取和单模型训练的阶段。我们预计会在下周之后逐渐开始尝试模型融合。当然我们也会再次尝试xgboost模型以及和其他模型的融合,希望能够取得一点提升不辜负这个队名。在这道赛题中,我们对模型融合带来的提升的预期并不高,也同样建议大家先做好特征,再做其他更多的尝试。

最后的总结很简短:建议大家多观察数据,少无谓编码,多思考特征,少调整参数,多想,少试。

祝大家都能取得好成绩。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!