CTR问题中的转化率平滑方法

问题描述

对任何转化率预测问题来说,利用某个样本的转化率预测其未来的转化率都是有一定意义的。但实际上,商品样品数量比较大,并非所有商品的展示率或者曝光率都足够多;甚至某些商品基本没有出现,而如果直接预测这些商品的未来转化率为零显得有些武断。类似的情况还有:①两个展示次数分别为10次、1次,转化次数分别为8次、1次的两个商品A、B,我们对A的转化的信心是否比B更低一些呢?②两个展示次数分别为10次、1次,转化次数分别为1次、0次的两个商品C、D,我们对D的转化的信心是否比C更低一些呢?
这里就需要对展示次数和转化次数进行平滑,使转化率的预测更符合常识。

平滑方法

①计算所有商品的平均转化率 rate
②对每一个样本,点击次数 += n_add, 转化次数+= n_add*rate
比如对下表所示的样本,平均转化率为0.32,这里取n_add = 1。
样本0、1平滑之前的CTR为0.8、1,而我们显然对样本0的信心更足一些,因为样本1受随机因素干扰的可能性更大,而样本0的展示次数较多的情况仍然有很高的转化率。平滑之后CTR为0.75、0.66,更符合常识。

样本4、5、6平滑之前的CTR都为0,但是展示次数相差较大,这样预测显然有失公允,平滑之后样本6的转化率预测值为0.16,甚至比样本3的预测值更高。样本3的展示次数较多,但实际转化率很低,样本6虽然没有转化的样本,但是仅展示过1次,这样预测相对平滑前还是可以接受的。

index n_click n_through CTR n_click_smoothed n_through_smoothed CTR_new
0 10 8 0.8 11 8.323529 0.756684
1 1 1 1.0 2 1.323529 0.661765
2 5 1 0.2 6 1.323529 0.220588
3 10 1 0.1 11 1.323529 0.120321
4 5 0 0.0 6 0.323529 0.053922
5 2 0 0.0 3 0.323529 0.107843
6 1 0 0.0 2 0.323529 0.161765

这里的参数n_add的取值较为关键,可能需要根据实际的业务以及数据来判断。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页