可信实验白皮书系列04:随机轮转实验

本文系《可信实验白皮书》系列的第四篇文章,在上一篇我们将重点介绍随机对照实验相关的一些基础知识,以及提高实验功效的一些常见方法。本篇我们将围绕随机轮转实验展开,内容主要包括抛硬币随机轮转、完全随机轮转、配对随机轮转等几个实验的介绍。

备注:本篇排版为图文混合排版,如果想获得更好的阅读体验,建议访问「美团技术团队」知乎官方账号《可信实验白皮书系列04:随机轮转实验》

时间片轮转实验 (Switchback Experiment)是一种基于时间随机化的实验设计,其核心思想是将实验单元在实验时间段多次进行实验组与对照组模式之间来回切换,通过比较某些指标在多时间段内实验状态与对照状态的表现差异来检测实验效应。其被广泛用于应对AB实验中空间维度溢出效应 (Spillover Effects)[1]干扰和样本量不足的问题。

  • 溢出效应:AB实验的个体干预稳定性假设(SUTVA)假定实验单元的结果不受到其他单元分组的影响,然而实际中由于实验单元的直接关联(社交网络)或者间接关联(共享资源等),使得无法保证实验组与对照组个体之间彼此独立,进而可能导致估计的实验效应存在偏差,影响实验结论的可信度。为解决这一问题,可考虑对同一个城市进行时间片轮转实验,例如在为期14天的实验中,随机分配7天为实验组日期、7天为对照组日期,分别施加实验策略、对照策略,以彻底消除空间溢出效应带来的估计偏差。
  • 样本量不足:当随机对照实验样本量存在不足时,例如,以单元A为实验单位的随机对照实验功效不足,适当的结合时间片轮转,采用实验单元*时间片的分流轮转实验可在相同实验时间内获得更多的样本量,进而提高实验的效率。

由于上述特点,时间片轮转实验在履约场景中被广泛应用,成为验证履约业务策略的重要工具。然而,需要注意的是,轮转实验不适用于用户感知明显的实验策略,因为这可能会严重干扰用户的自然体验。在下面章节中我们将重点介绍抛硬币随机轮转、完全/分层随机轮转以及配对随机轮转实验,更多轮转实验可详见拓展与展望。

4.1 抛硬币随机轮转

4.1.1 方法概述

在普通的随机分组实验中经常会面临样本量不足的问题,这可能导致无法有效检测出目标预期的提升效果。在这种情况下通常可以考虑加入时间片轮转以增加独立的样本量,具体而言,可以采用实验单元*时间片粒度的抛硬币随机轮转实验。在这种设计中,对于每个实验单元i和时间片t,通过独立的伯努利试验随机决定第i个实验单元在第t个时间片分配到实验组还是对照组。对于落在实验组(对照组)的实验单元i * 时间片t施加实验策略(对照策略),最后通过对比实验组和对照组的表现来估计策略的提升效果。抛硬币随机轮转实验设计比较简单,通过加入时间片轮转增加样本量通常能够显著降低方差。但其不太适用于样本量极少的场景(例如1个城市14天实验周期下的全城按天轮转实验),由于在样本量较少时容易出现实验组与对照组样本量差异明显的情况,因此建议在独立的实验个体较多或者时间片较短时的情况下考虑使用这种方法。

4.1.2 分组机制

AOI按天抛硬币轮转实验分组表达式示例
对照组分组表达式:(murmur332(murmur332(aoi_id, 随机种子A)+murmur332(dt, 随机种子B), 随机种子C)%2) in (0)
实验组分组表达式:(murmur332(murmur332(aoi_id, 随机种子A)+murmur332(dt, 随机种子B), 随机种子C)%2) in (1)

4.1.3 评估原理

抛硬币随机轮转实验本质上与普通随机对照实验无差异,因此可直接引用第三章3.1.2普通随机分组的评估方法。类似地,抛硬币随机轮转实验同样可应用CUPED方法降方差,例如AOI*天抛硬币随机轮转实验选择对应AOI实验前对应周几的数据作为协变量,如若是AOI*天*小时抛硬币轮转实验选择对应AOI实验前对应周几对应小时的数据作为协变量,以尽量提高实验前后数据相关性,从而最大限度降低方差。

在使用抛硬币轮转实验时,同样需注意:实验单元与分析单元不一致时,错误的方差计算方式容易低估方差,导致假阳性的问题。例如某实验在分流时,将所有AOI分为两部分,这两部分AOI集合每天随机分到实验组或对照组,这时实验单位是AOI集合*天,而实验者评估时却采用AOI*天粒度的数据计算方差,AOI集合下的AOI分组不独立,若直接套用随机化分组下的方差计算公式可能会导致低估方差,导致假阳性。如下图4-2左图所示,在策略没有效果的情况下,误判策略有效的概率超过25%。正确的计算方法是将实验数据汇到AOI集合*天粒度计算方差,此时如图4-2右图P值近似服从均匀分布,且假阳性的概率控制在5%以内。

4.2 完全随机轮转

4.2.1 方法概述

在全城存在强溢出效应,且小时级时间片轮转存在携带效应的情况下,一种可行的做法是采用城市按天随机轮转实验。例如在具有强LBS[3]业务属性的履约实验场景下,通常会存在溢出效应问题,超过1/3的履约实验场景采用全城按天轮转实验。然而,由于实验周期有限,城市按天轮转实验设计下的样本量(即某个城市的实验天数)通常较少。在这种情况下,若采用抛硬币方式进行轮转分组可能导致实验组和对照组天数不平衡,例如14天的实验可能出现5天实验组和9天对照组的情况。这种不平衡通常不符合业务方对实验状态和对照状态天数相等或相近的预期,某组天数非常少时也很难准确反映策略的效果,并可能损失实验检测功效。因此,在设计全城按天轮转实验时,通常需要特别注意组间天数的平衡,以确保实验结果的可靠性和有效性。

完全随机轮转分组为整城按天轮转实验提供了一种合适的实验设计,并具备科学的因果推断评估理论。其通常可在实验前的实验设计阶段,预先指定或固定实验组和对照组的天数,从而实现实验组和对照组天数相等或接近,甚至按需指定实验状态天数等。例如,在14天的按天轮转实验中,完全随机轮转允许指定恰好分配X天进入实验组,剩下的14-X天进入对照组(例如X=7)。在此基础上,可进一步结合分层技术进行分层完全随机轮转,即先按照某些特征属性划分为多个层/类,再在每层分别采用完全随机轮转。例如为期14天实验中,按照是否周末分层,在10个工作日中随机分配5天作为实验组、5天作为对照组,4个周末日期随机分配2天为实验组、2天为对照组。类似地,对于多个实验城市,可考虑按城市分层,在每个层(即城市)内应用完全随机轮转,以提高实验组和对照组的同质性。

4.2.2 分组机制

例如,如果实验周期内共有4个周末天数,可以确保2天分配到实验组,另外2天分配到对照组,以此控制因周中和周末差异引起的潜在偏差,从而提高实验结果的准确性。在涉及多个城市的按天轮转实验时,建议按城市进行分层,并在每个城市内分别采用完全随机轮转。通过此方案确保每个城市实验组和对照组的同质性,同时可降低因城市之间差异带来的方差,提高检验灵敏度。

4.2.3 评估原理

考虑到完全随机轮转分组通常在样本量较小时应用,在评估时建议采用非参Fisher精确检验计算 <math xmlns="http://www.w3.org/1998/Math/MathML"> p p </math>p值,Neyman方法计算方差/MDE(Fisher无法计算方差等),具体计算逻辑如下表所示:

4.2.4 分层随机轮转

4.3 配对随机轮转

4.3.1 方法概述

为避免溢出效应而采用城市按天完全随机轮转实验时,由于实验组和对照组处于不同天,若天之间存在较大差异时,往往会导致样本数据波动较大,难以检测出策略效果。此时一种可行的做法是采用半城配对随机轮转实验,具体来说,可以事先将整个城市按照地理位置和其它相关特征划分为两个特征足够相似的半城[4],记为(半城A,半城B),然后每天随机选择一个半城进入实验组,另一个半城作为对照组。例如第一天随机分配半城A为实验组,半城B为对照组;第二天再进行类似的随机分配。

在此实验设计下,同一城市中的实验组和对照组每天同时存在,相似的两个半城控制天之间差异对实验组和对照组的影响是相似的,从而有效减少随机误差。加之配套的配对评估理论,配对轮转实验通常可显著提升实验检测灵敏度。然而,由于半城配对轮转在空间上无法完全隔离实验组和对照组,仍可能存在轻微的溢出效应(主要在两个半城交界处)。与全城按天随机轮转相比,半城配对按天随机轮转实际上是通过接受一定的溢出效应偏差来换取更小的随机误差。当随机误差大于溢出效应带来的偏差时,这种实验设计能够提供更精确的结果。

4.3.2 分组机制

配对的设计旨在控制实验组和对照组之间的差异,从而减少混杂变量的影响。配对随机轮转实验在配对随机基础上引入了时间片轮转机制,使得每个个体都有机会进入实验组或对照组,从而进一步控制潜在的混杂变量。对于履约最常用的半城配对随机按天轮转实验,如图4-3所示,其将整个城市基于地理位置和其它相关特征(协变量)划分为两个特征相似的半城,即每天两个半城为一对,每天随机选择一个半城分配到实验组,另一个半城到对照组。

4.3.3 评估原理

配对随机轮转实验和配对随机实验使用相同的评估方法,采用Fisher精确检验计算P值,Neyman方法计算方差,具体计算逻辑如下表:

4.4 拓展与展望

4.4.1 异常场景处理

在按天轮转实验中,若实验期间出现突发性外部干扰,可能导致指标波动剧烈,影响策略效果的检测。针对此类场景,可根据实际需求选择以下处理方式。

方式1:异常值剔除

对于非目标场景或无需关注特定干扰下策略效果的情况,可采用异常值剔除方法。支持自定义业务场景中反映异常状态的指标,通过统计分析识别并剔除异常值。若选择多指标,则对每个指标剔除的天数取并集。具体流程如下:

① 取过去45天[5]的数据来进行正态性检验,并用于估计3-sigma准则中的方差和IQR准则中的分位点,以此为依据进行实验数据的剔除。

② 当数据的正态性较好时,采用常用的3-sigma方法;当数据正态性较差时,通常会出现厚尾情况,这时采用更为激进的IQR方法来进行剔除。

方式2:协方差分析+CRSE

对于需评估特定干扰场景下策略效果的情况,直接剔除数据可能引入偏误,此时可考虑采用协方差分析的方法消除混杂因素对分析指标的影响。协方差分析是用于在检验两组或多组修正均数之间有无差异时,消除混杂因素对于分析指标影响的一种分析方法。例如某实验采用城市按天完全随机轮转设计,因突发性外部干扰导致指标波动较大,这时可以以运单为个体建立回归模型,在模型中加入环境干扰等级作为协变量,以消除混杂因素影响。

由于实验采用全城按天轮转的方式,同一城市同一天的运单可能是相关的,导致模型的误差项之间可能相关,这时使用普通最小二乘法(Ordinary Least Squares,OLS)估计的标准误是有偏的。为了解决这一问题,可以使用CRSE(Cluster Robust Standard Error,聚类调整标准误),放宽独立同分布的假设,允许组内个体存在相关性,不同组之间个体彼此不相关,将分流维度(即城市*天)作为Cluster来评估策略效果。

4.4.2 小时级轮转下的携带效应

需要特别注意的是,尽管时间片粒度越细在实验总时长不变情况下样本量越大,通常可带来实验功效的提升。然而由于时间维度的相依性往往会导致细粒度时间片的轮转实验中存在携带效应,即上一时刻策略会影响下一时刻的表现。例如,在交通信号灯优化实验中,假设某路口每十分钟切换一次绿灯时长策略以优化车辆通行效率。若前一时间片采用缩短绿灯时长的策略(如绿灯30秒),可能导致车辆排队积压;即使下一时间片恢复为原有时长(绿灯60秒),积压的车辆仍需额外时间疏散,此时通行效率指标(如平均等待时长)仍受前一阶段策略的滞后影响。

这种跨时间片的策略干扰会导致因果效应估计偏误,影响实验结论的准确性。这时需要科学的方法消除携带效应的影响。目前对连续型指标的携带效应估计模型已在履约有所应用,但对于履约场景最常见的比率型指标下的携带效应估计还未有落地方案。

经过对学业界理论方案的调研,对于携带效应,通常有以下三种解决思路:① 利用模型估计携带效应并辅助调整消除真实效果偏差;② 利用消除时长(wash-out/burn-in period)去除携带效应的影响;③ 利用时间序列模型进行优化设计。

上述的三种方案均具有一定的局限性,尽管方案①易于操作,但在实际问题中可能存在模型错误等问题,影响评估效果。其次,由于模型中包含携带效应,对于携带效应的估计也会影响处理效应的估计精度。因此方案①并不是一种最为理想的分析方案。相较于方案①,方案②不依赖于模型,因此更加稳健,但需要预估携带效应影响时长以构建合理的分配时长。在分析数据的过程中,方案②还需利用消除时长去除受携带效应影响的部分数据,再对处理效应进行估计,以此实现消除携带效应。然而,目前对于如何预估携带效应时长,以及如何确定消除时长尚无明确的解决方案。

此外,方案②未能将数据的时间序列特征纳入考虑,因此尽管方案②具有一定的优越性,但仍不能保证该方案能较好的降低估计的方差。方案③考虑从数据的时间序列特征出发,将时间序列模型与因果推断问题结合,利用最优实验设计的想法提升处理效应的估计精度和检验功效。目前,该方案仅考虑了ARMA(p,q)模型,因此对于实际问题中可能存在的非平稳过程并不完全适用。因此尽管已线下落地上述部分方法,但如何针对美团的履约问题开发最合理的按小时轮转实验方案还有待进一步的研究。我们已通过校企合作,针对美团的业务场景开展研究,为美团履约平台开发具有优良性质的按小时轮转实验以减小携带效应以及时间混淆效应的影响。

4.4.3 其他轮转实验设计

交替轮转实验是另一类重要的时间片轮转实验设计,其特点是在连续的时间片中交替分配实验组和对照组,例如上一时间片为实验组,下一时间片为对照组,再下一时间片为实验组这种交替改变分组的方式。通常而言这种实验设计往往更符合实际业务诉求,尤其是在每天的各时间片具有明显周期性且各时间片差异显著的场景下。然而,在评估方面(尤其是p值计算)通常需要模型/条件假设,这对评估的科学性具有一些挑战。

例如,业界的一些应用案例,DoorDash在评估广告效果时采用按天的时间片交替轮转实验,通过使用历史数据+Bootstrap抽样来近似构造统计量在原假设下的分布,从而进行t检验,但该方式需要假设历史基线与实验期间保持一致。

国内某互联网公司考虑小时级交替轮转实验,并在评估时引入未考虑携带效应的VCM(Varying Coefficient Model)模型,或者考虑携带效应的VCDP(Varying Coefficient Decision Process)模型,由于理论细节较多,暂不在此做详细介绍,感兴趣的读者可以进一步查阅相关文献。

但需要注意的是,按天交替轮转实验的分组机制是比较偏向于非随机的:一旦确定实验开始的第一天属于实验组或对照组,后续天的分组将相继确认。这时如果实验者采用完全随机轮转实验等方法计算方差,忽略分配机制可能导致方差计算的错误。此外,交替轮转基于某些假设的建模分析,通常需要较大的样本,在按天轮转样本量较少的场景下通常不适用。

解释说明

  • 1\] 溢出效应(Spillover Effects):AB实验中关键的个体干预稳定性假设(SUTVA)假定实验单元的结果不受到其他单元分组的影响,然而实践中由于实验单元间的直接关联(社交网络)或者间接关联(竞争共享资源等),参与AB实验的实验组与对照组之间可能并不独立,我们通常称实验组、对照组间的干扰影响为溢出效应。

  • 3\] LBS:Location-Based Services,基于位置的服务

  • 5\] 45天:45天的考虑在于,历史数据的时间跨度不应取的太长,因为不同季节的异常天气影响可能差别较大,较久前的数据刻画跟当前季节的实际情况有差距;同时天数不应取的太少,否则会导致正态性检验,方差和分位点估计的不准确。

| 本文系美团技术团队出品,著作权归属美团。欢迎出于分享和交流等非商业目的转载或使用本文内容,敬请注明 "内容转载自美团技术团队"。本文未经许可,不得进行商业性转载或者使用。任何商用行为,请发送邮件至 tech@meituan.com 申请授权。

相关推荐
喵手6 分钟前
如何利用Java的Stream API提高代码的简洁度和效率?
java·后端·java ee
掘金码甲哥13 分钟前
全网最全的跨域资源共享CORS方案分析
后端
m0_4805026420 分钟前
Rust 入门 生命周期-next2 (十九)
开发语言·后端·rust
张醒言26 分钟前
Protocol Buffers 中 optional 关键字的发展史
后端·rpc·protobuf
鹿鹿的布丁43 分钟前
通过Lua脚本多个网关循环外呼
后端
墨子白43 分钟前
application.yml 文件必须配置哇
后端
xcya1 小时前
Java ReentrantLock 核心用法
后端
用户466537015051 小时前
如何在 IntelliJ IDEA 中可视化压缩提交到生产分支
后端·github
小楓12011 小时前
MySQL數據庫開發教學(一) 基本架構
数据库·后端·mysql
天天摸鱼的java工程师1 小时前
Java 解析 JSON 文件:八年老开发的实战总结(从业务到代码)
java·后端·面试