A/B测试的数学原理与深刻理解

图片描述

A/B测试是基于数据来进行优选的经常使用方法,可是你真的了解A/B测试背后的统计学原理吗?当A/B测试遇到非简单状况时(如分组不够随机时,或用户量不够大到能够忽略组间差别,或不但愿大规模A/B测试长期影响一部分用户的收益),该怎样经过掌握理论知识来更好的指导实践呢?本文尝试经过由浅入深的介绍,但愿可以帮助你们对A/B测试有更加深刻的理解。算法

为何须要A/B测试?

当面对众多选择时,咱们应该怎么选才能最大化咱们的收益(或者说最小化咱们的开销)呢?举例来讲,怎么选择最优的上班的路线才能使途中花费的时间最少?在这个例子中,咱们的收益多是依据于上班时间,但一样能够是燃料成本或交通时间。机器学习

任何问题,只要它的每一个选项可以被屡次进行测试,而且每一个选项在被测试时都能返回固定的结果,那么它就能使用A/B测试技术来进行优化。在上述例子中,天天的上下班路线是肯定的,因此咱们可以在帐本中记下往返路线的长度。长此以往,上下班的人会从数据中发现到一些模式(例如路线A比路线B花的时间更少),而后最终一致选择某条路线。那么什么样的路线对于用户来讲才是一个好的方案呢?是考虑路线A仍是B?何时用户才有充分的数据去肯定哪条线路是最好的?测试线路好与很差的最优策略又是什么?图1用形式化归纳定义了问题。ide

图片描述

图1 形式化定义的问题。在这个场景中,参与的用户正面临一个选择,根据他的决策会生成一个结果,而这个结果会对应一份给参与者的反馈。假设用户持续地暴露于这个决策,他应该怎么制定得到最大收益(或等效地说,最小成本)的策略?布局

图1中假定了用户屡次处于须要进行选择的场景中,每一次进行决策都会达成一项结果,而这个结果会关联相应的反馈。在上下班这个例子中,假定他天天都须要上下班,并且他每次上下班都必须进行线路的选择,产出的结果是此次上下班中全部因素的结合体,反馈就是从这些因素中构建出来的(陈运文 达观数据)。学习

这是个浅显的例子,在互联网产品研发时,有大量相似的场景须要作出各类正确的选择,例如:测试

  • 着陆页优化(Landing-page
    optimization)——在用户点击去往的页面(着陆页),如何得到最大的转化率(经常使用计算方法为有购买行为或深度网页交互行为的用户数占网站访问总用户数的比率)。决策要考虑到着陆页的形式和内容(要从可能已有的3或4个备选方案中作出选择),但愿可以从候选集合中选出最好的着陆页,以可以吸引来访的用户,并让深度交互或者购买行为的几率最大化。
  • 广告创意优化(Ad creative optimization)——在线广告提出了许多适合机器学习技术应用的挑战,其中之一就是如何选择广告的形式和内容。当咱们决定将要进行广告展现,以及肯定了广告的价格后,在这个广告位上选择放置什么广告呢?咱们须要对大量的决策进行测试,选出正确的广告创意组合。

什么是A/B测试

常常遇到的问题是,咱们应该怎么评估各不相同的决策,以及应该采用哪些策略来测试咱们的产出? A/B测试(A/B testing)就是其中之一的方法。A/B测试近年来很受欢迎,但大部分产品经理也许会简单地认为它只不过是一种包含两个组的实验,其实背后有更为复杂的数学统计理论知识。优化

接下来让咱们深刻一点了解具体细节:当进行A/B测试时,一般会采用两个(或多个)组:A组和B组。第一个组是对照组,第二个组会改变其中一些因素。就以着陆页优化为例,A组会展现现有的着陆页,B组会展现一个内容或者内容做了某些修改的新着陆页。A/B测试的目的就是尝试了解新的布局是否在统计上显著地改变了转化率。网站

特别值得注意的是,将用户分配到对应的组须要通过深思熟虑。对于A/B测试,咱们能够高效地进行随机分组。当用户数量较大时,各组间用户行为能够假设是相同的(即组间没有误差)。可是,这里有三个很是重要的关键点,是你们有必要进一步理解其数学理论原理的缘由:搜索引擎

  • 问题一:怎样验证两个组的用户的行为是无误差、彻底相同的
  • 问题二:当两个组的用户行为不彻底相同时(例如分组不够随机或者组内用户数量较小时),该如何设计AB测试以实现指望的验证结果
  • 问题三:当用户基础行为受其余因素影响发生总体变化了呢?例如季节、时间波动、热度等因素影响下,怎样更好的剔除干扰来评估结果

AB测试的统计理论

假设咱们已经构建了两组数目较大的用户组,这些用户组的区别仅在于他们到达的着陆页。咱们如今但愿能测试两组间的转化率在统计上是否存在明显差别。因为样本量大,咱们能够采用双样本单尾z-检验(two-sample, one-tailed z-test)。另外,对于较小的样本集合,咱们能够依赖于t-检验。编码

z检验(z-test)是在数据是正态分布和随机抽样的假设下运行的,目的是验证测试集(B组)是否与该对照集(A组)有显著不一样,可是如何执行这个测试呢?

假设有来自A组和B组中的每一组的5,000个样本。咱们须要一个数学公式来讲明咱们的零假设(null hypothesis)——两组群体的转化率没有显著的正差别,和备择假设(或称对立假设,alternative hypothesis)——不一样人群间的转化率确实存在着正差别。

咱们可将采样转化率视为一个正态分布的随机变量,也就是说,采样的转化率是在正态分布下对转化率的一个观测。要了解这一点,请考虑从同一组中提取多个样本进行实验将致使略有不一样的转化率。每当对某组进行抽样时,可得到群体转化率的估计,对于A组和B组都是如此。为此咱们提出一个新的正态随机变量,它是A和B组的随机变量的组合,是差值的分布。让咱们用X来表示这个新的随机变量,定义为: X=X_e-X_n

其中, X_e 表示实验组的转化率的随机变量, X_n 表示对照组的转化率的随机变量。如今咱们能够写出零假设和备择假设。零假设能够表示为: H_0:X=0

这表示实验组和对照组是相同的。两个随机变量 X_e 和 X_n 分布在相同的群体平均值周围,因此咱们的新随机变量X应该分布在0左右。咱们的备择假设能够表示以下: H_a:X>0

实验组的随机变量的指望值大于对照组的指望值;该群体的平均值较高。

咱们能够在零假设的前提下,对X的分布执行单尾z检验,以肯定是否有证据支持备择假设。为了达到这个目的,咱们对X进行采样,计算标准分,并测试已知的显著性水平。

X的采样等效于运行两个实验,肯定它们各自的转化率,并将对照组和实验组的转化率相减。按照标准分的定义,能够写做:图片描述

其中, P_{experiment} 是实验组的转化率, P_{control} 是对照组的转化率,SE是转化率差值的标准差。

为肯定标准偏差,注意到转化过程是符合二项分布的,所以访问该网站能够被看做单次伯努利试验(single Bernoulli trial),而积极结果(完成转化)的可能性是未知的。假设样本数量足够大,咱们可使用普遍采用的Wald方法(参考Lawrence D. Brown, T. Tony Cai, and Anirban DasGupta, “Confidence Intervals for a Binomial Proportion and Asymptotic Expansions,” The Annals of Statistics 30, no. 1 (2002): 160–201.)将该分布近似为正态分布。为了捕获特定转化率的不肯定性,咱们能够将标准偏差(SE)写入实验组和对照组,其中p是转化的可能性,n是样本数量,具体以下:图片描述

从二项分布(np(1-p))的方差获得分子,而分母表示当采用更多的样本时,转化率的偏差会随之降低。请注意正面结果的几率等同于转化率,而且由于两个变量的标准偏差能够经过相加来合并,获得以下结果:

图片描述

经过替换,可得到以下的z检验公式,这是一个符合二项分布的Wald(或正态)区间的公式:
图片描述

z的值越大,反对零假设的证据就越多。为了得到单尾测试的90%置信区间,咱们的z值将须要大于1.28。这实际上这是指在零假设(A组和B组的人口平均值是相同的)的条件下,等于或大于这个转化率差值的偶然发生的几率小于10%。 换句话说,在对照组和实验组的转化率来自具备相同平均值的分布的假设前提下,若是运行相同的实验100次,只会有10次具备这样的极端值。咱们能够经过95%的置信区间,更严格的边界和更多的证据来反对零假设,这时须要将z值增长到1.65。

研究影响z大小的因素会带来不少有用的帮助。很显然,若是在一个给定的时间点从一个实验集和一个对照集中提取两个转化率,转化率的差值越大将致使z分数越大。所以就有了更多的证据代表两个集合分别来自不一样的人群,并且这些人群带有不一样的均值。然而样品的数量也很重要,如你所见,大量样本将致使整体较小的标准偏差。这代表运行实验的时间越长,转化率的估算越准确。

评估效果的代码实现

设想你在负责大型零售网站,设计团队刚刚修改了着陆页。每周有约20,000用户,并能够量化用户的转化率:即购买产品的百分比。设计团队向你保证新网站将带来更多的客户。但你不太肯定,但愿运行A / B测试来看看效果是否真的会提升。

用户在第一次访问网站时被随机分配到A组或B组,并在实验期间始终保留在该组中,实验结束时评估两组用户的平均转化率。统计结果是,新着陆页的平均转化率是0.002,而原先的着陆页的平均转化率是0.001。在着陆页永久更改成新设计以前,你须要知道这一增加是否足够明确。下面这段代码帮你回答这个问题。
图片描述

这段代码获取实验中z的值,在上述参数条件下z值为1.827,超过了92%置信区间,但不在95%的区间内。能够说,从控制分布中抽取数据的几率小于0.08。所以在该区间内数据提高是显著的。咱们应该否认零假设,接受备择假设,即组之间有差别,第二组具备较高的转化率。若是咱们控制了用户组的全部其余方面,就意味着网站的新设计产生了积极的效果。

你应该可以从代码中看到转化率分布的标准偏差对返回的z值有直接影响。 对给定的常数值p_experiment和p_control,两个组的SE越高,z的数值越小,结果就越不显著。还注意到因为SE的定义,z的数值与样本的数量具备直接关系,对于给定的转换几率也一样如此。图2展现了这种关系。
图片描述

图2 展现了A / B组的固定转化率,以及A / B组中的用户数量和z值之间的关系。 假设转化率不会随着咱们收集更多数据而改变,咱们须要每一个组中大约3,000个用户达到70%的置信区间。 要达到80%的置信区间时须要每组约5000个用户,达到90%时须要 7500个用户,达到95%时须要12000个用户。

图2中可见对于两个组的给定转化率,测试组中的用户越多,备择假设的证据就越充分。直观上来看这很容易理解:当收集的数据越多,咱们对结果越自信!咱们也能够绘制一张相似的图,保持用户数量不变,改变组之间的差别。但必须注意,对正在关注的应用,不该该指望效果的大幅度变化。

A/B测试方法的反作用和处理办法

对于很是小的效果变化,每每都须要建立至关大的对照组和测试组来实现AB测试,这个的代价每每是很大的。设想下在零售商场中,天天观察到的用户数量,每每须要好久的时间才能得出明显的结论。在实际业务应用中,会遇到的问题是:当你运行测试时总体运行的效果是受到很大影响的,由于必须有一半的用户处于效果不佳的实验组,或者有一半的用户处于效果不佳的对照组,并且你必须等待测试完成才能中止这种局面。

这是被称为探索利用难题(explore-exploit conundrum)的一个经典问题。咱们须要运行次优方法,以探索空间,并找到效果更好的解决方案,而一旦找到了更好的解决方案,咱们还须要尽快利用它们来实现效果提高。可否能够更快地利用新的解决方案,而没必要等待测试彻底完成呢?答案是确定的。下面简单介绍下多臂赌博机(multi-armed bandit,MAB)的概念。

多臂赌博机的定义

多臂赌博机(multi-armed bandit,MAB)的名字来源于著名的赌博游戏角子赌博机(one-armed bandit)。对那些从没去过赌场的人,咱们来作下解释:角子机(又称老虎机)是一个须要你拉杠杆(或摇臂)的赌博机器,根据机器展现的数值,你可能会获得一笔奖励,也可能(更大概率)得不到任何东西。和你想的同样,这些机器的设置都对庄家有利,因此能获的奖励的概率是很是很是小的。

多臂赌博机(理论上的)扩展了这种形式,想象你面对的是一堆角子赌博机,每一个赌博机都被分配按照一个独立的几率进行奖励。做为一个玩家,你不知道在这些机器后的获奖几率,你惟一能够找到获奖几率的方法是进行游戏。你的任务是经过玩这些机器,最大限度地提升所获的奖励。那么你应该使用什么策略呢?

多臂赌博机策略

为了更严格地定义问题,咱们经过数学形式化来表达,假设如今有k个赌博机,可观察到的每台的获奖几率等于 p_k 。假设一次只能拉动一个摇臂,而且赌博机只会按照它关联的几率机型奖励。这是一个设置了限定局数的有限次的游戏。在游戏期间任意时间点时,水平线H被定义为容许的剩余游戏的数量。

对全部机器用户会尝试最大化的获奖回报。在游戏中的任一时间点,咱们均可以经过使用称为遗憾值(regret)来度量用户的表现。遗憾值的意思是,假设用户能在每一步选择最优的赌博机,获得的奖励和目前得到的实际奖励的差值。遗憾值的数学定义为:图片描述
其中T表示咱们到目前为止进行过的步数, r_t 表示在第t步得到的奖励, mu_{opt} 表示每一局从最优赌博机返回来的指望奖励。遗憾值的数值越低,策略越优。但由于这个度量值会受到偶然性的影响(奖励可能会被从最优赌博机选择中得到的指望奖励更高),咱们能够选择使用遗憾值的指望值代替,定义为:图片描述

其中 μ_t 是在第t步从赌博机中得到的平均奖励(不可观测的)。由于第二项是来自所选策略的指望奖励,因此它将小于或等于来自最优策略(每一步都选择最优的赌博机)的指望奖励。

Epsilon优先方法

Epsilon优先(Epsilon first)是MAB策略中最简单的一种方式,它被认为和事先执行A/B测试方法具备同等意义。给定ε,执行探索空间操做的次数为(1 – ε) × N,其中N是游戏中总共的局数,剩余的次数都是执行后续探索的局数。

update_best_bandit算法会持续统计记录每个赌博机的奖励收入和游戏局数。变best_bandit会在每一局结束进行更新,记录当前具备最高获奖几率的赌博机的编号,流程以下:

图片描述

Epsilon贪婪

Epsilon贪婪(epsilon-greedy)策略中,ε表示咱们进行探索空间的几率,和进行利用已知最优摇臂的事件互斥

图片描述

该方法的特色:不须要等到探索阶段完成,才能开始利用有关赌博机的奖励表现的知识。但要当心,该算法不会考虑效果数据的统计意义。所以可能发生这样的状况:个别赌博机的奖励峰值致使后续的全部局游戏都错误地选择了这个赌博机(陈运文 达观数据)。

Epsilon递减

Epsilon递减(epsilon-decreasing)策略在实验开始阶段,会有一个很高的ε值,因此探索空间的可能性很高。ε值会随着水平线H上升而不断递减,导致利用似然知识的可能性更高。

图片描述
须要注意这里有几种方法去来选择一个最优的速率来更新ε值,具体取决于赌博机的数量,以及他们各自进行奖励的权重。

贝叶斯赌博机

与A / B测试相似,贝叶斯赌博机(Bayesian bandits)假设每一个赌博机的获奖几率被建模为获奖几率的分布。当咱们开始实验时,每一个赌博机都有一个通用的先验几率(任意赌博机的奖励比率初始都是同等的)。在某一个赌博机上进行的局数越多,咱们对它的奖励信息就了解越多,因此基于可能的奖励几率更新其获奖几率分布。当须要选择玩哪个赌博机的时候,从获奖几率分布中采样,并选择对应样本中具备最高奖励比率的赌博机。图3提供了在给定时间内对三个赌博机所含信息的图形化表示。

图片描述

图3 使用贝叶斯赌博机策略对三个赌博机的获奖几率信息进行建模。第一、2和3个赌博机的平均获奖率分别为0.一、0.3和0.4。 第1个赌博机具备较低的平均值并且方差也比较大,第2个赌博机具备较高的平均值和较小的方差,第3个赌博机具备更高的平均值和更小的方差。

能够看到关于赌博机的获奖几率分布的信息被编码为三个分布。每一个分布具备递增的平均值和递减的方差。所以,咱们不太肯定奖励指望值为0.1的真实奖励率,最可靠的是奖励指望值为0.4的赌博机。由于赌博机的选择是经过对分布进行抽样来进行的,因此分布指望值是0.1的赌博机的摇臂也可能被拉动。这个事件会发生在第2个赌博机和第3个赌博机的采样样本奖励值异常小,并且第1个赌博机的采样样本异常大时,相应代码以下(陈运文 达观数据):

图片描述

总结:A/B测试和贝叶斯赌博机的特色

A/B测试和贝叶斯赌博机的各自的优势和局限是:二者有各自适用的场景,也验证的变量数量也各不相同,具体以下表。
图片描述

此外,两个方法的收敛速度也很不同。在A/B测试中是指得到统计意义,在贝叶斯赌博机中是指累积遗憾值再也不增长。以本章最开始的网站优化为例,首先请注意,任何行为的改变多是微小的(<0.01),而咱们已经知道贝叶斯赌博机相比大的改变提高,须要更多的收敛时间。若是加了多种选择,在同一个实验中测试多种登录页面,将更加会影响收敛速度。假如用户变化致使的底层分布变的比模型收敛更快呢?好比,季节趋势,销售或者其余因素可能会影响。

图片描述
显然,收集的数据越多,对效果的潜在变化的把握度就越高。当2个组划分自己就存在统计差别时,经过多臂赌博机而不是A/B测试的方法能够从几率上修正咱们选择的分布。本文还重点介绍了z检验(z-test)的数学知识,由于其构成了A/B测试的统计理论基础。

编者注:

如对文本挖掘领域的技术实践感兴趣,可前往下载达观研究院编写而成的《达观数据技术实践特刊》,该书集合了当下最热门的人工智能领域天然语言处理、个性化推荐、垂直搜索引擎三大方向的技术实践总结,融合了达观技术团队在服务华为、中兴、招行、平安、京东云等不一样行业上百家企业后的技术感悟,是国内第一本系统介绍NLP、深度学习等AI技术实践应用的电子刊,欢迎各位技术爱好者前往下载

【本文版权归达观数据(http://www.datagrand.com)全部,如需转载请注明出处。】

【本文做者】陈运文 达观数据CEO 【做者简介】达观数据

CEO。复旦大学博士,知名计算机技术专家,国际计算机学会(ACM)和电子电器工程师学会(IEEE)会员,中国计算机学会(CCF)高级会员,上海浦东“百人计划”专家和政协委员,在人工智能领域有30余项国家发明专利,曾担任盛大文学首席数据官、腾讯文学高级总监、百度核心技术研发工程师。在机器学习、天然语言处理、搜索推荐等领域有丰富的研究和工程经验,成功带领达观数据成为中国文本智能处理领域的领先企业。

相关文章
相关标签/搜索