更多技术交流、求职时机,欢迎关注字节跳动数据渠道微信大众号,回复【1】进入官方交流群
本文将针对日常开设 A/B 试验过程中一个不太合理的运用方法——AABB 试验进行具体的解说,告知大家为什么不主张开 AABB 试验。
在开端之前,先来回忆一下“什么是 A/B 试验”,A/B 试验是针对想调研的问题,供给两种不同的备选处理计划,然后让一部分用户运用计划 A,另一部分用户运用计划 B,最终经过试验数据比照来确认最优计划。
一:什么是AABB试验
众所周知,AB 试验便是咱们在总流量中分流出两组用户,一组运用原战略 A,一组运用新战略 B,比较两个战略的效果。
那么 AABB 试验是什么呢?
简略来说,在做试验的时分,会从总流量中分流出 2 个原战略组(A1、A2)和 2 个新战略组(B1、B2)。两个原战略组的试验装备如出一辙,两个新战略组的装备也是如出一辙的。试验者会综合比较 A1、A2、B1、B2 各组之间的目标差异(但其实多数试验者剖析的方法并没有理论依据,文章后面会作出解说),这样的试验被称为 AABB 试验。
当然,也有试验者会分流出更多战略组(AAABBB、AAAABBBB 等),或许引进多个不同的新战略(AABBCCDD 试验等)。这些试验与 AABB 试验存在的问题趋同,本文中权且先以 AABB 试验为首要剖析目标。
二:为啥总有人想开 AABB 试验
在进行了部分用户调研后,火山引擎 DataTester 团队发现,开设 AABB 试验的试验者通常想处理以下问题:
- 验证用户分流是否“均匀”
部分试验者忧虑火山引擎 DataTester 渠道的用户分流不科学,因而开设 AABB 试验,经过比较 A1 与 A2、B1 与 B2 之间的试验目标差异,来查验用户分流是否合理。
理想状态下,假设用户分流是随机的,那么相同的战略组(A1 和 A2 之间),在试验中检测出的目标差异应该很小 。这是用户对于试验成果目标的预期。这时分,假设试验成果中,A1、A2 的目标呈现很大的差异,乃至于呈现“明显”,试验者就会认为,是火山引擎 DataTester 后台的分流机制有问题。然而,这个判别是不科学的。为什么呢?请阅读下文中的过错 No.1。
- 比较“AA 组内差异”和“AB 组间差异”
有的试验者认为:开设 AABB 试验,假设 AA 之间的试验成果差异很小,AB 之间的试验成果差异较大,那么在这种情况下,我的 B 战略应该便是有用的。这种主意自身没有问题,可是火山引擎 DataTester 的大部分目标供给了置信度功能,此刻这种做法就显得有些弄巧成拙了。具体的原因参阅下文中过错 No.2 和过错 No.4。
三:AABB 试验究竟错在哪儿
- No.1 AA 组内目标差异明显/置信并不代表分流不科学
A1、A2 组之间的试验目标差异大,乃至呈现明显,就能阐明分流不科学吗?其实并不能。实践上,在比照 AA 组间目标差异时,以下的几种情况都是彻底或许发生的:
1.AA 组内的目标必定存在差异:尽管 A1、A2 两组所采用的战略彻底一样,但进入 A1、A2 组的用户是彻底随机的,这是随机抽取的两份样本,必定存在抽样误差,因而目标值不或许彻底一样。
2.AA 组内的目标差异或许还不小:假设样本中的用户量太少,或样本用户中存在极点个例(比如抽 20 个人算中国人的平均收入,抽样的时分抽到了农夫山泉董事长钟睒睒和月薪 5000 元的或人),那么在调查常见的均值等类型目标时,AA 组内目标差异很或许还“不小”。
3.AA 差异或许“明显” :在查验假设的过程中,咱们简单犯的一类过错是:战略原本无用,但试验成果显示该战略有用。A1、A2 组目标差异明显,正是对应了这类过错——其实两个战略是一样的,可是试验成果显示 A2 有用。在 A/B 试验中,这类过错呈现的概率是 5%。也便是说,假设你开 100 次 AA 试验,呈现 5 次明显是合理的。假设 AA 试验目标差异呈现计算明显,也不过是一个概率问题,并不代表分流不科学。
综上,咱们再来回忆一下什么是“计算明显”。望文生义,这是一个计算术语,并不等同于目标在实践业务中发生了“明显改变”。更不能以此推论出“由于 AA 有差异,且 AA 的战略相同,所以分流成果有问题,AB 的定论也不可信”。
- No.2 AABB 试验中,计算目标更简单犯错
先来清晰一点,现在火山引擎 DataTester 的计算学原理是双样本假设查验。也便是说,现在火山引擎 DataTester 的假设查验都是按照一个对照组(旧战略组 A)和一个试验组(新战略组 B)来规划的。在 1 次比较中,咱们犯第一类过错的或许是 5%。AABB 试验中,实践上有 6 组比照(排列组合一下:A1A2,A1B1,A1B2,A2B1,A2B2,B1B2)。组合增多,那么咱们犯错的概率必定会增大。
假设试验者将试验组增多(AAABBB),或许参加试验的战略增多(ABCDE,AABBCCDD 等多个新战略),那么排列组合就会更多了,犯错的概率就会越来越大。再加上在试验中,咱们或许会调查多个目标,这样咱们犯错的概率就更大了。
- No.3 AABB 试验必定程度上会影响试验的灵敏度
试验调用的样本量越多,试验成果就越灵敏。相较于 A/B 试验(只设置一个 A 组和一个 B 组)来说,AABB 试验将试验组的数量添加到了 4 个。此刻试验者不得不面对几个挑选:
1.试验总流量不变,各试验组的流量削减一半,这会造成试验灵敏度下降;
2.单试验组的流量不变,将分流进试验的总体流量添加一倍,这意味着试验者或许会承担更大的危险(假设新战略造成负向影响,会有更多的用户受到影响);
3.也有一些聪明的试验者挑选延长试验时长,让更多用户进入试验之中,但这会发生更多的时刻本钱。
已然如此,咱们为什么不干脆把 AABB 试验合并为 A/B 试验呢?这样反而能够使得试验更灵敏、危险更小、成果更可靠。
- No.4 p-value 现已协助咱们比较了“AB 差异”与“AA 差异”
经过一些用户访谈,咱们了解到大多数用户开设 AABB 试验的动机是:判别“ AB 差异”是否高于“ AA 差异”,并以此辅佐自己进行决策。事实上,细心了解明显性水平的原理,咱们就会发现,p-value 现已从更科学的角度协助咱们完成了这个使命:p-value 小于 0.05,便是在保证了“ AB 差异”必定大于 95%以上的“ AA 差异”。
已然 p-value 现已帮咱们比较了“ AB 差异”与“ AA 差异”,咱们为什么还要自己开设 AABB 试验进行比较呢?从某种程度上说,利用一次 AABB 试验来调查“ AB 差异”是否大于“ AA 差异”,仅仅是在糟蹋试验资源罢了。
四:核心:让危险“可量化”且“可控”
总体来说,A/B 方法论的核心是要让危险“可量化”且“可控”,火山引擎 DataTester 团队环绕这个目的运用假设查验范式规划了一整套系统。AABB 的试验规划作为一种客观存在,并没有什么绝对的对错,只是根据火山引擎的调查,对于绝大多数试验者和绝大多数业务场景,它的 ROI 是远远不足以让你挑选的。
点击跳转 A/B测试 DataTester 了解更多