你有没有好奇过,YouTube 到底如何透过深度学习推荐影片

你有没有好奇过,YouTube 到底如何透过深度学习推荐影片

本文经 AI 科技大本营(公众号 ID:rgznai100)授权转载,转载请联繫出处

2016 年 9 月 18 日,在波士顿举办的第 10 届 ACM 推荐系统大会(ACM’s RecSys ’16)上,来自 Google 的一个研究团队公布了 YouTube 推荐系统的深度学习论文:Deep Neural Networks for YouTube Recommendations。

论文网址

论文作者是 Google 的软体工程师Jay Adams 与高级软体工程师 Paul Covington、Embre Sargin,他们 向业界展示了 YouTube 在机器学习推荐算法上的深度神经网络使用情况。 该论文涉及到一些非常技术、非常高级的细节,但它最大的意义是为我们完整描绘了 YouTube 推荐算法的工作原理!!该论文细緻、审慎地描述了 YouTube 检索、筛选并推荐影片时的大量细节。

算法论文解析

YouTube 工程师发布在 ACM 上的算法论文,目标受众显然不是我们这些上传影片的用户。但为了流量,阅读并理解该算法的内容,并让它来为我们服务就显得义不容辞了。接下来就看我们如何从会上传影片用户角度来解析这篇算法论文。

在论文公布之前,我们上一篇分析 YouTube 算法的文章(详见 TO 文章:《  你的孩子被设计了你知道吗?YouTube 演算法如何让孩子沉迷到不可自拔  》),关注的主要是观看时长这一个因素,因为我们只能从自己上传的影片数据中来反推 YouTube 算法的工作原理,这肯定要受限于我们影片的内容和受众。我们之所以了解 YouTube 的算法,是因为我们解决了做影片路上碰到的这个问题:「为什幺我们的这个影片就能成功呢?」为此,我们尽最大努力来分析已有的讯息,但最初的结果并不理想。儘管我 100%支持我们的结论,但我们先前的方法存在两大问题:

    仅用影片指标的一部分来做反推,意味着我们在数据上存在巨大的盲点,毕竟我们无法访问竞争性指标、对话指标与点击率。对于那些基于上传者的指标,YouTube 算法所给的权重非常小。它更关心的是观众以及单个影片的指标。 换句话说,该算法并不关心你所上传的影片,而是关心你和其他人正在看的影片。 但在我们写最初那篇文章的时候,YouTube 或 Google 数年来都没公布过有关该算法的任何讯息。所以,我们只有自己动手。有了 Google 新近公布的这篇论文,我们就可以一窥它推荐机制的究竟,并找出其中的重要指标。希望这能回答一个让我们更为辛酸的问题,「为什幺有些影片能取得成功?」
深度学习是个无底洞

论文简介部分最大的亮点是 YouTube 确实在用深度学习来驱动推荐算法。这种做法不新鲜,但此次确认证实了大家此前的猜测。作者在论文开头是这样说的:

这就意味着,今后人工调整算法、人工权衡这些调整併将其部署上世界最大的影片分享网站的机会将越来越少。而是 由算法即时来读取数据、为影片排名,然后基于这些排名来推荐影片。 所以,当 YouTube 表示他们不知道算法为什幺那样做时,有可能他们确实不知道。

两大神经网络

该论文以算法的基本架构作为开篇,下面是作者的图示:

你有没有好奇过,YouTube 到底如何透过深度学习推荐影片

本质上这就是两个大的过滤器,各自有着不同的输入。作者写道:

这两个过滤器及其输入内容,基本上决定了用户在 YouTubes 上能看到的每一个影片:建议你播放的下一个、推荐给你的影片列表、你所浏览的影片列表……

第一个过滤器是候选生成器。论文中解释,候选是基于用户的 YouTube 活动记录产生的,也就是用户的观看历史与观看时长。候选生成器还会考虑相似用户的浏览记录,这一点被称为协同过滤。相似用户是算法透过影片 ID、搜寻关键词及相关的用户统计讯息决定出来的。

候选生成器的通过率仅为属百分之一, 换言之,如果某个影片能从数百个中脱颖而出成为你的候选影片,它必定是跟你的观看记录有关,同时还有一个跟你相似的用户已经看过它。

第二个是排名过滤器。该论文对排名过滤器进行了大量的深度解析,并列举出不少有趣的因素。作者写道,排名过滤器是这样给影片排名的:

由于观看时长是 YouTube 为用户设定的首要目标,我们只好假定这就是「目标期望函数」的意义。 因此,考虑到各种不同的用户输入,该分数的意义就是某影片能够转化成用户观看时长的程度。但不幸的是,事情没有那幺简单。根据作者透露,该算法还会考虑很多其他的因素。

如何对影片进行排名这一块的数学原理非常複杂。论文既没有详述排名过滤器所用的数百项因素,又没有提及他们是如何加权的。但它列举了其中的三大主要因素:浏览记录、搜寻记录、观看人数,以及包括新鲜程度在内的其他影片元素。

每一秒钟都有大量的影片上传到 YouTube。向用户推荐这些最新上传的新鲜内容,对 YouTube 来说极其重要。我们长期观察的结果是,用户喜欢新鲜的内容,即便有些内容跟他的关联程度并不大。

论文中提到的比较有趣的一点,是算法并不总会受用户所看的上一个影片的影响,除非你的观看记录极其有限。

在论文后面讨论影片封面图和标题的时候,他们提到了点击率的问题:

在这里提出点击率的问题其实并未出乎预料。为了能生成更多观看时间,一个影片必须先让人看到才成,其中最好的办法就是做出一个很讚的缩略图并相出一个很讚的标题。这让很多影片上传者都认为点击率对于影片在算法中的排名极其重要。

但 YouTube 知道点击率是可以人为冲上去的,所以他们也给出了应对之策。他们在论文中是这幺承认的:

起码这一机制还算鼓舞人心,作者接下来写到:

这就说明,如果用户没有点击特定的影片,该算法就不再将其推荐给相似的用户。频道推荐的情况也一样,论文中的证据如下:

此外,该论文还指出,算法在训练时考虑了 YouTube 影片所有的观看方式,包括那些推荐算法触及不到的地方:

最终,这一切又回到了算法所用的观看时间。正如我们在论文开头所看到的,该算法在设计之初就是一个「目标期望函数」,作者总结「我们的目标就是为了预测用户的观看时长」,「我们最终的排名会根据实时 A/B 测试的结果不断调整,它大体上就是一个用于预测用户观看时长的简单函数。 」

这也再一次说明了影片观看时间之于算法的重要性,该算法的目的就是为了 YouTube 网站上能有更多、更长的影片以及更多、更长的用户观看时间。