码农的世界程序员人工智能

腾讯广告算法大赛随手记4-全局思路

2019-04-25  本文已影响265人  山东大葱哥

很多朋友对腾讯广告大赛不太清楚,我这里简单介绍下大赛,文末介绍总体的解答思路。欢迎大家讨论,如有瑕疵请及时指出。

准备工作

数据说明

数据下载解压后包含的文件如下图:


image.png

user.zip

同样需要再次解压,解压后的到用户数据文件,该数据记录了全部用户数据文件,包括用户的年龄、性别、爱好、地域等等特征数据,与ad_operation.dat中的定向人群有关系。


image.png

ad_operation.dat

广告操作记录数据,该数据记录了广告的所有创建、操作记录,包括广告的状态值,如广告定向人群、投放时间、广告状态、广告出价等。

ad_static_feature.out

广告静态数据,该数据中包含了广告的静态数据,如广告素材尺寸、广告对应的商品类型、广告所在行业id、广告账号id等不会修改的静态内容。

test_sample.dat

测试样本,根据该样本预测N+1日样本广告的曝光量,并在官网提交预测结果获得成绩及排行。

结果文件

提交的结果文件行数与测试样本行数一致,列数为两列,其中第一列为测试样本给出的样本id列,第二列为预估的曝光数据(含四位小数点),此曝光数据为这算后的数据(所有曝光数据都做了 除512 计算),两列数据以逗号分隔,文件名必须为submission.csv,格式为utf8不带bom。

解题思路

总结的解题思路和步骤为:

  1. 数据清洗
    因为数据中混杂了很多无效数据,需要对数据进行去重、空值处理、无效值处理等,可以参考官方给出的进行清洗。
    FAQ直通车

  2. 构建训练数据
    需要结合官方给的广告静态数据、广告动态数据拼接处训练集数据,也就是拼接成和测试样本格式一致的训练样本,这个过程中还需要继续对数据进行清洗处理。
    需要用到行转列的操作将操作记录的不同修改内容转变成列字段。

  3. 曝光统计
    对曝光文件进行统计分析,统计各个广告的曝光量,文件比较大如果大家电脑内存低于16G的话,建议对文件进行拆分读取,以免内存不足。
    这里给的思路是按天进行统计,目标为预测某一天的曝光,所以可以按天拆分,按天统计。
    这样就有了相应的label标签,和第二步的数据拼接结果对应起来就可以作为模型的输入和lable了。

  4. 构建模型
    这是比较关键的一步,我们需要决定使用什么模型,常用的有LR(Logistic Regression)、DNN、Factorization Machine、DeepFM等,说实话大葱哥对这些也不熟悉,需要边学边弄。
    这里面涉及了pctr的预估、竞价排名等知识。

  5. 模型训练
    模型构建好后就可以用训练数据和对应的label来对模型进行训练了,当然为了模型的自测,我们还需要对训练数据划分为两部分,可以按照8:2的比例划分,80%的用于训练、20%的用于测试。
    根据测试的得分,需要调节模型的超参,或者调换模型。这个过程是一个慢活,训练的数据可能较长,训练好可能还需要反复调整参数,以更好的优化模型。
    当然这里我们为了更接近官方的评分标准,可以按照官方的标准写一个对应的评分算法,这样能使自己在训练时的分数能更接近官网成绩。

  6. 测试数据
    使用20%的数据进行测试,看成绩是否理想,如果不理想,就需要调整超参继续训练,或者考虑更换不同的模型。

  7. 预测官网样本数据
    当测试结果自己满意时,就可以将官方样本作为输入,让模型计算结果了。

8.提交验证
将计算结果提交官方网站(一天只有三次提交机会,要珍惜啊),然后看官方的成绩是否理想,不理想的话,继续上面的步骤。

上一篇 下一篇

猜你喜欢

热点阅读