本文主要介绍WCE
原始论文:[Youtube] Deep Neural Networks for YouTube Recommendations (Youtube 2016)
WCE
- Weighted Cross Entropy,加权交叉熵,也叫做Weighted LR,Weighted Logistic Regression
- 用于解决回归问题
- 主要是存在大量负样本(值为0)的回归问题
- 比如视频浏览时长问题(点击率就比较低)
- 训练时使用损失函数:
$$
loss = \sum_i w_i y_ilog(p_i) + (1-y_i)log(1-p_i)
$$- 其中 \(p_i = \frac{1}{1+e^{-\theta^{T}\boldsymbol{x}}}\)
- \(w_i\) = 回归值(如观看时长)
- \(y_i\) = 是否为正值(即是否点击,未点击表示观看时长为0,视为负样本)
- 对任意样本,我们真实想要的预估目标是一个视频被点击且观看的概率 \(pred = wp\)
- serving时使用下面的定义来表示回归值:
$$
pred = e^{\theta^{T}\boldsymbol{x}}
$$- 对于原始的CE损失函数,有 \(Odds = \frac{p}{1-p} = e^{\theta^{T}\boldsymbol{x}}\) (补充:Odds表示样本为正的概率除以样本为负的概率, \(log(Odds) = \theta^{T}\boldsymbol{x}\) )就是logit
- 当前损失函数下,正负样本的比例(或权重)发生了变化,实际上 \(Odds = \frac{p}{1-p} = e^{\theta^{T}\boldsymbol{x}}\) 表示的值不再是原始样本中正负样本的比例,而是带权重的比例,详情看后续的证明
- 可以证明上面的方法会造成预估值有偏
WCE改进
- 改进后的损失函数
$$
loss = \sum_i w_i y_ilog(p_i) +\log(1-p_i)
$$ - 改进前方案是有偏的,修改为上面的损失函数后, \(pred = Odds = e^{\theta^{T}\boldsymbol{x}}\) 是无偏的
- 证明:
- 假设在原始的CE损失函数下,正负样本的比例为A:B,此时有 \(p = \frac{A}{A+B}\) 【这里只是假设训练时遇到特征值完全相同的多个样本(有正有负),模型在遇到serving时遇到同一个特征值样本时,应该预估样本为正的概率为多少?】
- 原始CE下,样本为正的概率就是正样本数/总样本数
- 那么在上述加权的损失函数下,相当于正负样本的比例为 \(wA:B+A\),此时有 \(p’ = \frac{wA}{wA+B+A}\)
- 因为权重被修改了,可以证明样本不变,增加权重等价于权重不变,增加样本(重复采样)
- \(wA:B+A\) 的原因是因为正样本被加了 \(w\) 倍的权重,而负样本则被增加了A个(原始的CE函数中正样本不会累加 \(log(1-p)\) 作为损失,但改进后的WCE会
- 我们真实想要的预估值是: \(pred = wp = w * \frac{A}{A+B}\)
- 可以表述为样本为正的概率乘以样本为正时的值(用户点击视频的概率*用户点击视频后观看的概率)
- 经推导有:
$$
pred = e^{\theta^{T}\boldsymbol{x}} = \frac{p’}{1-p’} = \frac{\frac{wA}{wA+B+A}}{1-\frac{wA}{wA+B+A}} = w * \frac{A}{A+B} = wp
$$- 注意,我们需要的是 \(pred = wp\) 而不是 \(pred = wp’\)
- 因为 \(p’\) 是被我们修改权重后得到的模型输出(均值)
- 真实serving时,模型的输出值 \(p’\) 是不用的,只使用 \(pred = e^{\theta^{T}\boldsymbol{x}}\) 就可以了
- 其他:
- 对于原始CE,有:
$$
pred = e^{\theta^{T}\boldsymbol{x}} = \frac{p}{1-p} = \frac{\frac{A}{A+B}}{1-\frac{A}{A+B}} = \frac{A}{B} = \frac{p}{1-p}
$$ - 对于YouTube的WCE,有:
$$
pred = e^{\theta^{T}\boldsymbol{x}} = \frac{p’’}{1-p’’} = \frac{\frac{wA}{wA+B}}{1-\frac{wA}{wA+B}} = w * \frac{A}{B} \approx w * \frac{A}{A+B} = wp
$$- 约等于符号成立的前提是正样本占比特别少 ,此时 \(\frac{A}{B} \approx \frac{A}{A+B}\)
- 也就是说,在正样本占比特别少时,使用YouTube的WCE也是没问题的,但是为了保证无偏,建议使用改进后的WCE
- 对于原始CE,有:
- 注意,我们需要的是 \(pred = wp\) 而不是 \(pred = wp’\)
- 假设在原始的CE损失函数下,正负样本的比例为A:B,此时有 \(p = \frac{A}{A+B}\) 【这里只是假设训练时遇到特征值完全相同的多个样本(有正有负),模型在遇到serving时遇到同一个特征值样本时,应该预估样本为正的概率为多少?】
扩展问题
- 在面对回归问题是,WCE相对MSE真的有提升吗?
其他
- WCE也可以用于分类问题中,目的是让模型更关注某些特殊样本