NLP机器阅读理解:四大任务及相应数据集、比赛
共 4513字,需浏览 10分钟
·
2021-09-30 02:13
作者 | 周俊贤
整理 | NewBeeNLP
关于机器阅历理解应用,首先介绍大家一个真实的业务场景,从网购平台的退单工单中抽取实际退款金额,数据大概是这样:
你好,我3月份在网上买的洗衣服务,当时买了100元,可以洗4件衣服,现在我想退款,由于已用了2次,还剩下2次使用权限,考虑到当时的价格是优惠价,所以我现在请求退款30元。
很明显的,这个工单中实际退款金额应该是30元,但问题是假如用NLP的模型去做,你怎么定义这个任务?也许有人会说,命名实体识别啊,把30元作为label把它标出来,让模型去学习不就完了吗?请仔细想想,用命名实体识别做这个场景的问题在于对于上面的一条样本,里面出现两个金额,一个是100元,一个是30元,不考虑问题的情况下,它们都是金额,命名实体识别通常是解决一种平衡的问题,就是要标的话就一起标,但很明显,对于上面这个样本,真正的答案只有30元。
所以,解决这类业务场景的最佳方案应该是用机器阅读理解的手段,更准确的应该是机器阅读理解里面的「答案抽取任务」。
我一直在思考,假如NLP的任务分成四种:「分类任务、序列标注、句子关系、生成任务」的话,机器阅历理解究竟属于哪类任务。首先肯定是的,机器阅历理解属于NLU而不是NLG范围。再换个角度思考,机器阅历理解最常见的应用在哪里?我想还是搜索引擎和智能客服问答(如问一个问题,后台会从问答库或知识库检索相关的文章,再经过机器阅读理解模块得到相应的答案),这样说,机器阅历理解不是一个单一的应用,而是常常嵌入到搜索引擎或对话系统里面发挥作用,业务上遇到的频率肯定不如文本分类这种任务来得多,「建议刚学NLP的新手同学,最好先从文本分类和命名实体识别这种基础场景学起,而不是一开始就学习机器阅读理解,会很容易没有产出」。
具体的,本文介绍机器阅读理解(下面统一简称MRC,machine reading comprehension)的四大任务,以及各任务的数据集和相关的比赛,供有兴趣的同学进行学习,资料主要来自于2019年的一篇论文:《Neural Machine Reading Comprehension_Methods and Trends》。
任务一:完型填空
完型填空在英文论文里,又叫做cloze test。就是把文档里面的话随机挖空一些词,让模型进行预测。
中文:相对论是关与时间和引力的理论,主要由爱因斯坦创立。 -> 相对论是关与时间和引力的理论,主要由____创立。
英文:Relativity is a theory about space-time and gravity, which was founded by Einstein。 -> Relativity is a theory about space-time and gravity, which was founded by ____。
这个任务是否似曾相识?这不就是BERT做预训练时候的任务之一吗,把句子里面的某些词【MASK】掉,让模型进行预测,当然在BERT里面是随机挑选15%的词,再按比例【MASK】掉,但在具体的阅读理解任务中肯定是把有意义的词挖空掉,再让模型进行预测。
完型填空随着BERT等预训练任务的出现,已经慢慢淡出大众的视野,主要原因是跟业务场景不结合,基本没有业务场景会用到完形填空的功能,完形填空任务目前最常见的应用就是作为评测模型的指标之一。
数据集
CNN/Daily Mail
CNN/Daily Mail(简称CNN/DM)作为单文本摘要语料库,每篇摘要包含多个摘要句。数据集最初是从美国有限新闻网(CNN)和每日邮报网(Daily Mail)收集的约100万条新闻数据作为机器阅读理解语料库。后来进行简单改动,形成用于单文本生成式摘要的语料库。将每篇新闻的要点按原文中出现的顺序组成多句的摘要,每个要点看成是一个句子。
CNN/Daily Mail作为英文文本生成一个最常见的数据集,相信大家并不陌生,其实它一开始是用于机器阅读理解的,就是把里面的一些词挖空,让模型进行预测。
CBT
由Facebook在16年发布,数据来源于儿童读物。
比赛
第一届“讯飞杯”中文机器阅读理解评测[1]
任务二:单项/多项选择
单项选择也是我目前正在参加的一个比赛,当然也有难度更大的多项选择任务。单项选择就是给定一个文章、一个问题、若干个选项,要求模型根据文章和问答从答案中选择一个最合适的答案,如下图所示。
Content:I wanted to plant a tree. I went to the home and garden store and picked a nice oak. Afterwards, I planted it in my garden.
----------------------------------------------------------------------------------
Question 1: What was used to dig the hole?
Candidate Answers:A. a shovel B. his bare hands
----------------------------------------------------------------------------------
Question 2: When did he plant the tree?
Candidate Answers:A. after watering it B. after taking it home
数据集
MC Test:四选一,数据来自660篇科幻小说。 RACE:这是比较出名的数据集,来自于中国中高考阅读理解提醒,想想大家以前在高中做的英语阅读理解,有部分题目是要经过推理才能得到正确答案的,所以这些任务可以更准确地评估机器对语言的理解能力。
比赛
2021海华AI挑战赛·中文阅读理解·技术组[2]
任务三:答案抽取
答案抽取为给定一个文章,一个问题,要求机器根据问题从文章中找出一个连续的片段作为答案,如下图所示。
文章:目前中信银行信用卡额度一般从3000元到五万元不等。中信普卡的额度一般为3000元到10000元之间,中信白金卡额度在一万到五万之间。中信信用卡的取现额度为实际额度的50%。如果信用卡批卡之后,持卡者便就可以查询您的信用额度。
问题:中信信用卡白金卡额度是多少?
答案:一万到五万。
数据集
SQuAD:SQuAD数据集十分出名,是斯坦福大学于2016年推出的数据集,一个阅读理解数据集,给定一篇文章,准备相应问题,需要算法给出问题的答案。此数据集所有文章选自维基百科。我认为出名的主要原因是这个数据集的量十分大,一共有108885问题,以及配套的536篇文章,大的数据集让训练一个大的模型成为可能。 NewsQA:NewsQA数据集由微软于2016年发布。该数据集包含12万问答对,值得一提的是,相对于SQuAD,NewsQA包含了更多的文章和问题,而且需要复杂推理的问题也比SQuAD更多。
比赛
2020语言与智能技术竞赛:机器阅读理解任务[3]
任务四:自由问答
自由问答为给定一个文章,一个问题,要求模型基于文章和问题生成一个合适的答案,该答案不局限于文章中已存在的词语,是自由生成的,如下图所示。自由问答与答案抽取的关系就像文本摘要生成的抽取式和生成式方法,但用自由问答来做阅读理解有个问题,就是模型生成的答案很难评估它的好坏。
文章:1. 長出來的智齒,只要是無法自我維持良好的清潔;或是現在、未來可能生病無法挽救;或矯正、假牙、復形或其他醫療考量,都有可能需要拔智齒。2. 沒長出來的智齒,醫師會評估若現在、未來有病變的風險,可能需要拔智齒。3. 拔智齒只是智齒相關手術處置其中一種。然而,自我口腔清潔,定期回診最重要。
问题:智齿要拔吗?
答案:智齿不一样要拔,一般只拔出有症状表现得智齿,比如说经常引起发炎得。
数据集
MS MARCO:MS MARCO包含了1010916个匿名问题,均来自Bing的搜索查询日志,日志中均包含AI生成的答案和182669条人为重复的答案,该数据集还包含从3563535个文档中提取的8841823个段落。MS MARCO数据集由微软于2016年发布,并在2018年更新。 DuReader:DuReader是百度整理出来的中文阅读理解数据集,DuReader数据集由一系列的4元组构成,每个4元租{q, t, D, A}就是一条样本,其中,q代表问题,t表示问题的类型(包括实体型、描述型、是非型,其中每种类型还分为事实型和观点型),D表示问题相关文档集合,A表示一系列答案(答案由人工标注,一个问题可以有多个答案)。
比赛
百度DuReader机器阅读理解比赛[4]
一起交流
想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定要备注信息才能通过)
本文参考资料
第一届“讯飞杯”中文机器阅读理解评测: http://hfl-rc.com/cmrc2017/
[2]2021海华AI挑战赛·中文阅读理解·技术组: https://www.biendata.xyz/competition/haihua_2021/
[3]2020语言与智能技术竞赛:机器阅读理解任务: https://aistudio.baidu.com/aistudio/competition/detail/28?isFromCcf=true
[4]百度DuReader机器阅读理解比赛: https://ai.baidu.com/broad/subordinate?dataset=dureader
- END -
2021-09-19
2021-09-15
2021-08-20