论文地址:Deep Neural Networks for YouTube Recommendations
这篇论文由YouTube团队发表于2016年,十分经典,所以今天精读一下。
1. INTRODUCTION
YouTube的视频推荐系统规模十分巨大,需要为庞大的用户群在百万级数量的候选视频中提供个性化推荐,主要面临三个挑战:
规模:也许一些推荐算法在小规模数据上效果很好,但并不适用于YouTube庞大的用户群体和视频数量。
新鲜度:YouTube的语料库更新十分频繁,每秒钟有很多的视频被上传,一个好的推荐系统,应该根据新上传的视频和用户的最新行为而动态变化,从Exploration / Exploitation的角度平衡新旧视频。
噪声:由于用户历史行为的稀缺性和其他外部因素,因此难以获得用户真实的满意程度,而只能对有噪声的隐式反馈信号进行建模。此外,数据的很多特征都不是结构化的,算法应该对这些特殊特征具有鲁棒性。
YouTube正转向使用深度学习解决几乎所有问题。
2. SYSTEM OVERVIEW
推荐系统如图所示,由两个神经网络组成,即最流行的召回+排序策略。
召回部分将用户的YouTube历史行为记录作为输入,从大型语料库中检索出部分(数百个)视频。这些候选视频通常与用户密切相关,仅通过协同过滤提供宽泛的个性化,用户之间的相似性通过粗糙的特征来表达,比如观看过的视频id、搜索查询token和人口统计特征。
从候选集中选择一些最佳推荐需要一个精细的表示,来区分候选集的相对重要性(recall指标)。Ranking网络通过使用丰富的视频和用户特性,按照期望的目标函数为每个视频计算分数,将根据视频的分数排名对用户进行推荐。
在开发过程中,使用离线指标(precision, recall, ranking loss等)来指导对系统的迭代改进。使用线上A/B test 最终确定算法的有效性。在线上测量点击率、观看时间和许多其他度量用户参与度的指标的细微变化,这很重要,因为线上A/B test结果并不总是与离线实验相关。
3. CANDIDATE GENERATION
3.1 Recommendation as Classification
在生成候选视频的过程中,在庞大的YouTube语料库中筛选出数百个可能与用户相关的视频。在这一阶段,把问题看作是一个超大规模的多分类问题,即根据用户U和上下文C,预测在t时刻的要观看的视频 在视频语料库V的概率分布问题,
代表 <用户,上下文> embedding, 代表每个候选视频的embedding,深度神经网络的任务就是根据用户的历史行为和上下文学习用户embedding u。
虽然在YouTube上有明确的反馈机制(手指向上/向