nDCG(归一化折损累计增益) 是衡量排序质量的指标,常用于搜索引擎或推荐系统

nDCG(归一化折损累计增益) 是衡量排序质量的指标,常用于搜索引擎或推荐系统。核心思想是:排名越靠前的高质量结果,对整体评分的贡献越大,但后续结果的贡献会逐渐"打折"。最终通过对比实际排序与理想排序的得分,得到一个0到1之间的值(越接近1,排序越好)。


通俗解释:

假设你搜索"苹果",搜索引擎返回5个结果。nDCG的作用是:

  1. 给高质量结果加分(比如相关度高的排在前面)。
  2. 给靠后的结果打折(比如第5名的结果即使相关,贡献也变小)。
  3. 对比"实际排序"和"完美排序"的得分,最终给出一个0~1的评分(1表示完美)。

数值举例(假设相关度分3档:0不相关,1一般,2非常相关)

场景:
  • 实际排序 :结果的相关度依次为 [2, 1, 2, 0, 1]
  • 理想排序 (按相关度从高到低排列):[2, 2, 1, 1, 0]

计算步骤:
  1. 计算DCG(实际排序的得分)

    • 公式:每个结果的增益除以它的位置的对数值(位置从1开始)。

    • 计算:

      复制代码
      DCG = 2/log₂(2) + 1/log₂(3) + 2/log₂(4) + 0/log₂(5) + 1/log₂(6)
           = 2/1 + 1/1.585 + 2/2 + 0 + 1/2.585
           ≈ 2 + 0.63 + 1 + 0 + 0.39
           ≈ 4.02
  2. 计算IDCG(理想排序的得分)

    • 理想排序的DCG即为IDCG:

      复制代码
      IDCG = 2/log₂(2) + 2/log₂(3) + 1/log₂(4) + 1/log₂(5) + 0/log₂(6)
            = 2/1 + 2/1.585 + 1/2 + 1/2.322 + 0
            ≈ 2 + 1.26 + 0.5 + 0.43
            ≈ 4.19
  3. 归一化得到nDCG

    复制代码
    nDCG = DCG / IDCG = 4.02 / 4.19 ≈ 0.96

结论:

  • nDCG≈0.96,接近1,说明实际排序接近理想情况。
  • 如果实际排序完全乱序(比如把不相关的结果排第一),nDCG会接近0。
相关推荐
Elastic 中国社区官方博客7 小时前
Elasticsearch 的 JVM 基础知识:指标、内存和监控
java·大数据·elasticsearch·搜索引擎·全文检索
Arthurmoo8 小时前
Git常用命令大全:高效开发必备
大数据·elasticsearch·搜索引擎
SEO_juper21 小时前
E-E-A-T与现代SEO:赢得搜索引擎信任的完整策略
前端·搜索引擎·seo·数字营销·seo优化·谷歌seo
cyh男1 天前
Lucene 8.7.0 版本的索引文件格式
搜索引擎·全文检索·lucene
AIGC小火龙果1 天前
AI代码管家:告别烂代码的自动化魔法
人工智能·经验分享·搜索引擎·自动化·aigc·ai编程
在未来等你1 天前
Elasticsearch面试精讲 Day 8:聚合分析与统计查询
大数据·分布式·elasticsearch·搜索引擎·面试
tan180°1 天前
Boost搜索引擎 数据清洗与去标签(1)
搜索引擎
知彼解己2 天前
Elasticsearch 核心知识与常见问题解析
大数据·elasticsearch·搜索引擎
Mr.Entropy2 天前
Elasticsearch(text和keyword)区别分析
大数据·elasticsearch·搜索引擎
huimingBall2 天前
确定软件需求的方法
java·大数据·elasticsearch·搜索引擎·需求分析·j#