AB实验,一般经常叫他的英文名,ABTest,是一种有效的对比测试方法。通过对比两个不同的方案,选择其中较好的结果作为决策依据。ABTest在自然科学与互联网行业领域经常被用于研究影响因素的效果优化以及不同条件下的优劣评估,是一种非常有效且严谨的实验方法。

这一回我想与大家分享的是对于ABTest功能设计的总结以及一些问题引发出的思考。谈及ABTest就不得不提及谷歌发布的《Overlapping Experiment Infrastructure: More, Better, Faster Experimentation》这篇论文,互联网行业中各类ABTest功能设计可以说是大多源自此文,因此在介绍ABTest一些功能设计基础时本文也将引用谷歌这篇论文介绍的内容。

那么话不多说,旅途开启。

一、ABTest简介

前文已简单提及ABTest的核心方法与作用。在互联网行业中,常用于软件亦或是网站功能的调优,通过抽样进行实验,来验证方案是否有提升。ABTest的原理其实并不难理解,保证除了需要实验的参数因素不变,观察实验中的两个方案各自的表现。从这里可以看出其实ABTest的本质就是控制变量法。

在互联网行业领域中,互联网产品的载体一般为软件或是网站,使用者为人。互联网产品的ABTest即为针对人的实验。

一次ABTest的流程,如下。

二、ABTest的功能设计

(一)实验评估指标的确定

实验的开始需要确认需要研究的命题,对于互联网产品而言,一般都是功能流程、界面元素衍生的行为效果优化以及探索性的效果分析。

在进行实验前,需要确认对于研究的命题,该用什么指标来评估实验的结果。这个会影响到实验中该制定怎样的实验方案。

现以网页或者软件中常见界面元素设计为例,在某个软件或网站的推广广告素材中,现在设计了一版新的下载引导按钮方案,如何定义结果效果呢?用数据数值来体现结果是非常直观的,所以将方案的结果定义为一个代表结果的指标,此时这个指标可以是下载引导按钮的人均点击次数。

实验评估指标的确定,需要严格地与命题相关,且必须要能代表实验流程的结果。

实验命题是研究新的下载引导按钮是否比现有的更好,则实验流程则是需要将分别引入到两个不同方案中,然后根据他们在不同方案中对按钮的点击事件进行埋点、事件上报,进而对数据进行对比分析。

(二)用户分流

实验方案是将用户分别引入到两个不同的方案中,为了保证实验的准确性,需要确保除了下载按钮的样式不同,其他因素诸如界面中其他元素、用户年龄、性别或地域等其他因素尽可能的在两个方案中相同。此时可以随机的将用户分入两个方案,即可相对的减少其他因素因偶然性集中,保证其他因素不会成为不平等的影响因素。

用户的分流是ABTest功能中非常重要的一步。这里结合谷歌论文《Overlapping Experiment Infrastructure: More, Better, Faster Experimentation》(下称谷歌论文)中的方法说明一下用户分流。

首先是用户流量的分配方式。用户分流,需要保证用户进入某个实验方案后,不会再进入另一个方案。一般来说一次AB实验,即分为实验组与对照组,实验组即体验到新方案的用户组,对照组则为保持旧方案的用户组,用新旧方案对比来观察效果。此时如果单纯的对用户进行简单的随机分配,则同一个用户可能会在不同时间进入实验组与对照组,让本次实验产生不具有参考性的行为。另一方面则是简单的随机分配如果将用户分配到两个不同的实验中,如果两个实验有一定的联系,则同样会对实验产生影响。

此时需要尽可能的保证用户分配时,保证以下两点。