广告点击率CTR修正-Wilson CTR

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yz930618/article/details/84635760

CTR(Click-Through-Rate)即点击通过率,指网络广告的点击到达率。CTR是广告推荐系统中,一项重要的衡量算法好坏的指标。

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

由于原始CTR计算方式只考虑了相对值,没有考虑绝对值。即,没有考虑曝光的数值大小,因为,曝光少的情况下,计算出的CTR其实不可靠,样本充足的情况下,才能反应真实情况。

举个例子,有三个广告:

A:点击数   5     曝光数   10

B:点击数   50     曝光数   100

C:点击数   500     曝光数   1000

此三个广告的CTR 都是 0.5 ,但是按照实际表现,从置信的角度分析,应该是C > B > A,因为C的样本数更多,可信度更高。

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

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

p —— 概率,即点击的概率,也就是 CTR

n —— 样本总数,即曝光数

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

Wilson区间的含义就是,就是指在一定置信度下,真实的 CTR 范围是多少。

Wilson CTR修正的源码如下:

double walson_ctr(int num_pv, int num_click)
{
    if (num_pv * num_click == 0 || num_pv < num_click) {
        return 0.f;
    }
    double score = 0.f;
    double z = 1.96f;
    int n = num_pv;
    double p = 1.0f * num_click / num_pv;
    score = (p + z*z/(2.f*n) - z*sqrt((p*(1.0f - p) + z*z /(4.f*n))/n)) / (1.f + z*z/n);
    return score;
}

利用Wilson CTR修正公式计算出的score分数越高,表明广告的表现越好。

猜你喜欢

转载自blog.csdn.net/yz930618/article/details/84635760
今日推荐