一文搞懂 AB Testing 的分层分流

news2024/11/23 1:01:55

一、定义

在网络分析中,A / B测试(桶测试或分流测试)是一个随机实验,通常有两个辩题,A和B。利用控制变量法保持有单一变量的前提下,将A、B数据进行对比,得出实验结论。

二、简述

通常网站会利用分层和分流的机制保证本站的流量高可用,原因有以下几点:

(1)网站的流量是有限的

(2)实验的对象是多层的或同一层内互不干扰的

多层:例如网站不仅仅有UI层(界面),通常还有算法层等。
同一层内互不干扰:

(3)AB tests的需求是大量的

AB 是一种科学的利用数据证明方案可行性的手段,一般在网站中广泛使用。如果流量不进行分层、分流可能会导致流量饥饿,即实验一在进行中占用了全站的80%的流量,实验二就只能使用20%的流量。

因此良好的分层、分流规则可以充分使用网站的流量。

三、分层规则1. 正交、互斥

在介绍分层规则之前,先介绍一下正交和互斥的概念。

(1)正交
在这里插入图片描述
如何理解正交?

例如:我们有100个兵乓球,随机拿出来50个染成蓝色,50个染成白色,则我们有蓝色、白色兵乓球各50个,现在我们把这100个兵乓球重新放在袋子中摇匀,随机拿出50个兵乓球,那么这50个兵乓球颜色蓝色和白色各25。

当然举这个例子并不是非常的恰当,因为样本太少了,此处举例只为说明正交的意义。

正交实验:每个独立实验为一层,层与层之间流量是正交的,一份流量穿越每层实验时,都会再次随机打散,且随机效果离散。

(2)互斥
在这里插入图片描述
如何理解互斥?

例如:我们有100个兵乓球,每25个为一组,分别染成蓝、白、橘、绿。若X实验拿的是蓝色、白色则Y实验只能拿橘色和绿色,我们说X实验的和Y实验是互斥的。

互斥实验:实验在同一层拆分流量,且不论如何拆分,不同组的流量是不重叠的。

2. 分层、分流规则

基于Goolge论文:《Overlapping Experiment Infrastructure:More, Better, Faster Experimentation》

流量从上往下流过分流模型:
在这里插入图片描述

(1)规则详述:

域1和域2拆分流量,此时域1和域2是互斥的。
流量流过域2中的B1层、B2层、B3层时,B1层、B2层、B3层的流量都是与域2的流量相等。此时B1层、B2层、B3层的流量是正交的。
扩展:流量流过域2中的B1层时,又把B1层分为了B1-1,B1-2,B1-3,此时B1-1,B1-2,B1-3之间又是互斥的。
根据以上规则我们可以不断的在此模型中增加域、层,并且可以互相嵌套。这要与实际的业务相匹配,拆分过多的结构可能会把简单的业务复杂化,拆分过少的结构又可能不满足实际业务。

(2)使用场景

例1:B1层、B2层、B3层可能分别为:UI层、搜索结果层、广告结果层,这几层基本上是没有任何的业务关联度的,即使共用相同的流量(流量正交)也不会对实际的业务造成结果。

但是如果不同层之间所进行的试验互相关联,如B1层是修改的一个页面的按钮文字颜色,B2层是修改的按钮的颜色,当按钮文字颜色和按钮颜色一样时,该按钮已经是不可用的了。因此建议同一类型的实验在同一层内进行,并且需要考虑到不同实验互相的依赖。

例2:域1的此种分流的意义在于,当我们做一个实验,并且希望其他任何实验都不能对我实验进行干扰,保证最后实验的可信度。

有兴趣的朋友可以去看一下Goolge的原文。

常见的分层策略

自上而依次是:

  • 召回层
  • 精排层
  • 重排层

  [1].一文搞懂AB Testing的分层分流 :Softmax With Temperature

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/645017.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CentOS7配置教程(十三)安装Python3

由于 yum install python3 默认安装的 Python 版本较低,(也可能自带了python3的版本过低)现如今有更高版本的 Python 需求,就想用编译安装的方法安装一个较高版本的 Python,顺道记录一下安装过程。 注意:不…

通过ETLCloud自动化数据处理:用友U8数据一键同步

用友U8 用友U8是一款成熟的企业管理软件,是一套适用于企业全面管理的ERP(Enterprise Resource Planning)软件。主要用于管理企业的财务、人力资源、供应链、生产制造等业务。它具有模块化设计和高度可定制化的特点,可以根据企业的…

X Toolkit影像工具

最近发现一款3d影像工具,在网页版的表现很流畅,没有使用独显的情况下也非常的流畅。 X Toolkit 是一个开源工具包和框架,用于构建在浏览器中运行的医学和科学 3D 可视化,它使用 WebGL 的强大功能,只需几行代码即可提供…

探讨开源法律共识|2023开放原子全球开源峰会开源法律与合规分论坛成功举办

6 月 11 日,以“开源知识产权的深度现实与广阔未来”为主题的 2023 开放原子全球开源峰会“开源法律与合规分论坛”在北京经济开发区国家信创园顺利召开。全球开源领域法律与合规专家共同从理论和实践维度,就开放创新模式下知识产权纠纷的最新案例、开源…

ZooKeeper【客户端的API操作、写数据流程】

前置工作 创建Maven工程 导入依赖 <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version></dependency><dependency><groupId>org.apache.loggi…

Flink TableAPI Aggregation And DataType

序言 这里整理下聚合的优化选项 以及 数据类型 Stream Aggregation SQL 是数据分析中使用最广泛的语言。Flink Table API 和 SQL 使用户能够以更少的时间和精力定义高效的流分析应用程序。此外&#xff0c;Flink Table API 和 SQL 是高效优化过的&#xff0c;它集成了许多查询…

springcloud-Nacos-注册表结构

// Map(nameSpace:: Group,Service) Map<String,Map<String,Service>> service new ConcurrentHashMap<>(); //Service 中有个属性 clusterMap // Map(服务名称,集群) Map<groupNameserviceName,Cluster> clusterMap new HashMap<>(); //而Clus…

局部聚集系数

最近在打一个图数据库算法的比赛&#xff0c;分到了计算局部聚集系数这道题&#xff0c;要求速度快&#xff0c;空间复杂度可以不首要考虑。这对我是一个全新的知识&#xff0c;用此博客记录我的学习历程。 搜了一圈视频教程&#xff0c;b站没有这块的知识&#xff0c;只有yout…

系统码的编译码与汉明码

本专栏包含信息论与编码的核心知识&#xff0c;按知识点组织&#xff0c;可作为教学或学习的参考。markdown版本已归档至【Github仓库&#xff1a;https://github.com/timerring/information-theory 】或者公众号【AIShareLab】回复 信息论 获取。 文章目录 系统码的编译码线性…

Android使用WebView与Native交互的三种方式 ( 附源码 )

先附上assets目录中html的源代码文件内容&#xff0c;下面的demo都是使用这几个文件&#xff1a; javascript.html: <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>Carson</title><script>function callAn…

深入理解多层感知机(MLP):原理与代码解析

文章目录 1. MLP的原理1.1 结构1.2 激活函数1.3 前向传播1.4 反向传播算法 2.MLP分类任务应用3.参考文献&#xff1a; 多层感知机&#xff08;MLP&#xff09;是一种经典的神经网络模型&#xff0c;由多个神经元层组成。它的结构和功能使其成为深度学习中的重要组成部分。MLP在…

【Java算法题】剑指offer_算法之01搜索算法

前言 刷题链接&#xff1a; https://www.nowcoder.com/exam/oj/ta?page2&tpId13&type265 1. 搜索算法 JZ53 数字在升序数组中出现的次数 思路&#xff1a;遍历数组&#xff0c;count记录k值出现次数&#xff0c;返回count public class Solution {public int GetN…

【word wps文字】目录页码中的格式在打印或打印预览时变为和正文页码格式一样,如何调整?

一、问题背景 之前在闲鱼上&#xff0c;有个人找我改word排版&#xff0c;有一个需求就是正文页码两边需要横杠。 但是目录中显示的页码&#xff0c;不需要横杠。 我当时是一个一个在目录中删除横杠的&#xff0c;借助了查找与替换功能。 更改后&#xff0c;目录页码如下所…

Java与SpringBoot对redis的使用方式

目录 1.Java连接redis 1.1 使用Jedis1.2 使用连接池连接redis1.3 java连接redis集群模式 2.SpringBoot整合redis 2.1 StringRedisTemplate2.2 RedisTemplate 1.Java连接redis redis支持哪些语言可以操作 &#xff08;去redis官网查询&#xff09; 1.1 使用Jedis (1)添加jedis…

HTML+CSS实训——Day14——项目其他页面的完善

仓库地址&#xff1a;HTML实训 前言 今天我们继续用老师提供的api&#xff0c;完善一些剩余的功能&#xff0c;因为我的git push好像传乱了&#xff0c;所以仓库大家看看最新的就好&#xff0c;最新的一天一定包括前一天所做的内容。 Collect.htmlcss 收藏界面 <!DOCT…

Dijkstra迪杰斯特拉算法求最短路径(C++实现)

名人说&#xff1a;一花独放不是春&#xff0c;百花齐放花满园。——《增广贤文》 作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 〇、Dijkstra迪杰斯特拉算法介绍1、Dijkstra算法是什么&#xff1f;2、Dijkstra算法…

低代码工具:jvs-list(列表引擎)2.1.7功能清单及新增功能介绍

在低代码开发平台中&#xff0c;列表页是一个用于显示数据列表的页面。它通常用于展示数据库中的多条记录&#xff0c;并提供搜索、排序和筛选等功能&#xff0c;以方便用户对数据进行查找和浏览。 jvs-list是jvs快速开发平台的列表页的配置引擎&#xff0c;它和普通的crud 具…

Rocky Linux9.的系统中安装MySQL8 实战

前言 Centos7 已经停止维护&#xff0c;学习其他linux系统势在必行&#xff0c;今天我们要探讨的是&#xff1a; 在Rocky linux9的系统上安装MySQL8 文章目录 前言1. 从Appstream中进行安装1.1 更新系统中的所有软件包1.2 安装MySQL1.3 启动并测试1.4 查看MySQL版本 2. 初始化操…

获取地理位置请求免费天气接口

需求&#xff1a;根据地理位置信息去请求免费的天气接口数据&#xff0c;拿到数据后进行展示&#xff0c;这边我用到了俩个key&#xff0c;一个是高德天气的key和心知天气的key&#xff0c;为什么要这么麻烦呢&#xff0c;是因为之前写过一版不需要获取地理位置&#xff0c;直接…

嵌入式系统开发中的常见挑战和困难

当涉及嵌入式系统开发时&#xff0c;可能会遇到以下一些常见的挑战和困难&#xff1a; 复杂的硬件和软件集成&#xff1a;嵌入式系统通常涉及硬件和软件的紧密集成&#xff0c;需要同时理解和处理硬件和软件层面的问题。这种复杂性可能导致调试和故障排除变得更加困难。 有限…