当前位置:   article > 正文

BI-DIRECTIONAL ATTENTION FLOW FOR MACHINE COMPREHENSION_bidirectional attention flow formachine comprehens

bidirectional attention flow formachine comprehension

ABSTRACT

机器阅读理解(machine comprehension,MC),即根据上下文段落回答问题,要求对上下文和问题之间的复杂交互进行建模。最近,注意力机制成功应用在MC上。特别是这些模型使用attention对context的部分内容进行专注,并简化成特定大小的向量,有时结合attention,或是构造uni-directional attention。本文介绍Bi-Directional Attention Flow (BIDAF),多阶段的多层次的处理,把文本表现成不同级别上的粒度,并使用bidirectional attention flow mechanism 获得没有摘要抽取的问题的文本表示。实验表示,模型在Stanford Question Answering Dataset (SQuAD) 和CNN/DailyMail cloze test获得最好的结果。

1 INTRODUCTION

机器阅读理解machine comprehension (MC) 和问答系统question answering (QA)在NLP和CV获得很大的发展。系统在text和image上训练end-to-end模型,获得预期结果。促进进步的重要因素是neural attention的使用,允许系统专注context的部分内容(MC),或是图像的一部分(Visual QA),这和回答问题相似。之前和attention相关的工作有如下的特征:

  • 1 、计算好的attention权重通常用来抽取上下文最相关的特征来回答问题,并把上下文概括成特定长度的向量。
  • 2、在text领域中,他们通常是temporally dynamic,因此当前time step的attention weight是之前time step的获得向量的函数。
  • 3、通常使用uni-bidirectional 模型,问题通常在上下文或图像获得。

本文介绍了Bi-Directional Attention Flow (BIDAF)网络,一个层次级多阶段架构,在不同粒度上对上下文段落的表示进行建模。BIDAF包括了字符级,词级和上下文词嵌入,并使用 bi-directional attention flow获得具有问题意识的上下文表示。我们的attention具有以下的改进:

  • attention层不是用来概括上下文段落,并获得特定大小的向量。而是在每步计算attention,并获得向量,伴随之前的层,允许流通到接下来的层。这降低了概括造成的损失。
  • 使用内存占用更少的attention机制。当顺着时间计算attention时,在每个time step的attention是当前time step的问题和上下文段落的函数,不依赖于之前time step的attention。我们假设这个简化导致attention层和建模层的分工合作。这迫使attention层专注学习query和context之前的attention,允许建模层专注学习具有问题意识的上下文表示(即attention层的输出)query-aware context representation (the output of the attention layer)。这允许每个time step的attention不受之前time step的错误结果的影响。
  • 在两个方向上使用attention机制,query-to-context and context-to-query,提供互补信息。

2 MODEL

模型结构
模型包括6层:

  • 1 Character Embedding Layer:通过character-level的CNNs,把每个词映射到向量空间。
  • 2 Word Embedding Layer:通过训练好的word embedding将每个词映射到一个向量空间。
  • 3 Contextual Embedding Layer :从周围词中使用情境线索过滤词嵌入。query和context都使用了3个层。
  • 4 Attention Flow Layer:结合query和context向量获得具有context中每个词具有query-aware特征的向量。
  • 5 Modeling Layer:使用RNN扫描context。
  • 6 Output Layer:对query提供一个答案。

1 Character Embedding Layer
字符嵌入层主要把每个词映射到高维向量空间。 x 1 , . . . , x T x_1, ..., x_T x1,...,xT q 1 , . . . , q J {q_1, ..., q_J} q1,...,qJ输入上下文段落和query的词语,每个词语使用CNN获得字符级的词嵌入。字符映射成向量,可以认为是CNN的1D输入,大小是CNN的输入通道的大小。CNN的输入进行max-pooled获得每个词的特定长度的向量。

2 Word Embedding Layer
把每个词映射到高维向量空间。使用训练好的向量,GloVe,获得每个词的固定词嵌入。
character和word的向量进行concatenation,输入到两层的highway网络,highway网络的输入时d维向量,也就是矩阵,即context输出 X ∈ R d ∗ T X \in R^{d*T} XRdT和query输出 Q ∈ R d ∗ J Q \in R^{d*J} QRdJ

3 Contextual Embedding Layer
在前两层的后面使用LSTM,获得词语之间的时间信息。LSTM使用双向,对两个LSTM的输出进行concatenation,从上下文词的向量 X X X获得 H ∈ R 2 d ∗ T H \in R^{2d*T} HR2dT,query的词向量 Q Q Q获得 U ∈ R 2 d ∗ J U \in R^{2d*J} U

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

闽ICP备14008679号