NLP模型评价

原文:https://homes.cs.washington.edu/~marcotcr/acl20_checklist.pdf

译文:https://blog.csdn.net/qq_37236745/article/details/107251063

评论:https://zhuanlan.zhihu.com/p/159035275

评论:https://zhuanlan.zhihu.com/p/158500675

Github:https://github.com/marcotcr/CheckList

1.这篇论文讲了什么

这是一篇ACL2020最佳论文。《Beyond Accuracy: Behavioral Testing of NLP Models with CHECKLIST》。这篇论文解决的是NLP领域的模型评测问题。

为什么要做这个呢? 因为作者判断当前模型评估存在问题,依靠准确率的评估不够全面。验证集不够全面,同时验证集和训练集存在同样的bias(可以理解成分布相同),单一的统计量很难找到模型的问题。

在此之前,也有针对模型测试提出不同的方法:robustness to noise,adversarial changes, fairness, logical consistency, explanations, diagnostic datasets, interactive error analysis。但是这些方法不够全面。本文结合软件工程的见解应用到NLP模型测试当中,具体是“行为测试”(也称黑盒测试)的概念,通过验证输入-输出行为来测试系统的不同功能,而不需要了解系统的内部结构。

发布开源工具:CHECKLIST。用于对NLP模型进行全面的行为测试。通过提供适用于大多数任务的语言能力列表,指导用户测试。与不采用CHECKLIST时相比,志愿者借助CheckList进行测试后,在极短的时间内就生成了多出一倍的测试样例,并从中发现了三倍未知的bug。

CHECKLIST的思想借鉴了软件工程中的“黑盒测试”方法。它试图给出一套清晰完整的方法论,告诉你What to Test以及How to Test

What to Test(10项) 10种基本功

Vocabulary+POS: important words or word types for the task 是否熟练掌握任务相关词汇

Taxonomy: synonyms, antonyms, etc 是否理解同义词、反义词

Robustness, to typos, irrelevant changes, etc 拼写错误,无关紧要的变化

NER, appropriately understanding named entities 是否正确理解了命名实体

Fairness,

Temporal, understanding order of events 了解事件的顺序

Negation, 否定

Coreference, 指代

Semantic Role Labeling, understanding roles such as agent, object, etc 语义角色标注(理解角色,如代理,对象等)

Logic, ability to handle symmetry, consistency, and conjunctions 是否前后连贯一致,能够处理对称、一致性和连词

How to Test(3项)

Minimum Functionality test:MFT 最小功能测试

Invariance test:INV 不变性测试

Directional Expectation test:DIR 定向期望测试

最后原文针对3个任务的一些SOTA模型进行了CheckList测试。3个任务分别是情感分析,重复问题检测和机器阅读理解。 具体是怎么做的呢?

为了将潜在的问题分解为特定的行为,checklist引入了不同的测试类型。

**模板:**测试样例和干扰通常可以归纳为一个模板,以便在一组更加多样化的输入上测试模型。I {NEGATION} {POS_VERB} the {THING}。

{NEGATION} = {didn’t, can’t say,…} {POS_VERB}={love, like, …}

还可以扩展模板,通过提供的abstraction生成测试用例。

(1)情感分析任务的例子:

当否定句出现在句子结尾(例如,我以为这架飞机很糟糕,但其实并不是);BERT带有歧视:black,gay,lesbian判定为消极,asian,straight判定为积极。

(2)文本相似度quora question pair任务上:

模型缺乏解决任务所需的关键技能,忽略单词表中重要的修饰词。

缺乏对常用词的同义词和反义词的基本了解。

对于错别字和简单的复述都没有鲁棒性。

在NER测试上的错误揭示了模型过于依赖shortcut,例如对命名实体的锚定,而不是理解命名实体及其对问题是否重复的影响。

这些模型通常无法对简单的时间进行区分,也无法对简单的指代进行区分。

无法处理指代/谓语更改,或主动/被动交换。

最后当问题顺序被颠倒时,预测也可能发现变化。预测也不符合逻辑,例如传递性。

(3)机器理解任务上:

Bert经常无法正确地把握强度修饰符和比较/最高级。例如将属性(大小、颜色、形状)与形容词进行匹配,在动物-交通工具,工作-国籍之间进行区分,或涉及反义词的比较中,也失败了。

无论是在问题还是上下文中,模型都无法处理时间概念(如之前,之后,最后和第一个)或简单的否定句。也带有特殊的偏见。比如“John is not a doctor, Mary is.”; “Who is a doctor?” 模型错误的概率有89.1%。但如果换一下名字,错误率只有3.2%。

(4)讨论:

有些测试仅针对特定任务(比如,积极的形容词),但能力和测试类型是一般性的,许多可以跨任务应用,比如测试拼写错误的鲁棒性,或轻微的变化(根据任务的不同,改变命名实体会产生不同的期望)。

测试强调各个方面的改进,尤其是当前任务中未能展示,而实际需要的基本技能(例如,基本否定,主题/对象区分等)。隐式否定(“我希望它很好”),还有新的测试功能,例如处理不同长度的句子与段落,以及依赖于隐含期望的情绪。

checklist为评估nlp模型的特定行为(逻辑一致性、抗噪声能力等)提供了一个框架,以便系统地评估这些技术以及各种其他功能。但是checklist不能直接用于非行为问题,例如数据版本控制问题,标签错误,注视者偏见,最坏情况下的安全问题或缺乏可解释性。

2.这篇论文对我们当前问答任务的测试带来什么帮助

隐式否定

基本否定,

拼写错误,

主题/对象区分,

主动/被动交换,

人名和职业中的性别歧视,

部分词汇的正负面偏见,

不同长度的句子,

强度修饰词和比较/最高级,

时间概念的引入,

指代/谓语的更改,

常用词的同义词和反义词,

问句的顺序颠倒

强度修饰词:大的粉色的盒子。

鲁棒性:xx品牌有xx产品吗?xx品牌没有xx产品吗?xx品牌的产品有哪些?xx品牌的产品怎么样?

3.业内问答系统的测试设计

《智能问答系统:问句预处理、检索和深度语义匹配技术》

https://zhuanlan.zhihu.com/p/70203821

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值