推荐系统常用指标NDCG含义及公式

NDCG(Normalized Discounted Cumulative Gain,归一化折损累计收益)是信息检索和推荐系统中最核心的评价指标之一。在评估基于大语言模型的重排(Re-ranking)或召回系统时,单纯依靠命中率(Hit Rate)往往不够,因为我们需要衡量排在前面的结果是否是最相关的

NDCG 的核心思想建立在两个假设之上:

  1. 高相关性的结果比一般相关性的结果更有价值。
  2. 排名越靠前的结果,被用户看到和点击的概率越大,因此其价值权重应该更高。

为了彻底搞懂 NDCG,我们需要把它拆解为四个步骤:CG →\rightarrow→ DCG →\rightarrow→ IDCG →\rightarrow→ NDCG


1. CG (Cumulative Gain) - 累计收益

最基础的一步是把推荐列表中前 ppp 个结果的相关性得分直接相加。
CGp=∑i=1preliCG_p = \sum_{i=1}^{p} rel_iCGp=i=1∑preli

  • ppp: 评估的截断位置(例如 NDCG@10 中的 10)。
  • relirel_ireli: 列表中第 iii 个位置物品的真实相关性得分(通常是人工标注或从用户反馈中定义的,如 0=不相关,1=弱相关,2=强相关)。

缺陷: CG 没有考虑位置因素。无论最相关的物品是排在第 1 位还是第 10 位,算出来的 CG 都是一样的。

2. DCG (Discounted Cumulative Gain) - 折损累计收益

为了解决位置权重的问题,DCG 引入了"折损(Discount)"机制。排名越靠后,折损越严重(通常通过对数函数来实现)。
DCGp=∑i=1prelilog⁡2(i+1)DCG_p = \sum_{i=1}^{p} \frac{rel_i}{\log_2(i+1)}DCGp=i=1∑plog2(i+1)reli
在一些工业界场景(包括像搜索或重排任务中更强调突出强相关物品时),通常会采用另一种指数形式的变形:
DCGp=∑i=1p2reli−1log⁡2(i+1)DCG_p = \sum_{i=1}^{p} \frac{2^{rel_i} - 1}{\log_2(i+1)}DCGp=i=1∑plog2(i+1)2reli−1

这种变形能够成倍放大高相关性物品的权重,从而严惩将极其相关的物品排在后面的策略。

3. IDCG (Ideal DCG) - 理想折损累计收益

缺陷: 不同的查询(Query)或用户交互历史,其候选集中的相关物品数量是不同的。比如 Query A 有 10 个相关商品,Query B 只有 2 个相关商品。直接对比这两者的 DCG 是不公平的,Query A 的 DCG 天生就会更高。

为了实现跨 Query 的横向对比,我们需要找到这个 Query 下完美的排序状态 。IDCG 就是将候选集中的物品按照相关性得分**从大到小(降序)**重新排列后,计算出的完美 DCG 值。
IDCGp=∑i=1∣RELp∣reliideallog⁡2(i+1)IDCG_p = \sum_{i=1}^{|REL_p|} \frac{rel_i^{ideal}}{\log_2(i+1)}IDCGp=i=1∑∣RELp∣log2(i+1)reliideal

  • ∣RELp∣|REL_p|∣RELp∣: 表示在理想状态下,排在前 ppp 个位置的最优相关性得分序列。

4. NDCG (Normalized DCG) - 归一化折损累计收益

最后一步,将实际的 DCG 处于理想的 IDCG,将指标压缩到 0,10, 10,1 的区间内。
NDCGp=DCGpIDCGpNDCG_p = \frac{DCG_p}{IDCG_p}NDCGp=IDCGpDCGp

  • NDCG = 1:意味着推荐模型的排序与完美排序完全一致。
  • NDCG 越接近 0:排序效果越差,高相关性的物品都被排到了后面。

相关推荐
九硕智慧建筑一体化厂家3 分钟前
智慧建筑高效管控!楼宇自控系统赋能新能源园区智能运维
运维·人工智能·笔记·智慧城市
2601_954526751 小时前
2026 生成式搜索引擎底层技术演进与 GEO优化服务商推荐:大模型检索增强(RAG)管道与语义对齐工程实战
大数据·人工智能·搜索引擎
我有满天星辰1 小时前
Spring AI Prompt 实战:System Prompt、User Prompt 与 PromptTemplate
人工智能·spring·prompt
A15362551 小时前
WMS 仓储管理系统推荐:企业如何选适配的仓储管理系统
大数据·人工智能
学习中.........1 小时前
Transformer 训练资源估算:以 CS336 GPT-2 XL 配置为例
人工智能·python·算法·机器学习·自然语言处理
Setsuna_F_Seiei5 小时前
前端的 AI 学习之路 02 之 Provider 与 Structured Output - 规范化模型输入输出
人工智能·agent·ai编程
JavaPub-rodert6 小时前
王仕宇RAG 实战教程(二):从 0 搭建一个可运行的 RAG 知识库——Embedding、Qdrant 与问答实战
人工智能·embedding
Setsuna_F_Seiei6 小时前
前端的 AI 学习之路 01 之 Agent API 调用 - 和 Agent 的基础对话
前端·人工智能·ai编程
Navigator_Z6 小时前
LeetCode //C - 1206. Design Skiplist
c语言·算法·leetcode
码行山野赴时序归途6 小时前
三道经典数组题:从暴力到最优的算法思维
c语言·开发语言·数据结构·算法·leetcode