初识机器阅读理解(Machine Reading Comprehension)

机器阅读理解任务理解与文献查阅

参考博客:

  1. https://www.jiqizhixin.com/articles/2018-11-26-10
  2. https://hanxiao.github.io/2018/04/21/Teach-Machine-to-Comprehend-Text-and-Answer-Question-with-Tensorflow/
  3. https://hanxiao.github.io/2018/09/09/Dual-Ask-Answer-Network-for-Machine-Reading-Comprehension/
  4. https://www.jianshu.com/p/13fa49df349f
  5. https://www.jiqizhixin.com/articles/2017-09-21-7
  6. https://www.jianshu.com/p/891f54f6523f

什么是阅读理解?

阅读理解题目类似于我们上学时语文试卷中给定一段文本材料,根据该材料回答给定的若干问题,通过对问题的回答来检查阅读理解的能力,就目前了解所知,阅读理解任务主要分类以下几种类型:
(1)完形填空式:类似高中英语卷子中的完形填空题目;
(2)答案选择式:类似高中英语的阅读理解题目,有多个候选答案-选择题;
(3)答案抽取式:问题的答案在原文中一定存在,并且为一个连续的区域块;
(4)答案生成式:根据给定的文本生成目标答案,阅读理解的终极目标。

阅读理解的基本流程

(1)通读篇章,理解文章主题和大体内容;读题,了解提问内容及关注点;
(2)带着问题找答案,将问题同篇章做关联,并结合篇章主题,理解问题重点;
(3)定位可能的答案,并再次重点阅读附近文字;
(4)为避免忘记问题,再次审题,并结合3)中重点区域进行答案圈选;
(5)针对挑出的答案进行筛选,选出最正确的答案。

阅读理解中的一些思考逻辑

  1. 协同注意力:带着问题去阅读,先看问题,再看文本,去文本中带着目标去阅读以寻找 答案,机器阅读理解通过结合文本和问题两者的信息,生成一个关于文本段落各个部分 的注意力权重,对文本信息进行加权,协同注意力机制是一个双向的注意力,不仅要给 阅读的文本段落生成一个注意力权重,还要给问句也生成一个注意力权重;
  2. 动态迭代:人类在思考问题的时候,有时候需要反复思考,那么模拟人类反复思考的过 程,不直接将模型的第一次输出结果当做最终的输出结果,而是再次将输出的结果作为 模型的输入,输入到模型中,迭代出新一轮的输出,经过多次迭代,直到输出不会变化, 或者超过迭代次数的阈值。

机器阅读理解的目标在于教会机器理解和处理人类的语言

机器阅读理解(答案抽取式)的数学建模(目前一些经典论文的建模方式):

1. 问题描述

阅读理解任务为:给定样本数据,数据包括文本材料,问题以及对应问题的答案,并且给出答案在文本材料中的对应位置信息;目标是希望能够针对给定的训练集数据构建阅读理解模型,使得该模型具有回答测试集数据中给定文本材料问题的能力,回答问题的回答质量由给定的评价指标来判断。目标是回答问题的回答质量在给定评价指标上值越大越好,最终模型根据评价指标值的得分高低来评价优劣。

2. 模型假设

(1) 假设答案一定存在,且答案为文本材料中的唯一连续的一个区域块(continuous span),即问题是文本短距离的跨度预测;

3. 模型建立

(1) 对于一条数据样本(给定的文本材料,单个问题和答案)可被表述成一个三元组(context, query, answer),对于答案的抽取可被看做成一个映射问题,将(context, query)对映射到(answer);
(2) 根据假设answer一定存在在给定的文本材料中,即如果知道answer在给定文本中的起始位置,那么便可以抽取出答案,可将对answer的预测转变成对答案的开始位置和结束位置的预测;
(3) 综合(1)和(2)的表述模型变成了从(context, query)对映射到(answer)到将(context, query)对映射到(answer的开始位置,answer的结束位置),如何进行正确的映射变成了模型的关键;
(4) 很多论文的提出的创建点也在于建立从(context, query)到(answer的开始位置,answer的结束位置)的映射方法,如何更好的对文本进行表示,如何捕捉context与query之间的内在联系与内在语义信息等等;

4. 模型评价

对于抽取式的阅读理解,其评价指标通常使用F1值和Exact Match来进行综合评价

  1. F1-Score的计算方法为:计算预测出的答案与原始答案字符之间的overlap,根据overlap的数目与原始ground truth answer的字符数目计算回召率,overlap的数目与预测出的所有字符数目计算准确率,F1-Score = 2 * 准确率 * 回召率 / (准确率 + 回召率);
  2. Exact Math: 表示完全匹配的,如果完全匹配则为1,否则为0;

机器阅读理解一些公开数据集

  1. SQuAD: https://arxiv.org/abs/1606.05250 保证答案一定是原始文本的片段
  2. SQuAD2.0:https://arxiv.org/abs/1806.03822 在SQuAD基础上加入没有答案的样本问题
  3. MS-MARCO: https://arxiv.org/abs/1611.09268 所有问题都是从真正的匿名用户查询中抽取,使用Bing搜索引擎从真实的Web文档中提取数据集中的答案来源的上下文段落,查询的答案是人工根据总结出来;
  4. DuReader:https://arxiv.org/abs/1711.05073 百度nlp团队,类似中文MS MARCO
  5. CoQA: https://arxiv.org/abs/1808.07042 结合阅读理解与多轮问答
  6. CNN/Daily Mail: https://arxiv.org/abs/1506.03340
  7. Children’s Book Test (CBT): https://arxiv.org/abs/1511.02301
  8. RACE: https://arxiv.org/abs/1704.04683

目前常用的机器阅读理解模型映射步骤

  1. 文本表征(Encoder Layer): 文本表征,并分别对篇章和问题进行主题和重点词关注;
  2. 注意力机制(Attention Layer):Co-Attention: 篇章对问题,问题对篇章;Self-Attention: 问题自身,篇章自身;
  3. 问题篇章匹配(Match Layer):双线性矩阵来学习经过多层信息过滤后的篇章和问题匹配参数;
  4. 答案预测(Output Layer):结合匹配信息对篇章中的词汇进行标注,预测相应词汇是答案开始位置或结束位置的概率,模型会抽取概率最大的一段连续文本作为答案。

部分论文阅读

  1. BiDAF:Bidirectional Attention Flow for Machine Comprehension
  2. QANet:Combining local convolution with global self-attention for reading comprehension
  3. Attention-over-Attention Neural Networks for Reading Comprehension
  4. Dual Ask-Answer Network for Machine Reading Comprehension
  5. Read+Verify: Machine Reading Comprehension with unanswerable Questions

你可能感兴趣的:(自然语言处理,机器阅读理解)