一文读懂策略产品必须知道的AB&AA实验全流程
科学的AB实验在搜索、推荐以及广告系统中,是验证策略升级或者样式改版的重要收益评估手段,没有科学的AB实验构建就无法全量上线产品策略,更无法评估策略产品的核心工作价值。本文作者对AB实验的流程进行了分析,一起来看一下吧。
今天来继续更新一下策略产品经理在思维上的另一个重要思维方式——AB/AA实验思维。科学的AB实验在搜索、推荐以及广告系统中都是验证策略升级或者是样式改版的重要收益评估手段,没有科学的AB实验构建就无法全量上线我们的产品策略,更无法评估策略产品的核心工作价值。
因此,我希望帮助大家解答与回复策略产品面试当中的高频实验设计与实验回溯问题,如何培养AB实验思维,领路大家快速在策略产品领域成长。
一、什么是AA&AB Test实验——常见的实验分类
互联网无处不再的AB实验
1. 前言背景
如上图所示,这是目前各大互联网公司会经常对用户进行功能/交互样式进行实验的场景,会针对不同的分流人群进行样式A(当前页面)和样式B(升级后的页面)的效果验证,通过制定明确的实验指标,来进行一定周期的观察,通过科学的实验结果得到最后实验组中升级后页面是否可以带来平台目标增益,这个概念就是我们常说的AB实验。
AB和AA实验无论是策略产品还是C端B产品都经常会用到的效果评估工具,同时也是策略产品和算法产品功能和算法策略升级的工作价值验证手段。2000年,Google工程师将这一方法应用在互联网产品测试中,此后AB实验变得越来越重要,逐渐成为互联网产品运营迭代科学化、数据驱动增长的重要手段。无论是推荐系统在召回中多增加一路召回类型、修改归一化召回的比重,还是增加多目标排序优化方式,亦或者是前端创意样式的变更都离不开科学的AB实验验证。
2. 主流的实验分类
1)AA 实验法
AA实验的原理即是实验组和对照组的实验配置完全一样,通过前后周期(空跑期和试验期)验证测试本次实验效果的波动性和效果。一般AA实验会用在时间周期内(平日、大促期间)消费者用户或者是广告主行为的实验类型。
例如京东APP大促双十一空跑期和试验期未上线任何策略升级,希望验证京东消费者用户的人均曝光的商品数量(消费者更爱逛)、推荐位商品点击率等等。如果纯粹使用AA实验法则来验证策略和功能升级无法带来最直接置信的实验效果影响,因为最终实验会受到试验周期以及其他环境变化带来的影响无法带来置信的结果。
AA实验示意
2)AB 实验法
假设A为实验组,则B表示为对照组。一般表示实验组A实现了产品功能的变更/策略的升级对比对照组B(无功能/策略变更)得出本次实验的验证结论。AB Test验证可以是单一变量也可以同时有多变量实验。例如,在推荐系统中分别优化了一版召回模型策略+前端创意展示模型策略的叠加升级,点击率相较于对照组提升5%,这只能说明两者策略叠加带来了累计的效果,无法拆分出单独的排序模型策略和创意展示模型策略的结果,就不容易细化模型的效果(有可能是两者相互之间影响的结果)。
一般流量或者机器实验不紧张的情况下我们都会采用单一变量实验的法),保证最终AB结果的结果的置信程度。AB test实验阶段一般都是小流量实验(例如5%的流量桶),具体请求/用户uv数量视平台流量数据置信规模而定,在完成置信实验结果之后再对实验组功能策略完成推全。
二、以AB实验举例,策略产品搭建AB实验的流程
接下来我们以AB实验来举例详细介绍AB实验前中后的每一个步骤。
策略产品AB实验前中后全流程关键点说明
1. 实验前部分
1)确认实验目的
实验目的核心就是实验探究的核心内容。比如在上述案例中对于京东APP推荐位样式的改版对于用户行为的影响(比方说用户对于APP推荐位商品的浏览深度、点击商品数等等),这些行为会被量化成为客观的指标例如点击率CTR、人均曝光商品数,这个就需要结合实验观察核心指标来分析了。确认完成核心的实验目的,我们在考虑后续的实验变量内容、观察的指标以及如何做分流和最终的效果。
2)设计实验方案
设计实验方案是实验中是整个ABtest实验最为核心的部分,因为不科学的实验前置设计方案和依赖条件可能会导致AB实验结果的背道而驰。因此,设计实验方案核心关注包括选择实验观察指标、确定实验变量维度、规划流量分配、随机抽样算法、设定试验周期。
实验设计中的关键点
3)设计实验方案
为了全面衡量策略的效果,观察指标往往会设定“过程性指标”、“结果性指标”,过程性指标在实验过程中作为辅助评估置信或者最终效果达成辅助效果评估,结果性指标为最终结果目的指标,用来直接反应实验效果。这里我们来举个例子,如果我们检测一个广告平台出价模型调控策略最终是否能带来广告消耗cost的增长。
过程性指标:
- 辅助置信评估指标:需要关注到pv、click等指标量级,例如我们认为5%的流量桶需要达到1W 的click点击量才认为实验结果置信,才可以认为广告的CPC处于稳定状态。
- 辅助性效果达成指标:广告消耗cost是需要进行计算拆分的,其最终需要被拆分成PV * CPM/1000,或者是CPC*Click,那么CPC和CPM就会是辅助达成广告收入需要观察的指标,下钻分析CPM、CPC效果的提升多少。
结果性指标:最终为实验目的服务的核心指标,例如广告平台上线对应的出价策略就是希望能通过激进的出价算法能在客户ROI不变的情况下带来收入cost的增长,这就是最终实验的目标。
当然,在实际工作过程中,我们为了研究和证明策略探究的价值,往往在做实验假设的时候根据过往经验提前预估带来的效果提升范围,比如说点击率提升3~5%之间,粗估出价调控策略带来的影响。
4)设计实验方案
实验变量维度其实就是确认实验的确认实验组和对照组中不一致的功能或者策略,其中包含单一变量和多变量实验。
腾讯广告拆分对比实验工具示意
- 单一变量实验:指在整个实验中只存在唯一对照变更的策略和功能内容,不存在多个变量在整个实验的交织影响。例如广告出价方式策略用强化学习(RL)代替PID控制策略对于大盘ppc和预算使用的影响,此时便不会把创意或者定向优化策略也掺杂其中。
- 多变量实验(又称自由变量实验):指在实验中包含两个或者两个以上的变更策略和功能内容,对实验整体处于叠加交织影响,最终看的是多变量整体交叉带来的效果。但是多变量实验的弊端也非常明显,无法直接下钻分析具体某个策略的影响,最后实验负向也不知道是具体哪一块策略升级带来的效果,策略产品做实验中使用频次较少。
5)实验维度&规划流量分配
首先,我们来说说实验维度维度部分,规划维度包含请求展现pv维度和请求用户uv维度两种维度类型实验,两者之间的应用场景和分流特点如下所示。
实验维度分类
其次,我们来看看规划流量分配维度,在AB实验中,我们一般包含分流模型和分层模型两种类型规划全局流量。
分流模型实验和分层模型实验详解
- 分流实验:互联网最早的方式就是采用的分流模型,按流量桶的形式进行实验隔离,实验之间互斥。但是这种实验的弊端非常明显,因为流量桶不能无限分下去,对于互联网大厂字节抖音、阿里淘宝肯定每天都存在成千上百组策略、功能实验,如果都需要做分流模型实验再打的流量池也无法满足无限分桶的实验诉求。
- 分层模型:分层模型主要是在分流模型给的基础上,可以针对同一个用户的进行多个不同类型的实验,层与层之间的的流量相互正交,流量请求从实验B到实验C,从实验C到实验D都会被再次随机打散分配到不同的桶中,消除策略策略之间的叠加影响,假如每一层中80%的流量都用来正交,理论上实验分层可以无限分下去。
字节跳动副总裁杨震原在火山引擎技术开放日上描述到:“字节现在每天都会新增1500个实验,累计做了70万次实验”。如何在全局有限的流量下,充分利用流量,就会使用部分流量参加多个实验。利用流量分层模型,达到每层实验之间的互斥关系,保证实验A、实验B与实验C都不产生相互影响。
6)随机抽样算法
讲完如何分流和分层之后,怎么把流量pv或者用户uv分到对应的桶&层中就至关重要了。为什么这么说呢?举个简单例子,如果我们把淘宝88VIP高消费重度推荐位“闲逛”用户都分到实验组中,把低活跃低消费用户都放到了对照组中,然后在上线一个增加推荐系统新颖性的策略,实验结果是实验组的人均曝光商品数远高于对照组,得到策略生效,这个逻辑显然是错误的。因为人均商品曝光数是用户本身的差异属性带来的,而不是策略带来的。基于此,我们在实验中就诞生了以Hash分桶为核心的随机抽样算法,按照一定的规则分配到不同的实验组和对照组中,达到流量分配的比例。
Hash函数:将输入的 Key (这个key在大厂中一般将用户的设备device id或者是用户user id)散列为随机值(CR),依赖于 Hash 函数的特性来保证随机分流的均匀性。CR 的优点是速度快,大部分情况下均匀性能够满足要求。然而,缺点是在样本量有限的情况下,无法保证多个桶之间的结构是一致的。常见的Hash函数包含MD5、CRC、MurmurHash、CityHash以及SpookyHsh等,主要差异在于生成的散列值位数(32、64以及128bit)和性能适用于不同的场景和实验当中。
自适应分组算法:自适应分组算法利用已分配和当前待分配的样本,通过评估已分配样本的分组和结构情况,实时改变当前待分配样本对不同组的分配概率。主要是通过:
- 初始化分组样本:人群随机打乱,对于对当前2*K组个人进行随机分组,保证每个组至少有两个样本,然后开始Adaptive分组。
- 判断直接或者间接分配:算法计算各组已分配样本数和组所占比例之间的关系,得到各个组的平衡系数BS。如果各个组的比例平衡系数相差较大,则进行直接分配,以粗粒度的方式调整各组的分配比例。如果平衡系数相差不大,则使用接下来的指标分布计算,决定使用哪个组的间接分配概率。
- 计算分组与分配得分:算法计算将要分配的一个样本,如果分配到组k后,组k的指标分布得分MS_k,其中MS是根据ANOVA模型计算出来的每个组在各个观察指标上的均值和方差情况。通过比较各组的MS,选出向下偏离平均水平的组,并以该组的间接分配概率作为各个组本样本的分配概率。
7)确认实验周期
确认实验周期最为核心的点就是保证实验的置信度。
第一点,需要保证实验周期内累加的5%流量分桶的pv、uv流量能达到实验置信的门槛值,门槛值依据平台的推荐位整体流量大小而定,需要保证换算指标CTR、CVR或者ROI等,基础正向样本是达到置信门槛量级。(例如大厂的实验策略一般都是1~2周,可能流量偏少的中小厂则需要更长时间积累置信数据)
第二点,避免遇到电商618、双11大促流量徒增、或者是实验桶中用户行为波动的周期,如果实验周期安排在大促周期范围内,容易导致前期的抽样流量分组、客户分组失效,实验中的用户行为差异较大,会导致实验结果不置信的问题。
因此,确认实验周期需要根据平台和流量分桶百分比来确定实验周期的长短,其次还需要根据平台流量和营销活动的安排尽量避开流量波动幅度大(流量保障、流量暴跌),以及用户行为变化较大的周期,保证实验的平缓和置信程度。
2. 实验中部分
当AB实验上线后,我们需要紧密观测实验指标,判断实验实验小流量期间上线实验的平稳、效果波动问题,这个地方就需要和前文的实验假设效果部分相互 。我们可以从以下三个角度进行观察:
1)收集实验数据
AA实验情况:收集实验数据即需要观察实验AA组在空跑期、试验期间的变化幅度是否平稳,正常情况下应该不会出现明显的波动差异。如果出现明显的差异效果需要考虑是否随机抽样流量和用户采集有问题,应该查找原因并且暂停实验。否则实验组与对照组结果会存在不置信的问题。
AB实验情况:在实验周期前的参考周期(类似AA中的空跑期),关键实验目的指标保证平稳,实验期出现变化,如果本身参考期内实验组和对照组diff很大也与随机抽样算法有着偌大的关系。观察每一天实验组和对照组之间过程指标、关键指标的效果diff值是否符合预期。如果某些关键指标例如广告收入cost或者是人均消耗arpu出现明显下降问题也需要暂停实验。
2)保证实验平稳
用户/流量分桶情况:如果是用户维度的分桶实验保证每个桶的用户hash值具备唯一性。
新增实验正交不影响:需要时刻关注在你实验基础上的新增分层模型实验是否流量/用户正交,策略是否对你的实验效果产生明显的影响。
3. 实验后部分
1)量化评估实验结果
①平均值效果评估
实验结果评估中,较为常见的统计值计算就是平均值计算,例如我们一般看到广告策略实验组和对照组效果指标例如ctr/ppc的增长,只能代表统计概念的平均值效果,通过平均值可以得出映射在小流量实验扩全之后对大盘的平均值增益的影响。
②统计学显著评估
统计学上还有实验的显著值评估,一般用P值表示,其代表的意义是hash随机抽样分组后,实验组90%以上的用户相较于对照组的对比都是正向,在统计区间范围内都落在正向区间,这证明不光平均值正向,并且实验结果在离散统计概念上都是正向的,这个就是我们所说的策略AB实验中的24K纯正向效果。
2)小流量实验部分推全与“Hold back”预留
实验部分推全:前面的平均值和统计值如果评估正向,一般会走公司集团内部的审批,通过邮件的形式、审批流程的形式完成对相关方的周知,就会对5%小流量进行策略进行线上全量,使得实验策略能够对平台的每一次流量请求/用户都可以生效。
长期Holdback预留:但是在推全前都会预留一个小流量实验桶,我们叫Hold back,该实验会保持长周期的观察例如一个月的稳定观察,排除因为时间周期或者其他因素带来的实验干扰,同时也便于后续线上问题、事故进行回退,长周期正向效果验证完成后即可进行真正的推全。
三、关于AB/AA实验的总结
撰写本文的出发点是基于目前业界对于专业从头到尾详尽的AB实验流程,思考的文章介绍的偏少,而科学的AB实验是策略产品经理在日常工作中验证策略带来的业务收益重要手段,所以作者从自己过往工作经历、总结思考出对于策略产品科学AA和AB实验的全流程,帮助大家了解科学AA&AB实验的过程。
无论是晋升答辩、跳槽面试,AB实验得到的置信结果一定都是绕不开的重要话题,也是压力面试最喜欢的切入点,因为这是对策略产品价值产出的标尺和裁判员,策略产品协同算法对于策略&功能升级的价值产出需要通过实验得到最终的结果,希望所有策略产品都清晰的熟知关于AA和AB实验的全流程。
本文由 @策略产品Arthur 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash,基于 CC0 协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
感兴趣策略产品可关注作者主页的薇进行交流
学到了
感谢回复 欢迎多多交流