Netflix 中的插图个性化推荐
作者:Ashok Chandrashekar, Fernando Amat, Justin Basilico and Tony Jebara
编译:ronghuaiyang
英文原文:https://netflixtechblog.com/artwork-personalization-c589f074ad76
导读:在给用户做推荐的时候,推荐什么内容固然非常重要,然而在有些场景下,同样的内容,采取什么方式给用户进行推荐也会影响用户的选择,这篇文章中,Netflix使用不同插图为用户推荐相同的内容,在实际应用中很有借鉴意义。
多年来,Netflix个性化推荐系统的主要目标一直是在正确的时间为每位会员提供正确的内容。Netflix拥有一个涵盖数千种内容的目录和一个跨越一亿多个帐户的多样化的会员基础,推荐适合每个会员的内容是至关重要的。但是推荐的工作并没有到此为止。你为什么要关心我们推荐的特定的内容?对于一个你不熟悉的、会引起你兴趣的新内容,我们能说些什么呢?我们如何让你相信一个内容值得一看?回答这些问题对于帮助我们的会员发现好的内容,尤其是不熟悉的内容是至关重要的。解决这一挑战的方法之一是考虑我们用来描绘内容的插图。如果代表内容的插图包含了一些能吸引你的东西,那么它作为进入内容的入口,可以给你一些为什么内容可能对你有好处的视觉“证据”。这些插图可以突出你认识的演员,捕捉像汽车追逐这样激动人心的时刻,或包含一个戏剧性的场景,传达电影或电视节目的本质。如果我们在你的主页上展示了完美的插图(正如他们所说:一张图片胜过千言万语),那么也许,仅仅是也许,你会尝试一下。这是Netflix区别于传统媒体产品的另一个方面:我们不是只有一个产品,而是有超过1亿个不同的产品,通过使用个性化的推荐和个性化的视觉展示,对每个用户都是不同的。
一个没有插图的Netflix主页,这是历史上我们的推荐算法的浏览页面:
在之前的工作中,我们讨论了对于所有的会员,如何为每个内容找到一个完美的插图。通过多臂老虎机算法,我们可以为一个内容找到最好的插图,比如《怪奇物语》(Stranger Things),它将从我们的会员那里获得最多的播放量。然而,考虑到品味和偏好的巨大差异,如果我们能为我们每个会员找到各自最好的插图,突出内容中与他们特别相关的方面,不是更好吗?
每个插图从我们的个性化算法中获得超过5%的曝光,不同的图像涵盖了广泛的主题,超越了任何单一的图像所能描绘的范围:
作为灵感,让我们探索一下个性化插图有意义的场景。考虑下面的例子,不同的成员有不同的浏览历史。左边是一个成员过去看的三个内容。箭头的右边是我们推荐给会员的一部电影的插图。
让我们考虑尝试个性化的方式来描述电影《心灵捕手》的形象。在这里,我们可以根据会员对不同类型和主题的偏好程度来个性化这个决定。如果我们展示包含马特·达蒙和米妮·德瑞弗的插图,看过很多浪漫电影的人可能会对《心灵捕手》感兴趣,如果我们展示著名喜剧演员罗宾·威廉姆斯的插图,看过很多喜剧的人可能会被吸引到电影中来。
在另一个场景中,让我们想象一下对演员的不同偏好会如何影响电影《低俗小说》的插图的个性化。看过很多Uma Thurman主演的电影的会员,很可能会对含有Uma Thurman的低俗小说中的艺术作品做出积极的回应。与此同时,如果这幅画的主角是John Travolta的话,John Travolta的粉丝们可能对看《低俗小说》更感兴趣。
当然,并不是所有个性化插图的场景都是如此清晰和明显。因此,我们没有列举这些手工派生的规则,而是依赖于数据来告诉我们使用什么信号。总的来说,通过个性化插图,我们帮助每个内容为每个会员提供最好的服务,从而提高我们的会员体验。
挑战
在Netflix,我们拥抱个性化和算法来在许多方面自适应我们的会员的经验,包括我们如何选择主页的每一行,在这些行上如何选择内容,我们显示的图册,我们发送的消息,等等。我们在进行个性化的每一个新方面都有不一样的挑战,个性化我们显示的插图也不例外,并提出了不同的个性化挑战。插图个性化的一个挑战是,在呈现内容的地方,我们“只能”选择一个“单一”的插图来表示我们的一个内容。相比之下,典型的推荐设置允许我们向会员显示多个内容,然后我们可以从会员选择的内容了解他们的偏好。这意味着插图选择是一个在封闭循环中运行的鸡和蛋的问题:如果一个会员播放一个内容,它只能来自我们决定呈现给该成员的插图。我们试图理解的是什么时候放一件特定的插图会影响一个会员播放(或不播放)这个内容,以及什么时候无论我们放什么插图,会员都会或者不会播放。因此,插图个性化需要基于传统的推荐问题和算法协同工作。当然,要正确地学习如何个性化插图,我们需要收集大量的数据,以找到信号,表示某个插图对于一个会员来说,明显是更好的。
另一个挑战是理解我们在会话之间向会员展示内容时改变插图的影响。改变插图是否会降低内容的可识别性,并使再次视觉定位内容变得困难,例如,如果会员以前认为感兴趣,但没有播放过?或者,改变插图本身是否会导致成员重新考虑它?显然,如果我们找到了更好的插图展示给会员,我们可能应该使用它,但持续的变化也会让人们感到困惑。改变插图还会导致一个归属问题,因为用户不清楚是哪张图片引起了用户对内容的兴趣。
接下来,还有一个挑战,即如何理解内容与我们在同一页面或会话中选择的其他插图之间的关系。一个大胆的主要人物的特写,相比于其他插图,会脱颖而出。但是如果每个内容都有一个相似的插图,那么整个页面可能就不那么引人注目了。单独地查看每一个插图可能是不够的,我们需要考虑如何跨页面和跨会话选择不同的插图集。除了其他内容的插图,内容插图的有效性可能取决于我们为该内容展示的其他类型的信息和资源(例如概要、预告片等)。因此,我们可能需要一个多样化的选择,其中每一样都可以互补的突出内容的某个方面,这样,对会员来说,总有一样时可以吸引他的。
为了实现有效的个性化,我们还需要为每个内容创建一个好的插图库。这就意味着我们需要一些内容,每个内容都要吸引人、信息丰富、有代表性,以避免“点击诱饵”。内容的图片集还需要足够多样化,以涵盖对内容的不同方面感兴趣的广泛的潜在受众。毕竟,一个插图是否吸引人、能提供多少信息,确实取决于个人的观感。因此,我们需要的插图不仅要突出内容中的不同主题,还要突出不同的美学。我们的艺术家和设计师团队努力创造跨越多个维度的多元化形象。他们还考虑了使用个性化算法,在他们的创作过程中选择产生的插图。
最后,在大规模上个性化插图的工程挑战。挑战之一是我们的会员体验是非常视觉化的,因此包含了大量的图像。因此,为每个会员使用个性化选择意味着在低延迟的情况下需要处理每秒超过2000万个峰值请求。这样的系统必须是健壮的:如果不能在UI中正确呈现插图,就会大大降低用户体验。我们的个性化算法还需要在启动时快速响应,这意味着在冷启动的情况下快速学习个性化。然后,在发布之后,算法必须不断自适应,因为随着内容在其生命周期中的演进和会员品味的演进,插图的有效性可能会随着时间的推移而变化。
Contextual bandits方法
Netflix的大部分推荐引擎都是由机器学习算法驱动的。传统上,我们会收集一批关于我们的会员如何使用该服务的数据。然后我们对这批数据运行一种新的机器学习算法。接下来,我们通过一个A/B测试在当前生产系统上测试这个新算法。A/B测试通过在会员的随机子集上进行试验,帮助我们了解新算法是否优于我们当前的生产系统。A组会员使用当前的生产系统,B组会员使用新的算法。如果B组的会对Netflix的参与度更高,那么我们就会将新算法推广到所有会员。但是,这种批处理方法带来了问题:从长期来看,许多成员并没有从更好的体验中获益。如下图所示。
为了减少这种遗憾,我们放弃了批量机器学习,转而考虑在线机器学习。对于插图个性化,我们使用的特定的在线学习框架是contextual bandits。contextual bandits不是等待收集整批数据,等待学习一个模型,然后等待A/B测试结束,而是快速地为每个会员和上下文找出最佳的个性插图选择。简单地说,contextual bandits是一种在线学习算法,它权衡了持续学习无偏模型所需的收集训练数据的成本,以及将学习的模型应用于每个会员上下文的好处。在我们之前的非个性化图像选择工作中,我们使用了non-contextual bandits,在其中我们发现了获胜的图像,而不管上下文如何。对于个性化,会员就是“上下文”,因为我们期望不同的会员对图像做出不同的响应。
contextual bandits的一个关键特征是,他们的目的是“最小化”遗憾。在高层次上,contextual bandits的训练数据是通过在学习模型的预测中注入控制随机得到的。随机化方案的复杂性可以是不同的,从具有一致随机性的简单的epsilon-greedy公式到自适应地随模型不确定性变化随机化程度的闭环方案。我们通常把这个过程称为“数据探索”。可用于内容的候选插图的数量以及系统将部署的总体规模决定了数据探索策略的选择。有了这样的探索,我们需要记录每个插图选择的随机化信息。这种日志记录允许我们纠正倾斜的选择倾向,从而以一种无偏的方式执行离线模型评估,如后面所述。
在contextual bandits中进行探索通常会有成本(或遗憾),因为我们在会员会话中选择的插图可能没有使用该会话预期的最佳插图。这种随机化对会员体验(以及我们的度量标准)有什么影响?由于拥有超过1亿的会员,探索所带来的遗憾通常是非常小的,并且摊销在我们庞大的会员基础上,每个会员都不经意的为一小部分的类目提供了关于插图的反馈。这使得每个会员的探索成本可以忽略不计,这是在选择contextual bandits来驱动我们的成员体验的关键方面时需要考虑的一个重要因素。如果探索的成本很高,随机化和上下文关联的探索就不太适合。
在我们的在线探索方案下,我们获得一个训练数据集,该数据集记录每个(会员、内容、插图)元组,无论该选择是否导致内容的播放。此外,我们可以控制探索,这样选择的插图就不会经常改变。这给出了一个插图导致会员参与的更清晰的归因。我们还通过观察用户参与的质量来仔细确定每个观察的标签,以避免学习推荐“点击诱饵”型的插图:那些吸引用户开始播放,但最终导致低质量参与的插图。
模型训练
在这个在线学习环境中,我们训练我们的contextual bandit模型,根据每个会员的上下文选择最佳的插图。我们每个内容通常有多达几十个候选插图。为了学习插图选择模型,我们可以考虑通过对会员进行独立的跨内容排序来简化问题。即使有了这种简化,我们仍然可以了解不同内容下的成员插图偏好,因为对于每个候选插图,我们有一些看到插图并参与其中的会员,还有一些看到插图但没有参与的会员。可以对这些偏好进行建模,以预测每个(会员、内容、插图)元组的会员高质量参与的概率。这些可以是有监督的学习模型,也可以是与汤普森抽样、LinUCB或贝叶斯方法相对应的contextual bandit模型,这些方法智能地平衡了最佳预测与数据探索之间的关系。
潜在的信号
在contextual bandits中,上下文通常表示为作为模型输入提供的特征向量。我们可以用很多信号作为这个问题的特征。特别地,我们可以考虑会员的许多属性:他们播放过的内容、内容的类型、会员与特定内容的交互、他们的国家、他们的语言偏好、会员使用的设备、每天的时间和每周的日期。由于我们的算法结合我们的个性化推荐引擎来选择插图,我们也可以根据我们的各种推荐算法对内容的看法来使用信号,而不管用什么插图来表示内容。
一个重要的考虑因素是,在候选插图库中,有些插图的形象天生就比其他好。在我们的数据探索中,我们观察了所有插图的总体“接受率”,即高质量播放的数量除以 曝光的数量。我们之前关于非个性插图选择的工作使用了总体上的接受率的差别来确定为整个人群选择最佳插图。在我们新的上下文个性化模型中,总体的接受率仍然很重要,个性化仍然能够恢复与非个性化模型的排名平均一致的选择。
图像选择
插图对会员的最佳分配是一个选择问题,即从内容的可用插图池中找到最佳候选插图。一旦模型像上面那样训练好了,我们就可以使用它对每个上下文的插图进行排序。该模型预测给定会员上下文中给定插图的播放概率。我们根据这些概率对一组候选图像进行排序,选出概率最高的一组。这就是我们呈现给特定会员的插图。
评估表现
离线
为了在将contextual bandit算法部署到真实会员之前对其进行评估,我们可以使用一种称为replay的离线技术。这种方法允许我们根据记录的探索数据回答反事实问题(图1)。换句话说,如果我们以一种不带偏见的方式使用不同的算法,我们可以在离线情况下比较在不同场景下的历史会话中会发生什么。
图1:从日志数据计算replay指标的简单示例。为每个成员分配一个随机插图(顶行)。系统会记录用户的曝光,以及是否播放了内容(绿色圈)。新模型的replay度量是通过计算随机插图和模型分配的插图是否匹配来得到的。黑色块表示随机分配和模型分配是相同的,并计算该子集的接受率。
Replay可以让我们看到,如果我们通过一种新算法而不是生产中使用的算法来假设呈现图像,那么会员将如何参与我们的内容。对于图像,我们对几个度量指标感兴趣,特别是上面描述的接受率。图2显示了与随机选择或non-contextual相比,contextual bandit方法如何帮助提高整个目录的平均接受率。
图2:基于日志插图浏览数据replay的不同算法的平均插图接受率(越高越好)。随机(绿色)策略随机选择一个插图。简单Bandit算法(黄色)选择取分数最高的插图。Contextual Bandit 算法(蓝色和粉色)使用上下文为不同的会员选择不同的插图。
图3:基于概要文件类型的上下文插图选择示例。“喜剧”指的是主要关注喜剧标题的个人资料。同样地,《罗曼史》主要看浪漫题材的电影。contextual bandit选择著名喜剧演员Robin Williams的照片作为倾向于喜剧的头像,而选择一对接吻的情侣的照片作为倾向于浪漫的头像。
在线
在离线试验了许多不同的模型并找到那些在replay中有显著增加的模型后,我们最终进行了A/B测试,以比较最有前途的个性化contextual bandits与非个性化bandits。正如我们所认为的,个性化在我们的核心指标中起了作用并产生了显著的提升。我们还发现,我们在replay中离线测量的数据与我们在模型中在线测量的数据之间存在合理的相关性。在线结果也产生了一些有趣的见解。例如,在会员之前没有与内容交互的情况下,个性化的改进更大。这是有道理的,因为当内容不那么熟悉时,我们会认为插图更重要。
结论
通过这种方法,我们已经迈出了第一步,为我们的推荐和整个服务个性化选择插图。这使得我们的会员发现新内容的方式有了很大的改进,所以我们把它推广到每个人!这个项目是第一个个性化的例子,不仅关系我们推荐什么,而且关心我们如何是推荐给我们的成员的。但有许多机会可以扩展和改进这一初步的方法。这些机会包括开发算法,通过尽可能快地个性化新插图和新内容来处理冷启动,例如通过使用计算机视觉技术。另一个机会是将这种个性化方法扩展到我们使用的其他类型的信息,以及描述我们的内容的其他证据,如概要、元数据和预告片。还有一个更广泛的问题:帮助艺术家和设计师找到我们应该添加的新插图,使内容更有吸引力和个性化。