一、前言
随着互联网的普及和移动互联网的爆发式增长,在经历了多年的高速发展后,增长速度逐渐放缓,偶尔出现的新互联网红利也逐渐消失。企业在进入平稳期后,竞争模式逐渐转变为存量竞争,往往难以通过功能迭代产生明显的收益。因此,小步快走的模式越来越受到欢迎。当产品的用户量级达到较高水平,如上千万或上亿,即使对每个用户的收益微乎其微,由于边际成本较低,仍然能够带来可观的总收益。
由于客观世界的复杂性,在进行产品改动或策略调整后,很难将指标的增长或下降归因于这些改动。ABTest通过随机化的方式将线上用户划分为两组流量,分别对这两组同质流量应用对照策略(control)和实验策略(treatment),收集用户的行为数据并生成指标,然后通过统计分析方法对比分析实验组相对于对照组是否存在收益,并对其进行量化。
在得物,实验文化非常浓厚,渗透到了几乎所有业务域,通过AB实验来验证策略的有效性和收益已经像吃饭睡觉一样自然。每个月有成百上千个实验被创建或者完成决策结束或推全。
在支撑实验能够规模化运行的过程中,得物实验平台也面临了多方面包括稳定性、性能、准确性的挑战,本文将为你带来得物AB实验平台数据驱动决策的实践。
二、读者收益
了解AB实验平台的基本概念
了解得物AB实验平台的技术原理和实践
了解得物AB实验平台中的数据科学原理和实践
三、实验平台简介
实验是什么
AB实验的本质:先圈定一部分用户,将其随机分配到不同分组中,并为这些分组提供不同的方案,例如这张图中,一个组是黑色播放按钮,另一个组是橘色播放按钮。对线上用户应用不同策略后,收集这些用户最终的数据结果,例如转化率的差异。通过对比不同方案的数据结果,确定选用哪种最优方案。
实验有什么用
了解了实验是什么后,我们来探讨一下为什么要做实验。
让我们来看一个例子,小A是一名资深产品经理,有一天他突发奇想,设计了一个天才的优化方案,并已启动开发和测试。一个月后,搜索点击量暴跌,老板质问道:“你在做什么?”
没有AB实验
小A:一定是因为大学生开学了。
老板:?
有AB实验
小A:我将用户分为旧样式和新样式两部分,在开学季,新样式的用户搜索点击率始终比旧样式高出5个点。
老板:做的不错。
从这里可以看出,AB实验有两个关键用途,且呈递进关系,即归因和量化。通过归因,我们可以确认预期效果是否由我们的改动导致,这是定性评估;通过量化,我们可以确定这个改动究竟提升了多少效果,这是定量评估。
做一个实验的步骤
接下来,将简要介绍目前平台的实验流程:
确定目标:第一步需要确定目标,根据业务团队的不同定位,目标也有所区别。例如,交易团队可能更关注UV价值、AOV和购买转化率,而社区团队可能更关注社区使用时长和留存率等。
提出假设:在确定目标之后,针对想要优化的目标,我们需要提出一个假设,即要做什么事情才能达成预设的目标。在提出假设之后,我们要基于该假设去设计实验,包括实验的对照组策略、对照组标题字体大小、实验组标题字体大小、实验覆盖的用户范围、实验的调用时机等。设计完成后,需要在AB平台上创建实验。
设计实验:创建完成后,进入实验开发阶段。实验开发和测试完成后,即可上线。
收集数据:实验上线后,进行灰度发布,并收集一段时间的数据。同时,我们还需要收集实验组和对照组的使用数据,以便最终对比指标差异。
结果分析:数据收集完成后,我们对实验组和对照组之间的数据差异进行分析,判断差异是正向还是负向,是统计显著还是不显著。结合不同指标的结果,我们进行实验决策,判断实验是结束、下线还是重新迭代。
四、得物实验平台技术原理和实践
在介绍了实验平台的基本概念和流程之后,接下来将介绍得物AB实验平台的技术原理和实践。
我们首先介绍平台的整体架构,以便大家对其有个大致的了解,然后介绍目前的实验接入和使用方式。接下来,我们将介绍实验平台中两个非常核心的模块:分流引擎和数据引擎,包括所面临的挑战、解决方案以及后续的规划。
整体架构
整体架构分为四个模块,自上而下分别为实验中台、分流引擎、数据处理和数据分析展示。
实验中台是公司内部员工使用的交互页面,用于创建、配置、查看和分析实验。中台左下角的分流引擎是实验平台的核心基础设置,其作用是根据用户特征将其划分到不同分组,并确定每个分组的值。
分流引擎为客户端、服务端和H5等不同流量来源提供服务。客户端的实验命中上报会通过网关统一收集到日志平台,然后再由日志平台将数据传输到Kafka进行处理。而服务端和H5来源的实验上报则会直接同步到Kafka。
在完成线上用户分流后,为了分析实验结果,需要对用户数据进行采集、加工和处理,主要包括流式数据处理和批量日志处理。处理完成后,将数据导入OLAP数据库。
在数据收集完成后,用户可以在实验平台上选择指标和时间范围进行数据分析。提交请求后,数据引擎将执行数据查询。数据查询可以基于明细数据进行异步查询,也可以基于预计算的数据进行同步查询。查询结果将由统计引擎负责计算p值、显著性、涨跌幅和指标值等统计指标。最终,将统计结果进行数据可视化,以实验报告或Excel的形式展示出来。
接入方式
从流量来源上区分,主要存在四种实验类型:客户端实验、服务端实验、普通H5实验、落地页链接实验。