Weighted LR

在推荐系统中,我们常常需要用用户的观看时长作为目标来进行建模,那么如何训练一个模型来预估模型的用户的播放时长呢?

很容易想到把播放时长的预估问题作为一个回归问题,但是回归问题没有分类问题这么好预测。那么如何用分类的方法来解决这个问题呢,答案就是使用Weighted LR

先看一下一件事情发生的几率(Odds)的定义(时间发生的概率比上不发生的概率):

Weighted LR

 

 

如果对Odds取自然对数,再让ln(Odds)等于一个线性回归函数,那么就得到了下面的等式:

Weighted LR

其中logit(p/(1-p))就是大名鼎鼎的logit函数,logistics regression又名logit regression,上面的式子就是逻辑回归的由来。我们再做进一步运算,就可以转变成我们熟悉的逻辑回归的形式:

Weighted LR

所以,LR其实就是事情发生的对数几率的回归模型

在这里,我们把观看时常作为样本的权重(负样本权重为1)加入到上面公式中,可以得到:

Weighted LR

 

 

由于在视频推荐场景中,用户打开一个视频的概率p往往是一个很小的值,因此上式可以继续简化:

Weighted LR

这样,加权后的对数几率预测的就是观看时长的期望

 

因此,YouTube采用Weighted LR 这一指数形式预测的就是曝光这个视频时,用户观看这个视频的时长的期望!利用该指标排序后再进行推荐,是完全符合YouTube的推荐场景和以观看时长为优化目标的设定的

 

训练Weighted LR一般来说有两种办法:

    1. 将正样本按照weight做重复sampling,然后输入模型进行训练;
    2. 在训练的梯度下降过程中,通过改变梯度的weight来得到Weighted LR。

 

总结和思考

参考[Youtube] Deep Neural Networks for YouTube Recommendations (Youtube 2016)这篇论文中的图

Weighted LR

 

 可以看到,训练时,还是当成一个二分类问题来训练就可以了

serving时,计算Weighted LR就是观看时常的预估值,完美的把一个回归任务转换成了一个分类任务

 

疑问

1. 正负样本是如何划分的?

 

 

参考资料

https://zhuanlan.zhihu.com/p/61827629

https://www.cnblogs.com/hellojamest/p/11871108.html

 

Weighted LR

上一篇:面试官: 你平时用过读写锁吗?


下一篇:在node中使用express框架