算法面试 / 02

指标、ablation 和收益归因

算法面试里,项目讲完后最常见的追问就是:“你怎么证明有效?”这时你需要讲清指标、实验和收益归因。

先区分三类指标

模型指标:AUC、Logloss、F1、NDCG、MAE、RMSE。它们说明模型在离线数据上的拟合能力。

策略指标:召回覆盖率、排序 top 区间变化、阈值命中率、补贴触达率、候选规模、调度可行率。它们说明模型输出进入策略后发生了什么。

业务指标:点击、转化、GMV、ROI、准时率、投诉率、资损、成本、留存。它们说明最终业务是否变好。

面试时要主动说:离线指标不等于线上收益。

Ablation 是什么

Ablation 是拆解方案各部分贡献。比如你同时加了新特征、新模型和新重排策略,整体效果提升了,但不知道哪部分有用。

可以这样做:

  • 只加新特征,不换模型。
  • 只换模型,不改策略。
  • 只改重排,不动召回。
  • 去掉某类特征,看指标下降多少。
  • 分场景看不同模块贡献。

面试官喜欢 ablation,是因为它能证明你不是“撞运气调参”。

如何讲收益归因

收益归因不要只说“线上涨了 2%”。要解释为什么涨。

建议按链路讲:

  1. 模型指标是否提升。
  2. 关键分桶是否提升,比如高价值用户、新内容、长尾商家。
  3. 策略动作是否变化,比如更好的候选进入 top。
  4. 业务指标是否变化。
  5. 护栏指标是否稳定。
  6. 分场景收益是否符合预期。

常见追问

AUC 提升但线上没涨,为什么?

可能原因:

  • 提升集中在低价值样本。
  • 排序 top 区间没有明显变化。
  • 模型没有校准,分数不可直接用于策略。
  • 线上特征和离线特征不一致。
  • 策略层规则覆盖了模型效果。
  • 业务主指标和训练标签不一致。

线上涨了但离线没涨,可能吗?

可能。比如新策略改善了探索、多样性、流量分配或用户体验,而这些没有被离线指标完整刻画。也可能是实验波动,所以需要看显著性和复现实验。

如何设置护栏指标?

看业务风险。

  • 推荐:负反馈、停留、留存、多样性。
  • 广告:用户体验、广告主 ROI、预算超投。
  • 风控:误伤率、通过率、申诉。
  • 调度:成本、骑手体验、超时长尾。
  • AIGC:幻觉率、拒答率、成本、延迟。

如果实验显著但收益很小,要上线吗?

看成本、风险和可迭代性。收益小但稳定、无风险、成本低,可以上线;收益小但系统复杂度大,可能不值得。算法方案要考虑 ROI。

标准回答模板

我会先看离线模型指标,但不会只以离线指标判断是否上线。上线前会做 ablation,拆清楚新特征、模型和策略各自的贡献。线上实验会看主指标、过程指标和护栏指标,并做分场景分析。如果主指标提升,我会进一步检查中间链路是否符合预期,确认收益确实来自方案机制,而不是流量波动或外部因素。

因果归因与实验设计(物流场景)

Q:如果无法做随机 A/B 实验,如何评估骑手补贴策略对完单率的因果效应?请列举至少两种方法并说明适用前提。

来源:阿里巴巴 / 算法工程师 - 运筹 & 因果推断

普通回答:可以用 PSM 或 DID。

更好的回答

观测数据下常用四种因果识别方法:

  1. 双重差分(DID):选取补贴城市和未补贴城市,比较政策前后的完单率变化差。前提是平行趋势假设,两组在政策前趋势一致。
  2. 工具变量(IV):找到影响补贴分配但不直接影响完单率的变量,如预算分配规则或抽签机制。
  3. 断点回归(RDD):若补贴按某阈值发放(如历史接单量 ≥ X),比较阈值两侧骑手完单率。
  4. 倾向得分匹配(PSM):控制混淆变量后,对受补贴和未受补贴骑手进行匹配比较。

每种方法都有局限:PSM 无法处理不可观测混淆,DID 要求平行趋势,RDD 只能估计局部效应。物流场景还要注意溢出效应和 SUTVA 假设是否被违反。

考察点:观测数据下的因果识别能力,以及对各方法适用条件和局限的理解。

Q:请解释 Uplift Modeling 与传统 Response Model 的区别,并描述如何在骑手激励场景中建模与评估。

来源:阿里巴巴 / 算法工程师 - 运筹 & 因果推断

普通回答:Uplift 是预测干预增量效果的模型。

更好的回答

Response Model 预测”用户在干预下的绝对行为概率”;Uplift Model 预测”干预相比不干预的增量效果”,即 CATE(条件平均处置效应)。在骑手定价中,最有价值的不是本来就会接单的人,而是对激励敏感的边际人群。

建模方法:

  • T-learner:分别在处理组和控制组训练模型,预测差作为 uplift。
  • S-learner:将 treatment 作为特征输入单一模型。
  • Meta-learner(X-learner、DR-learner):样本不均衡时效果更好。
  • Tree-based uplift:如 CausalTree / Honest Causal Forest,在分裂标准中直接优化 uplift。

评估指标用 Qini 曲线、AUUC(Area Under Uplift Curve),在实验数据上计算 ground-truth CATE 校验。

考察点:是否理解增量建模与绝对预测的本质区别,以及 uplift 在补贴投放中的实际应用。

Q:A/B 实验中,如何判断实验组和对照组存在”网络效应”(即骑手之间相互干扰),应该如何处理?

来源:阿里巴巴 / 算法工程师 - 运筹 & 因果推断

普通回答:用聚类随机化分组。

更好的回答

问题本质是 SUTVA(稳定单元处置值假设)被违反,骑手之间存在竞争或协作导致溢出。

检测方法:观察对照组骑手在实验期间的指标是否也发生了变化(对照污染);用图网络分析骑手接单重叠度。

解决方案

  1. 聚类随机化:按地理区域或时段分组,整组分配处理。
  2. 时段切换实验(Switchback Design):交替开启/关闭策略,减少跨时段干扰。
  3. 网络实验设计:在图模型下建立处理扩散模型,估计直接效应和溢出效应。

考察点:是否意识到物流 marketplace 中样本独立性假设不成立,以及具体的实验设计替代方案。

Q:如果模型上线后,线上 A/B 实验的完单率提升,但骑手投诉量也在上升,你会如何分析和处理?

来源:阿里巴巴 / 算法工程师 - 运筹 & 因果推断

普通回答:降低模型激进程度,或者回滚。

更好的回答

分析框架(问题定位)

  1. 投诉内容拆分:出价过低?路线规划不合理?任务过于密集?
  2. 人群分层:哪类骑手(新手/老手、特定区域)投诉最多。
  3. 指标拆解:完单率提升是否来自”接单压力增加”而非”体验优化”。

处理方案

  1. 引入骑手满意度或投诉率作为 Reward 的约束或惩罚项(多目标优化)。
  2. 设计公平性约束:骑手收入方差 ≤ 阈值,避免马太效应。
  3. 灰度回滚投诉率高的子策略,局部优化后再重新上线。
  4. 建立骑手反馈闭环,用投诉数据标注”策略决策质量”用于模型迭代。

考察点:是否只看主指标而忽略护栏指标,以及能否在多目标冲突中做出合理权衡。

下一篇建议继续看: