SQuAD文本理解挑战赛十大模型解读

教机器学会阅读是近期自然语言处理领域的研究热点之一,也是人工智能在处理和理解人类语言进程中的一个长期目标。得益于深度学习技术和大规模标注数据集的发展,用端到端的神经网络来解决阅读理解任务取得了长足的进步。
转载:https://blog.csdn.net/c9Yv2cf9I06K2A9E/article/details/79056446
本文是一篇机器阅读理解的综述文章,主要聚焦于介绍公布在 SQuAD(Stanford Question Answering Dataset)榜单上的各类模型,并进行系统地对比和总结。

SQuAD 简介

SQuAD 是由 Rajpurkar 等人 [1] 提出的一个最新的阅读理解数据集。该数据集包含 10 万个(问题,原文,答案)三元组,原文来自于 536 篇维基百科文章,而问题和答案的构建主要是通过众包的方式,让标注人员提出最多 5 个基于文章内容的问题并提供正确答案,且答案出现在原文中。

SQuAD 和之前的完形填空类阅读理解数据集如 CNN/DM [2],CBT [3] 等最大的区别在于:SQuAD 中的答案不在是单个实体或单词,而可能是一段短语,这使得其答案更难预测。

SQuAD 包含公开的训练集和开发集,以及一个隐藏的测试集,其采用了与 ImageNet 类似的封闭评测的方式,研究人员需提交算法到一个开放平台,并由 SQuAD 官方人员进行测试并公布结果。

在这里插入图片描述

△ 图1:一个(问题,原文,答案)三元组

模型

自从 SQuAD 数据集公布以来,大量具有代表性的模型纷纷涌现,极大地促进了机器阅读理解领域的发展,下面就 SQuAD 榜单上代表性的模型进行介绍。

总的来说,由于 SQuAD 的答案限定于来自原文,模型只需要判断原文中哪些词是答案即可,因此是一种抽取式的 QA 任务而不是生成式任务。

几乎所有做 SQuAD 的模型都可以概括为同一种框架:Embed 层,Encode 层,Interaction 层和 Answer 层。

Embed 层负责将原文和问题中的 tokens 映射为向量表示;Encode 层主要使用 RNN 来对原文和问题进行编码,这样编码后每个 token 的向量表示就蕴含了上下文的语义信息;Interaction 层是大多数研究工作聚焦的重点,该层主要负责捕捉问题和原文之间的交互关系,并输出编码了问题语义信息的原文表示,即 query-aware 的原文表示;最后 Answer 层则基于 query-aware 的原文表示来预测答案范围。

在这里插入图片描述

△ 图2:一个高层的神经 QA 系统基本框架,来自[8]

Match-LSTM

在这里插入图片描述

Match-LSTM [4] 的 Answer 层包含了两种预测答案的模式,分别为 Sequence Model 和 Boundary Model。

Sequence Model 将答案看做是一个整数组成的序列,每个整数表示选中的 token 在原文中的位置,因此模型按顺序产生一系列条件概率,每个条件概率表示基于上轮预测的 token 产生的下个 token 的位置概率,最后答案总概率等于所有条件概率的乘积。

Boundary Model 简化了整个预测答案的过程,只预测答案开始和答案结束位置,相比于 Sequence Model 极大地缩小了搜索答案的空间。

最后的实验也显示简化的 Boundary Model 相比于复杂的 Sequence Model 效果更好,因此 Boundary Model 也成为后来的模型用来预测答案范围的标配。

在模型实现上,Match-LSTM 的主要步骤如下:

Embed 层使用词向量表示原文和问题;

Encode 层使用单向 LSTM 编码原文和问题 embedding;

Interaction 层对原文中每个词,计算其关于问题的注意力分布,并使用该注意力分布汇总问题表示,将原文该词表示和对应问题表示输入另一个 LSTM 编码,得到该词的 query-aware 表示;

在反方向重复步骤 2,获得双向 query-aware 表示;

Answer 层基于双向 query-aware 表示使用 Sequence Model 或 Boundary Model 预测答案范围。

BiDAF

在这里插入图片描述

相比于之前工作,BiDAF(Bi-Directional Attention Flow)[5] 最大的改进在于 Interaction 层中引入了双向注意力机制,即首先计算一个原文和问题的 Alignment matrix,然后基于该矩阵计算 Query2Context 和 Context2Query 两种注意力,并基于注意力计算 query-aware 的原文表示,接着使用双向 LSTM 进行语义信息的聚合。

另外,其 Embed 层中混合了词级 embedding 和字符级 embedding,词级 embedding 使用预训练的词向量进行初始化,而字符级 embedding 使用 CNN 进一步编码,两种 embedding 共同经过 2 层 Highway Network 作为 Encode 层输入。

最后,BiDAF 同样使用 Boundary Model 来预测答案开始和结束位置。

Dynamic Coattention Networks

在这里插入图片描述

DCN [6] 最大的特点在于 Answer 层,其 Answer 层使用了一种多轮迭代 pointing 机制,每轮迭代都会产生对答案开始和结束位置的预测,并基于这两个预测使用 LSTM 和 Highway Maxout Network 来更新下一轮的答案范围预测。

而在 Interaction 层,DCN 使用和 BiDAF 类似的双向注意力机制计算 query-aware 的原文表示。

Multi-Perspective Matching

在这里插入图片描述

Multi-Perspective Matching [7] 在 Encode 层同样使用 char,word 两个 embedding,只不过 char embedding 使用 LSTM 进行编码。

在 Encode 层之前,该模型使用一个过滤操作,作用是过滤掉那些和问题相关度低的原文词。该模型最大的特点在 Interaction 层,该层针对每个原文词使用一种 multi-perspective 的匹配函数计算其和问题的匹配向量,并使用 BiLSTM 来进一步聚合这些匹配向量。

匹配的形式包括每个原文词和整个问题的表示匹配,每个原文词和每个问题词匹配后进行最大池化,和每个原文词和每个问题词匹配后进行平均池化。

最后在 Answer 层,基于匹配向量聚合表示使用两个前馈网络来预测答案开始和结束位置。

FastQAExt

在这里插入图片描述

FastQAExt [8] 使用了一种轻量级的架构,其 Embed 层除了 word 和 char 两种 embedding 作为输入以外,还额外使用了两个特征:

  1. binary 特征表示原文词是否出现在问题中;

  2. weighted 特征表示原文词对于问题中所有词的相似度。并且这两个特征同样用在了问题词上。

在 Interaction 层,FastQAExt 使用了两种轻量级的信息 fusion 策略:

  1. Intra-Fusion,即每个原文词和其他原文词计算相似度,并汇总得到原文总表示,接着将该原文词和对应原文总表示输入 Highway Networks 进行聚合,聚合后原文词表示进一步和上下文词表示进行类似的聚合;

  2. Inter-Fusion,即对每个原文词计算和问题词的相似度,并汇总得到问题总表示,接着将将该原文词和对应问题总表示输入 Highway Networks 进行聚合,得到 query-aware 原文表示。

此外,在 Answer 层,FastQAExt 首先计算了一个问题的总表示,接着将 query-aware 原文表示和问题总表示共同输入两个前馈网络产生答案开始和结束位置概率。在确定答案范围时,FastQAExt 使用了 Beam-search。

jNet

在这里插入图片描述

jNet [9] 的 baseline 模型和 BiDAF 类似,其在 Interaction 层除了对每个原文词计算一个对应的问题表示以外,还将 Alignment Matrix 按原文所在维度进行池化(最大池化和平均池化),池化后的值表示原文各词的重要程度,因此基于该值对原文表示进行过滤,剔除不重要的原文词。

在 Answer 层,jNet 不仅先预测答案开始位置再预测答案结束位置,还反向地先预测答案结束位置再预测答案开始位置。最后对两方向概率求平均后作为总概率输出。

jNet 的最大创新在于对问题的理解和适应。为了在编码问题表示时考虑句法信息,jNet 使用 TreeLSTM 对问题进行编码,并将编码后表示作为 Interaction 层的输入。

为了对不同问题进行适应,jNet 首先使用了问题类型的 embedding,将该 embeeding 作为 Interaction 层输入。

另外,jNet 定义了 K 个 cluster 的中心向量,每个 cluster model 了一个特定的问题类型比如"when","where"等,接下来的适应算法分为两步:adapting 和 updating。

Adapting 指根据问题总表示和 K 个 cluster 的相似度来更新出一个新的问题表示,并输入 Interaction 层;Updating 层旨在修改 K 个 cluster 的中心以令每个 cluster 可以 model 不同类型的问题。

Ruminating Reader

在这里插入图片描述

Ruminating Reader [10] 是 BiDAF 的改进和扩展,它将之前的单 Interaction 层扩展为了双 Interaction 层。

第一个 Interaction 层和 BiDAF 的 Interaction 层相同,输出 query-aware 的原文表示。query-aware 原文表示经过一个双向 LSTM 编码,其输出的最后一位隐层状态作为 query-aware 原文表示的总结。

接着,该总结向量依次与各原文词表示和各问题词表示经过一个 Highway Network 处理,以将总结向量的信息重新融入原文和问题表示当中。

最后,基于更新后的原文和问题表示,使用第二个 Interaction 层来捕捉它们之间的交互,并生成新的 query-aware 的原文表示。Ruminating Reader 的 Embed 层,Encode 层和 Answer 层和 BiDAF 相同。

ReasoNet
在这里插入图片描述

和之前介绍的 Embed-Encode-Interaction-Answer 框架不同,ReasoNet [11] 使用了 Memory Networks 的框架[12]。

在使用 BiRNN 编码问题和原文后,问题的最后一位隐层状态初始化为一个中间状态 s,而原文和问题表示作为 Memory。

接下来是一个多轮迭代的过程,在每一轮迭代中,中间状态 s 首先经过一个逻辑回归函数来输出一个 binary random variable t,t 为真,那么 ReasoNet 停止,并且用当前中间状态 s 输出到 Answer 模块产生对答案的预测。

否则,中间状态 s 会和 Memory(原文和问题)中每一位表示计算注意力,并基于注意力求原文和问题的加权表示 x,x 和 s 共同作为一个 RNN 的输入,产生新的中间状态 s 并进入下一轮迭代。

由于出现了 binary random variable,ReasoNet 使用了强化学习的方法进行训练。

R-NET

在这里插入图片描述

R-NET [13] 同样使用了双 Interaction 层架构,其第一 Interaction 层负责捕捉原文和问题之间的交互信息,而第二 Interaction 层负责捕捉原文内部各词之间的交互信息。

具体来说,在第一 Interaction 层,r-net 首先使用了类似于 Match-LSTM 的方法,即对原文中每个词,计算其关于问题的注意力分布,并使用该注意力分布汇总问题表示,将原文该词表示和对应问题表示输入 RNN 编码,得到该词的 query-aware 表示。

不同的是,在原文词表示和对应问题表示输入 RNN 之前,r-net 使用了一个额外的门来过滤不重要的信息。

接着,在第二 Interaction 层,r-net 使用了同样的策略来将 query-aware 表示进一步和自身进行匹配,将回答答案所需的证据和问题信息进行语义上的融合,得到最终的原文表示。

在其他方面,r-net 的 Embed 层同样使用了 word 和 char 两种 embedding 以丰富输入特征。

在 Answer 层,r-net 首先使用一个 attention-pooling 的问题向量作为一个 RNN 的初始状态,该 RNN 的状态和最终的原文表示共同输入一个 pointer networks 以产生答案开始概率。

接着基于开始概率和原文表示产生另一个 attention-pooling 向量,该向量和 RNN 状态共同经过一次 RNN 更新后得到 RNN 的新状态,并基于新状态来预测答案结束概率。

Mnemonic Reader

在这里插入图片描述

相比于之前的工作,我们的 Mnemonic Reader [14] 同样使用了类似于 r-net 和 Ruminating Reader 的两层 Interaction 层设计。

其中第一个 Interaction 层负责捕捉原文和问题之间的交互信息,第二 Interaction 层负责捕捉原文内部的长时依赖信息。

不同于 r-net 的是,r-net 使用了单向注意力+门机制来编码这些交互信息,而 Mnemonic Reader 使用了双向注意力机制来编码交互信息,因此能够捕捉更加细粒度的语义信息。

在 Answer 层,我们使用对问题敏感的表示方法,具体来说,问题表示分为两种:显式的问题类型 embedding 和隐式的问题向量表示。

进一步地,我们使用了 Memory Network [12] 的框架来预测答案范围,将问题表示作为一个可更新的记忆向量,在每次预测答案概率后将候选答案信息更新至记忆向量中。

该过程可以持续多轮,因此可以根据之前预测信息来不断修正当前预测,直到产生正确的答案范围。

性能对比

下图是 SQuAD 榜单排名,其中 EM 表示预测答案和真实答案完全匹配,而 F1 用来评测模型的整体性能。

值得一提的是,人类在 SQuAD 数据集上的性能分别为 82.3 和 91.2,微软亚洲研究院的 R-NET 模型和阿里巴巴的 SLQA 模型在 EM 值上分别以 82.650 和82.440 率先超过人类。

在这里插入图片描述

△ 图3:SQuAD leaderboard上的各模型性能对比(2018年1月13日)

总结

总结以上工作,有以下几点思考:

  1. 大规模语料集的构建是推进机器阅读理解发展的重要前提。从 15 年提出的 CNN/DM 完形填空数据集,到近期的 SQuAD 数据集,再到之后的若干新数据集,每一个新数据集都提出了当前方法无法有效解决的新问题,从而促使研究人员不断探索新的模型,促进了该领域的发展。

  2. 针对抽取式阅读理解任务,可以看到有如下几个技术创新点:

建立在单向或双向注意力机制上的 Interaction 层对于模型理解原文和问题至关重要,而[10],[13]和[14]中更复杂的双 Interaction 层设计无疑要优于之前的单 Interaction 层设计,原因是在问题-原文交互层之上的原文自交互层使得更多的语义信息能在原文中流动,因此在某种程度上部分解决了长文本中存在的长时依赖问题。

多轮推理机制如[6],[11]和[14]对于回答复杂问题具备一定帮助,尤其是针对 SQuAD 中的答案不是一个单词而可能是一个短语的情况,多轮推理机制可以不断缩小预测范围,最终确定正确答案位置。

对问题敏感的问题表示方法[9],[14]能够更好地 model 各类型问题,并根据问题类型聚焦于原文中的特定单词,比如 when 类问题更加聚焦于原文中的时间信息,而 where 类问题更关注空间信息。

参考文献

[1] Pranav Rajpurkar, Jian Zhang, Konstantin Lopyrev, and Percy Liang. 2016. Squad: 100,000+ questions for machine comprehension of text. In Proceedings of EMNLP.

[2] Karl Moritz Hermann, Tomas Kocisky, Edward Grefenstette, Lasse Espeholt, Will Kay, Mustafa Suleyman, , and Phil Blunsom. 2015. Teaching ma- chines to read and comprehend. In Proceedings of NIPS.

[3] Felix Hill, Antoine Bordes, Sumit Chopra, and Jason Weston. 2016. The goldilocks principle: Reading childrens books with explicit memory representa- tions. In Proceedings of ICLR.

[4] Shuohang Wang and Jing Jiang. 2017. Machine comprehension using match-lstm and answer pointer. In Proceedings of ICLR.

[5] Minjoon Seo, Aniruddha Kembhavi, Ali Farhadi, and Hananneh Hajishirzi. 2017. Bidirectional attention flow for machine comprehension. In Proceedings of ICLR.

[6] Caiming Xiong, Victor Zhong, and Richard Socher. 2017. Dynamic coattention networks for question answering. In Proceedings of ICLR.

[7] Zhiguo Wang, Haitao Mi, Wael Hamza, and Radu Florian. 2016. Multi-perspective context matching for machine comprehension. arXiv preprint arXiv:1612.04211 .

[8] Dirk Weissenborn, Georg Wiese, and Laura Seiffe. 2017. Fastqa: A simple and efficient neural architecture for question answering. arXiv preprint arXiv:1703.04816 .

[9] Junbei Zhang, Xiaodan Zhu, Qian Chen, Lirong Dai, Si Wei, and Hui Jiang. 2017. Exploring question understanding and adaptation in neural- network-based question answering. arXiv preprint arXiv:1703.04617 .

[10] Yichen Gong and Samuel R. Bowman. 2017. Ruminating reader: Reasoning with gated multi-hop attention. arXiv preprint arXiv:1704.07415 .

[11] Yelong Shen, Po-Sen Huang, Jianfeng Gao, and Weizhu Chen. 2016. Reasonet: Learning to stop reading in machine comprehension. arXiv preprint arXiv:1609.05284 .

[12] Sainbayar Sukhbaatar, Arthur Szlam, Jason Weston, and Rob Fergus. 2015. End-to-end memory networks. In Proceedings of NIPS.

[13] Microsoft Research Asia. 2017. R-NET: MACHINE READING COMPREHENSION WITH SELF-MATCHING NETWORKS. In Proceedings of ACL.

[14] Minghao Hu, Yuxing Peng, and Xipeng Qiu. 2017. Mnemonic Reader for Machine Comprehension. arXiv preprint arXiv:1705.02798 .

作者:Paper_weekly
来源:CSDN
原文:https://blog.csdn.net/c9Yv2cf9I06K2A9E/article/details/79056446
版权声明:本文为博主原创文章,转载请附上博文链接!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480780.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

万字长文,知识图谱构建技术综述

文章来源:丁香大数据 前言 知识图谱,即一种特殊的语义网络,它利用实体、关系、属性这些基本单位,以符号的形式描述了物理世界中不同的概念和概念之间的相互关系。为什么说知识图谱对于信息检索、推荐系统、问答系统中至关重要,我…

查理·芒格:分享12个顶级思维模型

网络资料整理,另见:https://blog.csdn.net/UFv59to8/article/details/79695476

技术如何转型产品经理

我知道很多做技术的朋友在积极寻找转型的机会,从程序员转型到产品经理,或者程序员转型到运营、市场等。 怎样转? 转型前后的心态等?有没有具体的方法或者步骤?也许本文能帮你理清不少思路。 做技术出身的朋友很多,最…

基于BERT的多模学习——VL-BERT篇

前言 BERT的出现让NLP发展实现了一个大飞跃,甚至有大佬说NLP已经没有可以做的啦,后面就是拼机器拼money了。但是,我认为任何领域的进步之后都会有更苛刻的要求,科研没有尽头,需求也永远无法满足。而多模态&#xff0c…

从程序员到阿里技术总监之路

第一步:高级研发工程师开始 掌握技术基础 技术语言基础和高级知识,常用算法、常用工具、框架原理、代码运行周期、内存回收机制等等,类似这些基础知识。 第二步:技术主管 需要掌握一定的项目管理常识,掌握一定的架构…

咨询笔记:麦肯锡7步成诗

麦肯锡7步成诗,用于咨询中的关键因素分析。有不少版本,细节各有不同 这个是自己整理的:

架构师的主要职责是什么?

进阶成为架构师是大多数java程序员们的梦想,架构师从广义上可分为软件架构师、系统架构师,软件架构师是程序员最容易突破、最可能进阶的一条职业发展路径,我这次主要分享软件架构师的相关知识点。 一:架构师的定义 架构师&#…

ELECTRA模型精讲

本文转载自公众号“夕小瑶的卖萌屋”,专业带逛互联网算法圈的神操作 -----》我是传送门 关注后,回复以下口令: 回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读) 回复【入群】&#xf…

深度学习最全优化方法总结比较(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)

深度学习最全优化方法总结比较(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)ycszenSemantic Segmentation / changqianyu.me​关注他1,520 人赞同了该文章前言 (标题不能再中二了&#…

常用分词算法总结(字典、统计、神经网络)

本文转载自公众号“夕小瑶的卖萌屋”,专业带逛互联网算法圈的神操作 -----》我是传送门 关注后,回复以下口令: 回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读) 回复【入群】&#xf…

阿里架构师进阶23期精讲:Redis、Kafka、Dubbo、Docker等

史上最全Redis面试49题(含答案):哨兵复制事务集群持久化等 高并发架构系列:Redis缓存和MySQL数据一致性方案详解 Redis的高可用详解:Redis哨兵、复制、集群的设计原理,以及区别 高并发架构系列:Redis为…

论文浅尝 | 变分知识图谱推理:在KG中引入变分推理框架

本文转载自公众号:机器之心。推理知识图谱中缺失的连接已经吸引了研究界的广泛关注。在本论文中,加州大学圣塔芭芭拉分校的王威廉等研究者在知识图谱推理中引入了变分推理框架,并将路径搜索和路径推理紧密结合从而进行联合推理,这…

机器学习中的最优化算法总结

https://zhuanlan.zhihu.com/p/42689565 机器学习中的最优化算法总结对于几乎所有机器学习算法,无论是有监督学习、无监督学习,还是强化学习,最后一般都归结为求解最优化问题。因此,最优化方法在机器学习算法的推导与实现中占据中…

以jieba为首的主流分词工具总结

工具篇 下面列了几个较为主流的分词工具(排名不分先后,大家自行试用),相关的paper请在订阅号「夕小瑶的卖萌屋」后台回复【中文分词】领取。 1 Jieba 说到分词工具第一个想到的肯定是家喻户晓的“结巴”中文分词,主…

mikechen详谈架构师成长之3大步骤

本文作者:陈睿|mikechen,优知学院创始人 这是架构师系列的第二篇文章 前文谈到架构师核心技能架构设计的重要性,如果你对架构师这个职位从技能的角度有比较清晰的认识,本篇文章将为你继续揭示架构师这个职位的成长周期。 在国内…

论文浅尝 | 二维卷积知识图谱嵌入

链接:https://arxiv.org/pdf/1707.01476.pdf本文主要关注 KG Link prediction 问题,提出了一种多层卷积神经网络模型 ConvE,主要优点就是参数利用率高(相同表现下参数是 DistMult 的8分之一,R-GCN 的 17 分之一&#x…

如何成为架构师?3条有效的实战经验

“ 希望你看完这一篇,能充分认知和了解架构师,认知对了,事就好办了。 01 架构师的准确定义 架构师的职责应该是立足于技术和业务之间的中间角色或者平衡点, 在针对业务深刻理解的基础上,针对业务中存在诸多变数&am…

ArchSummit2016干货分享+美团:即时物流调度平台实践+一点资讯:兴趣引擎-深度融合搜索和推荐+阿里-智能问答系统的实践

** 2015年7月 ** 加入滴滴打车3个半月,感觉遇到和解决的技术问题超过之前1年的。写在这里给大家分享。 滴滴这边负责所有策略算法设计的是“策略组”,大概有20几个员工。由于滴滴的业务线越来越多(出租车,专车,快车&…

论文浅尝 | 使用变分推理做KBQA

Yuyu Zhang, Hanjun Dai, Zornitsa Kozareva, Alexander J.Smola, and Le Song: Variational Reasoning for Question Answering with KnowledgeGraph. AAAI 2018链接:https://arxiv.org/abs/1709.04071本文提出了一个可端到端训练的 KBQA 框架,可以在模…

史上最全Git学习教程

Git是世界上最先进的分布式版本控制系统,没有之一。 —— Git爱好者 Git 是一个「分布式版本管理工具」,其具备太多的优点:更方便的 Merge、更方便的管理、更健壮的系统、对网络的依赖性更低、更少的“仓库污染” 等等,这使得Git…