开展实验前,您需要先根据实验类型和业务实际情况,规划设计好实验流量的分配方案,本文结合DataTester为您提供的流量层和互斥域功能,为您介绍在DataTester上开实验前规划实验流量分配的思路和注意事项。
当您在规划集团的各个部门和业务线对某个指标贡献度时,需要用到很多推测和分析。互斥域直接为不同的部门和业务线规划流量区,能让您更好的度量全公司的各个部门和业务线对一个指标的贡献度。更多关于互斥域的介绍可参见流量互斥域介绍。
术语 | 概念说明 | 规划思路 |
|---|---|---|
流量、流量分配 |
|
|
术语 | 概念说明 | 规划思路 |
|---|---|---|
互斥域、互斥实验 |
|
|
DataTester为您提供流量层和互斥域功能,您可以在实验前根据规划创建好流量层和互斥域,便于在后续创建实验时直接选用对应流量。
当前使用互斥域功能时:
可操作内容如下:
在流量层列表页,单击“新建流量层”,在弹出的侧边栏页面中配置流量层参数即可创建流量层。
在互斥域列表页,点击“新建互斥域”,即可弹出互斥域创建页面。如下图:
注意
选择绑定已创建好的互斥域作为子互斥域时,不支持绑定已关联过的互斥域。
注意
选择绑定已创建好的流量层时,不支持绑定已关联实验的流量层,避免直接影响已有实验。
以编程实验为例,在创建实验的第二步「设置生效策略」,可在实验层选择已经创建的流量层,如果设施流量互斥,则可选择已创建好的互斥域。如下图:
为实验添加互斥域,基本规则如下:
为实验移除互斥域,基本规则如下:
权限相关:所有互斥域全部为公共互斥域,当前集团当前应用内的任何用户都拥有“新建互斥域、查看互斥域、修改互斥域、下线互斥域”的权限。
假设整体业务不算特别复杂,所有用户流量规划在同一个流量层中,这单一流量层内是100%的用户流量,创建实验时,可根据实验所需流量,将这单层100%的流量按照自定义比例分配给多个实验,在创建试验时,可进一步设置多个试验组,并规定各试验组可获得的流量比例。
假设,企业有3个部门做的A/B实验需要分别评估,如果引入互斥域组,每个部门都可以通过自己互斥域组的保留对照组来评估自己部门的多个实验累计提升效果。同时,可以通过全局保留对照组评估3个部门累加的提升效果,例如评估APP的用户生命周期、停留时长、总人均GMV这类大盘级业务指标。互斥域组能帮助企业更好评估APP的累计总增长,并且评估各个团队的实际绩效。如下图:
上文提到,不同互斥域组或同一互斥域内的流量是正交的。如何理解流量“正交”?正交有什么用?
举个例子。假设现在有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测试的分流服务通过两次运算「哈希函数」,使得不同互斥域的流量之间呈正交关系。在流量正交的情况下,不同互斥域中的实验,其相互之间的影响被均匀打散,使得实验的指标结果更加值得信赖。
不同实验层之间的流量是正交的,即不同层上的实验不会相互影响。但是有种特殊情况:父子实验(dependent experiment)——流量继承。
实验层的正交性保证不同层上的实验不会相互干扰。
父子实验打破正交,选择某个正在运行的实验作为“父实验”,从中选择某一组,并将新的实验(子实验)开设在这组流量之下。