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 中国社区官方博客2 分钟前
如何使用 Ollama 在本地设置和运行 GPT-OSS
人工智能·gpt·elasticsearch·搜索引擎·ai·语言模型
青鱼入云4 小时前
ES索引配置字段解读
大数据·elasticsearch·搜索引擎
阿里云大数据AI技术4 小时前
为什么 OpenSearch 向量检索能提速 13 倍
搜索引擎
深圳市恒讯科技6 小时前
使用站群服务器做SEO,如何避免被搜索引擎判定为“站群作弊”?
服务器·搜索引擎·php
Ribou7 小时前
Elasticsearch 9.2.0 三节点集群配置
大数据·elasticsearch·搜索引擎
SEO_juper10 小时前
搜索引擎索引权威指南:抓取、收录与排名的基础
数据库·搜索引擎·seo·数字营销
Elastic 中国社区官方博客1 天前
通过混合搜索重排序提升多语言嵌入模型的相关性
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
liliangcsdn1 天前
如何使用elasticdump进行elasticsearch数据还原
大数据·elasticsearch·搜索引擎
熙客2 天前
Elasticsearch:分布式搜索引擎数据库
分布式·elasticsearch·搜索引擎
哦你看看2 天前
Elasticsearch+Logstash+Filebeat+Kibana部署[7.17.3版本]
大数据·elasticsearch·搜索引擎