ctr 平滑_CTR平滑的原理,包懂!!!附代码
為什么需要平滑?
某個物品CTR(click-Through-Rate)定義為“物品被點擊的概率”。CTR是某個物品在其他條件保持不變下自身的屬性。但是概率我們不好確定,能確定的是頻率。根據大數定理,隨著實驗次數的增加,頻率會逐漸穩定到概率附近。所以我們用一般物品被點擊的頻率
來表示它的CTR,即
(公式1)
我們當然希望CTR越大越好,由上面的公式我們可知CTR的大小實際上由兩部分決定。首先是展示的次數,英文里用了impression,直譯為給人留下的印象,我們可以理解為曝光并且被用戶看到,是有效的曝光。其次是被點擊的次數。如果有一件物品a 曝光了1次,并且被點了,那它的CTR就是100%。而另外一件物品b曝光了1000次,被點擊了100次,它的CTR就是10%。那我們能說物品a的CTR比物品b的CTR更高嗎?顯然不能,一次被曝光并且被點擊,這其中包含了很大的不確定性。根據大數定律,在實驗次數不斷增加下,頻率才會穩定在概率附近。顯示CTR等于100%這個數據,只是在一次實驗中得到,它偏離真實CTR的可能性非常高。
那么怎么能獲得更可靠的結論呢?一種顯然的想法是提高物品a的曝光,增大實驗次數,讓頻率更接近概率。但是大多數時候曝光不是你想增加,增加就能增加的。
指數平滑
另外一種樸素的想法是我們假定物品的CTR在一定時間內是不變的,我們可以利用歷史的數據來修正今天的CTR。今天的CTR實際上CTR的觀測值。根據這個思路我們首先想到了指數平滑
(公式2)
可以看出來隨著時間的推移,歷史的信息在很快的衰減。
為什么利用beta分布得到的結果是
beta分布是在0-1之間beta分布的概率密度函數
我們假設某件物品的CTR服從參數為
的beta分布,即有
(公式3)
那么每次曝光可以看成從服從
和
的beta分布里的一次隨機抽樣。顯然被點擊的次數服從參數為
和r的n重伯努利分布,其中
和r都是已知條件
(公式4)
曝光
和點擊率是獨立的,
(公式5)
明確我們的目標是要求在已知曝光
和點擊
下點擊率
的估計,根據貝葉斯公式
(公式6)
其中B表示Beta函數,可見新的點擊率也服從Beta分布,當我們得到
之后,就可以確定點擊率的分布了。
對于參數為
的Beta分布的它的眾數是
,它的平均數是
。所以我們可以拿
或者
來作為平滑之后的CTR.
如何計算
?
假設我們擁有的是時間序列格式的數據,每天點擊數獨立同分布,所以有如下的概率密度函數,根據極大似然估計的原理。我們使下式取到最大值
(公式7)
上式對
求導有
其中
對
迭代求解
import scipy.special as special
def update(clicks,imps,init_alpha,init_beta,epoches,epsilon):
assert len(clicks) == len(imps), print("length not equal")
alpha, beta = init_alpha, init_beta
last_alpha = last_beta = 0
for i in range(epoches):
normalization = sum([special.digamma(imps[i]+alpha+beta) - special.digamma(alpha+beta) for i in range(len(clicks))])
alpha = alpha * (1/normalization) * sum([special.digamma(clicks[i] + alpha)-special.digamma(alpha) for i in range(len(clicks))])
beta = beta * (1/normalization) * sum([special.digamma(imps[i]-clicks[i]+beta)-special.digamma(beta) for i in range(len(clicks))])
if abs(last_alpha - alpha)
break
last_alpha = alpha
last_beta = beta
return alpha,beta
寫在最后
計算
時用到的極大似然函數也可以用我們在推導平滑CTR用到的公式6,最后對
的迭代求求我也沒太搞清楚,有興趣的朋友可以看下第一個參考文獻。
參考文獻
Environmental I S . Click-Through Rate Estimation for Rare Events in Online Advertising[J]. Online Multimedia Advertising Techniques & Technologies, 2011.
總結
以上是生活随笔為你收集整理的ctr 平滑_CTR平滑的原理,包懂!!!附代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 名列前茅!DXOMARK公布小米13 P
- 下一篇: 又一款鸿蒙5G手机曝光!来自于法国品牌W