互联网公司的 AB 测试是怎么回事
第 1 课 · 第一问 · 互联网公司的 AB 测试是怎么做的

一个按钮两种颜色,
到底在比什么

把同一时间来的用户随机切成两半,只改一件事,比一个数,再问这个差是不是运气。按钮颜色只是最容易举的例子。

同一段时间、同一个世界 同一天来的人 随机切一刀 一半看旧页面别的全一样 一半看新页面只差这一个改动 3.0%3.1% 运气,还是真的? 示意数字
一刀随机切两半,除了那个改动别的全一样,最后只比一个数。灰点和蓝点是同一天来的同一批人,切完以后两边各走各的页面。

你和旁边的人打开的不是同一个 App

故事是这样的。

你现在打开手机上随便哪个大 App,抖音、淘宝、小红书,你旁边的人也打开同一个。你们俩看到的,大概率不是同一个 App。

不是说内容不一样,推荐不一样这个大家都知道。我说的是,按钮的位置、某个弹窗出不出、下单页少一步还是多一步、甚至搜索结果排序背后那个算法的版本,你和他可能就不在同一个版本里。

上千个Booking.com任何一个时刻同时在跑的实验 1
400+LinkedIn每天并发的实验数 2
约 500Airbnb2017 年前后同时在跑的实验 3

字节的数字更夸张,放到第 4 课说。

所以你打开的那个 App,其实是几百上千个「正在比」的版本叠在一起,随机捏出来给你的一个组合。

那这些「比」,到底在比什么?

很多人对 AB 测试的全部印象,就是「按钮红的还是蓝的」。这个印象不算错,但它有点像把手术理解成「拿刀划一下」。按钮颜色是最容易举的例子,不是这件事的重点。

流程一句话

我先把流程用一句人话说完,再拆。

你有一个想法,你觉得改了某个东西,某个数会变好。于是你把同一时间来的用户随机切成两半,一半看旧的,一半看新的,别的全一样。等几天,把两边那个数拿出来比。差得够多,而且多到不像是运气,就上新的,不然就撤。

想法改 X,Y 会变好
随机切两半一半旧 一半新
几天到几周
两边的那个数
像不像运气

就这样。想法,随机切两半,等,比,判。

听着是不是简单得有点过分。但这里面有三个东西,我觉得是整套方法真正值钱的地方,也是一线业务人员最容易想当然的地方。

为什么切两半,而不是前后比

第一个,为什么非要切两半,而不是「先看上线前一周,再看上线后一周」。

这个问题我觉得值得停一下,因为「上线前后对比」是人最自然的本能。改了首页,DAU 涨了 5%,那肯定是首页的功劳啊。

问题在于,世界在动。这一周是不是周末多了一天,是不是放假,竞品是不是出了事故,是不是有个明星入驻,天气是不是变了。你没法把这些全剔掉。上线前后那两周,根本不是同一个世界。

前后对比两周之间,世界变了 上线前一周 上线后一周 放假竞品出事明星入驻 同期对照同一周,同一个世界 旧页面那一半 新页面那一半 放假、竞品、明星,两边一起经历 示意
左边两根柱子隔着一条变化了的时间线,右边两根柱子站在同一周里。右边两根一减,剩下的只能是那个改动。

切两半的意思是,你造了一个平行世界。同一段时间,同一批来的人,唯一的区别就是那一个改动。那边世界发生的所有事,这边也一样发生。两边一减,剩下的就只能是你改的那个东西。

那一半没改的人,叫对照组。它不是凑数的,它是尺子本身。

这里我得顺手掏一个东西。这套「随机分两组、一组不动」的办法不是互联网发明的,它是医学上做药物试验的标准做法,随机对照试验,RCT。一百年前统计学家 Fisher 在农田里比肥料就是这么干的。互联网干的事是把它的成本压到接近零,病人要一个一个招,用户本来就在那儿,线上切流量不要钱。Kohavi 他们反复讲的一句话是,受控实验是检验因果的黄金标准4,这话在医学里早就是常识,互联网只是第一次能天天用。

随机,让两边住的是同样的人

回到切两半这件事。第二个容易想当然的地方,是「随机」两个字。

很多团队第一次做实验,会很自然地想,那让 iPhone 用户用新版,安卓用旧版,或者新用户用新版,老用户用旧版,也算两组啊。

不算。这两组除了你改的那个东西,还差了一堆别的,消费力、使用习惯、来的渠道。你最后比出来的差,根本不知道是改动造成的,还是人群本身就不一样。

随机的意思是,分组这件事跟用户的任何特征都没关系,纯靠掷骰子。只有这样,两组人才是「除了那个改动以外一模一样」。平行世界的前提是,两边住的得是同样的人。

你来判断

一个团队想测新版下单页能不能提高下单率。方案 A,新版先给一线城市用户,其他城市用旧版,一周后比两边下单率。方案 B,所有用户随机分一半一半,一周后比。哪个能回答「新版下单页有没有用」?

B。A 比出来的差,混着一线城市本来就更能买的那部分,拆不开。随机分组以后,两边的城市构成、消费力、渠道都一样,差只能来自下单页。

3.1% 对 3.0%,赢了吗

好,切两半也切了,随机也随机了,等了一周,新版那边下单率 3.1%,旧版 3.0%。

赢了吗?

这是第三个东西,也是我觉得业务人员真正需要有点感觉的一个,显著性。

你想想看,就算你两边放的是完全一样的页面,两组人的下单率也不会正好相等。人是一个一个来的,这周这一半正好多来了几个爱买的人,那数字就高一点。两组之间永远有一个「什么都没改也会有的差」,它是噪音。

抛硬币十次七次正面,你不会说这硬币有问题。抛一万次七千次正面,那这硬币肯定有事。差异本身不说明问题,差异相对于噪音有多大才说明问题。下面这个你自己按几下。

动手试示意 · 随机模拟

什么都没改,两边也永远差一点

两组页面一模一样,真实下单率都是 3%。拖样本量,按「再来一次」,看两组算出来的数差多少。右边五行是五种人数,每个点是一次模拟的差。行越往下点越挤,噪音越小。

1 万人里 0.5 个点的「差」随手就能出,100 万人时差缩到 0.0 几。 这不是在算显著性,是让你看见噪音长什么样。

统计学家给了一把尺子。大概意思是,如果什么都没改,两组出现这么大的差的概率有多小。这个概率小到一个门槛以下,通常是 5%,就说这个差「显著」,意思是不像运气。没到门槛,不是说新版没用,是说你现在手里的数据分不出来,要么人还不够多,要么再等等。

这把尺子有个很反直觉的推论。样本越大,同样大小的差越容易显著。所以大公司的实验动不动跑上百万人,不是为了排场,是为了能看见小到 0.1% 的差。而 0.1% 乘以几亿用户,就是一个很大的数字,这个放到第 3 课讲。

反过来,一个小产品一天几千人,跑一周,大部分实验的结论会是「看不出来」。这不是方法的问题,是你没那么多用户可以切。

你来判断

两个实验。甲,1 万人,新版转化 3.5%,旧版 3.0%,差 0.5 个点。乙,100 万人,新版 3.05%,旧版 3.00%,差 0.05 个点。哪个更可能是真的赢了?

C。你得把每个差拿去跟它自己的噪音比。1 万人里 0.5 个点的差,是二十几个人的事,100 万人里 0.05 个点,是两百多人的事。用那把尺子量一下,两个差都只有各自噪音的 1.4 倍左右,都没过门槛,都还在「可能是运气」那一边。直觉上觉得甲差得多所以甲更真,或者乙人多所以乙更真,恰恰是这课要拆掉的那两个直觉。

说到这,流程里还剩一个词没讲,就是「那个数」到底是哪个数。下单率、时长、留存、收入,选哪个当判官?选错判官,实验全白跑,而且会跑出一种很吓人的「赢」。这个我放到第 3 课,它值得单独讲。

最后说一句可能扫兴的。这一课讲的是方法本身,它很干净。真正做起来,公司里大多数实验不是按钮颜色,是一个新功能、一个新策略、一条新算法,改动没那么干净,指标没那么单一,等的时间也远不止一周。但只要是在「随机切两半、比一个数、问是不是运气」这个框架里,它就还是同一件事。

这一课,对照组是尺子,不是凑数的。随机是平行世界的前提,让两边住的是同样的人。显著性是在问「这个差是不是运气」,样本大小决定你能看见多小的差。

这课认识的三个词
对照组切两半里没改的那一半,同一段时间的平行世界
实验效果 = 实验组的数 − 对照组的数
为什么要它世界在动,前后对比剔不掉周末、放假、竞品这些事。对照组和实验组一起经历这些,一减就抵消。
对照组不是「上线前」,是「同一时间的另一半人」。
搭配随机分流
随机分流分组跟用户的任何特征都没关系,纯靠掷骰子
两组除了那个改动以外一模一样
为什么要它按设备、按城市、按新老用户分,两组人本身就不一样,差拆不开。
「一线城市先用新版」不是实验,是分人群上线。
搭配第 4 课的分层正交
显著性这个差像不像运气
什么都没改也出现这么大差的概率 < 5% ⇒ 显著
为什么要它两组永远有「什么都没改也会有的差」,差本身不说明问题,差相对噪音多大才说明问题。
没显著 ≠ 没差,是分不出。样本越大能看见越小的差。
搭配主指标、护栏指标(第 3 课)

这一课的数字从哪来

  1. Booking.com「任何时刻有上千个实验在跑」,转述其设计总监 Stuart Frisby 的说法,二手:How Booking.com Uses 1000's of Experiments(Medium);每年约 25,000 次测试:Building a Culture of Experimentation(HBR 2020)
  2. LinkedIn 每天 400+ 并发实验:XLNT Platform(LinkedIn Engineering)
  3. Airbnb 约 500 个并发实验(2017 年前后):Scaling Airbnb's Experimentation Platform
  4. 「受控实验是检验因果的黄金标准」及流程框架:The Surprising Power of Online Experiments(Kohavi & Thomke, HBR 2017);Kohavi, Tang, Xu《Trustworthy Online Controlled Experiments》(2020)。
  5. 3.0% / 3.1%、甲乙两个实验、动手块里的数字全是示意。判断题 2 里的「1.4 倍」按两比例 z 检验算,甲 z≈1.41,乙 z≈1.46,都没到 1.96。「平行世界」「尺子」是教学比喻。

下一课我们来看一个挺伤人的数字。按这套方法老老实实比下来,大公司里提出来的想法,到底有几成是赢的。

十个想法,一个赢。