CTR校准(预估绝对值有意义时)

在有偏CTR预估中我们抛出了CTR预估有偏的问题,当pCTR的绝对值有意义的时候(比如涉及第三方竞价的广告竞拍),需要用一定的手段对其校准。

而引起估计值失真的情况,不单单是数学原理上的有偏估计带来的,还有采样也会改变样本隐含的概率值非均衡样本采样。

针对这种情况,我们需要对预估值校准。

1、用先验知识矫正。(prior correction)不修改训练过程,直接校准预估结果
a、第一种阐述
在非均衡样本采样中,【根据论文[4]中阐述】用参数推导出了采样后概率Ps 与采样前概率P以及采样率Beta之间的公式。则我们可以通过Ps以及Beta计算出真实概率P
得出如下公式:
(这部分的逻辑在非均衡样本采样已有讨论,详细的假设推导过程在论文[1]中,facebook的论文[2]中也使用了这种手段)

Beta为下采样中选取副样本的概率,Ps是正样本在采样后的真实后验,P是正样本在原数据集中的真实后验

真实概率P与采样后的概率Ps的关系如图:(即采样率越接近0,采样后拟合出的Ps对真实值有越大的高估)
y轴为P,x轴为Ps,红色为beta=1,绿色beta=0.5,蓝色beta=0.2



b、第二种阐述
在论文[1]中的4.1有阐述,intution的做法是对截距项进行修正。
在采样的MLE中,Beta1为一致性估计,不需要校准,而Beta0为非一致性估计,需要按照如下公式校准为一致性估计:
tao为真实样本中的正样本比例,yhat为样本中正样本的比例

在这里,由于tao和yhat一般都比较小。我们可以将其近似为
近似的矫正参数

在这个近似下,yhat/tao跟方法a中的beta参数是等价的。
我们将这个近似带入sigmoid公式中求解,可以得到与a相同的结果。


所以实际上a,b两个论文提供的结论在操作中是等价的!只是阐述的视角不同
另外,这个方法的主要问题是,如果模型is misspecified,Beta0和Beta1其实都不够robust。

2、修改训练过程,通过loss的weight来校准
更改正负样本的权重,权重直接影响loss,以及gradient
正样本权重为1,负样本权重为1/fraction,fraction为负样本采样的比例(采样率肯定是小于1的,所以负样本的权重大于1)
通过增加权重来弥补采样带来的影响,在实际训练中,可以使采样后的数据集合的loss与真实数据集loss保持线性关系。
(这种方式在谷歌的论文中有所使用[3])(论文[4]中也有论述)

3、不修改训练过程,通过对预估pCtr与真实realCtr关系的建模来校准
这种方式在谷歌的论文中有所讨论[3],其实思想也很简单,针对我们训练数据中分割多个partition,获取这部分数据的真实点击率,以及预估的点击率。这样作为训练样本,建模pCtr = f(realCtr),比如pCtr= a * pCtr ^ b ,这个公式的求解方式用Poisson Regression即可。也可以用其他任意函数建模,对建模的mapping函数f唯一需要注意的就是,他必须要保证有序(isotonic),比如分段的线性函数,使用Isotonic Regression。
不过如果没有更强的假设条件,这个矫正后以及其feedback loop带来的impact是不可预知的

其他、
评估方法:
a、做一个Q分布线:https://zhuanlan.zhihu.com/p/37436978
b、OE(Observation Over Expectation)

refer:
[1]Logistic Regression in Rare Events Data
[2]Practical Lessons from Predicting Clicks on Ads at Facebook
[3]Ad Click Prediction: a View from the Trenches
[4]When is undersampling effective in unbalanced classification tasks?

你可能感兴趣的:(CTR校准(预估绝对值有意义时))