0%

NLP|分类与匹配的各类评价指标

各类指标总结。

各类指标

首先记录一下符号: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任务比较难,而且需要大量的算力,所以不建议算力不充足的童鞋自己搞,容易走很多弯路。

大致就是这样啦,梳理完这些评价指标后,舒服啦🤩

Would you like to buy me a cup of coffee☕️~