在训练点击率预估模型的时候,训练数据中正负样本不均衡是常见的现象,对于这种问题,会对负样本进行采样,然后将采样后的负样本和正样本一起作为训练数据来训练ctr模型。由于负采样的缘故,会导致线上待预测数据分布与离线训练分布有很大差距,线上预估分数往往会高于真实值,所以非常有必要进行校准。
校准过程如下
- 变量定义。
p ′ p^{'} p′已经采样后的预估概率(训练) p p p未经采样的预估概率(测试) N p N_p Np原始正样本数量 N n N_n Nn采样后负样本数量 r r r负样本的采样比例,分数,例如0.1 N n r frac{N_n}{r} rNn采样前负样本数量假设点击预估函数为sigmoid函数(训练)
p ′ = σ ( x ) = 1 1 + e ( − w x ) p^{'} = sigma(x) = frac{1}{1+e(-wx)} p′=σ(x)=1+e(−wx)1
-
正
样
本
概
率
负
样
本
概
率
=
正
样
本
数
负
样
本
数
frac{正样本概率}{负样本概率} = frac{正样本数}{负样本数}
负样本概率正样本概率=负样本数正样本数
p ′ 1 − p ′ = N p N n frac{p^{'}}{1-p^{'}} = frac{N_p}{N_n} 1−p′p′=NnNp
p 1 − p = N p N n r frac{p}{1-p} = frac{N_p}{frac{N_n}{r}} 1−pp=rNnNp
- 根据2中公式可以得到
p 1 − p = p ′ 1 − p ′ ∗ r frac{p}{1-p} = frac{p^{'}}{1-p^{'}} * r 1−pp=1−p′p′∗r
采用的sigmoid预测
1 p ′ = 1 + e − w x = > 1 − p ′ p ′ = e − w x = > l n ( 1 − p ′ p ′ ) = − w x frac{1}{p^{'}} = 1 + e^{-wx} => frac{1-p^{'}}{p^{'}} = e^{-wx} => ln(frac{1-p^{'}}{p^{'}}) = -wx p′1=1+e−wx=>p′1−p′=e−wx=>ln(p′1−p′)=−wx
可以得到
l n ( p ′ 1 − p ′ ) = w x ln(frac{p^{'}}{1-p^{'}}) = wx ln(1−p′p′)=wx
结合3 、 4
l n ( p 1 − p ) = l n ( p ′ 1 − p ′ ) ∗ l n ( r ) = w x + l n ( r ) ln(frac{p}{1-p}) = ln(frac{p^{'}}{1-p^{'}}) * ln(r) = wx + ln(r) ln(1−pp)=ln(1−p′p′)∗ln(r)=wx+ln(r)
最终得到校准后的预估函数
p = 1 1 + e − ( w x + l n ( r ) ) = 1 1 + 1 r ∗ e − w x p = frac{1}{1 + e^{-(wx + ln(r))}} = frac{1}{1 + frac{1}{r} * e^{-wx}} p=1+e−(wx+ln(r))1=1+r1∗e−wx1



