AB实验:科学归因与增长的利器
上QQ阅读APP看书,第一时间看更新

5.1 单层分流模式

先来介绍在AB实验中,变量分配是如何实现的,也就是用户是如何被随机分为实验组和对照组的。通常使用散列函数将用户随机地分配给不同的桶(bucket)。比如,把1000万个用户用散列函数映射到1000个桶中,每个桶中包含随机分配的10000个用户。如果我们的实验计划是要获得20%的流量,那么就从中随机选取200个桶的用户进行实验。将用户分配到桶必须是随机的,且必须是确定性的、不相交的。比较运行相同实验的任意两个桶,须假定它们在统计上相似,这才具有可比性。这种相似性可以通过AA实验(见第7章)进行验证。

●每个桶中的用户数量应该大致相同。如果按关键维度(如地域、平台或性别)进行细分,则各个桶的切片数据也将大致相同。

●关键指标(目标、保护、质量)应该具有大致相同的值(在正常可变性范围内)。

随机过程看似简单,往往也会出现很多问题,我们应该配置相应的监控任务。Google、Microsoft等公司通过监控桶特征发现了随机化代码中的错误。还有一个常见的问题是残留效应,先前的实验可能会污染当前实验的桶。对每个实验中的桶进行重新随机化或洗牌,使它们不再连续,也是一种常见的解决方案。

在运行实验初级阶段,实验数量通常很少,采用单层分流模式就可以满足。单层是指不重复利用用户,在同一个时间内,用户最多只会参与一个实验。当同时运行的实验很少时,这是一个看似合理的选择。然而,这么做的缺点是对并发实验数量有限制,必须确保每个实验有足够的实验样本量以获得足够的功效。操作上,在单层系统中管理实验流量可能很有挑战性,即使在早期阶段,实验也是并发进行的,只是不是在单个用户上。

LinkedIn、Microsoft和Google都是从手动管理实验流量的方法开始管理并发的(所有可以参与实验的实验参与单元数量统称为实验流量)。LinkedIn团队使用电子邮件协商实验流量范围。Microsoft由项目经理管理实验流量。而Google从电子邮件和即时消息协商实验流量开始,然后转移为项目经理管理。然而,手动管理流量的方法太影响效率,随着时间的推移,这三家公司都转向了程序化分配。不管采用什么样的分配方式,都会面临实验流量不足的问题,迫切需要解决这个问题。