第一周周冠军带你解析赛题,尝试广告算法新思路

赛题解析经过激烈的竞争,2019腾讯广告算法大赛迎来了初赛第一周的周冠军。他的名字叫储灿,一个谦虚认真的男孩。作为广告算法界的一颗新星,他对于大赛又有着怎样的独到见解呢?搬好板凳,一大波干货内容即将来袭!


第一周周冠军带你解析赛题,尝试广告算法新思路_第1张图片

大家好,我叫储灿,非常侥幸的获得了2019腾讯广告算法大赛的第一周周冠军,下面我也将分享一下我本次比赛的经验。

1.赛题解析

本次赛题的目标是通过广告的历史信息预测未来某一天广告的曝光量,是一个比较典型的时序问题和回归问题

官方给出的文件有历史曝光日志数据文件、用户特征属性文件、广告数据文件、广告操作数据。其中存在部分脏数据需要自己清同时,官方给出的文件中并没有给定预测目标的标签,这也就需要自己来制作标评价指标分别为smape和单调性得分,其中smape和常见的mae和mse有一定的区别。

2.数据处理

历史曝光数据文件大概有1亿,使得不少人打不开或者看到这个数据量就不想做了,其实可以采用分块读取的方式,读取后再对文件的数据类型进行转化,转换后的文件大概就只有2G左右了。因为数据量较大,多张表的关联操作应当谨慎。给定的测试集特征有限,无法和训练集的特征完美对应,如用户特征属性文件就很难应用到测试集做特征。在比赛的一开始,应该将目标关注在那些简单容易提取的特征上面,对于那些比较复杂和难以处理的特征可以在模型建立起来再做。

本题中给定的广告尺寸、广告出价等基本特征是非常重要的,仅仅用这些基本特征就能得到一个较好的分数。而像人群定向这些特征处理起来比较麻烦而且并不好用,我也并未采用。

在建立模型前首要目标是构建标签,一天当中一个adid可能会有多个出价,在官方的faq出来前我采用的是取均值的形式,当天的adid数量作为曝光量,ad_bid为当天ad_bid的均值。整个数据处理下来大概训练样本为150万左右。将该数据和一些基础的特征特征放入模型训练后就能得到85左右的成绩。在官方的faq出来以后,知道了主要是预测cpc类的广告,对于无法在广告操作数据表中匹配到的数据都可以舍弃,这样清洗下来的数据量又明显小了一大截,只剩下十几万了。采用同样的方法训练,虽然数据量变小了,但线上成绩提高了。

3.模型的选择与验证

这一题大家采用的主要模型有传统的树模型和深度学习模型,以及规则模

对于规则模型需要比较强的业务理解能力,建议经验不多的同学不要取纠结该模型的用法。对于树模型推荐使用lgb模型,不仅仅速度快,而且支持直接输入类别特征,可以省去one_hot占用大量内存。本地验证推荐使用19号之前的数据做训练集19号的数据做验证集,全量数据的交叉验证可能会造成模型的过拟合,线下线上分数不一致。本题单调性得分占比60%,可以说是很好拿的,因此对于模型预测出来的结果一定要做单调性处理,不进行单调性处理,线上的得分也看不出模型的效果。

比赛初期,选择一个自己熟悉的模型,利用基础特征构建起一个整体的框架非常重要,之后可以一步步尝试特征的重要性。

最后,祝大家在本次比赛中收获满满,进步多多。


收获了这份周冠军的经验分享之后,你是不是更加了解本届腾讯广告算法大赛了呢?

你可能感兴趣的:(第一周周冠军带你解析赛题,尝试广告算法新思路)