AB Test 的基本原理看似简单,但在实际业务中能够正确使用 AB Test 却并不容易,实验者需要对实验技术和业务特征都有刻深的理解。本文我们将盘点一下 AB Test 实际应用中的那些“坑”,主要从实验设计和实验分析两部分来讨论,希望给从事相关工作的同学带来一点帮助。
▐ 1. 实验设计中的坑
1.1 功效分析的缺乏
功效分析(Power Analysis)的目的是确定样本量,是 AB Test 的基本步骤。但在实践中,功效分析常常会被忽略,常见原因主要有以下两点:
功效分析的基本参数缺乏 功效分析有三个基本参数:1) 显著性水平,即犯第一类错误的概率;2) 统计功效(statistical power),即 1 - 犯第二类错误的概率;3) 实验的最低效果。其中参数1和2一般很少有争议,大家通常遵循统计学惯例,取显著性水平 = 0.05,统计功效 = 0.8。但实验的最低效果则见仁见智,这一参数的选取具有很大的主观性:首先,一个实验通常有多个目标,有若干指标需要被优化或监控,要基于哪一个指标的最低效果不容易达成共识。其次,最低效果是一个事先猜测值,通常没有数据能给予支持。唯一可能的数据来源是之前类似的实验,但很多实验不一定有相似的先例,大多公司也不一定能对实验结果有系统性的记录。
很多实验的样本量不由实验者控制 实验的实施过程通常服务于业务的需求,因此样本量的决定通常并不基于功效分析,而是基于业务逻辑。
在流量实验中,样本量由两个因素决定:实验流量占比和实验周期,原因在于 PV 大致可以认为在时间上是彼此独立的,不同时间上的 PV 可以被当作同一个样本池来看待。但是流量占比和实验周期通常都由业务方来决定并已经形成惯例,比如涉及用户交互界面的实验被认为比较有风险,通常以不高于1%的流量进行实验,又比如一般业务方会希望实验需要在两周内完成,以实现决策效率。
在客户实验中,随机化单位一般是客户,并不随时间改变。在这类实验中,样本量的天花板就是合适进行实验的全体客户,比如某个 B 端产品的活跃客户。由于这个集合通常并不会很大,并且不可能通过增加实验时长来增加样本量,实验者对于样本的量的控制力其实非常有限。
缺乏功效分析的一个直接后果就是用于统计检验的样本不足。对于 AB Test 而言,样本量的不足会导致更高的第二类错误,即无法在给定的时间内发现错误的原假设。此外,对于 AA Test 而言,样本量不足导致的第二类错误同样可能造成严重的影响 —— 实验组和对照组之间的系统性差异在实验前因样本量不足而未被即使发现,之后的 AB Test 的整体可靠性也就大打折扣了。
1.2 “先看看再说谬误”
"Peeking"这个术语目前尚未有统一的翻译,这里先不妨称为“先看看再说谬误”,这一谬误的具体表现同样是不依据功效分析来确定实验时长,但由于它的普遍性,值得被单独列举出来。
"Peeking"是指实验者在既定实验完成前就去检查实验的结果并以此作为决策的依据。一般来说,监控实验过程是必不可少的,但是基于实验过程中的结果(比如关键指标双样本t检验的p值)来进行决策,比如决定中断实验,这就违背了假设检验的初衷。以最基础的双样本t检验为例,AB Test 是依据概率 Pr(最终p值 < 0.05|实验组与对照组均值相等)= 0.05 而设计出来的。如果采用了“看到p值 < 0.05就终止实验”的原则,那么我们可以知道,终止实验的概率为 Pr(整个实验过程中最小的p值 < 0.05|实验组与对照组均值相等),根据定义,这一概率 < 0.05。也就是说,按照上述的“看到p值 < 0.05就终止实验”的原则行事,实验者会犯更多的第一类错误。
1.3 原假设不合理
AB Test 的核心是假设检验,但在实践中,原假设却不一定能在实验前就被合理地确定。一个常见的误区是原假设涉及两个以上参数,但实验者并未进行相应的调整。
举一个著名的例子 —— “谷歌的41种蓝”实验。曾任职谷歌的著名设计师 Douglas Bowman 从谷歌离职时发推文吐槽 —— “当一个谷歌的团队不能确定选用哪一种蓝色时,他们用实验检验了41种蓝色”。Bowman 的吐槽重点在于他认为设计师在谷歌毫无地位,然而这一个具体的案例显示出了多个参数检验的普遍性 —— 业务方需要做的决策常常不仅是把单一的实验组与对照组,而是要在多个实验版本中找到最好的一个。当需要把41个实验组的均值与对照组均值进行比较时,如果采取常用的双样本 t 检验方法,那么实验者几乎一定会犯第一类错误,具体的犯错概率计算公式为:
()
解决这一问题方法主要有两个:一是将原假设修改为涉及多个参数的联合假设,进行卡方检验;另一个是保留众多原假设族,其中每个原假设涉及两个参数,仍用 t 检验,但对检验所用的阈值做多重比较修正,比如最常见的 Bonferroni 修正。
1.4 随机化单位不合理
以 PV 为随机化单位虽然在工程上非常容易实现并且能产生巨大的样本量,但对于某些实验而言却并不合理,或至少不是最优选择,本文主要讨论两种场景:溢出效应和新奇效应。
溢出效应
溢出效应是指,某一个随机化单位中出现的实验效应会对另一个随机化单位产生影响。以产品推荐算法为例,如果实验的随机化单位是 PV,那么同一个用户有时会面对实验版本推荐,有时会面对对照版本推荐。很显然,重度用户的 PV 较多,因此在一段时间中,重度用户整体上接受过实验版本的推荐概率就会高于轻度用户。产品推荐对用户的影响并不仅限于当次 PV,比如用户可能在第一次被推荐时仅仅将商品进行收藏,下一次浏览时才进行购买。“收藏”机制的存在就使得实验效应可以在“溢出”当前 PV,而且这一效应在重度用户中更为显著。由此可见,仅仅比较不同 PV 集合之间的成交转化率会忽略了 PV 集合背后的用户结构和 PV 间的溢出效应,并不能够给出正确的实验效应。在存在溢出效应的场景中,以用户或用户群体为随机化单位才是正确的做法。
新奇效应
新奇效应是指不管用户界面发生了什么改变,用户起初总是会出于好奇而对这种变化做出过度反应。显然,“新奇”是相对于用户习惯了的界面而言的,因此只有老用户会表现出新奇效应,而新用户则不会。在存在新奇效应的场景下,如果选择以用户为随机化单位,就可以定向地选择新用户,从而将避免新奇效应的干扰。
▐ 2. 实验分析中的坑
2.1 样本比例偏移问题
样本比例偏移(sample ratio mismatch,SRM)是指不论出于何种原因,实验组和对照组的构成出现了系统性的偏移,以至于实验组和对照组的比例与实验设计不同,比如设计的流量分组是50%的实验组,50%的对照组,然而实验完成后,发现实验组和对照组的流量占比偏离了50:50。
可能出乎很多人的意料,SRM 这一看似简单的问题在 AB Test 的实践中非常普遍,文献显示,微软运行的实验中越有6%出现了 SRM 问题,在其它主要科技企业,如雅虎、领英也有相近的数据。SRM 可以发生在实验的每一个环节,原因多种多样,有时简直防不胜防,很多业内人士因此直接把SRM称为 AB Test 的第一大坑。业界对 SRM 的重视从关于 SRM 的学术论文数量众多上可见一斑。
虽然出现难以防范,但发现 SRM 的方式非常简单,即标准的统计检验,最常见的是构建卡方检验统计量。举例来说,假定实验设计是将用户对半分到实验组和对照组,比较一段时间的总广告收入,实验完成后统计数据如下:
用户数 | 广告收入 | |
---|---|---|
实验组 | 15257 | 16 |
对照组 | 15752 | 12 |
上表的数据乍一看很容易让人觉得实验中的改动是成功的,实验组和对照组中的用户数虽即使有差异也不明显。但是,卡方检验显示,在“实验组和对照组占比各50%”的原假设下,检验的p-值仅为0.5%,说明在实验中实际发生的用户分组已经严重偏离了实验的设计,在这种情况下,如果忽略SRM而直接对广告收入做t-检验就可能得到错误的结果。
举一个微软员工在论文中介绍的真实事件为例,有一次关于某个交互界面设计的改动实验显示,实验组在新界面上的点击数少于对照组,统计上显著,所以界面改动看起来是失败的。然而,实验监控系统显示,该实验出现了 SRM 问题,实验组中的用户数量显著低于实验最初的设计。为什么会出现 SRM,SRM 又对实验结论又有什么影响呢?微软的数据分析师通过对所有实验环节上的日志的细致梳理终于发现了真相:实验组中的用户少的原因是因为实验组中有一部分用户的点击行为被当作是机器人(bot)而使得这些用户被反作弊系统自动过滤掉了。总的来说,界面的变化使得用户更多地点击了界面,其中有些用户点的次数太多,以至于更容易达到反作弊系统的阈值。在纠正了把过多实验组的正常用户当作机器人的错误之后,实验的结论就翻转了过来:界面改动是成功的。
从这个例子我们看到,SRM 出现的原因可能是一些容易被忽略的细节,但却对实验的成败至关重要,所以对 SRM 做统计检验是非常有必要的。
2.2 分析不合理的指标
为了度量实验产生的效果,一个完整的指标体系必不可少,指标大体可以归为三类:
1)总体评估指标(overall evaluation criteria metric) —— 能够反应长期业务价值的指标,通常也就是所谓的“北极星”指标。
2)保障指标(guardrail metric)—— 明确用于排除失败实验的指标,可以和总体评估指标重合。
3)局部指标(local feature metric)—— 只反映用户部分行为的指标。
实验分析的难点在于选取合适的指标 —— 业务方通常关心的是总体评估指标和保障指标,比如 APP 上的 GMV,但现实中能直接提高 GMV 的改动少之又少,绝大多数实验仅对部分局部指标有影响,比如改变按钮颜色只会影响该按钮的点击率。在决定选取什么指标作为分析对象和决策依据时实验者通常面临两难抉择:如果以总体评估指标为依据,那么几乎所有的实验都得不到明确的结论;如果以局部指标为依据,那么就会面对“这些指标的变动到底意味着什么?”的质疑,因为不同局部指标的变动很可能相反—— 比如 CTR 的上升常常伴随着 CVR 的下降(因为 CVR 分母中的点击数增加了),而且即使没有保障指标发生不利变动的证据,实验者也很难确定这是不是仅仅是因为实验的功效不够所造成的。
由此可见,如果没有对业务的透彻了解,并为具体的实验设计合理的指标体系,实验分析很难令人信服。
2.3 细分错误
细分错误的代表就是辛普森悖论(Simpson's paradox),更一般地,只要细分的方式与实验的分配相关,就可能出现细分错误。
以辛普森悖论为例,在这个案例中,细分的方式的大学的院系,实验的分配是性别,而被关注的总体评估指则是录取率。辛普森悖论是指,女生在每个院系的录取率都高于男生,但总体的录取率却低于男生。造成这一现象的原因就是,女生更多地去申请了那些录取率低的院系。在这里,细分的方式——院系就和实验的分配——性别高度相关,因此就发生了悖论。当然,存在细分的方式与实验的分配相关性并不一定导致辛普森悖论,但一定会导致细分错误,是一种混淆效应(confounding effect)的体现。本质上,AB Test 的目的就是希望通过随机化分组的方式来去除混淆效应,如果在细分分析中用了与实验的分配相关的因素进行细分,那么就与做实验的初衷背道而驰了。
总结
本文总结了 AB Test 过程中可能会出现的常见错误。这些错误可能来自对统计方法的错误使用,也可能来自对业务逻辑的错误理解,还可能来自工程上的各种问题,但任意一个错误都会造成实验结论失效。此外,AB Test 中可能出现的错误也远不止本文所提到的,我们将持续进行补充,欢迎交流讨论。
【阿里妈妈数据科学系列】持续更新,欢迎关注!
【阿里妈妈数据科学系列】第二篇:在线分流框架下的AB Test
【阿里妈妈数据科学系列】第三篇:离线抽样框架下的AB Test
【阿里妈妈数据科学系列】第四篇:Bootstrap方法在AB TEST中的应用
【阿里妈妈数据科学系列】第五篇:实验指标设定方法与指标体系构建
END
疯狂暗示↓↓↓↓↓↓↓