天天看点

特征工程-TSA笔记

看了下前10名的答辩PPT,学习下广告转换率预测中的方法和特征工程中的经验:

1.利用历史流水

用户最近一次安装App时间差

用户最近一次安装同类App时间差

用户同类别广告浏览统计

用户最近几天安装App统计

用户历史浏览position hash

用户历史浏览App hash

同一个position处用户浏览不同素材个数

……

2.label窗特征

当日数据->

距离上一次和下一次点击广告的时间差

距离当日第一次和最后一次点击广告的时间

当日点击广告的持续时间

短时间内重复点击广告的计数以及次序

3.CVR特征

特征工程-TSA笔记

4.转化率的贝叶斯平滑

由于数据稀疏性的原因,直接观测到的CVR与真实的CVR之间

的误差较大。因此利用贝叶斯平滑对CVR预估进行优化

·对于某广告,C表示回流次数,I表示点击次数

·用平滑转化率r作为特征

ri=Ci+αIi+α+β

参考文献:Click-Through Rate Estimation for Rare Events In Online Adversting

5.使用01串表示用户历史点击

特征工程-TSA笔记

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数据)

特征工程-TSA笔记

10.特殊的Leak特征

特征工程-TSA笔记

11.利用xgboost训练出来的决策树,对连续特征分箱

特征工程-TSA笔记

12.数据处理时的经验

特征提取使用Python的numpy、 pandas及Map Reduce

Tips

• 使用shell脚本并行提取特征

• 使用python的multiprocessing库可以加速特征的提取

• 使用numpy.savez及scipy.csr_matrix完成特征文件的持久化

13.定义了app非当天转化率来对数据做清洗

训练数据的末尾几天由于转化时间的滞后性,存在错误标签的样本,越靠近第30天,错误样本的比例越大

14.时间特征

一天24小时分成48个半小时,点击事件发生区间作为特征

15.PNN和NFFM

特征工程-TSA笔记
特征工程-TSA笔记

16.tensorflow的embedding_lookup操作非常耗时,用embedding matrix(NFFM)快?