看了下前10名的答辩PPT,学习下广告转换率预测中的方法和特征工程中的经验:
1.利用历史流水
用户最近一次安装App时间差
用户最近一次安装同类App时间差
用户同类别广告浏览统计
用户最近几天安装App统计
用户历史浏览position hash
用户历史浏览App hash
同一个position处用户浏览不同素材个数
……
2.label窗特征
当日数据->
距离上一次和下一次点击广告的时间差
距离当日第一次和最后一次点击广告的时间
当日点击广告的持续时间
短时间内重复点击广告的计数以及次序
3.CVR特征
4.转化率的贝叶斯平滑
由于数据稀疏性的原因,直接观测到的CVR与真实的CVR之间
的误差较大。因此利用贝叶斯平滑对CVR预估进行优化
·对于某广告,C表示回流次数,I表示点击次数
·用平滑转化率r作为特征
ri=Ci+αIi+α+β
参考文献:Click-Through Rate Estimation for Rare Events In Online Adversting
5.使用01串表示用户历史点击
6.均值调整
根据训练样本来推测第31天的转化率大致为多少,然后对已有的预测结果进行调整.(logit逆变化后融合)
final_prediction=f(f−1(x)+b)
f(x) 是sigmoid函数,b值通过二分,逐步使得变换后的均值与目标均值误差小于1e-5
7.数据量过大,可以用流式统计方法,避免整体读入内存中
8.借鉴以前three idiots的方案
9.线上/线下验证集的挑选
先利用后几天的来验证下所用天的label的情况,他这里把25号和30号都去掉了(也有队伍保留了30号的数据,但是删除了转化率突变的app数据)
10.特殊的Leak特征
11.利用xgboost训练出来的决策树,对连续特征分箱
12.数据处理时的经验
特征提取使用Python的numpy、 pandas及Map Reduce
Tips
• 使用shell脚本并行提取特征
• 使用python的multiprocessing库可以加速特征的提取
• 使用numpy.savez及scipy.csr_matrix完成特征文件的持久化
13.定义了app非当天转化率来对数据做清洗
训练数据的末尾几天由于转化时间的滞后性,存在错误标签的样本,越靠近第30天,错误样本的比例越大
14.时间特征
一天24小时分成48个半小时,点击事件发生区间作为特征
15.PNN和NFFM
16.tensorflow的embedding_lookup操作非常耗时,用embedding matrix(NFFM)快?