1.机器阅读理解
机器阅读理解 (machine reading comprehension,MRC) 是通过计算机理解文章语义并回答相关问题的一项重要研究任务. 让计算机系统能够理解文本的含 义, 并且做出正确的反馈, 是自然语言处理的长期目标。
作用:机器阅读理解的研究对提升机器的自然语言理解能力具有重要促进作用。同时,将机器阅读理解技术运用到智能客服问答系统中,能够更进一步的提高问答系统的扩展性和效率。
2.机器阅读理解的现状
2.1面临的问题
- 推理性不强,缺乏可解释性
- 缺乏大量的训练数据
- 存在一定的限制,如限定只给出一个答案
2.2现实中的挑战
- 实际应用中, 存在大量场景不仅需要答案, 还需要这个答案具有一定的解释性, 需要同时
找出能够支撑该答案的相关句子。 - 目前在司法领域的机器阅读理解研究还较少
3.提出的解决方法
采用的数据集:第三届“中国法研杯”司法人工智能挑战赛(CAIL 2020) 比赛提供的中文法律机器阅读理解数据集
3.1为什么要采用该数据集?
3.1.1主流问答数据集的弊端
对于目前主流的问答数据集(例如斯坦福的 SQuAD 数据集 [1]),问题的答案基本都在单一文档的单一(或连续的)句子中,并且这类问题大多可通过对问题和单一文档使用类似关键词匹配(keyword matching)的方式来回答。基于这些数据集训练的模型虽然在这类问题上表现不俗,但是它们对基于多个信息进行多步推理的能力表现得不尽如人意
3.1.2新型数据集的好处
现有的问答(QA)数据集无法训练可执行复杂推理和提供答案解释的 QA 系统。该数据集类似于新型问答数据集 HotpotQA,该数据集包含 11.3 万个基于维基百科的问答对,具备以下四个特点:
-
问题的答案必须要基于多个支持文档;
-
问题多样化,不局限于任何已有的知识库或知识模式;
-
提供句子级别的支持推理线索(supporting fact),允许 QA 系统用强大的监督进行推理,并对预测结果进行解释;
-
提供了新型模拟比较型问题,来测试 QA 系统提取相关线索、执行必要对比的能力。
3.2提出的模型
3.2.1任务定义
传统的机器阅读理解任务主要分为 3 大类型:
- 填空式阅读理解,
- 选择式阅读理解,
- 抽取式阅读理解.
3.2.2模型构建
3.2.2.1RoBERTa 模型介绍
RoBERTa模型是BERT模型的一个改进,相较于BERT有较大的提升,是一个预训练模型。
改进的方面:
- 数据生成方式和任务改进:取消下一个句子预测,并且数据连续从一个文档中获得。
- 更大更多样性的数据:使用 30G 中文训练,包含 3 亿个句子,100 亿个字 (即 token)。由于新闻、社区讨论、多个百科,保罗万象,覆盖数十万个主题,共160+G数据。
Byte-Pair Encoding(BPE)是字符级和词级别表征的混合。 - 训练更久:超过500k steps
- 更大批次:使用了超大(8k)的批次 batch size。
- 调整优化器的参数。
- 使用全词 mask(whole word mask)和动态的mask。
层次微调模型分为两层, 第一层我们先使用
RoBERTa 模型进行编码分别用线性层进行输出计算
损失值, 并保存最优权重, 进行第一次微调
第二层再结合 Retro-Reader 方法, 将模型分为精读模块和泛读模块分别读取模型 (a) 微调后的权重进行二次微调, 最后进行预测, 如图 2 中 (b) 所示.
3.3模型具体介绍
3.3.1编码层
- 编码层将问题和文章的离散符号转换为连续向量
表示序列. - 论文中使用 RoBERTa-large-wwm 来实现编码
层. 该方法主要更改了原预训练阶段的训练样本生成策略, 将全词掩码的方法应用在了中文中, 即对组成的同一个词的汉字全部进行 [MASK].
具体操作:
- 首先本文使用预训练模型 RoBERTa 的词表先将
输入的文本转化 Input=[CLS]Q[SEP]T[SEP] 的方式. - 其 中 [CLS] 用于分类任务, Q 为问题, T 为文章, [SEP] 作
为分隔符来对问题 Q 和文章 T 进行分割. - Input 长度为 512, 如果总长度未达到 512, 空余部分以 0 补全. 之后将离散的符号映射至高维的向量, 通过 24 层 Transformers, 隐藏层维度为 1 024, 激活函数使用GELU函数
3.3.2层次微调方法
层次微调方法是通过 RoBERTa 预训练模型与多任务学习方法进行训练, 并保存最优的 RoBERTa 模型权重.然后再将其权重值传递给精读模块和泛读模块分别进行读取, 之后继续在对应的任务上进行训练, 从而达到一个较好的效果.
3.3.3精读模块
采用多任务学习方法,:
- 任务 1 为序列标注问题从
文章中标注答案开始位置以及结束位置, - 任务 2 为分类问题, 结合问题以及文章进行判断得到答案的类型.
由编码层可以得到输入层的 1 024 维向量表示, n 为 512.任务 1 中定义 BERT 的输入为 [CLS]Q[SEP]P,定
3.3.4泛读模块
3.3.5预测模块
精读模块的预测结果有两部分, 第 1 部分为答案类型一共有 4 种分类. 分别为截取类型 (SPAN 类型),是否类型 (YES/NO 类型) 以及不可回答类型 (UNKNOWN类型). 第 2 部分为根据问题在原文中所截取的片段
我们先取第 1 部分答案类型分类结果, 如果分类为是否类型与不可回答类型, 则直接输出答案类型作为精读模块结果. 如果为截取类型, 则取第 2 部分输出内容为结果.最后, 将精读模块预测内容与泛读模块中输出的答案支撑句进行拼接, 进行最终答案的输出, 得到如下图 的结果方便后续评估.
3.3.6实验参数
实验训练过程中模型采用 带有权重衰减的自适应动量估计算法 (AdamW) 作为优化算法, 学习率为 1e–5. 使用预热学习率 (warmup step),即先用较小的学习率训练, 然后每步逐渐增大, 直到达到最初设置的学习率, 批处理大小为 1, 一共训练 10 轮.
4.实验结果
4.1正面对比
4.2反面对比
5.总结
这篇文章中提出了一种多任务层次微调模型, 将答案类型预测和答案预测两个任务放入精读模块.使用多任务学习方法进行预测, 再将证据抽取任务单独分放进泛读模块, 单独进行训练预测, 最后综合两个模块的预测结果进行输出,并且选取了 BERT、ALBERT、RoBERTa、RoBERTa-large 四种不同规模的预训练模型对输出的实验结果进行了对比分析.
实验表明, 论文中所提方法可以有效提高机器阅读理解的答案抽取以及证据抽取的效果, 未来可以将把侧重点放在精读模块与泛读模块上, 以进一步对模型进行优化。