算法岗基础 / 04

指标、实验与收益归因

算法岗面试里,“指标怎么设、实验怎么做、收益怎么归因”是高频追问。因为业务算法最终要证明价值,不是只证明模型看起来更高级。

指标分三层

第一层是模型指标,比如 AUC、Logloss、MAE、F1、NDCG。这些指标用于判断模型是否更好地拟合了离线数据。

第二层是策略指标,比如召回覆盖率、排序分布、补贴命中率、调度超时风险、审核通过率。这些指标用于判断模型输出进入策略后是否合理。

第三层是业务指标,比如点击率、转化率、GMV、ROI、留存、准时率、投诉率、资损、成本。业务指标才是最终结果。

很多问题出在这三层不一致:模型指标涨了,策略没变;策略看起来更激进,业务护栏被伤害;业务涨了,但不是算法导致的。

主指标、过程指标和护栏指标

一个实验不能只看一个指标。通常要同时定义:

  • 主指标:实验最想提升的指标,例如 GMV、准时率、风险召回。
  • 过程指标:解释主指标变化的中间指标,例如点击率、接单率、召回覆盖。
  • 护栏指标:不能明显变差的指标,例如投诉率、误伤率、延迟、成本、用户留存。

例如广告出价优化的主指标可能是广告主 ROI,过程指标是 CTR、CVR、消耗速度,护栏指标是用户体验、预算超投率和系统延迟。

为什么离线指标不等于线上收益

离线数据来自历史策略,天然有偏。推荐系统只知道用户看过什么,不知道没曝光的内容会不会点击;补贴系统只知道历史补贴策略下的行为,不知道不补贴会怎样;风控系统只知道拦截后的结果,但不知道放行后是否会产生风险。

因此离线指标只是筛选方案,不能替代线上实验。

常见原因:

  • 样本分布和线上流量不一致。
  • 标签定义和业务目标不一致。
  • 模型提升集中在低价值样本。
  • 策略层有规则覆盖,模型变化没有真正生效。
  • 多目标权重改变后,护栏指标受损。

A/B 实验基本流程

  1. 明确假设:为什么这个方案会提升指标。
  2. 定义实验单元:用户、请求、订单、骑手、城市还是时间片。
  3. 设计分流:保证实验组和对照组可比。
  4. 估算样本量:避免样本太小导致结论不稳。
  5. 设置护栏:防止成本、体验、延迟失控。
  6. 灰度上线:从小流量开始,逐步放量。
  7. 分析结果:看显著性、异质性和长期影响。
  8. 做归因:确认收益来自方案机制,而不是外部因素。

实验单元很重要

不同业务的实验单元不同。

推荐排序常按用户或请求分流;广告可能按用户、广告主或流量分层;物流调度可能按区域、城市或时间片,因为骑手和订单之间有干扰;风控策略可能按账号或交易分流,但要注意风险扩散。

如果实验单元选错,会出现污染。例如物流里同一骑手同时服务实验组和对照组订单,两个组就不独立。

收益归因怎么讲

面试官常问:“这个提升为什么是你的方案带来的?”

回答要按链路拆:

  1. 方案改变了什么:特征、模型、召回、排序、阈值、优化目标还是策略规则。
  2. 中间指标是否符合预期:比如候选覆盖提升、接单率提升、误伤下降。
  3. 主指标是否提升:比如转化、收入、准时率、资损下降。
  4. 护栏是否稳定:成本、延迟、投诉、留存没有明显恶化。
  5. 分场景是否一致:高峰、低峰、新用户、老用户、不同城市表现如何。

不要只说“实验涨了 2%”。要解释为什么涨。

Ablation 怎么做

Ablation 是拆解贡献。比如一个排序方案同时加了新特征、新模型和新重排策略,如果整体效果好了,要知道哪部分贡献最大。

常见做法:

  • 只加特征,不换模型。
  • 只换模型,不改策略。
  • 只改排序目标,不动召回。
  • 分层看不同人群、场景、流量的效果。

Ablation 可以帮助后续迭代,也能防止把收益错误归因给不重要的模块。

常见面试追问

AUC 提升 0.01 一定有用吗?

不一定。要看提升是否集中在关键样本和关键排序区间。如果 AUC 提升来自大量低价值负样本,线上可能没有收益。还要看模型校准、排序 top 区间和策略使用方式。

实验不显著怎么办?

先检查样本量和实验周期,再看指标波动和分层效果。如果整体不显著但某些场景显著,可以判断是否存在异质性。也要回到方案机制,看中间指标是否按预期变化。

指标涨了但投诉也涨了怎么办?

说明主指标和体验护栏冲突。不能只看主指标上线,要重新调整目标函数或策略边界。业务算法的重点是在约束下优化,不是单指标冲高。

如何避免 p-hacking?

实验前明确主指标、分析周期和分层方案。不要在大量指标里事后挑显著结果。必要时做多重检验校正或复现实验。

一段标准回答

我会把指标分成模型指标、策略指标和业务指标。离线阶段先看模型指标和关键分桶,确认方案有潜力;上线阶段通过 A/B 实验验证主指标,同时设置成本、体验、延迟等护栏。实验后不只看整体涨跌,还会看中间指标、分场景效果和 ablation,确认收益是否符合方案机制,避免把外部波动误认为算法收益。

下一篇建议继续看: