导读:在数字化时代的大背景下,在数据驱动的产品增长理论和实践中,AB实验起的作用越来越重要。越来越多的岗位需要产品、运营、数据等职位候选人掌握AB实验相关的知识。
作者:刘玉凤
来源:华章计算机(hzbook_jsj)
本文首先介绍AB实验的基本概念和原理,然后介绍AB实验的3个基本要素—实验参与单元、实验控制参数、实验指标,以及对于这3个基本要素的要求,之后介绍AB实验的2个核心价值——验证因果关系和量化策略效果,接着介绍在实践应用中AB实验的2个关键特——先验性和并行性。
01
什么是AB实验
近几年随着增长概念的普及,其重要增长手段——AB实验的曝光度也越来越高。AB实验从推荐系统诞生开始,AB实验就扮演着重要的角色
1
AB实验的定义
AB实验又称为受控实验(Controlled Experiment)或者对照实验。AB实验的概念来自生物医学的双盲测试,双盲测试中病人被随机分成两组,在不知情的情况下分别给予安慰剂和测试用药,经过一段时间的实验后,比较这两组病人的表现是否具有显著的差异,从而确定测试用药是否有效。
2000年,Google工程师将这一方法应用在互联网产品测试中,此后AB实验变得越来越重要,逐渐成为互联网产品运营迭代科学化、数据驱动增长的重要手段。从国外的Apple、Airbnb、Amazon、Facebook、Google、LinkedIn、Microsoft、Uber等公司,到国内的百度、阿里、腾讯、滴滴、字节跳动、美团等公司,在各种终端(网站、PC应用程序、移动应用程序、电子邮件等)上运行着大量的AB实验。这些公司每年进行数千到数万次实验,涉及上亿的用户,测试内容涵盖了绝大多数产品特征的优化,包括用户体验(颜色、字体和交互等)、算法优化(搜索、广告、个性化、推荐等)、产品性能(响应速度、吞吐量、稳定性、延迟)、内容(商品、资讯、服务)生态管理系统、商业化收入等。
因为AB实验被引入互联网公司后,应用场景主要是大规模的在线测试,所以也被称作在线AB实验或者在线对照实验(Online Controlled Experiment,OCE)。本文如果没有特殊说明,提到的AB实验均指在线AB实验。常见的在线AB实验中,用户被随机、均匀地分为不同的组,同一组内的用户在实验期间使用相同的策略,不同组的用户使用相同或不同的策略。同时,日志系统根据实验系统为用户打标记,用于记录用户的行为,然后数据计算系统根据带有实验标记的日志计算用户的各种实验数据指标。实验者通过这些指标去理解和分析不同的策略对用户起了什么样的作用,是否符合实验预先的假设。如图1所示,图中流程概括了AB实验的经典模式。
图1 AB实验流程
将图1所示的流程应用到产品迭代中,就是将具有不同功能、不同策略的产品版本,在同一时间,分别让两个或多个用户组访问。这些参与实验的用户组是从总体用户中随机抽样出来的,一般只占总体用户的一小部分,而且不同组用户的属性、构成成分是相同或相似的。先通过日志系统、业务系统收集各组用户的行为数据和业务数据,然后基于这些数据指标分析、评估出相比之下更好的产品版本,最后推广到全部用户。
以图2为例,我们试图通过AB实验找出哪个颜色的横幅位点击率更高:A组保持浅色横幅不变,B组采用深色的横幅,分析哪个颜色更能引起用户的关注,提升用户的点击率。如果通过实验发现深色横幅的点击率更高,就将深色横幅位推广到全部用户。当然,在实际应用中,AB实验的效果评估一般没有这么简单,比如除了点击率之外,还需要综合考虑其他的指标。
图2 AB实验测试哪个颜色横幅位点击率更高
2
AB实验的类型
从不同分类视角来看,AB实验有着不同的类型。
从实验实施的产品形态来看,AB实验可以分为App类型、PC类型、网页页面类型等。
从实验代码运行的机制来看,AB实验可以分为前端页面类型、后端服务类型等
从实验分流的对象来看,AB实验可以分为用户类型、会话类型、页面类型、元素类型等。
从实验服务调用的方式来看,AB实验可以分为SDK类型、接口服务类型等。
从实验内容来看,AB实验可以分为交互类、算法类、内容类、工程性能类等。
这些是AB实验常见的分类方式。当然,AB实验的分类不局限于以上分类,可以根据实际情况,采用不同的分类方式。不管何种类型的AB实验,都应符合分流→实验→数据分析→决策的基本流程,以及需要满足AB实验的3个基本要素。
02
AB实验的3个基本要素
AB实验虽然能帮助我们更科学地做出决策,但并不能科学地辅助所有决策,这是因为不是任何一件事情都可以进行AB实验,下面将详细介绍进行AB实验首先需要具备的基本要素。
1
实验参与单元
进行AB实验首先必须要有能够参与实验的对象,即实验参与单元,一般来说就是能参与实验的用户。在AB实验中,把参与实验的用户分为两组或者多组,其中至少有一组作为对照组,对照组用户什么都不改变,作为对比实验效果的基线;其余组为实验组,实验组可以进行各种产品特征实验。想要确保实验的科学性,参与用户还需要满足几个关键条件。
1)实验参与单元互不干扰
实验参与单元(例如实验用户)被分配到不同的实验组,需要确保不同的实验参与单元互相不干扰或者干扰小到可以忽略。如果不同实验组之间的实验参与单元相互影响,那么就会影响实验结果的正确评估。
2)实验参与单元合理随机化
实验参与单元随机化就是将随机化过程应用于实验参与单元,以实现将它们分到不同的实验组的目的。科学随机化非常重要,需要确保分配给不同实验组的实验参与单元在统计学上是相似的,从而以较高概率确定因果关系。在随机化的过程中,必须以持久且独立的方式将实验参与单元映射到实验组。持久的意思是,实验参与单元在整个实验期间不得改变分组。为了保证实验效果,实验参与单元将不被告知任何实验相关的信息。实验参与单元最好对于实验信息无感知,否则会对实验造成干扰。
不要对随机化掉以轻心,在实践中,存在很多失败的随机化例子,都说明了科学随机化的重要性和面临的挑战。造成随机过程失败的原因多种多样,简单来说,就是随机过程变得不随机了,使得在实验前不应存在统计学差异的实验组和对照组出现显著差异,出现了实验影响以外的影响因素干扰实验结果。我们将在第5章详细讨论实验随机分流的问题。
3)足够的实验参与单元
根据统计学的理论,AB实验的实验参与单元需要达到一定数量,统计指标才是有意义的(相关统计知识在《AB实验:科学归因与增长的利器》第3章介绍)。特别是在进行一些指标提升幅度不是很大的实验时,实验参与单元的数量尤其重要。一般来说,实验实际提升效果越不明显,就越需要更多的参与单元来确认实验效果。同理,实验参与单元的数量越多,实验就可以检测出越小的效果变化,检测的精度也就越高。
以内容行业的AB实验经验来说,对于点击量、曝光量等变化幅度较大的指标,检测出1%的指标相对变化,往往需要十万级以上的实验参与单元;对于留存率这类变化幅度较小的指标,检测出1%的指标相对变化,需要更多的实验参与单元。如果实验参与单元数量不够,比如一些初创、垂类的产品,用户只有几千或几万个,这个时候通过AB实验检测出的变化是粗粒度的,可能只能有效检测出3%、5%甚至10%以上相对幅值的实验效果。
从直观上也不难理解,用户越少,指标本身的变化和波动就越大,我们往往难以判断一个实验组和对照组之间的小幅度差异是天然的随机波动还是实验带来的效果。如果这个差异值足够大,大到超出了一般的波动范围,那么这个差异是实验带来的可能性就高一些。对于小用户体量的产品来说,预期提升很小的指标一般不建议进行AB实验。如果一个优化策略能够带来很大的提升,那么用较少的用户量也是可以检测出的。
处于初创期的产品往往能够通过渠道放量、用户增长等方式快速获得更多用户,从而逐步具备进行更加精准的AB实验的条件。随着用户规模的增加以及业务发展的日趋成熟,检测较小的变化变得越来越重要。例如,像亚马逊这样的大型网站,某指标0.5%的增长带来的收益可能就是上亿美元。不同阶段的产品、不同数量级的实验单元都可以做AB实验,关键是实验参与单元数量要达到满足实验检测当前业务变化所需的精度,并将实验结果误差控制在可接受的范围。如何找到合适的实验单元量以及业务评估精度,在《AB实验:科学归因与增长的利器》4.3节会详细介绍。
2
实验控制参数
实验控制参数是影响产品某项指标的可控实验变量,也被称为因子或变量。简单来说,就是实验策略中不同的赋值,比如横幅栏颜色实验中,控制参数就是颜色,实验组控制参数的赋值为红色,对照组赋值为蓝色。实验控制参数也需要满足一些条件方可进行AB实验。
1)实验控制参数可分配
在简单的AB实验中,通常只有一个参数,这个参数有两个赋值或者多个赋值。在在线实验中,通常使用多变量设计。一起评估多个变量的实验,称为多变量实验(Multi-Variable Test,MVT),比如同时评估字体颜色和字体大小,允许实验者在参数交叉时发现全局最优值。
在简单的AB实验中,一般将实验参与单元随机分为实验组和对照组。控制参数也就对应地分配给实验组和对照组。例如,某App的字体大小是一个控制参数,这个参数可以有10号、12号等不同的值。我们将不同的值赋予不同的组别,比如实验组10号,对照组12号,这两组除了字体的差异外无其他差异,这样就可以通过实验数据对比出10号、12号字体在使用过程中对产品指标的影响。
控制参数可分配是实验可以顺利进行的最关键因素,如果不可分配就没法进行AB实验,只能借助其他方法进行判断和决策。
2)实验控制参数容易改变
做AB实验需要控制参数容易改变,如果改变控制参数很困难,实验成本就非常高。一般来说,软件通常比硬件更容易更改。然而某些软件领域也需要一定级别的质量保证,比如飞机飞行控制系统软件的更改就需要航空管理局的批准。服务器端软件比客户端软件更容易更改,这是因为客户端软件的改变一般需要版本发布之后才能完成。对于那些不升级版本的用户,新实验特性就无法触达了。大部分情况只有80%~90%的用户会完成升级,一部分老用户甚至一直停留在旧版本。版本升级是一个缓慢的过程,一般App至少需要1~2周来完成这个升级。此外,现在产品迭代速度非常快,很多App在1~2周,最多1个月内,就会发布一个新版本。很可能老版本的升级还没有全部完成,又有新版本发布,用户一直处于动态变化的过程中,这种不稳定的状态对于检测实验效果存在一定干扰。现在也有一些新技术使得应用程序可以在后端改变前端的展示效果,使得服务的升级和更改能够迅速完成。
3
实验指标
实验指标是用于评估实验结果的各项指标数据。从实验评估效果的角度来看,需要实验指标满足两个基本要求。
1)实验指标能反映实验者的意图
因为实验的效果主要是通过实验指标来判断的,所以对于实验指标的一个基本要求就是,实验指标要能反映实验者的意图。如何理解这句话呢?在线实验中,主要通过用户在产品上的行为来收集数据,这个方式最大的优势是不需要用户做出额外的动作,包括提交问卷等,而只是完全真实地记录用户行为而已。这种不被用户感知的方式,相比于与用户访谈等方式,能更加真实地反映用户行为。
这种数据收集方式带来了一个问题,就是行为数据不能直接反映用户行为的原因。比如,一个用户最近访问次数减少了,或者一个用户一段时间后流失了,这背后的原因可能是产品本身导致的,也可能是受外部因素影响的。从行为数据上是没有办法直接得到答案的,我们只能通过一些行为数据去推测原因,这样的推测也只是一个可能的概率,没有办法得到完全的证实。建立我们关心的产品问题和这些行为数据之间的关联,本质上就是寻找指标的指向性,在《AB实验:科学归因与增长的利器》一书11.2节会详细讨论指向性。
2)实验指标可测、易测
实验指标是评估实验的关键,如果想观察的实验结果无法容易且准确地获得评估指标数据,即使我们进行了实验,也没有办法评估实验结果。在真实环境的测试中,用户的反馈是很难获得的。虽然可以通过电话、邮件或者访谈等方式获得用户反馈,但这些都不能完全反映用户的真实想法。在软件领域,这些实验数据相对容易获得,其他领域的实验数据可能就困难多了。比如,一些社会学类的实验和药物类的实验所需要的数据,可能都需要人工一个个去采集。
有了可采集的实验数据以及相应的实验指标后,另一个关键问题就是需要实验关键指标已达成一致,并且可以实际评估。如果目标太难衡量,那么替代指标达成一致就尤为重要了,这便是在《AB实验:科学归因与增长的利器》一书11.3节将谈到的OEC。
03
AB实验的2个核心价值
本节主要介绍在实验效果评估中,AB实验的2个核心价值:定性因果和定量增长。
1
定性因果:验证因果关系,确保方向正确
如果仅依靠人的直觉和经验,很难保证每次产品迭代优化的方向都朝着我们期望的方向进行。Google和Microsoft相关统计表明,即使是很有经验的产品经理,正确判断产品策略的概率也只有约1/3。在凭经验难以做出正确决策的情况下,我们必须有一个有效手段来辅助判断,以提高准确率。方向性的判断是需要判断本次优化是否在朝着期望的方向进行。简单来说,某个策略的改变是否会导致某个产品指标的改变,其本质是一种因果关系的判断。维基百科对于因果关系的定义是第一个事件“因”和第二个事件“果”之间的作用关系,其中后一事件被认为是前一事件的结果。一般来说,一个事件是很多原因综合产生的结果,而且原因都发生在较早的时间点,而该事件又可以成为其他事件的原因。
在因果关系的定义中有一个关键点——因果发生是有时间前后关系的。这种前后关系,就是我们需要验证的关系:因为产品做了某个改变,所以用户有某种感知;因为改进了某个特征,所以产品在向目标方向前进。
在社会科学领域,AB实验被广泛用于验证因果关系,也是目前已知的快速、低成本验证因果关系最好的方法。其他大部分数据分析手段,如常见的回归分析、关联分析以及机器学习模型,主要表明的是一种相关性。相关不代表因果,是科学和统计学经常强调的重要概念。两个事物有明显的相关性(即当一件事出现时,另一件事也出现),不一定表示两者之间有因果关系(即一件事出现的原因是另外一件事出现,或者一件事出现的结果是另外一件事出现)。相关性和因果性究竟有何不同?为什么验证因果关系如此重要?我们来看几个具体的例子。
有一个著名的因果关系与相关关系案例是“巧克力消耗量与获得诺贝尔奖的数量”。数据显示,消耗巧克力越多的国家,人均诺贝尔奖数量越高,相关系数r达到了0.791。虽然有很高的相关性,但是我们能通过提高巧克力的消耗来提高获得诺贝尔奖的数量吗?显然是不能的。
相关性不能代表因果性。在产品的优化迭代中,因果关系是我们的核心关注点。
在信息流领域,推荐系统给用户推荐更小众、更符合用户兴趣的内容,或者推荐更广泛的、多样性更好但是不一定那么贴近用户兴趣的内容,哪种用户的留存率更高?
电子购物网站在商品页面和购物车页面给用户优惠红包,哪种用户转化率更高?红包额度多大时,平台收益最多?
更醒目的跳转按钮是否会促进着陆页的转化?
使用什么样的信息收集话术、选项和交互方式,用户更愿意配合?
以上这些问题都需要待验证的因果关系,这正是AB实验可以大展身手的地方。既然最关注的是因果关系,相关性是不是就毫无价值呢?当然不是,相关性在探索性的研究中是很有用的。相关性在实践中预示着某种关系,可以帮助我们确定下一步研究的方向。相关性的典型例子如产品的价格和销量的关系,汽车数量和空气质量的关系。这些相关性的例子都暗示了进一步的因果关系。从经济学的角度看,价格下降会提升需求,从而增加销量。从环境学的角度看,虽然汽车数量增加使得尾气排放量增加,进而导致空气质量变差,但空气质量变差并不是完全由汽车数量增加导致的。
在产品设计和迭代的过程中,我们一般会希望提升日活跃用户数量、用户活跃度、用户留存率、用户使用时长等指标。探索这些目标指标和用户的各种行为、特征之间的关系,通过分析,往往会有以下发现。
用户阅读兴趣和信息流曝光内容的重合度和用户活跃度正相关。
用户画像的丰富程度和用户活跃度正相关。
用户参与互动数量与用户使用时长正相关。
用户使用某功能次数与用户留存率正相关。
虽然有如此多相关性的发现,但是实际上,我们并不知道究竟这些关系是如何相互作用的。以“用户参与互动数量与用户使用时长正相关”为例,如果单纯从相关性角度来讲,我们可以认为互动数量与用户使用时长有着很高的相关性。如果该产品的核心KPI是用户使用时长,基于这个分析结果,在很多产品中大概率会发生的事情是,产品设计者希望通过一些策略增加互动数量,从而提升用户使用时长。互动是一个显而易见的抓手,而时长很难直接干预。
这个思路究竟对不对呢?我们不知道是因为用户本身就是时长较高的用户,所以参与互动比较多,还是因为用户参与互动多了,时长变长了。这里面可能隐藏着真正的影响因素,比如他本身就是一个活跃用户,互动和时长只不过是高活跃的数据现象。我们没有证据能证明用户参与互动多,使用时间就会长;也没有证据证明用户使用时间长,参与互动就多。这两者之间的因果性是不确定的、未知的。因为产品形态、用户构成等不一样,所以互动和时长之间的因果关系对于不同的产品可能有不同的模式。比如在A产品中,用户参与互动数量提升的同时使用时长也提升了;在B产品中,用户参与互动数量提升了,使用时间并没有任何变化。正是由于种种复杂性,只有通过AB实验才能知道它们之间究竟是否存在因果关系。
综上,不是所有的相关性都有因果关系,也不是所有的相关性都没有因果关系。这一切都需要还原到具体的产品和场景中,通过AB实验加以验证。
在实际的产品迭代中,我们最希望找到的是因果性。只有找到了因果性,我们才能知道策略究竟对于目标是不是有直接作用,从而有针对性地做产品优化和提升。AB实验重要的价值在于,能够帮助我们确定因果关系,确保产品迭代和优化的方向是正确的。
2
定量增长:实践数据驱动,精细成本收益
AB实验的重要作用还在于可以准确量化策略效果,从而真正做到数据驱动、精益迭代。如果不能测量一个东西,也就没法优化它。在实践中,量化一般不是问题,最大的问题在于准确量化,量化一定要准确才有意义。不要小看1%的差异,即便每次1%的变化,一年365天累计下来就是37.8倍(1.01的365次方等于37.8)。通过AB实验,不但可以验证因果关系,还可以获得具体的量化数据,其意义在于执行策略A后,可以得到关注的核心指标究竟能提升多少。这一点非常重要,数据量化不仅能帮助我们及时排除不好的方案,降低新产品或新特性的发布风险,还能帮助我们消除不同的意见纷争,根据实际数据效果确定最佳方案。
为什么AB实验可以量化因果效应的效果呢?我们首先需要理解因果推断模型。理解因果推断模型不仅能帮助我们了解为什么AB实验可以进行量化,还可以帮助我们更好地理解AB实验中常见的一些问题。因果推断常用的模型有两个:一个是著名的统计学家Donald Rubin教授在1978年提出的潜在结果框架(Potential Outcome Framework,POF),也称为Rubin因果模型(Rubin Causal Model,RCM);另一个是Judea Pearl教授在1995年提出的因果图模型。这两个模型在本质上是等价的。从数据分析的角度,潜在结果框架更加通俗易懂。下面我们使用潜在结果框架来解释因果推断模型。
用Ti表示个体i是否进行了某个实验,例如是否被投放了红点、是否被灰度了某功能、画像是否被丰富过、是否被推荐了多样性的内容。实验的个体取1,对照的个体取0。表示个体i进行实验和作为对照的潜在结果。例如,表示一个用户没有被投放红点时的活跃度,表示一个用户被投放红点时的活跃度。由于这些潜在结果在投放红点之前就已经“命中注定”,因此成为“潜在结果”。 表示个体i接受实验后的个体因果作用。
不幸的是,每个个体要么接受实验,要么接受对照,中必然缺失一半,我们用Yi表示个体i的观察结果,当用户Ti=0时,我们会观察到,否则会观察到。也就是说,两个潜在结果,我们永远只能观察到其中一个,另一个不得而知。由此可见,个体的因果作用是不可识别的。个体观测的结果用公式表示如下。
虽然个体的因果作用不可识别,但是在T做随机化分组的前提下,我们可以识别总体的平均因果作用(Average Causal Effect,ACE)。
在期望算子满足线性的时候,计算公式如下。(请注意,非线性的算子导出的因果度量很难被识别。)
在T独立随机化分组的时候,也就是个体参与实验与否完全与结果无关的时候,可以进一步得出如下推导。
引入一个中间假设变量,实验人群不做实验的潜在结果为。
平均因果作用转化如下。
其中是实验对于参与实验的人的平均因果效应,是随机分组带来的选择偏差。如果AB实验随机分流足够均匀,实验组(T=1的用户)和对照组(T=0的用户)是同质的,这时的选择偏差应该无限接近0。下面用更简单直观的方式来描述一下这个过程。
上面的公式表明,将实际影响(接受实验的实验人群会发生什么)与反事实(如果他们没有接受实验会发生什么)进行比较是建立因果关系的关键。在随机分配单位给变量的情况下,因为第一项是观察到的实验组用户接受实验与不接受实验之间的差异,第二项选择偏差的期望值为零,所以可以使用AB对照实验来评估因果关系。
我们通过上面的数学推演理解了为什么AB实验能量化变化并验证其中的因果关系。正是因为AB实验让我们获得了产品迭代与指标之间的因果以及量化关系,所以说AB实验是数据驱动产品迭代与优化的基石。
04
AB实验的2个关键特性
AB实验得以在工程中广泛应用和推广,与AB实验的2个关键特性密不可分:一个特性是先验性,通过小流量预先获得效果评估;另一个特性是并行性,多个实验可并行开展。这两个特性也使得AB实验具有更高的应用价值和更广泛的应用场景。
01
先验性:小流量预先获得效果评估
对于产品,特别是互联网产品迭代需要敏捷开发,快速试错。如果采用全员试错的方式,新版本、新功能全量发布后,发现重大漏洞或者用户体验不好,然后回滚,不仅对于用户体验的伤害比较大,而且很多时候甚至无法收集到有效的用户反馈信息。产品在开发者不知情的情况下就被用户放弃了,从而导致产品失败。这些传统的做法不仅不能满足敏捷迭代的需求,而且需要投入很高的试错成本。
AB实验能很好地解决上述问题,采用统计学中抽样统计的思路,通过观测抽样的小样本行为来推断总体样本行为。AB实验的先验性主要是指通过小流量的实验方式预先获得实验结果,而不需要等到全量发布。同样是用数据统计与分析新功能、新版本的效果,以往的方式是先将版本发布,再通过数据验证效果。AB实验则是通过科学的实验设计、流量分割与小流量采用的方式来预先获得实验结论。由此可见,AB实验是一种“先验”的实验体系,属于预测型结论,与“后验”的验证性结论相比有很大的优势。
2
并行性:同一个实验对象可以有多个实验并行开展
AB实验对实验用户进行随机正交分层,一个用户可以同时进行多个不同的实验。对于不同类型的实验,可以分别在不同的实验层中进行。这样做可以节省实验流量和时间,特别是在用户量比较小的情况下,能够极大提升实验数量,从而提升产品迭代效率。并行性涉及的核心原理是正交分层机制,会在《AB实验:科学归因与增长的利器》一书的第5章详细讨论。
当今环境变化给SaaS企业营销带来了哪些挑战?AB实验为什么可以量化因果效应的效果?如何高效开展AB实验?AB实验存在哪些关键问题?什么是AB实验的SRM?如何构建AB实验体系?AB实验有哪些局限性?在不能进行AB实验时还有哪些方法可以进行归因分析和用户调查?
……
以上所有问题都能在本书中找到答案!
AB实验领域的标准化著作。BAT资深数据科学家10余年AB实验工程经验总结,系统阐释AB实验原理、方法论和增长实践,融合全球优秀企业经验。系统阐释AB实验原理、方法、评估指标体系、平台搭建、组织和文化建设、实践难点和增长实践。
更多精彩回顾
新书 | 红蓝攻防:构建实战化网络安全防御体系
书讯 |8月书讯(上) | 重磅新书来袭!
每周赠书 | 【第112期】一些可以显著提高 Java 启动速度方法
上新 |八大行业的产业数字化实践,一本书讲明白
上新 | 最优化模型:线性代数模型、凸优化模型及应用
点击阅读全文购买