




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、A/B test 平台架构设计本文以一次性设计好A/B test功能架构为目的,对A/B test的使用场景与功能模块进行了分析。 最近在考虑一个产品的小功能改进,目前我们的产品列表按照产品带来的收益排序,如果用户点击了产品之后,那再点击这个产品可能就无法带来很大的收益,于是我们想到,那把用户点过的产品放在产品列表底部怎么样呢? 当然团队内部也有不同的声音,用户点击产品之后,可能由于网速、或者手滑,并没有实际上注册到第三方产品中去,那么放在产品列表底部可能会给用户造成困惑,也失去了用户第二次点击的机会。 内部讨论过后,我们认为这是个值得做的尝试,但应该以A/B test的方式去实现。根据数据,
2、来决定是否要全量覆盖该功能。 A/B test的概念大家并不陌生,被广泛应用于快速迭代的互联网产品中。同时在以前的迭代过程中,我们也以其他方式进行过A/B test。 但是A/B test带来的问题是,单个功能的A/B test是很容易做的,但与此带来的数据统计拆分,每次都会带来重复的工作量。因此比较节约的方式是,一次性设计好A/B test功能架构,支持未来的持续A/B test,降低单次测试带来的边际成本。一、A/B test的使用场景 从技术上讲,AB测试存在两种场景:纯页面交互A/B和功能A/B。这两种场景的区别仅在于是否需要向后端申请不同的服务。二、功能模块 A/B test功能模块
3、大概有以下三个:用户分流服务、A/B test 配置、数据统计。整个流程如下: 用户访问后,根据用户属性,调取用户分流服务,根据用户分流服务返回结果调取相应 AB/TEST 配置。 前端业务侧做数据埋点,在用户访问时,前端做数据上报。同时自动生成数据报表,处理原始数据后给出是否采信方案的结论。2.1 用户分流服务 用户分流服务用于将访问用户分流进入对应客群。 这里我做设计的时候有一个部分很后悔,就是我曾经做了一个版本是将用户分类展示不同产品列表的功能。本质上就是一种设定客群然后分流的服务,当时没有考虑到后来这个功能有这样的拓展,所以与产品列表与运营位配置耦合度很高。在做 A/B test 的分
4、流服务时,只能独立再做一套。 事实上不仅用户分流服务是一个应该与各功能模块解耦的部分,客群服务(包括用户信息、用户画像建设)也应该解耦。这两个服务结合起来可用于:为不同用户做定制化展示、A/B test、黑白名单等功能应用。 2.1.1 分层分流 说回用户分流服务来,大型系统会遇到一个问题,我们总是希望以小范围的测试来验证足够多的的假设。可如果多个部门多实验并行,实验之间又相互互斥的话,流量会不足。这里我们产生一个“域”的概念,不同域之间互斥,同一个域的不同层正交,正如下图所示(图片引用,具体见文末参考文章,之后不再赘述): 不同域之间共享100%流量,例如域1分流了30%,那域2就分流70%
5、;同一个域的不同层之间,会重复使用这个域中的流量,但不同层之间,每次进入流量会重新打散,保证互相不影响;同一个层之间配置 A/B test 的实验 A/B/N,共同分享这个域中的流量,不同实验组之间相互互斥共享100%该域流量; 2.1.2 如何对用户分流 用户分流方式有三种,一般使用的是以用户维度分流,这样可以保证单一用户每次进来看到的是相同实验,不会造成体验上的不一致:以用户维度;以分类维度;完全随机; 哈希因子:实验的 Hash 因子有设备 ID、策略 ID、流量层 ID,根据具体需求,可以选择其中的几个因子组合后 Hash,。HashID=Hash(设备 ID,策略 ID,流量层 ID
6、)%100+1 这样每个用户会得到唯一的 HashID,同时会落在1,100的范围内,让用户随机均匀散落在这个范围内。如果需要将流量控制的更精准,可以对1000甚至10000取余,这个根据实际情况灵活做选择就好。 在配置实验时,根据实际需求,为各个版本均匀切分流量。譬如A版本划分10%的流量,则 HashID 从 0-10 的用户被划分到 A 版本,以此类推。2.2 A/B test 设置 AB/TEST 设置用于配置实验,做实验的增删查改,同时对线上的实验做管理,及时上下线。 管理员在 AB/TEST 配置系统中,新建实验,并设置分流规则。完成后实验配置入库,当用户访问产品时,根据分流规则调
7、取 AB/TEST 实验版本。 2.2.1 新建/编辑实验step1:新建实验step2:输入实验信息(实验的基本信息、生效时间)等step3:选择分流服务step4:选择后端服务step4:选择数据指标 2.2.2 管理实验 管理实验模块主要用于上下架实验。2.3 数据统计 A/B test 最重要的一部分是统计和分析数据。在建立实验时,同步选择需要关注的数据指标。以实时或T+1的方式,展示数据报表。在新建实验时,可以在现有的埋点指标中做选择,选择出用于分析实验效果的关键漏斗指标,生成报表。在技术实现上,埋点的数据上报,需增加分流服务ID。2.4 数据分析 在数据统计完成后,更重要的部分是我
8、们如何根据数据报表来判断各个版本的优劣。由于其他因素的扰动,譬如流量质量、级别等因素,同一个实验的多个版本会有微小数据差别,在一定程度内的数据差别是正常波动,并不能说明某个版本更优。因此大部分的 A/B test 系统采用了 T 检验。 为什么要 T 检验或者其他检验呢,是因为 *样本参数=总体参数+机会误差+偏差*,现在我们手里有样本,可以计算样本参数,但是我们想知道的是总体参数,但是这个样本参数能不能代表总体参数呢?T 检验在这里就是用来判断是否是机会误差这个因素造成,通俗点说就是样本得到的参数值可不可能由于是抽取的时候的随机造成的。 2.4.1 P 值(P value) P 值检验用于验
9、证假设。在 A/B test 里,原先的版本可以称它为H0(原假设),新的版本称为H1(备择假设),假设就是我们认为H1版本是优于H0的。若 P 值落在置信区间里,那我们的假设成立,若 P 值没有落在置信区间,就认为 P 值推翻了我们的假设。 P 值越小,我们认为H1这个备择假设越靠谱。P 值越大,H1越不靠谱。置信区间是我们自行定义的“靠谱区间”。 以上我们计算出了 T 值,通过查询界值表,可以获取到 P 值。 2.4.2 置信区间 刚才说置信区间是人工定义的,值你可以定义为0.05、0.1,这个根据实际情况去做选择,1-就是置信区间,除此以外的就是拒绝域。若 p ,那么拒绝原假设;若 p ,那么不能拒绝原假设。推荐阅读(即参考文献) 1.【ABtest在OpenSearch上的设计与实现】 type=2 2.【推荐系统衡量:ABtest框架】 3.【马蜂窝
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 影视后期特效制作实战手册(如AE)
- 工程经济项目可行性研究报告
- 中级养老护理复习测试有答案
- 活动策划报告
- 妇产科护理练习试题附答案
- 职场新人培训计划与教材编写指南
- 物流仓储作业指导手册
- 三农宣传推广与教育方案
- 智能家居设备维护与故障排除教程
- 交通运输行业智能交通与自动驾驶技术研究方案
- 《高点全景视频监控联网技术要求》
- 白云山生态停车场工程施工组织设计施工方案
- 2024年四川省绵阳市中考语文试卷(附真题答案)
- 【MOOC】Office高级应用-成都信息工程大学 中国大学慕课MOOC答案
- 足球英语课件
- 盆底康复课件
- CNAS认可准则、规则考核专项测试题附答案
- 中等职业学校口腔修复工艺专业实训教学条件建设标准
- 药品经营使用和质量监督管理办法2024年宣贯培训课件
- 保安服务 投标方案(技术标 )
- 金华十校2024年11月高三模拟考试(一模)语文试卷(含标准答案)
评论
0/150
提交评论