1024
首发于1024
广告CTR预估中预测点击率的校准

广告CTR预估中预测点击率的校准

在广告CTR预估的过程中,我们需要借助点击和曝光日志来训练模型。但是点击是一个稀有事件,所以点击和曝光日志的量差距往往非常大,能达到1:100甚至1:1000。因此,在训练模型的过程中,我们需要对曝光日志进行采样。在实际操作中我们发现,采用一定的比率随机抽样,使得正负样本比例控制在1:10左右的时候,效果比较好。

但是采用这种策略会产生一个问题,模型训练的结果是有偏的,不符合真实的点击曝光事件的比例。举个例子,比如正负样本比例为1:10,那么训练出来的模型产生的预估CTR会在0.1附近;然而实际中点击和不点击的比例大概在1:100,真实的CTR在0.01左右。

在CTR预估的过程中,我们其实是关心CTR的绝对值的大小的。因为在RTB竞价的过程中,排序是基于CPM的:

\hat{CPM}=\hat{CTR}\times CPC\times 1000

所以一旦涉及到外部竞价(第三方竞价)的时候,不进行校准会引起较大的问题,具体来说就是CPM高估,系统出价过于激进;如果是基于CPM结算,竞价系统将永远是一个亏损的系统!实际的流量永远值不了这么多钱。


那么如何进行校准呢?

对于最后用逻辑函数(sigmoid)作为激活函数的模型,可以采用如下方式进行校准:

\begin{equation} \begin{split} S(z) &= \frac{1}{1+e^{-z}}\\ \hat{CTR} &= S(\beta)\\ \hat{CTR}' &= S(\beta - ln[(\frac{1-\tau}{\tau})(\frac{\overline{y}}{1-\overline{y}})]) \\ &\approx S(\beta - ln(\frac{\overline{y}}{\tau})) \end{split} \end{equation}\\ \tau(0<\tau\ll1)是未进行负采样时正样本的比例,\overline{y}(0<\overline{y}\ll1)是进行负采样后的正样本的比例

原理介绍,请参考这篇文章:面向稀有事件的 Logistic Regression 模型校准


常见的线性模型(比如LR,FM,FFM等)最后都是用逻辑函数进行激活的,因此都可以采用上述公式进行校准。

使用上述公式进行校准,不会改变CTR的相对关系,所以不会改变模型的AUC。理论上来说,只要不参与外部竞价,就不需要校准;但事实上我们通过线上测试得出的结论是:即便不考虑外部竞价,校准也能带来更好的效果,虽然没有改变CTR的之间的相对关系,但是却改变了CTR分布,校准后的CTR分布方差更小,预测结果整体更加稳定。从曲线也能直观看出,函数取值在0点之前变化更加平缓,0点之后变化更加剧烈,预测值更加不稳定。

Sigmoid函数

对于预测值和真实值之间的偏差有一个叫OE(Observation Over Expectation)的指标,具体公式如下:

OE=\frac{\sum_{i=0}^NI(user click ad i)}{\sum_{i=0}^N\hat{CTR}}

OE越接近于1越好,大于1则代表CTR过于低估小于1则代表高估

编辑于 2018-04-12

文章被以下专栏收录