Trustworthy Online Controlled Experiments Part 1 Chap 1
为什么要实验?相关性,因果关系和可信度
假设你正在为Netflix 某个订阅业务工作,这个服务每月用户流失(结束订阅)X%
。之后, 你决定引入一个新的功能,并观察使用该功能的用户的客户流失率为X%/ 2,即一半。这时, 你可能会想宣称你发现了因果关系, 也就是说, 你发现了该功能可以减少一半的用户流失。 进而得出的结论是: 如果我们使功能使用频率更高,订阅量将会猛增。错了!根据那个数据,没有可以得出有关该功能是减少还是增加用户流失,两者都有可能。
一个类似的例子, 来自于Microsoft Office 365, 微软发现遇到 Error Message 和软件崩溃越多的用户, 流失率越低。 难道代码越烂, 用户越开心么? 当然不是。 原因是,使用Microsoft Office 365 越多的用户, 遇到bug 的概率就大, 而这部分用户是Microsoft Office 365 重度用户, 所以他们很难流失。 相关性不等于因果性, 过分依赖这类指标, 会使公司做出错误的决策。
1995, Guyatt 提出了医学文献中, 证据靠谱性分级, 随机控制实验 (Randomized controlled experiments) 是金标准。 而对Randomized controlled experiments 的系统性review ,则更靠谱, 而且更加的容易泛化。
我们公司使用的实验平台允许实验者在Google,LinkedIn和Microsoft 每年进行数以万计的在线受控实验。我们相信在线对照实验:
- 最科学,也是最靠谱的找到因果关系的方法
- 可以发现其他方法很难发现的差异
- 可以发现很多预料不到的结果
本书的重点是强调实验,和提出改善结果信任度的方法。在线控制实验提供无与伦比的能力,大规模收集可靠的数据,充分随机化,避免或发现陷阱(请参阅第11章)。我们推荐在其他情况下,使用其他不那么值得信赖的方法,包括观察性研究。
对照实验所需的因素
不是所有地方都能用最严格的科学手段来实现受控实验,有时候条件不允许。 这里我们讨论,一个有用的受控实验都需要那些因素:
以下 受试单元 可以理解为参加实验的人
- 受试单元可以被随意分到不同的组中, 而且不同组的受试单元不可以相互影响。
- 受试单元要尽可能多,最好能够上千。 受试单元越多,就越容易发现小的影响。对于互联网大公司, 1%的营收提升也想当可观。
- 要有一个可以量化评估实验效果的指标,最好是 OEC
- 对系统的改动要易于实现, 这对于互联网 和软件公司来说,这点一般都比较容易。
大多数在线服务都满足或可能满足上述的条件。许多软件+服务的实现也可以相对容易地满足要求。敏捷软件开发就是这样的创新系统。如果无法进行受控实验,则可以进行建模,并且可以使用其他实验技术(请参阅第10章)。关键是要明白受控实验提供了最可靠,最灵敏的实验评估变化的机制。
信条
对于想搞controlled experiments 的组织,这里有3个信条相送
- 组织想进行基于数据的决策, 并且已经形成了 OEC。
- 组织愿意投入资源, 确保测试结果可信。
- 组织认识到自己在评估想法的价值方面做的很差。
信条1
很少有公司不想搞 “数据驱动决策” 的, 但是真搞起来的却很少。 测量用户从新功能里获得的好处是需要花钱的。而且客观的测量标准,往往会表明项目效果其实并没有预期的那样乐观。 很少有公司会愿意花钱去定计划去测量,并且定义项目的进度。
现实中往往做的是制定一个计划去执行,最后宣称成功了。 我们最常用的一种方法就是估计,但往往这非常不靠谱。
如果想做数据驱动型决策,那么公司就能找到一个明确定义的 OEC,对于一些大的公司来说,他们可能有多个OEC在不同的场合使用。 OEC 需要能够测量这一个短时期内的变化,比如两周之内。 找到这些指标是并不容易。而且这些指标同时必须能用作长期指标。比如利润就不是一个好的OEC ,因为有些决策在短期内会带来利益,但是对长期内就会造成损失。
同时也要注意数据来源的多样性,一个好的数据驱动型决策,需要保证它的数据来源于多个数据源。一个数据驱动型组织会去收集很多信息来帮助他们做决策,而不是依靠个人的直觉去做决策
信条2
在线网站, 软件进行受控实验有得天独厚的优势。 因为他们获取数据, 已经进行干预(改动功能)的成本往往非常低。 而且受控实验的思想, 与敏捷软件开发也很契合, 二者联合起来可以发挥更大的作用。
如果你可以进行受控实验,请务必确保其实验性结果得信赖。在进行在线实验时,获取数字很容易; 获得您可以信任的数字非常困难。第3章会讨论这些。
信条3
公司在开发Feature 的时候, 往往都认为他们是有用的,但在许多领域大多数想法无法改善关键指标。只有三分之一的想法在 Microsoft改进了旨在改善的指标(Kohavi,Crook 和Longbotham 2009)。在已经有花的很好的领域中则更难找到成功的例子 例如Bing和Google,其中一些衡量指标的成功率约为10–20% (Manzi,2012年)。 Slack产品和生命周期总监Fareed Mosavat在推特上写道Slack的所有经验中,只有大约30%的实验表明积极的结果; “如果您是一支实验驱动的团队,请习惯工作有70%被丢弃了。”(Mosavat 2019)。
并非每个域的统计数据都这么差,但大多数运行 controlled experiments 并且直接面向客户的网站都遇到了这种情况, 这导致他们现在很谦卑:
我们在评估想法的价值上表现的很差。
一步一步来
实际上,可以通过许多小的更改来实现对关键指标的改进:0.1%至2%。许多实验只会影响一部分用户,当一个10% 的改善只影响了 5% 的用户,那么对总体的改善则为0.5%
正如阿尔·帕西诺(Al Pacino)在电影《Any Given Sunday》中所说的那样,“…获胜是一寸接一寸的。”
Google 广告案例
经过一年多的努力,Google在2011年启动了改进的广告排名机制开发和增量实验(Google 2011)。开发工程师并测试了新的和改进了的模型 。他们进行了数百项受控实验,并且进行了多次迭代;有些横跨所有市场,有些用于特定市场,以便他们更深入地了解对广告客户的影响。功能的巨大改动,加上受控实验的帮助, 最终使得Google 巧妙的将多个 Feature 进行组合, 提升了广告用户的用户体验, 然他们以更低的单个广告费用获得了更好的广告效果。
Bing 的例子
Bing的Relevance团队由数百人组成,负责每年将单个OEC指标提高2%。 这2% 是他们每年做的所有实验效果的总和。 因为每年要做上千个实验, 有些实验因为巧合, 就会导致某个 Treatment 超过 2%。 最后确认超过2% 是通过 验证性实验来完成的。
Bing 广告案例
Bing广告团队的收入每年稳定增长15-25%(eMarketer 2016),但大多数改进都是逐个进行的。每个月一个发布一次改进包,大多数改进很小,甚至有些月度软件包的效果是负的。
可以看到12月左右的季节性峰值, 用户的购买意愿急剧上升,因此广告空间增加,收入增加每千次搜索量增加。