一. 引言
机器阅读理解是近期自然语言处理领域的研究热点之一,也是人工智能在处理和理解人类语言进程中的一个长期目标。得益于深度学习技术和大规模标注数据集的发展,用端到端的神经网络来解决阅读理解任务取得了长足的进步。本文是一篇机器阅读理解的综述文章,主要聚焦于介绍公布在 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 : 主要负责捕捉问题和原文