标准回答
为什么不用准确率
推荐/排序关心的是「相关物品有没有排在前面」,是一个 Top-K 排序问题,普通准确率不适用,要用排序敏感的指标。
核心指标
- NDCG(归一化折损累计增益):对每个位置的相关度按 log 位置折扣求和(DCG),再除以理想排序的 DCG 归一化。它同时考虑相关度高低和位置,是排序质量的核心指标。
- Recall@K / Precision@K:前 K 个里命中的相关项占全部相关项的比例(Recall@K)、占 K 的比例(Precision@K)。召回阶段重点看 Recall@K。
- MAP:对每个用户求平均精度再跨用户平均,奖励把相关项排得更靠前。
- HitRate / 命中率:前 K 个里是否至少命中一个相关项。
体验类指标
覆盖率(推荐触达物品占全库比例)、多样性(结果是否同质)、新颖性,避免只推爆款。线上还需结合 CTR、转化、停留时长等 A/B 实测。
常见误区
⚠️ 常见踩坑
只看离线 NDCG/Recall@K 就下线上结论——离线指标无法反映曝光偏差与用户实时反馈,最终必须用线上 A/B 的业务指标验证。
追问
追问 1:NDCG 和 MAP 有什么区别?
MAP 基于二值相关(相关/不相关),衡量相关项的平均排序位置;NDCG 支持多级相关度(如评分 1–5),并用对数位置折扣,更细粒度地刻画「高相关项是否排在前面」。当相关度有等级时 NDCG 更合适,纯二值场景两者都可用。
追问 2:召回和排序阶段分别该看什么指标?
召回阶段目标是「不漏」,看 Recall@K、候选集覆盖率,K 通常较大(几百到上千);排序阶段目标是「排得准」,看 NDCG、Precision@K、MAP 等位置敏感指标,K 较小(首屏几条)。两阶段指标侧重不同,需分别评估。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。
🛠️ AI 工具
- Recall
为 Claude Code 提供持久化记忆能力,完全离线运行,避免每次会话重复解释项目上下文。468 stars。