那个跑了3周还没结论的A/B测试

2026年2月,我们做了一个推荐模型的A/B测试。对照组(A)是当前生产模型,实验组(B)是新模型。流量分配:50/50。每天约10万用户。

3周后,B组的CTR比A组高0.8%。数据科学家说"有提升",产品经理说"不明显",工程师说"再跑一周"。又一周后,提升变成了0.3%。然后我们意识到:这个A/B测试从一开始就设计错了。

金句:A/B测试的目的不是"检测差异",而是"用最小的成本确定差异是否显著"。

为什么50/50分流是浪费?

情况1:效应量很小。 如果你的新模型预期提升只有1%,而日活用户只有1万,你可能需要跑几个月才能达到统计显著性。在此期间,50%的用户在"体验较差的模型"。

情况2:你有多个候选模型。 50/50/50/50是不可能的。你需要多臂老虎机(Multi-Armed Bandit)或A/B/n测试设计。

情况3:你知道某个模型很可能更好。 如果离线评估显示B模型AUC高2%,为什么还要给A模型50%的流量?用汤普森采样(Thompson Sampling)或95/5分流。

2026年A/B测试的三种范式

范式一:固定分流A/B测试。 核心公式:n = (Z_alpha/2 + Z_beta)^2 * (p1*(1-p1) + p2*(1-p2)) / (p1 - p2)^2。先算样本量,再决定分流比例。

范式二:多臂老虎机(Multi-Armed Bandit)。 自动将更多流量分配给表现更好的模型,总"遗憾"最小。用Thompson Sampling从每个arm的Beta分布中采样,选择采样值最大的。

范式三:交错实验(Interleaving)。 将A模型和B模型的推荐结果"交错"展示给同一个用户,然后比较用户与哪个模型的结果交互更多。所需样本量可以减少10-100倍。

2026年A/B测试的五个坑

坑1:忽略"新奇效应"。 新模型上线后,用户可能因为"新鲜感"而点击更多。前24-48小时的数据不可靠。

坑2:多重比较问题。 如果同时监控10个指标,用p<0.05显著,40%概率至少有一个"假阳性"。用Bonferroni校正或预设一个"主要指标"。

坑3:没有考虑"分流一致性"。 同一个用户应该始终看到同一个模型。用User ID哈希做一致性分流。

坑4:忽略"外部效应"。 A/B测试期间,如果市场发生变化,测试结果可能被污染。

坑5:提前停止的诱惑。 看到p<0.05就停止测试,这叫"peeking",会严重夸大假阳性率。预设样本量和测试时长。

结论:A/B测试是最容易被滥用的统计方法。 在ML场景下,用多臂老虎机替代固定分流,用交错实验替代传统A/B测试——用更少的流量,获得更可靠的结论。