各类指标总结。
各类指标
首先记录一下符号:TP(true positive)、FP(false positive)、FN(false nergative)、TN(true negative)。表格如下:
pred\real | True | False |
---|---|---|
True | TP | FP |
False | FN | TN |
accuracy与error rate
precision/recall/F1 score
precision表示在预测为正的样本中,真的为正的样本的比例;
recall表示在原本真的为正的样本中,预测为正的样本的比例。
F1-score是精确率与召回率的权衡。
注意:precison、recall、F1score仅使用于二分类问题。对于多分类问题,使用的是micro-P、micro-R、micro-F1以及macro-P、macro-R、macro-F1。
micro: “Micro”是通过先计算总体的TP, FP和FN的数量,然后计算PRF。
macro:“Macro”是分别计算每个类别的PRF,然后分别求平均得到PRF。
链接:micro与macro
如何每个class的样本数量相差不大,那么宏平均和微平均差异也不大
如果每个class的相差较大并且你想:
更注重样本量多的class:使用微平均
更注重样本量少的class:使用宏平均
如果微平均远低于宏平均,则应该去检查样本量多的class
如果宏平均远低于微平均,则应该去检查样本量少的class
EM
EM,全称exact match。EM度量是在问答系统中广泛运用的指标。它衡量的是与任何一个真实答案完全匹配的预测的比例。是SQuAD的主要衡量指标。
MRR
MRR,全称mean reciprocal rank,广泛用于评估NLP中需要排序的模型与算法中,常见于信息检索与问答任务中。具体公式如下:
其中,$Q$表示query的个数,$rank_i$表示第i个query在真实答案集中出现的位置。举个🌰(来源于知乎):
可计算这个系统的MRR值为:(1/3 + 1/2 + 1)/3 = 11/18=0.61。
MAP
mAP,顾名思义,即AP的平均值,那么就需要先计算AP,然后再对其进行平均。
在信息检索中,AP指的是不同召回率上的正确率的平均值,而现在的有些检索系统为了能够快速返回结果,在计算AP时就不再考虑召回率。换句话说,如果数据库中和查询信息相关的5条信息,分别出现在查询结果中的第1、3、6、9、10位,那么这次查询的AP就是:
得到多条查询的AP值,对其进行平均,就得到了mAP。来源
NDCG
指标在文本匹配中的应用
相似度计算与复述识别
这个任务是给出两句话,判断两者是不是表达了同样的含义,或者两句话的相似度有多高,一般都是当成分类问题来对待。常用的公开数据集有:STS、QQP、MSRP,当然啦,还有PPDB,但是数量太大,我没有跑过这个数据集,前面三个数据集就已经很好啦。由于是分类问题(pointwise),所以评价指标一般使用Accuracy或者F1 score。
问答匹配(answer selection)
这个任务指的是:给定问题与问题的候选答案池,从中选择出最好的答案,如果说选择的答案在真实答案集中,说明问题被很好的回答了,否则的话,问题就没有被很好的回答。一般来说,问答匹配会采用pairwise的学习方式,即同question的一对正负样本作为一个训练样本,当然也会使用listwise。常用的数据集有:TrecQA、insuranceQA、WikiQA,还有QNLI,我一般会使用前三个,QNLI是很大的数据集,还没尝试过(关键是么得算力😫)。评价指标使用mAP与MRR等指标。
对话匹配(response selection)
对话匹配任务还没有试过,相比问答匹配来说,对话会更加难一些,因为它的回复空间非常大。常见的数据集:UDC、Douban conversation Corpus。评价指标使用Recall_n@k,也就是n个候选回复中,合理回复出现在前k个位置就算成功。当然也会使用mAP与MRR。
自然语言推理/文本蕴含识别
NLI/RTE任务指的是:给定句子A(premise)的前提下,如果句子B(hypothesis)为真,那么就是A蕴含了B;如果B为假,那么A与B互相矛盾;否则A与B相互独立。一般来说,NLI/RTE被视为三分类问题(pointwise)。常见的数据集“SNLI、XNLI、MNLI。评价指标使用micro-PRF与macro-PRF。
信息检索(Information Retrieval)
信息检索,一般都是先进行相关项的找回,然后再对其进行rank。评价指标会使用mAP与MRR。
机器阅读理解(Machine Reading Comprehension)
MRC任务就是在文本段中找寻答案的过程。常用数据集有:SQuAD、MS MARCO、CoQA等等。评价指标主要是EM。MRC任务比较难,而且需要大量的算力,所以不建议算力不充足的童鞋自己搞,容易走很多弯路。
大致就是这样啦,梳理完这些评价指标后,舒服啦🤩