随着货拉拉实验复杂度不断提升,当前交易策略下存在多个时间片实验,各时间片实验之间相互干扰,导致实验流量不同质。为防止这类问题产生,同时最大化利用流量,货拉拉数据科学团队提出了体系化的多层实验解决方案。
一、时间片实验与运力竞争:货运场景视角
1. 运力竞争
AB实验的基本假设之一是实验组和对照组之间不会存在互相干扰(SUTVA假设),即个体的潜在结果,是不会随其他个体是否接受处理而改变的。
社交 AB实验 中因个体之间存在交互,因此简单通过用户ID分流观测实验, 往往会违背上述假设。举例:
-
假设优化希望通过优化聊天界面,进而刺激用户多发信息;
-
如果实验组的用户A与对照组中的用户B彼此交互,那么用户A的行为变化可能会影响用户B的行为;
-
这可能也会对用户B产生影响,使他产生相同的行为变化,即使用户B并没有接受实验组的处理;
在使用订单id 随机分流时,实验组和对照组策略会在同一时间点共存,此时如果实验组策略更加强势,就会优先抢占更优质的运力,因该时空下运力有限, 此时对照组订单只能匹配到弱势运力,进而导致实验组效果更强、对照组效果更弱,用对照组的指标变差换取了实验组的指标变好,夸大了实验效果;
如果使用的时间片较短,也会有上述问题,即前置时间片匹配了更优质的运力, 在后置时间片时,优势运力并未被释放,导致后置组因该时空下运力有限, 只能匹配弱势运力。 进而导致强者更强,夸大实验组的策略效果;
但如果时间片 长度设置的过长 ,时间片与时间片之间的同质性就会变差,此时很难保证分流的同质性,只能将观测周期拉长。
2. Variance vs Bias
在考虑时间片长度时,需要同时考虑运力竞争问题 和分流的同质性问题:
bias:来自于因共享运力池/需求池,实验组个体会对对照组个体产生间接影响而带来的干扰;
variance:来自于更粗颗粒度的分流单元,和由此带来的不均匀性。
因此,在时间片轮播下
-
时间片长度越小,相同时间内的分流单元数越多,集合间的同质性越好,variance 越小,但运力竞争影响越明显,bias 越大 ;
-
时间片长度越大, 相同时间内的分流单元数越少, 集合之间的同质性越好, variance越大; 但相应的随着时间片长度的增大, 运力竞争的影响越小,甚至没有, bias越小。
二、时间片实验规划概览
当前交易策略下存在多个时间片实验,各时间片实验之间相互干扰,导致实验流量不同质;为防止这类问题产生,同时最大化利用流量,将实验城市物理隔离 ,其中部分城市做单个实验,部分城市做嵌套实验。
三、时间片实验管理规范细则
1. 名词解释
1.1 实验城市物理隔离
将城市分成同质的若干类:根据订单量级和配对率分层抽样,检验分成的若干类城市的订单数/响应/配对/取消的方差齐性和期望的一致性
对于不能在同一批城市上进行的实验,将在上述各类城市上分别进行实验;
案例:大车隔离实验
为避免大车抢单大厅实验和播单实验同时进行带来的互相干扰问题,将大车城市分为同质的两类,检验得到两类城市在订单量级 和配对效率的指标上无显著差异。
其中第一类城市用于做抢单大厅相关实验,第二类城市用于做播单相关实验。
1.2 嵌套实验
为了最大化利用流量,有时需要在同一批城市上做多个实验;为了能在回收时将各层之间的相互干扰量化出来,需要对不同层实验的时间片重合方式进行如下限制:
在同一批城市同时做若干层的实验,上一层的时间片覆盖下一层的全部时间片:
上一层时间片和下一层时间片首尾对齐;
如此一来,可以平衡 和抵消掉层与层之间的干扰,此外还可以方便以下实验回收的动作:
方便打包回收多个实验叠加的效果;
方便评估上一层实验是否会对下一层产生影响,同时量化该影响;
案例:评估方式举例
如果需要评估播单策略和PK策略的组合效果,对于下图所示的嵌套实验,比较流量1(播单实验组2 + pk实验组1)vs 流量2(播单对照组 + pk实验组1)可以得到播单实验组2对于pk实验组1指标的影响。
2.总体实验规范
-
前端 界面类的实验尽量用id类分流,如果要用时间片,需对实验城市进行隔离;
-
新进入嵌套实验的实验,需要配合嵌套实验中的其他实验调整新实验的时间片长度和分组数量,且新实验的上线时间需要考虑到嵌套中已有实验的周期情况。嵌套实验必须遵守以下规则:
a. 最多只能3~4层,不能随意新增分层;
b. 每层时间片长度确定后,不能随意新增分组;
-
需要做实验城市隔离的场景:
a. 嵌套实验已有层数过多;
b. 单个实验的时间片长度无法配合上述嵌套实验;
c. 分流时间不一致,比如:
- 播单、pk类实验的分流,均为按照订单创建时间分流;
- 抢单大厅实验的分流时间为司机请求抢单大厅服务的时间;
-
为方便数据回收,新实验的时间片轮播周期起点必须为0点;
-
如要上下线当前实验,或更改当前实验配置,只允许在当前层的当前翻转周期结束当天的零点操作;
-
扩量规范:
a. 短期收益明确且逻辑清晰的实验,可在其他城市群上直接100%扩量,扩量的时间节点也尽量在0点;
b. 对于有收益 同时收益尚小 、但需要在另一批城市上继续观察 的实验,需要跟其他已有实验的城市群进行互换 ;互换的时间节点为:需要等到两方(或者至少对方实验)达到短期回收周期后、已有一定成熟结论后,下一个周期开始的时间节点再进行互换;
直接扩量
案例:pk和播单解耦实验(图示如下)
实验城市群互换扩量
案例:小车pk和抢单大厅
3. 嵌套实验的回收周期
短期回收周期 只考虑在该观察周期下,当前层的实验流量是否同质,不考虑嵌套实验中其他层实验的干扰;而长期回收周期考虑到其他层实验的干扰,是各种意义上更加严格、更加同质的回收周期;
3.1 短期回收周期
当实验进行到第t天的时候,当前实验组和对照组之间的流量在这以后都能达到同质,就认为第t天是该实验的短期回收周期下限。如果需要在实验之前决策,可以使用实验城市做一个模拟。
考察同质性的维度 包括但不限于以下几个方面:
- AA实验(浪费流量,一般不采用)
- 订单维度分布:订单在小时、里程、车型、城市等级、大区上的分布等;
- 司机维度分布:每小时可用司机数、单均一公里内司机密度等;
在上述维度中,小时的粒度最细,因此这里以小时维度的同质性为例。下图中,左图的每小时订单数分布同质性较好,右图较差。
针对上述分布曲线做拟合优度检验(卡方检验)
示例:X分钟时间片
以下左图为不同观察天数下,一日各小时订单数分布 的同质性检验结果,右图为一日各小时参与pk的司机数分布的同质性检验结果;
X分钟时间片下,订单和司机都需要五天才能达到同质;
检验结果解释
- 下方横轴为观察天数,纵轴为以c组为期望分布时,a、b两个组日均订单数分布的卡方值;
- 卡方值越高,表示两组样本的分布差异越大,反之则越小;
- 在显著性水平=0.05时,这一检验的卡方值需要小于35才能认为二者分布没有明显差异;
3.2 长期(科学)回收周期
- 假设pk层有两个组a、b,播单层有两个组x、y,上下听实验有2个组m、n,重推实验有2个组p、q;
- pk层隔天按照ab、ba进行翻转,播单层按照xy、yx进行翻转,上下听按照mn、nm进行翻转,重推按照pq、qp进行翻转;
- 那么在嵌套实验下,四层实验一共222*2 = 16种组合方式,即需要经过16天才能遍历全部的组合;
- 因此按照这样的分组,最科学 的回收周期天数为16的倍数。
- 实际应用中可能不会完全按照这样完全科学的回收周期进行回收。因此需要在回收的时候针对单个实验评估同质性,如果实验流量同质,那么数据回收的结果就是有意义的。
四、总结
对于货拉拉实验平台的流量,本方案采用的多时间片实验方式能够增加实验组别之间的同质性,保证各组流量与预期一致,相比于一般的时间片实验,可以缩短实验观察周期。多时间片嵌套实验的引入,最大化利用了流量,可以平衡和抵消掉不同实验层间的干扰,此外还可以方便打包回收多个实验叠加的效果,以及评估上一层实验是否会对下一层产生影响,同时量化该影响。