一. 引言
机器阅读理解是近期自然语言处理领域的研究热点之一,也是人工智能在处理和理解人类语言进程中的一个长期目标。得益于深度学习技术和大规模标注数据集的发展,用端到端的神经网络来解决阅读理解任务取得了长足的进步。本文是一篇机器阅读理解的综述文章,主要聚焦于介绍公布在 SQuAD(Stanford Question Answering Dataset)榜单上的各类模型,并进行系统地对比和总结。
二. SQuAD简介
SQuAD是由Rajpurkar[1]等人提出的一个阅读理解数据集。该数据集包含10万个三元组(问题、原文、答案),原文来自于536篇英文维基百科,其中问题和答案主要通过众包的方式,标注人员基于每篇文章,提出最多5个问题并给出对应答案(答案出现在原文中)。SQuAD与之前的完型填空类阅读理解数据集如CNN/DM[2]等的区别如下:
- SQuAD中的答案不再是单个实体或者单词,而可能是一段话,这增大了预测难度
- SQuAD包含公开的训练集与测试集,其采用了与ImageNet类似的封闭评测方式。
三. 模型
作为nlp中的ImageNet,自从SQuAD提出以来,大量具有代表性的模型纷纷涌现,极大的促进了机器阅读的发展。由于SQuAD数据集的答案来自于原文,模型只需要判断出哪些词是答案即可,因此是一种抽取式的QA任务而非生成式任务。几乎所有做SQuAD的模型都可以概括为如下框架:
- Embedding Layer: 负责将原文和问题中的tokens进行向量化
- Encode Layer: 主要使用RNN或其衍生模型来对原文和问题进行编码,编码后的每个token的向量蕴含了上下文的语义信息
- Interaction Layer : 主要负责捕捉问题和原文之间的交互关系,并输出编码了问题语义信息的原文表示,即query-aware的原文表示
- Answer Layer: 基于query-aware的原文表示来预测答案范围
图1.QA模型通用架构
图1.Match-LSTM模型
Match-LSTM 的 Answer 层包含了两种预测答案的模式,分别为 Sequence Model 和 Boundary Model。Sequence Model 将答案看做是一个整数组成的序列,每个整数表示选中的 token 在原文中的位置,因此模型按顺序产生一系列条件概率,每个条件概率表示基于上轮预测的 token 产生的下个 token 的位置概率,最后答案总概率等于所有条件概率的乘积。Boundary Model 简化了整个预测答案的过程,只预测答案开始和答案结束位置,相比于 Sequence Model 极大地缩小了搜索答案的空间,最后的实验也显示简化的 Boundary Model 相比于复杂的 Sequence Model 效果更好,因此 Boundary Model 也成为后来的模型用来预测答案范围的标配。
在模型实现上,Match-LSTM 的主要步骤如下:
(1) Embeding 层使用词向量表示原文和问题;
(2) Encode 层使用单向 LSTM 编码原文和问题 embedding;
(3) Interaction 层对原文中每个词,计算其关于问题的注意力分布,并使用该注意力分布汇总问题表示,将原文该词表示和对应问题表示输入另一个 LSTM 编码,得到该词的 query-aware 表示;
(4) 在反方向重复步骤 2,获得双向 query-aware 表示;
(5) Answer 层基于双向 query-aware 表示使用 Sequence Model 或 Boundary Model 预测答案范围。