《MEMEN: Multi-layer Embedding with Memory Networks for Machine Comprehension》论文阅读笔记
这篇文章是浙大在2017年提出的,在TriviaQA dataset上得到了SOTA,在SQuAD上得到了有竞争力的结果。
分以下四部分介绍:
- Motivation
- Model
- Experiment
- Discussion
1、Motivation
1.Previous methods rarely spend time on the improvement of encoding layer, especially the embedding of syntactic information and name entity of the words
先前的方法在Encoder端都是简单地编码,尤其是缺乏语法信息(词性)和语义信息(命名实体)。
2.现存的attention方法把query中的每个词都作为一个向量表示或者直接用一个单向量作为query的表示,都不能很好地处理query中的关键词。
3.在输入层用词和字符作为输入,忽略了语法信息和NE(named entity)。
2、Model
模型主要分成以下4个部分:
第1个部分主要是表示,中间三个部分,主要是三部分的attention的计算,被称为“full-orientation matching layer”,最后一部分就是输出层。
- Encoding of Context and query
- Integral Query matching
- Query-Based Similarity Matching
- Context-Based Similarity Matching
- Output layer
Encoding of Context and query
编码端主要分成4部分的输入,第1部分是字符向量编码,第2部分是词向量编码,第3部分是语法编码,第4部分是语义编码。其中词性标注(语法)和命名实体识别(语义)通过skip-gram获得。充分的融合文档和问题当中的信息。
获得上述信息之后,将词向量
w
t
w_t
wt,字符向量
c
t
c _t
ct 和标签向量
s
t
s_t
st拼接,然后经过双向LSTM得到Q和P的表达,如下:
NOTE:并且用问题当中的双向编码的最后一个隐藏状态拼接,作为问题的另一表示
u
Q
u^Q
uQ。即图中红色部分。这一个部分也会用在后面的模型当中。
文章的解释:one-dimensional attention, in which the bidirectional last hidden states are regarded as representation, is able to capture more useful information compared to only applying two dimensional attention
Integral Query matching
第1部分attention的计算主要是one dimensional attention,通过计算问题表示
u
Q
u^Q
uQ和文章当中的每个词的attention
c
t
c_t
ct,然后加权求和得到
m
1
m^1
m1。维度为l,后面会对此向量进行len(passage)扩张保证三次attention的维度一致。
Query-Based Similarity Matching
第2部分的attention计算就是大部分论文的做法。先用文档的表示
r
P
r^P
rP 和问题的表示
r
Q
r^Q
rQ 去计算得到一个对齐矩阵
A
i
j
A_{ij}
Aij:
然后对行去做softmax 得到
B
B
B:
再进行加权求和得到
M
t
2
M_t^2
Mt2 :
Context-Based Similarity Matching
第3部分的attention的计算,有一点像r-net当中的第二种方式。即,我把矩阵A当中每行的最大一个值取出来,然后对所有的这n个值去进行softmax得到d,用d和文档当中的每个词去进行加权求和,得到
m
3
m^3
m3
e
=
m
a
x
r
o
w
(
A
)
e = max_{row}(A)
e=maxrow(A)
d
=
s
o
f
t
m
a
x
(
e
)
d = softmax(e)
d=softmax(e)
把这三部分进行组合,得到最终的文档表示:
通过增加门机制,能够提高收敛的速度:
最后过一个BiLSTM然后就能够使用pointer-network进行预测。但是图示中有两个hops,即将
O
t
O_t
Ot和Question继续进行一次full-orientation matching layer。
Output layer
输出层就是一个指针网络,具体可以参考《Machine Comprehension Using Match-LSTM and Answer Pointer》
3、Experiment
作者在两个数据集上进行了任务,第1个数据是TriviaQA dataset。这个数据只是来源于网页搜索结果,和维基百科页面,存在不同级别差异的信息冗余。有些问题在文档当中并不能找到evidence。
第二个数据集就是SQuAD,介绍可以参考《Machine Comprehension Using Match-LSTM and Answer Pointer》。
关于m值和F1值,这里就不过多的介绍了,主要就介绍一下Hops and Ablations:
- Hops,从下图可以看出,随着Hops增多,效果在一定程度上有所提高,但是增加到3Hops之后,效果会有所退化,可能是过拟合了。
- 我们通过在模型上减去某部分的strategy,观察某个strategy的效果。从下图可以看出,语法信息比语义信息,增加的效果更好。这里的原因可能是命名实体识别标签比词性标注标签更稀疏,所以神经网络在捕获他们的信息是略有欠缺。另外三部分的attention对模型效果也很重要。
4、Discussion
优点:
- 首先增加了encoder输入的特征信息,更好的捕获了输入的语法以及语义信息。
- 其次用full-orientation matching layer,充分的进行attention的计算。
如果大家对这篇文章有啥想法,或者觉得有缺点的话,欢迎底下留言讨论!