文章目录
论文贡献: 提出了一种双向的多角度匹配模型(bilateral multi-perspective matching).
Method
Model Overview

1. Word Representation Layer
The goal of this layer is to represent each word in P and Q with a d-dimensional vector.
输入向量由两部分组成:一部分是固定的词向量(Glove或者word2vec),另一部分是字符向量构成的词向量.字符向量是随机初始化然后输入到LSTM学习得到的.
2. Context Representation Layer
这一层目的是将上下文信息融合到 P 和 Q 每个 time-step 的表示中,这里利用 Bi-LSTM 去得到 P 和 Q 每个time-step 的上下文向量。

3. Matching Layer
模型的关键层.
比较句子 P 的每个上下文向量(time-step)和句子 Q 的所有上下文向量(time-step),比较句子 Q 的每个上下文向量(time-step)和句子 P 的所有上下文向量(time-step)。为了比较一个句子中某个上下文向量(time-step)和另外一个句子的所有上下文向量(time-step),这里设计了一种 multi-perspective 的匹配方法
⊗
\otimes
⊗,用于获取两个句子细粒度的联系信息。
这层的输出是两个序列,序列中每一个向量是一个句子的某个 time-step 相对于另一个句子所有的 time-step 的匹配向量。
4. Aggregation Layer
这层主要功能是聚合两个匹配向量序列为一个固定长度的匹配向量。对两个匹配序列分别使用 Bi-LSTM,然后连接 Bi-LSTM 最后一个 time-step 的向量(4个)得到最后的匹配向量。
5. Prediction Layer
这层目的是计算概率 P r ( y ∣ P , Q ) Pr(y|P, Q) Pr(y∣P,Q).前一次的输出连接两层前馈神经网络,之后再加上softmax输出结果.
Multi-prespective Matching Operation
重点介绍下论文提出的多角度匹配算法.
论文中提到多角度匹配运算
⊗
\otimes
⊗有以下两步:
1.定义多角度余弦匹配方程
f
m
f_m
fm来比较两个向量
m
=
f
m
(
v
1
,
v
2
;
W
)
m = f_m(v_1, v_2;W)
m=fm(v1,v2;W)
这里
v
1
,
v
2
v_1,v_2
v1,v2是两个d-dimensional向量,
W
W
W是一个
l
×
d
l\times d
l×d维的学习参数,
m
m
m是一个
l
l
l维向量,其中
m
k
m_k
mk表示第k个角度,具体计算方式
m
k
=
c
o
s
i
n
e
(
W
k
∘
v
1
,
W
k
∘
v
2
)
m_k = cosine(W_k\circ v_1, W_k\circ v_2)
mk=cosine(Wk∘v1,Wk∘v2) 这里
∘
\circ
∘表示element-wise multiplication.
2.基于上步提到的 f m f_m fm, 定义了四种匹配策略来比较一个句子的某个 time-step 与另一个句子的所有 time-step.

- 第一种 Full-Matching
取一个句子的某个 time-step 和另一个句子的最后一个 time-step 做比较

- 第二种 Maxpooling-Matching
取一个句子的某个 time-step 和另一个句子的所有 time-step 比较后取最大

- 第三种 Attentive-Matching
首先计算一个句子的某个 time-step 和另一个句子的所有 time-step 的余弦相似度,类似 Attention 矩阵。



-
第四种 Max-Attentive-Matching
和第三种类似,不过最后attentive vector是求max而不是mean.对句子每一个time-step都使用了以上四种匹配策略,之后将这8个匹配向量进行concatenate.
实验
实验设置
word_embedding: 300(freeze)
OOV: initialize randomly
character-composed embedding: 初始化为20维向量, 然后将每个词输入到50维的lstm
BiLSTM hidden layer: 100
dropout: 0.1
损失函数: cross entropy
optimizer: ADAM
learning rate: 0.001
实验结果
实验了三个任务:
- Paraphrase Identification
- Natural Language Inference
- Answer Sentence Selection
数据集1 Quora Question pairs

数据集2 SNLI

数据集3 TREC-QA WikiQA
