zoukankan      html  css  js  c++  java
  • 理解NDCG

      关于NDCGwiki给点解释很详细,这里我谈谈我的理解。

       NDCGNormalized discounted cumulative gain):是用来衡量排序质量的指标。

      其中一种计算公式如下:

        

      先从理解CG,DCG入手。CGcumulative gain),累积获得,指的是网页gain的累加。例如:

         
    其是个不断累加的值,gain可以使自己定义的一种获得,用来衡量网页的相关性程度,上图中的gain定义如下:

        

      DCGDiscounted Cumulative Gain),Discountedfactor为:

        

      那么,NDCG就是被IDEA DCG规格化的值,即DCG/IDCG

      NDCG如何理解?对于搜索引擎,本质是用户搜一个query,引擎返回一个结果列表,那么如何衡量这个结果列表的好坏?我能够想到的是:

    1. 我们希望把最相关的结果放到排名最靠前的位置,因为大部分用户都是从上往下阅读的,那么最相关的在前面可以最大程度减少用户的阅读时间;
    2. 我们希望整个列表的结果尽可能的和query相关;

      第一个条件的满足是首要的,而第二个条件的加入是保证整体结果质量,而这两个条件都体现在了NDCG里面,首先,计算NDCG,需要计算Gain这个gain即是每条结果的质量的定义NDCG把所有结果相加最终相加保证,整体质量越高的列表NDCG值越大。同时,Discounted的设计使得越靠前的结果权重越大,这保证了第一条,更相关的排在靠前的结果会有更大的NDCG值。从这两点看,以NDCG为优化目标,保证了搜索引擎在返回结果总体质量好的情况下,把更高质量结果排在更前面。

      NDCG提供了一种计算方式,当我们有其他排名类似的需求的时候,NDCG都是值得参考的,其Gain以及Discounted的计算的变化可以产生很多其他有价值的metrics

     

    参考文献:

    http://en.wikipedia.org/wiki/NDCG

  • 相关阅读:
    唤醒控件曾经拥有的能力(重新继承是可以使用的.)
    为ASP.NET MVC应用程序创建更复杂的数据模型
    Akka入门实例
    最火的.NET开源项目(转)
    Roslyn 编译平台概述
    C#开发157
    ASP.NET MVC学习之控制器篇
    AngularJS中数据双向绑定(two-way data-binding)
    订单系统中并发问题和锁机制的探讨
    Visual Studio 编辑器
  • 原文地址:https://www.cnblogs.com/HappyAngel/p/3535919.html
Copyright © 2011-2022 走看看