AB实验的真相:你以为的数据驱动,其实是数据背书

博客分类: 

先说一个我在做推荐系统 AB 实验架构时观察到的现象。

某个业务团队跑了一个月的实验,结论是新的推荐策略效果显著,CTR 提升了 12%,上线。三个月后回头看,整体转化率没变——用户只是提前点了,没有多买。没人复盘这件事,因为所有人都已经在那个"12% CTR 提升"的实验报告上签了字。

这不是个例。在金融产品场景里,我见过太多 AB 实验的结果被当作结论使用,而实验本身的设计、指标选择、对照组偏差,几乎没人认真审视。大家需要的不是真相,是一个可以写进周报的数字。

 

数据驱动这个词已经被用烂了

 

每家公司都说自己是数据驱动的。但如果你仔细看他们做决策的过程,会发现一个很典型的模式:先有结论,再做实验。

产品经理已经有了想法,设计已经出了方案,开发已经排了迭代——实验只是最后的"验证"。注意,不是"验证假设",是"验证决策"。这两者有本质区别。验证假设的时候你真心想知道答案,验证决策的时候你只想要一个通过。

这种心态不是某个人有问题,是整个系统的激励结构决定的。一个做了三个月的项目,谁愿意在最后一步承认实验结果不支持上线?于是你会看到各种"实验结果不显著但趋势向好"、"主要指标未达显著但次要指标表现优异"的结论。翻译成人话就是:实验没通过,但我们还是要上。

我在搭 AB 实验平台的时候就发现一个规律——实验通过率高的团队,不一定是最会做实验的团队,而是最会选指标的团队。你知道的指标够多,总能找到一个是涨的。

 

指标选择才是最大的黑箱

 

AB 实验最容易出问题的地方不是样本量,不是显著性检验,而是你要衡量什么。

在理财产品场景里,这个问题尤其尖锐。你想提升用户的理财转化率,直接指标是购买人数和购买金额。但一个把高风险产品推荐给保守型用户的策略,可能在短期内拉高转化率——因为用户被"诱惑"了。长期呢?用户亏损后信任崩塌,直接流失。这个长期损失你的 AB 实验根本测不出来,因为实验周期通常只有两到四周。

这就引出了 AB 实验的第一层幻觉:你选的指标决定了你能看到什么结果

CTR 上升了,但停留时间下降了呢?转化率提升了,但退货率也涨了呢?客单价提高了,但复购率跌了呢?每个"正向结果"背后都可能藏着一个你选择忽略的负向指标。而大多数团队在做实验的时候,主指标是提前定好的,但辅助指标和护栏指标往往是事后补的——哪个好看就报哪个。

更微妙的是,指标之间经常互相关联。在金融产品里,提额可能带动交易量,但同时会增加风控敞口。你的 AB 实验如果只看交易侧指标,会觉得提额策略完美。等坏账数据出来,可能已经是季度之后的事了。

 

流量分配的隐形偏见

 

AB 实验的一个基本假设是:实验组和对照组的用户是同质的。这个假设在很多场景下都不成立。

新用户和老用户对同一个策略的反应能一样吗?安卓用户和 iOS 用户的消费行为能一样吗?工作日和周末的转化模式能一样吗?大部分团队在做实验的时候,流量分配是均匀的,但分析结果的时候就看整体——把所有异质性都抹平了。

我见过一个典型案例:某个运营弹窗策略在 AB 实验中转化率提升了 8%。拆开来看,新用户提升了 22%,老用户下降了 6%。但 8% 的整体数据被报上去了,"验证"了策略的有效性。老用户那边的情况没人提,因为整体是正的。

等这个策略全量上线后,老用户的活跃度开始慢慢下滑。但下滑的原因不好归因——谁知道是弹窗的问题,还是产品本身的问题,还是季节性波动?因果链条断掉了。

还有一个更隐蔽的问题:参与实验的用户本身就不是随机的。能被分到实验组且实际触达的用户,和那些触达不了的流失用户,本身就有系统性差异。你测的不是"策略效果",是"策略对能触达的用户的效果"。这个前提条件经常被忽略。

 

显著性不等于重要性

 

统计显著性可能是 AB 实验中被误用最严重的概念。

p < 0.05 说的是"如果策略没有效果,观察到当前结果的概率小于 5%"。它说的是观测数据不像是随机波动产生的,仅此而已。它不等同于"策略有实际意义",更不等同于"策略值得上线"。

一个日活百万的产品,你把按钮颜色改一下,CTA 点击率从 3.12% 涨到 3.15%,p 值可能就小于 0.05 了——因为样本量足够大,任何微小的差异都能达到统计显著。但 0.03% 的提升有实际意义吗?用户无感,业务无感,只有实验报表上多了一行"显著"。

反过来的情况更值得警惕:样本量不够的时候,真正有效的策略可能因为 p > 0.05 被否掉。特别是金融产品里很多效果是滞后的、渐进的,前期数据可能看不出差异。如果你急着要结论,等到 p 值刚过线就停实验——恭喜,你完美实现了选择性报告。

还有一个常见的操作:先跑两周,不显著就再跑一周,还不显著就再跑一周,跑到显著为止。这不叫实验,这叫 p-hacking。你多跑几轮,总能碰上某个时间段数据恰好是正的。

 

对照组的困境

 

好的 AB 实验需要一个"干净"的对照组。但现实是,对照组越来越不干净了。

你的产品在同时跑五六个实验,用户可能同时被分入三四个实验组。实验之间可能存在交互效应——实验 A 的效果在有实验 B 的情况下会不同。这种交叉污染在流量越大、实验越频繁的团队里越严重。

有些团队用互斥域来解决这个问题,把流量切成互不干扰的几块。但互斥域本身就限制了你能同时跑的实验数量,于是排队等流量成了新的瓶颈。等排到的时候,业务方可能已经等不及了,直接给你来个"先上再测"——这连实验都不是了。

金融场景还有更特殊的约束。你不能把用户随机分到"高风险产品"组,合规不允许。你不能给一部分用户更高的利率,监管不允许。很多策略天然就不能做 AB 实验,因为它们涉及差异化对待。但业务方又不甘心不做实验,于是各种变通方案登场——用历史数据做"伪实验"、选小范围灰度当作对照组、拿不同时段的数据对比。这些方法一个个都有方法论上的硬伤,但报告依然写得漂漂亮亮。

 

实验成本的真实账单

 

AB 实验不是免费的。这是我见过的最大的认知盲区。

表面上的成本是开发资源:实验分组逻辑、指标埋点、数据清洗、报表开发。但真正的成本在隐性层面。

时间成本:一个实验跑两周,分析一周,决策一周。一个月过去了。这一个月里,你的竞争对手可能已经迭代了两个版本。在某些业务场景下,等待实验结论的机会成本远大于做错误决策的损失。

流量成本:50% 的流量分给对照组,你说这些流量不是浪费了吗?背后的逻辑是"对照组的损失是获得知识的代价"。但如果你同时有 10 个实验在跑,每个分走 10% 的流量,有效创新流量可能只剩 20%。不创新的那 80% 流量,产出的都是沉没成本。

组织成本:这个没人算过。实验文化本意是让决策更客观,但实际执行中往往催生了一个"实验审批-等待-争论"的冗长流程。产品经理学会了一个新技能:学会包装需求让它"看起来能做实验"。开发学会了另一个技能:给代码加满 Feature Flag 等实验结论——然后永远不清理这些 Flag。

Feature Flag 的泛滥是一个被低估的问题。每一面 Feature Flag 都是一条代码里的分支,每一面都是技术债务的种子。我见过一个项目的 Feature Flag 数量比开发人数还多,没人敢清理,因为没人确定哪面 Flag 还在"实验中"。实验是做完了,Flag 永远留下了。

 

什么情况下 AB 实验真的有用

 

我不是在说 AB 实验没用。恰恰相反,在合适的场景下,它是最有力的决策工具。但"合适"这个词被滥用了。

AB 实验有效的前提条件,大部分团队其实不满足:

效果要可量化且即时。按钮颜色、文案措辞、页面布局——这些变量效果可测、反馈即时,实验有意义。但品牌建设、用户信任、长期留存——这些变量效果滞后、难以归因,实验测不准。

规模要够大。日活不到一万的产品,跑两个月都不一定能达到统计显著。小规模团队做 AB 实验,大概率是在浪费时间。你真正需要的是定性研究——和 20 个用户聊一小时,比跑两个月实验得到的信息多。

策略效果要独立。如果你的实验策略会和其他正在运行的东西产生交互,你测出来的就不是策略效果,是某个特定组合的效果,换一个组合结果可能完全不同。

你要真的愿意接受否定结果。这一条最关键,也最难。如果你的组织文化是"实验没通过 = 项目失败 = 团队背锅",那所有实验都会通过——不是因为策略好,是因为没人敢让它不通过。

在我的经验里,真正有价值的 AB 实验通常具备三个特征:简单、可逆、快速。简单到变量清晰单一,可逆到随时能回滚,快速到一两周能出结论。那些复杂的大规模策略实验,往往是"数据背书"的高发区——不是因为你设计得不好,是因为复杂系统的效果本身就很难用单次实验评估。

 

一种不同的思路

 

与其执着于每一个决策都用 AB 实验验证,不如把实验资源集中在真正不确定的地方。

团队能达成共识的策略,直接上。数据明确的方向(比如明显的转化漏斗断点),直接修。需要实验的是那种"直觉和逻辑都说不清"的灰色地带——而这恰恰是大多数团队不敢承认自己存在的领域。

更有价值的做法可能是:把实验机制从"验证"转向"发现"。不是为了证明某个策略有没有效果,而是为了理解用户行为——他们对什么敏感,什么变化会改变他们的决策路径。这种探索性的实验不需要显著性,需要的是洞察。

在金融产品里,我逐渐意识到最有用的不是"策略 A 比 B 好 3%"这种结论,而是"用户在什么条件下会改变风险偏好"这种理解。前者帮你做一次决策,后者帮你做一百次决策。

数据驱动不应该是每个决策都依赖数据,而是用数据建立对业务的理解模型,然后用模型指导决策。实验是建立模型的手段,不是替代决策的工具。

当一个组织把 AB 实验当成了决策本身,而不是决策的输入,实验就从探索真相的显微镜,变成了给结论盖章的公章。你以为你在用数据驱动,其实你只是在用数据背书。

区别在哪?驱动力来自数据,你跟着数据走,哪怕方向出乎意料。背书力来自决策者,数据只是走个过场,方向早就定了。穷举指标直到找到"显著"的那个,和给答案找过程,本质上是一回事。

下次你要签一份实验报告的时候,不妨问自己一个问题:如果这个实验的结果是负的,你还会上线吗?如果你的第一反应是找理由解释为什么负的也行——那你做的不是实验,是仪式。

You voted 4. Total votes: 6

添加新评论