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。
相关推荐
WSSWWWSSW16 小时前
更换Homebrew 源
大数据·elasticsearch·搜索引擎
Klong.k2 天前
关于git的使用流程
大数据·elasticsearch·搜索引擎
小红的布丁2 天前
Elasticsearch索引机制与Lucene段合并策略深度解析
elasticsearch·搜索引擎·全文检索
搞不懂语言的程序员2 天前
Elasticsearch 如何实现跨数据中心的数据同步?
大数据·elasticsearch·搜索引擎
搞不懂语言的程序员3 天前
ES 在大查询场景下导致 GC 频繁,如何定位和解决?
大数据·elasticsearch·搜索引擎
安审若无3 天前
Elasticsearch创建快照仓库报错处理
大数据·elasticsearch·搜索引擎·全文检索
LaughingZhu3 天前
PH热榜 | 2025-05-24
前端·人工智能·经验分享·搜索引擎·产品运营
Elastic 中国社区官方博客3 天前
Elasticsearch Synthetic _source
大数据·运维·elasticsearch·搜索引擎·全文检索·可用性测试
小红的布丁3 天前
Elasticsearch 节点角色详解及协调节点请求策略
大数据·elasticsearch·搜索引擎·全文检索
cui_hao_nan4 天前
Elasticsearch实操案例
elasticsearch·搜索引擎