Twitter的A/B测试实践

简介

 

A /B测试曾在多个领域产生深远的影响,其中包括医药、农业、制造业和广告。 在软件开发中, A/B测试实验提供了一个有价值的方式来评估新特性对客户行为的影响。本文将基于Twitter的 A/B测试系统的技术和统计现状为大家介绍为什么进行 A/B测试和如何避免其中的陷阱。

 

 

实验是 Twitter产品开发周期的核心。这种实验文化可能是因为 Twitter对工具、研究和培训进行了大量的投资,以确保特性团队能够对他们的想法进行无缝、严格的测试和验证。

 

Twitter实验的规模无论数量还是种类都是庞大的——从细微的 UI/UX变更,到新特性,到机器学习模型的改进。我们喜欢将实验看作是是一个无尽的学习环。

 

 

建立假设:提出新特性想法或者为现有特性提出改进建议。

定义成功指标:评估“机会大小”——受该变更影响的用户数量。正式定义实验成功和失败的指标;考虑可接受的折衷方案。

检验假设:实现拟定的变更,”检测“相应的日志,并执行合理性检查以确保实验正确配置。

学习:检查实验中收集的数据,吸取其中的经验教训,并与其他 Twitter团队共享。

发布:收集完数据后,判断实验是否验证了假设,并决定发布或者不发布。

建立另一个假设:结合实验中的新想法,为更多的改进建立更多的假设。

 

A/B测试、决策制定和创新

Twitter的产品检测和实验团队对实验哲学进行了大量的思考。A/B测试可以带来很多好处,但是它也有很多众所周知的、容易陷入的陷阱。它的结果往往是出人意料、违反直觉的。我们如何避免这种陷阱?什么时候我们应该建议进行 A/B测试,从而试验特性或者拟定的变更?在决策制定过程中我们如何保持敏捷,且在承受重大风险的时候仍能保持严谨?

 

测试的好处以及增量测试

大部分实验只能带来个位数百分比的改进,或者甚至是分数百分比。因此,有些观点认为,这有什么意义呢?为什么不从事一些更有影响力、更有革命性的事情呢?

 

实际上。如果存在实验能够提升指标,那么到目前为止,大多数实验都在以最低限度的方式提升着指标。如果某个实验能够为大部分用户将某个核心指标提升数个百分点就被视为一种非凡的成功。

 

这与 A/B测试的基本原理无关。这是因为一个成熟的产品很难通过大幅度改进指标的方式改变。很多人认为的全垒打想法根本没有带来一点点的改进:人类原来极其不善于预测什么可行。大多数时候,不理想的 A/B测试结果让我们能够及早发现:看上去不错的想法其实可能不怎么样。因此我们更愿意尽可能快的获得坏消息,重新回到绘图板;这就是我们实验的原因。

 

A/B测试是一种可以确保好想法不会夭折的方法,使好的想法有机会全面充分开发。当我们真正的信任某个想法,而初步实验结果不能满足我们的期望的时候,我们可以对产品做进一步改进,持续改进直到符合期望可以发布给数百万的人使用。

 

在我们从事各种各样原型开发的时候,快速迭代和衡量拟定的变更带来的影响让我们团队能够及早将隐式用户反馈吸收进产品中。

 

第一种情况,我们可以发布一个变更,研究哪些能够产生改进,哪些不能,接着为能够进一步改进产品的变更建立假设,然后发布变更,周而复始直到拥有能够推送给更广泛用户的变更。

 

有些人可能认为这种增量变更效率太低。当然,发布“大创意”听起来远比小改进好太多了。然而仔细想一下,将许多小变更叠加起来就能产生复合效果。回避增量变更的产品改进方法很大程度上不是一个好方针。一个好的金融投资组合要能够平衡——尽管回报不那么高但没有风险赌注和高风险、高收益赌注。在这方面产品组合管理没有什么不同。

 

 

第二种情况,另一类变更:主要的新特性在内部构建过程中通过用户研究进行测试,但是考虑市场战略原因,在特定时刻整合成新版B发布给所有的用户。作为一个组织,我们在自认为对产品和用户都有利的时候做出这个决定。我们相信尽管增量变更可能带来更好的初始版本A,使更多用户尝试和使用,但是我们能够从新版B中获得更多收益。这是产品负责人需要权衡取舍的。那么当这么一个新版B发布后,我们要对其增量变更进行 A/B测试吗?当然啦!随着想法的成熟,我们使用完善的科学原理指导它们的演化——并且实验是该过程的关键部分。

 

实验的可靠性

既然我们已经对运行实验进行了案例说明,接着让我们来讨论怎么做可以避免陷阱。实验的配置和分析是复杂的。即使是正常的人类行为也很容易引起对结果的偏差和误解。这里有几种实践方法,可以降低风险。

 

需求假设

通常实验工具能够揭示大量数据,常常允许实验者设计自定义的指标来衡量变更的影响。但这可能触发 A/B测试中最隐匿的陷阱之一:“cherry-picking”——从许多数据点中选择仅仅支持你的假设的指标,或者看到数据后调整假设,从而让它匹配实验结果。在 Twitter,一个实验收集上百个指标是很常见的,这些指标可以分解成大量的维度(用户属性、设备类型、国家等等),生成数以千计的观测值——如果你希望拟合使其适应任何故事,就需要从中挑选。

 

我们指导实验者远离 cherry-picking的一个方法是,要求他们在配置阶段明确指定希望改进的指标。实验者愿意跟踪多少指标都可以,但是只有少数指标可以用这种方式明确标记。然后工具在结果页面突出显示这些指标。实验者可以自由探索所有其它已经被收集的数据,建立新的假设,但是最初的假设应该是固定的,并且要容易检查。

 

实验过程

无论工具有多好,一套配置不完善的实验仍然会交付不理想的结果。在 Twitter,我们已经对创建实验过程进行了投资,从而提高实验成功、正确运行的概率。在这个过程中大多数步骤是可选的——但是我们发现,使其可用和详细记录能够大大降低重新运行实验的时间损失从而收集更多数据,并降低等待 App Store发布周期的时间损失,等等。

 

所有的实验者都被要求记录他们的实验。你在改变什么?你期望的结果是什么?期望的“受众规模”(将要看到这一特性的用户比例)?收集这些数据不仅保证了实验者考虑过这些问题,而且让我们能够建立一个制度性学习的资料库——一份已经实验的正式记录和实验结果,包括负面结果。我们可以用此提醒后面的实验。

 

实验培训

确保实验者提防陷阱最有效的方法之一就是培训他们。Twitter数据科学家会开设多门实验和统计直觉课程,其中统计直觉是所有新工程师加入公司后的前几周都要参加的课程。目标是使工程师、PM、EM和其它一些角色熟悉实验过程、警告、陷阱和最佳实践。增强实验品质和陷阱的意识有助于我们避免在可避免的错误和误解上浪费时间,让人们更快洞察和改进节奏和质量。

 

(本文转载自云测数据)

Leave a Comment