通过数据视角在Disney+的客户体验

2021年5月26日上午11:30(太平洋时间)

下载幻灯片

Disney+已经迅速扩大规模,为数千万客户提供个性化和无缝的体验。这种体验由一个强大的数据平台提供支持,该平台使用Delta lake、Databrickbob体育客户端下载s和AWS技术,每小时吸收、处理和处理数十亿个事件。该平台产生的数据用于多种服务,包括个性化体验的推荐bob体育客户端下载引擎,优化手表体验(包括团体手表),以及防止欺诈和滥用。

在本节课中,您将了解Disney+如何构建这些功能、架构、技术、设计原则以及使其成为可能的技术细节。

在本节中请注意:
Rekha Bachwani, Disney+总监
Martin Zapletal, Disney+总监

成绩单

Martin Zapletal:大家好。谢谢你来参加我们的发布会。我叫Martin Zapletal,是Disney Streaming的工程总监。

Rekha Bachwani:大家好。我叫瑞卡。我是迪士尼流媒体的首席工程师。今天,Martin和我将从数据的角度谈谈我们如何为您优化Disney+的客户体验。
如你所知,迪士尼几年前才开始提供流媒体服务。然而,它已经以非常快的速度增长到超过1亿的用户。此外,在迪士尼流媒体的下面,还有ESPN+、迪士尼等一系列不同的服务,内容涵盖生活电视、体育、按次付费的活动和视频点播。为了共同托管这些异构内容,我们投资构建了一个自助服务平台,包括库、api和工具,而不是仅仅构建管道并以松散耦合的方式引入服务。bob体育客户端下载我们投资的bob体育客户端下载这个平台提供了一个低延迟的解决方案和图像pb级的数据,这进一步推动了下游分析和基于学习的解决方案,我们将在后面的演示中讨论。
让我从我们使用这种方法的几个用例开始。第一个是,我想你们都很熟悉,给你一个个性化的主页,由推荐引擎支持。第二个,可能不那么可见,主要存在于后端,是当用户点击播放时会发生什么,这些请求是如何路由的?
这就引出了如何解决交通路由问题。我们通过优化服务级别指标,比如使用延迟,用户级别特征,比如它们来自的设备,它们的带宽限制是什么,以及CDN路由,哪些内容托管在哪里。
最后,第三个用例与上述两个用例非常不同,即欺诈检测和预防。我们希望在不影响优秀用户的情况下这样做。现在,这三个用例可能听起来像机器学习,它们可以由数据和机器学习驱动。然而,他们有非常不同的特点。因此,在接下来的演示中,我们将重点介绍一些受支持这些异构用例影响的决策。
那么,在支持这些用例方面,我们的主要目标是什么,或者我们在开始构建平台时为我们设定的目标是什么?bob体育客户端下载第一个目标是我们想给你一个个性化的体验,我们想把它扩展到我们所有的用户,不管他们来自地球的哪个部分,以及我们所有不同的内容目录。
第二,随着我们的用户遍布全球,我们的内容也变得越来越多样化,我们希望能够支持即将出现的多种设备,我们希望能够在跨越网络和地理位置时无缝地做到这一点。最后,我们的最终目标,正如我已经说过的,是在我们所有的平台上为你提供无缝的观看体验,不管你来自哪里,用什么设备流媒体,用什么内容流媒体。bob体育客户端下载
在接下来的演示中,我们将重点介绍两个用例。第一个是我已经描述过的流量路由。其次是个性化方面。我们怎么做呢?记住这两个用例和所描述的主要目标,让我们回顾一下我们的方法是什么。
正如我所说,我们的目标是建立一个自助服务平台。bob体育客户端下载我们的赌注是这个平台应该能够大规模地吸收、转换、验证和持久化数据bob体育客户端下载。它通过捕获我们所有相关的交互来实现,无论是用户与我们的服务交互还是后端不同的微服务相互交互。我们希望以一种有意义的方式,以一种对下游分析有用的方式捕捉所有这些信息。
最后,我们想要一个持续迭代和改进平台产品的条款。bob体育客户端下载再说一次,这就是数据出现的地方。所以第二个关键目标,或者说我们对这种方法的第二个赌注是将学习数据和智能嵌入到它的DNA中。所以这意味着我们记录,就像我说的,记录我们有过的大部分互动,我们利用过去的行为和基于这些数据产生的交通模式,来不断地改善体验,提高我们基础设施的效率。我们在所有设备、地理位置和网络限制的范围内再次这样做,我们必须坚持。
现在,我将把它交给Martin,他会给你们一个架构的概述,并深入研究我们的平台。bob体育客户端下载

Martin Zapletal:谢谢,Rekha。所以这是一个非常高的层面,架构以及我们如何看待我们的数据和机器学习生态系统。在左手边,我们有我们的用户和设备,他们是数据生产者,通过这个边缘生态系统发送数据,这个生态系统负责与设备连接,并将数据传输到流数据平台。bob体育客户端下载我们的服务是另一个重要的数据生产者。他们将数据集暴露在流数据平台生态系统中,数据可以被处理或订阅。bob体育客户端下载这些数据也经常被摄取到我们的数据湖中,用于进一步的批处理和分析。
这里的分析和机器学习平台可以利用批处理和流处理来构建机器学习用例。bob体育客户端下载最后,在最底部,我们有我们的实验框架,允许我们建立实验和实验我们的功能。
在整个演讲中,我们将重点关注生态系统的这一部分。我想强调两个主要的概念在接下来的演讲中我们会稍微讨论一下。因此,首先,平台团队构建库,服务,工具,自bob体育客户端下载动化,一个本质上是自助服务的集成和分散的生态系统,用于统一的数据工作。它使组织(通常是其他团队)能够利用他们需要的东西来解决他们的用例,并首先构建他们的数据,以及分析和机器学习解决方案。
第二件事是,由于我们构建生态系统的方式,它允许我们在各个层构建数据解决方案,可能使用不同的技术,通常有不同的slo。因此,团队可以利用批处理和离线分析。他们还可以利用近线和在线用例。因此使用流甚至在他们的服务中使用这些数据用例来处理用户请求和操作用例。
因此,数据生态系统使我们不仅可以构建分析用例,还可以构建实时影响客户体验的操作用例。通常两者兼而有之。因此,分析和操作之间的界限,以及数据和服务之间的界限有时有点模糊,这是故意的。
让我们来谈谈如何在我们的生态系统中实现这一点。这是一个管道示例。它不是我们生态系统中存在的管道,但它足够接近,能够演示这些概念。其次,支持Disney+和类似解决方案的整个生态系统要大得多,有更多的生产者、消费者和数据用户。
所以在一个非常高的水平上,在左边这里,我们有产生数据的设备。在顶部,在左手边,我们有服务,同样是数据的生产者。在某一点上,我们把两条溪流连接在一起。我们做一些丰富、路由和过滤,然后将数据发送到下游供用户利用。对于这两个Amazon Kinesis Data Streams实例,其中一个用于验证失败的数据,另一个用于通过验证的数据。然后我们使用Databricks和Spark将数据摄取到我们的数据湖中,这里用Amazon S3表示。
在最底部,我们有另外两个实时处理数据的管道。一个使用Databricks,另一个使用Amazon Kinesis Data Analytics for Apache Flink,它们应用实时聚合和分析,然后使该过程的结果可供下游消费者使用或可视化。
现在,使数据在整个组织中可用的首要事情之一是自动化数据管理。这包括模式管理、演进、质量、治理、访问控制、可发现性、安全性、隐私沿袭以及与管理数据相关的所有其他属性。我们需要在从生产者到消费者的整个生态系统中应用同样的管理。所以从制片人一直到我们的数据湖。特别是这在我们的实时和操作用例中非常重要,因此每个用例都不必实时处理数据问题,这使得它非常具有挑战性。
因此,我们建立了自己的解决方案,称为模式注册表,它支持我刚才谈到的所有这些属性,并且还与数据生态系统中的其他工具集成。它提供了数据和质量定义的集中视图,然后与数据的所有用户、生产者和消费者以及其他用户共享。
我们设计它的方式是,将数据期望的声明性定义与执行分离,因此这些定义的执行与后续操作分离,对于任何潜在的问题,我们该怎么做?所以我们定义了质量检查。定义的质量检查可以在管道中的不同位置执行,也可以在开发生命周期的不同阶段执行,以满足每个用例所需的slo。
例如,我们生成函数学者代码来捕获编译时或开发期间的错误。在生成数据和自动化QA测试期间,我们公开api来再次验证数据。我们还集成了Databricks和Spark,用于在摄取[听不清]期间进行检查,或者在数据湖中对数据进行稍后的处理?因此,我们在质量和整个生态系统中保持正确的格式标准,这使我们能够让其他团队开始构建数据解决方案和利用这些工具、机器学习和分析工具的解决方案。我们允许他们轻松地做到这一点,并且能够快速迭代并专注于他们特定的用例。
我们如何看待平台服务的另一个例子是提供自助服务模式。bob体育客户端下载团队总是被允许构建他们自己的解决方案,理想情况下使用我刚刚谈到的sdk工具和服务,但也有一些模式是重复的,团队可以使用它们并仅使用配置部署它们。在这个例子中,这两个蓝框本质上是一样的。从流创建视图或从屏幕创建快照,这是一个常见的例子。在本例中,我们使用Databricks将Amazon Kinesis数据流作为三个数据流摄取到Amazon中。然后我们有另一个Databricks作业,它处理数据并创建格式良好的delta表,然后用作下游[听不清]数据湖的基础。
我们能这样做的原因还是因为我们之前提到的模式注册表。我们知道数据的形状。我们知道期望,比如我们期望的数据的质量,以及我们需要应用的检查。我们也有生成的代码,允许我们有效地转换格式,如JSON或Protobuf行业到我们的数据湖中的Delta格式。其次,由于Delta同时支持流媒体和流媒体源,如果需要的话,我们实际上可以根据用例及其slo继续向下游流媒体。当谈到平台,特别是支持Disney+的运营用例bob体育客户端下载时,我们需要有与其他后端服务相同的服务质量标准。因此,我们需要构建工具来解决可观察性、可靠性、弹性、弹性以及所有这些承载或成本效益方面的问题,以满足与我们其他服务相同的标准,从而能够大规模支持这些操作用例。
这只是一个例子,在我们的两个地理区域,同一流的吞吐量。你可以看到,在某一点上,其中一个流量流降至基本为零,而另一个流量流恢复了流量,然后最终情况稳定下来,恢复正常,我们继续处理数据。这是因为我们失去了一个区域因为有一个区域故障转移。幸运的是,在这种情况下,这是我们混沌测试计划的一部分。所以我们想让它发生。我们希望这样做的最主要原因是获得对我们的解决方案的信心,并对我们可以维护rso(例如可靠交付、事件排序、延迟或数据可用性和时效性)的信心,因为它在我们的一些用例之间是不同的,但我们的许多用例需要这些保证中的一些。
所以我们建立了一些工具,让这成为可能,再次,让团队更容易建立解决方案,利用这些工具,比如部署管理和称为FENOs的自动化工具或AB或蓝绿部署流解决方案,最大限度地减少停机时间和延迟,并支持这些新版本的部署,或使用结构化的自动缩放工具,spark结构化流媒体中心,使用可用的指标,然后使用Databricks API根据需要上下伸缩集群。以上只是一些例子,当然还有更多。最后,让我们简单谈谈技术堆栈。因此,我们使用Amazon Kinesis数据流,AWS MSK作为我们流解决方案的骨干,AWS S3用于大量的批处理。除此之外,还有许多技术,如AWS Kinesis Data Analytics for operations blink、AWS Lambda和AWS客户端库。
但是我们也非常依赖于Databricks进行流处理和批处理。我们还使用了其他技术,比如Airflow、JupyterHub等,但重要的是,在这些技术的基础上,我们建立了这个工具生态系统,用于流数据平台和机器学习平台,以及实验框架,这些工具提供了一个阻碍层,允许我们的服务团队构建他们的解决方案,潜在地利用数据和分析,bob体育客户端下载还有我们的数据团队来构建他们的数据处理解决方案和utl,每个人都可以利用分析和机器学习解决方案,同样是根据需要划分不同的层次。因此,我将把它交还给Rekha,让他详细介绍机器学习平台,以及用例如何映射到平台。bob体育客户端下载

Rekha Bachwani:感谢Martin对这个平台以及它所提供的出色工具和服务的详细描述。bob体育客户端下载我将简单地介绍一下ML平台方面的内容。bob体育客户端下载作为ML平台的一部分,正如Martibob体育客户端下载n所提到的,它更多的是对Databricks、JupyterHub、EMR等底层技术的抽象,因此作为ML平台的一部分,我们希望提供的是简化ML开发和部署。所以我们非常依赖Databricks的笔记本电脑,并通过我们自己开发的Kinostart来安排工作。此外,我们利用自定义Docker映像,其中有内置包,ML包和特定版本,并将它们作为Docker映像提供,以便上游分析和ML更容易。此外,使用Databricks和EMR,我们正在尝试构建一个沙盒环境,人们可以在准备将所有生产数据部署到生产环境之前测试他们的ML管道,这样我们在部署模型时就有信心了。无论是在流媒体平台还是在我们的娱乐引擎服务。bob体育客户端下载
因此,接下来我将深入研究实际的分析和ML用例。用例保持不变,但是我将更深入地讨论我们采用了什么样的模型。典型的管道是什么样的等等?让我们回到用例。我知道您在整个演示中都听说过这些用例,但我将更深入地探讨它们。我提到的第一个问题是流量路由,但在我们讨论流量路由之前,我们必须解决、理解并善于预测我们的季节性和流量趋势。为了实现这一点,我们从一些简单的统计模型和时间序列分析开始,最终在准确预测方面做得更好,比如准确预测我们的需求。当我说到需求时,需求是基于我们是否有直播活动,如果你有更高的,如果这是人们观看视频点播的黄金时间,诸如此类。
因此,我们会考虑到这些因素,并寻求改善我们的需求预测。除了使用时间序列分析和需求预测,我们还在考虑利用用户偏好。所以网络关联或CDN关联是它的一个方面,但我们正试图结合我们的用户流媒体的设备类型。例如,如果用户在农村或偏远地区使用Android设备进行流媒体传输,为他们提供高分辨率内容或以最高速度传输实际上可能不利于这种体验,因为这会更快地耗尽他们的电池等等。所以我们试着考虑请求发出的设备种类,请求发出的地理位置,这样我们就能优化用户体验。除了优化用户体验,他们还在考虑如何高效地进行优化。
所以我们的目标之一就是要有高的运营效率。我在这里所说的运营效率是指我们着眼于优化资源分配。举个例子,如果有人在4k电视上直播,而另一个人在移动设备上直播,而另一个人在做视频点播。如果我们适当地利用分析和机器学习,我们实际上可以优化所有这些资源,同时从基础设施方面提高效率。这些都是我们要考虑的事情,我们要考虑服务特征,比如内容元数据,网络,带宽,用户特征,以及我们预测的需求和季节性模式。我们将所有这些结合起来,为您提供最好的体验。现在我讲了很多我们可以使用什么样的ML,我们如何放置这些东西,但这些都是不同的管道。
在峰会上,让我谈一谈我们如何把这些东西结合在一起。但在此之前,这里是典型管道的样子。所以甚至有数据流数据进来。现在,这些数据可以遵循两个部分。一个。我认为马丁描述得更详细,但有点抽象。它被变换了。一个模式被覆盖,它最终出现在我们的数据湖中。另一件事是,如果模型需要一些实时特征或实时数据,那么一些实时数据也会进入。接下来是特征工程步骤,该步骤将批处理数据和实时数据结合起来,并计算生产中模型所需的一组特征。 The blue box of machine learning that you see, it sort of represents an Abstract ML platform here, that on time ML platform where there might be heuristics and metrics that are computed a time series analysis for sediment forecasting, or sydian routing some predictors and classifiers for our fraud and abuse prevention.
这里我还没有提到的是推荐引擎。因此,运行时中的任何模型都可以使用这些特性,然后这些模型可以对传入请求进行评分,并将决策输出到各自的服务。现在,每个服务都被授权以其缺陷的方式使用这些模型的输出,但我们所做的是将服务做出的所有决策记录到我们的数据湖中。其中一些会被带回来,以流数据的形式再次出现。所以这是一个持续的循环,我们之所以能够这样做是因为马丁详细描述过的一些平台架构决策,我们已经做出了。bob体育客户端下载所以我希望这篇文章能让你对我们的机器学习生态系统有一个很好的概述,以及它是如何从我们所选择的底层平台架构中受益的。bob体育客户端下载
关于这个,我要总结一下,我们讨论了如何大规模优化个性化体验。为了实现个性化体验,我们所做的关键赌注就是让数据成为我们生态系统的一部分。除了数据,我们还希望有一个持续的反馈循环,以保持这种迭代,持续改进的过程继续下去。如果没有由图书馆、sdk服务和自动化组成的自助服务平台,这一切都不可能实现。bob体育客户端下载
我们专注于解决方案的实现和服务本身,而不仅仅是构建管道并将它们组合到运行时中。最后,我认为,如果我们没有使用大量的开源技术和强大的销售合作伙伴(如数据砖),我们就不可能从一个新的流媒体服务迅速发展到庞大的会员基础,他们为我们提供了管理解决方案,以帮助我们快速发展。bob下载地址bob体育外网下载好了,谢谢你的时间。谢谢你抽出时间来听我们的演讲。我们随时可以回答您的任何问题。一如既往,我们一直在招聘。所以请访问disneytech.com,看看是否有任何角色适合你,或者如果你对他们有任何问题,请随时联系马丁和我。最后,你的反馈对我们很重要,所以请不要忘记评价和回顾我们的课程,并分享你对我们的任何反馈。

瑞卡Bachwani

Rekha是Disney+的首席工程师,擅长机器学习、安全和分布式系统。她领导ML工程团队,为服务和工程师驱动ML战略。
阅读更多

马丁Zapletal

马丁是Disney+团队的工程总监。Martin负责公司的数据平台战略和实时决策能力,利用他的技术领导能力。bob体育客户端下载
阅读更多