Trustworthy Online Controlled Experiments Part 1 Chap 1
一次准确的测量好过几千个专家意见
2012 年 Bing 的一个员工建议改进广告的显示方式, 将标题下的第一行合并到标题行, 形成一个长标题行。 改动如下:
没有人能够想到, 这个改动称为了 Bing 史上最赚钱的一条建议。 这条建议当时优先级很低, 被压在任务列表里6个月以后, 终于有一个程序员着手完成他。 它讲用户随机引导到新版和旧版的网页上,然后观察用户的点击, 已经带来的广告收入。 这是一个A/B测试的例子, 其中包括2个部分 A 和 B, 或者成为 Control (控制组) 和 Treatment (治疗组)。
几个小时以后, 监控改进版本的程序, 发出了“收入过高”的警报。 这类警报在实验中非常有用, 此类报警往往预示一些异常, 比如把收入计算了2次 等等。 不过, 这次的警报最终发现是误报, 改进后的版本确实大大增加了用户的广告点击率。 广告点击次数增加了12% ,在当时的情况下, 这意味着 1亿美元的增收。
该示例包含了在线控制实验中的几个关键点:
- 一个想法的价值很难评估。该例中,每年价值超过1亿美元的变更被推迟了几个月。
- 微小的变化会产生很大的影响。一位工程师几天的工作产生了每年1亿美元的投资回报率, ROI 变得极端。
- 有影响力的点子很少, Bing 每年会进行10000次以上的类似实验,而效果那么好的改动, 大概几年才会出来一个。
- 每次实验的花费必须小
- 对改动的评估标准必须明确, 微软用 OEC 来进行评估(之后会说 OEC )
在线评估实验 (Online Controlled Experiments)术语
控制实验(controlled experiments)具有悠久而有趣的历史,它们有时被称为A / B测试,A / B / n 测试(以强调多种变体),现场实验,随机对照实验,拆分测试,存储桶测试和飞行。在本书中,我们会轮换使用以下术语, 且不讨论变体。
- 控制实验(controlled experiments)
- A / B测试(A/B tests)
在线控制实验在Airbnb等公司被大量使用,亚马逊,Booking.com,eBay,Facebook,谷歌,LinkedIn,Lyft,微软,Netflix,Twitter,Uber,Yahoo!/ Oath和Yandex。这些公司每年进行数千至数万次实验,有时涉及数百万用户并测试所有内容,包括更改到用户界面(UI)的相关算法(搜索,广告,个性化,
建议等),延迟/性能,内容管理系统,客户支持系统等。实验在多个平台上进行
渠道:网站,桌面应用程序,移动应用程序和电子邮件。
在最常见的在线控制实验中,用户是随机划分的,并且保证同一个用户在多次访问中都会被分到同一个组(以用户为单位的随机划分)。在我们Bing的开头示例中,Control是原来的展示广告,Treatment 就是展示标题较长的广告。检测用户与Bing网站的互动,即对其进行监控并记录下来。根据记录的数据计算指标,这使我们能够
评估每个指标之间的差异。
最简单的控制实验中,包含 Control 和 Treatment 2个组。
Overall Evaluation Criterion (OEC):
OEC 指的是对实验目标的量化衡量标准, 在不同环境中有不同的意义。 例如,你的OEC 可能是每个用户在实验期间活跃的天数。 增加此OEC意味着用户正在更频繁地访问您的网站,这是一个很好的结果。 OEC必须是可以在短期内(实验的持续时间)进行测量,而且长期有效的。 OEC也可以多个指标组合(例如,每用户会话数),相关性(例如成功的会话,成功的时间)和广告收入(并非所有搜索引擎都使用所有这些指标, 或仅使用这些指标)。
在统计学中, 这些指标往往被称作是响应变量,或者依赖变量(Response or Dependent variable)。 虽然只使用一个指标是最好的, 但是也可以使用多个指标。 如果需要使用多个指标的话, 可以用 balanced scorecard approach 对多个指标进行处理。
在第7章中,会对OEC 进行详解。
参数(Parameter): 可控的实验变量,被认为会影响OEC或其他感兴趣的指标。参数有时称为因数(factor)或变量(variable)。在简单的A / B测试中, 通常只有一个二值的参数。在网络世界中,通常使用具有多个值的单变量设计(例如A / B / C / D)。多变量测试(也称为多变量测试(MVT))可评估多个参数(变量)一起使用,例如字体颜色和字体大小,允许实验人员在参数交互时发现全局最优值(请参阅第4章)。
Variant : 需要被测试的对象。在简单的A / B测试中,A和B是两个Variant ,通常称为控制(control)和治疗(treatment)。
随机单位 (Randomization Unit): 把测试单位(一个用户)分到不同 Variant 组中的伪随机过程。 好的随机化可以保证在不同变量上的用户大致相等,因此可以比较确定的发现因果关系。必须以持久且独立的方式将单位映射到变体(即,如果用户是随机单位,则用户应始终看到相同的内容,并且将用户分配给变体不应告诉你
有关将其他用户分配给其变体的任何信息)。我们强烈建议将用户用作线受众进行受控实验的随机单位。
正确的随机分配至关重要!如果实验设计给每个 Variant 分配相同比例的用户,那么每个用户都应该有相同的机会被分配给每个Variant 。例子下面展示了正确随机化的难度和重要性。
在1940年代,兰德公司需要为他们的蒙特卡洛方法找到随机数, 所以他们创造了一本书, 其中包括使用脉冲机生成的百万个随机数。 但是由于硬件方面的问题,他们发现原始表格存在重大偏差,并且在 1955 年不得不重新出版了一个新的书。
对照实验最初用于医学领域。 美国退伍军人管理局(VA)进行了一项实验
(药物试验): 他们尝试使用链霉素治疗结核病,但试验失败了。 原因医生在选择测试病人的时候, 引入了偏差(bias)(Marks 1997)。同样的实验在英国却成功了, 因为英国的选择是完全双盲的。 英国的实验创造了控制实验中的 “分水岭时刻” 一词。
任何因素都不应该影响随机分组过程。 注意, 随机分组并不是完全瞎选,或者没有任何计划的行为; 而是基于概率的精心设计的行为。