阅读理解

NLP当中的阅读理解(Reading Comprehension, Question Answering)任务主要是以下形式:给定一些背景知识,主要是一篇文章,有时候也可能是一些结构化的知识图谱,然后回答与该背景知识的相关问题。

常见的问题和答案形式有:

  • 完形填空:在文章中给定一个空位和一些候选答案,我们需要把一个候选答案填充进去。

  • 简答题:给定一篇文章和一个问题,我们需要从文章中去找答案,且这个答案一定在文章中出现过。SQuAD

  • 选择题:给定一篇文章,一个问题和一些候选答案,选择一个正确答案。

还有一些在上述问答任务基础上的拓展情况,例如有的任务需要在多篇文章的基础上作答,有的QA任务需要我们自己来推理和撰写答案 (open domain),无法直接从文中找到答案。

整个QA领域的发展主要都是依靠一些数据集的提出和解决来推动的。往往是有人制作了一个数据集和一个QA任务,然后大家开始比赛谁能更好地解决它。

我认为最好的学习方法是去了解这些QA数据集(http://nlpprogress.com/english/question_answering.html),针对自己感兴趣的数据集去寻找相应的解决方案,在这个过程中了解QA的解决方法。将来如果在实际的应用场景中遇到类似的QA任务(例如一些客服机器人等),我们就可以寻找到比较相关的QA数据集,使用在这些数据集上最好的解决方案来解决自己的任务。

一些有名的阅读理解数据集和模型

SQuAD 1.0/2.0

从文章中找答案

https://aclweb.org/anthology/D16-1264

img

BiDAF模型

Bi-Directional Attention Fflow for Machine Comprehension

https://arxiv.org/pdf/1611.01603.pdf

2017年的模型,用于解决SQuAD之类的问题。后来的很多模型都参考了该模型的设计思想

img

预测: start_pos, end_pos

其他相关模型

Document Reader (single model)

r-net (single model)

QANet (single)

https://github.com/allenai/bi-att-flow

MCTest

https://www.microsoft.com/en-us/research/wp-content/uploads/2016/11/MCTest_EMNLP2013.pdf

BERT模型

模型 https://arxiv.org/pdf/1810.04805.pdf

代码 https://github.com/huggingface/transformers/blob/master/src/transformers/modeling_bert.py#L1402

https://github.com/huggingface/transformers/blob/master/examples/run_squad.py

CNN/Daily Mail

完形填空类问题

Teaching Machines to Read and Comprehend

https://arxiv.org/pdf/1506.03340.pdf

img

Attention Sum模型

https://arxiv.org/pdf/1603.01547.pdf

Gated Attention Sum模型是该模型的一个拓展形式

https://arxiv.org/abs/1606.01549

陈丹琦在CNN/Daily Mail上的工作

A Thorough Examination of the CNN/Daily Mail Reading Comprehension Task

https://www.aclweb.org/anthology/P16-1223

img

顺便介绍一下,陈丹琦在QA领域做了很多工作,对QA感兴趣的同学可以参考她的博士论文。

https://www.cs.princeton.edu/~danqic/

https://www.cs.princeton.edu/~danqic/papers/thesis.pdf

https://arxiv.org/pdf/1506.03340.pdf

https://arxiv.org/pdf/1603.01547.pdf

http://www.cs.cmu.edu/~bdhingra/papers/ga_reader.pdf

https://arxiv.org/pdf/1611.07954.pdf

RACE数据集

RACE: Large-scale ReAding Comprehension Dataset From Examinations

https://arxiv.org/pdf/1704.04683.pdf

RACE数据集来自中国的中高考英语阅读理解题。

代码:

https://github.com/huggingface/transformers/blob/master/src/transformers/modeling_bert.py#L1204

https://github.com/huggingface/transformers/blob/master/examples/utils_multiple_choice.py#L36

https://github.com/huggingface/transformers/blob/master/examples/run_multiple_choice.py

SWAG

后来出现了很多的不同方向的QA问题

参考以下链接

基于多文本的QA任务

HOTPOTQA: A Dataset for Diverse, Explainable Multi-hop Question Answering

https://www.aclweb.org/anthology/D18-1259

HotpotQA的主要特点是,这是一个基于多文本的QA任务。给定一系列的文章和一个问题,我们需要给出该问题的答案,并且回答我们是从哪些相关的句子中得到问题的答案的。

已经公开的可参考论文

Hierarchical Graph Network for Multi-hop Question Answering https://arxiv.org/pdf/1911.00484.pdf

Select, Answer and Explain: Interpretable Multi-hop Reading Comprehension over Multiple Documents https://arxiv.org/pdf/1911.03631.pdf

CoQA 基于对话的问答数据集

leaderboard https://stanfordnlp.github.io/coqa/

论文 https://arxiv.org/abs/1808.07042

搜狗有一个BERT模型的实现

https://github.com/sogou/SMRCToolkit

这位同学也实现了一些模型

https://github.com/jayelm/dialog-qa

中文数据集

法研杯 阅读理解数据集

http://cail.cipsc.org.cn/

讯飞杯 中文阅读理解评测

https://hfl-rc.github.io/cmrc2017/

https://hfl-rc.github.io/cmrc2018/

https://hfl-rc.github.io/cmrc2019/

同学们可以找到这三次比赛的数据集和相应的表现最好的模型代码进行学习。

KBQA

http://tcci.ccf.org.cn/conference/2018/papers/EV51.pdf

文章目录
  1. 1.
  • 一些有名的阅读理解数据集和模型
    1. 1. SQuAD 1.0/2.0
      1. 1.1. BiDAF模型
      2. 1.2. BERT模型
    2. 2. CNN/Daily Mail
      1. 2.1. Attention Sum模型
      2. 2.2. 陈丹琦在CNN/Daily Mail上的工作
    3. 3. RACE数据集
    4. 4. 基于多文本的QA任务
    5. 5. CoQA 基于对话的问答数据集
    6. 6. 中文数据集
      1. 6.1. 法研杯 阅读理解数据集
      2. 6.2. 讯飞杯 中文阅读理解评测
  • |