内容简介:咳,还是要说说这篇文章,虽然讲它的人已经很多了。毕竟作为深度学习模型大规模应用于工业界推荐系统的标志,这篇文章是绕不过去的。原文来自这篇文章的结构依然很经典:由deep candidate generation model(召回阶段)和deep ranking model(排序阶段)组成。YouTube的推荐系统的主要挑战有三:
咳,还是要说说这篇文章,虽然讲它的人已经很多了。毕竟作为深度学习模型大规模应用于工业界推荐系统的标志,这篇文章是绕不过去的。原文来自 Deep Neural Networks for YouTube Recommendations ,是YouTube2016年发表于Recosys的文章。
这篇文章的结构依然很经典:由deep candidate generation model(召回阶段)和deep ranking model(排序阶段)组成。
Overview
YouTube的推荐系统的主要挑战有三:
- Scale:有一些算法在小规模的问题上表现很好,但是难以应用于较大规模的问题,而YouTube拥有世界上最大规模的推荐系统之一,规模化是一个算法能够应用的首要问题。
- 新鲜性(其实我们一般称为内容冷启动):YouTube某种意义上是个短视频公司,和Netflix以及Hulu这样的公司不同,它的网站上随时都有新鲜内容产生,怎么把这些新鲜内容推荐出去是需要考虑的。
- 噪声:implicit feedback和content feature中都有大量的噪声,需要好好利用这些有噪声的数据。
YouTube的模型在Google Brain上训练,它的开源版本即为tensorflow。他们的模型有十亿量级的参数数目,并在千亿级别的数据量上训练。 系统的结构图如下:
可以看到这是一个两阶段的模型。关于other candidate resource的部分我的 上一篇文章中有。
Candidate Generation
在召回阶段,YouTube要从海量数据集中选出数百个召回结果。在使用神经网络之前,YouTube使用的是MF算法。在使用深度学习算法时,YouTube把找回阶段建模为一个分类模型,其目标是根据上下文 ,用户 ,从集合 中找到时刻 最可能被观看的视频 :
其中 代表user和context的embedding, 代表video的embedding。deep learning的任务是从用户观看的历史数据和当前上下文中学习用户的embedding ,并使用softmax选择最有可能被观看的video。模型使用implicit feedback进行训练,用户观看完视频作为正样本。
在实际进行服务时,YouTube并不追求完整的softmax过程,而是使用最近邻算法来选择最有可能的N个结果。
Model Architecture
具体来说,召回阶段的模型的结构如下:
而各层的设定为:Ranking
排序模型的结构和召回模型的结构很像,比较特殊的是它采用的目标函数是watch_minutes_per_impression的函数,而不是ctr的函数。这主要是为了避免click-bait问题。click-bait在中国的语境中应该是标题党,即刻意用标题吸引人而内容乏味的video吸引用户的注意力,导致用户点击之后很快退出。
特征工程的部分我就不在这里讲了,有兴趣的读者可以去看原文,我们主要说一下loss function的问题。 模型的目标是预测impression导致的观看时长,不管这个impression是正例还是负例。正例的原始标签为用户观看视频的时长,文章设计了一个加权逻辑回归函数来解决这个问题。本质上,他们还是以逻辑回归的方法训练模型,但是给所有负样例赋以单位权重,给所有正样例赋以一个观看时间权重。因此,
整个ranking模型的结构如下:
Model Expected Watch Time
咳,这算是本文中最难理解的一部分了,我说我自己的理解,但不一定对,欢迎批评指正:
文章采用watch_minutes_per_impression作为预测目标,但这个目标很难被直接预测,所以作者对模型做了一些修改:
- 所有正样本的权重等于观看时长
- 所有负样本的权重等于一
- 采用加权逻辑斯蒂回归来处理这个问题。加权逻辑斯蒂回归的思想可以去Weighted Logistic Regression Model一文中查阅。这是一种重采样相关的方法。
- 标准的logistic regression中,y的值为[0,1]之间的数,其表达式为 ,而它的odds表达为 。其中,正样本出现的概率为 ,负样本出现的概率为
- 在weighted logistic regression中,这个式子则被替换为: ,即正样本出现的概率和/负样本出现的概率和(其中 代表每个正样本的观看时长, 表示样本总数, 表示正样本的数量)。
- 而per impression的观看时长的期望为 ,即 。其中 即为CTR,由于 的值相对很小,最后的两个约等于才能成立。所以我们最终可以用odds来估计expected watch minutes。
- 因此在serving的时候, 即为watch_minutes_per_impression的估计值。
以上所述就是小编给大家介绍的《YouTube推荐系统(下):Deep Neural Networks for YouTube Recommendations》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 推荐系统评价:什么是好的推荐系统
- 打造工业级推荐系统(二):无处不在的推荐系统
- 打造工业级推荐系统(五):推荐系统冷启动全解析
- 打造工业级推荐系统(六):构建优质的推荐系统服务
- 打造工业级推荐系统(七):怎么评估推荐系统的效果?
- 打造工业级推荐系统(三):推荐系统的工程实现与架构优化
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Cyberwar
Kathleen Hall Jamieson / Oxford University Press / 2018-10-3 / USD 16.96
The question of how Donald Trump won the 2016 election looms over his presidency. In particular, were the 78,000 voters who gave him an Electoral College victory affected by the Russian trolls and hac......一起来看看 《Cyberwar》 这本书的介绍吧!