真实面经题目 · 原创解析

推荐或广告系统新增一路召回后,如何评估这一路召回的效果、效率和 ROI?

新增一路召回不能只看“这路召回了多少 item”或“命中了多少点击”,因为多路召回存在去重、排序、预算竞争和归因稀释。高质量回答要把评估拆成效果、效率、增量价值和 ROI 四层:效果看覆盖率、命中率、后链路采纳、排序后曝光/点击/转化贡献;效率看召回耗时、QPS、CPU/GPU/内存、索引成本、去重后有效候选率;增量价值看相对 baseline 的新增好样本、新增人群、新增广告主/商品覆盖,以及 A/B 中核心业务指标提升;ROI 则用增量收益减增量成本,或增量 GMV/广告收入/利润除以系统和维护成本。回答时要强调离线只能做候选筛查,最终要靠在线实验和归因方法判断是否值得长期保留。

出现于:字节跳动 · 算法

60 秒回答模板

我会从“有效增量”而不是“召回量”评估新增召回。离线先看这一路自身指标:`Recall@K`、点击/转化样本命中率、去重后有效候选率、和已有召回的重叠率 `overlap = |C_new ∩ C_old| / |C_new|`,如果大部分被老通道覆盖,增量价值就低。再看后链路采纳:新通道候选进入粗排、精排、最终曝光、点击、转化的漏斗比例,以及边际贡献 `Δmetric = metric(with new channel) - metric(baseline)`。效率侧看 p95 延迟、超时率、QPS、CPU/内存/索引存储、单次请求成本和候选质量密度,例如 `有效点击候选数 / 召回耗时` 或 `预估收益 / 计算成本`。ROI 可以写成 `ROI = (增量收入或毛利 - 增量系统成本 - 维护成本) / 增量成本`,广告系统还要看 eCPM、消耗、广告主覆盖和预算挤占。最终用 A/B 验证 CTR、CVR、GMV/广告收入、用户体验护栏和成本,只有带来稳定正向增量且成本可控,才值得扩量。

考点 新召回的核心价值是去重后的增量候选和...
难度 真实面经题
回答目标 让候选人把新增召回评估回答成完整的增量价值判断:离线候选质量、后链路贡献、系统效率、商业 ROI、A/B 实验和归因风险都能讲清楚。

深入解析

01

评估对象:一路召回的价值在于增量候选

推荐或广告系统已经有多路召回时,新通道的候选会和老通道大量重叠,还会在融合、粗排、精排阶段被过滤。因此评估不能停在“召回了 1000 个 item”或“历史点击命中率高”。更合理的对象是去重后新增候选、这些候选在后链路是否被采用,以及最终是否带来用户侧和商业侧增量。比如一条向量召回通道如果召回的都是热门 item,离线命中率可能高,但和热门召回/协同过滤重叠严重,新增价值很低。

02

效果指标:从召回命中到后链路贡献

召回本身可以看 `Recall@K = 命中的正样本数 / 全部正样本数`、HitRate、NDCG@K、正样本覆盖率、长尾覆盖率、人群覆盖率。多路场景还要看 `unique_rate = |C_new - C_old| / |C_new|`,以及新通道候选在粗排 TopN、精排 TopN、最终曝光、点击、转化中的通过率。广告场景要额外看广告主覆盖、创意/商品覆盖、预算消耗、eCPM、转化成本 CPA/ROI。真正有价值的是“新通道带来的最终有效行为”,不是通道内部看起来很高的命中率。

03

效率指标:性能、成本和质量密度一起看

效率不是只有响应时间。系统侧要看 p50/p95/p99 延迟、超时率、QPS 承载、CPU/GPU 使用、内存、索引构建和更新成本、存储成本、服务稳定性;链路侧要看召回数量、去重后剩余数量、进入排序的比例和被截断比例。可以定义质量密度指标,例如 `QPS收益密度 = 后链路点击/转化贡献 / QPS成本`,或 `候选效率 = 有效曝光候选数 / 平均召回耗时`。如果一路召回很慢、候选重复多、最终曝光少,即使离线 recall 不差,也可能不值得上线。

04

ROI 公式:用增量收益覆盖增量成本

推荐场景可把收益定义为增量 GMV、增量订单、用户时长、留存或毛利;广告场景通常看增量广告收入、消耗、转化价值、广告主 ROI 和平台利润。通用公式可以写为 `ROI = (ΔRevenue 或 ΔGrossProfit - ΔCost) / ΔCost`,其中 `ΔCost = 机器成本 + 存储/索引成本 + 带宽 + 工程维护 + 可能的机会成本`。还要处理预算挤占:广告收入提升如果只是从其他广告通道转移,并未带来平台增量,就不能全部记给新召回。更稳的口径是看实验组相对对照组的净增量。

05

工程落地:分桶、打标和漏斗归因

上线前要给每个候选记录 `channel_id`、召回分数、召回位置、是否重复、被哪一路保留、进入哪个排序阶段、最终是否曝光/点击/转化。融合阶段要保留多通道归因信息,避免去重后只剩一个通道标签导致贡献被误记。可以用 first-touch、last-touch、multi-touch 或 Shapley 近似做通道归因,但面试中要说明归因只是辅助,最终仍以开关实验的整体增量为准。工程上还要设置通道配额、超时降级、缓存、索引更新频率和熔断策略。

06

在线验证:A/B 看增量,护栏看副作用

离线评估只能判断候选通道是否值得实验,不能证明线上收益。A/B 设计可以是 baseline 多路召回 vs baseline + 新召回,保持排序模型和其他策略尽量一致;如果新召回需要配额,还要做不同 quota 的剂量实验。核心指标包括 CTR、CVR、GMV、广告收入、用户时长、留存、广告主 ROI;护栏包括延迟、超时、低质曝光、投诉、重复内容、生态多样性和老通道收益被挤压。实验分析要分人群、场景、品类、冷启动/长尾等切片,判断它在哪些区域真的有效。

07

失败模式:高命中不等于高 ROI

常见失败是离线用全量历史点击做命中,结果热门 item 通道天然高分,上线后没有增量;或者新通道召回很多冷门内容,但排序不采纳,实际曝光为零。还有一种是 A/B 中收入上升但延迟恶化、用户体验下降或广告主 ROI 变差,长期不可持续。通道 ROI 也容易被归因污染:同一个 item 被多路召回,若只按最终保留通道记功,会低估或高估某些通道。评估必须把重复、后链路截断和预算挤占显式纳入。

易错点

  • 只看新增通道召回数量,不看去重后新增候选和后链路采纳。
  • 把离线命中率当成线上效果,忽略排序、频控、预算和曝光约束。
  • 不记录候选的多通道来源,导致去重后无法正确归因。
  • 只算收入提升,不算机器、索引、带宽、维护和延迟成本。
  • A/B 不设护栏指标,让延迟、投诉、广告主 ROI 或内容多样性恶化。
  • 忽略分场景分析,导致整体无效的通道掩盖局部高价值场景,或反之。

面试官追问

如果新通道和老通道重叠很高,是不是一定没价值?

不一定。重叠高通常说明增量候选少,但新通道可能提供更好的排序信号、更稳定的召回或在某些人群下更早命中好 item。要进一步看重复 item 的分数质量、排序后位置是否改善、超时降级价值,以及分场景增量。如果重叠高且后链路贡献也没有改善,才说明保留价值低。

离线 Recall@K 很好但线上没提升,可能是什么原因?

可能是样本构造有偏,热门点击让 recall 虚高;也可能是候选和老通道重复,被去重或排序截断;还可能是召回分数和排序模型不匹配,召回到了但排不上去。广告场景还可能受预算、出价和频控约束,离线命中不能转成真实曝光和转化。

如何给多路召回做贡献归因?

基础做法是记录每个 item 被哪些通道召回,去重后保留多值 channel list,再按曝光/点击/转化回溯。简单归因有 first-touch、last-touch、equal split;更复杂可以做 leave-one-channel-out 实验或 Shapley 近似。面试里要强调归因模型有假设,最终判断通道价值仍应以线上开关实验的净增量为主。

广告召回的 ROI 和推荐召回有什么不同?

广告更强调商业闭环和约束,包括广告主 ROI、CPA、消耗、eCPM、预算利用率、填充率、平台收入和用户体验。推荐可以更多看点击、时长、留存、GMV 等用户/交易指标。广告新增召回如果只提高平台短期收入但伤害广告主转化或用户体验,长期 ROI 可能是负的。