為什麼需要平滑?
某個物品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
),
(
“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
)
<
epsilon
or
abs
(
last_beta
-
beta
)
<
epsilon
:
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。
如何理解Beta分佈和Dirichlet分佈?-czxttkl-搜狐部落格