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

作者 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

原文发布于微信公众号 - 量子位(QbitAI)

原文发表时间:2018-09-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏新智元

【经典】机器学习可视化演示

【新智元导读】机器学习应用统计学习技术,自动识别数据集内的模式。这些技术可以用来作出准确性很高的预测。决策树是机器学习作预测的常见方法之一,本文以一个房屋资料数...

4338
来自专栏腾讯大数据的专栏

腾讯数平精准推荐 | OCR技术之检测篇

本文将主要介绍数平精准推荐团队的文本检测技术。

6K12
来自专栏AI科技大本营的专栏

知乎大神周博磊:用“Network Dissection”分析卷积神经网络的可解释性

当地时间 7 月 22 日,备受瞩目的 CVPR 2017 最佳论文在夏威夷会议中心揭晓。本届 CVPR 2017 共有两篇最佳论文(分别被康奈尔和清华团队、以...

5017
来自专栏AI科技大本营的专栏

南开大学提出最新边缘检测与图像分割算法,精度刷新记录(附开源地址)

近日,南开大学媒体计算实验室提出的最新边缘检测和图像过分割(可用于生成超像素)被 IEEE PAMI 录用。研究的第一作者也发微博称:“这是第一个在最广泛使用的...

1801
来自专栏CDA数据分析师

基于R语言的梯度推进算法介绍

简介 通常来说,我们可以从两个方面来提高一个预测模型的准确性:完善特征工程(feature engineering)或是直接使用Boosting算法。通过大量数...

2557
来自专栏大数据挖掘DT机器学习

李航博士:浅谈我对机器学习的理解

李航博士,华为技术有限公司 诺亚方舟实验室 首席科学家 ? 算算时间,从开始到现在,做机器学习算法也将近八个月了。虽然还没有达到融会贯通的地步,但至少在熟悉了算...

4709
来自专栏新智元

GAN如此简单的PyTorch实现,一张脸生成72种表情(附代码)

【新智元导读】随着GAN的发展,单凭一张图像就能自动将面部表情生成动画已不是难事。但近期在Reddit和GitHub热议的新款GANimation,却将此技术提...

2861
来自专栏人工智能头条

集成模型的五个基础问题

2375
来自专栏机器之心

ICML 2018 | 腾讯AI Lab提出误差补偿式量化SGD:显著降低分布式机器学习的通信成本

作者:Jiaxiang Wu、Weidong Huang、Junzhou Huang、Tong Zhang

1422
来自专栏CreateAMind

Sensorimotor Robot Policy Training using RL(ref163篇 90页) 笔记 超长

1434

扫码关注云+社区

领取腾讯云代金券