DevilKing's blog

冷灯看剑,剑上几分功名?炉香无需计苍生,纵一穿烟逝,万丈云埋,孤阳还照古陵

0%

AB test是否可靠

原文链接

AB测试来自医学的双盲实验,在双盲测试中:

  1. 病人随机被分成两组,在不知情的情况下,分别服用安慰剂跟测试用药
  2. 经过一段时间后,再来比较两组病人的表现是否有显著差异。

单层实验

单层实验的模式是:

  1. 把所有的用户放在一起,有相互独立的用户标识(比如cid,uid,cookis等)
  2. 以某种分流的方法(比如随机),给每个实验组,分配一定的用户。
  3. 每个实验分到的用户正交

遇到的问题:

  1. 扩展性差,只能同时支持少量实验。但是以数据驱动的业务,需要极快的创新速度,大量的创新需要被测试,会严重delay业务。
  2. 如果在单层同时进行多个实验,实验之间不是独立事件,并行的时候,同一个策略,只能进行一个实验,如果多个并行支持,无法实现。不同策略之间也有影响。
  3. 流量饥饿问题:假设我们整体用户要做5个实验,如果前2个实验占据了大部分的流量,后面的3个实验就有很少的流量可以供使用,甚至没有流量可用。
  4. 流量偏置问题:假设上游的实验把所有的年轻人都获取了,下游的实验,没有年轻人的样本。导致有偏差。

多层重叠实验

论文地址

核心思路:将参数划分到N个子集,每个子集都关联一个实验层,每个请求会被N个实验处理(每层一个实验),每个实验都只能修改自己层相关联的参数(在参数子集中的参数),并且同一个参数不能出现在多个层中。

谷歌在每一层共享一个对照组,被多个实验共享。如果对照组比实验组大很多,系数就可以用10.5,而不是16.(不用取2N,取N)?

intro toutiao