谷歌Youtube推荐系统及其深度学习技术应用初窥 | 附算法全文下载 | 解读产品

2020-08-04 14:43:42 浏览数 (1)

Youtube2016年及2010年推荐算法全文下载,公众号回复:20180209

背景介绍

推荐系统将成为 Deep Learning 最重要的应用领域之一。落地场景主要在各个行业的精准营销场景,如电商产品推荐、电影音乐推荐、房屋推荐等。本质上解决的是各种信息过载背景下,个人定制化信息需求的有效满足问题,最高级的推荐不是找到你知道的需求(母爱式),而是让你发现自己不知道的喜好(父爱式),进一步拓展你的认知。

主流方法有三种:

1.基于内容:对信息的内容进行建模,比如你看了电影《教父》,会根据内容属性推荐给你《英雄本色》等更多的类似时代类似内容的电影

2.基于用户:按相似人群的兴趣进行建模,比如你的好朋友买了一辆特斯拉,根据你们的口味相似性,系统会把同款车推荐给你购买

3.混合方法:出于实际应用场景的冷启动(先验数据匮乏)、数据稀疏性(数据不完备)等实际困难的考虑,必须集成多种方法达成实际效果

技术趋势:随着信息量的爆炸、建模复杂性提升、推荐响应时间要求的提高,AI技术的应用是必然,谷歌、Netflix、亚马逊等公司均在其产品中广泛应用基于AI的推荐算法。

主要性能指标

准确率:推荐的结果与实际选择的符合程度

召回率:推荐的结果占所有实际选择的比例

比较粗暴的就是点击率,订单贡献率、点击率、留存时间的提升等

谷歌Youtube推荐系统有关工作

谷歌、Netflix、Facebook、亚马逊,国内的今日头条、百度、阿里巴巴、京东等均在推荐系统方面做了大量工作,谷歌当然是其中执牛耳者之一,绕不开的存在,其中Youtube中使用的成功为行业所乐道,让我们来扒一扒里面有什么好东西值得学习借鉴。

实际的YouTube推荐系统在不断的改进。

YouTube推荐的技术带头人Jim McFadden说:“我们知道,人们来YouTube是来找他们想要的东西,但我们还希望,在人们不知道他们想要找什么的时候,同样满足他们的需求。”McFadden从2011年就加入了这家公司。YouTube较精确推荐视频的根源:Google Brain,它是YouTube的母公司Google的人工智能部门,YouTube从2015年开始使用它。Google Brain并不是YouTube第一次尝试使用AI,YouTube此前曾把Google建立的Sibyl系统中的机器学习技术应用到推荐算法中。然而,Google Brain引入了一种无监督学习的技术,它的算法能在不同的输入中寻找到联系,这是软件工程师们从未曾想过的。

把Google Brain整合到YouTube中有一个重要的影响:人们在YouTube上看视频的时间,现在有超过70%都来自YouTube的推荐算法。每一天,YouTube会推荐两亿个不同的视频给用户,涉及语言有76种。和三年前相比,人们在YouTube主页上看视频的总时长增长了20倍

在过去的12年时间里,YouTube已经把自己从一个搜索驱动的网站转变成了一个为自己目的服务的网站。要到达自己的目的地,它需要成百上千种尝试、大量的重新设计,以及在人工智能方面的巨大飞跃。但真正让YouTube提升的还是它朝Feed的方向进化。

YouTube的方向只说明了Feed模式在变得更重要。一种前所未有的视频存储增长,辅以前所未有的个人化定制技术,将会创造出让人难以拒绝的东西。YouTube现在会调查用户有多喜爱它们推荐的视频,长此以往,调查的结果会让YouTube更加智能,从而让更多视频内容被消费。

举个例子,一个Google Brain算法会给一个移动应用用户推荐短小的视频,但给YouTube TV的用户推荐长一些的视频。它猜测,根据平台的不同推荐不同长度的视频会最终提升观看时长,它是正确的。YouTube在2016年实施了190多个类似这样的改变,而今年计划要做出300个改变。YouTube发现小组的产品经理Todd Beaupre说:“现实就是,它是随时间推移累积起来的一大批微小的改进。对每一个改进来说,你都要尝试10件事最终实施一件事。”

个用户的亲身感受:去年某一天,当我正在玩一款名为《冤罪杀机 2》的电子游戏时,我在YouTube上常规搜索了一下,看看这个游戏中一个棘手的部分怎么通关。像往常一样,我找到了回答我这个问题的一个视频。但当我下次打开YouTube的时候,网站却给我推荐了更多更复杂的关于如何玩这个游戏的视频:玩家如何玩这个游戏而不被敌人发现的视频剪辑;玩家用高超的方法杀死每一个敌人的视频剪辑;采访游戏制作者的视频;精彩绝伦的讽刺评论。我只是去YouTube搜索一个问题的答案,它却像我展示了一个全新的宇宙。

后来,我发现自己每天都会访问YouTube好几次。大多数时候,我打开这个网站都没有什么特别的目的,我已经习惯了被动地让网站自动给我推荐点什么我可能喜欢的东西。一月份的时候,我开始痴迷于一个叫Pinegrove的民谣乐队,几个礼拜的时间里,YouTube给我推荐了几乎所有上传到它服务器的这个乐队的现场演出视频。当我春天住进一个新公寓的时候,开始越来越多地做饭,在我搜索了一次如何做意大利面包沙拉之后,YouTube很快就让我认识了它的家庭主厨阵营:Byron Talbott、Serious Eats频道的J. Kenji López-Alt,以及Tasty等等。

2016年和2010年YouTube发表的两篇论文

Deep Neural Networks for YouTube Recommendations,2016

下载地址见本文开头

YouTube 所使用的推荐系统是现在最大规模的、最先进的业界的推荐系统之一。在这篇论文中,我们在较高层面上描述这个系统,并重点关注了深度学习所带来的巨大的性能提升。本论文根据典型的两阶段信息检索的二分法(two-stage information retrieval dichotomy)分为两部分:首先,我们详细描述了一种深度候选生成模型(deep candidate generation model),接着描述了一种分离的深度排名模型(deep ranking model)。通过设计、迭代、维护一个带有巨量面向用户的影响的巨型推荐系统,我们还提供了实用的经验教训和见解。

系统介绍

我们的推荐系统的整体结构如图 1所示。系统由两个神经网络组成:一个用于候选生成,一个用于排名。其中候选生成网络从用户的 YouTube 活动历史中提取事件作为输入,然后从一个大的视频库中检索出一个小数据集(上百个视频)。这些候选被认为通常与用户有很精准的相关性。这个候选生成网络仅通过协同过滤(collaborative filtering)提供广泛的个性化。用户之间的相似性可以通过粗粒度特征(例如视频观看的 ID、搜索查询单词以及人口特征统计)表达。

  一个推荐列表中出现的一些「最好」的推荐需要一种良好的表征,以在具有高召回率(recall)的候选集中区分相对的重要性。排名网络通过使用一个描述视频与用户的特征集合的期望目标函数来给每个视频打分,从而完成排名的任务。根据它们的得分,然后将最高分的视频展现给用户。

  两阶段的推荐方法允许我们从一个很大(数百万)的语料库中进行推荐,与此同时还仍有在设备上出现的少量视频是个性化的吸引用户的内容。此外,这个设计能够和其他源生成的候选进行混合,例如在这一项早期工作[3]中描述的。

  在开发过程中,我们广泛地使用了非网络的指标(准确度、召回率、ranking loss)来引导我们的系统的迭代改进。然而,为了最终测定一个算法或模型的效果,我们依靠于通过实时实验进行A/B测试。在一个实时实验中,我们能度量在点击率、观看时间与许多度量用户参与度的指标中不易察觉的变化。这是非常重要的,因为实时A/B测试结果不总是与离线实验有相关性。

 图2:推荐系统架构:候选视频通过「漏斗」状的流程从大量视频中被检索出来并进行排名,然后再将其中一小部分展示给用户。

结论

  我们描述了我们用于推荐 YouTube 视频的深度神经网络架构,划分为两个不同的问题:候选生成与排名。

  我们的深度协同过滤模型能够吸收很多信号并使用深度的层对它们的交互进行建模,其性能优于 YouTube 原来使用的矩阵分解方法。比起科学,选择推荐的代理问题(surrogate problem)更像是一门艺术;而且我们发现通过获取不对称的联合观看行为(co-watch behavior )和预防未来信息的泄露,对未来观看的分类可以在实时评估中表现良好。抑制来自分类器的判别信号也是获得好的结果的关键,否则模型将会对代理问题过拟合,不能很好地转换到主页。

  我们发现使用训练样本的年龄作为输入特征,移除了相对于过去的固有偏差(bias),并允许模型表达受欢迎视频的时间依赖行为。这种改进的离线保持了精确率,同时在A/B测试中显著地增加了最近上传视频的观看时间。

  排名是更经典的机器学习问题,但是我们深度学习方法在性能上超过了之前对观看时间预测的线性与基于树的方法。推荐系统尤其受益于用户过去和事物之间的行为这样专门的特征。深度神经网络需要对类别和连续特征的特殊表征,我们对其分别使用嵌入与分位数标准化(quantile normalization)进行变换。我们发现深度的层可以有效地对数百个特征的非线性交互建模。

  逻辑回归(Logistic regression)根据给训练样本赋予权重进行修改,其中给观看时间正样本,没有观看的是负样本,从而让我们可以学习接近模型预期观看时间的几率。这种方式相比于直接预测点击率,可以在观看时间权重排名评估指标上表现得远远更好。

The YouTube Video Recommendation System, RecSys2010

下载地址见本文开头

目标:

用户访问youtube视频有多种情况:1)直接访问,2)搜索/目标导向的浏览,3)被感兴趣的内容吸引。个性化视频推荐是为了增强最后一种情况。所以其目的是为了帮助用户找到与他们兴趣最相关的高质量的视频。

推荐分类:

top-N recommender

挑战:

视频由用户上传;视频数量庞大;用户与视频的互动短暂且充满噪声(缺乏明确意图信息相对于netflix的视频租赁服务);视频生命周期短。

系统设计:

推荐内容足够新、丰富并且贴近用户最新动作。而且能让用户理解为什么一个视频推荐给他们。

推荐视频集合时有用户个人动作产生,包括观看、收藏、喜欢的视频作为种子视频,并找到扩展视频集合。

从工程角度出发,希望系统的每个部分彼此独立。

输入数据:

1)内容数据-如视频信息数据:标题、描述等等。

2)用户行为数据-分为显式和隐式两类,显式包含用户主动评分、收藏/点赞、订阅;隐式包含用户观看视频过程中的互动,如长观看等。

两类数据都充满噪声,特别是隐式数据可能不完整(在收到长观看上报前用户已关闭浏览器)。

相关视频:

要找到一个视频v_i的相关视频R_i,这里定义“相关”的意思为用户看了种子视频v后喜欢看的视频。寻找相关视频的算法属于规则挖掘或称为共同访问计数。例如:在给定时间段里(如24小时),计数两个视频一同被看的次数,即共同访问计数:c_ij。

本质而言,这个方法会倾向于较不热门的视频,因为分母其影响作用的是待选视频j的播放次数。

然后,基于相关得分r(v_i, v_j)用top-N的方法,对种子视频v_i选择相关视频集合R_i。注意,这里会增加一个最小得分临界。因为有很多视频播放量太少,共同访问次数也很少,无法计算一个可靠的相关集合。

除此以外,还有很多问题需要解决,如描述偏向、噪声观看数据等等。另外额外一些数据也可以被使用,如视频观看的顺序和时间戳等。相关视频可以被看作视频集合的有向图

生成推荐候选:

合并用户行为和相关视频的关联规则。对给定种子视频集合S,为了获得推荐候选,该算法沿相关视频图的边扩展种子视频。对种子视频集合中的v_i,考虑它的相关视频R_i,并求相关视频的合集

排名:

基于信息1)视频质量;2)用户特征;3)多样性,进行排名。

视频质量用来衡量视频被接受的程度,包括:播放量,评分,评论,收藏,分享,以及上传时间等。

用户特征是用户的口味和喜好的量化,如用户的观看历史(其中每个视频的播放量和观看时长)等。

使用线性合并的方法可以对候选视频生成一个列表,因为最终只显示小部分推荐视频,所以要从候选列表中选合适的子集。这里的算法不选择最相关的,而是在相关性和多样性之间优化平衡。因为用户在不同的时间会有多样的兴趣,所以在候选集合里彼此特别相似的视频会被去掉先。一个简单的实现方法是限制来自同一频道的被推荐的(同类里特别相似的)视频数量。更为复杂的方案有主题聚类和内容分析。

用户界面:

所有推荐视频会显示缩略图、标题、上传时间、播放量。Youtube增加了在推荐视频上的解释连接说明被推荐的视频与种子视频的关系。同时,Youtube给予用户选择推荐多少和在什么位置推荐的选项。

执行:

分为三个主要部分:1)数据收集;2)推荐生成;3)推荐服务。

Youtube使用预先计算而非按需计算推荐。好处是在推荐生成的步骤可以访问大量数据,并且在推荐时的延迟很短。不足之处在于推荐生成和推荐服务之间的时延。加速的办法可以是一天里多次更新,并行处理。

原始数据收集上后,会进行有效数据提取,然后按用户维度存储在bigtable。推荐生成基于mapreduce计算,并且处理所有用户/视频图关系。生成的数据相对较小,作为只读集合放入web服务器。获取推荐结果的请求时间基本上取决于网络传输时间。

评价:

使用A/B testing。实时流量会被导入不同组,每个组会曝光一个新特征,如数据或UI。不足之处是合理的控制分组,而且每组要有足够的流量产生统计结果。

主要的衡量指标包括

· CTR

· Long CTR(只计算被观看的部分)

· Session length

· Time until first long watch

· Recommendation coverage

结果:

Youtube的推荐占了总视频点击的60%。表现偏见是衡量结果时需要考虑的因素,如从首页的推荐和在其他位置的推荐结果会有偏颇。为了调整这个,可以观察从浏览页来的CTR,并且比较其他算法生成的视频集合,如a)最多观看;b)最多收藏;c)最高评分等。

在测量21天的结果中,可以看到所提出算法的CTR是最多观看的视频集合的207%。而最多收藏和最高评分都远低于最多观看的。

拓展资源:

  • Google 发表的一篇音乐相关的 deep learning 论文,「Temporal Pooling and Multiscale Learning for Automatic Annotation and Ranking of Music Audio」
  • The YouTube Video Recommendation System, RecSys2010
  • Deep Neural Networks for YouTube Recommendations,2016
  • 《Collective_Intelligence》,中译名《集体智慧编程》
  • 《recommender systems handbook》

参考资料

  • YouTube整合Google Brain推荐算法,视频播放量提升20倍,原作者: Casey Newton,来自: AI前线
  • Google新闻个性化推荐引擎,《推荐系统》
  • 谷歌技术论文:用于YouTube推荐的深度神经网络:https://news.cnblogs.com/n/552980/

0 人点赞