You need to enable JavaScript to run this app.
导航
流量层与互斥域
最近更新时间:2024.11.14 18:51:29首次发布时间:2021.02.23 10:41:56

一. 概述

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

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

二. 为什么需要互斥域?

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

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

(可选读)什么是正交?

上文提到,不同互斥域之间的流量是正交的。如何理解流量“正交”?正交有什么用?
举个例子。假设现在有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组策略的影响呢?
Image
以目前流量的分配情况来看,我们无法回答这个问题。B1组指标涨了,可能是受A1组影响,也可能不是。那么我们应该怎么分配流量,才能确定B1组指标上涨,跟A1组没关系呢?
答案就是让流量“正交”。
如果把A1组的流量分成2半,一份放进B1组,一份放进B2组;再把A2组的流量也分成2半,一份放进B1组,一份放进B2组。那么两个实验对于流量的调用就会如下图所示。此时实验A和实验B之间,就形成了流量“正交”
Image
可以发现,因为A1组的一半流量在B1中,另一半流量在B2中,因此即使A1的策略会对实验B产生影响,那么这种影响也均匀的分布在了实验B的两个组之中。在这种情况下,如果B1组的指标上涨了,那么就可以排除B1是受A1影响才形成上涨。这就是流量正交存在的意义。
火山引擎A/B测试的分流服务通过两次运算「哈希函数」,使得不同互斥域的流量之间呈正交关系。在流量正交的情况下,不同互斥域中的实验,其相互之间的影响被均匀打散,使得实验的指标结果更加值得信赖。

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

四. 流量层列表&互斥域列表
  • 流量层列表
    Image
  • 互斥域列表为您展示互斥域的基本情况,如下图:
    Image

可操作内容如下:

  • 搜索:可输入互斥域ID、名称、描述进行搜索。
  • 新建:点击“新建互斥域分组”、“新建流量层”即可新建。
  • 实验数量:可以查看被哪些实验使用,以及当前流量使用情况。
  • 修改:可修改互斥域名称(同一应用互斥域名唯一)、互斥域描述、实验类型。
  • 删除:实验数量为0时,才能删除流量层;互斥域中没有绑定流量层时,才能删除互斥域。

五. 新建流量层、互斥域

新建流量层

在流量层列表页,单击“新建流量层”,在弹出的侧边栏页面中配置流量层参数即可创建流量层。
Image

新建互斥域并绑定流量层

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

  • 填写分组名称、实验类型。
  • 您可以安全打开嵌套子互斥域组的开关,打开后即可为互斥域绑定子互斥域。您可以选择已经创建好的互斥域作为子互斥域,或直接新建一个互斥域作为子互斥域。

    注意

    选择绑定已创建好的互斥域作为子互斥域时,不支持绑定已关联过的互斥域。

  • 为互斥域绑定流量层,您可选择已创建好的流量层,或直接新建流量层。

    注意

    选择绑定已创建好的流量层时,不支持绑定已关联实验的流量层,避免直接影响已有实验。

六. 使用互斥域

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

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

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

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

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