货拉拉技术

货运双边市场因果推断系列(第十三期)

第十三期

AB实验分流方式:

发现最优分组概述

Image

2024.01

前言 INTRODUCTION

当前在货拉拉进行的诸多AB实验中,存在部分针对细分场景或是分流粒度较粗的策略评估,这些实验中实验单元少,简单随机分流会导致实验与对照的实验前偏差(Pre-Experiment Bias)大。

本文档调研了业界先进的实验前偏差应对技术(AA回溯、最优随机种子和方差缩减)后,在最优随机分组的基础上,进一步提出了离线分流——用户或司机在实验中的行为与实验前有相关性,可以利用历史数据,将实验对象分为差异很小的两组或多组,以提升AB实验的可靠性和干预效应评估的准确性。

目录 CATALOGUE

01

PART ONE

实验前偏差

02

PART TWO

发现最优分组

03

PART THREE

案例说明

01

PART ONE

实验前偏差

微软在Edge浏览器的一个AB实验中,改变了一些数据的存储格式,预计不会对用户产生影响。但实验数据显示关键用户参与度指标下降,p 值为0.01,且没有其他侧面指标可以解释这种指标变动。

这类问题通常会被解释为“数据波动”,认为这个显著的实验结果是假阳性(False Positive)。常见的解决方案是重开一次实验,但在实践中,未必有机会重开实验,即使可以重开也会花费额外时间,拖慢策略或产品功能的上线进度。

微软发现历史数据可以有效地发现和应对实验前差异(Pre-Experiment Bias),提升AB实验的可信度。下文会简单介绍微软在其实验平台落地的三种技术:AA回溯、最优随机分组和方差缩减。

Image

1. AA回溯

Retrospective-AA Analysis

在实验进行或结束后,计算和检查在实验前某段时间内实验组和对照组的指标差异,如果确实在AA回溯中观察到两个组之间的指标存在较大差异,则实验期间指标的差异更有可能是随机化引入的偏差。

Image

2. 最优随机分组

SeedFinder

虽然实验后AA回溯可以识别实验结果的假阳性,但它有滞后性,在实验开始后才能知道是否存在实验前偏差。使用SeedFinder可以在实验前判断出实验和对照组是否存在差异。

在AB实验中,通常使用哈希函数和随机种子将用户随机分配到实验组和对照组。在实验开始前,使用大量不同的随机种子,生成大量实验对象分组方案,并计算其中各组的核心指标的差异,然后选择一个最佳(差异最小)的种子用于AB实验。

微软建议生成数百个种子,但最合适的数量会因选择的产品和指标而异。多次随机减少了与策略无关的噪声,并提高了实验效果测算的精度。

微软建议结合使用所有三种技术来提高实验结果的可信度。使用SeedFinder找到使实验前核心指标差异最小的随机分组,方差缩减可以提高指标的敏感性(更容易显著)并减少实验前差异,而AA回溯可以检查未经SeedFinder优化过的次要指标的实验前差异。

本文在SeedFinder的基础上,结合货拉拉AB实验的实际应用场景(如定价、营销),提出了更通用的离线分流的概念。

02

PART TWO

发现最优分组

1. 思路

目标:找到两组或多组同质的分群支持AB实验

解法:实验期间的用户/司机行为和其历史行为有相关性,在此基础上通过随机搜索或运筹优化的方式找到历史上差异最小的两组或多组

2. 流程图——以用户分流为例

以user_id分流和随机搜索为例,同样也可以拓展到司机、空间分流

Image

3. 操作流程

STEP 1 确定实验对象名单

根据实际业务场景,思考实验对象是否满足SUTVA假设(个体处理稳定性假设),例如实验对象是否存在Network Effect / Spillover Effect等,然后选择合适的实验分流单元(支持用户、司机、空间)。

根据AB实验需要评估的效应,按照与业务方达成一致的实验单元圈选逻辑,确定待分组实验单元名单。

  STEP 2 确定分流相关参数

分组数量:将待分组实验对象名单分为几组

流量比例:子分组实验单元数量占总体实验单元数量的比例;如“对照(40%)、实验组A(30%)、实验组B(30%)”

核心指标:实验设计中关注的核心指标名称;如每个用户过去7天的完单量、完单流水等

历史数据切割:圈选训练日期、测试日期(可选,默认与训练日期一致)

同质性判断标准:如何判断随机出的分组在核心指标上有无差异;如近7天实验组和对照组的人均完单GTV无显著差异(阈值取0.05)或相对差异<1%

随机种子范围:确定需要尝试的随机种子的个数和范围

时空片轮播顺序(仅适用于时空分流):交替轮播(每天时间片数量为奇数)或交替轮播+隔天反转(每天时间片数量为偶数)

  STEP 3 生成实验对象分流方案

随机搜索(Random Search)

使用不同的随机种子,利用与AB平台完全相同的哈希算法,根据STEP 2中输入的分流参数,生成多个实验对象分流方案

根据同质性判断标准,使用训练日期数据,计算每个实验对象分流方案中两个或多个组之间核心指标的差异和显著性水平,并判断是否同质

如果满足同质性标准,则保留该实验对象分流方案及同质性评估结果,供后续环节使用

运筹优化

相较于随机搜索,运筹优化可以找到最优解,或者在相同的时间内找到更优解。

输入离线分组对应的参数:

1. 同质性要求:如最小化实验和对照组某段周期(或每周、每天)的各个指标汇总差异

2. 指标数量I:如I=2代表2个指标

3. 时间片粒度和数量T:如时间片粒度为天,T=7,代表实验和对照组一周内每天的指标相似

4. 分组数量K:如K=2,将待分组实验对象名单分为均等的2组

Image

使用遗传算法

Image

运筹优化执行举例:

Image

保存该最优实验对象分流方案及同质性评估结果,供后续环节使用

  STEP 4 实验设计评估

在测试日期上,输出满足同质性标准的实验对象分流方案中,两两分组之间的核心指标相对差异,并判断差异是否显著(输出p值)

展示多个实验对象分流方案,供用户选择

03

PART THREE

案例说明

Image

1. 实验前差异有延续性

可以检验实验前差异和实验中差异存在相关性,若相关则说明实验前的差异可能延续到实验中

问题:将实验前的差异控制在0附近,是否能将实验中的差异更好地控制在0附近?

Image

2. 发现最优分组增强实验可靠性

简单随机分流:user_id随机分流

控制实验前差异:在user_id随机分流的基础上,只选择两组人均单量的相对差异在±0.25%以内的分流(这部分分流占总体分流大约16%)

两种抽样方式通过随机模拟各得到1000种分流,分别统计两种分流方式实验中a、b两组人均单量的相对差异

相对差异 = 实验组指标/对照组指标 - 1

由于两组受到的干预相同(AA实验),故希望差异在0附近越集中越好;越集中,说明两组越同质,分流同质性越好

控制实验前差异可以使得AA差异在0附近的集中度更高,从而提高分流的同质性

Image
Image

左图:横轴表示实验前人均单量差异,纵轴表示实验中人均单量差异

右图:横轴表示实验中两组相对差异;纵轴表示相对差异出现的频次(大部分差异在0附近);蓝:简单随机抽样,黄:控制实验前差异

总结 SUMMARY

实验前偏差会造成实验组和对照组之间存在差异,影响AB实验的实际效果。

本文在微软提出的SeedFinder基础上,结合运筹优化技术,提出了一种离线分流算法,在货拉拉的实际业务中取得了较好的实验效果。

本文来自数据科学团队- 李林光分享

(●'◡'●)

李林光,来自货拉拉数据科学团队,主要负责智能分析评测、增长生态和舆情分析等工作