DataTester 是字节跳动在 2019 年正式通过火山引擎数智平台推出的对外服务的 A/B 实验工具,它基于先进的底层算法,提供科学分流能力,提供智能的统计引擎,实验结果可靠有效,助力业务决策。

让中小企业也能借助字节跳动的技术力量拥抱最新的产品趋势,融入字节跳动的各种方法论,打造更加优秀的产品。DataTester 在字节内每日新增 1500+实验,累计已有 150W+ 的 A/B 实验进行过。

在外部客户的服务上,也已覆盖推荐、广告、搜索、UI、产品功能等业务场景,提供从实验设计、实验创建、指标计算、统计分析到最终评估上线等贯穿整个实验生命周期的服务。来自得到、美的、凯叔讲故事 APP 等企业客户,已经通过火山引擎 DataTeser 开启了用数据驱动科学决策的道路。


(相关资料图)

点击火山引擎DataTester官网了解更多

一、初阶

1.AB 实验为了验证一个新策略的效果,准备原策略 A 和新策略 B 两种方案。随后在总体用户中取出一小部分,将这部分用户完全随机地分在两个组中,使两组用户在统计角度无差别。将原策略 A 和新策略 B 分别展示给不同的用户组,一段时间后,结合统计方法分析数据,得到两种策略生效后指标的变化结果,并以此判断新策略 B 是否符合预期。

2.互斥组互斥组,也称互斥层、实验层。“实验层”技术是为了让多个实验能够并行不相互干扰,且都获得足够的流量而研发的流量分层技术。

举个例子,假如我现在有 4 个实验要进行,每一个实验要取用 30%的流量才能够得出可信的实验结果。此时为了同时运行这 4 个实验就需要 4*30%=120%的流量,这意味着 100%的流量不够同时分配给这 4 个实验。

那么此时我们只能选择给实验排序,让几个实验先后完成。但这会造成实验效率低下。实验层技术就可以完美解决这个问题。

我们把总体流量“复制”无数遍,形成无数个流量层,让总体流量可以被无数次复用,从而提高实验效率。各层之间的流量是正交的,你可以简单理解为:在流量层选择正确的前提下,流量经过科学的分配,可以保证各实验的结果不会受到其他层实验的干扰。

3.互斥实验互斥实验:互斥组中的所有实验都不会共享用户,如果一个用户/设备命中了实验 A,就不会命中该互斥组中的其他实验。

举例,你要同时做按钮颜色和按钮形状的实验,就需要将两个实验加入到一个互斥组列表。

4.正交实验互斥组=互斥层=实验层

如何理解流量正交?

举个例子。假设我现在有 2 个实验。实验 A(实验组标记为 A1,对照组标记为 A2)分布于实验层 1,取用该层 100%的流量;实验 B(实验组标记为 B1,对照组标记为 B2)分布于实验层 2,也取用该层 100%的流量。(要注意,实验层 1 和实验层 2 实际上是同一批用户,实验层 2 只是复用了实验层 1 的流量)引用如果把 A1 组的流量分成 2 半,一份放进 B1 组,一份放进 B2 组;再把 A2 组的流量也分成 2 半,一份放进 B1 组,一份放进 B2 组。那么两个实验对于流量的调用就会如下图所示。此时实验 A 和实验 B 之间,就形成了流量“正交”。

流量正交有什么意义呢?

5.实验组实验组和对照组是一组相对的概念,A/B 实验通常是为了验证一个新策略的效果。假设在实验中,所抽取的用户被随机地分配到 A 组和 B 组中,A 组用户在产品中体验到新策略,B 组用户在实验中体验的仍旧是旧策略。在这一实验过程中,A 组便为实验组,B 组则为对照组。

6.参数、参数类型、参数值在开一个实验时,你需要通过一个标识来区分对照组和实验组,我们用参数来解决标识的问题。在 A/B 测试的实验中,每一个对照组和实验组可以有 1 个参数也可以有多个参数,每个参数都会有参数类型(目前支持 String、Number、Boolean),每个参数还会有参数值。

7.指标在开一个实验时,目的是对比对照组和实验组的某个或者某几个指标。

8.流量互联网行业的 A/B 实验中,流量通常用于描述产品所拥有的总体用户数量。

9.流量分配开 A/B 实验时,一般都会小流量测试,当看到某个实验组效果后,再大流量测试,最终再全量上线。

10.过滤条件在实验中增加一些限制条件,规定被实验命中的用户必须符合(或不符合)这些条件,进而达到缩小用户集群、精准找到用户的目的,这种限制条件即“过滤条件”,亦称 filter。

11.白名单用户在实验正式开启之前,通常需要先选择几名用户进入测试阶段,观察实验是否能够正常获取想要收集的数据,或客户端是否有 bug 等。参与这一步的用户被称为“白名单用户”。

12.命中用户经过随机分配后,进入实验组或对照组,参与到实验之中,即称为用户被实验“命中”;反之则为“未命中”。

13.时长即 A/B 实验持续的时间长度,在「A/B 测试」产品中,时长的单位是“天”。

14.SDKSDK 就是 Software Development Kit 的缩写,中文意思就是“软件开发工具包”。辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做“SDK”,我们可以把 SDK 理解成一个小型工具包,来实现指定的功能,帮助我们解决指定的问题,集成「AB 客户端 SDK」的主要作用就是帮助实验者进行分流。

15.WAUWAU(Weekly Active Users),周活跃用户数,最近一周(含当日的 7 天)启动使用产品的用户数,一般按照自然周进行计算。

16.MAUMAU(Monthly Active Users),月活跃用户数,最近一个月(含当日的 30 天)启动使用产品的用户数,一般按照自然月进行计算。

17.方差与标准差方差:方差是数据组中各数据值与中心值间距的平方和的平均值。

方差的计算公式:公式中 M 为数据的平均数,n 为数据的个数,s²为方差。标准差:标准差是方差的平方根,即 s。

二、中阶

1.留存率实验报告中的留存率指的是“按进组时间拆分的留存率”,是根据【用户首次进实验组的时间】作为起始,用户回到 App 作为回访,计算用户 n 日留存。统计方式如下:

举个例子说明:第一天实验组 A 的用户数为:10000,第一天 base_user 为 10000。第二天实验组 A 的用户数为:10400,其中 9200 用户是第一天便已经在 A 中的用户,1200 用户为当天新进组用户;第二天 base_user 为 1200,第一天的次日留存为 9200/10000=92%。第三天实验组 A 的用户数为:10200,其中 8000 用户为第一天便已经在 A 中的用户,1100 用户为第二天进入 A 中的用户,1100 为第三天进入 A 的用户;第三天的 base_user 为 1100, 第一天的 2 日留存为 8000/10000=80%, 第二天的次日留存为 1100/1200=91.67%。然后分别把每个进入实验日期的指标用 base_user 进行加权平均,得到次日留存率、第 2 天留存率等。

当日"已进组用户" 表示当日曝光进组的总用户数,包括之前已进组的老用户和初次到访的"新进组用户"。

3.置信区间置信度区间就是用来对一组实验数据的总体参数进行估计的区间范围。

举个例子,我们现在开了一个实验来优化商品页面的用户购买率,其中采用了新策略 B 的实验组,购买率提升均值为 5%,置信区间为[-3%,13%]。怎么理解此处的置信区间呢?由于在 A/B 实验中我们采取小流量抽样的方式,样本不能完全代表总体,那么实际上策略 B 如果在总体流量中生效,不见得会获得 5%的增长。如果我们设策略 B 在总体流量中推行所导致的真实增长率为μ,那么在这个案例中,μ的真实取值会在[-3%,13%]之间。

值得注意的是,μ并不是 100%概率落在这一区间里,在计算置信区间的过程中,我们会先取一个置信水平,计算这一置信水平下的置信区间是多少,A/B 实验中我们通常计算 95%置信度下的置信区间。回到刚刚的例子,我们就可以得知,μ的真实取值有 95%的可能落在[-3%,13%]之间。

4.多天累计指标“多天累计指标”是所选实验日期范围内,对应指标多天合并的累计值。

举个例子,假如现在我们要看 6 月 1 日号到 6 月 3 日,用户 A、B、C 的用户阅读数这一指标:上表中的数字关系很清晰地展示了多天累计指标与单日指标之间的逻辑(其实就是加一起而已)。

在 A/B 实验中,如果我们所检测的指标支持多天累计指标,那么我们基本上应该以多天累计指标为准,而不要过多关注实验周期内的单日指标。多天累积数据意味着,随着实验的进行,实验的总体样本不断增加,实验的检验灵敏度在不断提高。

5.A/B 实验分流服务开设 A/B 实验,顾名思义,我们至少需要一个 A 组和一个 B 组,那么究竟是什么决定了哪些用户被实验命中,以及哪些用户进入 A 组/B 组呢?就是靠 A/B 实验分流服务。

三、高阶

1.假设检验A/B 实验的核心统计学理论是(双样本)假设检验。假设检验,即首先做出假设,然后运用数据来检验假设是否成立。需要注意的是 ,我们在检验假设时,逻辑上采用了反证法。通过 A/B 实验,我们实际上要验证的是一对相互对立的假设:原假设和备择假设。

利用反证法来检验假设,意味着我们要利用现有的数据,通过一系列方法证明原假设是错误的(伪),并借此证明备择假设是正确的(真)。这一套方法在统计学上被称作原假设显著性检验 null hypothesis significance testing (NHST)。

举个例子:我们要针对某页面的购买按钮做一个实验。我认为:将购买按钮的颜色从蓝色改为红色,可以提高购买率 3%。在这个实验中,我们想通过统计学检验的“原假设”就是“购买按钮改成红色不能提升购买率”;

“备择假设”就是“购买按钮改成红色能够提升购买率”。这是一对互斥的假设。也就是说,实际上我们要证明的就是“改成红色不能提升购买率”是错误的。

2.第一类错误 &显著性水平(α)

在统计学中,我们用显著性水平(α)来描述实验者犯第一类错误的概率。

当某个实验组的指标是显著的,说明这个实验结果大概率是可信的。这个概率是 95%,也就是说,系统有 95%的信心确认这个实验结果是准确的。

3.显著性水平存在的意义是什么?一个按钮从蓝色改成红色,一个窗口从左边移到右边,到底用户体验会变好还是变差呢?我们并不确定,因此我们试图使用 A/B 实验的办法,帮助我们转化这种“不确定”——观察小流量实验中新旧策略的表现,从而确定新旧策略的优劣。

但是,这样就能完全消除不确定性了吗?

答案是不能,因为存在抽样误差。

4.第二类错误( β )&统计功效(statistics power)

在统计学中,统计功效 = 1 - 第二类错误的概率,统计功效在现实中表现为:我的新策略是有效的,我有多大概率在实验中检测出来。

5.统计显著性/置信水平/置信度/置信系数

在实验的过程中,我们所抽取的样本流量实际上与总体流量会存在些许的差异,这些差异就决定了我们通过实验得出的结论或多或少会存在一些“误差”。

举个例子,实验中,我通过改变落地页的颜色让购买率提升了 3%,但是因为样本流量并不能完全代表总体流量,有可能“我改变颜色这一策略其实没用,购买率提升 3%是抽样结果导致的”。

那么发生这种“我的策略其实没用”事件的概率有多大呢?在统计学中,我们会用“显著性水平(α)”来描述发生这一事件的概率是多少。而置信度=1-α。

在「A/B 测试」产品上,根据业界标准,显著性水平α取 0.05。在 A/B 实验中,如果发生“我的策略其实没用”这一事件的概率小于 0.05,我们即称实验结论已经“统计显著/可置信”。这意味着你采取的新策略大概率(A/B 实验中意味着大于 95%)是有效的。相反,如果这一事件的概率大于 0.05,则称实验结论“不显著/不可置信”。

6.中心极限定理显著性水平的理论依据便是中心极限定理。我们可以量化抽样误差的根基在于中心极限定理的存在。什么是中心极限定理?

8.校验灵敏度 MDE

推荐内容