当前在货拉拉进行的诸多AB实验中,存在部分针对细分场景 或是分流粒度较粗 的策略评估,这些实验中实验单元少 ,简单随机分流会导致实验与对照 的实验前偏差 (Pre-Experiment Bias)大。在货拉拉内部,"实验前偏差 "也被称为"同质性"。
实验不同质会导致评估的策略、功能收益与真实收益不一致,会导向错误的决策。因此,货拉拉数据科学团队提出了体系化的解决方案,用于保障实验的同质性,进而提升AB实验结果可靠性,最终助力达成正确的决策。图内展示的是业界实践常用的方法。
本文旨在介绍AB实验的进阶玩法------同质性保障,也会针对实验各生命周期(实验前、实验后)的具体场景,讲述技术细节和实操经验。
一、同质性保障背景
1.1 同质性定义
AB实验中提到的同质性指"实验中,实验组观测指标,如果没有干预,与对照组观测指标的差异程度"(无法观测,因果推断领域称之为"反事实");当差异不显著,则认为实验同质,当差异显著,则认为实验不同质。
1.2 同质性检验方法
针对不同的指标,需要使用不同的显著性判断方法,如下表所示:
指标类型 | 假设检验方法 | 定义 | 举例 |
---|---|---|---|
比率型 | z检验 | <math xmlns="http://www.w3.org/1998/Math/MathML"> Y ‾ = ∑ i Y i N \overline{Y} = \frac{\sum_i Y_i }{N} </math>Y=N∑iYi, <math xmlns="http://www.w3.org/1998/Math/MathML"> Y i Y_i </math>Yi的取值为0或1 | 估价下单转化率、配对率 |
连续型 | t检验 | <math xmlns="http://www.w3.org/1998/Math/MathML"> Y ‾ = ∑ i Y i N \overline{Y} = \frac{\sum_i Y_i }{N} </math>Y=N∑iYi, <math xmlns="http://www.w3.org/1998/Math/MathML"> Y i Y_i </math>Yi的取值范围为 <math xmlns="http://www.w3.org/1998/Math/MathML"> [ 0 , + ∞ [0, +\infty </math>[0,+∞) | 人均配对单量、额外配对单量、额外配对GTV |
比例型 | 卡方检验 | 比率型指标的拓展形式, <math xmlns="http://www.w3.org/1998/Math/MathML"> Y i Y_i </math>Yi有3种或以上离散取值 | 每个小时的执行单量占全天的比例 |
1.3 实际工作流程参考
在实际工作的操作流程中主要分三步:
- 根据实验作用的环节,圈选历史上在平台有过对应行为的实验对象。
- 将圈选出的实验对象分为多组 ,令各组间历史指标差异足够小。
- 根据具体使用的同质性保障技术,以不同方式输出最优分组方案:在线AA测试、离线AA回溯输出最优随机种子 或发现最优分组输出明细实验对象分组名单。
1.4 保障方案概览
- "实验前"指实验开始前,同质性动作作用于模拟流量
- "实验后"指实验开始后,包含实验进行中、实验结束后,同质性检验作用于真实流量
- "侧面指标"指不会被实验策略干预的指标
二、同质性保障方案
2.1 实验前同质性保障
如果能正确地找到与核心指标最相关的指标和回溯周期 ,并保证两组历史指标差异 <math xmlns="http://www.w3.org/1998/Math/MathML"> X T m ‾ − X C m ‾ \overline{X_T^m} - \overline{X_C^m} </math>XTm−XCm足够小,那么AB实验的同质性(即"反事实差异")就足够好。所以在实验开始之前 ,建议采用离线AA回溯 或发现最优分组技术,可以有效降低实验组与对照组实验对象之间的差异,来保障实验期间的同质性。
- 指标选择
常见的指标类型有:比率型、连续型、比例型、中位数类。因此可以选取检验任意指标保证同质性,建议优先核心观测指标, 同时需要注意多重检验问题,检验次数越多,越容易出假阳性。
- 确定回溯周期
确定回溯具体周期的方法:将历史数据切割为两段,第一段历史数据用于寻找最优的回溯周期,长度不固定(其统计周期记为m);第二段历史数据与预估实验周期天数相同(其统计周期记为n)。对于第一段历史数据中圈选到的实验对象,令其过去m天(第一段历史数据周期)的指标与未来n天(第二段历史数据周期)指标的相关性最大。
- 确定步骤
- 确定真实的实验周期天数(即n的值);实验周期通常是确定的,或者有大致的范围,我们可以认为n是固定的,或者很少的几个枚举值。
- 对于可能的实验周期,尝试不同历史回溯周期(即m的值),评估线性模型 <math xmlns="http://www.w3.org/1998/Math/MathML"> Y m = θ X n Y^m = \theta X^n </math>Ym=θXn拟合的好坏。
- 找到一个m,使得 <math xmlns="http://www.w3.org/1998/Math/MathML"> Y m = θ X n Y^m = \theta X^n </math>Ym=θXn拟合的结果最好(评价指标使用R^2),得到与未来n天指标最相关的历史m天指标;m即为最佳回溯周期。
由下文到付担保金实验分析可得:对于小车 估价 环节user_id分流实验,当实验周期为14天时,建议回溯过去35天数据。
2.2 实验后同质性保障
"历史指标差异大"并不代表实验不同质,同质性由历史指标差异大小 和实验前、后指标相关性 共同决定。因此在实验上线之后 ,在面对实验前核心指标不同质的问题时,建议采用CUPED或DID等技术 ,可以定量衡量同质性好坏和校正同质性;在面对实验中侧面指标不同质的问题时,建议采用异常值剔除,可以消除由于异常实验数据而带来的实验波动。
- 指标选择
-
侧面指标同质性
-
判断核心:对不受实验策略影响的侧面指标进行检验,验证组别之间的侧面指标有无显著差异。同时注意本检验针对的是真实实验期间的数据,因此无需历史数据。
-
案例展示:PK实验-供需同质性检验
检验思路:
- 根据每小时的日均执行单量 、单均推送司机数,判断实验组与对照组在供需层面是否同质
- 供需同质性检验的指标属于比例类指标 ,因此使用卡方检验
-
- 确定回溯周期
对于对照组实验对象 ,找到与真实实验N天指标最相关的实验前m天指标, 以此m作为指标回溯的周期。同时注意建议使用线性回归的R^2评价指标之间的相关程度;不同指标的最优回溯周期会不同,需要考虑指标的重要度进行取舍。
- 偏差校正
- 校正效果:
校正后的实验效果
<math xmlns="http://www.w3.org/1998/Math/MathML"> τ = ( Y T n ‾ − Y C n ‾ ) − θ ⋅ ( X T m ‾ − X C m ‾ ) \tau = (\overline{Y_{T}^n} - \overline{Y_C^n}) - \theta \cdot (\overline{X_T^m} - \overline{X_C^m}) </math>τ=(YTn−YCn)−θ⋅(XTm−XCm)
<math xmlns="http://www.w3.org/1998/Math/MathML"> Y T n ‾ − Y C n ‾ \overline{Y_{T}^n} - \overline{Y_C^n} </math>YTn−YCn是真实实验期间,实验组与对照指标的差异
<math xmlns="http://www.w3.org/1998/Math/MathML"> X T m ‾ − X C m ‾ \overline{X_T^m} - \overline{X_C^m} </math>XTm−XCm是历史m天实验组与对照指标的差异
<math xmlns="http://www.w3.org/1998/Math/MathML"> θ \theta </math>θ是实验前、中指标的系数
注1:DID方法就是令这里的 <math xmlns="http://www.w3.org/1998/Math/MathML"> θ = 1 \theta = 1 </math>θ=1
注2:CUPED技术可以使实验结论更显著
-
校正注意点:
- 实验需要附上原始数据结果
- 陈述实验需要校正的原因(如同质性差异大)
- 列明实验偏差校正方法(如CUPED)的假设和风险
-
异常值剔除
-
适用场景:
- 真实实验期间,实验对象不受干预的侧面指标不同质
- 由于不需使用历史数据,因此适用于order_id、user_id、driver_id各种分流形式
-
案例展示:分播单实验-订单金额同质性检验
- 案例背景:
- 订单金额是不受分播单策略影响的指标,因此理论上实验与对照的订单金额分布应该相似
- 1万元以上订单出现概率较低(1 / 20000),但其实验分组对核心指标GTV 配对率造成较大影响
- 实际操作:异常值剔除:实验与对照组分别剔除订单金额 > 1万元的订单
- 案例背景:
-
-
CUPED / DID
-
指标选择
- 建议仅校正"北极星指标"或"核心指标"
- 在货拉拉,最关注的指标就是额外 配对GTV 和额外 配对单量
-
2.3 实验案例
- 到付担保金实验
在用户进入订单确认页时(估价->订单确认页->下单),用户如选择"到付"为付款方式,需要根据订单金额支付一定比例的金额才可以下单。因此将实验设计为:
分流方式 | 实验周期 | 核心指标 | 实验分组 | 实验策略 |
---|---|---|---|---|
user_id分流 | 预计14天 | 额外配对GTV 额外配对单量 | 对照组(34%) | 不收担保金 |
user_id分流 | 预计14天 | 额外配对GTV 额外配对单量 | 实验组1(33%) | 10%担保金 |
user_id分流 | 预计14天 | 额外配对GTV 额外配对单量 | 实验组2(33%) | 25%担保金 |
实验后离线分流检验同质性
人均配对单量 = 配对单量 / 估价用户数,等价于额外配对单量
人均配对GTV = 配对GTV / 估价用户数,等价于额外配对GTV
实验分组两两间的相对差异绝对值均 < 0.75%,均不显著,因此实验前同质性保障有效。
| 实验分组 | 核心指标相对差异 ||||||||
实验分组 | 估价用户数(进组流量) | 人均 配对单量 | 人均 配对GTV | 人均 执行单量 | 估转率 | 配对率 | 到付配对率 | 到付单占比 |
---|---|---|---|---|---|---|---|---|
实验组1 vs 对照组 | - | 0.68% | -0.39% | 0.55% | 0.12% | 0.13% | 0.13% | 0.69% |
实验组2 vs 对照组 | - | 0.48% | -0.69% | 0.55% | 0.06% | -0.07% | -0.41% | -0.04% |
实验组2 vs 实验组1 | - | -0.20% | -0.29% | 0.00% | -0.06% | -0.20% | -0.54% | -0.72% |
四、结语
目前的AB实验中对于同质性保障的处理主要选择在实验前和实验上线后。因此在实验前建议采用离线AA回溯 或发现最优分组技术,降低实验组和对照组实验对象之间的差异,保障实验期间的同质性;在实验开始后根据指标的性质不同,选择不同的解决方案:
- 实验后核心指标不同质时,建议采用CUPED或DID等技术,定量衡量同质性好坏和校正同质性
- 实验后侧面指标不同质时,建议采用异常值剔除,消除异常值给实验数据带来的波动