ABTest系统演进与实验监控

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. ABTest系统演进与 实验监控 邹通 | 技术中心/技术运营中心/算法组
2. 2020年三月加入去哪儿网,主要负责AB系统、营 销召回、ID-Mapping相关的研发工作,致力于公 司的公共设施建设,具有丰富的AB系统开发和实 验问题定位的经验。 邹通
3. 目 录 CONTENTS A AB实验概述 B AB系统及其演进 C 实验监控机制 D 未来规划
4. 01 AB实验概述 • 什么是AB实验 • 如何做好一个AB实验
5. Part2 如何做好一个AB实验 Part1 什么是AB实验 互联网行业普遍使用到的,评估不同版本的某一产品在相同时间维度下,对组成成分相同的目标人群产生 的业务效果差异的方法 Case1:服务包特产赠品优化 业务流程 改变UI样式 服务包名-产品大类 + 点击兑换 商品名称 + 免费领取
6. Part1 什么是AB实验 Part2 如何做好一个AB实验 评估不同版本的某一产品在相同时间维度下 暑假疫情好转 实验组: 对照组: 疫情期间 具有周期性的业务,实验组与对照组需要在相同时间维度下进行实验和比较。
7. Part1 什么是AB实验 Part2 如何做好一个AB实验 对组成成分相同的目标人群产生的业务效果差异 Case2:营销策略触达用户 组间UV量级差异 用户特征的差异 长期营销 但相同用户 不重复营销 (单次触达) (多次触达:先分组,再过滤已触达用户) (多次触达:先过滤已触达用户,再分组) (多次触达:先过滤全量参与用户,再分组) 关注实验的细节!实验流程设计会直接决定了实验是否合理、评估是否有效
8. Part1 什么是AB实验 01 理论知识 • 实验基础(H0假设、H1假设、两类错误、置信区间、统计功效...) 如何设计合理的评估方案 • 实验设计(初始和新奇效应、周期与规模效应、选择性与幸存者偏差...) • 假设检验(配对T检验、独立T检验、Z检验、卡方检验...) 了解业务 业务流程及相关的AB配置(WIKI): 实验在哪个页面做 • 机票、酒店业务流程主要指标与计算口径 实验从哪个业务流程开始 • 实验流程管理(从申请到下线、各个阶段对应的参与方) • 实验配置项介绍、业务用途(修改配置时应该周知谁) 实验的业务指标口径 03 一些AB的热知识(WIKI): 如何设计实验方案 如何科学地完成假设检验 02 Part2 如何做好一个AB实验 了解系统 详见下文: 数据在AB系统中如何运转 • AB分流原理、系统基本架构、QunarAB系统演进 • 常见问题总结、异常监控与检测、流程质检机制 AB日志是从哪里获取的 AB系统如何监管每个实验
9. 02 AB系统及其演进 • AB分流原理 • 系统演进与迁移 • AB系统基本框架
10. Part1 AB分流原理 Part2 AB系统基本框架 Part3 系统演进与迁移 怎么确定一个用户是分到A还是B 什么叫“一个用户” 用户ID?自然人? userId username 188nS6e6420 userId_1 username_1 152B3m77205 userId_2 username_2 一个自然人有两个手机号 CA692245-****-****-****-08251BB4E8F6 7673********0e9c app_uid 一人有多个设备/多人共用一个设备 app_gid 第一次安装:6A1D7F29-2B79-1316-****** 卸载后重装:1A98C535-445A-78BB-****** unionId openId 多次卸载重装: ... ... 反复卸载、重新下载、安装 用户ID ≠ 自然人,只是近似地将用户ID看作一个自然人,此外userId或者username会相对严格一些。
11. Part1 AB分流原理 Part2 AB系统基本框架 Part3 系统演进与迁移 怎么确定一个“用户ID”是分到A还是B 将实验中的用户ID划分为四等分(1:1:1:1) 更灵活? 3:3:3:1,模10? 7:7:3:3,模20? 43:43:7:7,模100? ... ... eg. 用户名为“rhzgtsy8750” a) Hash(rhzgtsy8750)=27447080 7 用户(rhzgtsy8750) 分到了D 组 b) 274470807 % 4 = 3 业界普遍的做法: Hash值 % 1000 3:3:3:1,模1000 300:300:300:100 7:7:3:3,模1000 350:350:150:150 43:43:7:7,模1000 430:430:70:70 扩展性?为了保证实验互不干扰,在同时进行多个实验时,希望某个自然人在所有实验都是随机分组的。当分组结果只 与用户ID有关时,可同时在线的实验个数=支持的用户ID类型数。
12. Part3 系统演进与迁移 Part2 AB系统基本框架 Part1 AB分流原理 如何支持几百个实验同时进行 实验域:把所有用户划分开,域间用户不交叉(具体划分由业务系统完成); 实验层:每个实验对应了单独的层,层间用户相互正交(若AB系统使用统一域,每一层包含全量用户); 理论上,实验域中可包含多个实验层,实验层中也可包含多个实验域。 重新设计 分流Key 分流表达式: MurmurHash(用户ID, 实验层) % 1000 = mod 注意:用户ID不可等同于一个自然人用户 [0,299) A [300,599] B [600,799) C [800,999) D • 若哈希算法不变、分桶数量不变(公司内默认不变), 则分流结果仅与用户ID和实验层有关; • 若请求分流的实验不变,当且仅当用户ID不同时,才 会获得不同的分流结果。
13. Part1 AB分流原理 Part2 AB系统基本框架 Part3 系统演进与迁移 ETL、宽口径、窄口径... 分流 实验层信息 实验分组信息 定时缓存至查询服务本地
14. Part1 AB分流原理 Part2 AB系统基本框架 AB系统基本框架 Part3 系统演进与迁移 Dubbo方案:机票ABT 实现一 功能丰富(业务功能配置、后评估) 整体迁移 通用ABT 实现二 SDK方案:公共ABT 指标 性能优(稳定性、分流效率、资源运维) Dubbo方案 SDK方案 易用性 统一的服务和管理、接入简单 单独嵌入SDK、自主配置日志收集 功能性 贴合业务特点、统一评估标准 无业务相关功能、各业务线独立评估 分流效率 高QPS下有性能的压力(3~30ms) 本地执行分流,耗时短且稳定(<1ms) 机器成本 耗费大量机器资源进行分流 使用少量机器资源提供配置查询服务 逻辑排查 内部逻辑对外不可见 调用方可Debug分流内部逻辑 支持不同业务的元信息配置、提供统一的评估检验标准
15. Part1 AB分流原理 Part3 系统演进与迁移 Part2 AB系统基本框架 机票ABT向通用ABT迁移 机票ABT的情况: • 分流逻辑改造 实验迁移 线上仍存在几十个机票实验、实验涉及多个业务系统 主要问题: • 各个业务系统独立实现迁移,耗费的人力成本过高 • 线上同时存在两套实验配置平台,不利于实验管理 如何让迁移更平滑? ---重构Dubbo服务,提供代理适配层 1、机票Dubbo分流中嵌入SDK 2、限制机票AB平台对外提供服务 Dubbo服务作为业务系统与通用AB平台的适配层,机票AB平台拟下线 (业务系统前期无感知,业务参数与SDK的适配问题由AB团队解决) 3、业务系统排期嵌入SDK 4、所有业务系统完成嵌入 老机票实验自然到期或主动下线后,再下线Dubbo分流逻辑 (保证过渡期间正常业务不受影响)
16. 03 实验监控机制 • 实验常见问题 • 流程管理机制 • 异常监控与检测
17. Part1 实验常见问题 Part2 异常监控与检测 常见问题发生在哪? Part3 流程管理机制 哪些问题能提前避免、提早发现,哪些问题必须提前避免? 2021下半年问题汇总(100+ case): 定义问题级别,依据问题产生的原因进行分类 实验流程如何设计 缺少流量 无法正常分组 全返回DEFAULT 实验配置有疑问 无数据 白名单与业务逻辑不符 数据不准确 系统获取不到实验配置 AA检验不通过 SDK或接口的使用问题 目标:提前避免、提早发现 将问题类型映射到AB业务流程中 级别 类别 占比 Case 处理方式 P2 咨询类 28.7% 流程设计、配置有疑问... 完善WIKI P2 评估类 7.4% 口径有误、AA检验不通过... 后期排查 P1 日志类 33.3% 实验缺少流量、无数据、数 提前避免+ 据不准确... 提早发现 P1 调用类 27.8% 分流ID类型与配置不符、多 提前避免+ 类型分流ID同时调用... 提早发现 故障级 下线类 2.8% 无法正常分组 提前避免 一些监控与检测手段: 下线类 调用类 日志类 (实验到期/下线) (分流ID类型异常) (日志未收集 / ETL任务失败) (多种分流ID调用) 异常监控 异常提醒 异常检测
18. Part1 实验常见问题 Part2 异常监控与检测 Part3 流程管理机制 异常监控 异常提醒
19. Part1 实验常见问题 自动异常检测流程: Part2 异常监控与检测 Part3 流程管理机制
20. Part1 实验常见问题 Part2 异常监控与检测 Part3 流程管理机制 在整个实验周期里如何对流程进行管理(需要关注哪些点)? 实验配置阶段 实验评估/结束阶段 实验进行阶段 实验设计wiki、 假设检验问题 数据评估口径 及时向AB反馈 关注异常提醒 关注到期邮件/QT 业务信息确认 做好白名单测试 口径问题及时 向数仓反馈 关注实验质量,遇到异常尽早解决,避免产生一些无法修复的问题 及时下线代码
21. 04 未来计划
22. 未来计划 生命周期运营体系 自动化质量运营监控报告 实验结论沉淀 历史实验评估数据/结论归档 评估/检验算法优化 Z检验、卡方检验、DID评估 用户分群与因果分析 不同画像标签下的实验因果分析
23. Q&A
24. 分享完毕,谢谢观看!

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-16 21:42
浙ICP备14020137号-1 $Carte des visiteurs$