稀有事件
下面是两篇对稀有事件处理很有帮助的文章:
广告CTR预估中预测点击率的校准
另一篇转载自vividfree的博客。
-
样本分布不均衡将导致样本量少的分类所包含的特征过少,并很难从中提取规律;即使得到分类模型,也容易产生过度依赖于有限的数据样本而导致过拟合的问题,当模型应用到新的数据上时,模型的准确性和鲁棒性将很差。
-
样本分布不平衡主要在于不同类别间的样本比例差异,以笔者的工作经验看,如果不同分类间的样本量差异达到超过10倍就需要引起警觉并考虑处理该问题,超过20倍就要一定要解决该问题。
下面开始全文描述:
引言
对分类问题的研究大部分是在样本分布均衡的情况下开展的。比如对二分类,一般研究的是正样本和负样本的数量相当(比如各占50%)或者相差不是那么大(比如一类样本占30%,另一类样本占70%)。但在实际应用时,经常会碰到样本倾斜问题,对于二分类而言,就会是某类的样本比例远小于另一类的样本比例。在学术界,一般称样本少的那类为正类,称正类代表的随机事件为稀有事件。稀有事件的例子并不少,比如发生战争的概率,染上某种不常见疾病的概率,磁盘出现故障的概率,网络传输数据丢失的概率等。在互联网领域,搜索业务、个性化推荐业务和广告定向投放业务都会碰到一个正样本比例远小于负样本比例的例子,那就是点击率预估。很多内容或者广告的点击率在万分位到千分位之间,存在点击的内容或者广告是正样本,未被点击的内容或者广告是负样本。比如说某广告的点击率为千分之一,这就是说平均投放出1000次广告,才有1次点击,剩下的都是未点击。
无论在学术界,还是在工业界,Logistic Regression(LR, 逻辑回归)模型[1]是常用的分类模型,被用于各种分类场景和点击率预估问题等,它也是Max Entropy(ME, 最大熵)模型[2],或者说Softmax Regression模型[3],在二分类的一种特例。
用
X
\mathit{X}
X = (
x
0
,
x
1
,
.
.
.
,
x
k
\mathit{x_0,x_1,...,x_k}
x0,x1,...,xk)表示
k
\mathit{k}
k 维样本,用
θ
\mathit{\theta}
θ = (
θ
0
,
θ
1
,
.
.
.
,
θ
k
\mathit{\theta_0,\theta_1,...,\theta_k}
θ0,θ1,...,θk)表示
k
+
1
\mathit{k+1}
k+1 维模型变量,其中
θ
0
\mathit{\theta_0}
θ0 表示截距项,那么 LR 模型的model function如下表示:
f
(
z
)
=
1
1
+
e
−
z
(1)
\mathit{f(z)} = \frac{1}{1+e^{-z}} \tag{1}
f(z)=1+e−z1(1)
z
=
θ
0
+
θ
1
∗
x
1
+
θ
2
∗
x
2
+
.
.
.
+
θ
k
∗
x
k
(2)
\mathit z = \mathit{\theta_0 + \theta_1*x_1+\theta_2*x_2+...+\theta_k*x_k}\tag{2}
z=θ0+θ1∗x1+θ2∗x2+...+θk∗xk(2) 说明:公式
(
1
)
(1)
(1)的学名为logistic function。
通常情况下,准备好标注样本和特征后,经过参数训练,最终会得到机器学习模型,对LR模型而言,得到的是分类超平面。但样本不均衡的情况下,通常的参数训练方法会带来模型估计上的偏差。对LR模型而言,通常的参数训练方法会造成正样本的估计概率低于真实值。论文 [ 4 ] [4] [4]在5.1一节,以及书籍 [ 5 ] [5] [5]在13.5.3一节,对此作了论述。在文献中从只有1个特征且该特征的特征权重大于0的LR模型出发来解释。在均值和方差都未知的情况下,用极大似然估计(Maximum Likelihood Estimator, MLE)估计高斯分布的方差是有偏(bias)但是满足一致性(consistency) [ 6 ] [ 7 ] [6][7] [6][7],MLE估计出的方差的分母是样本数,但方差的无偏估计是样本数减1 [ 8 ] [8] [8]。也就是说,MLE估计出的方差比真实值小。正样本因为样本少使得估计就更不准,而且会使得分界面会比真实的分界面更偏右一些,这样使得正样本的估计概率低于真实值。
稀有事件下LR模型的校准方法
对稀有事件应用通常的LR模型训练方法会造成估计值低于真实值,有2类校准思路:
1.
\quad\quad1.
1. 不走负采样,而直接对普通的LR模型训练出的模型做校准
2.
\quad\quad2.
2. 走负采样,然后做模型校准
当样本量大时,比如在广告定向投放中的点击率预估问题中会遇到数亿的样本量,因为第2种方案要处理的样本量比第1种方案少若干个数量级,自然它的训练效率更高。考虑到在工业界,常见大规模数据下的模型训练,在下文就围绕”负采样 + 模型校准”方案,介绍2种具体的校准方法。
2.1 Prior Correction
“Prior Correction”策略可以理解为基于先验分布的校准。进行负采样后经过模型训练会得到模型参数,因为采样前后正样本的比例发生变化,所以得到的模型是有偏的,而且对正样本的估计概率偏高。需要把正样本比例作为先验信息,对模型参数做校准。使用MLE估计出的模型参数中,估计出的非截距项的参数与真实参数是一致的,不用校准,但对估计出的表示截距项的参数只需按照公式3进行校准,即可得到截距项的一致性估计。
θ
^
0
−
l
n
[
(
1
−
τ
τ
)
(
s
‾
1
−
s
‾
)
]
(3)
\hat{\theta}_0 -ln^{[(\frac{1-\tau}{\tau})(\frac{\overline{s}}{1-\overline{s}})]} \tag{3}
θ^0−ln[(τ1−τ)(1−ss)](3) 说明:
θ
^
0
\hat{\theta}_0
θ^0是进行负采样后的通过LR模型训练出的模型参数。
τ
\tau
τ是未进行负采样时正样本的比例,
s
‾
\overline{s}
s是进行负采样后的正样本的比例。公式
(
3
)
(3)
(3)在论文
[
4
]
[4]
[4]的4.1一节也有论述,并在论文的附录B中有公式推导。
τ \tau τ虽然需要先验知识来确定,但这在一些问题上比较好定,比如在广告定向投放的点击率预估问题中,就可以用统计CTR来近似替代。
“Prior Correction”策略的优点是现有的模型训练工具不用修改,还是可以使用,只不过需要加个对截距项的后处理计算。缺点是如果所建立的模型有偏差,比如少了一些应该有的特征,那这个方法的鲁棒性就不如下文将介绍的Weighting策略。该方法在Facebook的广告定向投放业务中有应用[9],并做了一定简化,因为广告点击率在百分位甚至更低,
τ
\tau
τ和
s
‾
\overline{s}
s都很小,所以
1
−
τ
1
−
s
‾
\frac{1-\tau}{1-\overline{s}}
1−s1−τ可以近似认为等于1。加上这个近似,从而得到公式
(
4
)
(4)
(4)。在Facebook其实用的正是公式
(
4
)
[
9
]
(4)[9]
(4)[9]:
θ
^
0
−
l
n
(
s
‾
τ
)
(4)
\hat{\theta}_0-ln(\frac{\overline{s}}{\tau})\tag{4}
θ^0−ln(τs)(4) 公式
(
4
)
(4)
(4)其实与Facebook在论文
[
9
]
[9]
[9]的6.3一节的式子是等价的。强调一下,是等价,而不是近似。 下面做简单证明,记校准前的预测概率为
p
p
p,校准后的预测概率为
q
q
q,那么根据公式
(
4
)
(4)
(4)有
(
5
)
(5)
(5)成立。
q
=
1
1
+
e
−
x
i
θ
+
l
n
(
s
‾
τ
)
=
1
1
+
e
−
x
i
θ
∗
s
‾
τ
(5)
q = \frac{1}{1+e^{-x_i\theta+ln{(\frac{\overline{s}}{\tau})}}} = \frac{1}{1+e^{-x_i\theta}*\frac{\overline{s}}{\tau}}\tag{5}
q=1+e−xiθ+ln(τs)1=1+e−xiθ∗τs1(5)
容易知道
e
−
x
i
θ
=
1
−
p
p
e^{-x_i\theta}=\frac{1-p}{p}
e−xiθ=p1−p,所以式子
(
5
)
(5)
(5)可以化简为
q
=
1
1
+
(
(
1
−
p
)
p
∗
s
‾
τ
)
=
p
p
+
(
1
−
p
)
∗
s
‾
τ
(6)
q = \frac{1}{1+(\frac{(1-p)}{p}*\frac{\overline{s}}{\tau})} = \frac{p}{p+(1-p)*\frac{\overline{s}}{\tau}}\tag{6}
q=1+(p(1−p)∗τs)1=p+(1−p)∗τsp(6) 论文里
w
w
w表示采样率,所以等式
1
w
=
s
‾
τ
\frac{1}{w}=\frac{\overline{s}}{\tau}
w1=τs成立,代入上式即可得到Facebook在论文
[
9
]
[9]
[9]的校准公式。
不过公式 ( 4 ) (4) (4)是离线算好的校准后的截距项,就不用实时计算校准,能减少实时计算量。
2.2 Weighting
相比”Prior Correction”策略,Weighting策略应该更容易理解。在进行负样本采样后,模型训练前,对正样本、负样本赋以不同的样本权重。在文章 [ 4 ] [4] [4]给出的样本权重是这样的,正样本的权重为 τ s ‾ \frac{\tau}{\overline{s}} sτ,负样本的权重为 1 − τ 1 − s ‾ \frac{1-\tau}{1-\overline{s}} 1−s1−τ。因为 τ \tau τ和 s ‾ \overline{s} s都很小,所以 1 − τ 1 − s ‾ \frac{1-\tau}{1-\overline{s}} 1−s1−τ会近似等于1,权重的配置就可以调整为正样本的权重为1,负样本的权重为 s ‾ τ \frac{\overline{s}}{\tau} τs。这个正是Google在文章 [ 10 ] [10] [10]所用的策略。
当建立的模型本身有偏差时,比如少了一些该有的特征,这种方法的鲁棒性要好于”Prior Correction”策略。另外,一些实验显示在应用FTRL算法的基础上,使用Weighting的策略并不好,可能的原因在于在线学习算法需要样本随机打散,但对于Weighting策略,样本权重在一定程度上阻碍了样本的随机性。
2.3 场景适用
在数据化运营过程中,以下场景会经常产生样本分布不均衡的问题:
- 异常检测场景。大多数企业中的异常个案都是少量的,比如恶意刷单、黄牛订单、信用卡欺诈、电力窃电、设备故障等,这些数据样本所占的比例通常是整体样本中很少的一部分,以信用卡欺诈为例,刷实体信用卡的欺诈比例一般都在0.1%以内。
- 客户流失场景。大型企业的流失客户相对于整体客户通常是少量的,尤其对于具有垄断地位的行业巨擘,例如电信、石油、网络运营商等更是如此。
- 罕见事件的分析。罕见事件与异常检测类似,都属于发生个案较少;但不同点在于异常检测通常都有是预先定义好的规则和逻辑,并且大多数异常事件都对会企业运营造成负面影响,因此针对异常事件的检测和预防非常重要;但罕见事件则无法预判,并且也没有明显的积极和消极影响倾向。例如由于某网络大V无意中转发了企业的一条趣味广告导致用户流量明显提升便属于此类。
- 发生频率低的事件。这种事件是预期或计划性事件,但是发生频率非常低。例如每年1次的双11盛会一般都会产生较高的销售额,但放到全年来看这一天的销售额占比很可能只有1%不到,尤其对于很少参与活动的公司而言,这种情况更加明显。这种属于典型的低频事件。广告点击也属于该类别。
其他
论文[4]的附录B还推导给出了多类别的校准公式,这个就可以用于Softmax Regression等模型中。
参考文献
[1] Logistic Regression (来自Wikipedia)
[2] Max Entropy (来自Wikipedia)
[3] Softmax Regression 或者 Multinomial Logistic Regression (来自Wikipedia)
[4] Gary King, Langche Zeng. Logistic Regression in Rare Events Data. Political Methodology. 2002
[5] 刘鹏, 王超. 计算广告. 2015
[6] Consistent estimator (来自Wikipedia)
[7] What is the difference between a consistent estimator and an unbiased estimator (来自stackexchange)
[8] 极大似然法计算出的高斯分布的方差为什么会产生偏差 (来自知乎)
[9] Xinran He, et al. Practical Lessons from Predicting Clicks on Ads at Facebook. ADKDD2014
[10] H. Brendan McMahan, et al. Ad Click Prediction: a View from the Trenches. KDD2013