为了账号安全,请及时绑定邮箱和手机立即绑定

根据样本数进行点击率CTR的修正 - Wilson CTR

标签:
大数据 算法

在广告和推荐系统当中,一个重要的衡量指标就是点击率,也即是CTR(Click Through Rate)。

计算公式:  CTR = 点击数 / 曝光数

也有一种衡量指标是 uvCTR。   uvCTR = 点击uv数 / 曝光uv数。


考虑 CTR = 点击数 / 曝光数  这个公式的指标,只考虑了比例的关系,但没考虑样本数大小。因为样本数少的情况下,这个比例其实是不准确的;而样本数越大,这个比例越准确,越能反映真实情况。

举个例子,有三个广告:

A:点击数   2     曝光数   10

B:点击数   20     曝光数   100

C:点击数   200     曝光数   1000

它们的 CTR 都是 0.2 。但是很明显,从置信度来讲,是 C > B > A。因为C的样本数更多,C 的 0.2 CTR更加反映真实,更加可信。


为了衡量样本数对于 CTR 置信区间的影响,我们引入"威尔逊(Wilson)区间"的概念。公式如下:

https://img1.sycdn.imooc.com//5b5eb0a20001206c03210074.jpg

p —— 概率,在这里指点击的概率,也就是 CTR

n —— 样本总数。在这里指 曝光数

z —— 在正态分布里,均值 + z * 标准差  会有一定的置信度。例如 z 取 1.96,就有 95% 的置信度。


Wilson区间的含义就是,就是指 在一定置信度下, 真实的 CTR 范围是多少。举一个例子,如下面代码所示。计算刚刚如上所述的 A、B、C 三个广告的 Wilson 区间( z取 1.96,也就是说该区间的置信度为 95% )。


from math import sqrt

def confidence(clicks, impressions):
    n = impressions
    if n == 0: return 0
    z = 1.96 #1.96 -> 95% confidence
    phat = float(clicks) / n
    denorm = 1. + (z*z/n)
    enum1 = phat + z*z/(2*n)
    enum2 = z * sqrt(phat*(1-phat)/n + z*z/(4*n*n))
    return (enum1-enum2)/denorm, (enum1+enum2)/denorm

def wilson(clicks, impressions):
    if impressions == 0:
        return 0
    else:
        return confidence(clicks, impressions)

if __name__ == '__main__':
    print wilson(2,10)
    print wilson(20,100)
    print wilson(200,1000)

"""    
--------------------
results:
(0.07048879557839793, 0.4518041980521754)
(0.14384999046998084, 0.27112660859398174)
(0.1805388068716823, 0.22099327100894336)
"""

从结果可以看到

A:点击数   2     曝光数   10             点击率 95% 置信度的置信区间为 (0.07, 0.45)

B:点击数   20     曝光数   100         点击率 95% 置信度的置信区间为 (0.14, 0.27)

C:点击数   200     曝光数   1000     点击率 95% 置信度的置信区间为 (0.18, 0.22)


在实际的应用上面,就会取最低值,作为修正后的 Wilson CTR。也就是 A 的 Wilson CTR 为 0.07,B 的 Wilson CTR 为 0.14,C 的 Wilson CTR 为 0.18。这相当于是给样本数不足的CTR进行一定的衰减降权。


点击查看更多内容
2人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消