前言

在互联网业务中,“增长”是永恒的主题,但随着互联网时代的发展,野蛮增长的流量红利已逐渐消失,如何在策略效果不可见的条件下,实现有效增长是当下互联网企业的难题。面对未知的策略价值,在线实验成为了有效的测度手段,自2000年 Google 将实验技术应用在互联网产品中,在线实验已经成为互联网企业在策略验证,产品迭代、算法优化、风险控制等方向必备的工具。在线实验技术也逐渐成为数据科学领域中不可或缺的技术之一。

阿里妈妈在计算广告领域中深耕多年,算法策略优化、产品迭代均离不开在线实验的身影。经过多年的业务实践与技术积累,阿里妈妈数据科学团队总结沉淀了一套完整的实验技术与方法。接下来,我们将以系列文章的形式为大家分享,内容包括:**《认识在线实验》 、《在线分流框架下的AB实验》、《离线抽样框架下的AB实验》**等,欢迎感兴趣同学关注~

认识在线实验

1. 什么是在线实验

One accurate measurement is worth more than a thousand expert opinions

– Admiral Grace Hopper

1.1 起源

AB实验的概念来源于生物医学的 随机对照实验(randomized controlled trial, RCT),主要用于对某种药物的疗效或疗法的效果进行评估的手段,后被扩展在各个领域,如医学、生物学、农学、社会学等。基本方法是将研究对象随机分组,对不同的组采用不同的处理方式,通过与对照组的对比来得出实验效果,随机分组的方式可以有效避免实验设计的偏倚与混杂因素,能够最大限度的提升统计学结论的有效性,是目前公认的因果推断的黄金准则。其核心思想是统计学的概率理论与控制变量法,所以在某些领域随机对照实验又被称为控制实验。

1.2 发展

随着互联网的崛起,近些年 随机对照实验 的思想与方法被广泛应用在互联网产品的迭代优化上,尤其在度过了流量红利的时代后,用户增长、价值增长变得越发困难,增速逐渐放缓,靠数据驱动增长成为了互联网企业的一大发展主题,曾经 随机对照实验 迅速在互联网生根发芽,与生物、医学、社会学中的随机对照实验不同的是,互联网让实验变得更容易。

1、 样本数量,在曾经的对照实验中,获取实验样本是极其困难的,在医学实验上,能够符合实验条件的样本,往往只有几十到几百不等,这无疑为我们分组的随机性画上了一个问号,在小样本下,小概率的引起的变异能否被消除?这一点在互联网的实验体系里得到了完美的解决,通常一个实验场景的用户数都数以万计,甚至更多,大量的样本对实验结论的可靠程度,提供了最好的支持。

2、 实验成本,实验成本其实也是制约了传统对照实验样本数量的因素之一,在社会学调查中,每获取一个样本都需要一定的成本,可能是物力、财力、也可能是人力。对不同的分组采用不同的处理也同样需要成本,因此这注定了传统的对照实验不可能选择大规模实验来提升实验可靠性,互联网的在线实验由于计算性能的提升,在获取样本时几乎不需要成本,这大大提升了实验的可行性。

3、 混杂因素控制,在线实验通过精确的版本控制,保证了进入实验的样本均处在同样的环境下,有效的避免了混杂因素的干扰,保证了实验结论的因果性。

2. 为什么要做实验

2.1 因果推断

ABTest 作为因果推断的黄金准则,能够有效的判断,变量间的因果关系,相比现在的因果推断理论方法,ABTest 结论更加直观,基于控制变量的思想,在抛开个体的因果条件下,从总体层面关注实验因素的因果关系,回答了变量是否导致能够导致效应。

2.2 价值评估

对于多数的 ABTest 除了对因果推断给出一个定性的结论时,还需要有一个定量的结果,能够精确量化"处理"的价值,可能是收入提升、用户数提升、效率提升等。能够量化是数据驱动的前提,通过对于目标的量化,我们能够衡量出一个项目的价值,一个产品改动带来的收益、一个交互体验的变动对用户的影响。为后续的策略制定起到指导的作用。

2.3 风险控制

任何一次优化都伴随着风险,我们不能保证每次的优化对于用户都是正向、或者对整体目标是正向的,在控制风险的前提下,小流量的 ABTest 能够帮助我们预估大规模上线带来的风险,通过对实验目标的评估,做出正向或者负向的反馈,ABTest 为我们提供了试错的条件,在一定的试错机制下,能够有序的推行产品迭代与效率提升。

3. 实验的分类

3.1 ABTest

3.1.1 AB 实验

AB实验是受控随机化实验(randomized control trial, RTC)的通俗名称,也翻译为AB测试,或写为A/B实验。在一个标准的AB实验中,研究者通过随机化分组的方法来比较单个变量的两个版本,所采用的统计分析方法是双样本假设检验。以下图为例,A和B分别代表了一个按钮的两种设计,差别仅仅在于按钮的颜色。起初,设计师并不知道用户更喜欢哪一个颜色,因此采用随机化展示不同版本的按钮的方式来收集数据,并最终确定按钮颜色选择。

AB实验的流程一般遵循以下步骤:

  1. 确定目标,即描述目标指标。在按钮颜色选择的例子中,目标可以设为提升用户对按钮的点击,相应的指标就可以选为点击率。

  2. 确定随机化分组的单位,然后进行分组。在业务实践中,分组单位一般是用户UV,或者流量(page view,PV)。RTC的原理要求被分组的单位之间彼此独立,这个要求是进行分组对象选择时最重要的考量。在按钮颜色选择的例子中,我们通常既可以选择PV也可以选择UV为单位。但在复杂一些的环境中,PV和UV的独立性假设都有可能不被满足。比如,假定我们的受试用户的浏览行为有极大差异,少数用户贡献了大多数的浏览,那么PV之间的独立性就可能受到削弱,以为不同PV来自于同一个用户的可能性比较大。又比如,用户之间有社交联系,那么UV之间的独立性也会受到削弱。

  3. 确定样本量,这一步在统计学中被成为“势分析”(power analysis)。在具体业务中,确定样本量涉及到两个决策:受试用户或流量的占比,和实验运行的时长。试验者需要在两个决策之间进行权衡:较低的受试占比意味着较低的业务风险,但同时也意味着实验必须运行更久才能产生满足要求的样本量。

  4. 假设检验,在收集到预先设定的样本量后,我们就可以开进行假设检验。通常的统计假设是关于两个版本的均值的,比如H_0 : \mu _a = \mu _b,在这里\mu _a和\mu _b分别代表两个按钮的期望点击率。标准的双样本t-检验就可以被用来进行假设检验,在实际业务中,实验者一般都会采用大样本理论(asymptotic theory)版本的t-检验,也即z-检验,因为从实验组和控制组收集到的数据点一般远远多于30个,大样本近似分布足够提供可靠的检验。

3.1.2 ABn 实验

ABn实验是比较单一变量多个版本的实验。以下图为例,实验者可以同时比较多个颜色的按钮版本。

需要指出的是,在很多文献和产品中,“AB实验”也用来指代ABn实验,比如在 Google Optimize 中的“AB实验“组件,用户可以同时测试多个版本的素材。

ABn实验的假设检验可以分为两类:

1.涉及双样本的假设检验;

2.涉及两个以上样本的假设检验。

涉及双样本的假设检验既包括不同版本之间的两两比较(例如比较红色按钮和蓝色按钮的点击率的差别),又包括将不同版本加总后的两两比较(例如比较冷色调按钮的点击率和暖色调按钮的点击率的差别)。无论是那一种,检验方法与标准的AB实验是相同的。

涉及多个样本的假设检验则需要比t-检验更为通用的检验方法,其中适用场景最广、所需假设最少的检验方法是\chi ^{2}检验。\chi ^{2}统计量的构造方式如下:

\chi ^{2} = \sum{(O_i-E_i)^2\over E_i}.

其中O代表观察到的数量,E代表在原假设成立条件下的期望值。把加项的数目记为k,那么在样本量趋向于无限时\chi ^{2}统计量的分布收敛于分布\chi ^{2} (k-1)。还是以按钮颜色为例,假定我们的原假设是每个颜色的按钮的点击率都是相同的,即H_0 : \mu _a = \mu _b = \mu _c = \mu_d,而我们观察到的按钮点击数据如下:

统计量中的O可以从数据中直接读出,为30、15、50、100。在原假设之下,每个E的值都为1000*4.9%=49。由此,我们可以计算出相应的\chi ^{2}统计量 = 84.5。通过对比的\chi ^{2} (3)分布,我们就可以得出结论:可以在99%的置信水平上拒绝原假设。

值得指出的是,在检验涉及到超过两个样本均值的假设,如时H_0 : \mu _a = \mu _b = \mu _c = \mu_d,另一种广为人知的检验方法是 方差分析(ANOVA),然而由于方差分析还需要基于对方差是否相等的假设而在统计量的构造上有所区分,并且方差分析的F-统计量在样本量趋向于无限时与\chi ^{2}统计量的分布趋同,因此在一般互联网企业的日常业务中,通常没有必要采取方差分析。方差分析的优势在于,当样本量很小时,它能够给出比基于大样本理论的\chi ^{2}-检验更为精确的结果,因此更适用于收集数据成本极高的场景,比如临床实验。

3.1.3 AA 实验

AA是比较单一变量同一个版本的实验,可以看作是AB实验的一个特殊版本。一般来说,AA实验是用来检验AB实验的设计是否合理的工具。如果实验设计得当,那么我们预期AA实验将得出实验组与对照组没有显著差异的结论。

继续按钮颜色的例子,AA实验比较的是两个一模一样的按钮的点击率,实验的流程与AB实验相同。如果最终结果显示两个按钮的点击率有统计意义上显著的差异,那么有两种可能:1.出现了第一类错误;2.实验在至少一个步骤上出现了问题。

第一种可能性是无法避免的,因为假设检验本身预设了一个第一类错误的概率,通常被设为5%,因此由于第一种可能性而出现AA实验显著差异的概率就是5%。

而更常见的则是第二种可能性,往往是实验对象分组的随机性不够,使得实验组和控制组的受试对象有内在的差异所导致。针对AA实验得出的显著差异,实验者需要对受试对象进行再随机化分组,重新进行统计检验,这个过程可能需要重复若干次,直至检验不再反映出显著差异,接下来则可以基于这一分组开始AB实验。

3.1.4 MVT

MVT是 Multivariate Test 的缩写,是比较多个变量不同版本的实验。在下图的例子中,按钮的颜色有两种,文字也有两种,一共构成了四种组合。

如果仅仅为了找出点击率最高的按钮,那么我们可以沿用ABn实验的方法,把不同颜色和文字的组合看作不同版本的按钮就可以了。但是MVT的结构还允许我们进行更复杂的假设检验,比如H_0 : 颜色和文字对点击率的影响是独立的。检验这个假设对按钮的设计很有指导意义,如果原假设为真,那我们就可以依次优化按钮的颜色和顺序。

检验的方法依然是\chi ^{2}-检验。假设我们观察到的点击量如下(假定每个按钮的PV都为1000):

从上表我们可以算出,红色按钮的点击率是2.25%,绿色按钮的点击率是7.5%,“Sign Up”的点击率是4%,“Contact Us”的点击率是5.75%。如果原假设成立,每个颜色和文字的组合中期望点击率将正比于相应颜色点击率和文字点击率的乘积,经计算,在原假设下的期望点击数量如下:

套用\chi ^{2}统计量的公式我们计算出\chi ^{2}统计量 = 15.9。通过对比\chi ^{2} (3)的分布,我们就可以得出结论:可以在99%的置信水平上拒绝原假设。

AB Test 在最初的简单对比的基础上已经演化出了很多其他的版本,在不同的业务场景上发挥着不同的作用,例如通过MAB算法自动分配流量比率的实验系统,能够解决AB实验的决策问题;Netflix 推出的 Interleaved Test 实验方法,以算法策略作为随机单元,可以快速过滤出有效的少数策略,大幅降低了实验迭代的时间,以上仅是对现有实验方法的简单列举,后续的文章中,我们将逐步对每种方法进行介绍。

3.2 类实验

3.2.1 定义

从严格定义上来说,类实验研究是因为受实际条件所限不能随机分组或不能设立平行的对照组,不能完全符合上述条件,这样的研究称为类实验或准实验。实际上类实验更多的是人们遵照AB实验的逻辑,逐步放宽实验限定而形成的实验方法,核心思想依然是控制变量的对比法。

3.2.2 特点

其特点在于:①因实际情况不允许,研究对象常不作随机分组;②研究对象数量较大、范围较广;③无平行的对照,有时有内对照或自身对照。

类实验的设计与实施原则与标准的现场实验相比,除研究对象的分组一项之外,其余基本相同。类实验无法随机设对照组,但仍常设非随机对照组。这种类型的研究用得很多。例如,政策制定者对某城市选择高铁建设而隔壁城市不经过,对比两座城市因为高铁带动的经济差异,又如选择甲校学生注射某种新的生物制品以预防某病,而乙校不注射,然后甲乙两校作比较。

类实验也可不另设对照组,而以实验组自身为对照,即干预试验前和干预试验后相比。某些情况下,亦可不做实验前的测量,只做干预后的测量。此时的前提是,研究者十分熟悉研究对象及现场的情况,十分明确不给干预措施可能出现的结果。

3.2.3 常用的实验性研究设计

以下我们介绍几种常用的类实验对比设计:

自身前后对照

对研究对象自身在干预前后两个阶段的效果进行观察或测量,以评价干预效果。自身对照中,对照组和实验组的数据来自同一样本,自身对照更多的应用在无法分组的场景下,比如政策实施前后的效果差异,自身对照中存在明显的缺陷是,我们无法对时间变量进行控制,因此自身对照更多的是作为一些定性分析而应用。

分组前后对照设计

将研究对象随机分为实验组和对照组,实验组给与干预措施,对照组不干预,得出自变量与因变量之间的关系,前后对照设计是我们在客户实验常用的实验方法,也是研究计量经济政策效果中常用的方法,此处会采用DID的方法,用以平衡实验前的干扰。