廣告CTR預估中預測點擊率的校準
在廣告CTR預估的過程中,我們需要藉助點擊和曝光日誌來訓練模型。但是點擊是一個稀有事件,所以點擊和曝光日誌的量差距往往非常大,能達到1:100甚至1:1000。因此,在訓練模型的過程中,我們需要對曝光日誌進行採樣。在實際操作中我們發現,採用一定的比率隨機抽樣,使得正負樣本比例控制在1:10左右的時候,效果比較好。
但是採用這種策略會產生一個問題,模型訓練的結果是有偏的,不符合真實的點擊曝光事件的比例。舉個例子,比如正負樣本比例為1:10,那麼訓練出來的模型產生的預估CTR會在0.1附近;然而實際中點擊和不點擊的比例大概在1:100,真實的CTR在0.01左右。
在CTR預估的過程中,我們其實是關心CTR的絕對值的大小的。因為在RTB競價的過程中,排序是基於CPM的:
所以一旦涉及到外部競價(第三方競價)的時候,不進行校準會引起較大的問題,具體來說就是CPM高估,系統出價過於激進;如果是基於CPM結算,競價系統將永遠是一個虧損的系統!實際的流量永遠值不了這麼多錢。
那麼如何進行校準呢?
對於最後用邏輯函數(sigmoid)作為激活函數的模型,可以採用如下方式進行校準:
原理介紹,請參考這篇文章:面向稀有事件的 Logistic Regression 模型校準
常見的線性模型(比如LR,FM,FFM等)最後都是用邏輯函數進行激活的,因此都可以採用上述公式進行校準。
使用上述公式進行校準,不會改變CTR的相對關係,所以不會改變模型的AUC。理論上來說,只要不參與外部競價,就不需要校準;但事實上我們通過線上測試得出的結論是:即便不考慮外部競價,校準也能帶來更好的效果,雖然沒有改變CTR的之間的相對關係,但是卻改變了CTR分布,校準後的CTR分布方差更小,預測結果整體更加穩定。從曲線也能直觀看出,函數取值在0點之前變化更加平緩,0點之後變化更加劇烈,預測值更加不穩定。
對於預測值和真實值之間的偏差有一個叫OE(Observation Over Expectation)的指標,具體公式如下:
OE越接近於1越好,大於1則代表CTR過於低估,小於1則代表高估。
推薦閱讀: