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。
相关推荐
策知道2 小时前
依托政府工作报告准备省考【经验贴】
大数据·数据库·人工智能·搜索引擎·政务
TracyCoder1234 小时前
ElasticSearch内存管理与操作系统(一):内存分配底层原理
大数据·elasticsearch·搜索引擎
春日见9 小时前
Autoware使用教程
大数据·人工智能·深度学习·elasticsearch·搜索引擎·docker·容器
会员源码网10 小时前
Elasticsearch从零启动指南:安装、配置、启停与排坑全解析
大数据·elasticsearch·搜索引擎
uyeonashi11 小时前
Boost搜索引擎测试报告
功能测试·selenium·搜索引擎
洛阳纸贵1 天前
JAVA高级工程师--Elasticsearch安装以及内置分词器、IK分词器
大数据·elasticsearch·搜索引擎
历程里程碑1 天前
子串----和为K的子数组
大数据·python·算法·leetcode·elasticsearch·搜索引擎·哈希算法
Elastic 中国社区官方博客1 天前
使用 LangGraph 和 Elasticsearch 构建 人机协同( HITL )AI agent
大数据·人工智能·elasticsearch·搜索引擎·ai·机器人·全文检索
YXWik62 天前
openManus更改搜索方式Google改为国内搜索引擎
搜索引擎
历程里程碑2 天前
滑动窗口-----找到所有字母异位词
大数据·python·算法·elasticsearch·搜索引擎·flask·tornado