►领导者说:
★决策是行动的指南。不管是个人还是企业,每天都要面临着无数的决策。决策的好坏会对结果产生巨大影响,如何做好决策是每个人都要上的一门必修课。
在Netflix这里,他们采用了一种以实验为导向的决策流程,先小范围地对不同方案进行测试,根据对比效果调整,从而摸索出普遍适用的决策。他们为此还在官方技术博客推出了关于Netflix如何用A/B测试做出决策的系列文章。
来源 | 36氪旗下翻译团队。神译局
分享 | 领导者养成笔记「ID:GoToLead 」

介绍

成立之初,Netflix就秉承以消费者的选择和控制为娱乐体验中心的理念。公司也在不断改进我们的产品来改善这一价值主张。比方说,Netflix UI 在过去十年的时间里已经发生了彻底的转变。在2010 年的时候,我们的UI 是静态的,只有有限的导航选项,展示也主要根据视频租赁商店的陈列来设计。但现在,我们的用户界面已经是沉浸式的,视频导向的,导航的选项更丰富了,但却没那么突兀了,而展示也充分利用了数字体验。

图 1:Netflix TVUI 的对比:2010 年(上)与 2020 年(下)。
从 2010 年的体验过渡到我们今天所得到的体验,需要 Netflix 做出无数个决定。给一部作品预留一大块显示区与为更多作品预留一大块显示区之间应该做出怎样的权衡?视频就比静态图像要好吗?我们怎么才能在在受限网络上提供无缝的视频转发体验?怎么选择要展示那些作品?导航菜单应该归属哪里,应该包含什么东西?这份清单还可以列得很长。
做决定并不难——难的是做出正确的决定。我们怎么才能确定自己的决定能为现有会员提供更好的产品体验,同时还能吸引新会员从而发展业务?在改进产品,从而为会员带来更多乐趣的事情上,Netflix 可以通过多种方式来做出决定:
让领导做所有决定。
聘请设计、产品管理、用户体验、流媒体交付等学科方面的专家,吸收他们最好的想法。
进行内部辩论,让我们最有魅力的同事的观点获胜。
参考竞争对手的做法。

图 2:不同的决策方式。左上角起顺时针方向:领导决策、内部专家、参考对手、小组辩论。
在所有这些范式里面,可供决策的观点和看法的数量都是有限的。领导层规模很小,小组辩论只能这么大,而我们做出决策所需要的每个领域的领域专家就只有这么多。可以让我们汲取灵感的流媒体或相关服务提供商就几十家。此外,这些范式当中没有一个能提供一种系统化的决策方式,或在观点相互冲突的时候提供解决机制。
在 Netflix这里,在决定如何改善我们向会员提供的体验方面,我们相信还有更好的方式:我们采用 A/B 测试。实验的规模扩大了。实验不是由一小群高管或专家参与决策,而是让我们所有的会员都有机会参与,通过自己的行动就如何改善 Netflix 带给他们的体验进行投票。
从更广泛的角度而言,A/B 测试以及准实验等其他因果推理方法,是 Netflix 用科学方法为决策提供信息的手段。我们先做出假设,收集经验数据(包括来自实验的数据),为我们的假设提供支持或反对的证据,然后得出结论并产生新的假设。就像我们的同事 Nirmal Govind 所解释的那样,实验在构成科学方法基础的推理(根据一般原则得出具体结论)和归纳(根据具体结果和观察形成一般原则)的迭代循环当中起着关键作用。
什么是 A/B 测试?

A/B 测试其实就是一个简单的受控实验。比方说,我们做出了一个假设!— 我们想知道一种把 TV UI 里面所有的盒子都倒置起来的新产品体验对我们的会员是不是有好处。

图 1:我们是怎么确定产品体验 B(倒置的的盒子艺术)对我们的会员来说是不是会体验更好
为了进行这个实验,我们会取出会员的一个子集,这通常是一个从所有会员中随机提取的简单样本,然后采用随机方式将将该样本平均分配成两组。“A”组(通常叫做“控制组”)看到的仍然是基本的 Netflix UI 体验,而“B”组(通常称为“治疗组”)会给予改进该会员的特定体验的假设获得不同的体验(后面还会谈到具体的假设)。在本例中,B 组收到的是倒置的盒子艺术。
接下来我们就是等,然后把 A 组中的各种指标跟 B 组中的各种指标进行对比。部分指标会跟特定假设相关。对于 UI 实验来说,我们会研究跟新功能的各种变体的互动情况。对于旨在在搜索体验当中提供更相关结果的实验,我们会衡量会员是不是通过搜索找到了更多的可观看内容。在其他类型的实验里,我们可能会关注更加技术性的指标,比方说应用加载所需的时间,或者我们在不同网络条件下所能够提供的视频质量情况。

图 2:一个简单的 A/B 测试。我们利用随机分配将 Netflix 会员的随机样本分为两组。“A”组收到的是当前的产品体验,而“B”组收到的是我们认为会改进Netflix 体验的变化。在本例中,“B”组收到了“倒置”的产品体验。然后我们再对比两组之间的指标。至关重要的是,随机分配确保了就平均而言,两组之间的其他一切都保持不变。
通过包括倒置的盒子艺术这个例子在内的众多实验,我们需要仔细思考指标告诉了我们什么。假设我们审视的是点击率,这个指标衡量的是每一种体验下点击了一部作品的会员占比。光靠这个指标本身来衡量新 UI 是否成功可能会造成误导,因为会员可能只是为了看作品更轻松点(让倒置的变成正常)而点击了它。在这种情况下,我们可能还希望评估一下有多少会员随后就离开此作品了而不是继续播放的。
在所有情况下,我们还会考察更综合的指标,希望能够捕捉到 Netflix 为我们的会员提供的快乐和满足感。这些指标包括会员与 Netflix 互动程度的衡量标准:我们正在测试的想法是不是有助于我们的会员在任何特定的晚上把 Netflix 当作自己的娱乐目的地?
这其中还涉及到很多的统计数据——差异大到什么程度才可看作显著?测试需要多少会员才能检测出给定量级的影响?怎么才能最有效地分析数据?我们会在后续文章里面介绍其中的一些细节,重点会放在高级直觉上。
让其他一切保持不变
因为我们是用随机分配的放肆创建的对照组(“A”)和治疗组(“B”)的,所以我们可以确保平均而言,两组中的个体在可能对测试有意义的所有维度上都是均衡的。比方说,随机分配可确保 Netflix 会员的平均租期在对照组和治疗组之间没有显著差异,在内容偏好、主要语言选择等方面也没有显著差异。两组之间唯一剩下的区别就是我们正在测试的新体验,确保我们对新体验影响的评估不会存在任何偏见。
为了理解这一点的重要性,我们不妨思考另一种做出决定的方式:我们可以向所有的Netflix 会员推出新的倒置盒子艺术体验(如上所述),看看我们其中的一个指标是不是会发生重大变化。如果出现了好的变化,或者没有出现任何有意义的变化的证据,我们将保留新的体验;如果出现不好变化的证据,我们就回滚到之前的产品体验。
假设我们这么做了(再次地——这是个假设!),并且在当月的第 16 天切换到倒置体验。如果我们收集到以下数据的话,你会怎么做?

图 3:第 16 天发布的全新倒置盒子艺术产品体验的假设数据。
数据看起来挺不错:我们发布了新的产品体验,会员的参与度大为提高!但是,如果你有了这些数据,再加上产品 B 将 UI 里面所有的盒子艺术倒置过来的知识的话,你对新产品体验是不是真的对我们的会员有好处这一点又有多大信心呢?
我们是真的知道新产品体验是导致会员参与度提高的原因吗?还存在哪些可能的解释?
如果你还了解到, Netflix 在(假设的)推出全新倒置产品体验的同一天还发布了一部热门作品,比如新一季的《怪奇物语》(Stranger Things)或《布里杰顿》(Bridgerton),或者像《活死人军团》(Army of the Dead)这样的热门电影的话,又该怎么说?? 现在我们对会员参与度提高可能就有不止一种解释了:也许是因为新产品体验,也许是因为社交媒体上对热门作品的讨论,也可能两者兼而有之。或者可能完全是别的东西。关键是我们不知道新产品体验是不是导致了参与度的提高。
反过来,如果我们对倒置盒子艺术产品体验进行 A/B 测试,让一组会员接收当前的产品体验(“A”),另一组会员这一整月收到的都是倒置产品体验(“B”)的话,又会怎样?以下是收集到的数据:

图 4:新产品体验 A/B 测试的假设数据。
在这种情况下,我们得出了一个不一样的结论:倒置产品导致参与度普遍较低(这并不奇怪!),而且随着热门作品的发布,两个群体的参与度都增加了。
A/B 测试让我们可以做出因果陈述。我们仅向 B 组引入了倒置产品体验,并且由于我们是把会员随机分配到 A 组和 B 组的,因此两组之间的其他一切都保持不变。所以,我们可以得出倒置产品很可能导致参与度降低的结论(下一次再详细介绍)。
这个假设的例子很极端,但一条普遍适用的经验是总有些事情是我们无法控制的。如果我们针对所有人推出一种体验,并在改变前后简单地衡量一个指标的话,那么这两个时间段之间可能存在的相关差异就会阻止我们得出因果结论。也许出现了一个正在变火的新作品。又或者是新的产品合作解锁了更多的用户。总会有一些我们不知道的事情。在可能的情况下,进行 A/B 测试可让我们证实因果关系,并自信地对产品进行变更,因为我们知道,我们的会员会用自己的行为对改变进行投票。
一切从一个想法开始
A/B 测试从一个想法开始——我们可以对 UI进行修改、帮助会员查找内容的个性化系统、针对新会员的注册流程,或我们认为会对会员产生积极影响的Netflix 体验的任何其他部分。我们测试的某些想法是渐进式的创新,比方说改进Netflix 产品中出现的文案的手段;有些更为雄心勃勃一些,比方说让Netflix最终在用户界面中呈现“十大排行版”的测试。
跟面向全球 Netflix 会员推出的所有创新一样,Top 10 一开始只是一个想法,后来变成了可检验的假设。此处的核心思想是将每个国家/地区流行的作品呈现出来可在两个方面令我们的会员受益。首先,通过呈现流行内容,我们可以帮助会员分享体验并通过对相关流行作品的讨论而建立相互的联系。其次,我们可以通过满足人类成为共同对话的一部分内在愿望,帮助会员选择出一些精彩的内容来观看。

图 5:Web UI 上的Top 10 体验示例。
接下来,我们就把这个想法变成一个可检验的假设,也就是“如果我们进行 X 变更,它将会以某种方式改善成员体验,从而令指标 Y 得到改善”。在Top 10 这个例子当中,我们的假设如下:“向会员展示Top10 体验将帮助他们找到值得观看的内容,增加会员的快乐和满意度。” 这一测试(以及众多其他测试)的主要决策指标是衡量会员跟 Netflix 的互动度:我们正在测试的想法是不是有助于我们的会员在任何特定晚上选择 Netflix 作为自己的娱乐目的地?我们的研究表明,从长远来看,该指标(细节此处不谈)与会员保留订阅的可能性是相关的。我们对其他业务领域,比方说注册页面体验或服务器端的基础设施等的测试,采用的是不同的主要决策指标,但原则是一样的:就是要看我们在测试期间可以测量的东西哪些从长期来看能为我们的会员提供更多价值。
除了测试的主要决策指标以外,我们还考虑了很多次要指标,还要看这些会如何受到我们正在测试的产品功能的影响。这里的目标是把从用户行为如何响应新产品体验到我们主要决策指标的变化的整条因果链表述清楚。
阐明产品变更与主要决策指标变化之间的因果链,并监控这一链条上的次要指标,可以帮助我们建立信心,让我们确信主要指标的任何变动都是我们假设的因果链的结果,而不是新功能的某些意外后果的结果(或误报——在后面的系列文章里面我们会详细介绍!)。对于Top 10 的A/B测试来说,参与度是我们的主要决策指标——但我们也会检查其他一些指标,比如Top 10排名当中出现的那些作品的作品级浏览,也就是源自那一行而不是UI的其他部分的浏览量占比等等。如果符合假设的话,提供Top 10的体验应该对我们的会员是有好处的,预期治疗组中出现在Top 10的作品的浏览量应该会增加,而且往往是因为那一行的参与度普遍较高。
最后,因为并不是我们测试的所有想法都会成为赢家,赢得会员青睐(有时新功能会有bug!)我们还会检查充当“护栏”的指标。我们的目标是限制任何的负面后果,并确保新产品体验不会对会员体验产生意外影响。比方说,我们可能会将服务对照组和治疗组的客户服务联系人进行对比比,看看新功能是否没有增加联系率,因为练习率的增加可能表明会员感到困惑或不满。
总结
这篇文章的重点是建立直觉:A/B 测试的基础知识,为什么要跑 A/B 测试,而不是推出功能然后对比变更前后的指标,以及我们如何将想法变成可检验的假设。接下来,我们将介绍用来对比治疗组与控制组体验指标的的基本统计概念。
误报与统计显著性

在《Netflix是如何做决策的?(二):什么是 A/B 测试?》中,我们讨论了在 Netflix 上面测试 Top 10,以及如何利用这项测试的主要决策指标衡量会员对 Netflix 的满意度的。如果像这样的测试显示出主要的决策指标在统计上有显著改善的话,就说明这项功能非常适合面向所有会员推出。但是,得到测试的结果之后,我们如何才能知道自己做出的决定是否正确呢?重要的是要承认一点,任何决策方法都不能完全消除不确定性以及犯错误的可能性。利用基于假设生成、A/B 测试以及统计分析的框架,我们可以对不确定性进行细致的量化,并了解犯不同类型错误的概率。
在对测试结果采取行动时,我们可能会犯两种类型的错误。当来自测试的数据表明控制组和实验组体验之间存在表明差别,但实际上没有差别时,就会出现假阳性(也称为 I 型错误)。这种情况就好比健康人的体检结果呈阳性。在对测试做决定时可能还会犯另一个错误,那就是假阴性(也称为 II 型错误),当数据没有表明实验和控制之间存在表面差异,但实际存在差异时,就会发生这种情况。这种情况就像你有病,但相关的医学检测结果呈阴性。
作为建立直觉的另一种办法,不妨思考一下这个互联网和机器学习之所以存在的真正原因(编者注:一个玩笑):标记图像里面有没有猫。对于特定图像来说,决策有两种可能(贴上 “有猫”或“没猫”的标签),同样地事实也有两种(图像要么有猫,要么没有)。这导致总共有四种可能的结果,如图 1 所示。A/B 测试也是如此:我们根据数据做出两个决策之一(“有足够的证据得出十大排名会影响会员的满意度这个结论”)或“证据不足”),而事实也会有两种可能,但我们永远没法完全确定(“十大排名确实影响到会员的满意度”或“没影响”)。

图 1:把图像标记为图中有没有猫时的四种可能结果。
关于误报和漏报,一个令人不安的事实是,我们没法排除掉。事实上,这两者是此消彼长的关系。对实验进行设计好让误报率很小必然会增加漏报率,反之亦然。在实践上,我们的目标是对这两种错误来源做好量化、理解和控制。
在本文的其余部分里,我们会利用简单的示例来建立起对误报和相关统计概念的直觉;在本系列的下一篇文章里,我们再谈谈漏报及相关统计概念。
误报与统计显著性
有了一个很好的假设,并且对主要决策指标有了清晰理解之后,是时候转到设计 A/B 测试的统计方面了。这个过程一般从确定可接受的误报率开始。按照惯例,这个误报率通常设定为 5%:对于实验组与对照组之间其实没有实质差异的测试,我们有5%的几率会错误地得出存在 “统计上显著”差异的结论。误报率为5%的测试就是显著性水平为 5%的测试。
约定显著性水平为5%可能会让人感到不舒服。遵循这一惯例,意味着我们接受这样的事实,即对于会员来说实验组和控制组体验没有明显不同的情况下,我们犯错的几率是5%。我们会把 5% 没有猫的照片标记成有猫。
误报率跟观察到的实验组与对照组之间的度量值差异的“统计显著性”密切相关,我们就用 p 值来测量吧。p 值是观测到至少与A/B测试实际观测样本相同极端的样本的概率,前提是实验组跟对照组的体验确实没有差异。理解统计显著性跟 p 值(这玩意儿已经让学统计学的困惑了一个多世纪)有一个直观的办法,那就是玩简单的机会游戏,去计算所有的相关概率并进行可视化。

图 2:不妨考虑玩一个简单的机会游戏,比方说像这样的抛硬币游戏,这是建立起统计直觉的好方法。
假设我们想知道一枚硬币是不是不均匀,也就是抛到正面的概率不是 0.5(或 50%)。这个情况看起来似乎很简单,但其实跟很多企业直接相关,其目标是要了解新产品体验会不会导致某些二元性的用户活动(单击某项UI 功能,再续租Netflix 服务一个月)出现的比率不同。所以任何我们可以通过简单的抛硬币游戏建立的直觉都可以直接映射到对A/B测试做出的解释。
为了确定硬币是不是不均匀,我们不妨做个实验:抛 100 次硬币并计算正面朝上的比例。由于存在随机性或“噪音”,就算硬币是完全均匀的,我们也不指望正好会有 50 次正面朝下, 50次反面朝上——但跟50 这个数偏差多少才算 “太多”呢?什么时候才有足够的证据来拒绝硬币其实是均匀的这个基线判定?如果抛 100 次有 60 次是正面的话,你是不是愿意得出硬币不均匀的结论?70呢?我们需要有一种方法来调整决策框架并了解相关的误报率。
为了建立直觉,不妨来一次思考练习。首先,我们假设硬币是均匀的——这就是我们的“零假设”。零假设始终是对现状或均等的陈述。然后,我们从数据里面寻找反对这个零假设的那些令人信服的证据。为了决定令人信服的证据应该由什么构成,在假设原假设为真的情况下,我们要计算每个可能结果的概率。对于抛硬币这个例子而言,就是抛100 次硬币抛出 0 个正面、1个正面、2个正面,以此类推直至 100 个正面的概率——前提假设是硬币是均匀的。具体数学我们就略过了,只需要留意所有这些可能的结果及其相关概率都用图 3 里面的黑条和蓝条显示(现在先忽略颜色)。
然后,我们可以将在硬币均匀的假设下计算得出的结果概率分布跟我们收集到的数据进行比较。假设我们观察到抛100 次里面其中的55% 得到的是正面(图 3 中的红色实线)。为了对这个观察是否硬币不均匀的有力证据进行量化,我们把每一个可能性低于观察的每一个结果的相关概率进行合计。此处,由于我们没有对更有可能出现正面或反面做出任何假设,所以我们把出现正面概率达到或超过55%的累加起来(红色实线右侧的条),把出现反面概率达到或超过55%的也累加到一起(红色虚线左侧的条)。
神秘的 p 值就出现了:在零假设为真的情况下,观测到至少与实际观测样本相同极端的样本的概率。在我们的例子中,零假设是硬币是均匀的,观测到的结果是抛100 次硬币当中有 55% 是正面,而 p 值大概是 0.32。解释如下:抛硬币 100 次并计算正面朝上占比的实验,用均匀的硬币(零假设为真)来抛,如果我们重复多次的话,在这些实验当中,其中有32% 的结果将至少有 55% 是正面朝上或至少 55% 是反面朝上(结果至少跟我们的实际观测结果一样不可能)。

图 3:将一枚均匀的硬币抛 100 次,每一个结果的概率表示为正面朝上的占比。
那我们怎么用 p 值来确定是否存在统计上显著的证据表明硬币是不均匀的——或者表明我们的新产品体验对现状有改进呢?回到我们在开始时同意接受的 5% 的误报率:我们得出结论,如果 p 值小于 0.05,则存在统计上的显著影响。这形成了这样一种直觉,也就是如果我们的结果在硬币是均匀的假设下不太可能发生的话,我们应该拒绝硬币是均匀的零假设。在抛 100 次硬币观测到有 55 次正面朝上的例子里,我们计算出的 p 值为 0.32。由于 p 值大于 0.05 显著性水平,因此我们得出结论,没有统计上显著的证据表明硬币不均匀。
我们可以从实验或 A/B 测试中得出两个结论:要么得出有影响的结论(“硬币不均匀”、“十大排名功能提高了会员的满意度”),要么得出证据不足以得出有影响的结论(“不能得出硬币不均匀的结论”,“不能得出十大排名提高了会员满意度的结论”)。这跟陪审团审判很像,陪审团最后只能得出两个可能的结果,要么“有罪”,要么“无罪”(not guilty)——而“无罪”跟“清白”(innocent)是是非常不同的。同样地,这种A/B 测试的(频率主义)方法不允许我们得出没有影响的结论——我们从来都不会得出硬币是均匀的,或者新产品功能对我们的会员没有影响的结论。我们只是得出这样的结论,我们没有收集到足够的证据来驳回不存在差异的零假设。在上面抛硬币的例子里,我们抛了 100 次硬币然后观测到有 55% 是正面朝上,并得出结论,我们没有足够的证据可以将硬币标记为不均匀。至关重要的是,我们也没有得出硬币是均匀的结论——毕竟,如果我们收集到更多的证据,比如将同一枚硬币抛 1000 次的话,我们可能就能找到足够令人信服的证据来驳回硬币是均匀的零假设。
否定域与置信区间
A/B 测试里面还有两个概念跟 p 值密切相关:测试的否定域以及观测的置信区间。我们会在本节介绍这两个概念,还是用上面的抛硬币例子作为基础。
否定域。给测试建立决策规则的另一种方法是根据所谓的“拒绝域”——我们得出结论认为硬币是不均匀的一组值。为了计算拒绝域,我们再次假设原假设为真(硬币是均匀的),然后将拒绝域定义为概率总和不超过 0.05 的最不可能结果的集合。拒绝域由最极端的结果组成,前提是原假设是正确的——是拒绝原假设的证据最强的结果。如果观测值落在拒绝域内,我们就可以得出结论,存在统计上显著的证据表明硬币是不均匀的,并“拒绝”零假设。在那个抛硬币实验的情况下,拒绝域对应于观测到正面朝上的情况少于 40% 或超过 60%(如图 3 的蓝色阴影条所示)。我们称拒绝域的边界,本例情况下为正面朝向占比为 40% 与 60% ,为测试的临界值。
拒绝域与 p 值之间存在等价关系,两者都可得出相同的决定:当且仅当观测值位于拒绝域内时,p 值小于 0.05。
置信区间。到目前为止,我们已经通过首先从零假设开始来设立决策规则。零假设始终都是没有变化或等价的陈述(“硬币是均匀的”或“产品创新对会员满意度没有影响”)。然后,我们在该零假设下定义可能的结果,并将我们的观测结果跟这一分布进行比较。要想理解置信区间,把问题倒过来,去关注观测结果会有所帮助。我们不妨做个思考练习:给定观测结果,假设误报率指定为 5% 的情况,零假设的哪些值会导致得出不拒绝的决定?对于那个的抛硬币的例子,观测结果是在抛100 次硬币当中有 55% 是正面朝上,我们不拒绝硬币为均匀的无效。我们也不会拒绝正面朝上概率为 47.5%、50% 或 60% 的零假设。正面朝上概率从大约 45% 到 65% 的范围内,我们都不会拒绝零假设(图 4)。
这个值范围就是一个置信区间:在给定测试数据的情况下,在零假设下不会导致拒绝的值的范围。因为我们已经用显著性水平为5%的测试划定了区间,所以就设定了 95% 的置信区间。我们的解释是,在重复实验的情况下,置信区间在 95% 的时间内可覆盖真实值(此处为正面朝上的实际概率)。
置信区间与 p 值之间存在等价关系,两者都可得出相同的决定:当且仅当 p 值小于 0.05 时,95% 置信区间未覆盖空值,并且在这两种情况下我们都拒绝无影响的零假设。

图 4:通过映射一组值来建立置信区间,这些值在用来定义零假设时不会导致拒绝给定观测结果。
总结
通过以抛硬币为例的一系列思考练习,我们已经建立起关于误报、统计显著性、 p 值、拒绝域、置信区间以及我们可根据测试数据做出的两个决定的直觉。这些核心概念和直觉可直接映射到比较 A/B 测试的实验与控制体验上面。我们定义了一个二者没有差异的“零假设”:也就是“B”体验没有改变会员满意度。然后我们进行同样的思考实验:假设会员满意度没有差异的话,实验组和对照组之间的指标差异可能有哪些结果,相关概率是多少?然后,就像抛硬币例子一样,我们可以把实验的观测结果跟这个分布进行比较,计算出 p 值并得出测试的结论。就像抛硬币的例子一样,我们可以定义拒绝域并计算出置信区间。
但是误报只是我们在对测试结果采取行动时可能会犯的两个错误当中的一个。在本系列的下一篇文章里,我们还会介绍另一种类型的错误:漏报以及与统计功效密切相关的概念。
漏报与功效

在《第 3 篇:误报与统计显著性》,我们定义了在解释测试结果时可能会出现的两种错误类型:误报与漏报。然后,我们用抛硬币这个简单的思维练习来建立对误报和相关概念(如统计显著性、p 值与置信区间)的直觉。在这篇文章里,我们将对漏报与统计功效的相关概念做同样的事情。

图 1:跟第 3 篇一样,我们还是拿抛硬币这个思维练习,比如这个凯撒·奥古斯都面朝上的游戏,一边建立起对核心统计概念的直觉。
漏报与功效
当数据没能表明治疗组与控制组之间存在有意义的差异,但实际上差异是存在的时候,就会出现漏报(假阳性,false positive)。继续第 3 篇里面的示例,漏报对应于把猫的照片标记成“没有猫”。漏报与功效这个统计概念密切相关,功效给出的是特定实验设计和规模下真阳性的概率。事实上,功效不过是1减去漏报率而已。
功效牵涉到的是对有关世界实际状态的特定假设的可能结果——跟我们在第 3 篇里面首先要假设零假设为真来定义显著性类似。为了建立对功效的直觉,我们不妨回到第 3 篇里面举过的那个抛硬币的例子,目标是用计算抛 100 次硬币时出现正面的比例这个实验来确定硬币是不是均匀的。在硬币是均匀的零假设下,结果分布如图 2 所示,用黑色标记。为了让那张图解释起来更容易些,我们对直方图的顶部进行了平滑处理。
如果硬币不均匀的话,这个实验会出现什么情况?为了让这个思维练习更具体些,我们不妨看看当我们有一枚硬币出现正面的平均概率为64% 时会发生什么(为什么要选这个数字后面我们会解释的)。因为我们的实验存在不确定性或噪音,所以我们不指望抛 100 次能够正好看到有 64 次为正面。但就像假设硬币是均匀的零假设一样,如果这个特定的替代性假设为真,我们就可以计算粗所有可能的结果。这种分布如图 2 的红色曲线所示。

图 2:用掷100 次硬币然后计算正面朝上的占比这个例子来说明功效。黑色和红色虚线分别显示的是假设出现正面概率为 50%(零假设)与 64%(替换假设的特定值)的结果分布。在本例中,该替代方案的功效为 80%(红色阴影)。
从上图看,功效是替代分布(红色)里面超出零假设(蓝线和黑色曲线;参见第 3 篇)临界值的部分。在本例中, 替代分布(红色)有80%落在了较高的蓝色线(该线划定的是右侧拒绝区域的临界值)的右侧。假设这枚硬币正面朝上事实上的概率是 64%,那么本次测试的功效就是 80%。为了完整起见,替代分布(红色)还有一小部分落在左侧拒绝区域内(蓝色短线的左侧)。
检验的功效跟特定的假设的效应量相对应。在我们的例子里面,如果这个不均匀的硬币正面朝上的实际概率为 64%,则检测硬币是否不均匀的功效为 80%。解释如下:如果硬币正面朝上的概率为 64%,并且我们反复进行抛 100 次的实验并按照 5% 的显著性水平做出决定,那么我们每5次实验得出拒绝硬币是均匀的零假设的结论中大约有 4 个是对的。这些重复的实验当中有 20% 会导致漏报:也就是我们不会拒绝硬币是均匀的零假设,哪怕其实硬币是不均匀的。
提高功效的办法
在设计 A/B 测试的时候,我们首先要确定显著性水平(约定为 5%:如果治疗与控制之间没有差异的话,我们有 5% 的可能性出现误报),然后我们设计实验来控制漏报。我们可以通过三个主要手段来提高功效,减少漏报的可能性:
效应量。简而言之,效应量(A 组和 B 组之间的指标值差异)越大,我们能够正确检测到这种差异的概率就越高。为了建立直觉,不妨假设做个实验来确定硬币是否不均匀,我们要收集的数据是抛 100 里面出现正面的比例。现在设想两种场景。在第一种情况下,正面朝上的真实概率为 55%,而在第二种情况下为 75%。直观上(以及数学上!)我们的实验更有可能在在第二种情况下将硬币识别为不均匀。正面的真实概率与 50% 的零假设相差更大,所以实验产生的结果更有可能落在拒绝区域内。在产品开发的环境下,我们可以通过我们大胆增加要测试的假设的增量来增加指标变动的预期幅度。增加效应量的另一个策略是在会员满意度可能有更大的提升空间的产品新领域进行测试。也就是说,通过实验学习的乐趣之一是其中会有惊喜元素:有时候,看似微小的变化可能也会对最高级别的指标产生重大影响。
样本规模。实验的单位越多,功效越高,越容易正确识别较小的效应。为了建立直觉,再设想去做个实验来确定硬币是不是不均匀,我们要收集的数据是抛固定次数下正面朝上的比例,而正面朝上的真实概率为 64%。然后考虑两种情况:第一种情况,我们抛20 次硬币,第二种情况,我们抛100 次硬币。直观上(以及数学上!)而言,我们的实验更有可能在第二种情况下把硬币识别成不均匀。因为在有了更多数据的情况下,实验的结果会更接近 64% 的真实概率,而基于硬币是均匀的假设下,结果应该集中在 0.50 左右,导致拒绝区域侵占掉 50% 的值。在这些效应相结合下,因此如果拿不均匀的硬币做实验,数据越多,结果就越有可能落入该拒绝区域,从而产生真阳性。在产品开发环境里,我们可以通过给测试分配更多的会员(或其他单位)或减少测试组的数量来提高功效,不过在每次测试的样本量与同时可以进行的不重叠的测试数量之间需要做出权衡(样本量大,可进行的测试数就少)。
基础总体指标的可变性。指标在待测试总体里面越同质化,就越容易正确识别真实效果。这个的直觉有点难以理解,我们那个简单的抛硬币例子终于没法解释了。假设在Netflix这里,我们要进行一项测试,目的是看看某些减少延迟(比方说成员按下播放与开始视频播放之间的延迟)的措施是否有效。鉴于大家用来访问 Netflix 的设备与互联网连接的多样性,在我们的用户当中这个指标会存在很多自然的可变性。因此,如果测试治疗组的结果只是延迟指标小幅减少的话,是很难识别成功的——因为不同会员之间可变性的“噪音”比信号要强。相比之下,如果我们对采用类似网络连接与类似设备的一组会员进行测试的话,那么强度不大的信号就会更容易识别——因为可能会压制信号的噪音更少了。在 Netflix 这里,我们花费了大量时间来构建利用这种直觉的统计分析模型,并通过有效降低可变性来提高功效;相关做法的技术说明,请参见此处。
为合理和有意义的效应设定功效
功效和漏报率是假定效应量的函数。就像 5% 的误报率是一个被广泛接受的约定一样,功效的经验法则是将 80% 的功效定为合理且有意义的效应量的目标。也就是说,我们假设了一个效应量,然后设计实验(主要是设置样本大小),这样的话,如果治疗体验的真实影响如我们假设一样的话,在80%的时间内测试都能够正确地识别出效应的存在。在 20% 的时间内测试结果会是漏报:也就是说其实是有效果的,但我们对测试观察到的结果不在拒绝区域内,所以我们无法得出有效应的结论。这就是为什么上面的例子用了 64% 正面朝上的概率:抛100 次的实验功效为 80%。
合理的效应量由哪些东西构成这个问题很棘手,因为测试可能会产生意外结果。但是结合领域知识与常识一般可以提供可靠的估计。在测试历史悠久的领域,比方说帮助Netflix 会员选择适合自己的内容的优化推荐系统,我们对测试大致产生的效应量(不管是阳性还是阴性)已经有了明确想法。在对过去的效应量以及分析策略有了了解之后,我们就可以设置样本大小,来确保测试对合理的指标变动具有 80% 的功效。
不管是在这个实验设计阶段还是在决定往什么地方做出努力时,第二个考虑因素是要确定什么对用来决定测试的主要指标产生了有意义的效应。怎么才算有意义要取决于实验的影响领域(会员满意度、播放延迟、后端系统的技术性能等),以及与新产品体验相关的潜在工作或成本。我们不妨假设如果效应量小于主要指标 0.1% 的变化的话,则支撑新产品功能的成本就大于收益。在这种情况下,通过测试来检测指标是不是发生了 0.01% 变化就几乎没有意义,因为成功识别这种效应量并不会导致决策发生有意义的变化。同样地,如果对特定创新领域所做测试观察到的效应量对用户体验或业务来说始终都无关紧要的话,则表明我们可以把实验资源部署到其他更有效的地方了。
总结
本系列的第 3 篇和第 4 篇重点是对用来分析测试结果的核心概念进行定义并建立相关直觉:其中包括了假阳性(误报)、假阴性(漏报)、统计显著性、p 值,以及功效。
关于实验,有个事实也许会令人不安,那就是我们不能同时最大限度地减少误报和漏报。事实上,误报和漏报会相互制约。如果我们采用更严格的误报率,比方说 0.01%的话, A 和 B 之间没有差异的测试的误报数量就会减少——但这样也会降低测试的功效,增加那些存在有意义差异的测试的假阴性(漏报)率。用 5% 的误报率以及 80% 的功效是约定俗成的惯例,可以在限制发现错误与取得真正发现之间取得平衡。然而,在假阳性(或假阴性)会带来更大风险的情况下,研究人员可能就会抛开这些经验法则,好尽量减少某种类型的不确定性。
我们的目标不是要消除不确定性,而是去理解和量化这种不确定性,以便做出合理的决策。在很多情况下,A/B 测试的结果需要细致入微的解释,实际上测试结果本身也只是商业决策的一个输入。在下一篇文章里,我们会介绍怎么用测试结果建立起对决策的信心。
树立对决策的信心

在第 3 部分(误报与统计显著性)与第 4 部分(漏报与功效)里,我们讨论了支撑 A/B 测试的核心统计概念:误报、统计显著性与 p 值,以及漏报和功效。在本文中,我们将讨论困难的部分:在复杂的业务环境下,怎么运用测试结果来支撑决策?
关于 A/B 测试,我们需要面对一个令人不快的现实,那就是任何测试结果都未必潜在真相的反映。就像我们在之前的文章里面讨论的那样,好的做法包括先要设置并理解误报率,然后再设计出好的实验,从而有可能检测出合理且有意义的真实影响。这些统计学上的概念可以帮助减少并理解错误率,并在面对不确定性的时候做出正确决定。但特定实验的结果是误报还是漏报我们仍无法知道。

图 1:心存怀疑虽是一种不愉快的体验,但至少不像深信不疑那般荒唐——伏尔泰。
在用 A/B 测试来改进 Netflix 会员的体验时,我们发现有一点至关重要,那就是不要只关注数字(包括 p 值在内),还要用有力和合理的判断来解释结果,二者结合来确定是否存在令人信服的证据,能够说明新体验对于会员来说是好的。这些考虑因素跟美国统计协会在 2016 年的时候发表的关于统计显著性与 P 值的声明一致,以下三条直接引用(粗体)对我们的实验很有帮助。
“合适的推理需要完整的报告与透明。” 就像我们在第 3 篇(误报与统计显著性)所说那样:,按照惯例,我们的实验将误报率设为 5%。在实践上,如果我们进行 20 次实验(比如评估 20 种颜色的果冻豆是不是都跟粉刺有关)的话,预计至少会得到一个显著结果——即便事实上每个实验的零假设均为真,并没有产生实际效果。这就是多重比较问题了,有很多方法可以控制整体的误报率,但我们不会在这里介绍。不过,最重要的是不仅要报告和跟踪产生了显著结果的测试结果,还要报告和跟踪那些没有产生显著结果的测试结果。

图 2:关于误报,你需要了解的一切都在这儿了。
“ p 值或统计显著性并不能衡量效果的大小或结果的重要性。” 在第 4 篇(漏报与功效)中,我们讨论了实验设计阶段做好设计的重要性,这样才能让A/B 测试有很高概率能检测出合理的、有意义的指标变化。在解释结果的时候也要有相关考虑。即便结果具有统计显著性(p 值 < 0.05),估计的指标变动也可能很小,以至于对 Netflix 会员的体验无关紧要,我们最好把精力放在其他领域的创新上。或者,扩展新功能的成本相对于收益而言也许过高,反不如不推出这项功能,而是把资金投资到改善其他领域的产品体验上,从而更好地为会员服务。
“科学结论与商业或政策决策不应该光看 p 值是不是超过特定阈值。” 本文的其余部分将深入介绍我们的决策实践,重点会介绍我们是怎么通过 A/B 测试全面评估证据的。
用数据为效果说话
在为了支撑决策而评估证据时,有一种比较实用方法,那就是想象自己是新产品体验的辩护律师,为它收集理由:看有没有有足够的证据得出结论说,除了那 5% 的合理怀疑之外,新产品体验产生了对会员有益的真正效果。为了帮助大号这桩案子,在解释测试结果时我们会向自己提出这样一些的问题:
结果跟假设是否一致?如果假设跟优化后端基础设施的计算资源有关,结果显示用户满意度在统计上有了显著提高的话,我们会持怀疑态度。结果有可能是误报——或者更有可能是实验执行中出现错误或bug的结果(Twyman 定律,任何看起来有趣或与众不同的数据通常都是错误的)。有时候结果虽然令人惊讶但却是对的,不过更有可能要么是实验执行错误的结果,要么是误报,这会促使我们深入去挖掘数据,找出根本原因。
指标的故事是不是连贯一致?在第 2 篇(什么是 A/B 测试?)中,我们介绍了因果机制,说到了通过这种机制,对产品所做的更改会影响到此次测试指定的次要指标与主要决策指标,并且介绍了这种机制的重要性。在评估测试结果时,重要的是要看这些次要指标的变化情况。一般来说,这些次要指标往往跟特定实验相关,从而可以评估主要指标的变化是否遵循了假设的因果链。比方说,通过十大榜的实验,我们想看看把十大榜放进来能不能提高作品级别的参与度,以及会员是不是会在主页找到的观看内容会比在其他地方找到的多。用户对十大榜的参与度增加,来自主页的播放增加,这些会帮助我们增强信心,即十大榜实际上是提高了会员的整体满意度的。相比之下,如果十大榜治疗组主要会员的满意度指标上升,但对这些次要指标的分析显示,十大榜所包含的作品的参与度没有增加的话,我们就会持怀疑态度。也许十大榜对于会员来说并不是个很好的体验,它的存在导致更多会员离开主页,增加了对Netflix 搜索的使用——结果神奇的是,整体满意度还是提高了(也许是因为搜索体验较好)。或者这也可能是一次误报。不管是哪种情况,次要指标的变化都会引发质疑,以至于尽管主要决策指标发生了变化,但我们没法很自信地得出结论,认为所做处理激活了假设的因果机制。
那有没有有额外的支持或反驳证据,比方说某种体验的类似派生存在一致的模式?在一项实验中测试一个想法的多个变种其实很常见。比方说,对于 Top 10 体验,我们可能会测试多种设计变体以及多种Top 10 榜中主页的摆放位置。如果Netflix 会员觉得十大榜体验很棒的话,我们预期在这些不同的变体当中,其主要和次要指标都能看到类似的收益。有的设计可能更好一些,但如果不同变体均产生广泛一致的结果的话,就有助于说明十大榜体验是有用的。反过来,如果我们测试了 20 个设计和摆放变体,其中只有一个的主要决策指标中发生重大变化的话,我们会更加怀疑十大榜的有效性。毕竟,在误报率为5%的情况下,我们预计平均而言智慧得到一个显著的随机结果。
结果是否可重复?到头来,要想对结果树立信心,最可靠的办法是看看结果在后续的测试里面是不是可以重复。如果一开始的 A/B 测试的结果具有启发性但不是决定性的话,我们一般还会继续测试,根据第一次测试学到的结果对假设进行改进。比方说,通过十大榜测试,我们可能会观察到部分设计以及放置选择往往会带来好的指标变化,其中部分具备了统计的显著性。然后,我们会改进这些最有希望的设计和放置方案变体,然后开始新的测试。如果上一次测试的体验比较少的话,我们还可以扩大规模,从而提高功效。还有一个策略,在产品变化很大的时候比较有用,那就是把胜出的治疗体验逐步推广到全部用户或会员,从而确认在 A/B 测试中看到的好处是真的,并确保没有产生意外的有害影响。在这种情况下,我们不是一下子向所有用户推出新体验,而是慢慢增加获得新体验的成员的比例,并观察与仍然接受旧体验的会员之间的差异。
与决策理论的关联
在实践上,每个人都有不同的框架,可以用来解释测试结果,做出决定。除了数据之外,每个人都会基于之前做过的类似的A/B测试,把自己的先验信息带进来,以及他们对决策的潜在收益和后果的评估所制定的损失或效用函数带来进。使用决策理论(包括贝叶斯决策理论),有多种方法可以将这些人类这些评估风险和收益的判断形式化。这些方法涉及到对做出正确或错误决策的效用做出正式评估(比方说,测算推出未能改善会员体验的代码变更的代价)。如果在实验结束时,我们还可以估算出每个处理组犯每一种类型错误的概率的话,就可以做出让会员的预期效用最大化的决策。
决策理论是吧统计结果与决策结合起来,所以是基于 p 值的决策方法的一个很吸引人的替代方法。不过,由于特定效用函数的细微差别,决策理论方法可能难以广泛应用到实验当中。虽然不完美,但我们在本系列文章所介绍的频率论假设检验方法(重点是 p 值与统计显著性),却是一个广泛易用的框架,可以用来解释测试结果。
解释 A/B 测试结果还有一个挑战,那就是对多个指标(主要决策指标和次要指标)的变动做出合理解释。关键挑战之一是指标本身往往不是独立的(也就是指标通常可能会朝同一方向或相反方向变动)。统计推理和决策理论一些更先进的概念也适用这里,而Netflix也在致力于研究给这个多维度指标的解释问题带来更多的定量方法。我们的做法是用贝叶斯推理把有关历史指标变动的分析信息纳入到分析里面,敬请关注!
最后,值得注意的是,不同类型的实验在决策过程中都要不同程度地引入人工判断。比方说,Netflix 采用了一种 A/B 测试形式来确保将新版软件安全地部署到生产环境。在面向所有会员发布新版本之前,我们会先做一个一个小型的 A/B 测试,让部分会员接收旧版代码,部分会员接收新版,确保错误或意外后果不会降低会员体验或基础设施的性能。对于这个用例而言,我们的目标是自动化整个部署过程,并运用遗憾最小化以及基于测试的决策等框架。通过自动部署新版,或者标记降低的指标给开发者,从而节省了开发人员的时间。
总结
本文描述了如何为产品创新寻找支撑理由的办法,那就是仔细分析实验数据,同时也指出了不同类型的测试需要引入不同级别的人工输入到决策过程之中。
在不确定的情况下做出决策(包括根据 A/B 测试的结果采取行动)是很困难的,而且我们在本系列文章里面所描述的工具很难得到正确应用。但是这些工具(包括 p 值)已经受住了时间的考验,就像美国统计协会主席在 2021 年关于统计显著性与可重复性的工作组声明中所强调的那样:“p 值与显著性检验的运用,若是得到正确应用和解释的话,是不应该放弃的重要工具。. . . [它们] 增加了从数据得出结论的严谨性。”
公开分享关键产品的测试结果,并对此进行辩论,这种概念在 Netflix 的实验文化里面已经根深蒂固,我们会在本系列文章的最后一篇中加以讨论。不过在下一篇文章中,我们将讨论 Netflix 不同的实验领域,以及聚焦实验的不同角色。
实验是主要关注焦点

实验和因果推理是 Netflix 数据科学与工程组织关注的主要焦点领域之一。为了给全公司的重大决策提供直接支持,Netflix 有许多的数据科学团队会直接跟产品经理、工程团队以及其他业务部门合作,去设计实验、进行实验并从实验中学习。为了实现规模化,我们已经建立了一个内部实验平台(简称 XP),而且还会继续投资。我们有意识地鼓励中心化的实验平台跟那些数据科学团队之间的协作,后者也将跟Netflix的业务部门直接开展合作。
Netflix的数据科学家直接跟公司的业务部门合作,进行实验与因果推理,他们对自己所工作的业务领域有着深入的领域理解与直觉。担任这些角色的数据科学家运用科学方法改善Netflix当前以及未来会员的体验,并参与实验的整个生命周期:包括数据探索与构思;设计并执行测试;分析测试结果,为决策提供支撑;综合来自众多测试(与其他来源)的知识,从而了解会员的行为,并确定创新的机会领域。这是一个科学严谨的良性循环,测试基于一般原则(演绎)做出的,有关会员行为与偏好的特定假设,并概括从实验中学到的东西,从而建立起我们对会员的概念理解(归纳)。这个循环让我们建议对 Netflix 服务的各个方面进行快速创新,对我们正在为会员带来更多快乐树立起信心,因为我们的决定是有经验证据的支持的。
这些角色的成功需要具备渊博的技术技能、主动的态度,以及对本领域空间具有强烈的好奇心。Netflix 的数据科学家不懈地向数据追求知识,并不断探索更远的距离,总是提出下一个问题。“我们还能从这次测试中学到什么,好用于下一次测试?” “去年的测试我能够综合出哪些信息,好了解明年的学习路线图的机会有多大?” “这个问题还可以得出哪些数据和直觉?” “根据我在 Netflix 的经验,在哪些地方还有机会可以测试和改进当前的体验?”我们期待我们的数据科学家能够突破实验设计与分析的界限:根据产品特定部分的学习议程,还有哪些新方案或方法可以产生有价值的洞察?业务合作伙伴也将这些数据科学家视为值得信赖的思想伙伴,因为他们在会员与 Netflix 体验方面已经积累了深厚的领域专业知识。
以下就是 Netflix 对部分实验领域,以及每个领域的部分创新工作的简要总结。所列内容并未详尽,我们关注的焦点是那些机会不太明显的领域。这里所说的机会是指通过实验去学习和提供更好的会员体验的机会。

Netflix 全公司都在利用 A/B 测试来为当前与未来的会员带来更多乐趣。
增长广告
Netflix的目标是为全世界提供娱乐!我们的增长团队在社交媒体平台以及其他网站上做广告,分享有关即将上映的影片以及新产品功能的新闻,最终的目标是增加全球 Netflix 会员的数量。对于开发利用因果推理来决定广告预算运用方式的自动化系统来说,数据科学家发挥着至关重要的作用。
在广告方面,实验对象(我们购买的广告)是 Netflix 的直接货币成本。因此,我们对于决策是有风险厌恶的,会积极降低购买无法有效吸引新会员的广告的可能性。在我们这个领域要规避这种风险很有挑战性,因为实验往往功效很低(参见第 4 部分)。比方说,我们要靠双差法来进行比较,对每一个广告实验的潜在不同受众体验进行公正的比较,而这些方法可以有效地减少样本量(非常感兴趣的读者可以了解更多细节https://www.msi.org/wp-content/uploads/2020/06/MSI_Report_15-122.pdf)。解决这些功效降低有一个办法,就是拉长实验的时间——但这会延缓整个创新的步伐。
在本文中,我们将聚焦该领域的两个相关的实验问题,并简要描述我们是怎么在保持高节奏实验的同时解决这些问题的。
回顾一下,我们在第 3 部分和第 4 部分描述了两种类型的错误:误报(或 第一类错误)以及漏报(第二类错误)。尤其是在实验功效较低的情况下,其他两种错误类型很可能会发生,因此,在对具有统计显著性的测试结果采取行动时要考虑这一点:
当我们观察到具有统计显著性的结果,而估计的指标变化显示出跟事实相反的信号时,就发生了S类错误(Type-S error)。
当我们观察到具有统计显著性的结果,而估计的指标变化大小相对于事实被放大(或夸大)时,就会发生 M 类错误(Type-M error)。
如果测试结果具有统计显著性(具有阳性的指标变化)我们就宣布为赢家,那 S型错误就会意味着我们其实选择了错误的实验推广用于生产,这样一来,我们未来所有的广告支出都会产生次优结果。M 型错误意味着我们高估了实验的影响。短期而言,M 型错误意味着我们会夸大结果,从长远来看,可能会导致高估了优化的预算水平,甚至把未来的研究方向的优先事项都给搞错了。
为了减少这些错误的影响,我们采用了贝叶斯方法对增长广告进行实验。我们在这方面进行了很多的测试,并利用了过去测试的指标变化分布作为分析的额外输入。直观上(以及数学上),这种方法会让估计的指标变化幅度更小,置信区间更窄(参见第 3 部分)。综合来看,这两种效应降低了S型错误与M型错误的风险。
由于及早结束次优实验的好处可能会非常巨大,我们还希望能够做出在统计上有效的明智决定,好尽快结束实验。这是我们数据科学团队一个非常活跃的研究领域,作为最优停止的方法,我们已经调查了成组续贯试验(Group Sequential Testing)以及贝叶斯推理(Bayesian Inference)(有关这两种方法的更多信息,请参见下文)。后者跟类似预期损失(或风险)最小化等决策理论概念相结合使用时,可用来对不同决策(包括提前结束实验的决定)的影响做出正式评估。
支付
支付团队认为,不管未来或当前会员采用哪种支付方式(信用卡、直接借记卡、移动运营商计费等),都绝不应成为注册 Netflix 的障碍或会员离开 Netflix 的原因。我们的会员与支付团队之间有许多接触点:我们在 Netflix 与新会员之间建立起关系,通过续订来维持这些关系,而(可悲的是!)当会员选择取消时,这些关系就会结束。
我们对 Netflix 产品的支付方式、身份验证体验、文案、 UI 设计,以及任何其他我们可以为会员提供顺畅支付体验的地方进行创新。在所有这些领域,我们都力求在本系列文章中列出的测试原则的指导下,提高决策的质量和速度。
决策质量肯定不想这么简单,当 p 值(参见第 3 部分)降至 0.05 以下时,告诉大家“发布出去!”即可。首先要有一个好的假设以及一个清晰的决策框架——尤其是要在长期目标以及在务实的时间框架内弄清楚之间做出明智的平衡。我们的流量或时间都是有限的,所以有时候我们不得不做出艰难选择。有没有可以更快产生信号的指标?使用这些指标的权衡取舍是什么?调用该测试的预期损失跟跑其他测试的机会成本相比如何?这些都是有趣的问题,我们一直在寻求改进。
我们还积极投资,致力于提高决策速度,通常会跟实验平台团队密切合作。在过去一年的时间里,我们为加快实验的三种方法试验了各种模型与工作流程:包括成组续贯试验(GST)、高斯贝叶斯推理(Gaussian Bayesian Inference)以及自适应测试(Adaptive Testing)。这些技术均可可以自行提高我们的实验吞吐量;综合运用这些方法有望改变 Netflix 支付实验的速度轨迹。
伙伴关系
我们希望所有会员无论何时何地访问 Netflix,都能享受到高品质的体验。我们的合作伙伴团队致力于确保将 Netflix App 以及我们的最新技术集成到各种消费产品当中,并且确保 Netflix在所有这些设备上很容易就能被发现和使用。我们还与移动与付费电视运营商合作,建立捆绑套餐产品,将 Netflix 的价值带给更多的未来会员。
在合作伙伴领域,我们想要了解的众多体验,比方说合作伙伴推动的营销活动,均不适用于作为本系列关注的 A/B 测试框架。有时候,用户会自行选择体验,或者一次性把新体验推出给一大群用户。这种随机性的缺乏妨碍了根据 A/B 测试得出直接因果结论。在这些情况下,我们采用了准实验以及观察因果推理技术,用来推断我们正在研究的体验的因果影响。数据科学家在这些分析中扮演了一个关键角色,那就是让利益相关者了解这些研究相关的警告提醒,同时仍能提供严格的评估以及可行动的洞察,并为一些原本模棱两可的问题提供清晰的结构。以下是这些分析存在的一些挑战与机遇:
混淆了实验选择。用户自行选择实验(treatment)体验或对照(control)体验时(相对于第 2 部分里面讨论的随机分配),最终进入哪种体验的概率可能要取决于他们的Netflix使用习惯。这些基线指标也跟结果指标(比方说会员满意度)天然相关,所以会给观察到的实验对结果指标的影响造成混淆。当治疗选择或治疗吸收会随时间而变化时,问题会变得更加严重,这可能会导致混淆情况会随时间而变化。为了应对这些情况,我们采用了逆倾向得分(inverse propensity scores)、双稳健估计(doubly robust estimators)、双差法,或者工具变量等方法来析取可行动的因果洞察,并通过纵向分析来解释时间依赖性。
综合控制与结构模型。针对混淆进行调整需要让预处理协变量与、跟响应变量处在同样的综合水平上。但是,有时候我们没法访问Netflix 会员个人级别的信息。在这种情况下,我们采用综合控制与结构模型来分析总体层面的数据。
敏感性分析。在缺乏真正的 A/B 测试的情况下,我们的分析依赖于利用可用数据来调整治疗与结果指标之间的虚假相关性。但这件事情的好坏取决于可用数据是否足以解释所有这些相关性。为了了解所做出的因果声明的有效性,我们会进行敏感性分析,从而评估发现的稳健性。
信息收发
在 Netflix,我们一直在寻找方法来帮助我们的会员选择适合自己的内容。我们通过Netflix 产品为每一位会员提供个性化体验来做到这一点。但是,我们可以通过其他方式帮助会员了解新的或相关的内容,这样等他们在漫长的一天结束后想放松一下时,就会想到有些很棒的东西可以看呢?
消息传递,包括电子邮件与推送通知,是我们让会员保持知情的关键方式之一。在会员主动观看内容以外的时间里,Netflix 的消息传递团队还努力为他们带来快乐。Netflix 有了或者即将推出什么新功能?有哪些完美内容可以告诉我们的会员,好让 “预约好电影之夜的时间”,在路上看?作为一支消息传递团队,我们也注意到会员生活当中遇到的各种数字干扰,所以我们一直在努力着,希望做到在合适的时间向合适的会员发送合适的信息。
这一领域的数据科学家与产品经理和工程师密切合作,开发消息传递的解决方案,最大限度地提高我们会员的长期满意度。比方说,我们一直致力于为我们的会员提供更好、更个性化的消息传递体验。每一天,我们都会根据历史数据,以及告诉会员会收到什么消息(如果有的话)的输出,预测每一条候选消息会如何满足会员的需求。为了确保我们对个性化消息传递方案的创新能为会员带来更好体验,我们采用 A/B 测试来学习并确认我们的假设。
在 Netflix 当消息传递数据科学家有一点很令人兴奋,那就是我们正在积极开发和使用复杂的学习模型来帮助我们更好地为我们的会员服务。这些模型以bandit算法为基础,会不断地走多了解一些会员对消息传递的偏好与将学到的这些知识用于让会员更满意之间做出平衡。这就像一个持续的 A/B 测试,总是在部署新的治疗方法。这个框架让我们得以进行许多令人兴奋的,具有挑战性的分析,而不必每次都部署新的 A/B 测试。
证据选择
当会员打开 Netflix app时,我们的目标是帮助他们选择一部非常适合他们的作品。其中的一种做法是不断改进推荐系统,为每一位会员提供个性化的主页体验。除了作品推荐以外,我们还会努力挑选和展示同样个性化的艺术作品、图像以及其他的视觉“证据”,并帮助每个会员了解为什么特定作品对他们来说是一个不错的选择——尤其是如果该作品对服务来说是新的,或该会员不熟悉的话。
为了实现这一目标,关键是要有卓越的创意以及对证据选择系统的持续改进。在证据选择领域工作的数据科学家运用在线实验以及离线分析,为两方面的产品决策提供健壮的因果洞察。这两方面的产品决策包括创建证据资产(比方说出现在 Netflix 主页上的图片),以及建立将会员与证据配对的模型。
这一领域的数据科学家站在内容创建与产品开发的交叉点上,他们面临着一些独特的挑战:
预测证据性能。假设我们在开发一种生成证据的新方法(比方说预告片)。理想情况下,我们希望,在做出可能需要时间才能获得回报的潜在巨额投资之前,对新的证据类型的积极成果要有所了解。通过开发出可用因果关系验证的预测模型,数据科学家可以帮助为此类投资决策提供信息。
将会员与最佳证据匹配。高质量且选择正确的证据是为所有Netflix会员带来出色经验的关键。我们在测试和了解哪些类型的证据最有效,以及如何将会员与最佳证据相匹配的同时,还努力通过投资于有效的 A/B 测试方法,最大限度地减少潜在的不利因素,从而让我们得以快速停止次优的治疗体验。
为证据开发提供及时的因果反馈。来自数据(包括来自 A/B 测试)的洞察,被广泛用来推动创作出更好的艺术品、预告片以及其他类型的证据。除了 A/B 测试以外,我们还致力于开发实验设计与分析框架,从而提供细粒度的因果推理,并跟上我们学习议程的规模。我们使用了contextual bandit算法框架,从而最大限度地减少将会员与证据匹配的遗憾,而且通过与我们的算法工程团队的合作,我们已经建立了记录反设事实的能力:换一种的选择策略会推荐什么内容?这些数据为我们提供了一个平台,用来运行丰富的离线实验,并得出因果推理,从而应对我们的挑战,并回答 A/B 测试可能难以回答的问题。
流媒体
既然你已经注册了 Netflix ,而且发现了一些令人兴奋的内容,那么当你按下播放时会发生什么呢?在幕后,Netflix 的基础设施已经启动,会寻找用最快的方式把你选择的内容用出色的音频和视频质量提供给你。
参与提供高质量音频和视频的众多工程团队用 A/B 测试来改善我们为全球会员提供的体验。创新领域包括 Netflix App 本身(需要兼容数千种设备)、编码算法,以及对内容在我们的全球 Open Connect 分发网络上放置位置的优化方法。
这个业务领域的数据科学角色强调的是大规模实验以及对工程团队自主实验的支持:我们怎么才能让这些团队高效、有信心地执行、分析A/B 测试,并基于此做出决策?我们将探讨数据科学与工程团队之间的合作关系令本领域受益的四种方式。
自动化。由于流媒体实验数量众多(每年数千次)且持续时间往往很短,因此我们已经对工作流自动化进行了投资。比方说,我们通过将实验平台的 API 直接跟 Spinnaker 部署管道集成,搭载在Netflix的工具上,安全地部署在 Netflix 客户端。这使得工程师可以用一个配置文件设置、分配和分析他们所做变更的效果。这个模式更进一步的话,用户甚至可以通过将一个实验跑多轮实现“自动化的自动化”,以实现顺序优化。
超越平均水平的处理效应。由于许多重要的流媒体视频和音频指标不能很好地逼近正态分布,我们发现超越平均的处理效应至关重要。为了克服这些挑战,我们与实验平台合作开发和集成了用于压缩数据的高性能自助方法,从而可以快速估计处理效应的分布与分位数,甚至包括最病态的指标。对分位数进行可视化可以为我们带来关于处理效应的新洞察,这些图表现在已经可以自动生成,作为自动化报告的一部分,往往被用来给高级产品决策提供直接支撑。
A/B 测试的替代方案。Open Connect 工程团队面临着众多的衡量挑战。拥塞会导致实验组与对照组之间发生交互;或者其他情况下,由于我们的流量导向算法的特性,我们没法做到随机化。为了应对这种种挑战,我们正在对准实验方法进行大力投资。我们采用了Metaflow,将用于指标定义的现有基础设施,来自我们的实验平台(Experimentation Platform)的数据收集,与基于双差法的自定义分析方法配对。这个工作流程使得我们能够快速部署自助服务工具,来衡量传统 A/B 测试无法衡量的变化。此外,我们的模块化方法让跨 Open Connect 用例扩展准实验变得很容易,这使得我们能够根据每个团队的不同需求更换数据源或分析方法。
支持自定义的指标与维度。最后,我们开辟了一条(相对)无障碍的路径,让所有的实验者(不仅仅是数据科学家)在需要的时候可以快速创建自定义的指标与维度。除了我们为该领域的所有测试准备的长期体验质量指标以外,任何可以记录的内容都可以快速传送到实验平台,进行分析与可视化。如此,我们的工程师就可以沿着铺砌好的道路提出和回答更精确的问题,这样他们就可以少花些时间去摸清楚门道,而有更多的时间去测试令人兴奋的想法。
扩大实验规模,投资基础设施
为了支持 Netflix 实验计划的规模与复杂性,我们下力气开发了自己的实验平台(内部叫做“XP”)。我们的 XP 为实验的整个生命周期(从体验管理到分析)提供强大的自动化(或半自动化)解决方案,并能满足大型测试的高吞吐量产生的数据规模要求。
XP 提供了一个框架,让工程团队可以在代码中定义一组测试处理体验,然后用这些来配置实验。之后,平台会随机选择会员(或我们可能要进行实验的其他单元,如回放会话),分配给实验,然后将其随机分配给每个实验里面的体验(对照体验或实验体验)。调用XP的Netflix 服务然后会根据会员参与了哪些测试以及这些测试中的哪些变体,确保提供了正确的体验。我们的数据工程系统则会收集这些测试元数据,然后再将它们跟我们的核心数据集相结合起来:包括关于会员和非会员如何与服务交互的日志、跟踪流视频传输的技术指标的日志等等。然后,这些数据会流经自动分析管道,并用Ablaze( Netflix 报告和配置实验的前端)生成报告。跟 Netflix 的文化一致,公司里面的每个人都可以访问测试结果,而不仅限于数据科学家和决策者。
除了考虑当前的实验计划以外,Netflix XP还用对未来创新的关注加以平衡。这是一个良性的飞轮,因为 XP 的目标是利用今年实验计划所突破的极限,把它变成明年的一键式解决方案。这可能涉及开发用于将会员(或其他单元)分配给实验的新的解决方案,跟踪不同测试存在冲突的新方法,或者是实验设计、分析以及基于实验做决策的新方法。比方说,XP 就跟我们的工程团队在功能标记与体验交付方面密切合作。这些努力成功地为 Netflix的开发人员提供了无缝体验,得以将实验完全集成到软件开发生命周期之中。
为了分析实验,我们开发 Netflix XP 的时候就考虑了大众化与模块化。大众化是指数据科学家(还有其他用户)可以直接贡献指标、分析测试的因果推理方法以及可视化。通过这三个模块,实验者可以编写灵活的报告,量身定制自己的测试,然后送到我们的前端 UI 以及支持临时和探索性分析的notebook环境。
这种模式可以支持快速原型设计与创新,当我们对工程问题进行抽象时,数据科学家就可以直接向生产实验平台贡献代码——而不必自己成为软件工程师。随着分析方法变得更加复杂,对计算要求更高,为了确保平台功能能够支持所需的规模(测试的数量和规模),我们已经对专业知识的形成进行了投资,从而为测试分析提供健壮的计算型因果推理软件。
搭建实验平台需要同理合作:软件工程师搭建和维护后端工程基础设施;UI 工程师开发用于管理和分析实验的ABlaze前端;具备因果推理和数值计算专业知识的数据科学家则可以开发、实施、扩展尖端的方法并将其社会化;还需要确保利益相关者可以访问我们的产品的用户体验设计师;以及让平台本身朝着正确方向创新的产品经理。这是一项令人难以置信的工作,需要多学科的努力,在XP这里工作提供了发展跨学科的广泛技能的机会。由于 Netflix 的实验是那么的普遍,那些从事 XP 工作的人会面临挑战,并与来自 Netflix 各个角落的同事合作。这是从各种角度广泛了解“Netflix 工作机制”的好途径。
总结
Netflix对数据科学团队进行投资。这些团队会利用 A/B 测试、其他实验范式,以及更广泛的科学方法,从而支持为当前和未来会员提供的产品的持续创新。同时,我们投资建立了一个内部的实验平台 (XP),以支持我们的实验与学习计划的那种规模及复杂性。
在实践上,这两方面投资之间的界限其实很模糊,我们鼓励 XP 以及面向业务的数据科学家之展开合作,包括举办 A/B 实验研讨会以及因果推理峰会等内部活动。为了确保 Netflix 的实验能力不断发展,从而满足实验从业者的实际需求,对于开发新的测量与实验管理能力,以及支持和扩展研究的新软件系统,我们有意识地确保XP 与实验从业者之间的通力合作。此外,我们有意识的协作还为大家提供了很好的机会,让他们得以领导和贡献出高影响力的项目,为我们提供了工程、测量以及内部产品开发等方面的新能力。由于 Netflix 对实验的战略价值,这些合作努力受到了包括我们的高管在内的广泛关注。
到目前为止,本系列已经讨论了 A/B 测试的原因、内容与方式,产品开发要想从实验型方案中收获好处,所有这些都是必需的。但是要是没有一点魔法的话,光有这些基础还是不够的。这种魔法将成为本系列下一篇,也是最后一篇文章的重点:贯穿 Netflix上下的学习与实验文化.
公众号改变了阅读规则,有朋友反映有时会收不到文章推送,为避免错过好文,请朋友们将本公众号加“星标★并点“在看”吧。第一步:点击上方蓝字”,第二步:点击右上角“……”,第三步:设为星标★。
《领导者管理笔记》读者群开放,如你致力于提升领导力
请加(微信:Tapmadou)进群
@THE END

文章来源 :领导者养成笔记「ID:GoToLead 」,转载请公众号回复“转载”
版权说明 :我们尊重原创者版权,除我们确实无法确认作者外,我们都会注明作者和来源。在此向原创者表示感谢。本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权立即删除内容;本文内容为原作者观点,并不代表本公众号赞同其观点和对其真实性负责。

点击下方“在看”
你也越好看!
☟☟☟

