A/B测试系统搭建
2024-10-11 15:26:09 0 举报
AI智能生成
* A/B测试系统搭建 * A/B测试特点 * A/B测试场景 * A/B测试流程 * A/B测试系统设计
作者其他创作
大纲/内容
A/B测试
A/B测试,也叫A/B试验、对比试验,是一种将试验对象随机分组并针对不同组对象给予不同的变量刺激,然后采集试验数据,运用统计学上的假设检验来判断不同变量对试验效果的影响是否显著的科学试验方法。A/B测试并不是只能有两组试验,ABC测试、甚至是ABCD…N测试,这些都可以称作A/B测试。一般来说,A代表对照组,B、C、D等为试验组,试验组可以分为多组并给予不同的刺激,可以是不同变量或者一个变量的不同实例,比如不同颜色、不同剂量等。
A/B测试特点
先验性:A/B测试其实是一种“先验”的试验体系,属于预测型结论,与“后验”的归纳型结论差别巨大。所有统计分析都是后验的,只能解释,A/B测试是先验的,能直接对业务产品进行干预和影响
科学性:通过严格的随机算法将相似特征的用户均匀分配到试验组中,确保每个组别的用户特征的相似性,从而避免出现数据偏差,使得试验的结果更有代表性
严谨性:A/B测试是一种科学的评估手段,其试验结果需要通过统计学的假设检验进行验证,有着深厚的概率统计学理论的支撑
成效性:可以以较低的成本在小范围内进行测试,试错成本较低,而测试有效方案可以快速通过全量用户覆盖,实现收益最大化
并行性:A/B测试可以将两个或两个以上的方案同时在线试验,这样做的好处在于不仅保证了每个版本所处环境的一致性,便于更加科学客观地对比优劣,而且还节省了验证的时间,无须在验证完一个版本之后再测试另一个
持续性:A/B测试是一套持续提升改变的进化体系,并不是一次性或偶尔的,通过持续的测试可以从试验中学习最优选择”
A/B测试场景
界面试验
界面试验是利用A/B测试优化UI,以为用户带来更好的交互体验和视觉感受,侧重于挖掘界面展示元素的属性差异,也可近似理解为UI试验
功能试验
“功能试验包括系统/应用发布灰度试验、新功能上线/下线灰度试验、功能流程的变动试验”
人群试验
“人群试验是进阶版的A/B测试,有两个小类:一是基于特定人群标签分流测试不同方案,比如测试90后女性群体对不同风格首页的反应;二是在不同人群下测试同一方案,本质是看不同人群对该方案的认可程度,比如某电商应用对比70、80、90、00后人群的复购率情况。”
算法试验
各类算法是A/B测试应用场景最多的地方,算法开发人员通过A/B测试来验证一个新的算法或者小的算法优化能否提升算法的业务指标。推荐、搜索、精准广告、精细化运营等涉及算法的产品和业务都是可以利用A/B测试技术的。
A/B测试流程
从试验的进程看,可以将A/B测试流程划分为试验需求洞察、试验需求发起、试验方案设计、试验需求落实、试验效果分析五个阶段
A/B 测试流程
试验需求洞察
“试验需求洞察包括需求来源洞察和需求目标洞察两部分。”
“试验需求源于对用户、产品的深度洞察”
“单个A/B测试最好聚集到1个北极星指标,不要超过3个指标,指标多了试验本身容易受到干扰,不便于进行因果的相关性分析。”
试验需求发起
试验方案设计
“接到试验需求后,A/B测试产品经理需要与需求方就试验细节进行深入沟通,产出A/B测试分流方案。同时,需求方产品经理也要就试验需求进行产品或功能上的配合,产出A/B测试产品方案。”
“A/B测试分流方案:明确具体分流算法,明确试验分层与分组、每组流量占比及调整方式,明确分流试验周期,明确分流人群,预测分流风险。
“A/B测试产品方案:产品原型设计(包括试验组和对照组)、产品效果指标定义和数据采集埋点方案设计”
试验需求落实
“A/B测试分流方案开发通常包括如下内容:
“1)在A/B测试系统创建分流,录入分流相关基本信息,如分流名称、分流类别、产品、业务部门、业务对接人、测试周期、流量分配算法等;
“2)创建分流后,需要配置分流结构,包括试验分层及分组、每组流量桶值分配、配置试验参数”
分流结构示例
“通常来说,两者的开发由不同的团队负责,产品整体功能开发完毕后可进行A/B测试联调测试,且一般由业务功能模块调用A/B测试的API进行。
上线运行后,实时监控A/B测试数据及性能指标,如有异常则选择相应风险应对方案,降低流量或者关闭分流开关。”
上线运行后,实时监控A/B测试数据及性能指标,如有异常则选择相应风险应对方案,降低流量或者关闭分流开关。”
试验效果分析
“试验上线后就会有数据输入,此时分析人员可以按埋点进行数据提取,围绕试验目标,进行对照组与试验组数据分析。对于周期性不那么强的一般性试验,收集2周的数据基本可以做完整分析了,结合正态分布、中心极限定理、t检验等统计学理论,判断试验结果是否显著可信。”
一般而言,选择目标指标95%置信度下的置信区间[a,b]作为参考:
·若a、b同向(同正或同负),即ab>0,且统计指标均值或汇总值落在置信区间[a,b]内,则可以认为该试验结果是显著的,胜出方案可以逐步放量至全量,以追求利益的最大化;
·若a、b反向(一正一负),即ab<0,且统计指标均值或汇总值落在置信区间[a,b]内,则不能认为该试验结果是显著的,此时说明试验组的策略并未导向与默认组的稳定的差异,应调整策略或关闭试验。”
·若a、b同向(同正或同负),即ab>0,且统计指标均值或汇总值落在置信区间[a,b]内,则可以认为该试验结果是显著的,胜出方案可以逐步放量至全量,以追求利益的最大化;
·若a、b反向(一正一负),即ab<0,且统计指标均值或汇总值落在置信区间[a,b]内,则不能认为该试验结果是显著的,此时说明试验组的策略并未导向与默认组的稳定的差异,应调整策略或关闭试验。”
“A/B测试系统设计”
A/B测试系统核心功能
“A/B测试系统就是一套能将A/B测试方法标准化的工具,通过产品化后,可以降低用户使用门槛,提高A/B测试迭代速度,规范试验流程,减少人为操作过程中所犯的错误,还可以沉淀不同的数据和策略。”
“A/B测试系统核心功能”
一般而言,一个完整的A/B测试系统至少需要有试验管理、分流模块、业务接入、数据采集和结果分析这五个模块
1.试验管理
“试验管理就是一个A/B试验配置后台,通过页面与用户交互引导用户完成试验关键参数配置,并允许用户对试验进行管理”
2.分流模块
“分流模块也叫流量分配模块,这个模块根据试验配置信息在用户请求服务时将用户分配给不同的试验组别”
“(1)常用用户唯一ID选择”
“一般来说,通用分流服务的用户唯一ID会根据不同终端采用不同的用户标识,目前通用做法为Web端(含PC及App端的H5)采用CookieID,App端采用设备ID(对于设备ID,不同操作系统有各自生成的算法,一般来说iOS会用IDFA,安卓采用MAC地址+AndroidID+IMEI),小程序端采用OpenID。如果需要做到多端联动,还需要通过用户的注册ID等其他信息进行ID之间的强打通(ID-Mapping),建立平台真正的统一用户标识。
(2)通用Hash算法
Hash算法即散列算法,它并不是一种算法,而是一族算法,是密码学中一种单向不可逆加密算法。目前比较通用的Hash算法有MD5、SHA、Murmur等,通过一个函数将明文随机均匀分布到算法设计的多维空间中,空间维度越多,算法越复杂,也越难破解。如果有技术实力,可以根据密码学知识设计自己的Hash算法,具体可以查看密码学相关知识”
“目前在A/B测试中应用比较多的是通过Murmur算法将用户的唯一标识以及试验层layerid作为参数传入进行分组。这样既保证了用户分组的随机性,同时保证了多个层之间的正交关系。
“目前在A/B测试中应用比较多的是通过Murmur算法将用户的唯一标识以及试验层layerid作为参数传入进行分组。这样既保证了用户分组的随机性,同时保证了多个层之间的正交关系。
“常见流量分配策略对比”
3.业务接入
“业务接入便于在产品迭代优化的各个阶段整合A/B测试能力,对优化点做各种A/B测试。一般通过提供一个A/B测试SDK或者A/B测试RESTful接口的形式供业务方使用。接入模块需要做到高效易用,最好能够适用于产品上所有类型的A/B测试优化。
“业务接入目前主要有以下3种方式。”
(1)分离URL试验
“分离URL试验最终会在试验配置完成后生成两个不同URL,对应两个不同版本的页面。这种接入方式的优点是实现简单,数据采集也比较容易,正常的系统日志即可实现数据采集,但是需要做两套试验页面,对前端资源占用比较大。特别是在做同一个页面的多变量试验时,工作量会显著增大。”
(2)编程代码试验
“编程代码试验是通过在同一个页面内设计实验,但是会通过代码控制页面的展示,这种方式对系统复杂度有更高的要求,在试验配置完成后,需要生成相应的控制和埋点代码,并将代码复制埋入试验页面。由于是通过代码控制页面展示,数据采集需要有所调整,将试验参数也作为埋点采集的数据点。”
(3)可视化试验
“可视化试验是前面两种方式的结合,最主要的作用是降低了设计门槛。可视化试验在生成基础页面后,通过可视化页面编辑修改变量并保存后就可以生成不同试验版本,试验的参数通过URL参数带入。”
4.数据采集
“行为数据打点和数据收集通过记录用户在A/B测试模块中的行为,将用户的行为收集到数据中心,为最终确定新的优化点是否有效提供原始数据。”
5.结果分析
“对上传的日志进行数据清洗和数据分析,最后通过报表的形式进行展示。将采集的数据通过报表或可视化的形式展示出来,并给出效力、置信区间等指标(如果有样本选取过小,还应提示最小样本量)。另外,最好支持各类效果评估指标的扩展,可以将指标计算通用化、模块化,方便试验人员快速上线A/B测试,根据不同产品及A/B测试案例选择合适的指标。”
A/B测试系统设计方案
流程设计
A/B测试系统流程图
1)系统登录
2)填写项目信息
3)选择OEC指标
4)确定试验方式
5)设置各组占比
6)控制试验
7)采集试验数据
8)分析试验结果,生成试验报告
9)持续迭代
原型设计
(1)试验概览
“试验概览设计范例”
(2)试验管理
“试验管理设计范例”
(3)创建试验
“试验创建设计范例:步骤1”
子主题
““试验创建设计范例:步骤2”
子主题
“试验类型为下拉选项,选择试验是修改哪一类变量,比如Push、营销活动、文案素材等
“对于评判指标(OEC),目前出借端定义为出借率=出借人数/参与试验人数×100%。”
“试验创建设计范例:步骤3”
子主题
“试验创建设计范例:步骤4”
子主题
“试验创建设计范例:步骤5”
子主题
“在试验创建成功后,根据试验平台的设计会提供URL连接或者代码,需要将这些配置到要试验的页面或功能中,需要技术同事介入。
(4)试验执行
“单击“开始试验”按钮后,进入代码及URL验证阶段,验证通过后根据反馈即进入试验执行阶段,用户被正式分配给不同方案,同时数据采集系统或者日志系统会记录用户的后续行为,包含业务行为和操作行为。如果验证没有通过,需要重新验证代码或者URL的配置是否正确。”
(5)试验报告
“试验报告展现试验的进展情况,包括试验的基础信息、多少用户参与试验、各组占比、运行天数、开始时间、各组的指标情况以及结论。对于试验分析模块,如果有技术实力,可以实时更新;如果没有相应的资源,T+1更新也是能接受的。”
“试验报告设计范例”
0 条评论
下一页