想象一下,你是一家面馆的老板,最近研发了一款新配方的高汤。你想知道老顾客们更喜欢老汤底还是新汤底,但不能直接问——因为人的嘴会说谎,肠胃不会。最靠谱的办法是:连续一周,让一半客人喝老汤,一半客人喝新汤,然后悄悄记录他们喝完后的“再来一碗”比例、碗底剩汤量、甚至打嗝次数。这就是AB实验的本质——不靠嘴争,靠数据说话。 推荐系统的世界里,算法工程师就像这位面馆老板。他们每天都在琢磨:把推荐列表从“按热度排序”改成“按个性化排序”,用户真的会更满意吗?把首页的图片从矩形改成圆形,点击率会上升吗?这些问题无法靠拍脑袋回答,因为用户的偏好复杂多变,昨天的结论今天可能就失效。于是,AB实验成了推荐系统领域的“金标准”——把用户随机分成两组,一组看到旧策略(对照组),一组看到新策略(实验组),然后对比两组的行为指标,用统计学的尺子量一量:这点差异,到底是真本事,还是运气好? 本文会用面馆实验的比喻,带你走完AB实验从设计、实施到分析的完整旅程:如何公平分组、如何选指标、如何判断差异是否显著、如何避免实验之间互相打架、如何防止实验被污染,以及如何从一次性实验走向可持续优化的系统工程。
对AI从业者的价值:AB实验是将“我觉得有效”升级为“数据证明有效”的核心技能,是大规模推荐系统迭代的护航舰,也是算法工程师与产品经理、数据分析师对话的通用语言。
可视化演示
展示用户随机分组与流量分割、显著性检验判定,以及辛普森悖论的分层分析,可切换三种模式观察。
本节配有交互动效(进入视口后自动加载,约 3KB)。
流量分割 用户随机分为对照组与实验组 量化策略改动的真实收益 随机分组 + 流量分割 AB实验是效果验证的金标准。
实验分组随机化
面馆老板深知,想让味觉评比公平,就不能让客人自己选窗口——年轻食客偏向浓香新汤,老食客钟情清淡老汤,若是客人自由选择,最后无论哪个窗口胜出,你都分不清是汤的功劳还是客群偏好的功劳。于是,老板规定:顾客进门后,单号进左门,双号进右门,互不串门。这就是AB实验的第一块基石——分组随机化。
在推荐系统中,分组随机化意味着把每个到达的用户,通过一个不可预测但又可复现的规则,均匀地分配到对照组(A组,体验旧策略)或实验组(B组,体验新策略)。随机化的魔力在于:当样本量足够大时,两组用户的年龄、性别、活跃度、历史偏好等所有已知和未知的特征,在统计意义上都会趋于一致。这样,实验结束时两组指标的差异,就只能归因于策略改动本身。
实际工程中,常用哈希分流算法实现随机化:取用户的唯一标识(如 user_id),对其做哈希运算后取模,根据模值落入不同的实验组。这保证了同一个用户始终进入同一组,避免反复横跳。
样本量估算是另一门学问。如果实验组只有10个用户,哪怕新策略真的有效,统计上也看不出来——就像拿一勺汤去判断整锅汤的咸淡。实践中用“最小可检测效应”来推算所需样本量:你想捕捉的最小提升幅度越小,需要的样本量就越大。
回到面馆:随机化保证了两拨客人的“底子”一样,之后无论哪碗汤卖得更好,你都可以安心地归功于汤本身。这就是随机化的价值——把“人的差异”这件麻烦事,用概率的魔法抹平了。
- 哈希函数把任意长度的用户ID压缩成固定长度的数字串,相同输入永远得到相同输出
- 取模运算用哈希值除以分组总数N,取余数,把用户映射到 0 到 N-1 的某个组号
- 组别判定余数为 0 进对照组,余数为 1 进实验组(N=2时),实现五五开
指标体系设计
面馆老板开始记录数据,但他很快发现“营业额”这个指标不够用。新汤虽然卖得多,但客人剩碗底的比例也高了——销量上涨靠的是猎奇尝鲜,回头客可能并没有变多。他需要一套更精细的指标层级:主指标看“是否值得做”,护栏指标看“做了有没有副作用”,辅助指标解释“为什么有效”。
推荐系统的指标体系同样讲究分层设计。主指标是全村的希望,通常选择与业务核心目标直接对齐的指标,比如电商场景的“成交转化率”、短视频场景的“人均观看时长”、广告场景的“千次曝光收益”。主指标只有一个,避免多头决策。
护栏指标是安全气囊。策略改动不能让主指标涨了、体验却崩了。例如:推荐算法改版后点击率升了,但用户退货率也飙升——这是典型的“饮鸩止渴”。所以必须设置护栏指标,如“人均退货率”“投诉率”“次日留存率”,一旦护栏指标显著变差,实验立即叫停。
辅助指标则负责解释“为什么”。当主指标上涨时,辅助指标能告诉你上涨来自哪里:是年轻用户贡献的?是推荐位第2到第5位的点击率提升了?这些信息帮助团队理解策略的作用机制,积累可复用的经验。
面馆老板最终确定了三重指标:卖掉碗数(主)、回头客比例(护栏)、年轻客人占比变化(辅助)。有了这套体系,他就不会因为“今天卖得多”而高兴得太早——也许那只是隔壁商场搞活动带来的虚假繁荣。
- 主指标权重赋予最高权重的核心业务指标,是实验成败的第一判据
- 护栏指标权重赋予负权重或硬性阈值,一旦触发即否决实验
- 辅助指标权重小权重但不可缺,帮助解释实验因果链路
显著性检验
实验跑了一周,老板发现新汤窗口的“碗底朝天率”是 62%,老汤窗口是 55%。表面上看新汤赢了 7 个百分点,但老板不敢轻举妄动:万一是这一周来吃面的客人恰好偏重口味呢?万一是下雨天影响了客人的味觉呢?统计学给他提供了一把尺子——显著性检验。
显著性检验的核心思想是反证法:先假设“新汤和老汤其实没有差别”(原假设 H₀),然后计算在 H₀ 成立的条件下,观察到当前差异(或更极端差异)的概率——这个概率就是 p 值。如果 p 值很小(通常小于 0.05),说明“假设没差别”这件事本身就站不住脚,于是拒绝 H₀,认为新汤确实更好。
其中 \hat{p}_A 和 \hat{p}_B 分别是两组观测到的点率,\hat{p} 是两组合并的点率。这个 z 分数衡量的是“差异相对于随机波动的倍数”。
只盯着 p 值还不够,专业人士还看置信区间——它告诉你真实差异大概落在哪个范围。比如 95% 置信区间是 [1.2%, 6.8%],说明新汤的优势至少有 1.2 个百分点,最多 6.8 个百分点,下限大于 0 才真正稳了。
老板看着 p = 0.03 的报告,心里踏实了:这把尺子告诉他,如果新汤和老汤其实一样好,那么仅仅靠运气观察到这么大差异的概率只有 3%,还不到 5% 的阈值。他决定:换汤!
- 差异分子实验组与对照组的点率之差,是我们要评估的“表面差异”
- 合并点率两组数据合并计算的总点率,作为“无差异”假设下的基准
- 标准误分母衡量“如果真没差别,差异会随机波动多大”的尺子
- z分数差异是标准误的多少倍,超过 1.96 即代表 p < 0.05
实验互斥设计
面馆生意越做越大,老板开始同时试验多项改进:新汤底、新面条、新桌布、新音乐。问题来了——如果新汤底和新桌布同时在跑,到了评定时,你如何知道客人满意度上升是汤的功劳还是桌布的功劳?两个实验的流量互相交叉,结论就成了一笔糊涂账。
这就是实验互斥与正交要解决的问题。互斥实验是指两个实验不共享用户——用户参加了实验A,就不能参加实验B。正交实验则相反:两个实验可以共享用户,但通过分层设计确保两个实验的流量分配互不干扰。
成熟的推荐系统实验平台采用“层”(Layer)与“域”(Domain)的概念。整个用户流量被复制成多个“域”,每个域拥有 100% 的流量,域与域之间是正交的。每个域内部又划分为多个“层”,同一层内的实验必须互斥,不同层的实验可以正交。比如:一个用户在“推荐排序层”参与实验A,同时还可以在“首页样式层”参与实验B——两个实验各看各的指标,互不污染。
老板的解决方案:把食客分为“口味测试组”和“环境测试组”,老汤/新汤的对比只在口味组里进行,老桌布/新桌布的对比只在环境组里进行。两拨人互相看不见,实验结论互不干扰。他甚至在同一个食客身上同时测口味和环境——通过精妙的安排,一份客流量出了两份实验结论。
- 层内互斥同一层内的实验瓜分该层流量,任何用户最多进入该层的一个实验
- 层间正交不同层的实验流量互不干扰,用户可同时参与多个层
- 全量覆盖所有层的并集等于全量流量,确保流量不浪费
实验污染防护
面馆的评比刚进行到第三天,老板发现了一个诡异现象:有几位客人今天在左门吃新汤,明天又出现在右门吃老汤。一问才知道,这几位客人是隔壁公司的程序员,午休时间多,喜欢两边的面都尝一遍。老板心想:这批“穿越用户”的数据混在实验里,岂不是把新汤的真实效果给稀释了?
这就是实验污染中的用户穿越问题:用户在不同实验组之间流动,导致对照组用户实际上体验过新策略,实验组用户也体验过旧策略,组间差异被抹平。在推荐系统中,用户穿越的典型场景是:同一个用户在不同设备上登录,有的设备被分到A组,有的被分到B组,造成了策略的交叉暴露。
另一种常见的污染是新奇效应:用户刚看到新界面时,出于好奇会多点击几下,造成实验组指标虚高。但这种新鲜感消退后,指标可能回落到与对照组无异甚至更低。如果不设“预跑期”(预热期),在前几天就下结论,很容易被虚假繁荣欺骗。
最阴险的污染当属辛普森悖论——分组数据各说各话,汇总数据却得出完全相反的结论。比如新策略对高活跃用户和低活跃用户分别都更优,但因为实验组里低活跃用户占比更高(随机化出了偏差),汇总后反而显示新策略更差。这不是策略的问题,是分组比例失调的幻觉。
老板把“穿越客人”的数据单独标记出来,在分析时剔除;把新汤实验的前两天设为“蜜月观察期”不做决策;还把客人按年龄分层,分别看年轻人和老年人的反馈,避免辛普森悖论。有了这三重防护,他的味觉评比才算真正“干净”。
- 各子组比较在用户分层(如高活跃/低活跃)下,实验组指标各自占优
- 汇总比较合并所有用户后,对照组反而领先,产生与直觉相反的结论
- 归因问题出在实验组与对照组中子群体的占比不均匀,需用分层加权校正
生产落地实践
面馆老板的实验方法论逐渐成熟,但他很快意识到:每次实验都要手动分组、手动记录、手动算显著性,效率太低不说,还容易出错。他开始把整套流程平台化:进门的取号机自动完成分流,每碗面的销售数据自动上传,后台程序自动算 p 值并发送实验报告。这就是实验平台的雏形。
一个成熟的实验平台至少包含四大模块:分流模块负责哈希分桶与参数下发,保证实验参数能实时配置到推荐服务;数据模块负责埋点采集与指标计算,打通“用户行为 → 实验日志 → 指标报表”的全链路;分析模块内置显著性检验、置信区间计算、分层分析等统计工具;决策模块则负责实验的启动、停止、上线与回滚,并支持设置止损条件。
工程实践中有几个关键经验。一是实验参数的动态配置:新的策略往往涉及复杂的模型或规则,需要将实验参数化并通过配置中心下发给线上服务,而不是改代码发版。二是数据的“预跑期”机制:实验启动后先观察 24-48 小时的“分流均匀性”,确认两组用户的关键特征分布大致相同后,再正式启用实验数据。三是统一的实验报告模板:让每个实验的结论都以相同的格式呈现,方便横向对比和归档。
面馆老板的实验平台上线后,他不再需要每次亲自盯着收银台。他给每项改进设定了自动停机的止损阈值,一旦护栏指标跌破红线,系统自动回滚到旧汤配方。他陆续验证了“新汤底有效”“细面条受欢迎”“轻音乐提高翻台率”,每一项决策都有数据背书。他恍然大悟:AB实验不仅是一次性的评测工具,更是一种可复制、可积累的工程能力——每一次实验都在为下一次实验铺路。
- 增量收益实验组相比对照组的指标提升换算成的业务价值
- 工程成本开发、部署、监控实验所耗费的工程师时间与机器资源
- 风险损失实验失败可能带来的用户体验下降与口碑损失
AI 应用场景
推荐排序策略迭代验证
阶段:模型评估与上线决策
解决的问题:传统方式中,推荐排序模型的改动靠 offline 指标(如 AUC)决定是否上线,但离线指标与线上真实用户行为时常脱节——线下涨了,线上可能跌了。AB实验通过让一小部分真实用户先体验新模型,用线上指标检验效果,避免了全量发布带来的风险。
具体案例:某短视频平台要验证“基于用户兴趣向量的粗排模型”是否优于“基于热度统计的粗排模型”。平台开放 10% 流量进行 AB实验,实验组使用新模型,对照组保持旧模型,观察“人均播放时长”和“次均播放完成率”两个指标。实验运行一周后,实验组时长达标但完成率下降,平台通过护栏指标(“用户举报率”)发现新模型推荐了少量低俗内容,及时回滚并改进模型后重新实验。
首页UI改版升降级评估
阶段:产品迭代评估
解决的问题:产品经理凭直觉判断“新版UI更好看”,但“好看”无法量化。AB实验用“点击率”“转化率”等行为指标,将主观审美判断转化为客观数据对比,让UI改动从“我认为”变为“数据证明”。
具体案例:某电商平台将首页推荐模块从“双列瀑布流”改为“单列大图”模式。通过AB实验对比了两版UI在“首屏点击率”“人均浏览深度”“加购转化率”上的差异,实验组(单列大图)虽然首屏点击率略低,但人均浏览深度和加购转化率显著更高,最终决策全量上线单列模式。
大规模模型A/B平台集成
阶段:MLOps 持续交付
解决的问题:大厂中每天有几十个实验在同时运行,如果每个实验都独立搭建分流和分析环境,既浪费资源又容易出乱子。实验平台的统一分流、统一指标、统一分析能力,让团队可以安全地并行开展实验。
具体案例:某头部互联网公司的推荐团队在实验平台上同时运行 20 余个实验:三个排序模型实验(互斥)、两个UI样式实验(正交)、一个推送文案实验(分层)。平台自动确保实验之间的流量隔离,并在每周实验报告中汇总指标显著性和置信区间。团队据此快速迭代,每周至少有一个模型改进通过实验验证并全量上线。
Python 演示
"""模拟AB实验:比较两组点击率是否有显著差异功能:生成对照组和实验组的模拟点击数据,计算z分数与p值"""import numpy as npfrom math import sqrt, erfc def simulate_ab(n_control=10000, n_treat=10000, p_control=0.20, p_treat=0.24, seed=42): """模拟AB实验数据并计算显著性""" rng = np.random.default_rng(seed) # 生成二项分布点击数据: 1表示点击, 0表示未点击 clicks_control = rng.binomial(1, p_control, n_control) clicks_treat = rng.binomial(1, p_treat, n_treat) # 计算两组点击率 p_hat_control = clicks_control.mean() p_hat_treat = clicks_treat.mean() print(f"对照组点击率: {p_hat_control:.4f} (n={n_control})") print(f"实验组点击率: {p_hat_treat:.4f} (n={n_treat})") diff = p_hat_treat - p_hat_control # 合并点击率, 用于计算标准误 total_clicks = clicks_control.sum() + clicks_treat.sum() total_users = n_control + n_treat p_pool = total_clicks / total_users # 计算标准误: sqrt(p_pool*(1-p_pool)*(1/n1+1/n2)) se = sqrt(p_pool * (1 - p_pool) * (1 / n_control + 1 / n_treat)) z_score = diff / se # 双侧p值: erfc(|z|/sqrt(2)) 为标准正态分布的尾概率 p_value = erfc(abs(z_score) / sqrt(2)) print(f"差异: {diff:.4f}, z分数: {z_score:.3f}") print(f"p值: {p_value:.6f}") alpha = 0.05 if p_value < alpha: print("结论: 差异显著, 拒绝原假设, 新策略有效!") else: print("结论: 差异不显著, 无法证明新策略有效") return p_value, z_score if __name__ == "__main__": # 参数说明: 对照组1万人基准点击率20%, 实验组1万人点击率24% simulate_ab(n_control=10000, n_treat=10000, p_control=0.20, p_treat=0.24, seed=42)
rng.binomial(1, p_control, n_control)模拟每个用户是否点击,这是伯努利试验,返回 0/1 数组clicks_control.mean()计算对照组点击率,就是点击人数除以总人数p_pool = total_clicks / total_users合并点击率,它是“如果两组其实没差别”时的基准估值se = sqrt(p_pool*(1-p_pool)*(1/n_control+1/n_treat))标准误,衡量差异的随机波动幅度z_score = diff / sez分数,差异是波动的多少倍erfc(abs(z_score)/sqrt(2))用互补误差函数算标准正态分布尾概率,即 p 值if p_value < alpha:显著性判断,p 值小于 0.05 就认为差异不是运气
常见误区
误区“实验必须跑满两周,一天都不能少,否则结果不可信。”我习惯性地把实验时长当作硬性指标,哪怕实验效果非常明显,也要硬等两周才敢看结果。
正解实验时长不是拍脑袋定的,而是由样本量和效应大小决定的。统计学上有个概念叫“最小可检测效应”——当你期望检测到的最小提升幅度是一定的,就可以算出需要多少样本量,进而推算出需要多少天。如果新策略效果显著且样本量已经足够,提前下结论是合理的。反过来,如果效果不明显,跑再久也可能不显著。科学的做法是:设定好“期望检测到的最小效应”,用功效分析确定所需样本量,再结合日均流量估算实验天数。
为何常见:人们倾向于把“时间”当作确定性的锚点,觉得跑得越久越可靠。但实际上,样本量才是决定统计功效的根因,时间只是样本量的一个间接变量。
误区“实验组点击率比对照组高了 10%,涨幅这么明显,肯定要全量上线!”我只看点击率这一个指标,忽略了其他维度。
正解点击率只是过程指标,不是结果指标。实验组点击率上升,可能是标题党吸引了误点,用户进来后马上跳出(跳出率上升、停留时长下降);也可能是推荐内容更吸引人,用户点击后深度阅读(停留时长上升)。判断实验成败要看业务核心指标(如成交额、人均消费时长),更要用护栏指标排除副作用。点击率涨但退货率暴涨,这是典型的“寅吃卯粮”。一次可信的实验至少要考察主指标+护栏指标+辅助指标三个层次。
为何常见:点击率是最直观、最容易获得的指标,人天生倾向用简单指标替代复杂判断。但推荐系统的目标从来不是点击本身,而是长期的用户价值和平台健康度。
误区“p = 0.049,小过 0.05,太好了,新策略肯定有效!”我把 p 值的门槛当作生死线,过了线就觉得结果绝对可靠。
正解p 值只是“在原假设为真的情况下,观察到当前数据或更极端数据的概率”,它不代表“新策略有效的概率”。p = 0.049 和 p = 0.051 的差别其实微乎其微,不应该因为踩在门槛两侧就做出截然不同的决策。更稳健的做法是同时报告置信区间:如果 95% 置信区间 [0.1%, 2.3%] 下限大于 0,才说明效果“实际上”也显著。还要警惕多重比较问题——如果你同时看了 20 个指标,纯靠运气就会出现一个 p < 0.05 的“假阳性”。
为何常见:教育体系中二分法的思维惯性(及格/不及格、通过/不通过)让人习惯性地把 p=0.05 当作一堵墙。但统计学是连续的,阈值只是人为约定的参考线,不是物理定律。
面试题
Q1. 在AB实验中,为什么需要对用户进行随机分组?
- A.为了确保两组用户数量完全相等
- B.为了让两组用户在各项特征上统计等价← 正确答案
- C.为了让实验组用户获得更好的体验
- D.为了减少实验所需的样本总量
答案:B。随机分组的目的是让两组用户在已知和未知的所有特征上,通过大数定律实现统计等价。这样实验结束时两组指标的差异才能归因于策略改动(内在效度),而不是用户组成的差异。A选项“数量相等”是表象,随机化追求的是特征分布均衡;C和D都不符合随机化的初衷。
Q2. 哈希分流算法(取模分组)相比完全随机分组的最大优势是什么?
- A.使分组真正不可预测
- B.保证同一用户始终进入同组← 正确答案
- C.让实验组和对照组样本量绝对相等
- D.免去计算样本量的步骤
答案:B。哈希分流的核心价值是“确定性”——同一 user_id 哈希后取模的结果永远不变,用户不会在多次访问中反复横跳,避免用户穿越导致的效果稀释。完全随机分流每次请求都独立掷骰子,用户可能这次在A组下次在B组,实验就被污染了。哈希不追求组间绝对相等(样本量是大致均衡),也不能省去样本量计算。
Q3. 关于AB实验中的护栏指标,下列说法正确的是?
- A.护栏指标是实验成功的第一判据
- B.护栏指标用于监控实验是否带来副作用← 正确答案
- C.护栏指标越多越好
- D.护栏指标超过10个才算完善
答案:B。护栏指标是安全气囊,用来监控策略改动是否带来用户体验、生态健康等方面的副作用(如退出率激增、投诉率上升)。主指标才是第一判据,护栏指标起否决作用。护栏指标并非越多越好,要选择与业务风险强相关的少数关键指标,否则会陷入“指标森林”中无法决策。
Q4. 某实验的 p 值为 0.03,置信区间为 [0.2%, 3.8%],以下解读最合理的是?
- A.新策略有 97% 的概率优于旧策略
- B.新策略效果一定在 0.2% 到 3.8% 之间
- C.在 95% 置信水平下,新策略效果显著为正← 正确答案
- D.实验至少能带来 3.8% 的提升
答案:C。p=0.03<0.05 且置信区间下限 0.2% 大于 0,说明在 95% 置信水平下可以拒绝“无差异”的原假设,认为新策略带来的提升显著为正。A选项混淆了 p 值的含义——p 值不是“策略有效的概率”;B选项过度确定,95% 置信区间是“有 95% 的把握真实值落在这个区间”,不是绝对保证;D选项说的是区间上限而非保底值。
Q5. 以下哪些情况可能导致AB实验结论被污染?
- A.实验期间系统进行了一次大规模推荐模型升级← 正确答案
- B.用户在手机和电脑两个端登录,被分到不同实验组← 正确答案
- C.实验组用户对新产品产生新奇感,短期内点击率虚高← 正确答案
- D.实验组和对照组的样本量不相同
答案:ABC。A选项是“共时性干扰”——实验期间其他策略也在变,无法把指标变化唯一归因于本实验;B选项是“用户穿越”——同一用户在两端落入不同组,策略被混合暴露;C选项是“新奇效应”,虚高的指标会在新鲜感消退后回落。D选项样本量不相同本身不会污染实验——随机化本来就不保证绝对相等,统计检验方法(如z检验)已经能处理不等的样本量。
Q6. 关于辛普森悖论,下列说法不正确的是?
- A.分组内部都占优,汇总后可能反而落后
- B.产生的原因是分组样本比例失衡
- C.只能通过增大样本量来消除← 正确答案
- D.处理方式之一是分层分析
答案:C。辛普森悖论的根源是各组(如高活跃/低活跃用户)在对照组和实验组中的占比不一致,导致汇总数据失真。增大样本量不会让比例失衡自动消失——随机化失败或样本偏差需要靠分层分析(分别看各子群的指标)、加权校正等方法来处理。C选项不正确,因为样本量增大只是让估计更精确,并不会修复分组比例的结构性失衡。
Q7. AB实验的“预跑期”(A/A实验期)主要目的是什么?
- A.让实验组用户提前适应新策略
- B.验证分流系统的分组是否均匀无偏← 正确答案
- C.让新策略的效果充分显现
- D.收集对照组数据作为历史基准
答案:B。预跑期通常指实验启动初期的一段观察期,此时实验组和对照组都使用相同的旧策略(A/A状态),数据用于验证分流是否均匀——比如检查两组用户的点击率基线是否差异较大。如果 A/A 期就出现显著性差异,说明分流系统存在偏置,需要排查哈希算法或流量分配逻辑。B就是核心目的。A错在预跑期没有让用户适应新策略;C和D不是预跑期的目的。
Q8. 关于实验互斥与正交设计,下列说法正确的有?
- A.同一层内的实验必须互斥,不同层的实验可以正交← 正确答案
- B.正交设计允许两个实验共享同一批用户流量← 正确答案
- C.互斥设计的目的是避免策略叠加导致效果无法归因← 正确答案
- D.正交实验会减少每个实验可用的样本量
答案:ABC。层内互斥保证一个用户在一个层内最多参与一个实验,避免策略叠加;层间正交让用户同时参与多个层的实验但效果评估互不干扰;正交设计通过“复制流量”(把全量用户复制成多个域)实现,两个正交实验各自拥有“完整”的 100% 流量,而不是各分 50%,所以 D 选项错误。互斥实验则是在同一层内瓜分流量,确实会减少每个实验的样本量。
Q9. 实验功效(Power)的含义是?
- A.在原假设为真时,正确接受原假设的概率
- B.在备择假设为真时,正确拒绝原假设的概率← 正确答案
- C.实验组的点击率与对照组之差
- D.实验可以检测到的最小效应值
答案:B。统计功效是“当策略确实有效时,实验能检测出这种效果的概率”。功效 = 1 - β,其中 β 是第二类错误(假阴性)概率。通常要求功效不低于 80%,即如果新策略真的能带来最小可检测效应对应的收益,实验有 80% 的把握发现它。A选项是第一类错误的反面(1-α),C是效应大小,D是最小可检测效应(MDE),三者都不是功效的定义。
Q10. 关于AB实验在推荐系统中的作用,最准确的描述是?
- A.AB实验可以解释策略为什么有效
- B.AB实验是验证策略改动因果效果的黄金标准← 正确答案
- C.AB实验可以完全替代离线评估
- D.AB实验适用于所有推荐策略的验证
答案:B。AB实验通过随机分组控制混淆变量,使得两组指标差异可以因果性地归因于策略改动,因此被称为“黄金标准”。但它主要回答“是否有效”,不能解释“为什么有效”(那是辅助指标和归因分析的工作);它也不能完全替代离线评估——离线评估成本低速度快,适合做初筛;某些场景(如全局性系统改动无法分流)AB实验并不适用,需要准实验设计。