1.2 AB实验的3个基本要素
AB实验虽然能帮助我们更科学地做出决策,但并不能科学地辅助所有决策,这是因为不是任何一件事情都可以进行AB实验。例如,不能对并购进行实验,因为我们不能让并购和它的反事实(即没有发生并购)同时发生;不能测试在奥运会中投放哪种广告更好,因为奥运会就一次,不能反复进行测试。本节详细介绍进行AB实验首先需要具备的基本要素。
1.2.1 实验参与单元
进行AB实验首先必须要有能够参与实验的对象,即实验参与单元,一般来说就是能参与实验的用户。在AB实验中,把参与实验的用户分为两组或者多组,其中至少有一组作为对照组,对照组用户什么都不改变,作为对比实验效果的基线;其余组为实验组,实验组可以进行各种产品特征实验。要确保实验的科学性,仅有参与用户还不够,参与用户还需要满足几个关键条件。
1.实验参与单元互不干扰
实验参与单元(例如实验用户)被分配到不同的实验组,需要确保不同的实验参与单元互相不干扰或者干扰小到可以忽略。如果不同实验组之间的实验参与单元相互影响,那么就会影响实验结果的正确评估。比如,告诉实验组用户,对照组的用户正在吃某种药物,而且身体有所好转,那么对照组的用户可能也会转而使用这种药物,这势必会影响到对照组的实验结果,无法观测到没有使用药物的真实数据。这个问题也被称为SUTVA,将在第4章详细讨论。
2.实验参与单元合理随机化
实验参与单元随机化就是将随机化过程应用于实验参与单元,以实现将它们分到不同的实验组的目的。科学随机化非常重要,需要确保分配给不同实验组的实验参与单元在统计学上是相似的,从而以较高概率确定因果关系。在随机化的过程中,必须以持久且独立的方式将实验参与单元映射到实验组。持久的意思是,实验参与单元在整个实验期间不得改变分组。为了保证实验效果,实验参与单元将不被告知任何实验相关的信息。实验参与单元最好对于实验信息无感知,否则会对实验造成干扰。
不要对随机化掉以轻心,在实践中,存在很多失败的随机化例子,都说明了科学随机化的重要性和面临的挑战。造成随机过程失败的原因多种多样,简单来说,就是随机过程变得不随机了,使得在实验前不应存在统计学差异的实验组和对照组出现显著差异,出现了实验影响以外的影响因素干扰实验结果。我们将在第5章详细讨论实验随机分流的问题。
3.足够的实验参与单元
根据统计学的理论,AB实验的实验参与单元需要达到一定数量,统计指标才是有意义的(相关统计知识在第3章介绍)。特别是在进行一些指标提升幅度不是很大的实验时,实验参与单元的数量尤其重要。一般来说,实验实际提升效果越不明显,就越需要更多的参与单元来确认实验效果。同理,实验参与单元的数量越多,实验就可以检测出越小的效果变化,检测的精度也就越高。
以内容行业的AB实验经验来说,对于点击量、曝光量等变化幅度较大的指标,检测出1%的指标相对变化,往往需要十万级以上的实验参与单元;对于留存率这类变化幅度较小的指标,检测出1%的指标相对变化,需要更多的实验参与单元。如果实验参与单元数量不够,比如一些初创、垂类的产品,用户只有几千或几万个,这个时候通过AB实验检测出的变化是粗粒度的,可能只能有效检测出3%、5%甚至10%以上相对幅值的实验效果。
从直观上也不难理解,用户越少,指标本身的变化和波动就越大,我们往往难以判断一个实验组和对照组之间的小幅度差异是天然的随机波动还是实验带来的效果。如果这个差异值足够大,大到超出了一般的波动范围,那么这个差异是实验带来的可能性就高一些。对于小用户体量的产品来说,预期提升很小的指标一般不建议进行AB实验。如果一个优化策略能够带来很大的提升,那么用较少的用户量也是可以检测出的。
处于初创期的产品往往能够通过渠道放量、用户增长等方式快速获得更多用户,从而逐步具备进行更加精准的AB实验的条件。随着用户规模的增加以及业务发展的日趋成熟,检测较小的变化变得越来越重要。例如,像亚马逊这样的大型网站,某指标0.5%的增长带来的收益可能就是上亿美元。不同阶段的产品、不同数量级的实验单元都可以做AB实验,关键是实验参与单元数量要达到满足实验检测当前业务变化所需的精度,并将实验结果误差控制在可接受的范围。如何找到合适的实验单元量以及业务评估精度,在4.3节会详细介绍。
1.2.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个月内,就会发布一个新版本。很可能老版本的升级还没有全部完成,又有新版本发布,用户一直处于动态变化的过程中,这种不稳定的状态对于检测实验效果存在一定干扰。现在也有一些新技术使得应用程序可以在后端改变前端的展示效果,使得服务的升级和更改能够迅速完成。
1.2.3 实验指标
实验指标是用于评估实验结果的各项指标数据。从实验评估效果的角度来看,需要实验指标满足两个基本要求。
1.实验指标能反映实验者的意图
因为实验的效果主要是通过实验指标来判断的,所以对于实验指标的一个基本要求就是,实验指标要能反映实验者的意图。如何理解这句话呢?在线实验中,主要通过用户在产品上的行为来收集数据,这个方式最大的优势是不需要用户做出额外的动作,包括提交问卷等,而只是完全真实地记录用户行为而已。这种不被用户感知的方式,相比于与用户访谈等方式,能更加真实地反映用户行为。
这种数据收集方式带来了一个问题,就是行为数据不能直接反映用户行为的原因。比如,一个用户最近访问次数减少了,或者一个用户一段时间后流失了,这背后的原因可能是产品本身导致的,也可能是受外部因素影响的。从行为数据上是没有办法直接得到答案的,我们只能通过一些行为数据去推测原因,这样的推测也只是一个可能的概率,没有办法得到完全的证实。建立我们关心的产品问题和这些行为数据之间的关联,本质上就是寻找指标的指向性,11.2节会详细讨论指向性。
2.实验指标可测、易测
实验指标是评估实验的关键,如果想观察的实验结果无法容易且准确地获得评估指标数据,即使我们进行了实验,也没有办法评估实验结果。在真实环境的测试中,用户的反馈是很难获得的。虽然可以通过电话、邮件或者访谈等方式获得用户反馈,但这些都不能完全反映用户的真实想法。在软件领域,这些实验数据相对容易获得,其他领域的实验数据可能就困难多了。比如,一些社会学类的实验和药物类的实验所需要的数据,可能都需要人工一个个去采集。
有了可采集的实验数据以及相应的实验指标后,另一个关键问题就是需要实验关键指标已达成一致,并且可以实际评估。如果目标太难衡量,那么替代指标达成一致就尤为重要了,这便是11.3节将谈到的OEC。