作者 Dance with Ensemble 
伊瓢 编译 
量子位 出品 | 公众号 QbitAI

我们每天在网页上看到的各种电商广告,到底够不够吸引人?4个月前Kaggle和“俄罗斯版58同城”Avito办了个需求预测挑战赛,预测不同的广告能吸引用户多大的购买需求。

如今冠军已出炉,并且在社交网络上引起了一波关注收藏,量子位在此分享一下。

Avito需求预测挑战赛

网页上的卖货广告有好有坏,好的广告清晰明确的展示产品,恰到好处的描述卖点,能够精准的让那些对此产品有需求的人产生兴趣、点击查看。

而烂广告则表意不明、图片不清晰,或者让人觉得这压根就是个骗子。

所以,对同样的产品,好广告产生的需求高,烂广告产生的需求低。Kaggle的这次需求预测挑战,就是把“需求”用方差来定义:

公式中ŷ为预测值,y为实际值。

这场比赛在今年4月底推出,6月底截止,共有1873支队伍参赛,冠军奖励12000美元,亚军奖励8000美元,季军奖励5000美元。

冠军方案

冠军团队Dance with Ensemble的最终分数为0.2150,团队包含两名中国人、两名俄国人。领衔作者Little Boat目前Kaggle比赛排名第五。

之后,他们公开了自己的方案。

整个网络的第一层包含一些lgb模型、一些NN模型和一些xgb模型,第二层包含一些lgb模型、一些xgb模型和一些NN模型,一个NN作为最后一层。作者认为复杂的结构(3层)可能给提供了大约0.0002-0.0004分的改进。

他们还发现了一些基于主动训练+测试的特征,将最好的单个lgb提升到213X,最终贡献了0.0007的改善。

整个Dance with Ensemble团队四个人的部分合并时,他们模型的线性混合可以达到0.2133。

神经网络

如何用一个NN达到0.215X?

包括文本,分类,数字,图像在内,所有内容都很重要。作者是这样实现的:

1.得到了0.227X的数字特征和分类嵌入。

2.用2个RNN包含了titile和description,使用fastText预训练嵌入,通过一些调整,得分降至0.221X。

3.用自我训练fastText嵌入训练+测试,并主动训练、主动测试。事实证明,训练+测试的自我训练是最好的。得分达到0.220。

4.添加具有平均池化的VGG16顶层。这一步其实让分数变低了,在将文本,图像,分类,数字特征合并在一起之前做一些调整,分数约为0.219X。

5.尝试用CNN或Attention等调整文本模型,发现无效后使用2层LSTM,然后是dense层,这里可能有0.0003的改进。

6.尝试了用不同的CNN模型处理图像,固定的ResNet50中间层可能还有0.0005分的提升,分数变成了0.218X。

7.开始做各种调整,发现在文本和LSTM之间添加空间dropout有很大帮助,大概贡献了0.0007 - 0.001。精细调整的退出率总体上也有所帮助,这里改进了大约0.001 - 0.0015,所以现在的分数大约为0.2165 - 0.217。

8.开始整合所有特征,得到一个0.215分的NN!

9.如果你一直在保存模型,你可以在它们之上训练一个全连接的NN,还有大约0.008的改进。换句话说,用神经网络打进前10名很容易!

特征工程

文字特征

在标题,描述,标题+描述,标题+描述+param_1等上面,用了tfidf算法。保留所有xgb模型的稀疏特征; 使用svd和oof ridge为所有lgb模型保持多样化。

文本统计,比如字长、标题包含而描述中没有的特殊字词等。

图像特征

1.图像统计,参考:https://www.kaggle.com/shivamb/ideas-for-image-features-and-image-quality

2.三个预训的练神经网络模型的特征,参考:https://www.kaggle.com/wesamelshamy/high-correlation-feature-image-classification-conf

3.vgg16预训练网络特征

4.关键点特征,参考:https://www.kaggle.com/c/avito-demand-prediction/discussion/59414

分类特征

计算/统计各个级别的独特特征。

这些特征是为train + test和train + test + train_active + test_active生成的。例如,(parent_category_name,category_name,param_1)中的广告数量,(region,city)中的唯一user_id数量。

各种级别的目标编码。这些包括count> = 5000的类别的平均deal_probability; count> = 5000的类别的平均预测deal_probability(train + test)(注意,选择阈值使得cv / lb间隙保持大致相同。); OOF表示deal_probability编码; OOF表示deal_probability * min(1,log(count)/ log(10000))编码。

预测自变量特征

xgb预测价格,image_top_1;

lgb预测价格,image_top_1,item_seq_number(oof预测);

rnn预测day_diff = day_to - day_from

在不同分类级别的平均预测价格,image_top_1,item_seq_number,day_diff。

不同级别的差异特征,例如(price-xgb_price)/(category_name)级别的价格,log(image_top_1) - (resnet50_category1)级别的log(lgb_image_top_1)等。

尝试从文本特征预测parent_category_name和category_name(multicalss分类),但包括它们使cv略差。

user_id特征

路程特征,首先从(user_id,item_seq_number,activation_date)开始训练,然后计算旅程数量(和百分比)、不同级别的返程数量(和百分比),例如( user_id,parent_category_name),(user_id,parent_category_name,category_name,activation_date)等。

分类特征,将user_id视为分类变量,在(user_id)或(user_id,其他分类变量)级别生成特征。例如,unique item_seq_number,price range = log1p(max(price)) - log1p(min(price)))。

周期特征,由periods_train和periods_test生成。

传送门

作者原贴:

https://www.kaggle.com/c/avito-demand-prediction/discussion/59880

加入社群

量子位AI社群19群开始招募啦,欢迎对AI感兴趣的同学,在量子位公众号(QbitAI)对话界面回复关键字“交流群”,获取入群方式;

此外,量子位专业细分群(自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。

进专业群请在量子位公众号(QbitAI)对话界面回复关键字“专业群”,获取入群方式。(专业群审核较严,敬请谅解)

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

你的广告能打几分?Kaggle需求预测挑战赛冠军方案这样做丨教程相关推荐

  1. 广告行业中那些趣事系列51:超牛的kaggle比赛Favorita Grocery Sales Forecasting冠军方案...

    导读:本文是"数据拾光者"专栏的第五十一篇文章,这个系列将介绍在广告行业中自然语言处理和推荐系统实践.本篇分享了kaggle比赛<Corporación Favorita G ...

  2. 一文梳理2019年腾讯广告算法大赛冠军方案

    ‍‍ 点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 作为从本次比赛共157队伍中脱颖而出的冠军方案,评分达到87.9683,从数据清 ...

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

    腾讯社交广告高校算法大赛决赛 第二周周冠军 他们的名字叫nju_newbiew 进入决赛之后他们的成绩是火速提升 直到稳定在第一名 这又是一支谜一般的队伍 今天小编就来给大家揭开神秘大佬的面纱 三个偶 ...

  4. 【采访】腾讯社交广告高校算法大赛第三周周冠军——到底对不队比赛经验及心得分享

    [采访]腾讯社交广告高校算法大赛第三周周冠军--到底对不队比赛经验及心得分享 经过又一周紧张又激烈的角逐 腾讯社交广告高校算法大赛产生了第三周周冠军 他们的名字叫"到底对不队" 这 ...

  5. 【数据竞赛】2020 Kaggle 10大竞赛方案汇总

    作者: 尘沙黑夜 2020 Kaggle 10大竞赛方案汇总 1  2020kaggle精选10大赛事汇总 1.1  2019 Data Science Bowl(3493只队伍) 1.2  Tens ...

  6. 架构组件:基于Shard-Jdbc分库分表,数据库扩容方案

    架构组件:基于Shard-Jdbc分库分表,数据库扩容方案 一.数据库扩容 1.业务场景 互联网项目中有很多"数据量大,业务复杂度高,需要分库分表"的业务场景. 这样分层的架构 ( ...

  7. 对“科大讯飞2021丨广告点击率预估挑战赛 Top1方案(附完整代码)_Jack_Yang的博客-CSDN博客”的补充。

    这篇文章的初衷是针对科大讯飞2021丨广告点击率预估挑战赛 Top1方案(附完整代码)_Jack_Yang的博客-CSDN博客进行补充. 博客的信息量很少,对任务背景的介绍也不太对,说实话令人费解.我 ...

  8. 广告点击率预测(kaggle)

    一.项目背景 数据来源:使用的是kaggle的一个竞赛数据,具体官网地址为https://www.kaggle.com/c/avazu-ctr-prediction . 训练和测试数据分别为train ...

  9. Kaggle入门五大步,跟着做就对了

    Kaggle是一个流行的数据科学竞赛平台,这个平台非常庞大,如果你是一个初学者,很可能会不知所措,不知道如何开始成为一个优秀的数据科学家的旅程.都会犹豫不决,这并不奇怪.很多人都会有相似的担心,比如: ...

最新文章

  1. 互联网黄金十年的黄昏——是人工智能的黎明还是裁员的长夜
  2. 微信小程序服务(功能)直达是什么?有什么作用?
  3. iOS - 数据的归档和反归档
  4. BugkuCTF-reverse:入门逆向
  5. linux 运维高级脚本生成器,Linux运维系列,Shell高级脚本自动化编程实战
  6. webRTC——浏览器里的音视频通话 1
  7. android开发之 Gson 解析json数组
  8. 上交AI研究院副院长马利庄:基于大数据的人脸识别技术进展与展望
  9. 实现一个shell程序
  10. java面试题关于servlet_关于Java servlet的面试题目
  11. 02 - i3wm 安装、配置TIM WeChat
  12. Linux中shell脚本详解
  13. 测试山石防火墙 接口中 逆向路由 设置与urpf是否有关
  14. 用U盘给虚拟机装系统——U深度
  15. cpi计算机性能指标,将CPU时间=(CPI指令总数).ppt
  16. 如何去掉网页一直点击出现蓝色背景的效果
  17. mysql多表查询分页面_mysql多表联合查询分点经验给大家
  18. ggplot2_ `scale_xxx()`标度调整
  19. 对话苏宁张桂平 商协社团·万祥军:全国工商联谋民企凝聚力
  20. PS作业-Camera Raw滤镜练习

热门文章

  1. 开源作者痛斥京东重量级项目抄袭
  2. 罗永浩要造智能音箱;苹果承认bug;微软特制AI曝光 | 极客头条
  3. 摩拜免押金;滴滴外卖订单骤降;小米最快本周 IPO | CSDN极客头条
  4. 摩拜不死,已入美团!
  5. 12 个月 vs. 1 个月,你的年终奖是多少?
  6. 华硕win10键盘失灵_Win10 进阶用法汇总
  7. sp烘焙流程_烘焙工作流程图
  8. 什么是Redis缓存雪崩、缓存穿透和缓存击穿
  9. json返回的img图片被原样输出_爬取百度图片,并下载至本地
  10. swift 引用其他类_浅谈swift中闭包修饰符 weak?unowned? 或什么都不用