Multiway Attention Networks for Modeling Sentence Pairs

Abstract

本文提出的 multiway attention networks 在 matching-aggregation 框架下使用了多个 attention 函数匹配句子对。聚合每个 attention 函数的匹配信息形成最终的表示用于预测。实验结果表明该方法提高了 Quora Question Pairs, SNLI, MultiNLI 等数据集上的结果。

1. Introduction

paraphrase identification 任务,用于确定两个句子的语义是否相同。

natural language inference 任务,用于判断 hypothesis 句子是否可以从 premise 句子中推断出来

answer sentence selection 任务,用于评估 question-answer pair 之间的相关性,对所有候选答案句子排序

image-20210209175448705

使用基于注意力的神经网络方法可以被分为两类:

  1. 单独对每个句子编码,最后基于两个句子表示做出决策
  2. 基于 matching-aggregation 框架

前者两个句子在编码阶段通常没有交互,即便一些应用了注意力机制提高句子交互的方法,也是句子级别的交互,缺乏词级别的交互。后者在词级别应用注意力机制提高两个句子间的词之间的匹配,然后聚合匹配信息到句子级别作出最终的决策,这种框架使用了词级别的交互产生了不错的结果。受到这个框架的启发,本文认为对于句子对的建模词级别的匹配是非常重要的。为此,本文提出了一种用于对句子对进行建模的 multiway attention network (MwAN)。

2. Approach

image-20210209232635455

2.1 Encoding Layer

(w_t^{p/q}) 表示句子 p 和 q 在第 t 个位置的输入表示,由词向量和 ELMo 语境向量拼接而成

然后经过双向 GRU 编码,得到两个句子新的表示:(h_t^{p/q})

2.2 Multiway Matching

image-20210209233606393

如上式所示,利用四种 attention 函数依次使用句子 p 中的每个词对句子 q 进行 attention 操作,p 的每个位置分别得到 4 个向量,分别代表了四种 attention 函数下,句子 p 每个位置对句子 q 的关注状态,可表示为:

[q_t^{c/b/d/m}, quad t in [1, M] ]

2.3 Inside Aggregation

image-20210209234526882

上式以 Concat Attention 为例,对句子 p 将前一层的注意力机制输出和编码层的表示拼接,然后使用一个门决定拼接表示的重要性,最后依然输入一个双向 GRU,得到这一层的表示,每个不同的 attention 函数分别做这个操作,得到如下表示:

[h_t^{c/b/d/m}, quad t in [1, M] ]

GRU 输出的双向隐藏状态拼接得到上式的 h。

2.4 Mixed Aggregation

image-20210209235434143

这一步对句子 p 中每个位置的 4 个 attention 表示进行 attention,让每个位置自己选择使用哪种 attention 方式,得到 (x_t,t in [1,M])

然后再将其输入到一个双向 GRU 中,得到用于输出的表示:(h_t^o,t in [1, M])

2.5 Prediction Layer

image-20210210000008407

这一部分操作中 (v^q) 其实和 W 一样是可学习的参数,只不过对标 (h^q_j),实际上就是对句子 q 的一个类似于自注意的操作,前面的一堆操作可能已经淡化了句子 q 的作用,最后用注意力机制对句子 q 进行池化,得到句子级的表示。

image-20210210000328419

这部分操作很显然就是使用前面得到的句子 q 表示来选择 (h_j^o) 中重要的信息得到 p 最后的句子级表示,其实这里应该已经不能算是 p 的句子级表示了,应该说是两个句子匹配信息的交互表示。最后就是将 (r_p) 输入到 MLP 中进行分类了。

参考

  1. Multiway Attention Networks for Modeling Sentence Pairs
原文地址:https://www.cnblogs.com/xxBryce/p/14394708.html