机器阅读理解一直是自然语言处理中的重要任务。近来很多研究都在致力于解决这一问题,包括采用专家规则、机器学习和神经网络,以及最近较为火热的预训练语言模型等。尽管目前已有很多预训练语言模型在 SQuAD 等榜单上超过人类水平,但对于因果推理,特别是数字方面的推理仍有很大不足。例如,当文本中出现几组数字,向机器提出问题,如「排名第二大的值是多少?」,则机器可能无法很好地回答。
为了解决这一问题,帮助模型在数字离散推理方面更进一步,腾讯微信团队近日提出了专门针对这一任务的模型—NumNet+。该模型基于 NumNet 架构进行了改进,在 DROP 阅读理解榜单上取得了第一名的成绩,F1 和 EM 分数均超过之前效果最优的谷歌集成模型 BERT-Calculator 一个点以上。目前这项工作已开源,机器之心近日采访了微信团队,请研究人员介绍这项新 SOTA 工作。
DROP 榜单的最新排名(2019 年 10 月 16 日)。
- 项目地址:https://github.com/llamazing/numnet_plus
- 榜单地址:https://leaderboard.allenai.org/drop/submissions/public
登顶 DROP 榜单
数字离散推理是机器阅读理解下的一个重要任务,目的是考察机器是否能够根据文本中的一处或多处信息,结合问题处理这些信息,通过数字运算等方式,较好地回答给定的问题。考察这一能力的便是 DROP 排行榜。DROP(Discrete Reasoning Over the content of Paragraphs)是艾伦 AI 实验室等提出的一个数据集。相比 SQuAD 数据集,DROP 对模型的数字推理能力要求更高。在训练过程中,模型无法显式地通过抽取或文字匹配的方式直接获得信息,而是需要从文本的多个地方获取数字信息,然后进行运算(包括但不限于:相加、计数或排序)。
DROP 数据集有将近 8 万的训练集问题、近 1 万个开发集问题和同样数量的隐藏测试集问题。这些问题是通过众包形式创建出来的。此外,只有训练集和开发集公开,而测试集不会开放。目前人类在该数据集上的表现(F1 分数)目前为 96%,而在数据集刚刚提出的时候,基线模型的 F1 分数仅仅为 32%。
DROP 数据集中的一些文本、问题和对应的答案。可以看出,模型需要进行对数值进行加减、按年代排序、或进行因果推理。
DROP 榜单是艾伦 AI 实验室设立的一个类似于 GLUE 榜单的排名,参与者需要按照要求的格式将模型打包为 Docker 镜像后上传,由网站自己将测试集放到模型中进行测试,以此保证公平性。同时,DROP 严格限制参与者每周仅能上传一次,以防刷榜。
那么,模型具体的架构是什么样的?机器之心采访了微信团队,为读者朋友们介绍模型背后的技术原理。
NumNet+:能进行数字运算的模型
刷新本次榜单的是 NumNet+模型,由微信团队的 Ronqin Yang、Qiu Ran、Yankai Lin、Peng Li、Jie Zhou 研究者完成的。
据介绍,本次刷新榜单的是 NumNet+是基于 NumNet 模型构建的,采用了编码层+推理层+预测层的架构。具体而言,NumNe+t 的编码层使用了最新的 RoBERTA 预训练模型,用于编码输入的文本和问题,并利用预训练语言模型学习文本中的语义、语法等先验信息。推理层使用了图神经网络,用于处理编码好的文本和问题信息,而预测层则和 NAQANet 类似,将问题分为四种,并计算潜在答案的概率。
从流程上来说,首先使用预训练语言模型编码文本和问题信息,通过编码方式获取语义结构化的先验知识。随后,将编码的信息输入推理层中,这是 NumNet+的核心层,用于进行数字感知。模型可以学习到用哪些数字进行比较,以及比较这些数字的方法。
图神经网络这样处理数字信息:给定一个问题和一段文本,模型会先把文本和问题中的数字都抽取出来,每个数字是图上的一个节点。同时,对于任意两个数字,假设为 A 和 B。如果 A 大于 B,则在 A 和 B 之间添加一条有向边,表示数字 A 和 B 之间有着 A 大于 B 的关系。如果 A 小于等于 B,则加入另一指向的有向边。通过这样的操作,用图的拓谱结构把数字相对大小知识注入模型。下一步则结合文本信息,让模型进行更复杂的数学推理。通过二者的结合,最终实现数字方面的之所以使用图神经网络,是因为图网络在符号推理上具有更好的优势,可以很好地建模数字之间的大小关系。
NumNet+的整体架构
在获得了数字之间的关系信息后,信息被传入最终的预测层中。在预测时,由模型给定答案属于的类别的条件概率,主要分为以下四种:
- 文本:答案来自文本;
- 问题:答案来自问题;
- 计数:答案需要模型计数回答;
- 算术表达:通过数学运算获得答案。
最终由预测层提供预测回答。
从模型效果来看,在 DROP 榜单上取得的效果是非常惊艳的。在测试集上,完全匹配(Exact Match:EM)分数达到了 79.36%。而 F1 分数更达到了将近 83%,高出第二名一个点以上。
同时,据微信团队介绍,他们的 OCN 模型在 RACE 榜单——一个由中国初高中英语阅读选择题组成的数据集上,性能已经超过了众包的人类水平,说明了这一模型优秀的性能。
当然,微信团队也表示,目前尽管 NumNet+刷新了 DROP 排行榜,但仍有一些不足。首先,NumNet+目前支持的运算还太少,需要进一步学会更多的数字表达式。此外,从长期来看,NumNet+模型还需要在多种不同的文本上进行测试,如在文字描述简单,但需要的数字推理更为复杂的文本(如数学应用题)上提升推理表现。最终,构建出一个既能够处理文本复杂但运算简单,也能在文本简单但运算复杂的文本上进行推理的高性能模型,是团队接下来会探索研究的方向。
打破机器推理的障壁
微信团队表示,本次研究提出 NumNet+,主要是为了解决现有模型在数字离散推理方面存在的问题。诚然,预训练语言模型,如 BERT 等,已经在机器阅读理解数据集(SQuAD 等)上取得了很大的成功。但是,即使是目前最先进的预训练语言模型也无法超越人类的推理能力。因此,本次实验的目的是为了进一步探索机器推理领域。此外,考虑到传统的神经网络在符号运算上存在的天生短板,学界目前依然缺乏一种通用、成熟的建模方式,NumNet+无疑提出了一种「预训练语言模型+图神经网络」的处理方法。此外,NumNet+的成功再一次证明了预训练语言模型在语言建模和编码上的强大优势,机器阅读理解模型也可以通过构建合适的预训练微调方法实现超越复杂专业模型的表现。
谈到机器阅读理解目前的发展和趋势,微信团队表示,将来的机器阅读理解会更注重几个方面的研究。首先是开放式问答,由机器自行从库中搜索并收集信息进行问答。其次是数字离散推理,即本次研究探索的方向。此外,还有通过对文本进行多步推理,从多条文本中获取答案的研究。最后是常识推理,即让模型像人类一样具有常识,并利用常识知识进行推理和问答。
从应用上来说,NumNet+这项工作可以为诸如人机对话场景提供很多技术支持,使得对话更为智能,帮助客服机器人、语音助手等更好完成人类的指令。同时,在金融大数据方面,本研究可以帮助机器智能地阅读财务报表等涉及数字的文本内容,使得信息抽取和挖掘工作变得更容易。
目前,NumNet+代码已开源,微信团队对开源持开放态度,希望能够推动社区发展和技术交流。
参考链接:
NumNet 论文地址:https://arxiv.org/abs/1910.06701
DROP 数据集:https://allennlp.org/drop
机器之心「SOTA模型」:22大领域、127个任务,机器学习 SOTA 研究一网打尽。
www.jiqizhixin.com/sota
PC 访问,体验更佳