惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
大猫的无限游戏
大猫的无限游戏
Hugging Face - Blog
Hugging Face - Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Vercel News
Vercel News
人人都是产品经理
人人都是产品经理
G
Google Developers Blog
WordPress大学
WordPress大学
S
SegmentFault 最新的问题
雷峰网
雷峰网
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Jina AI
Jina AI
博客园 - 叶小钗
D
DataBreaches.Net
D
Docker
月光博客
月光博客
博客园 - 司徒正美
Last Week in AI
Last Week in AI
有赞技术团队
有赞技术团队
腾讯CDC
酷 壳 – CoolShell
酷 壳 – CoolShell

人人都是产品经理

为什么你的产品找不到差异化?90%的失败都卡在第一步上(下) – 人人都是产品经理, 3年从30万到1300万用户、获2200万美元融资,这个AI教育产品用“抽卡”破解了获客难题 – 人人都是产品经理, 园区招商系统怎么做才能真正帮到去化?我加了这一个功能,推广链接转发400次阅读过万 – 人人都是产品经理, AI大事件:OpenAI发完网络安全模型又搞药物研发,小鹏汽车要抓”DeepSeek时刻” – 人人都是产品经理, 电商不是卖货,是一场更残酷的产品经理实战 – 人人都是产品经理, 没想到,活动营销又回来了! – 人人都是产品经理, 为何All-in海外KOC:一场关于AI时代窗口期的豪赌 – 人人都是产品经理, 重新理解企业的内部协作 – 人人都是产品经理, 苹果的 AI 战略到底是什么? – 人人都是产品经理, 医疗智能体·第2讲——合规护城河:等保、PIPL与HIPAA的架构实战 – 人人都是产品经理, 向量知识库五步法:从“答非所问”到“精准回复” – 人人都是产品经理, 鸿蒙PC三方库构建总指挥HPKBUILD(sha)库为例 – 人人都是产品经理, 何时该用LLM?AI产品经理的LLM设计指南 – 人人都是产品经理, 医疗信息领域的需求方、决策方、准入方以及关注点(二) – 人人都是产品经理, 即梦涨价:一场被误读的「傲慢」 – 人人都是产品经理, 面试AI PM必答题:Hermes和OpenClaw的区别,如何讲清楚业务价值 – 人人都是产品经理, AI的下一张船票:世界模型——AI产品经理必须理解的技术拐点 – 人人都是产品经理, 小红书做GEO,怎么让AI信你?记住这 3 个重要信息 – 人人都是产品经理, 5 家印度 AI 初创公司,看看印度 AI 再做什么 – 人人都是产品经理, AI项目跨团队协作:产品技术业务如何不打架 – 人人都是产品经理, Agentic Workflow(智能体工作流):让AI从”答案生成器”变成”数字员工” – 人人都是产品经理, lycium_plusplus 项目全景解读:OpenHarmony 三方库构建的“大管家” – 人人都是产品经理, 从爆单救火到前置履约:两套预采策略,把生鲜大促履约效率拉满 – 人人都是产品经理, 什么时候该补货?我用一轮数据做了一个决定 – 人人都是产品经理, 从“机械兜底”到“动态分流”:AI客服重复进线治理的4大底层逻辑 – 人人都是产品经理, 抖音拼效率,红书拼洞察 – 人人都是产品经理, 全民狂欢与退潮——为什么龙虾这波热潮冷却得如此之快? – 人人都是产品经理, Stripe押注!MPP重塑全球支付 – 人人都是产品经理, 小红书GEO:AI引用你的内容,不是因为你对,而是因为你看起来可信 – 人人都是产品经理, 前百度副总裁押注办公Agent,日韩付费爆发,Manus迎来强劲对手 – 人人都是产品经理,
策略产品经理必读系列—第二讲AA & AB Test最全介绍
搜广推策略James · 2022-08-04 · via 人人都是产品经理

导读:网络上有很多介绍AB Test的文章,大部分介绍分层、分流、正交就结束了。实际工作中作为一个策略产品经理需要熟悉AB Test的各种实验类型、分流策略、分层策略等,不是简单了解什么是分层实验就可以的。本篇将结合工作中的实践经验为大家详细介绍一个AB Test实验从最初实验策略设计,分流,再到实验上线以及最终的效果观察,全流程详细展开介绍。

一、综述AA 和 AB Test实验

实验机制其实一共是有两种的,AB Test和AA Test。

AB Test:

A为实验组,B为对照组。A对比B得出本次实验的效果结论。很多文章说AB Test只能是单一实验变量,其实AB Test也可以有多变量。

比如在推荐系统里分别优化了一版召回模型 + 排序模型。希望同时观察这两个模型叠加后的效果,那么实验组就会存在两个变量,对照组就为原先的召回+排序模型。当然这种情况比较少见,如果两个变量CD之间会相互产生影响,一般是第一个变量C先做AB Test实验,确定效果正向后,将实验全量后再对第二个变量D进行AB Test实验。两个变量叠加在一起很难去分别评估每个变量对实验效果造成的影响。

AA Test:

除了AB实验,其实还有AA实验。

AA实验就是实验组和对照组的实验配置完全一样,主要为了测试本次实验效果的波动性。在保证AA实验随机分流的情况下,理论上AA实验效果之间的差异应该是很小的,但如果实验效果差异很大,说明本次实验变量本身的效果波动就较大,原先AB 实验的效果也不够置信。

不过现实中我们很少做AA实验,当我们发现AB实验效果比较波动时一般的做法就是多观察一段时间,等待实验效果稳定。如果长时间试验效果还是很波动,就需要确定实验分流是否存在问题,正常一个变量只要不是随机产生结果,实验效果一定是稳定的,不管是稳定正向还是负向。

同时AB Test实验确定A实验效果正向后,我们会将A实验策略在线上推全,但仍然会在线上再保留一个对照组继续观察一段时间,比如推全的流量是95%,剩余5%再继续作为对照组持续观察一段时间,这种一般叫做“Hold Back”。因为AB Test实验阶段一般都是小流量实验,A组5%流量,B组5%流量。我们需要再观察一下在大流量的情况下A组的实验效果是否仍然和小流量实验时一致。

二、AB Test实验完整机制

下面我们详细地介绍AB Test实验的每一个步骤。

2.1 第一步确定实验目的

做实验一定有目的,我们本次做实验的目的是什么?是希望验证新模型的对于用户点击效果还是验证新交互样式的对于用户停留时长的效果?目的明确了才能决定后续的实验变量、观察指标、分流维度和实验类型以及如何综合评估实验的效果。

2.2 第二步确定实验变量

实验目的明确后也就确定了实验的变量,本次实验是希望只观察推荐系统里新召回模型的效果,那么实验组A就是新召回模型,实验组B就是老召回模型。元气森林推出了6款不同口味的新饮料,针对不同口味又有三款不同的容量,以及两款不同的包装样式,元气森林希望测试哪一款最受用户欢迎。

那么在这个实验中就会存在三个变量“口味”、“容量”和“包装样式”,最终就需要 6 * 3 * 2=36 组实验,不需要专门的对照组,每组既是实验组也是其他组的对照组。

2.3 第三步确定实验观察指标

实验目的和变量确定以后下一步就是明确通过哪些指标来衡量实验的效果。比如Part2.2里面测试推荐系统新召回模型的效果,该试验观察的指标主要是点击率CTR,但同时还需要去关注用户浏览深度和CVR的变化。所以在实验中我们会有一个核心的观察指标,但也会有很多其他辅助观察指标。

当这些指标之间效果出现反向时,比如新召回模型上线后实验组对比对照组CTR +3%,但浏览深度-0.3%,CVR-1.5%。这时就需要综合评估该模型的效果,一般需要算法拉上业务方综合评估,该推荐场域主要的KPI是CTR还是CVR,或者二者的占比是。最终决定该模型要不要推全量。同时实验观察指标确定以后也需要确保线上有对应的埋点,不然无法统计实验效果。

2.4 第四步确定分流维度

实验组和对照组的流量基于什么来进行随机分流,是基于用户维度还是请求维度。

用户维度:

在用户层面将实验组流量和对照组流量区分开,位于实验组的用户接下来的一段时间都是在实验策略里;不管新策略的用户体验是好还是差;

请求维度:

在请求层面将实验组流量和对照组流量区分开,单个用户打开该模块时不同时间不同请求时,可能是新策略也可能是旧策略,一个用户既可以体验到新策略又能体验到旧策略;

两种分流维度决定适用的实验场景不一样:基于用户维度的适用于所有涉及到用户接触到样式、交互、视觉效果等变化的实验。一方面不希望影响到太多用户,另一方面样式等变化用户需要适应一段时间后才能反馈出真正的效果;基于请求维度的适用于所有的模型策略实验,接近于底层的策略均可按照请求维度进行分流。

比如推荐系统、搜索引擎等的策略优化;适用于“请求维度”的实验也可以用“用户维度”进行分流,但是反过来不适用。

这里面还有几个点需要注意:

基于用户维度分流实验中的异常ID:

当我们将X%的用户固定分到实验流量中,如果里面有某些用户ID行为异常活跃,这些异常ID对于实验策略的反馈可能会影响到整体实验效果的评估。

比如某些用户ID一天登陆APP上百次,点击推荐模块上千次,那么这些数据就将会影响到整体效果。当然这种用户ID一般是外部爬虫ID或者作弊ID,需要反作弊部门识别出来剔除掉。还有另外一种处理方式就是将效果进行平均化,计算公式如下图:

即使经过平均化我们仍然可以发现对于实验效果还是产生了一定影响,当然实验用户量庞大的情况下会对异常值更加稀释。不过这种异常ID最好的方式就是从实验结果中剔除掉。

实验组和对照组的流量比例:

本身实验组和对照组的流量不存在固定比例,或者什么比例是合适的。但是需要保证实验组和对照组的流量都是充分的,实验结果都是置信的。实验组10%流量,对照组1%流量都可以,只要1%流量实验阶段可以积累足够的数据即可。

Hash分桶:

上面一直介绍基于用户和请求维度来分流,那么一个用户或者请求到底是归到实验组里还是对照组里了。一般我们都是基于Hash算法,为每个用户(user-id)或每次请求(request-id)生成一个hash值,然后将位于指定范围的hash值分向一个桶。实验开始前确定哪些桶属于实验组,哪些属于对照组。

2.5 第五步确定实验类型

第五步也是最关键的一步也就是确定实验类型了,实验类型从大的方向来说分为两种:物理实验和分层实验。两种实验对应的是两种分流方式:互斥和正交。我们用下图来表示差异:

物理实验:

最开始做实验的方式都是物理实验的方式,当一部分被分到了实验A中以后,该部分流量就无法在被其他实验使用,如上图“域一”,实验之间的流量是互斥的,三组实验加起来的流量总和是15%。这种分流方式导致同时线上实验数很有限,如果每组实验5%流量,同时只能做20组实验。但是像淘宝字节这种大公司,同时线上几百上千个实验很正常,这种做实验的方式肯定不满足需求。

分层实验:

谷歌提出了一种新的实验分流方式(原文《Overlapping Experiment Infrastructure:More, Better, Faster Experimentation》):正交。每个独立实验为一层,层与层之间流量是正交的,一份流量穿越每层实验时,都会再次随机打散,如上图“域二”,上一层实验对下一层不会产生任何影响,因为流量被均匀随机打散了,每一层实验的流量都是85%。分层实验的个数理论上是无限的。

联合层实验:

分层实验理论上层与层之间需要将流量随机打散,但有些情况下我们希望将层与层之间的策略联动,比如上图D-1和E-1的策略联动,D-2和E-2的策略联动,D-3和E-3的策略联动,这个时候就需要将D-1实验标签和E-1实验标签关联起来,确保经过D-1的流量全部打到E-1的实验桶里面。

适用场景:

物理实验适用于任何场景,但此种实验方式实验数量上限有限,公司一般会切出部分域专门做物理实验,剩余流量做分层实验。有些场景只能做物理实验,不能和其他实验掺杂在一起,尤其是涉及到系统性能评估等的实验,需要排除一切外在影响确保实验不受任何干扰。分层实验可以同时做大量线上实验,适合那些业务之间彼此独立没有影响的场景,如果层与层之间的实验是有影响的,此种情况建议在同一层进行实验。

2.6 第六步上线实验&查看实验效果

实验上线:

当我们将实验所有准备工作都确定完以后,就是在实验平台上线实验了。实验平台会下发实验组和对照组的实验标签,后续根据该实验标签查看对应实验的效果;

实验观察时长:

正常情况下都需要观察3个工作日左右,尤其对于那种实验效果前期比较波动的需要观察更长的时间。但如果实验效果长期波动不稳定就需要确定实验的分流方式是否存在问题。

以上就是对AA & AB Test的全面介绍,欢迎大家沟通交流~

本文由 @King James 原创发布于人人都是产品经理。未经许可,禁止转载。

题图来自 Unsplash,基于 CC0 协议