Click-Through Rate Estimation for Rare Events in Online Advertising
-
問題描述
互聯網廣告有多種形式,包括展示廣告、競價排名、上下文廣告。對於按點擊付費的廣告,一個很重要的指標就是廣告點擊率(用戶點擊的次數 Click / 展示的次數 Impression)。本文主要討論的是上下文廣告的點擊率預估問題。即,給定一個網頁 page 和一個廣告 ad(page/ad pair),我們來預估其點擊率。
-
主要挑戰
對於低頻事件的 CTR 預估的結果存在很大的方差。主要包括兩種情況
- 展示次數很少(few),但出現了一次點擊
- 展示次數很多(thousands of Inpression),但沒有點擊
-
處理問題的前提條件
我們認為這些罕見事件之間並非相互獨立,相反,事件之間存在一定的相關性來對預估的結果進行調節。
-
數據分層。
對於出版商來說,頁面可能是分層的,比如 頁面1、頁面2、頁面3 均屬於科技板塊下,頁面之間存在共同的主題。對於廣告主來說,廣告也可能是分層的。比如一個廣告主有一個賬戶,一個賬戶下有多個推廣計划,一個推廣計划下存在多個廣告。 -
數據連續性
大多數事件的數據是隨時間收集的,而廣告活動是在一段時間內進行的。時間久遠的數據對預測的價值可能不如近期的數據。
-
-
解決方法
對於:(頁面/廣告)對,已知對應的展示 \(I\) 和點擊 \(C\)
- 存在一個賬戶下的 \(N\) 個廣告 \((a_1, a_2, ..., a_N)\) 和一個頁面 \(p\),預估 \((p, a_i)\), for \(i = 1, 2, ..., N\)。已知 \((I_1, I_2, ..., I_N)\) 和 \((C_1, C_2, ..., C_N)\)。假設該賬戶下的所有廣告在該頁面下的隱含的點擊率 \(r_i\) 均服從同一先驗分布 \(Beta(\alpha, \beta)\)。對於每一個廣告的點擊次數,均服從二項分布 \(Binomial(I_i,r_i)\)。我們使用 MLE 來估計參數 \(\alpha\) 和 \(\beta\)。
\[p(C_1, C_2, ..., C_N | I_1, I_2, ..., I_N, \alpha, \beta) = \prod_{i=1}^{N} p(C_i | I_i, \alpha, \beta) = \prod_{i=1}^{N} \int_{r_i} p(C_i | I_i, r_i) p(r_i | \alpha, \beta) d r_i \]使用不動點迭代計算 \(\hat{\alpha}\) 和 \(\hat{\beta}\)。最后,每個 \((p, a_i)\) 的后驗估計為
\[\hat{r_i} = (C_i + \hat{\alpha}) / (I_i + \hat{\alpha} + \hat{\beta}) \]- 對於 \((a, p)\),已知連續 \(M\) 天的展示次數 \((I_1, I_2, ..., I_M)\) 和點擊次數 \((C_1, C_2, ..., C_M)\),我們評估第 \(M\) 天的點擊率。
\[\hat{C}_1 = C_1, \hat{C_i} = \gamma C_i + (1 - \gamma) \hat{C}_{i-1} \]\(I_i\) 同理。超參數 \(0 < \gamma < 1\)。
\[\hat{r} = \hat{C}_M / \hat{I}_M \]- 組合
在事件數據的指數平滑(時序)之后,利用數據層次來進一步減輕稀疏性問題。