何时运行 A/B 测试,亚马逊、微软、谷歌等大厂是怎么做的?
不久前,在谈及“抖音”名字是怎么来的时,字节跳动副总裁解释了这个是基于 A/B 测试排在第二的结果,而 A/B 测试到底是什么?
事实上,在产品研发及落地过程中,用户体验一直是开发商关心的重点方向之一。通常他们会基于一款产品进行 A/B 测试,即在同一时间维度,分别让组成成分相同的目标人群随机访问此产品的不同版本,继而收集用户体验数据和业务数据,*后分析、评估出*好版本,进而采纳使用。
在本文中,我们将从亚马逊、微软、谷歌的案例中学习 A/B 测试的应用。
对有意运行线上对照实验的公司/机构来说,有三个关键的宗旨:
宗旨1:该机构想要进行数据驱动决策,且有正式的 OEC
很少听到一个机构的领导层说他们不追求数据驱动(乔布斯领导的苹果公司是个著名的例外,Ken Segall(乔布斯时代为苹果策划广告的创意总监)宣称:“我们不测试任何广告。印刷品、电视、广告牌、网页、零售或者任何形式的广告都不测试。”。然而测量新功能给用户带来的额外好处是有成本的,且目标测量通常会显示进展不如预期设想的顺利。很多机构不会将资源用于定义和测量进展。更简单的做法是生成一个计划并实施它,然后宣告成功。关键指标则设立为“计划实施的百分比”,而忽视新功能对关键指标是否有任何正面影响。
要做到数据驱动,机构应当定义一个在较短期间内(例如一、两星期内)能够便利测量的 OEC(综合评估标准)。大型机构也许有多个 OEC 或者多个关键指标,经细化后为不同领域所共用。难点在于找到这样的指标:短期内可测量、足够灵敏以检测到差别,并且可以以此预测长期目标。例如,“利润”不是一个好的 OEC,一个短期的操作(如提高价格)可以增加短期利润,但可能会降低长期利润。客户终生价值则是战略上很有力的 OEC。对 OEC 达成一致且以 OEC 来协调整个组织的重要性怎么强调都不过分。
有时,人们也用“数据启示”(data-informed)或“数据感知”(data-aware)来避免对仅依赖单一数据来源(如对照实验)“驱动”决策的误解。本书将数据驱动和数据启示作为同义词使用。*终,决策的形成应基于多方数据来源,包括对照实验、用户调研、新代码维护成本的预估等。数据驱动或数据启示的机构会收集各种相关的数据来驱动决策,并告知 HiPPO(Highest Paid Person’s Opinion,*高薪者的意见),而不是依靠直觉。
宗旨2:该机构愿意为运行对照实验投资基础设施和测试,并确保实验结果是可信赖的
在通过软件工程师的工作就能满足对照实验运行的必要条件的线上软件领域(网站、移动端、桌面应用和线上服务):能够可靠地随机分配用户;能够收集数据;能够相对容易地对软件进行改动,比如增加新的功能。即便是规模较小的网站也有足够的用户数量以运行必要的统计测试。
正如 Eric Ries 在《精益创业:新创企业的成长》一书中所推崇的,对照实验在与敏捷软件开发、客户开发流程以及*简可行产品(Minimum Viable Product, MVP)相结合时格外有效。
在某些其他领域,可靠地运行对照实验可能比较困难甚至完全不可行。对照实验所需的某些干预在医药领域可能是不道德的或不合法的。某些硬件设备的生产交付时间可能较长且难以修改,因此*少在新的硬件设备(例如新手机)上运行基于用户的对照实验。在这些情况下,我们可以用其他的技术,比如补充技法。
假如可以运行对照实验,那么就要确保实验结果的可信赖性。从实验中获得数据是简单的,但是获得可信赖的数据是困难的。
宗旨3:该机构意识到其无法很好地评估想法的价值
团队认为一个产品功能有用才会去开发它,然而,很多领域的大部分想法都无法提升关键指标。在微软,被测试过的想法里仅有三分之一能改善目标指标。在已经高度优化的产品领域,如必应和谷歌,想要成功就更难了,测试的成功率仅在 10%~20% 之间。
Slack 的产品生命周期总监 Fareed Mosavat 曾发推特称,在 Slack 只有 30%的商业化实验显示正向结果。“如果在一个实验驱动的团队工作,你得习惯这一点,你的工作至少有 70% 可能会被弃置。要据此建立你的工作流程。”
Avinash Kaushik 在 “Experimentation and Testing primer”一文中写道:“80% 的时间我们都搞错了客户需要什么。”Mike Moran 曾称奈飞认为他们尝试过的东西有 90% 是错的。Quicken Loans 的 Regis Hadiaris 称:“在我做实验的五年里,我猜对结果的正确率和联盟棒球手击中球的概率差不多。是的,我做了五年,只能‘猜’对33%的实验结果!”。Etsy的Dan McKinley 称“几乎所有都是失败的”,而对产品功能,他说:“我们谦虚地认识到初次尝试就成功的功能是很少见的。我强烈认为这一经验是普遍的,只是没有被普遍地意识到或承认。”*后, Colin McFarland 在 Experiment! 一书中写道:“无论你认为多么不费吹灰之力,做了多少研究,或者有多少竞争者正在做,有时候想法就是会失败,并且失败的频率比你预期的更高。”
不是所有领域的数据都是这么差,但是大多数运行对照实验的面向客户的网站和应用程序都认识到这个无法改变的现实:我们不擅长预判想法的价值。
随时间推移的改进
在实践中,关键指标的改进是由很多 0.1%~2% 的小改动积累而来的。很多实验仅影响一部分用户,所以你需要将一个作用于 10% 用户的 5% 的影响稀释,从而得到一个小很多的影响(如果实验的触发群体和其他用户类似,那么稀释后的影响就是 0.5%)。正如阿尔·帕西诺在电影《挑战星期天》里所说:“……成功是一寸一寸实现的。”
1.1 谷歌广告的例子
在经历超过一年的开发和一系列的实验后,谷歌在 2011 年发布了一套经过改进的广告排序系统。工程师们在已有的广告排序系统里开发并测试了新改进的模型,以测量广告的质量分数,也开发并测试了对广告竞价系统的改动。他们开展了上百个对照实验和多次迭代,有些实验横跨多个市场,有些则在某一市场长期运行,以深度了解广告商受到的影响。这一大型的后端改动—以及运行对照实验—*终验证了规划和叠加多个改动可以通过提供更高质量的广告改善用户体验,并且高质量广告的更低价格也提升了广告商的体验。
1.2 必应关联算法的例子
必应几百人的关联算法团队每年的任务就是将单个 OEC 指标提高 2%。这 2%由当年发布给用户的所有对照实验的实验效应(即 OEC 的增量)相加而成(假设可简单相加)。由于该团队每年运行上千个实验,有些实验会因为偶然性出现正向结果,2% 的贡献取决于一种重复实验:一旦某个想法的实现在经过多次迭代和优化之后成功了,一个单对照组的认证实验就会开始运行。这个认证实验的实验效应决定了对 2% 这一目标的贡献。*近的研究建议缩减实验效应以提高精确度。
1.3 必应广告的例子
必应的广告团队每年持续地给营收带来15%~25%的增长(eMarketer 2016),但是大部分的提高都是一点一点完成的。每个月会发布一个打包了多项实验结果的“包裹”,如下图所示。多数都是小的改进,有些甚至因为空间限制或法律法规要求而给营收带来负增长。十二月左右的季节性激增很有信息量。在十二月,随着用户的购物意图显著提高,广告空间也相应增加,搜索带来的营收也随之提高。
必应广告营收随时间的变化 (y 轴代表每年增长大约 20%),具体数字不重要
有趣的线上对照实验实例
有趣的实验是指那些预期结果和实际结果相差很远的实验。如果你认为一件事情会发生,然后它真的发生了,那么你不会学到什么。如果你认为一件事情会发生,但没有发生,那么你会学到一些重要的东西。如果你原本认为一件事情不值一提,但它带来了惊人的或突破性的结果,那么你会学到一些非常有价值的东西。
经久的进步来自持续的实验和很多小的改进,这里介绍的几个有惊人效果的例子表明了我们有多不擅长预估想法的价值。
2.1 UI 实例:41 阶蓝
谷歌和微软的很多例子都一致显示:小的界面设计决策也可能有重大的影响。谷歌在搜索结果页面上测试过 41 个阶度的蓝色,这让当时的视觉设计负责人很受挫。然而,谷歌对配色方案的调整给用户活跃度带来了实质性的提高(谷歌没有报告单一改动的结果),并促成了之后设计团队和实验团队的高度协作关系。微软的必应也做过类似的配色改动,帮助用户更成功地完成任务,改善了任务成功需时,将美国市场的年营收提高了超过1千万美金。
这些都是微小改动带来巨大影响的很好的例子,但由于配色方案已经被广泛地测试,在更多实验中“玩”配色已不太可能带来更加显著的改进。
2.2 在正确的时机显示推广
2004 年,亚马逊在主页上放置了信用卡推广,该推广带来了可观的利润,但是点击率(Click-Through Rate, CTR)很低。团队进而运行了把该推广移至购物车页面的实验,用户把商品加入购物车后,可以看到一个简单的计算,从而对该信用卡带来的优惠额度一目了然,如下图所示。
亚马逊购物车的信用卡推广
因为已经在购物车添加了商品的用户有非常明确的购物意图,所以这一推广出现在了正确的时机。对照实验显示这一简单的改动帮助亚马逊增加了数千万美金的年利润。
2.3 个性化推荐
亚马逊的 Greg Linden 做过一个产品雏形,根据用户购物车里的商品显示个性化的推荐。当你添加一件商品时,会看到一些推荐,再添加另一件商品,会看到新的推荐。Grey Linden 指出,虽然这个产品雏形看起来颇有前景,但一个市场营销高级副总裁*力反对,称它会分散用户注意力而影响结账。Greg Linden 被禁止继续这项工作。尽管如此,他还是运行了一个对照实验,并且这一新功能大幅获胜,放弃它将使亚马逊蒙受可观的损失。带着新的紧迫性,购物车推荐很快被发布了。如今,很多网站都在使用购物车推荐模型。
2.4 速度非常关键
2012 年,微软必应的一个工程师对 JavaScript 的生成方式做了改动,大大缩短了 HTML 到达客户端的时间,从而提高了性能。相应的对照实验显示了多项指标令人惊叹的改进。他们接着做了跟进实验来测量对服务器性能的影响。结果显示性能提高的同时也显著提高了关键用户指标,例如成功率和首任务成功需时,且每 10 毫秒的性能提升(眨眼速度的 1/30)足以支付雇佣一个全职工程师一年的成本。
2015 年,随着必应性能的提高,人们产生了疑问:服务器结果返回时间的 95 百分位数(即 95% 的搜索请求)已经在1秒以下,进一步提高性能是否仍有价值。必应的团队开展了跟进研究,发现关键用户指标仍旧得到了显著提高。虽然对营收的相对影响有一定程度的减弱,但由于必应的营收在那几年增长如此之多,以至于性能上每 1 毫秒的提升都比过去更有价值,每 4 毫秒的改进就能雇佣一个工程师一年!我们将在第 5 章深度剖析相关实验以及性能的重要性。
许多公司都做过性能实验,结果都显示性能多么关键。在亚马逊,一个 100 毫秒的减速实验使销售额减少了 1%。必应和谷歌的一个联合讲演展示了性能对关键指标的显著影响,包括去重搜索词条、营收、点击率、用户满意度和首点击需时。
2.5 减少恶意软件
广告是一项有利可图的生意,用户安装的“免费软件”经常包含插入广告污染页面的恶意软件。下图显示了一个含有恶意软件的必应搜索结果页面。注意有多个广告(用方框圈出)被插入这个页面。
这些不相关的低质量广告不仅移除了必应自己的广告,从而侵占了微软的营收,也给用户带来了糟糕的体验,用户可能都没有意识到为什么他们会看到这么多广告。
微软对380万潜在受影响的用户运行了一个对照实验:修改文档对象模型(Document Object Model, DOM)的基本路径被覆写,只允许少数可靠来源的修改。结果显示必应所有的关键指标(包括人均会话数)都有所提高,这意味着用户访问的增加或用户流失的减少。除此之外,用户的搜索也更加成功,能更快地点击到有用的链接,必应的年营收也增加了数百万美金。前文讨论过的关键性能指标,比如页面加载需时,在受影响页面上也提升了几百毫秒。
2.6 后端改动
后端算法的改动是在运用对照实验时常常被忽视的领域,但它可能带来重大影响。我们在前文中描述过谷歌、领英和微软的团队如何一点点做改动,这里我们讨论一个来自亚马逊的实例。
回到2004年,当时亚马逊已经有了基于两个数据集的很好的推荐算法。其标志性功能本来是“买了X的用户也买了Y”,但后来被延伸为“浏览了X的用户也买了Y”和“浏览了X的用户也浏览了Y”。有人提出了一个方案,使用同样的算法推荐“搜索了X的用户也买了Y”。这个算法的支持者给出了含义不明的搜索的例子,比如“24”,多数人会联想到Kiefer Sutherland主演的电视剧。亚马逊的原算法对“24”返回的结果比较糟糕(下图左),有会24首意大利歌曲的CD、24月龄婴儿穿的衣服、24英寸的毛巾杆等。而新的算法表现比较出色(下图右),根据用户搜索“24”后实际购买的项,返回了相关电视剧的DVD和书籍的搜索结果。该算法的一个不足是返回的某些商品并没有包含搜索关键词。亚马逊运行了一个对照实验,即使有上述不足,这一改动也将亚马逊的营收提高了3%—数百万美金。