naive bayes預估展示廣告點擊率

Problem definition

計算廣告的一個重要環節是對廣告click through rate(CTR)的預估, 因爲它直接決定了DSP公司對廣告的出價。本文記載用naive bayes對CTR的預估。

假設收集到了足夠的訓練樣本,每個樣本中的輸入x爲一系列的特徵(廣告位特徵,廣告特徵,用戶特徵等多個維度的交叉),輸出y爲標籤(廣告是否點擊), 我們需要做的是根據樣本構建一個模型,然後當一個新的輸入x'出現時預測概率p(y'=1|x')。

Naive Bayes

根據 Bayes' Theorem:
p(y=1|x) = p(x|y=1) * p(y=1) / p(x)
where p(x) = p(x|y=1) * p(y=1) + p(x|y=0) * p(y=0)
此外,假設特徵之間是獨立的,                                                                                                                                                                         p(x|y=1) = p(x1|y)*p(x2|y)...p(xn|y),其中x1到xn爲n個特徵。                                                                                                                  

對於某個特徵xi而言,p(xi|y=1) = p(xi,y=1)/p(y=1) = count(xi, y=1)/count(y=1),  p(x|y=0) = p(x,y=0)/p(y=0) = count(x, y=0)/count(y=0)   其中count(y=1)爲點擊總數,count(xi, y=1)爲該特徵下的點擊總數。同理count(y=0)爲未點擊總數(曝光-點擊), count(xi, y=0)爲該特徵下的未點擊總數。

根據上述方法,統計出需要的count代入公式即可計算出某個特徵組合下的CTR了。

Laplace Smoothing

naive bayes一個常見問題是預測數據可能會出現訓練數據中沒有特徵,這時該特徵下的點擊count爲0,使得乘法計算後的最終預測結果也爲0。爲解決這一問題,須採用Laplace Smoothing(LM),即爲未出現的特徵添加一些sudo count(默認的點擊或未點擊次數)。在LM下,對於某個特徵xi:
p(xi|y=1) = p(xi,y=1)/p(y=1) = [count(xi, y=1)+n]/[count(yi=1)+kn], k爲特徵xi的class個數,n爲當前特徵class的sudo count(自己設定的變量)。

在文本分類計算word count時,n常取1,即假設新詞出現了一次。而在ctr預估中有所不同,n爲可能的點擊數,可取一個較大的值(如200)。

此外,在CTR預估的情景下,p(x|y=1)和p(x|y=0)的LM取值有所不同且互相關聯。因爲在前者中的sudo count是默認的點擊數而後者中的是默認的未點擊數。二者的加和即爲廣告曝光數。所以如果曝光數爲m,
p(xi|y=1)公式中添加的sudo count爲n, 那麼p(xi|y=0)公式中添加的sudo count應爲m-n。即
p(xi|y=0) = p(xi,y=0)/p(y=0) = [count(xi, y=0)+m-n]/[count(y=0)+k(m-n)],其中k爲特徵xi的class個數。

Summary

當訓練數據量足夠大時,用naive bayes做預測往往可以有不錯的效果,其本質是一個概率統計模型。

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