最近一段时间在负责公司AB测试平台的建设过程中,调研了很多竞品的通用做法,其中涉及到的数据整体解决方案,包括AB测试数据采集与数仓模型、AB测试指标建设、AB测试可视化方案等,借此机会我把自己总结下来的经验分享给大家。
01
什么是AB测试
在互联网领域,AB测试常指一种迭代方法,这种方法可以指导如何改进现有产品或者服务。以提高某个产品注册页面转化率为例,AB测试过程中,我们会设计新的注册页面,和原页面相比,展示位置不同。选择用来测试的用户,让一部分用户进入新的注册页面,另一部分用户进入原注册页面。通过比较两个注册页面最终的转化,来判断新的展示位置是否可以提升注册转化率。如果新注册页面转化率高,让所有用户都进入新的注册页面,完成产品注册页面功能的改进。
以上就是一个利用AB测试迭代产品功能的具体应用,总结起来AB测试主要有以下几个步骤:
1)分析业务现状,提出目标。通过分析业务数据,确定当前最关键的改进点,明确改进的目标;
2)设计优化改进方案。设计AB测试方案的产品原型,并完成相关功能的开发和上线;
3)线上控制流量比例。制定每个测试分支的流量比例,按照分流比例开放线上流量进行测试;
4)测试效果评估并决策。AB测试进行一段时间后,通过数据对比,对AB测试分支进行显著性检验,确定最终测试结论。
02
AB测试平台的诞生
一个完整AB测试过程,会涉及产品、开发、数据部门等角色,需要合作的人员较多,环节较复杂。对于一个之前没接触AB测试的人,熟悉其中的原理并完整的实施一个AB测试有比较大的难度。在一个中大型公司,每天进行的AB测试的数量可能达到几百上千个,非常依赖一个AB测试平台,需要平台降低每个AB测试的实施门槛,并通过自动化的工具提升每个步骤的效率。
从平台能力复用的角度分析,一个公司内产品的不同模块可能都会有不同的团队负责,对应不同的工程。每个产品模块进行AB测试,如果能有一个统一的AB测试平台提供能力,可以有效避免各个模块重复建设。
基于提效和复用的目的,一般公司都会组建一个团队,可能是数据团队,也可能是某一个业务团队,负责AB测试平台的建设,支持所有业务的AB测试需求。
03
AB测试平台的功能架构
AB测试平台由三个大的模块构成,包括AB测试配置管理、在线分流服务模块、效果评估模块。
AB测试配置管理后台,主要是用于管理每个AB测试需求,提供操作界面便捷的快速调整每个测试配置。
在线分流服务模块,为每个业务提供基于用户标识进行均匀分流的能力,并完成分流信息的数据采集。
效果评估模块,基于采集的用户行为数据,建设测试指标体系,为业务提供监控预警和数据分析服务。
04
AB测试数据采集
在设计公司内部AB测试平台的数据采集方案时,我们经历过两个阶段,我们将之命名为“客户端埋点”和“服务端埋点”。
我们刚推出AB测试平台时,采用的是客户端埋点。具体方案是让接入平台的业务模块,在上报用户行为埋点时,传入用户AB测试信息。以便在效果评估阶段,根据上报数据统计出不同AB测试分支的行为数据。
因为这种方案需要业务模块一次性从AB测试平台获取所有实验信息,并传入到埋点采集的公参中,对业务有比较大的侵入。
第二个阶段,是我们提出的服务端埋点的解决方案。具体是由AB测试平台完成用户分流日志的采集,业务模块只负责采集用户行为数据。在数仓分析阶段,通过采集的分流日志中用户标识完成数据匹配。这样的好处,是业务模块无需在数据采集时添加AB测试信息。
客户端埋点方案的优点很明显,因为原始日志有AB测试信息,数据清洗统计时比较方便。但是缺点是会增加客户端的工作,在数据上报时需要拼接AB测试信息。线上同时运行的AB测试很多时,拼接上报的埋点数据时,url可能过长,存在被截断的风险。
服务端埋点方案的优点是,AB测试平台和业务客户端各自完成日志上报,且客户端只关心自己命中的策略及业务逻辑处理,与业务无关的事情涉及较少。缺点是原始日志需要进行用户标识进行关联,关联的逻辑不固定,增加了数仓建模的复杂度。
考虑到让平台能够快速推广给业务使用,降低业务接入门槛,我们采用了“服务端埋点”这种方案。
05
AB测试指标体系建设
我们在建设AB测试指标体系时,主要有两种应用场景:AB测试分流均匀性校验和AB测试效果评估。
· 均匀性校验
AB测试是基于用户标识的流量划分,底层原理是通过hash算法进行分流的。
hash(ID,layer)%100
hash算法有2个重要的特性:均匀性和一致性。
均匀性:是指流量唯一标识进行上述取模计算后均匀地落在每个区间。例如,将全站流量分成100份,那么ID%100的值为0~99,必须做到每个值分配的流量几乎相同。
一致性:是指某个流量唯一标识取模的值是一定的。例如某个流量的唯一标识符经过算法模块取模后的值为1,那么下次再经过算法取模的值还是1。
AB测试过程中,分流的目标是确保分流后的不同人群,人群对应的用户属性和用户行为一致。虽然hash算法分流,可以做到尾号号段分布均匀,但实际过程中是不一定能确保用户均匀的。我们经常遇到,因为存在不少异常用户,导致hash分流后,两组人群存在显著差异的场景,最终导致测试结论无法得出,白白浪费了时间。
所以我们的业务在AB测试过程中,会进行均匀性校验。通常的做法,是验证分流人群实验前在业务核心指标上无显著性差异。
针对以上诉求,AB测试平台提供了两个场景下的均匀性校验功能:
-
AB测试确定分流策略时,计算过去一周每种策略,在选定的核心指标上,是否存在显著差异;
-
AB测试运行一段时间后,根据每个分支分流的真实用户,计算其在选定的核心指标上,是否存在显著差异。
· 核心指标建设
效果评估指标分为业务核心指标和临时性指标。业务核心指标,指每个AB测试,都需要观察的指标。临时性指标,指当前模块的测试需要观察的指标,其他模块不需要观察。
一个公司的业务很多时,所有的业务核心指标无法都由AB测试平台来建设。这个时候需要联合业务的数据团队一起建设业务核心指标。
作为AB测试平台需要协同指标管理平台、数据开发平台、BI可视化平台为各个业务的数据团队提供核心指标接入的能力。具体功能有以下几个模块:
1)对接指标管理平台,获取业务核心指标范围,及指标元数据(指标名称,业务口径,指标类型,数据源,计算逻辑等信息);
2)对接数据开发平台,根据核心指标计算逻辑,生成计算任务,负责产出每个AB分支核心指标计算结果
3)对接BI可视化平台,将每个AB分支的核心指标结果和显著性等结论呈现出来。
对于用户而言,从AB测试需求的创建到最终效果评估,能在一个平台完成,是一件美妙的事情。
可将实验分为互斥流量实验和正交流量实验,分别对应下图中的实验1和实验2。实验类型一句话特点介绍优点缺点互斥流量实验(随机实验)将流量随机的分配到某个组上进行实验1.请求只会获得到一个组的结果 2. 可认为是只有一层的正交流量实验1. 实验简单,在做数据分析时,只需要对比所有互斥实验即可1.由于组之间流量互斥,100的流量所分的组是有限的。2. 若所有运行中实验把流量占满后, 将无法在同一个流量入口下再新增实验,将影响业务的
AB
推进正交流量实验。
was
ab
i
Was
ab
i A/B Testing service is an open source project that is no longer under active development or being supported
更多技术交流、求职机会,欢迎关注A/B
测试
是在相同的环境下,通过随机的抽样把对照组和控制组进行区分,并分别实行新旧两种策略,结合一定的统计方法来控制随机抽样中带来的随机误差,得出两种策略的对比情况,从而可以准确的对新策略效果进行评估。A/B
测试
具有小流量、低风险、抗干扰的特点,随机控制变量并对结果进行量化,以达到准确的评估效果,具有科学性和严谨性。目前 A/B
测试
可以通过一些实验
平台
来进行大规模应用,通过统计策略的评估方法进行因果推断的新标准。
美团
AB
平台
-Gemi:《美团机器学习实践》第17章
云测
AB
实验:https://testin.cn/(内测版本已关闭)
贝壳流量实验
平台
-Athena:https://www.jianshu.com/p/79d31a72978f
腾讯实验
平台
:https://
ab
test.qq.com/
京东商户实验
平台
:http://aiceshi.shop.jd.com
1.2
平台
架构
1.2.1 架构设计图
实验管理涉及样本计算和
测试
结果分析,如T检验和Z检验,确保实验结果的科学性和可靠性。贝壳
AB
实验通过科学的分流模型和数据统计方法,衡量产品功能、UI设计、算法、策略、性能优化的关键指标效果。
AB
测试
作为一种科学的实验方法,通过比较不同版本的产品功能、UI设计、算法等,帮助企业做出数据驱动的决策。此外,实验评估报告、小流量产品
AB
实验方案和埋点
测试
平台
的发展也是重要方向。埋点开发方式多样,包括代码埋点、全埋点、可视化埋点和服务器埋点,以满足不同业务和场景的需求。
作者:livan来源:数据python与算法Hash分流介绍分流的方式有很多种,笔者这次来和大家聊一下Hash算法如何实现分流,Hash算法在融合MD5算法后,可以实现运算结果几乎不重复...
在得物,实验文化非常浓厚,渗透到了几乎所有业务域,通过
AB
实验来验证策略的有效性和收益已经像吃饭睡觉一样自然。每个月有成百上千个实验被创建或者完成决策结束或推全。在支撑实验能够规模化运行的过程中,得物实验
平台
也面临了多方面包括稳定性、性能、准确性的挑战,本文将为你带来得物
AB
实验
平台
数据驱动决策的实践。
实证中由于不可能同时观测到同一群体在不同策略下的两种潜在结果,无法决定哪个策略胜出,需要构建一个反
事
实(Counterfactual)用来代表接受策略B的群体在接受A策略时的潜在结果。具体来讲,构建一个与实验组群体特征均值无差异的对照组,用其观测结果代表实验组群体在施加A策略时的潜在结果,此时两种结果的均值差便是策略效应大小。由于是基于样本的观测数据得出的结论,需要通过显著性分析(Significance Test),以证明结论具有统计意义,这便是策略评估的完整路径。
对于A/B
测试
来说能够快速且正确地拿到用户反馈和数据,就意味着能够拥有更多的先机和决策可能。一个用户可见更改的优化类实验,例如对比不同文案或内容样式效果的实验,通过常规的参数实验方式来进行的话流程如下: