当前位置:   article > 正文

BI-DIRECTIONAL ATTENTION FLOW FOR MACHINE COMPREHENSION

bi-directional attention flow for machine comprehension

abstract

机器理解(MC,machine comprehension),回答关于给定上下文段落的查询,需要对上下文和查询之间的复杂交互进行建模。 最近,注意机制已成功扩展到MC。 通常,这些方法使用注意力集中于上下文的一小部分并且用固定大小的向量对其进行概括,在时间上偶然关注,和/或经常形成单向关注。 在本文中,我们介绍了双向注意流(BIDAF)网络,这是一个多阶段分层过程,它表示不同粒度级别的上下文,并使用双向注意流机制来获得查询感知上下文表示而无需提前汇总。 我们的实验评估表明,我们的模型在斯坦福问答数据集(SQuAD)和CNN / DailyMail完形填空测试中实现了最先进的结果。

1 INTRODUCTION

机器理解(MC)和问答(QA)的任务在过去几年中在自然语言处理和计算机视觉社区中获得了显着的普及。现在,端到端训练好的系统可以在文本和图像域中的各种任务上获得有希望的结果。推进的关键因素之一是使用神经注意机制,该机制使系统能够专注于上下文段落(针对MC)或图像(针对视觉质量保证)内的目标区域,这与回答这个问题(Weston et al,2015; Antol et al,2015; Xiong et al,2016a)。先前工作中的注意机制通常具有以下一个或多个特征。

  • 计算的注意力权重通常用于从上下文中提取最相关的信息,以通过将上下文概括为固定大小的向量来回答问题。
  • 在文本域中,它们通常在时间上是动态的,其中当前时间步长处的注意力权重是前一时间步骤的有人值守矢量的函数。
  • 它们通常是单向的,其中查询参与上下文段落或图像。

在这里插入图片描述
在本文中,我们介绍了双向注意流(BIDAF)网络,这是一种分层多阶段架构,用于对不同粒度级别的上下文段落的表示进行建模(图1)。 BIDAF包括字符级,单词级和上下文嵌入,并使用双向注意流来获得查询感知上下文表示。我们的注意机制对以前流行的注意范例提供了以下改进。

  • 首先,我们的注意层不用于将上下文段落概括为固定大小的向量。相反,计算每个时间步的注意力,并且允许每个时间步的有人参与向量以及来自先前层的表示流到下一个建模层。这减少了由早期摘要引起的信息丢失。
  • 其次,我们使用无记忆的注意机制。也就是说,虽然我们像Bahdanau等人那样通过时间迭代地计算注意力(2015),每个时间步的注意力仅是当前时间步的查询和上下文段落的函数,并不直接依赖于前一时间步的注意力。我们假设这种简化导致了注意层和建模层之间的分工。它强制关注层专注于学习查询和上下文之间的关注,并使建模层能够专注于学习查询感知上下文表示(注意层的输出)内的交互。它还允许每个时间步的注意力不受前一时间步的不正确出勤的影响。我们的实验表明,无记忆的注意力比动态注意力具有明显的优势。
  • 第三,我们在两个方向上使用注意机制,查询到上下文和上下文到查询,它们彼此提供互补信息。

我们的BIDAF模型1在提交时在竞争激烈的斯坦福问答数据集(SQuAD)测试集排行榜上优于所有先前的方法。 通过仅对输出层进行修改,BIDAF在CNN / DailyMail完形填空测试中实现了最先进的结果。 我们还提供了对SQuAD开发集的模型的深入消融研究,可视化模型中的中间特征空间,并与更传统的机器理解语言模型相比较,分析其性能(Rajpurkar等,2016)。

2 MODEL

我们的机器理解模型是一个分层的多阶段过程,由六层组成(图1):

  1. 字符嵌入层使用字符级CNN将每个字映射到向量空间。
  2. 字嵌入层使用预先训练的字嵌入模型将每个字映射到向量空间。
  3. 上下文嵌入层利用来自周围单词的上下文提示来细化单词的嵌入。 前三个层同时应用于查询和上下文。
  4. 注意流层耦合查询和上下文向量,并为上下文中的每个单词生成一组查询功能特征向量。
  5. 建模层采用递归神经网络扫描上下文。
  6. 输出层提供查询的答案
    1. Character Embedding Layer.

字符嵌入层负责将每个字映射到高维向量空间。 让 x 1 , . . . , x T x_1,...,x_T x1,...,xT q 1 , . . . , q J q_1,...,q_J q1,...,qJ分别表示输入上下文段落和查询中的单词。 继Kim(2014)之后,我们使用卷积神经网络(CNN)获得每个单词的特征级嵌入。 字符嵌入到矢量中,可以将其视为CNN的1D输入,其大小是CNN的输入信道大小。 CNN的输出在整个宽度上最大化,以获得每个字的固定大小的矢量。

    1. Word Embedding Layer.

词嵌入层还将每个字映射到高维矢量空间。 我们使用预训练的单词向量GloVe(Pennington等,2014)来获得每个单词的固定单词嵌入。

字符和单词嵌入向量的串联被传递到两层公路网(Srivastava等,2015)。 公路网的输出是二维向量序列,或者更方便的是两个矩阵:上下文的 X ∈ R d ∗ T X \in R^{d*T} XRdT和查询的 Q ∈ R d ∗ J Q \in R^{d*J} QRdJ

    1. Contextual Embedding Layer.

我们使用长短期记忆网络(LSTM)(Hochreiter和Schmidhuber,1997),在前面的层提供的嵌入之上,模拟单词之间的时间相互作用。 我们在两个方向上放置一个LSTM,并连接两个LSTM的输出。 因此,我们从上下文字向量 X X X获得 H ∈ R 2 d ∗ T H \in R^{2d*T} HR2dT,并且从查询字向量 Q Q Q获得 U ∈ R 2 d ∗ J U \in R^{2d*J} UR2dJ。注意,由于前向输出的串联, H H H U U U的每个列向量是2维的。 和后向LSTM,每个都有 d d d维输出。

值得注意的是,模型的前三层是来自不同粒度级别的查询和上下文的计算特征,类似于计算机视觉领域中卷积神经网络的多阶段特征计算。

    1. Attention Flow Layer.

注意流层负责链接和融合来自上下文和查询词的信息。 与以前流行的注意机制(Weston et al,2015; Hill et al,2016; Sordoni et al,2016; Shen et al,2016)不同,注意流层不用于将查询和上下文概括为单个 特征向量。 相反,允许每个时间步的注意向量以及来自先前层的嵌入流动到后续建模层。 这减少了由早期摘要引起的信息丢失。

该层的输入是上下文 H H H和查询 U U U的上下文矢量表示。该层的输出是上下文字 G G G的查询感知矢量表示,以及来自前一层的上下文嵌入。

在这一层中,我们在两个方向上计算注意力:从上下文到查询以及从查询到上下文。 下面将讨论的这两个注意事项都是从上下文(H)和查询(U)的上下文嵌入之间的共享相似性矩阵 S ∈ R T ∗ J S \in R^{T*J} SRTJ导出的,其中 S t j S_{tj} Stj表示第 t t t个上下文的单词和第 j j j个查询单词的相似性。相似矩阵计算如下:
(1) S t j = α ( H : t , U : j ) ∈ R S_{tj}=\alpha (H_{:t},U_{:j}) \in R \tag{1} Stj=α(H:t,U

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/527697
推荐阅读
相关标签
  

闽ICP备14008679号