Skip to content

IJCAI-18 阿里妈妈广告搜索转化率预测(round1 Rank 58)

Notifications You must be signed in to change notification settings

jxk55662009/IJCAI-18

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IJCAI-18 阿里妈妈搜索广告转化率预测

队名:进复赛就开源

成绩:round1 Rank 58/5204,round2 112/5204

   比赛介绍

文件说明

main.py: 主函数,包括特征提取与函数定义。

EDA_visual.py: 数据可视化分析文件

Bayes code: 贝叶斯平滑代码,这个可进行预处理保存为文件,可节省时间。

数据分析

   主要包括数据分布分析,训练数据与测试数据的区别,以及对数据去重,填补空缺值等操作。通过对数据可视化处理,分析出特征与转化率之间的关系,有利于后续对特征的提取。

主要特征

点击次数\个数统计特征:

   原始特征主要包括用户信息,广告商品信息,上下文信息以及店铺信息。根据经验,首先对重要特征统计次数以及两两之间互相组合,主要包括:用户与商品组合,商品与商店组合,用户与商店组合以及它们之间内部的组合。这里主要用到的工具是pandas中的groupby,count,unique,提取它们之间的聚合特征。这些特征只是有了个baseline,不能够大幅提升性能。

时间特征:

   时间特征也是比较重要的特征,除了计算每天,每小时以及每分钟的统计特征外,我们又增加了用户距离最近一次浏览/购买的时间差,距离下一次浏览/购买商品的时间差,用户当天浏览商品的时间顺序特征,历史浏览商品的时间顺序等重要特征。以及用户对同一商品、同一商店,同一类别等信息的时间差,这些对结果提升很大。

滑窗:

   我们统计了前一天,前三天以及历史的用户浏览/购买记录作为特征,包括用户对此商品、商店以及类别的浏览/购买信息。这些特征也都不同程度地提升了性能。

贝叶斯平滑:

   贝叶斯平滑技术不得不说也提升了不少效果,本来以为贝叶斯平滑仅适用于广告点击率,即广告点击/广告投放,这样分子分母差距比较大,可以进行平滑。结果我们对用户的浏览购买比进行平滑,也取得了不错效果。贝叶斯平滑需要估计参数α和β,这个由于迭代次数比较大,所以用了很长时间才能够收敛。我们总共平滑了用户、商品、商店以及商标4个特征,即统计它们的购买比。

离散特征:

   这里我们主要对时间进行了分段处理,以及对性别、年龄以及职业的二值化处理,取得了一定效果。对于商店评分、用户评分等连续特征我们进行了求取平均处理,再结合用户求取统计特征,包括商店对商品的平均销量、平均价格,此商品类别的平均销量平均价格等。

其他重要特征:

   还有一些比较骚但比较重要的特征,例如,用户是否最后一次点击、用户第几次点击、用户这次点击后还点击过多少次,预测商品类别与商品实际类别的相似度,此商品在此类别中是不是最贵的、最便宜的,销量是不是最高的、最低的等。    

模型训练与评估

模型评估:

   起初我们是使用交叉验证进行评估,而且线下和线上基本保持一致,后来由于加入了时序特征,我们将最后一天数据作为验证集。不管初赛还是复赛,基本使用和测试集比较接近的数据验证还是比较靠谱的。尤其是复赛,由于数据分布比较特殊,其实只拿最后一天的数据进行训练和验证就行了,只能说以往没有这方面的经验。

模型训练:

   期间我尝试了LR,GBDT,SVM,XGBOOST,LightGBM,FFM,队友也尝试了stacking,deepFM,GBDT+LR,但效果不是太好,最终从时间和效果考虑选择了XGBOOST和LightGBM。由于线下训练的时候没有用到最后一天的数据,而最后测试提交的时候需要用到最后一天数据,因此这个最佳迭代次数很难确定,我是选择了最优迭代次数*1.1来确定。

总结

   这是头一次花费大量时间和精力来做比赛,由于主要把时间花在了初赛提取特征上,因而也算取得了满意的结果。复赛由于数据庞大,也没有时间时间提取新的特征了,只是简单地试数据,堆模型,前期没有意识到只拿最后一天来做,这也算是个教训吧。这次比赛收获很多,编程语法的训练、特征的提取思路、比赛的处理流程都是非常重要的,一个好的特征提取方式能够节省很多时间。最后,非常感谢队友的鼓励与分享,没有你们我可能没有那么大的动力了,每天的成绩交流心得分享都是持续下去的动力。

About

IJCAI-18 阿里妈妈广告搜索转化率预测(round1 Rank 58)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%