A/B-Test (Overlapping Experiment Infrastructure: More, Better, Faster Experimenta)

article/2025/9/22 11:31:46

本文针对上周的工作进行了总结,上上周的工作将在接下来通过文章进行总结,主要内容为DEIN 模型。

为了解决推荐算法基于web实验的模型验证,我参考了Overlapping Experiment Infrastructure: More, Better, Faster Experimentation 2010 的google 这篇文章。

这篇文章针对当时的web验证方案进行了总结,并未google 的web实验验证方案的设计提供了参考,在此基础之上,google 工程师设计了自己的验证方案, 我将对相关的工作做概要性的简述。

首先从图1 出发:

这篇文章中提出了一个数据流通道的简易路径,主要由两个server(search ,ads)组成,前者构成了数据通道的前向,后者提供了后项, web server 为推荐的可执行容易, 一般来说数据并发量巨大可以采用evpp c++ web 容器, 如果访问并发量不大可以采用轻量级的web容器,例如flask。前者有着诸多优势,且支持多线程。后者开发容易,部署简单。

query中包含一些重要的参数:userid, feature conbination subsets , cookie(google 特有,实际的参数是否带用根据具体的实际情况)。

有了基本的流程之后,我们进去图3观察:

 作者认为实验分为对照性实验以及单因素实验和多因素实验,实验所需要的样本以及参数需要通过对样本进行分流分桶以及进行实验参数的配置。图三主要展示了作者针对实验流量的分流。

作者引入了cookie 的概念,作者认为cookie是唯一的,可变的。且作为用户的唯一标识符。实际上在我们的系统中由于做不到google那样的庞大,可以采用数据库中的唯一字段,或者根据索引策略去实现。也可以将cookie与用户的数据库id相对应。google 工程师对于分流增加了两个策略:

1 ,求mod策略。

2,随机策略。

原文如下所示:

 假设存在两个对照实验组:实验组named 实验1, 对照组named 实验2. 我们对新进入的userid进行mod/2 为偶数则进入实验1,作为实验1 的样本,mod/2 为奇数,作为实验1 的样本。这里新进入的样本进行随机可能会产生两个问题(样本缺乏以及样本偏值的问题),我们的目标就是确定一个实验可变参数,其他参数保持一致,在此前提下进行对照实验。相关原文在第二部分的RELATED WORK中可以查询。如下所示:

 对于偏值问题可以在样本缺乏的问题上进行探讨。

简单的需求满足不了google 基于推荐实验验证的要求,主要针对多因素的实验验证,工程师做出了多层的模式,以更方便更灵活,更快的方式部署实验验证。

 对于求mod需要做出一些改变,工程师构建了一个函数,通过多个条件将数据进行分流,原文如下:

 f函数将流量划分为几大模块,对应图2中的几个层次。才层次中可以采用随机的方式进行流量分桶。每一次数据的进入类似抛硬币,等同于n次伯努利实验,在此基础上可以分析实验的前置工作,例如样本是否具有统计显著性等工作。在图3中给出了相关的f函数的使用方式。5.2 小节对前置工作给出了具体的方法。

实验的指标可以根据CTR或者基于CNN网络的指标进行相关的计算。例如准确率,召回率,ROC,多样性等等。

根据这边文章我对当前的工作进行了相应的构建。

从应用的角度介绍来AB test的一些内容,当收集好数据之后做推断性统计分析你可能需要具备以下知识,这里限于篇幅不做介绍,自行查阅统计学书籍阅读,可参考《统计学》贾跃平,可汗学院统计学等书籍和视频。

1、点估计

2、区间估计

3、中心极限定理(样本估计总体的核心,可以对比看一下大数定理)

4、假设检验

其中假设检验部分为核心,其他辅助更好的理解该部分内容,比如区间估计可以理解为正向的推断统计,假设检验可以理解为反证的推断统计,关于假设检验本身,你可能还需要知道小概率事件、t分布、z分布、卡方分布、p值、alpha错误、belta错误等内容。   

以上则是这篇文章最简要的概述,当然存在着不足,欢迎讨论,目前很多算法的A/B test     都遵循这篇文章的设计模式,在诸多领域都有着广泛的应用。


http://chatgpt.dhexx.cn/article/emBNNt2Y.shtml

相关文章

Infrastructure-Based Object Detection and Tracking for Cooperative Driving Automation: A Survey

由于基础设施的(infrastructure-based)传感器安装位置和姿势的灵活性,基于基础设施的目标检测和跟踪系统可以增强联网车辆的感知能力。 一、基于基础设施的感知系统 基于基础设施的目标感知系统包含四个典型阶段:1)信…

公钥基础设施 (Public-key infrastructure PKI)

公钥基础设施 PKI 1.功能2.设计3.认证方法3.1证书机构(CA)3.2信任网络(Wot)3.3简单的公共关键基础设施(SKPI)3.4分散的PKI3.5基于区块链的 PKI 4.使用 密码学上,公开密钥基础建设借着数字证书认…

shell infrastructure host占用cpu_网速、CPU、内存监控软件TrafficMonitor

Traffic Monitor 是一款 Windows 平台的网速、CPU等监控悬浮窗软件,可以显示当前网速、CPU及内存占用率,小窗口可以拖动到窗口的任意位置,并且支持嵌入到任务栏显示,历史流量统计等功能。 Traffic Monitor 是免安装的,打开即用。下载地址:https://github.com/zhongyan…

Oracle 12cR1 Grid Infrastructure 安装指南之一(官方直译)

1 Oracle Grid Infrastructure安装清单 以下清单提供了所需的 Preinstallation 步骤的列表. 使用此清单可协调任务, 以帮助确保在启动Oracle Grid Infrastructure以进行群集安装之前完成所有系统和存储准备和配置任务. 1.1系统硬件, 软件和配置清单 本节包含以下服务器配置…

HLA RTI(Run-time Infrastructure)

RTI(Run-time Infrastructure) 概述 主要作用 具体实现了HLA接口规范。为了实现联邦内部各个联邦成员之间进行高效的信息交换,HLA接口规范用文字定义了各种标准服务和接口,而RTI则用程序设计语言将这些标准的服务和接口转成了标…

DDS之DCPS Infrastructure模块

DCPS Infrastructure Infrastructure ModuleEntityEntity IdentifierQoS policyListenerStatusStatusConditionEnabling Entities QosPolicyStatusStatus 定义StatusMask 定义Listener callback定义Listener callback的实现 Condition and WaitSet Infrastructure Module 从Inf…

Oracle 19.3 Grid Infrastructure 软件安装详细教程

更多文章,欢迎关注作者公众号,欢迎一起交流。 1 安装环境 CentOS 7.9Oracle Database 19.3 - Enterprise Edition 2 安装配置 2.1 内存要求 1)数据库安装:至少1GB,推荐2G以上; 2)Grid安装&…

Oracle 19c Grid Infrastructure安装

概述 本文描述在单个主机上(不是RAC)GI 19c的安装。 Oracle数据库软件19c已安装,但未创建任何数据库。参见这篇文章。 主机为Oracle Linux 7,主机上已安装先决条件包(oracle-database-preinstall-19c),数据库软件用户…

infra-structure Ad Hoc

“infrastructure”模式: 所谓infrastructure是在一种整合有线与无线局域网架构的应用模式,与ad- hoc不同的是配备无线网卡的设备必须通过ap来进行无线通讯,设置后,无线网络设备就必须有AP(Access Pointer)…

DDD(八)【基础设施层】

最近被DDD吸引了阿,在这里感谢一下小佟,呵呵,领域驱动设计是个不错的东西,帮助我们把问题清晰化,这候对于复杂业务逻辑是很重要的,今天这一讲主要说一下D&…

DB2初步使用

DB2初步使用 1.安装完成后开始菜单栏里会有一个 DB2 Command Window - Administrator 打开这个命令窗口 2.db2  db2,启动 3.list databse directory 会列出所有数据库 create databse XXX  创建新的数据库XXX  drop database XXX  删除已有数据库XXX 4.conn…

db2 时间戳相减返回天数

db2时间戳类型时间相减返回天数,先用timestampdiff函数让时间戳相减得到秒,然后利用cast()函数转换成天数。timestampdiff()函数中的时间一定是时间戳timestamp类型。 select cast(timestampdiff(2,(CURRENT_TIMESTAMP - 2021-08-10 11:00:00)) as doub…

Linux 命令行进入DB2

1. docker ps 2.docker exec -it 813cb755c14c /bin/bash 3.su - db2inst1 进入DB2账户下 4.db2 list db directory 列出目前所有数据库 5. db2 直接进入db2数据库命令行模式 6.db2 connect to testdb(testdb数据库名称) 如果需要对某一个数据库操作…

DB2安装到卸载一套龙服务

DB2安装到卸载一套龙服务 1.DB2数据库下载 下载地址: 点击这里下载 点击链接保存,或者复制本段内容,打开「阿里云盘」APP 下载下来是 3 号 双击3解压 会有一个弹框,为四号 ,点击Browse 这里选择解压地址,我是解压…

db2获取日志路径

db2 get db cfg for bpfdb3 | grep log

db2的启动命令

想重启db2库,直接使用db2stop命令,执行报错 这样停不掉,因为有连接在上面 查看连接 db2 list applications show detail 发现有很多连接,连接在bpfdb5这个库上面 杀掉所有的连接 db2 force application all 再次检查连接 发现没…

db2top操作手册

本手册译自: https://www.ibm.com/developerworks/data/library/techarticle/dm-0812wang/ 目录 1.db2top命令语法... 4 2.db2top运行模式... 5 2.1 交互模式... 5 2.2 批量模式... 6 3.db2top监控模式... 8 3.1 数据库监控 (d). 8 3.2 表空间监控 (t). 9 3.3 动态SQL监…

DB2基础语法与简单使用

1、启动 [rootMyClone hadoop]# su db2inst1[db2inst1MyClone hadoop]$ db2start2、创建数据库 [db2inst1MyClone hadoop]$ db2 create database hiber;3、 列出数据库 [db2inst1MyClone hadoop]$ db2 list db directory4、连接数据库 [db2inst1MyClone hadoop]$ db2 conne…

awk的使用

awk的使用 一、awk的作用 1.用来从文本中截取字符串 2.用来匹配过滤文本,起到grep的作用 二、awk里面的分隔符 1、输入分隔符: -F -FS":" FS(input field separater)2、输出分隔符: 定义OFS“#” OFS&a…

AWK基础教程

前言 之前针对WorkerHub小程序做的数据分析文章 互联网卷王花落谁家? 收到了一些小伙伴的回复,点名要学习数据分析,其实我也是一知半解,想着来写几篇文章简单聊下我分析的过程。 首先是数据清洗和统计了,这块我并没有…