腾讯社交广告算法大赛经验分享

时间:2023-02-09 20:16:32

大家好,我们的团队是由来自三个不同专业的小伙伴组成,我们的队名是长风破浪会有时,我是雨过天晴,这是我们团队第一次参加类似于kaggle这么大平台的数据挖掘比赛。目前在初赛B阶段我们的排名是101,尽管我们的成绩不是太好,但是我们从5月10号开始看题目,查资料等,看了以前kaggle比赛中关于点击率预估的获奖方案以及官方微信公众平台上发布的baseline和每周周冠军的经验分享获得了一定的经验。下面我就详细介绍一下。

1.数据集构造方面

首先,我们在看过好几遍题目后,去看所给的数据集发现train.csv中正负样本是1:40,这是一个明显的正负样本不均衡的问题,这就提示我门在构建模型的时候是要用哪些数据,常见的方法就是对负样本下采样(down sampling),对正样本上采样(upsampling),尽量使得正负样本均衡。其次,我们发现数据分布在6个.csv文件中,这里需要做的工作就是merge,但真正要把merge做好还是有点小技巧的,需要找对连接的标签和采用的连接方式,我们用了左外连接。

2.特征上的一些方法

在广告点击率和转化率的特征中,特征可以分为三类,一是categorical feature(无序特征),ordinal feature(有序特征), numberical feature(数值特征)。我们队对于特征的处理

1)使用统计频率、转化次数特征、转化率特征代替onehot,因为数据太大,one-hot编码会出现一个很大维数的稀疏矩阵,导致运行很慢以及运行好长时间不出结果。
2)对训练集和测试集中的重复样本构造是否第一次点击,是否中间点击,是否最后点击,第一次和最后一次间隔特征,大佬们所谓的trick也和我们的这一点差不多。
3)大量使用组合特征,主要是用户特征和广告上下文特征。很多成绩在baseline附近的萌新应该是直接使用单特征one-hot编码,基本上没有考虑组合特征以及特征之间的相关性。

3.模型构建
我们队使用的模型是模型xgboost,没有调参。这里还要注意线下线上的一致性,中三大学郭达雅大佬第一次分享的时候就提到了。另外,我们要考虑lightgbm和模型的融合,比如,在kaggle平台上avazu的比赛获奖第二名方案中作者用了random forest, GBDT(gradient boosting decision tree), Online SGD,Factorization machine四种模型,最后把他们按权重进行融合。
最后希望在决赛中小伙伴们们取得更好的成绩。谢谢。