流量层,也称互斥组,也称互斥层、实验层。
互斥实验,即处在同一互斥组中的实验。互斥实验之间流量是互斥的,即互斥组中的所有实验都不会共享用户:如果一个用户命中了互斥组中的实验1,就不会命中该互斥组中的其他实验。
基本原则:
互斥组技术是为了让多个实验能够并行不相互干扰,且都获得足够的流量而研发的流量分层技术。互斥组技术可以将总体流量“复制”无数遍,形成无数个互斥组,让总体流量可以被无数次复用,从而提高实验效率。
上文提到,不同互斥组之间的流量是正交的。如何理解流量“正交”?正交有什么用?
举个例子。假设现在有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测试的分流服务通过两次运算「哈希函数」,使得不同互斥组的流量之间呈正交关系。在流量正交的情况下,不同互斥组中的实验,其相互之间的影响被均匀打散,使得实验的指标结果更加值得信赖。
互斥组列表为您展示互斥组的基本情况,如下图:
可操作内容如下:
在互斥组列表页,点击“新建互斥组”,即可弹出互斥组创建页面。如下图:
以编程实验为例,在创建实验的第二步「设置生效策略」,可在实验层选择已经创建的互斥组。如下图:
为实验添加互斥组,基本规则如下:
为实验移除互斥组,基本规则如下:
权限相关:所有互斥组全部为公共互斥组,当前集团当前应用内的任何用户都拥有“新建互斥组、查看互斥组、修改互斥组、下线互斥组”的权限。