欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Netflix 如何做出决策?| 2. 什么是 A/B 测试?

最编程 2024-03-10 16:03:44
...

这是Netflix关于实验和决策的系列文章,系统介绍了实验对于Netflix的重要性,实验的最主要工具--A/B测试,数据科学和文化在实验与决策过程中的重要性等。整个系列共七篇文章,这是第二篇。原文:What is an A/B Test?[1]

  1. Netflix的决策制定
  2. 什么是A/B测试?????
  3. A/B测试结果之假阳性和显著性统计
  4. A/B测试结果之假阴性和统计功效
  5. 在做决定时建立信心
  6. 实验是数据科学的主要关注点
  7. 学习的文化

这是关于Netflix如何基于A/B测试来做出决策并不断创新产品的系列文章的第二篇。参见第1部分:Netflix的决策制定。随后的文章将详细介绍A/B测试的统计数据、Netflix的实验、Netflix如何投资基础设施来支持和扩大实验、以及Netflix实验文化的重要性。

A/B测试是一个简单的控制实验。打个比方,假设我们正在考虑新的产品体验,想知道如果把所有的方框图片都颠倒过来显示在电视UI上,是不是对会员的体验更好一点。

图1:如何判断产品体验B(带有上下颠倒的方框图案)对我们的会员来说是否是更好的体验?

为了进行实验,我们选取一个成员的子集(通常是一个简单的随机样本[2]),然后随机分配[3]将样本平均分成两组。“A组”,通常被称为“控制组”,继续获得基本的Netflix用户界面体验,而“B组”,通常被称为“测试组”,根据一个关于改善用户体验的特定假设(下文将详细介绍这些假设),获得不同的体验。在这里,B组收到了上下颠倒的方框图片。

等一段时间,然后比较A组和B组的各种度量值,有些度量值是特定于给定假设的。比如在UI实验中,我们着眼于新功能不同变体的用户粘性。而如果作为一项旨在在搜索体验中提供更多相关结果的实验,我们会衡量用户是否通过搜索发现了更多可观看的内容。在其他类型的实验中,我们可能会关注更多的技术指标,比如应用程序加载的时间,或者在不同网络条件下能够提供的视频质量。

图2:简单的A/B测试。我们用随机分配的方法将Netflix成员随机分成两组,“A组”接受目前的产品体验,而“B组”接受一些我们认为是对Netflix体验的改进的改变。在这里,“B”组获得了“颠倒”的产品体验。然后我们比较两组之间的指标。重要的是,随机分配确保了两组之间的其他一切保持不变。

在许多实验中(包括颠倒方框图片的例子),我们需要仔细思考参数告诉了我们什么。假设我们着眼于点击率,即衡量每一次用户体验中点击某款游戏的用户比例。那么作为衡量新UI是否成功的指标,这本身可能是一个误导,因为会员可能只是为了更容易阅读产品体验而点击标题。在这种情况下,我们可能还想评估有多少成员随后没有继续浏览,而是选择了离开。

在所有情况下,我们也需要着眼于更一般的指标,旨在捕捉Netflix给我们的会员带来的快乐和满足。这些指标包括对Netflix用户参与度的衡量:我们正在测试的想法是否会帮助用户在某个夜晚选择Netflix作为他们放松娱乐的方式?

这也涉及到很多统计数据——多大的差异被认为是显著的?在一个测试中,我们需要多少成员来检测一个给定大小的效应?如何最有效的分析数据?我们将在以后的文章中讨论其中的一些细节,重点是要关注高层次的直觉。

保持其他条件不变

因为我们使用随机分配的方法创建了控制组(“A”)和测试组(“B”),所以可以确保两组中的个体平均而言在所有可能对测试有意义的维度上都是平衡的。例如,随机分配可以确保两组成员的平均会员时长没有显著差异,内容偏好、主要语言选择等也没有显著差异。两组间唯一的差异是我们正在测试的新体验,从而确保我们对新体验影响的估计不存在任何偏差。

为了理解这有多重要,让我们考虑另一种做出决定的方式:我们可以向所有Netflix成员推出新的上下颠倒的方框体验,看看我们的某个指标是否会有很大的变化。如果出现了积极的变化,或者没有任何有意义的变化的证据,我们将保留新的体验,如果有负面变化的证据,我们将回到之前的产品体验。

假设我们这样做了,并在某个月的16号打开了颠倒体验的开关。如果收集到以下数据,你会怎么做?

图3:关于第16天上下颠倒方框产品体验发布的假设数据

数据看起来很不错,我们发布了一款新的产品体验,会员粘性也大大提高了!但如果你有了这些数据,再加上产品B把所有UI的框图都颠倒了,新产品的体验真的对会员有好处吗?你对此真的有多大信心呢?

我们是否真的知道新产品体验是导致用户粘性增加的原因?还有其他可能的解释吗?

如果你知道就在(假设的)上下颠倒产品体验推出的同一天,Netflix发布了新的热门剧集,比如新一季的《怪奇物语》(Stranger Things)[4]或《行尸走肉》(Bridgerton)[5],或者《死亡军团》(Army of the Dead)[6]这样的热门电影,你会怎么想?现在我们对用户粘性的增加有了不止一种可能的解释:可能是新的产品体验,可能是社交媒体上的热门大片,也可能两者兼而有之,也可能是别的什么东西。关键是,我们不知道新产品体验是否导致了用户粘性的增加。

如果我们用上下颠倒产品体验进行A/B测试,让一组成员收到当前产品(“A”),另一组收到上下颠倒产品(“B”),并收集以下数据:

图4:新产品体验的A/B测试的假设数据

在这种情况下,我们得出了一个不同的结论:上下颠倒产品的用户粘性普遍较低(这并不奇怪!),而这两组用户粘性都随着大片的发行而增加。

A/B测试让我们能够做出因果陈述。我们将会员随机分配到A组和B组,两个组之间的其他一切都保持不变,只将上下颠倒的产品体验引入到B组,因此,我们很有可能得出这样的结论(更多细节将在下次讨论):颠倒产品导致了用户参与度的降低。

这是个极端假设的例子,但总的来说,总有一些事情是我们无法控制的。如果我们向所有人呈现一种体验,并只是在改变之前和之后测量一个指标,那么这两个时间段之间就会存在相关差异,从而阻止我们做出因果结论。也许是一部新剧集,也许是一个新的产品合作伙伴关系,让更多的用户可以享受Netflix,总有一些我们不知道的事情。运行A/B测试,在可能的情况下,让我们能够证实因果关系,并自信的对产品进行更改,因为我们的会员已经通过他们的行动投了票。

一切都始于一个想法

A/B测试开始于一个想法——一些UI的改变,帮助会员发现内容的个性化系统,新会员的注册流程,或任何其他想法,基于我们在Netflix的经验,我们认为这些想法有可能对成员产生积极的效果。我们测试的一些想法是渐进性的创新,比如改进出现在Netflix产品中的文本,有些则更有野心,比如Netflix现在在UI上显示的“Top 10”列表的测试。

就像Netflix在全球范围内推出的所有创新一样,Top10最初只是一个想法,后来变成了一个可验证的假设。这里的核心理念是,在每个国家都很受欢迎的节目将从两方面让我们的会员受益。首先,通过呈现热门节目,可以帮助会员分享感受,并通过讨论热门节目与他人建立联系。其次,可以通过满足人们参与共享对话的内在欲望来帮助用户选择一些很棒的内容。

图5:Web UI上Top 10体验示例

接下来,我们将这个想法转化为一个可测试的假设,即“如果我们改变X,它将以一种能够提高度量Y的方式改善会员体验。”对于Top 10的例子,假设是:“向用户展示Top 10的体验将帮助他们找到值得观看的内容,增加用户的乐趣和满意度。”这个测试(和许多其他测试)的主要决策指标是衡量用户对Netflix的参与度:我们正在测试的想法是否会帮助用户在某个特定的夜晚选择Netflix作为他们的娱乐方式?研究表明,从长远来看,这个指标(细节省略)与会员续订的概率是相关的。我们也在其他领域运行测试,如注册页面体验或服务器端基础设施,主要决策指标有所不同,但原理是一样的:在测试期间,我们需要衡量是否给长期会员提供了更多价值?

除了测试的主要决策指标,还需要考虑一些次要指标,以及它们将如何受到我们正在测试的产品特性的影响。这里的目标是阐明因果链,从用户行为将如何响应新产品体验到我们主要决策指标的变化。

明确产品变化和主要决策指标变化之间的因果链,并监控这条链上的次要指标,有助于我们建立信心,相信主要指标的任何变化都是我们假设的因果链的结果,而不是新功能带来的意外结果(或者是错误的结果——在后面的文章中会有更多讨论)。对于Top 10的测试,用户粘性是我们的主要决策指标——但我们也会关注出现在Top 10列表中的那些节目的观看率,通过这一列表产生的观看率与界面其他部分产生的观看率,等等。如果Top 10的体验真的对成员有好处,那么我们就会期待测试组能够增加出现在Top 10列表中的节目的观看量,并获得更强的粘性。

最后,因为并非所有我们所测试的想法都是正确的(有时候新功能也会有漏洞!),我们也会将指标视为“护栏”。我们的目标是限制任何不良后果,并确保新产品体验不会对会员体验产生意想不到的影响。例如,我们可以比较控制组和测试组的客服联系,以检查新功能是否增加了对客服的联系率,这可能表明会员的困惑或不满。

总结

这篇文章的重点是建立A/B测试的基础,了解为什么运行A/B测试比推出功能更重要,在做出改变之前和之后查看指标,以及如何将一个想法变成一个可测试的假设。接下来我们将讨论在比较测试组和控制组的指标时所使用的基本统计概念。

References:
[1] What is an A/B Test? https://netflixtechblog.com/what-is-an-a-b-test-b08cc1b57962
[2] Simple Random Sampling: https://en.wikipedia.org/wiki/Sampling_(statistics)#Simple_random_sampling
[3] Random Assignment: https://en.wikipedia.org/wiki/Random_assignment
[4] Stranger Things: https://www.netflix.com/title/80057281
[5] Bridgerton: https://www.netflix.com/title/80232398
[6] Army of the Dead: https://www.netflix.com/title/81046394

你好,我是俞凡,在Motorola做过研发,现在在Mavenir做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习。
微信公众号:DeepNoMind