理解NDCG
关于NDCG,wiki给点解释很详细,这里我谈谈我的理解。
NDCG(Normalized discounted cumulative gain):是用来衡量排序质量的指标。
其中一种计算公式如下:

先从理解CG,DCG入手。CG(cumulative gain),累积获得,指的是网页gain的累加。例如:
其是个不断累加的值,gain可以使自己定义的一种获得,用来衡量网页的相关性程度,上图中的gain定义如下:

DCG(Discounted Cumulative Gain),Discounted的factor为:

那么,NDCG就是被IDEA DCG规格化的值,即DCG/IDCG。
NDCG如何理解?对于搜索引擎,本质是用户搜一个query,引擎返回一个结果列表,那么如何衡量这个结果列表的好坏?我能够想到的是:
- 我们希望把最相关的结果放到排名最靠前的位置,因为大部分用户都是从上往下阅读的,那么最相关的在前面可以最大程度减少用户的阅读时间;
- 我们希望整个列表的结果尽可能的和query相关;
第一个条件的满足是首要的,而第二个条件的加入是保证整体结果质量,而这两个条件都体现在了NDCG里面,首先,计算NDCG,需要计算Gain,这个gain即是每条结果的质量的定义,NDCG把所有结果相加最终相加保证,整体质量越高的列表NDCG值越大。同时,Discounted的设计使得越靠前的结果权重越大,这保证了第一条,更相关的排在靠前的结果会有更大的NDCG值。从这两点看,以NDCG为优化目标,保证了搜索引擎在返回结果总体质量好的情况下,把更高质量结果排在更前面。
NDCG提供了一种计算方式,当我们有其他排名类似的需求的时候,NDCG都是值得参考的,其Gain以及Discounted的计算的变化可以产生很多其他有价值的metrics
参考文献:
http://en.wikipedia.org/wiki/NDCG
理解NDCG的更多相关文章
- NDCG的理解
2019-05-29 14:15:44
- IR的评价指标-MAP,NDCG和MRR
IR的评价指标-MAP,NDCG和MRR MAP(Mean Average Precision): 单个主题的平均准确率是每篇相关文档检索出后的准确率的平均值.主集合的平均准确率(MAP)是每个主 ...
- (转)GBDT迭代决策树理解
在网上看到一篇对从代码层面理解gbdt比较好的文章,转载记录一下: GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Re ...
- xgboost-python参数深入理解
由于在工作中应用到xgboost做特征训练预测,因此需要深入理解xgboost训练过程中的参数的意思和影响. 通过search,https://www.analyticsvidhya.com/blog ...
- Spark Streaming高级特性在NDCG计算实践
从storm到spark streaming,再到flink,流式计算得到长足发展, 依托于spark平台的spark streaming走出了一条自己的路,其借鉴了spark批处理架构,通过批处理方 ...
- 理解CSS视觉格式化
前面的话 CSS视觉格式化这个词可能比较陌生,但说起盒模型可能就恍然大悟了.实际上,盒模型只是CSS视觉格式化的一部分.视觉格式化分为块级和行内两种处理方式.理解视觉格式化,可以确定得到的效果是应 ...
- 彻底理解AC多模式匹配算法
(本文尤其适合遍览网上的讲解而仍百思不得姐的同学) 一.原理 AC自动机首先将模式组记录为Trie字典树的形式,以节点表示不同状态,边上标以字母表中的字符,表示状态的转移.根节点状态记为0状态,表示起 ...
- 理解加密算法(三)——创建CA机构,签发证书并开始TLS通信
接理解加密算法(一)--加密算法分类.理解加密算法(二)--TLS/SSL 1 不安全的TCP通信 普通的TCP通信数据是明文传输的,所以存在数据泄露和被篡改的风险,我们可以写一段测试代码试验一下. ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
随机推荐
- Daily Scrum 10.26
虽然是星期六,大家也没有丝毫懈怠,但由于其他各科也已经布置了相应的大作业,我们组投入在软工作业上的时间也是有一定限度的.由于这次任务较重,今日的完成量只有一部分,剩余的留为明天继续. 下表是今日完成工 ...
- ArcGIS AddIN异常之:object reference not set to an instance of an object
异常出现在 frmDownload frd = new frmDownload(); frd.ShowDialog(); 在ArcMap中能正常弹出窗体,点击按钮时显示此异常:object refer ...
- c#面向对象基础 重写、虚方法、抽象类
虚方法 抽象类与抽象方法 1.书写规范: 在类前面加上abstract关键字,就成为了抽象类:在一个方法前面加上abstract关键字,就成为了抽象方法(抽象方法不能有实现方法,直接在后面加分号) 例 ...
- background-size扫盲
contain,按比例调整背景图片,使得其图片宽高比自适应整个元素的背景区域的宽高比,因此假如指定的图片尺寸过大,而背景区域的整体宽高不能恰好包含背景图片的话,那么其背景某些区域可能会有空白. cov ...
- 在cenOS下安装apache出现-bash: /etc/init.d/httpd: 没有那个文件或目录
我是在vmware上装的centos7,使用命令yum install httpd httpd-devel 安装完apache后,想要启动apache,执行了/etc/init.d/httpd sta ...
- linux中添加ftp用户,并设置相应的权限
在linux中添加ftp用户,并设置相应的权限,操作步骤如下: 1.环境:ftp为vsftp.被限制用户名为test.被限制路径为/home/test 2.建用户:在root用户下: useradd ...
- html - 自动播放音乐
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Xcode 移除(卸载)插件
1.command + shift + G ,输入 ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins 2.在Plug-ins文 ...
- 【ionic】Mac IOS下真机调试
模拟调试不能保证真机一定没问题,所以真机调试是非常必要的一步 IOS设备 启用设备调试 在IOS设备中(Iphone,Ipad)中开始web检测器 设备->safari->高级->w ...
- css3渐变之linear-gradient与-webkit-linear-gradient写法异同
语法background: linear-gradient(direction, color-stop1, color-stop2, ...); 通常只需要linear-gradient,兼容性较好. ...