雷锋网 AI 研习社消息,IJCAI-18 阿里妈妈搜索广告转化预测比赛近日落下帷幕,本次比赛为阿里妈妈与 IJCAI2018、天池平台联合举办,总奖池 37000 美元,共吸引到 5204 支队伍参赛。
此次比赛提供了广告点击相关的用户(user)、广告商品(ad)、检索词(query)、上下文内容(context)、商店(shop)等信息,参赛选手需要在这些条件下预测广告产生购买行为的概率(pCVR),形式化定义为:
pCVR=P(conversion=1 | query, user, ad, context, shop)
主办方希望在考虑到用户行为偏好、商品长尾分布、热点事件营销等一系列因素的前提下,利用海量交易数据准确高效地预测用户购买意向。此次比赛设置了如下两类挑战:
日常的转化率预估
特殊日期的转化率预估
目前,比赛结果已经出炉。雷锋网看到,来自京东尚科,天池代号为「plants」的选手获得冠军,IJCAI-17 冠军团队获得者周耀、郭鹏博以及李智获得季军,浙江工业大学陈波成、中南大学罗宾理和天津大学吴昊组成的「躺分队」获得第三名,作为前三名中唯一一支学生团队,他们的比赛方案也已经出炉。
在方案中,他们主要讨论了异常日期处理问题,主要思路如下:
难点与挑战
这次比赛的难点有二,一是如何在正常流量数据中,找到适合表达促销/突变的特征;二是如何在模型选择上,找到尽快落地于工业界的轻量级框架。
分析数据
训练数据为 8 月 31 日- 9 月 7 日上午,需要预测 9 月 7 日下午的用户点击率,8 月 31 日-9 月 5 日转化率稳定,但 6 日下降,7 日猛增,推测 7 日为大促节日。
对于异常日期处理而言,仅仅考虑前六天的转化率和第七天的高转化率是不太适合的,如何处理第七天的转化率异常是这道题需要解决的一大痛点。
四种训练集划分
针对此问题,他们根据对数据的分析、特征的构建、以及对实际场景的思考,提出了四种训练集划分:
1. 全量统计特征提取第七天特征——all-to-7
2. 全量数据的抽样统计——sample
3. 单独第七天的特征提取——only7
4. 全量数据——all
构造四种训练集划分的目的如下:
1)构造出训练集中的差异性,方便模型融合
2)在每组训练集中,对高维特征进行选择,选择后进行特征分组
特征工程:
首先执行如下三步操作:
上述基础特征分列
去掉取值变化小的列
去掉缺失值过多的列
分析过程如下:
特征工程总览如下:
特征选择
特征选择的方法有如下2点:
1)罗宾理同学在GitHub的开源代码,参照糖尿病精准医疗大赛的特征选择,地址如下:
https://github.com/luoda888/tianchi-diabetes-top12/blob/master/README.md
以及利用贪心、模拟退火算法,构造出多组特征,适用于组内模型融合。
2)利用 Std/Mean 训练集测试集分布一致的思想,进行特征选择,保证线上线下特征的一致性。
模型选择及融合
分组后对不同的模型进行训练,构造组内特征的差异性,模型的差异性 。
他们选择的方法有 Xgboost/Lightgbm/GBDT+LR/Catboost/NN 模型
在 NN 模型里,使用对多个模型求 Average 的方法,使用的模型如下:
DeepFM/DeepFFM (原始 ID 特征放入交叉层) 与 Lightgbm 线下差距 0.0001 (千分点)
AFFM/AFM (对原始 ID 特征加入 Attention) 与 Lightgbm 线下差距 0.00001 (万分点)
FNN/FFNN/NFM (将特征工程后放入网络结构) 与 Lightgbm 线下差距 0.0001 (千分点)
将上述模型按对该组训练集的数据敏感性训练后加权,得到该组 NN 的结果 Ans_nn。每组特征都可以放入上述五个模型中,即组内选择出的特征数 n 乘以组内模型数 m 即为该组模型的数量 = n*m。根据模型间的相关性,分配不同的权重进行加权融合,得到该组的答案 Ans_k。
接下来,在组间训练集中,对每组的 Ans_k 进行加权融合得到 Ans_final,然后利用前六天的上下午,每小时均值的变化趋势,线下预测出线上可能的均值,为 0.036287135,最后对 Ans_final 做 Logit 逆变换。
模型融合框架如下:
对比赛的总结有如下三点:
1)对促销时期应考虑变化特征
2)合理的特征提取框架是致胜之道
3)多模型的融合提升精度较多
方案详情:https://github.com/luoda888/2018-IJCAI-top3
雷锋网 AI 研习社编辑整理。