You need to enable JavaScript to run this app.
导航

流量层/互斥组

最近更新时间2024.01.23 18:59:59

首次发布时间2021.02.23 10:41:56

一. 概述

流量层,也称互斥组,也称互斥层、实验层。
互斥实验,即处在同一互斥组中的实验。互斥实验之间流量是互斥的,即互斥组中的所有实验都不会共享用户:如果一个用户命中了互斥组中的实验1,就不会命中该互斥组中的其他实验。
基本原则:

  1. 内容相同或相关、可能会彼此影响的实验,建议将实验加入到同一个互斥组中。 举例,您要同时做按钮颜色和按钮形状的实验,就需要将两个实验加入到一个互斥组。
  2. 彼此之间不相关的实验,可创建在不同的互斥组中,复用流量。 举例,您要同时进行算法实验和按钮颜色实验,即可将两个实验创建在不同的互斥组中。

二. 为什么需要互斥组?

互斥组技术是为了让多个实验能够并行不相互干扰,且都获得足够的流量而研发的流量分层技术。互斥组技术可以将总体流量“复制”无数遍,形成无数个互斥组,让总体流量可以被无数次复用,从而提高实验效率。
图片

  • 同一互斥组中的实验流量是互斥的,如实验1和实验2。
  • 不同互斥组中的流量是正交的,如实验3和实验4。可以简单理解为:在互斥组选择正确的前提下,流量经过科学的分配,可以保证各实验的结果不会受到其他互斥组中的实验干扰。 如您想了解更多关于“正交”的内容,可阅读下一段落,也可选择性跳过。

(可选读)什么是正交?

上文提到,不同互斥组之间的流量是正交的。如何理解流量“正交”?正交有什么用?
举个例子。假设现在有2个实验。实验A(实验组标记为A1,对照组标记为A2)分布于互斥组1,取用100%的流量;实验B(实验组标记为B1,对照组标记为B2)分布于互斥组2,也取用100%的流量。(要注意,互斥组1和互斥组2实际上是同一批流量,互斥组2复制了互斥组1的流量)
如果不对这两互斥组做处理,让A1组和B1组获得的流量相同,A2组与B2组获得的流量相同(如下图)。这就意味着,一个用户被A1组命中时,同时也会被B1组命中。那么,两个实验的实验策略,均对该用户进行了展示。
经过一段时间的实验,我们发现实验组B1的数据涨了。此时我们需要面临一个问题:B1组的指标涨了,真的是B1的策略生效了吗?有没有可能是受到A1组策略的影响呢?
图片
以目前流量的分配情况来看,我们无法回答这个问题。B1组指标涨了,可能是受A1组影响,也可能不是。那么我们应该怎么分配流量,才能确定B1组指标上涨,跟A1组没关系呢?
答案就是让流量“正交”。
如果把A1组的流量分成2半,一份放进B1组,一份放进B2组;再把A2组的流量也分成2半,一份放进B1组,一份放进B2组。那么两个实验对于流量的调用就会如下图所示。此时实验A和实验B之间,就形成了流量“正交”
图片
可以发现,因为A1组的一半流量在B1中,另一半流量在B2中,因此即使A1的策略会对实验B产生影响,那么这种影响也均匀的分布在了实验B的两个组之中。在这种情况下,如果B1组的指标上涨了,那么就可以排除B1是受A1影响才形成上涨。这就是流量正交存在的意义。
火山引擎A/B测试的分流服务通过两次运算「哈希函数」,使得不同互斥组的流量之间呈正交关系。在流量正交的情况下,不同互斥组中的实验,其相互之间的影响被均匀打散,使得实验的指标结果更加值得信赖。

三. 应用场景
  • 如果实验流量不够用,但又想做多个实验且不想浪费时间,那么可以将互不影响结果的实验添加到不同的互斥组,不同互斥组实验在不同的流量层,流量复用且正交,解决实验流量不够用的问题。
  • 如果同时做2个实验(比如按钮颜色&按钮形状),但实验一起开启会互相影响实验结果,那么需要将这2个实验加入到一个互斥组。

四. 互斥组列表

互斥组列表为您展示互斥组的基本情况,如下图:
图片
可操作内容如下:

  • 过滤:可选择互斥组的状态,如使用中、已下线。
  • 搜索:可输入互斥组ID、名称、描述进行搜索。
  • 新建:点击“新建互斥组”即可新建。
  • 实验数量:可以查看该互斥组被哪些实验使用,以及当前互斥组的流量使用情况。
  • 修改:可修改互斥组名称(同一应用互斥组名唯一)、互斥组描述、实验类型。
  • 下线实验数量为0时,才能下线互斥组。

五. 新建互斥组

在互斥组列表页,点击“新建互斥组”,即可弹出互斥组创建页面。如下图:

  • 填写名称、描述、实验类型,即可创建互斥组。

图片

六. 使用互斥组

以编程实验为例,在创建实验的第二步「设置生效策略」,可在实验层选择已经创建的互斥组。如下图:
图片
为实验添加互斥组,基本规则如下:

  • 客户端实验只可添加客户端互斥组,服务端实验只可添加服务端互斥组。
  • 草稿箱、调试中的实验,支持添加互斥组。运行中的实验,支持添加没有运行中实验的互斥组,但不可以添加已经有运行中实验的互斥组。
  • 如果一个互斥组中已有运行中实验,则其他运行中实验不能再加入该互斥组,但可添加草稿箱及调试中的实验进入该互斥组。

为实验移除互斥组,基本规则如下:

  • 草稿箱、调试中的实验,支持移除互斥组。运行中的实验,不支持移除互斥组。

权限相关:所有互斥组全部为公共互斥组,当前集团当前应用内的任何用户都拥有“新建互斥组、查看互斥组、修改互斥组、下线互斥组”的权限。