发布于 

AB实验进阶

一文带你速通 AB 实验

1. 为什么要做实验

倘若我们拥有创造平行宇宙的神奇能力,那么所有那些 “WHAT IF” 类型的问题,例如“要是 B 站添加了贴片广告,会有多少用户流失?”这样的疑问,都能轻而易举地得到确切答案。在那无数个平行宇宙中,我们可以构建出 B 站添加贴片广告的宇宙场景,直接观察用户流失的具体情况。

但现实却是,我们只能在这唯一的宇宙中生存。面对如此困境,我们只能另辟蹊径,寻求某种方式,来尽可能获取无限接近真实情况的结论。而 AB 实验,正是众多方法里最简单且高效的一种:创建出一个“虚拟的平行宇宙场景”。

2. 什么是实验

AB 实验是一种随机测试,将两个不同的群体通过控制变量法进行假设比较,运用统计学上的假设检定双母体假设检定

广义上来讲,AB 实验是因果推断中的一个方法。我们探究的问题其实是一个“估计目标”,通过 AB 实验分流添加变量处理后的分布情况为“估计量”,根据该分布推断出的结果为“估计值”。估计值与估计目标之间,我们可以根据合理的实验设计,让其无限接近。

从因果推断角度理解,实验干预是一个天然的工具变量(IV,Instrumental Variable)。

概念 例子
估计目标(Estimand) 实际 B 站添加了贴片广告会损失用户
估计量(Estimator) A/B 实验,一半用户可以看到贴片广告后,用户留存的分布情况
估计值(Estimate) 根据 A/B 实验,推断 B 站添加了贴片广告会损失用户
图 1
### 2.1 观测指标

观测指标为实验中我们关注的结果指标,可以是一个也可以是多个,例如上述例子中的“用户使用时长”就是我们关注的核心指标。

2.1.1 指标特性

通常 AB 实验的观测指标,要满足以下几个特性:

  • 敏感性:指标对于我们关注的效应变化是否迅速。
  • 鲁棒性:指标对于我们不想关注的效应变化是否稳定。

最理想的指标,应该反映我们想关注的数据变化(高敏感性),不反映我们不想关注的部分(高鲁棒性)。

例:均值高敏感性低鲁棒性,中位数低敏感性高鲁棒性。

  • 变异性:指标自身变化的程度是否可接受(方差是否过大)。

对于以上三个特性,我们可以通过 A/A 实验或者回顾性历史分析来进行判断。

2.1.2 指标类型

通常指标分为三类:

  • 总量:消耗、曝光量、播放量。
  • 均值:平均使用时长、ARPU。
  • :CTR、CVR、留存率。

对于不同的观测指标,由于其各自的分布不同,实验的假设检验方式是不同的。

例如总量和均值需要用 Z 检验,CTR 这种率值需要用 delta-method 处理,留存率这种去重率值需要用 chi-square 检验。

详细各指标的假设检验方式可见:商业化实验平台显著检验方案_24M9

AB 实验假设检验小工具:AB 实验小工具(显著性计算 + 样本量计算)

2.2 分流单位

为了测试,通过某种方式将流量(Traffic)分为 A/B 两组,称之为分流(Diversion),而分流所使用的单位,则称之为分流单位(Unit of Diversion)。

在广告业务场景下,常用的分流单位包括:流量/用户 ID、广告主 ID、计划 ID。

在选择分流单位时,通常需要考虑以下三点:

  • 一致性:也称为 SUTVA(Stable Unit Treatment Value Assumption)或者稳定单位处理值假设,对于实验群体可感知的实验,需要保证其每次都在同一个组内。
  • 无偏性:也称为条件独立性假设(Conditional Independence Assumption, CIA),根据分流单位分组后两组是同质无偏的,这一假设也可以通过 A/A 实验进行验证。
  • 变异性:分流单位需要和实验单位(指标的分母,也就是多少单位进入了测试)一致,否则计算出的变异性要远远小于实际的变异性,因为我们在计算变异性时,其实在假设数据的分布是独立的。

例如流量实验,但是根据广告主粒度来聚合分析,则变异性会远远小于实际情况。

2.3 实验群体

通常有两种实验形式:

  • 用户间测试(inter-user experiments):用户组 A 和用户组 B 对比。
  • 用户内测试(intra-user experiments):用户组在时间 A 与时间 B 对比。

使用用户内测试需要注意两个问题:

  1. 前后时间周期是否可比。
  2. 是否存在随时间变化的效应,也称为学习效应/知识效应/变化厌恶。如何避免/度量学习效应,可以在后文中看到详细方法。

2.4 实验样本量/周期

实验周期以及样本量基于以下元素决定:

元素 名称 解释 与样本量的关系
一类错误水平 误判 实际没用但是认为有用的概率,通常取 0.05 越小 ➡️ 越多样本
二类错误水平 错杀 实际有用但是认为没用的概率,通常取 0.2 越小 ➡️ 越多样本
MDE Minimum Detectable Effect,最小可检测效应 希望实验能够检测多灵敏的变化,需要根据业务来拍 越小 ➡️ 越多样本
Var Variance,测量指标方差 测量指标的变异性 越大 ➡️ 越多样本

为了保证周期性对于效应的影响,通常实验至少会开一周来避免周中效应/周末效应;对于部分样本量较少/方差较大的场景,无法获得统计上的显著结论,也有 Capping、DID、CUPED 等工具来进行实验数据的后处理。

AB 实验样本量计算小工具:AB 实验小工具(显著性计算 + 样本量计算)

以上就是所有 AB 实验的基础,恭喜你已经全部掌握,可以成为一个 AB 实验方面的专家了! 图 2

3. 双边市场问题

3.1 背景

3.1.1 广告平台:典型的双边市场

互联网场景下,绝大多数的平台都是某种意义下的双边市场。在一个双边市场内,供给方彼此存在竞争,需求方内部存在竞争,同时需求方的变化会引起供给方的变化,影响相互交织,形成复杂的竞争环境。

一般双边市场下的实验设计,可以通过地域随机化、类目随机化或时间随机化的方式,将竞争隔离在地域、类目内部或某段时间内。但是在广告平台中,常规按照地域和时间做实验的方法都不太可行。所以通常只能通过实验设计来厘清相互竞争所带来的效应。

https://doc.weixin.qq.com/flowchart-addon

3.1.2 例子:计划冷启动策略

计划冷启动是媒体的商业化平台常见的调控策略,其手段是对新建计划在一定时间 & 一定转化前,通过排序过程中对其添加一个扶持项,从而在排序中更容易竞胜。主要目的是通过将一部分流量用于新计划的探索,使模型可以更好地预估该计划点击或者转化,从而可以更准确地排序,使得全局流量的变现最大化。

经典的多臂赌博机问题,就是该如何分配资源至“探索”、“收割”两部分。

计划冷启动这一扶持项是否能给大盘带来收益,是一个较为困难的问题,但通过合理的实验方式,我们便可以从某些角度测量出其收益。

我们可以将这个问题简化为以下几点:

项目 内容
实验假设 计划冷启动扶持可以带来大盘消耗增量
实验变量 是否添加计划冷启动这个扶持项
观测指标 消耗

3.2 挤压与外溢效应:双边市场的诅咒

3.2.1 流量实验

  • 实验变量:在实验流量上,所有符合条件的计划添加计划冷启动扶持项。
  • 观测指标:消耗。
  • 估计值:实验流量与对照流量的消耗 diff。

https://doc.weixin.qq.com/flowchart-addon

但是实际上,由于我们只有一个竞价模型,计划在实验流量上因为扶持所带来的展/点/转等特征累积,会间接影响其在对照流量中的竞价,使其高估,从而导致观测出的效应低估(估计值 < 估计目标)。

例子:

如果没有任何策略干预,计划 A 可以在 100% 流量中拿到 200 个曝光。

如果进行了上述的流量实验,计划 A 在 50% 的实验流量中因为扶持,额外拿到了 10 个曝光,共 110 个曝光;在 50% 对照流量中,因为这 10 个曝光给计划带来的特征累积,导致其在对照流量的竞价中额外胜出获得了 1 个曝光,共 101 个曝光。

我们想要的(估计目标):110 - 100 = 10 个曝光,所对应的消耗。

我们得到的(估计值):110 - 101 = 9 个曝光,所对应的消耗。

估计值 < 估计目标。 图 3

3.2.2 计划侧实验

  • 实验变量:在实验计划上,添加计划冷启动扶持项。
  • 观测指标:消耗。
  • 估计值:实验计划与对照计划的消耗 diff。

广告主侧、素材侧等其他供给相关的标的同理。

https://doc.weixin.qq.com/flowchart-addon

但是实际上,由于我们只有一个竞价模型,实验计划会因为扶持所带来的展/点/转等特征累积,间接对对照组计划产生挤压,从而导致观测出的效应高估(估计值 > 估计目标)。

例子:

如果没有任何策略干预,计划 A 和计划 B 都各自可以在 100% 流量中拿到 100 个曝光。

如果进行了上述的计划实验,计划 A 在实验组,因为扶持,额外拿到了 10 个曝光,共 110 个曝光;计划 B 在对照组,因为计划 A 扶持带来的额外竞争力,原本 B 可以竞胜的流量落败,损失了 1 个曝光,最终拿到了 99 个曝光。

我们想要的(估计目标):110 - 100 = 10 个曝光。

我们得到的(估计值):110 - 99 = 11 个曝光。

估计值 > 估计目标。 图 4

3.3 解决方案

3.3.1 双边市场四格表实验

同时在流量与计划两个维度上开展 A/B 实验,使实验策略只在实验计划的实验流量上生效(下图蓝色部分),则挤压效应 = y00 - y01,最终的估计值 = (y11 - y01) - (y00 - y01)。

https://doc.weixin.qq.com/flowchart-addon 图 5 优点:

  1. 可以解决挤压效应。
  2. 解释性强。

缺点:

  1. 小流量特征累积少的低估问题:在 50% 流量上计划的特征累积少于 100% 流量,会影响计划未来的分发,从而产生低估。这点可以前置进行一个预实验来获得参数,再进行调参的双边实验来解决。 图 6 Intuition:先开展一个实验,获得“50% 流量下广告效果因为特征累积会损失多少跑量”的结论,将这个结论拟合为一个参数,放入双边实验中对实验组广告进行扶持,来弥补这部分跑量损失。

  2. 如果存在外溢效应会影响结论,因为 y10 受到的外溢效应会挤压 y00。

https://doc.weixin.qq.com/flowchart-addon

这一点可以结合 3.3.2 或者 3.3.3 来解决。 图 7

3.3.2 预算分桶流量实验

一种纯工程角度的方法:将广告复制为影子计划,共享一个预算,原始广告和复制广告进行流量隔离,分别使用不同的策略,从而解决外溢效应。

https://doc.weixin.qq.com/flowchart-addon 图 8 优点:

  1. 可以解决外溢效应。
  2. 解释性强。

缺点:

  1. 工程难度高:线上模块多,策略和模型比较复杂,较难做到影子计划与原计划表现一致。
  2. 计算成本大:广告数量膨胀,线上检索有压力。
  3. 小流量特征累积少的低估问题。

3.3.3 双边市场列联表联合采样实验

如果对四格表实验进行泛化,同时在流量与计划两个维度上开展多个组,则可以根据每个组作为一个样本构建模型,拟合出“挤压效应”与“外溢效应”的分布情况。

https://doc.weixin.qq.com/flowchart-addon 图 9 假设外溢效应与挤压效应与受到处理的流量占比呈线性关系,令:

  • yij 为第 i 个计划在第 j 份流量上的表现;
  • Wij 代表是否接受处理;
  • Wi· 代表第 i 个广告接受处理的比例;
  • W·j 代表第 j 份流量接受处理的比例。

则可以通过模型拟合出相关参数。

优点:

  1. 可以同时解决溢出效应/挤压效应。
  2. 泛化能力强。

缺点:

  1. 需要的样本量多。
  2. 假设溢出效应/挤压效应与受处理流量占比为线性关系。
  3. 小流量特征累积少的低估问题。

除了可解释性强的双边市场表格实验,为了解决溢出和挤压问题,业界也有一些其他方法,例如 Facebook 的 Counterfactual interleaving 实验

4. 其他效应

4.1 新奇效应/学习效应

新奇效应/学习效应是指,在一个处理上线后,效应的变化会随着时间衰退/增加。例如“如果 B 站 App Logo 变成绿色”,短期因为好奇可能 DAU 会提升很大,长期来看可能是没有提升的。如何衡量这一部分效应有两种方法:长期流量预留实验与 CCD 实验。

4.1.1 长期流量预留实验

一句话 = 小流量长时间的实验。

可以预留一个长期对照组不添加该处理,通过长时间观测来看效应的变化情况,从而判断新奇效应/学习效应的影响。

4.1.2 长期轮转实验(CCD 实验)

CCD(Cookie-Cookie By Day)与上述多表格实验的思想相同,分两个维度多组地进入实验,只不过这里其中一个维度为时间。通过对比不同时间进入组之后实验群体的处理效应,既可以拟合出实验群体的新奇效应/学习效应的分布情况。 https://doc.weixin.qq.com/flowchart-addon

4.2 长期效应

广义上来讲,新奇效应/学习效应是长期效应的一种(前者是短期有效长期无效,后者相反),而长期效应则是内生效应中的一部分。长期效应的衡量也可以使用上述的长期流量预留实验以及 CCD 实验。这些内生效应,在因果推断领域会有一些方法可以更好地解决,例如:

  1. 代理指标 by Google / 代理指数 by LinkedIn:寻找一个代理指标/拟合一个代理指数来替代长期效应指标。
  2. META 分析:根据历史实验来拟合长期效应的分布情况。

5. 总结

上述各种实验方案总结对比如下:

实验方案 目的 优点 缺点
流量侧实验 基础实验 低成本 有溢出效应
计划侧实验 基础实验 低成本 有挤压效应
四格表实验 解决挤压效应 解释性强 1. 有溢出效应
2. 小流量特征累积少的低估问题
预算分桶实验 解决溢出效应 解释性强 1. 有挤压效应
2. 小流量特征累积少的低估问题
3. 工程难度
4. 计算成本
列联表联合采样实验 解决挤压/溢出效应 1. 同时解决两种偏差
2. 泛化能力强
1. 样本量需求
2. 开发/分析成本
3. 小流量特征累积少的低估问题
长期流量预留实验 解决时间相关效应 低成本 长期大盘成本有损
CCD 实验 解决时间相关效应 解释性强 开发成本

由于我们不是全知全能的,我们永远无法掌握绝对意义上的真实全貌,也就是所谓的 “ground truth”。但这并不意味着束手无策,我们可以像盲人摸象一样,通过不断采用更科学的方法,逐步去逼近真实,持续缩小估计值(Estimate)与目标值(Estimand)之间的差距。

但是采用科学方法是以成本为代价的。另一方面,我们也需要关注对实验本身的投入成本与产出效益之间的关系,在成本可行性的约束之下获得最科学的结论。

6. 附录