1. A/B测试概述

1.1 A/B测试的定义

A/B测试(又称分桶测试或对照实验)是一种通过对比两个或多个版本(A组与B组)在同一指标上的表现差异,来验证某个改动是否带来统计显著效果的实验方法。在模型评估场景中,A/B测试将模型视为“策略版本”,通过线上真实流量验证模型效果。

核心公式: 效果差异 = 实验组指标均值 − 对照组指标均值,并通过假设检验判断差异是否由随机误差引起。

1.2 在模型评估中的作用

模型离线指标(如AUC、LogLoss)无法完全反映线上真实业务效果。A/B测试在模型评估中承担以下关键角色:

  • 因果推断:隔离模型改动对业务指标的真实影响,排除时间、季节、其他系统变更等混杂因素。
  • 效果验证:将离线表现优异的模型部署到小流量环境,验证其是否真正提升核心业务指标(如CTR、转化率、收入)。
  • 风险控制:在全面上线前发现模型可能带来的负面效果(如用户流失、收入下降),降低试错成本。
  • 迭代决策:为模型版本迭代提供数据驱动的“上线/回滚”依据,避免主观判断。
实践要点:模型A/B测试通常需要同时关注“统计显著性”与“业务显著性”——即使p值小于0.05,若提升幅度低于业务可接受阈值(如0.1%),仍需谨慎决策。

1.3 与传统统计测试的区别

A/B测试虽然基于传统统计测试(如t检验、卡方检验)的数学框架,但在应用场景、设计逻辑和工程实现上存在显著差异。下表梳理了核心区别:

对比维度 传统统计测试 模型A/B测试
应用场景 学术研究、医学试验、社会科学 互联网产品、推荐系统、广告排序、风控模型
样本来源 通常为有限、静态的抽样数据 线上实时、海量、持续流入的用户流量
实验单元 个体(患者、受访者) 用户ID、设备ID、会话ID(需保证分流稳定)
干预方式 药物/治疗方案/政策 模型版本、排序策略、特征逻辑、阈值调整
指标类型 均值、比例、生存时间 CTR、转化率、客单价、留存率、延迟、覆盖率
样本量需求 通常较小(几十到几百) 通常较大(数万到数百万),需提前做功效分析
多重比较 较少关注(通常单指标) 常见(同时监控多个核心与护栏指标)
工程约束 无(纯统计分析) 分流系统、日志埋点、实时计算、数据管道

1.4 A/B测试在模型评估中的典型流程

下图展示了从模型开发到A/B测试上线的完整链路,帮助理解A/B测试在模型评估中的位置:

模型A/B测试典型流程 离线模型训练 历史数据 + 特征工程 离线评估 AUC / LogLoss / NDCG A/B分流设计 用户ID Hash / 分层 线上实验运行 小流量(5%-10%) 数据采集与清洗 日志 / 埋点 / SQL ETL 统计检验 t检验 / 置信区间 / p值 决策:全量上线 / 回滚 / 继续实验 结合统计显著性与业务显著性

1.5 模型A/B测试的常见误区

⚠️ 常见误区清单:
  • 过早停止实验:看到p值小于0.05就立即停止,忽略“早停偏差”(peeking bias),导致假阳性率飙升。
  • 忽略样本量计算:未做功效分析直接上线,实验结束时发现样本量不足,无法得出有效结论。
  • 多重比较不校正:同时观察20个指标,不做Bonferroni或FDR校正,必然出现“假显著”指标。
  • 分流不均匀:未考虑用户ID的稳定性(如用户登出/登入导致ID变化),造成流量污染。
  • 忽略网络效应:社交类模型(如好友推荐)中,实验组与对照组用户相互影响,违反SUTVA假设。

1.6 本章小结

A/B测试是连接模型离线评估与线上业务效果的桥梁。它并非简单的“两组对比”,而是一套包含实验设计、分流策略、数据采集、统计检验、决策机制的完整工程体系。与传统统计测试相比,模型A/B测试更强调大规模实时数据、多指标监控、工程稳定性和业务可解释性。掌握A/B测试的核心概念,是后续学习SQL数据准备与实操的基础。