zoukankan      html  css  js  c++  java
  • [LTR] 信息检索评价指标(RP/MAP/DCG/NDCG/RR/ERR)

    一、RP

    R(recall)表示召回率、查全率,指查询返回结果中相关文档占所有相关文档的比例;P(precision)表示准确率、精度,指查询返回结果中相关文档占所有查询结果文档的比例;
    f9fa0f3c-e542-4bec-a51c-f1fbd4c1e2e4
     
    45533e0d-4575-4428-909f-8a67872eebeb
    则 PR 曲线呈现出负相关的下降趋势;
    058a9536-fe6c-4c21-84d5-467d9e35a456
    一般来说,recall 和 precision 反映了模型性能的两个方面,单一依靠某个指标并不能较为全面的评价一个模型的性能。
    此时引入 F-Score/F-measure 作为综合指标,平衡 recall 和 precision 的影响,较为全面的评价一个模型。
    22d25eb1-a548-4965-9bb7-1c62d7ceaf08
    其中,F1-Score 表示准确率和召回率一样重要;F2-Score 表示召回率比准确率重要一倍;F0.5-Score 表示准确率比召回率重要一倍。

    二、MAP

    对 PR 曲线进行积分求曲线下方的面积,就是 AP(Average Precision),即
    9aa94817-14eb-43e6-937f-fe0e25281282
    其中,p 表示 precision,r 表示 recall,p 是一个以 r 为参数的函数,AP 的计算是对排序位置敏感的,相关文档排序的位置越靠前,检索出相关的文档越多,AP 值越大。
    近似计算约等于 AAP(Aproximate Average Precision):
    5b39c9fe-d327-4543-82de-61f1cf73f4f1
    其中,N 代表所有相关文档的总数,p(k) 表示能检索出 k 个相关文档时的 precision 值,而 △r(k) 则表示检索相关文档个数从 k-1 变化到 k 时(通过调整阈值)recall 值的变化情况。
    rel(k) 表示第 k 个文档是否相关,若相关则为1,否则为0,则可以简化公式为:
    984c61c5-337e-4d5b-ba7f-192e99eb3668
    其中,N 表示相关文档总数,position(i) 表示第 i 个相关文档在检索结果列表中的位置。
     
    MAP(Mean Average Precision)即多个查询的平均正确率(AP)的均值,从整体上反映模型的检索性能。
     
    下面举一个例子来说明上述公式的计算:
    查询 query1 对应总共有4个相关文档,查询 query2 对应总共有5个相关文档。当通过模型执行查询1、2时,分别检索出4个相关文档(Rank=1、2、4、7)和3个相关文档(Rank=1、3、5)。
    则 query1AP=(1/1+2/2+3/4+4/7)/4=0.83,query2AP=(1/1+2/3+3/5+0+0)/5=0.45,最后 MAP=(0.83+0.45)/2=0.64。

    三、NDCG

    1、CG(Cumulative Gain)累计效益

    7c723338-5b30-4824-99be-503c257250e7
    其中 k 表示 k 个文档组成的集合,rel 表示第 i 个文档的相关度,例如相关度分为以下几个等级:
    Relevance Rating Value
    Perfect 5
    Excellent 4
    Good 3
    Fair 2
    Simple 1
    Bad 0

    2、DCG(Discounted Cumulative Gain)

    在 CG 的计算中没有考虑到位置信息,例如检索到三个文档的相关度依次为(3,-11)和(-113),根据 CG 的计算公式得出的排名是相同的,但是显然前者的排序好一些。
    所以需要在 CG 计算的基础上加入位置信息的计算,现假设根据位置的递增,对应的价值递减,为 1/log2(i+1),其中 log2(i+1) 为折扣因子
    a4fe0c3e-f733-418c-a015-b14359025caf
    另一种增加相关度影响比重的 DCG 计算公式:
    76654d8a-82be-4ce7-9f97-08f8d4e715fe
     

    3、IDCG(ideal DCG)

    理想情况下,按照相关度从大到小排序,然后计算 DCG 可以取得最大值情况。
    51869e97-3a06-40f1-ae79-dea40691e10a
    其中 |REL| 表示文档按照相关度从大到小排序,取前 k 个文档组成的集合。
     

    4、NDCG(Normalized DCG)

    由于每个查询所能检索到的结果文档集合长度不一致,k 值的不同会影响 DCG 的计算结果。所以不能简单的对不同查询的 DCG 结果进行平均,需要先归一化处理。
    NDCG 就是利用 IDCG 进行归一化处理,表示当前的 DCG 与理想情况下的 IDCG 相差多大:
    baba3d13-fbd8-4448-9514-55ac759dbf34
    这样每个查询的 NDCG 均在 0-1 范围内,不同查询之间就可以进行比较,求取多个查询的平均 NDCG。

    5、例子

    通过一个计算示例来说明上面的公式,例如现在有一个 query={abc},返回下图左列的 Ranked List,当假设用户的选择与排序结果无关,则根据相关度生成的累计增益如下图所示:
      URL rel Gain(2reli-1) Cumulative Gain
    #1 http://abc.go.com 5 31 31
    #2 http://www.abctech.com 2 3 34=31+3
    #3 http://abcnews.go.com/sections/ 4 15 49=31+3+15
    #4 http://www.abc.net.au/ 4 15 64=31+3+15+15
    #5 http://abcnews.com/ 4 15 79=31+3+15+15+15
    #6 ... ... ... ...
    现在考虑搜索结果排在前面的用户会优先选择,引入一个折算因子(discounting factor):1/(log(i+1)/log2) = log2/log(i+1)。
      URL rel Gain(2reli-1) Cumulative Gain DCG
    #1 http://abc.go.com 5 31 31 31=31×1
    #2 http://www.abctech.com 2 3 34=31+3 32.9=31+3×0.63
    #3 http://abcnews.go.com/sections/ 4 15 49=31+3+15 40.4=32.9+15×0.50
    #4 http://www.abc.net.au/ 4 15 64=31+3+15+15 46.9=40.4+15×0.43
    #5 http://abcnews.com/ 4 15 79=31+3+15+15+15 52.7=46.9+15×0.39
    #6 ... ... ... ... ...
    而理想的情况,根据相关度 rel 递减排序后计算 DCG:
      URL rel Gain(2reli-1) IDCG(Max DCG)
    #1 http://abc.go.com 5 31 31=31×1
    #3 http://abcnews.go.com/sections/ 4 15 40.5=31+15×0.63
    #4 http://www.abc.net.au/ 4 15 48.0=40.5+15×0.5
    #5 http://abcnews.com/ 4 15 54.5=48.0+15×0.43
    #7 http://abc.org/ 4 15 60.4=54.5+15×0.39
    #9 ... ... ... ...
    所以最终得出 NDCG 结果:
      URL rel Gain(2reli-1) Cumulative Gain DCG IDCG(Max DCG) NDCG
    #1 http://abc.go.com 5 31 31 31=31×1 31=31×1 1=31/31
    #2 http://www.abctech.com 2 3 34=31+3 32.9=31+3×0.63 40.5=31+15×0.63 0.81=32.9/40.5
    #3 http://abcnews.go.com/sections/ 4 15 49=31+3+15 40.4=32.9+15×0.50 48.0=40.5+15×0.5 0.84=40.4/48.0
    #4 http://www.abc.net.au/ 4 15 64=31+3+15+15 46.9=40.4+15×0.43 54.5=48.0+15×0.43 0.86=46.9/54.5
    #5 http://abcnews.com/ 4 15 79=31+3+15+15+15 52.7=46.9+15×0.39 60.4=54.5+15×0.39 0.87=52.7/60.4
    #6 ... ... ... ... ... ...  

    四、ERR

    1、RR(reciprocal rank)

    倒数排名,指检索结果中第一个相关文档的排名的倒数。
    9d0fa1c3-5446-4161-9bbb-b88811ff9b36

    2、MRR(mean reciprocal rank)

    多个查询的倒数排名的均值,公式如下:
    b9d4b10e-a0de-448d-8dd6-6962a57e7824
    ranki 表示第 i 个查询的第一个相关文档的排名。

    3、Cascade Model(瀑布模型)

    点击模型中的瀑布模型,考虑到在同一个检索结果列表中各文档之间的位置依赖关系,假设用户从上至下查看,如果遇到某一检索结果项满意并进行点击,则操作结束;否则跳过该项继续往后查看。第 i 个位置的文档项被点击的概率为:
    48f5f9eb-dd78-4ad0-bb08-514712295384
    其中 ri 表示第 i 个文档被点击的概率,前 i-1 个文档则没有被点击,概率均为 1-rj

    4、ERR(Expected reciprocal rank)

    预期的倒数排名,表示用户的需求被满足时停止的位置的倒数的期望,与 RR 计算第一个相关文档的位置倒数不同。
    首先用户在位置 r 处停止的概率 PPr 计算公式如下:
    d9f84f88-933b-49dd-a6e2-0f470eb81386
    其中 Ri 是关于文档相关度等级的函数,现假设该函数为:
    3623a307-2760-4c02-806a-ea9ca4be5ceb
    当文档是不相关的(g=0),则用户检索到相关文档的概率为0;而当文档极其相关(g=4,如果相关度划分5个等级)时,用户检索到相关文档的概率接近于1。上面公式中的 g 表示文档的相关度,参考 NDCG 中的 rel。
    更通用一点来讲,ERR 不一定是计算用户需求满足时停止的位置的倒数的期望,它可以是基于位置的函数 φ(r) ,只要满足 φ(0)=1,且随着 r→∞,φ(r)→0。
    ERR 的计算公式如下:
    29e3a765-0beb-4df5-beb1-010ac8a91b63
    可以看出,当 φ(r)=1/r 时就是 ERR,当 φ(r)=1/log2(r+1) 就是DCG。
     

    参考链接:

     
     
    by. Memento
  • 相关阅读:
    dedecms5.7安装百度(ueditor)编辑器的方法
    shell多线程之进程间通信(2)
    shell多线程之进程间通信
    awk笔记
    用shell做简单的分布式计算
    C语言实现常用查找算法——二分查找
    C语言实现常用排序算法——基数排序
    C语言实现常用数据结构——堆
    C语言实现常用数据结构——图
    C语言实现常用数据结构——二叉查找树
  • 原文地址:https://www.cnblogs.com/memento/p/8673309.html
Copyright © 2011-2022 走看看