Netflix推荐算法,让每个人看到不一样的电影海报

Posted AI前线

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Netflix推荐算法,让每个人看到不一样的电影海报相关的知识,希望对你有一定的参考价值。

作者|Ashok Chandrashekar 等
译者|Debra
编辑|Emily


AI 前线导读: 不久前,Netflix 推出交错测试个性化推荐算法,计算速度提高 100 倍秒杀 A/B 测试的消息引起了不小的轰动。而仅一周后,这家视频网站宣布了他们利用情境 bandits 推荐算法,实现了视频配图的个性化处理。

更多干货内容请关注微信公众号“AI 前线”,(ID:ai-front)


多年来,Netflix 个性化推荐系统的主要目标,是为用户在合适的时间推荐合适的视频。Nteflix 网站上每个分类页面下有成千上万部影片,用户账号达数十亿,为每个用户推荐最合适的视频是头等要事。但推荐系统能做到的不仅是这些。怎样让用户对你推荐的视频感兴趣?怎样让一个陌生的视频激起用户的兴趣?什么样的视频值得关注?回答这些问题对于帮助用户发现好的内容至关重要,特别是对于不熟悉的视频。

用来描述视频的配图或图像,是可以轻松地解决这个问题的方法之一。如果一张配图对用户有足够的吸引力,比如用户熟悉的演员、让人肾上腺激素飙升的汽车追逐场面,或者一部电影或电视节目精髓的戏剧性场景等信息(一张图片胜过千言万语),就会诱惑用户点开视频。这是 Netflix 与传统媒体产品不同的一点:我们的产品可能超过一亿种,为每个用户提供个性化推荐和个性化的视觉效果。

Netflix推荐算法,让每个人看到不一样的电影海报

(没有配图的 Netflix 主页)

之前,我们讨论过如何做到为所有会员的视频匹配最合适的图片。通过多臂老虎机算法,我们可以为视频找到最合适的配图,以《怪奇物语》为例,这部影片获得了最高用户播放率。但是,鉴于用户的品味和偏好存在巨大差异,如果我们能够找到每个用户偏好的点,并在配图中能呈现出他们最感兴趣的东西,效果不是更好吗?

Netflix推荐算法,让每个人看到不一样的电影海报

(为《怪奇物语》设计的配图,不同的图像涵盖了节目中的不同主题)

我们探讨一下配图个性化在哪些场景下具有重要意义。例如,每个用户有不同的观看历史,下图左是三个用户过去看过的视频,箭头右侧是我们为会员推荐的颇受欢迎的电影。

我们为电影《心灵捕手》设计个性化配图的根据是每个用户对不同类型和主题的偏好。对于看过许多浪漫爱情电影的人,如果他的推荐图片中包含马特·达蒙(Matt Damon)和米妮·司各德(Minnie Driver)的信息,可能他会对《心灵捕手》感兴趣,而如果是对于看过很多喜剧片的用户,我们在推荐图中包含知名喜剧演员罗宾·威廉斯(Robin Williams)的信息,吸引他的几率可能更大。

Netflix推荐算法,让每个人看到不一样的电影海报

另外,个性化配图对喜欢不同演员的用户会产生什么影响呢?以《低俗小说》为例,一位观看过很多乌玛·瑟曼(Uma Thurman)出演电影的用户可能会对包含乌玛(Uma)信息的图片反应更为积极。同理,John Travolta 的粉丝更可能因为图像中包含 John 而被这部影片吸引。

Netflix推荐算法,让每个人看到不一样的电影海报

当然,并不是所有的配图个性化场景都是这么明了的。所以我们并没有穷举这些规则,而是依靠数据来告诉我们应该使用什么图片。总体而言,通过配图个性化处理,我们可以帮助提高每个用户的体验。

克服重重挑战

Netflix 还通过算法对网站做了很多个性化处理,以提高会员体验,包括主页列表选择、列表的标题、展示的图片、发送的消息等等。对于我们来说,每一个方面的个性化处理都是独特的挑战,个性化配图也不例外。其中,图像个性化处理的挑战之一,是每个位置视频的配图只能有一张。相比之下,典型的推荐设置可以向会员提供多个选择,之后我们可以从会员的选择中了解他们的偏好。这意味着图像选择是一个在闭环中操作的鸡与鸡蛋问题:会员选择播放哪个视频的根据只有图片。这就导致一个问题:当我们推出个性化图片时,会不会影响成员播放(或不播放)视频,以及什么情况下是不管我们放了哪张图片,用户仍会播放视频(或不播放)。因此,个性化配图推荐应该结合传统方法与算法才能奏效。当然,为了正确学习配图个性化,我们需要收集大量的数据,来找到能表明哪个配图对于用户更合适的信息。

另一个挑战,是要理解配图变化所产生的影响,是否会降低视频的可识别性,让视频在视觉上难以重新找到?例如,会员之前感兴趣但至今还没有注意到的视频,或者,配图改变是否会让用户改变想法。如果我们找到更好的图片呈现给会员并不断更换图片,会让会员感到迷惑。另外,改变图像也会引起归因问题,因为我们不清楚究竟是哪张图像引起了会员对视频的兴趣。

接下来,是要理解配图如何与同一个页面或者阶段选择的其他配图进行合理关联。也许主角的大胆特写非常适用于页面上的视频配图,因为与其他作品相比,它显得非常突出。但是,如果整个页面的配图都是这一类型,那么它的效果反而会大打折扣。因此,孤立地看每一幅图片可能还不够,我们需要思考如何在整个页面使用多样化的图像。配图的效果可能还取决于图片之外其他的因素(例如简介、预告片等)。所以,我们的图片选择应该多样化,让每个视频之间都能形成互补。

为了实现有效的个性化,我们还需要为每个视频提供优质的作品库。这意味着我们需要多个库存,并且每个库存的图片都是非常有吸引力、信息丰富且与视频契合,但要避免那种“标题诱饵”式的图片。视频的图像集也需要足够多样化,以涵盖对内容的不同角度感兴趣的广大潜在观众。毕竟,一张配图的信息量取决于看到它的个体。因此,我们的配图不仅需要突出视频中的不同主题,还要突出不同的美学。

最后,是大规模个性化配图面临的工程挑战。由于我们的会员体验是视觉化的,包含大量的图像,因此,系统在峰值时需要每秒处理超过 2000 万个低延迟请求。这个系统必须足够强大,因为用户界面不能正确渲染图稿,用户体验会显著下降。而且,个性化算法还需要在视频上传时做出快速响应,这意味着要在冷启动的情况下快速学习个性化。启动后,该算法必须不断进行调试,因为配图的效果可能会随着时间的推移而变化,视频的生命周期不断演变,而且会员的品味也在不断变化。

情境 bandits 推荐个性化配图

Netflix 的大部分推荐引擎都采用机器学习算法。首先,我们会收集一批关于会员如何使用服务的数据,然后在这批数据上运行一个新的机器学习算法。接下来,我们对这种算法在现有生产系统上进行 A / B 测试。通过在随机子集上进行 A / B 测试,我们了解到新算法是否比现有的生产系统更好。A 组会员代表当前的产品体验,而 B 组代表新算法下的产品体验。如果 B 组中的会员对 Netflix 的参与度更高,那么我们将把这个新算法推广到整个会员群体。不幸的是,这种批处理方式也有缺憾(regret):许多会员长期以来并没有更好的用户体验,如下图所示:


Netflix推荐算法,让每个人看到不一样的电影海报

Netflix推荐算法,让每个人看到不一样的电影海报

为了减小这个缺憾,我们放弃了批处理机器学习,而使用在线机器学习。对于图片个性化,我们使用的在线学习框架是情境 bandits(contextual bandits)。情境 bandits 并不是收集整批的数据,进行学习模型训练,直到 A / B 测试结束,而是可以迅速为每个会员找到最合适的个性化图片。简而言之,情境 bandits 是一类在线学习算法,这种算法可以在学习无偏差模型所需的训练数据成本,和将学习模型应用于每个会员的好处之间进行权衡。我们使用非情境 bandits 进行非个性化图像选择,找到不考虑情境的最佳图像。而对于个性化推荐,每个会员均代表不同的情境,因为我们预计不同的会员会对图像做出不同的反应。

情境 bandits 的一个重要属性,是其是为尽量减小缺憾而设计的。在高层次上,我们通过在学习模型的预测中输入受控随机化来获得情境 bandits 的训练数据。随机化方案的复杂性可以从简单的具有均匀随机性的 epsilon-greedy 公式,到随着模型不确定性而自适应地改变随机化程度的闭环方案。我们将这个过程称为数据探索(data exploration)。进行这样的探索,我们需要记录每个配图选择的随机化信息。这种日志记录让我们可以纠正走偏的选择倾向,从而以稍后所述的不偏颇的方式执行离线模型评估。

由于我们可能不会采用情境 bandits 算法预测的最佳图像,所以数据探索可能会产生成本(或缺憾)。这种随机性对会员体验(以及我们的指标)有什么影响呢?我们有超过一亿的会员,通常情况下,探索带来的缺憾非常小,分摊到庞大的会员基数上,每个会员都会为记录提供一小部分反馈。这使得每个成员的探索成本可以忽略不计,这也是起码选择情境 bandits 改善会员体验的重要因素。如果探索成本很高,那么使用情境 bandits 进行随机化和数据探索就不太合适。根据我们的在线数据探索方案,不管视频是否被播放,我们都会获得一个记录每个(会员、标题、图像)元组的训练数据集。此外,我们可以控制探索,使图像选择不会经常变化,这使得会员对特定图片的参与度更加清晰。

模型训练

在在线学习中,我们训练情境 bandits 模型根据情境为每个会员选择最合适的图片。通常每个视频最多有几十张候选图片,为了训练选择模型,我们为每个会员的图片进行排名来简化问题。简化之后,我们仍然可以找到会员对视频图像的偏好,因为呈献给用户的每个候选图像,有一部分会引起用户的参与,而另一部分则不会。我们可以对这些偏好进行建模和预测,会员享受高质量参与度的概率会相应提高。这样的模型可以是监督式学习,也可以是汤普森抽样(Thompson Sampling)情境 bandits、LinUCB 或贝叶斯方法(Bayesian)。

潜在的信息

在情境 bandits 中,情境通常表示为模型输入提供的特征向量。我们可以使用许多信息作为特征,尤其是会员的许多属性:他们播放的视频、视频类型、会员对特定视频的参与度、国籍、语言偏好、使用设备、时间等。

另外一个重要的考虑因素,是候选池中一些图片优于其他图片。我们观察数据探索中所有图像的总体转换率(take rates),即高质量播放次数除以印象数量。以前做非个性化图像选择时,我们仅根据总体转换率之间的差异来决定为用户批量选择的最佳图像。而在我们新的情境 bandits 个性化模型中,整体转换了仍然是重要的,并且个性化推荐仍会与非个性化图像排名有一定重合。

图像选择

为会员提供合适图像,实际上是一个从与视频匹配的的可用图像池中找到最佳候选图像的选择性问题。模型经过上述训练后,我们用它来对每个情境的图像进行排序,并预测为会员推荐图像会引发播放的概率。我们按这些概率对候选图像集进行排序,并选择出概率最高的图像。

效果评估
离线

在线上部署之前,我们可以使用一种称为“重播”的离线技术 [1] 对情境 bandits 算法进行评估。这种方法让我们可以根据记录的探索数据来回答反事实问题(图 1)。换句话说,如果我们在同等条件下使用不同的算法,在不同情境下在线下会发生什么。

Netflix推荐算法,让每个人看到不一样的电影海报

(图 1:根据记录的数据计算重播率的简单示例。为每个成员分配一个随机图像(第一行),系统记录了视频印象以及用户播放了视频(绿色圆圈)或没有(红色圆圈)。通过匹配随机分配和模型分配重合的部分(黑色方块),计算该子集的分数来计算新模型的重播指数。)

如果我们假设提供的图像是通过新算法选择的,而不是现用的算法,则重播显示出会员对视频的参与度。图 2 显示了与随机选择或非情境 bandits 相比,情境 bandits 如何提高记录中用户的平均参与率。

Netflix推荐算法,让每个人看到不一样的电影海报

(图 2:基于图像探索数据记录中重播率,不同算法选择的图像平均分数(越高越好)。随机(绿色)表示随机选择图像,简单的 Bandit 算法(黄色)选择具有最高分数的图像。情境 bandits 算法(蓝色和粉红色)根据情境为不同的成员选择不同的图像。)

Netflix推荐算法,让每个人看到不一样的电影海报

(图 3:根据用户个人资料进行的情境图像选择示例。Comedy 指主要观看喜剧片的个人资料,Romance 代表看爱情片最多的用户个人资料。情境 bandits 算法为更喜欢喜剧片的会员推荐了带有著名喜剧演员罗宾·威廉姆斯(Robin Williams)形象,同时更为浪漫的情侣接吻图片。)

在线

经过对多种离线模型进行试验之后,我们找到了可以提高重播率的模型,最后进行 A / B 测试,以对个性化情境 bandits 与非个性化 bandits 进行比较。正如我们所料,个性化对核心指标提高起到了重大的作用。我们也看到了线下测量重播率与线上模型之间的合理性关联。在线结果还发现了有趣的现象,例如,在会员之前没有参与的视频,个性化的改善效果更好。这不无理由,因为我们更希望这个算法对用户并不熟悉的视频发挥更大的作用。

结论

现在,我们已经迈出了第一步,在个性化图片推荐和其他服务中采用了这种方法。这改进了用户发现新内容的方法,有史以来,我们不仅对推荐内容进行了个性化,而且对推荐的方式也进行了个性化。但是,这个方法还有很多可以改进的地方,应用的范围也可以进一步扩大,包括通过计算机视觉技术开发能以最快的速度对图像和视频进行个性化处理的算法冷启动等。另一个机会是可以将这种个性化方法扩展到我们使用的其他类型的配图以及其他视频描述语,例如概要、元数据和预告片中。

文章来源:

https://medium.com/netflix-techblog/artwork-personalization-c589f074ad76

今日荐文

论文导读 | 动态神经网络工具包 Dynet




活动推荐

机器学习、深度学习、强化学习、迁移学习,这些你到底了解多少?各种深度学习框架如 TensorFlow、Caffe、MXNet 等又该如何选择?如何将机器学习整合到正在开发的应用中?机器学习的新趋势又是什么?

InfoQ 中国团队为大家梳理了目前机器学习领域的最新动态,并邀请到了来自 Amazon、BAT、360、小米、京东、饿了么等一线 AI 技术专家前来分享他们的机器学习落地实践经验,希望大家能从中获得所需方法论和应用经验,早日年薪百万!

目前大会 8 折倒计时 4 天,欢迎点击「 阅读原文 」了解详情!购票咨询:18510377288(同微信)

以上是关于Netflix推荐算法,让每个人看到不一样的电影海报的主要内容,如果未能解决你的问题,请参考以下文章

基于卷积神经网络CNN的电影推荐系统

推荐算法时代,想看「不感兴趣」的视频有多难?

机器学习----推荐系统之协同过滤算法

适用于 Netflix Android TV 应用程序 (com.netflix.ninja) 的电影 Deeplink

Ruby | 产品求真,拒绝特效,像阿米尔汗的电影一样让人放心

机器学习 | 创建自己的电影推荐系统