ApEx&mOmOcO's Lofter.

QA系统问题中的常用指标

Word count: 2.7kReading time: 10 min
2019/10/28 Share

QA系统问题中的常用指标

QA系统作为信息检索系统中的其中一种,其大致也通过信息检索系统的常用的指标进行性能评估。

其评价指标主要可以分为两类:

  • 对单个查询进行评估的指标:对单个查询得到一个结果
  • 对多个查询进行评估的指标(通常用于对系统的评价):求平均

单个查询的评价指标

P&R

召回率(Recall)=检出的相关文档数/相关文档数,也称为查全率,

准确率(Precision)=检出的相关文档数/检出文档数,也称为查准率,

例:某池塘有1400条鲤鱼,300只虾,300只鳖。现在以捕鲤鱼为目的。撒一大网,逮着了700条鲤鱼,200只虾,100只鳖。

正确率precision = 700 / (700 + 200 + 100) = 70%

召回率recall = 700 / 1400 = 50%

F值 = 正确率 召回率 2 / (正确率 + 召回率) (F 值即为正确率和召回率的调和平均值)

如果把池子里的所有的鲤鱼、虾和鳖都一网打尽,这些指标又有何变化:

正确率 = 1400 / (1400 + 300 + 300) = 70%

召回率 = 1400 / 1400 = 100%

F值 = 70% 100% 2 / (70% + 100%) = 82.35%

由此可见:

  • 正确率是评估捕获的成果中目标成果所占得比例;

  • 召回率,顾名思义,就是从关注领域中,召回目标类别的比例;

  • 而F值,则是综合这二者指标的评估指标,用于综合反映整体的指标

在QA系统中,假设对3个正确答案7个错误答案组成的QA测试集进行分类,

召回率(Recall)=被系统分类为正确的答案个数/正确答案总数,

准确率(Precision)=被系统分类为正确的答案个数/分类问题总数,

F-Measure

当然希望检索结果Precision越高越好,同时Recall也越高越好,但事实上这两者在某些情况下有矛盾的:

比如极端情况下,我们只搜索出了一个结果,且是准确的,那么Precision就是100%,但是Recall就很低;而如果我们把所有结果都返回,那么比如Recall是100%,但是Precision就会很低。

P和R指标有时候会出现的矛盾的情况,这样就需要综合考虑他们,最常见的方法就是F-Measure(又称为F-Score)。

F-Measure是Precision和Recall加权调和平均

img

当参数α=1时,就是最常见的F1,也即

img

可知F1综合了P和R的结果,当F1较高时则能说明试验方法比较有效。

Precision-Recall 曲线

因此在不同的场合中需要自己判断希望Precision比较高或是Recall比较高。

如果是做实验研究,可以绘制Precision-Recall曲线来帮助分析。

P-R曲线的优点:简单直观;既考虑了检索结果的覆盖度,又考虑了检索结果的排序情况
P-R曲线的缺点:单个查询的P-R曲线虽然直观,但是难以明确表示两个查询的检索结果的优劣。

AP Average Precision

对给定的任务和类别,precision/recall曲线以一种方法的排序输出来计算。Recall被定义为给定序列上所有正样本的部分;precision被定义为正类别序列上的所有样本。AP概括了precision/recall曲线的形状,被定义为在一组11个等间距recall水平[0, 0.1, 0.2,…,1]上的precision平均值。这意味着我们选择11个不同的置信度阈值(这决定序列)。置信度阈值的设定需要使recall值,即插值为0,0.1,0.2,…,1。

平均准确率AP是对不同召回率点上的正确率进行平均操作所得的结果:

  1. 未插值的AP: 某个查询Q共有6个相关结果,某系统排序返回了5篇相关文档,其位置分别是第1,第2,第5,第10,第20位,则AP=(1/1+2/2+3/5+4/10+5/20+0)/6 ;
  2. 插值的AP:在召回率分别为0,0.1,0.2,…,1.0的十一个点上的正确率求平均,等价于11点平均 ;
  3. 只对返回的相关文档进行计算的AP, AP=(1/1+2/2+3/5+4/10+5/20)/5,倾向那些快速返回结果的系统,没有考虑召回率。

NDCG Normalized Discounted Cumulative Gain

每个文档不仅仅只有相关不相关两种情况,而是有相关度级别,比如0,1,2,3。

故可以假设,对于返回结果:

  1、高关联度的结果比一般关联度的结果更影响最终的指标得分;

  2、有高关联度的结果出现在更靠前的位置的时候,指标会越高;

NDCG(Normalized Discounted Cumulative Gain):计算相对复杂。对于排在结位置n处的NDCG的计算公式如下:

  • Gain:

    正确度分成从0到r的r+1的等级(r可设定)。当取r=5时,等级设定如下图所示:

  • Cumulative Gain:

    只考虑到了相关性的关联程度,没有考虑到位置的因素。它是一个搜素结果相关性分数的总和

    举例:假设搜索“篮球”结果,最理想的结果是:B1、B2、 B3。而出现的结果是 B3、B1、B2的话,CG的值是没有变化的,因此需要下面的DCG。

    例如现在有一个查询query={abc},返回下图左列的Ranked List(URL),当假设用户的选择与排序结果无关(即每一级都等概率被选中),则生成的累计增益值(从1到n的所有的位置上的贡献值都被加起来作为最终的评价结果,这样,一个一定长度的文档序列被转换成了一个相关分值的序列)。如下图最右列所示:

  • Discounted Cumulative Gain:

    目的就是为了让排名越靠前的结果越能影响最后的结果。假设排序越往后,价值越低

    考虑到一般情况下用户会优先点选排在前面的搜索结果,所以应该引入一个折算因子(discounting factor): 。那么第i个结果产生的效益就是:

    引入相关影响度比重计算DCG:

    这时将获得DCG值(Discounted Cumulative Gain)如下如所示:

  • NDCG:

    NDCG, Normalized 的DCG,由于搜索结果随着检索词的不同,返回的数量是不一致的,而DCG是一个累加的值,没法针对两个不同的搜索结果进行比较,因此需要归一化处理。

    最后,为了使不同等级上的搜索结果的得分值容易比较,需要将DCG值归一化的到NDCG值。

    操作如下图所示,首先计算理想排序后返回结果List的最大的MaxDCG值:

    然后用DCG/MaxDCG就得到NDCG值,如下图所示:

故如上图所示,NDCG@5 = 87%。

NDCG优点:图形直观,易解释;支持非二值的相关度定义,比P-R曲线更精确;能够反映用户的行为特征(如:用户的持续性persistence)
NDCG缺点:相关度的定义难以一致;需要参数设定

多个查询的评价指标

多个查询的评价指标,一般就是对单个查询的评价进行求平均。平均的求法一般有两种:

  1. 宏平均(Macro Average):对每个查询求出某个指标,然后对这些指标进行算术平均
  2. 微平均(Micro Average):将所有查询视为一个查询,将各种情况的文档总数求和,然后进行指标的计算

例如:

Micro Precision=(对所有查询检出的相关文档总数)/(对所有查询检出的文档总数)

  • 宏平均对所有查询一视同仁

  • 微平均受返回相关文档数目比较大的查询影响。

宏平均和微平均的例子:
两个查询q1、q2的标准答案数目分别为100个和50个,某系统对q1检索出80个结果,其中正确数目为40,系统对q2检索出30个结果,其中正确数目为24,则:
P1=40/80=0.5, R1=40/100=0.4
P2=24/30=0.8, R2=24/50=0.48
MacroP=(P1+P2)/2=0.65
MacroR=(R1+R2)/2=0.44
MicroP=(40+24)/(80+30)=0.58
MicroR=(40+24)/(100+50)=0.43

MAP

MAP(MeanAP :Mean Average Precision):对所有查询的AP求宏平均。具体而言,单个主题的平均准确率是每篇相关文档检索出后的准确率的平均值。主集合的平均准确率(MAP)是每个主题的平均准确率(AP)的平均值

MAP 是反映系统在全部相关文档上性能的单值指标。系统检索出来的相关文档越靠前(rank 越高),MAP就可能越高。如果系统没有返回相关文档,则准确率默认为0。

多个查询下的查准率/查全率曲线,可通过计算其平均查准率得到,公式如下(Nq为查询的数量) :

P(r) 是指查全率为r时的平均查准率, Pi(r)指查全率为r时的第i个查询的查准率 。

例如:假设有两个主题,主题1有4个相关网页,主题2有5个相关网页。某系统对于主题1检索出4个相关网页,其rank分别为1, 2, 4, 7;对于主题2检索出3个相关网页,其rank分别为1,3,5。对于主题1,平均准确率为(1/1+2/2+3/4+4/7)/4=0.83。对于主题2,平均准确率为(1/1+2/3+3/5+0+0)/5=0.45。则MAP= (0.83+0.45)/2=0.64。

MRR

MRR(Mean Reciprocal Rank) :对于某些IR系统(如问答系统或主页发现系统),只关心第一个标准答案返回的位置(Rank),越前越好,这个位置的倒数称为RR,对问题集合求平均,则得到MRR。(把标准答案在被评价系统给出结果中的排序取倒数作为它的准确度,再对所有的问题取平均)

例一:两个query,系统对第一个问题返回的标准答案的Rank是2,对第二个问题返回的标准答案的Rank是4,则系统的MRR为(1/2+1/4)/2=3/8

再举个例子:有3个query如下图所示:(黑体为返回结果中最匹配的一项)

可计算这个系统的MRR值为:(1/3 + 1/2 + 1)/3 = 11/18=0.61。

该指标计算的是:

在给定n个候选答案的情况下,抽取最匹配(best-matched)的k个答案,计算这k个答案中正确答案的召回率

Author:ApEx&mOmOcO

原文链接:https://apexmeister.github.io/2019/10/28/blog5/

发表日期:October 28th 2019, 8:26:49 pm

更新日期:October 28th 2019, 8:34:02 pm

版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可, 转载请注明出处

CATALOG
  1. 1. QA系统问题中的常用指标
    1. 1.1. 单个查询的评价指标
      1. 1.1.1. P&R
      2. 1.1.2. F-Measure
      3. 1.1.3. Precision-Recall 曲线
      4. 1.1.4. AP Average Precision
      5. 1.1.5. NDCG Normalized Discounted Cumulative Gain
    2. 1.2. 多个查询的评价指标
      1. 1.2.1. MAP
      2. 1.2.2. MRR
      3. 1.2.3. R_n@k