掘金 阅读 ( ) • 2024-05-10 12:45

theme: orange

在本系列的第一期文章中,我们介绍了货运双边市场实验设计面临的诸多挑战:货运双边市场因果推断系列(第一期), 主要表现为常规实验方式(如用户id分流、session_id分流)易出现实验组和对照组相互干扰,导致实验结果有偏,或常规实验方式存在用户歧视问题而无法进行。

对此,需要使用时空分流这样更为复杂的实验形式来减轻或消除上述问题。本文着重介绍离线时空分流的原理和使用步骤。

一、背景

1.1 常规实验的局限性

假设我们在高峰期上线AB实验,实验组策略相比对照组更能吸引司机,则常规实验方式如用户id分流实验会存在以下问题:

1. 运力竞争导致实验收益测算有偏(Bias) :由于实验组用户和对照组大体处于同一时空,两者共享(或竞争)同一个相对稀缺的运力池,实验组策略更吸引司机,意味着司机更愿意接实验组的单,相当于实验组把对照组的司机给“吸走”了,提高了实验组被接单的概率,降低了对照组被接单的概率。这违背了“实验对象之间互不干扰”的SUTVA假设(实验组的变好部分建立在对照组变差的基础上),会导致实验结果有偏(有偏的具体含义是,当我们全量上线实验组策略后,真实收益会不及AB实验测算的收益,即AB实验高估了策略的收益)。

2. 某些情形下,若用户感知到端内策略与其他用户不一致,可能引发用户歧视风险。 image.png

1.2 时空分流

1.2.1 基本概念

解决办法是使用“颗粒度更粗”的“空间单元”和“时间单元”的分流形式,其思想是在时间上或空间上隔离实验组和对照组,用于降低实验组与对照组的互相干扰(Bias)避免用户歧视。目前已广泛用于货拉拉动态播单、智能附加费等业务场景。

时空分流将时间和空间切割为数个“时空片” ,并对不同“时空片”施加不同干预,以评估某种策略的效果。举例如下:

时空分流的「空间片粒度」和「时间片粒度」的可选项可参考下表:

image.png

image.png 不同「空间片粒度」和「时间片粒度」可进行排列组合,形成多种“时空片粒度”时空分流的实验方式。

1.2.2 Bias Variance Tradeoff

「空间粒度」和「时间片粒度」的选择,涉及到BiasVariance的权衡。

  • 偏差(Bias): 即实验效果和真实效果的系统性偏差,例如上文提到的运力竞争问题,带来的就是系统性偏差

  • 方差(Variance): 即使都不接受干预,实验组和对照组间存在的差异,也称AA波动。样本量越小,或两组本身越不同质,AA波动越大

我们希望AB实验Bias和Variance都越小越好,这样实验收益的评估会更准确。但对于双边市场,很多时候存在Bias Variance Tradeoff,两者可能无法同时降低:

1.  分流粒度越粗:实验组、对照组间的干扰越小,偏差(Bias)越小;但相应的实验单元(样本量)也越少,导致方差(Variance)越大

2. 分流粒度越细:实验组、对照组间的干扰越大,偏差(Bias)越大;但相应的实验单元(样本量)也越多,导致方差(Variance)越小

3. 两种极端情况:时间片粒度无限大,退化为离线空间分流;空间粒度无限大,退化为时间片轮播

1.3 Variance和Bias的度量

1.3.1 Variance

通过Bootstrap方法使用历史数据测算某种实验方案的Variance:

具体流程如下图所示:

Step1: 根据既定实验方案,将历史时空片划分到对照组或实验组。

Step2: 对实验组和对照组样本进行采样,例如如果预定实验周期是14天,就采样14天数据。

Step3: 计算该采样下,实验组和对照组**「指标差异」。

Step4: 重复步骤2-3多次,即可得到该分流方案下实验组和对照组的AA波动范围,即Variance

注:两个空间簇的每个时间单元的数据一一对应,应理解为配对样本(paired samples),而非独立样本(independent samples)

时空分流的Variance估计会在本系列文章(MDE)中做详细介绍。 image.png

1.3.2 Bias

Bias由实验组和对照组相互干扰导致,一般难以定量衡量,只能通过一些侧面指标进行定性分析,以验证Bias的存在:

使用跨组接单率定性衡量实验组与对照组之间干扰的程度 将H3网格抽象为图的顶点,统计司机接单网格和发货起点网格的连接,记为的权重

下图中:

司机A在对照组网格接实验组订单1,是跨组接单

司机B在实验组网格接实验组订单2,虽然接单位置和发货位置不在同一网格,但两个网格都在实验组,所以不是跨组接单

司机C在实验组网格接对照组订单3,是跨组接单

综上所述,跨组率 = 跨组接单数 / 总接单数 = 2 / 3 = 66.7% image.png

1.4 离线时空分流

时空分流分为离线时空分流实时时空分流,两者的差异见下图:

image.png 1. 离线时空分流指使用历史数据在实验前确定空间单元的分组——粒度可以是H3网格、城市等。由于未来的情况难以预测,暂不对时间片做离线分组;但是,由于货运业务天然存在周期性季节性,为保证实验收敛速度,建议使用固定顺序的时间单元实验

  1. 实时时空分流是指在时间上和空间上都进行随机分组,而不在实验前提前确定分组。

  2. 离线时空分流 vs 实时时空分流

image.png 由于空间、时间单元的分流属于Cluster Randomised Controlled Trial(cRCT),分流的粒度粗,实验单元少,导致方差(Variance)大,采取离线分流的手段,在Bias可控的前提下,可以尽可能降低Variance。这非常类似本系列第七期所介绍的方差缩减技术:货运双边市场因果推断系列(第七期),本质上都是通过控制实验前差异,来降低实验期间的方差。但相应的,其操作也比实时时空分流更复杂。

注:实验期间的数据表现必须与历史数据有相关性,否则离线分流无效,通常来说这个假设是成立的

二、离线时空分流实验设计

2.1 整体流程

STEP 1 业务沟通

  1. 与业务方共同确认需要关注的重要指标及其口径

常见的指标:

Variance:估转率、配对率

Bias:跨(时间)片率、跨组(接单)率

  1. 根据实际业务场景,确定实验中,空间时间单元的颗粒度

此步需要考虑跨片率、跨组率等指标

  1. 如果可行,通过业务经验(季节性、周期性)确定时间片轮播顺序

STEP 2 数据准备

  1. 在历史数据上,汇总各时空片的规模类指标和比值类指标的分子、分母

注1:比值类指标不能预先聚合,需要确定空间分组后,加总规模指标后再做除法(加权平均)

注2:不建议分组时使用uv类指标,因为计算时涉及去重,无法使用加法聚合

  1. 根据时间顺序依次切分训练集、验证集、测试集;由于是时间序列数据,不建议按比例随机切分

STEP 3 离线空间分组

  1. 确定离线空间分流的目标,最小化干预前实验组与对照组的核心指标差异(即Variance)

  2. 根据分流的目标设置目标函数,并编写成代码,用于评估离线空间分组的好坏

例:实验和对照组每天的订单量接近、实验和对照组每周的订单量接近

  1. 使用训练集通过某种手段生成离线空间的分组(蒙特卡洛、运筹优化等)

如果使用遗传算法优化,建议使用numpy编写目标函数,提高执行效率

STEP 4 时间轮播顺序

如果在STEP 1中通过业务经验确定,则跳过此步

  1. 在验证集上枚举多种时间轮播顺序,并使用STEP 3中设置的目标函数评估其的好坏

常见的时间轮播顺序:固定顺序反转、固定顺序不反转、随机

  1. 选择目标函数最好的时间轮播顺序作为实验方案

STEP 5 评估实验设计

1. Variance: 在测试集上,通过Bootstrapping的方式估算核心指标波动的区间

2. Bias: 在测试集上,计算该实验设计的跨组率、跨片率等

2.2 案例

以高峰期策略实验为例,说明实际业务中如何使用离线时空分流。

  1. 与业务方沟通确定实验中空间时间单元的颗粒度确定时间片轮播顺序

image.png

2. 确定最优分组

注意:本案例中的优化目标是最小化Variance

本次AB实验关注I个指标,并从训练日期中找到N个空间单元和T个时间单元;使用遗传算法,将空间单元分到K个流量相等的实验组中,最小化K个组之间的指标差异:

image.png

确定损失函数后,便可使用运筹优化(本案例使用遗传算法)或蒙特卡洛模拟的方式最小化**损失函数L(G) **,即可得到离线分群结果

3. 检查分组同质性

实验组对照组训练日期测试日期指标均非常接近,因此可认为两组同质

左图:八级O X 天轮播;右图:八级O X 三小时轮播&隔天反转

image.png

  1. Variance测算

注:各指标波动范围使用Bootstrapping方法计算

image.png

  1. Bias测算

通过跨组接单率定性衡量

image.png

三、风险

3.1 时间片冲突

a. 离线时空分流可以理解成一种泛化的时间片轮播实验形式

b. 在设计时需考虑与其他同一空间下的时间片实验的嵌套关系

3.2 突发事件

a. 实验过程中,可能发生意料之外的事件(如疫情),导致实验组与对照组的核心指标分化

b. 建议在实验前与业务方沟通清楚,遇到此类事件如何处理,并备好预案

3.3 样本代表性

a. 由离线分流引起——若某个空间单元在历史上没有出现过,则不会被纳入实验评估,会导致AB实验的样本结构与大盘不一致

b. 例子:高峰期策略早期采用离线OD分流,发现实验中长里程单的占比远低于大盘

3.4 Bias难以测算

a. 由于Bias难以度量,上述方法只控制了Variance,仅通过侧面指标验证Bias的存在

b. 后续可考虑使用谱聚类(spectral clustering)算法最小化跨组率,使用causalml包做样本的匹配,实现Bias最小化

四、总结

理想的AB实验应该具有Bias和Variance都较低的特点。

时空分流通过在时空维度隔离实验组和对照组,能有效降低甚至消除因运力竞争产生的Bias,且可避免用户歧视问题,但由此带来了分流颗粒度增大导致Variance增加的问题。通过控制实验前差异的离线时空分流技术,可产生比纯随机的实时时空分流更为同质的实验分组,因此降低了时空分流实验的Variance。

由于兼顾了Bias和Variance,离线时空分流已广泛应用于货拉拉各类型实验中。