推薦算法中點擊率CTR修正方法—威爾遜區間

由於原始CTR計算方式只考慮了相對值,沒有考慮絕對值。即,沒有考慮曝光的數值大小,在曝光少的情況下,計算出的CTR其實不可靠,樣本充足的情況下,才能反應真實情況

舉例:

A:點擊數 5 曝光數 10

B:點擊數 50 曝光數 100

C:點擊數 500 曝光數 1000

此三個廣告的CTR 都是 0.5 ,但是按照實際表現,從置信的角度分析,應該是C > B > A,因爲C的樣本數更多,可信度更高。

爲了衡量樣本數對於 CTR 置信區間的影響,科學家們引入"威爾遜(Wilson)區間"的概念。公式如下

p:ctr
n:樣本總數,即曝光數
z:正態分佈裏的參數

import numpy as np

def walson_ctr(num_click, num_pv, z=1.96):
    p = num_click * 1.0 / num_pv
    if p > 0.9:
        return 0.0
    
    n = num_pv
    
    A = p + z**2 / (2*n)
    B = np.sqrt(p * (1-p) / n + z**2 / (4*(n**2)))
    C = z * B
    
    D = 1 + z**2 / n

    ctr = (A - C) / D
    
    return ctr

結果:
walson_ctr(5,10):0.2365895936154873
walson_ctr(50,100):0.40382982859014716
walson_ctr(500,1000):0.4690690341793595

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章