赞
踩
Bi-Directional Attention Flow for Machine Comprehension
用于阅读理解的双向attention流模型
作者:Minjoon Seo et al.
单位:Allenai
发表会议及时间:ICLR2017(表示学习learning representation的顶会)
在线LaTeX公式编辑器
别人的翻译
1.阅读理解任务的简介
阅读理解,有时也叫问答任务,就是给定背景文档和问题,需要回答出答案,一般答案都是文档中连续的一段话。
2.常见的阅读理解任务
1)SQuAD形式:给定背景文档和问题,需要回答出答案,一般答案都是文档中连续的一段话。
2)人工合成问答:人工构造若干简单事实形成的文章以及对应的问题,要求机器阅读文章并作出一定的推理,从而得到正确答案。
3)完形填空:将真实的新闻数据中的实体名如人名或者地名等隐去,用实体标记符号替换掉实体词具体名称,问题中一般问哪个实体怎么怎么了,答案就是对应的实体标记。
4)选择题:给定一篇文章,一个问题和几个获选答案,需要从多个候选答案中选出正确答案,类似于四六级的阅读理解。
3. 了解Attention
了解attention的概念和相关概念,了解attention的意义,了解attention中query、key、value的含义。
阅读理解:通过阅读文章来回答文章相关的问题。
意义:可以构建通用的问答系统。
人工构造若干简单事实形成的文章以及对应的问题,要求机器阅读文章并作出一定的推理,从而得到正确答案。
将真实的新闻数据中的实体名如人名或者地名等隐去,用实体标记符号替换掉实体词具体名称,问题中一般问哪个实体怎么怎么了,答案就是对应的实体标记。
给定一篇文章,一个问题和几个获选答案,需要从多个候选答案中选出正确答案,类似于四六级的阅读理解。
·了解Attention的概念
·了解attention的概念和相关方法,了解attention的意义,参考论文:
Neural Machine Translation by Jointly Learning to Align and Translate(这个之前读过)
https://blog.csdn.net/oldmao_2001/article/details/100797735
摘要
1.介绍
2.模型
3.相关工作
4&5.实验
6.总结
一种基于深度学习的阅读理解模型
虽然之前有写过,还是直接贴过来好了:
https://blog.csdn.net/oldmao_2001/article/details/102653672
来自之前读过的:Neural Machine Translation by Jointly Learning to Align and Translate
Encoder:单层双向LSTM。(就是下图中下面两层方框)
Decoder:
对于输出:
p
(
y
i
)
=
g
(
y
i
−
1
,
s
i
,
c
i
)
p(y_i)=g(y_{i-1},s_i,c_i)
p(yi)=g(yi−1,si,ci)
对于
c
i
c_i
ci:
c
i
=
∑
j
=
1
T
x
a
i
j
h
j
,
a
i
j
=
e
x
p
(
e
i
j
)
∑
k
=
1
T
x
e
x
p
(
e
i
k
)
c_i=\sum_{j=1}^{T_x}a_{ij}h_j,a_{ij}=\frac{exp(e_{ij})}{\sum_{k=1}^{T_x}exp(e_{ik})}
ci=j=1∑Txaijhj,aij=∑k=1Txexp(eik)exp(eij)
w
h
e
r
e
e
i
j
=
a
(
s
j
−
1
,
h
j
)
where \space e_{ij}=a(s_{j-1},h_j)
where eij=a(sj−1,hj)
模型来自:Machine Comprehension using Match-LSTM And Answer Pointer
Q是问题query,P是文档passage,对这两个东西都用LSTM进行处理
H
p
=
L
S
T
M
→
(
P
)
,
H
q
=
L
S
T
M
→
(
Q
)
H^p=\overrightarrow{LSTM} (P),H^q=\overrightarrow{LSTM}(Q)
Hp=LSTM
(P),Hq=LSTM
(Q)
然后对passage中的每一个
h
i
p
h_i^p
hip(代表词)作attention,就是下面的G,
b
p
b^p
bp是偏置,
e
Q
e_Q
eQ代表重复的次数
G
→
i
=
t
a
n
h
(
W
q
H
q
+
(
W
p
h
i
p
+
W
r
h
→
i
−
1
r
+
b
p
)
⊗
e
Q
)
\overrightarrow G_i=tanh(W^qH^q+(W^ph_i^p+W^r\overrightarrow h^r_{i-1}+b^p)\otimes e_Q)
G
i=tanh(WqHq+(Wphip+Wrh
i−1r+bp)⊗eQ)
用softmax得到每一个词对应的attention权重
α
→
i
=
s
o
f
t
m
a
x
(
w
T
G
→
i
+
b
⊗
e
Q
)
\overrightarrow\alpha_i=softmax(w^T\overrightarrow G_i+b\otimes e_Q)
α
i=softmax(wTG
i+b⊗eQ)
z
→
i
=
[
h
i
p
H
q
α
→
i
T
]
\overrightarrow z_i=\left[\frac{h_i^p}{H^q\overrightarrow\alpha_i^T}\right]
z
i=[Hqα
iThip]
下面的
h
→
i
r
\overrightarrow h_i^r
h
ir是指上一个时间步的结果
h
→
i
r
=
L
S
T
M
→
(
z
→
i
,
h
→
i
−
1
r
)
\overrightarrow h_i^r=\overrightarrow{LSTM}(\overrightarrow z_i,\overrightarrow h^r_{i-1})
h
ir=LSTM
(z
i,h
i−1r)
下面两个式子是反向的结果
G
←
i
=
t
a
n
h
(
W
q
H
q
+
(
W
p
h
i
p
+
W
r
h
←
i
−
1
r
+
b
p
)
⊗
e
Q
)
\overleftarrow G_i=tanh(W^qH^q+(W^ph_i^p+W^r\overleftarrow h^r_{i-1}+b^p)\otimes e_Q)
G
i=tanh(WqHq+(Wphip+Wrh
i−1r+bp)⊗eQ)
α
←
i
=
s
o
f
t
m
a
x
(
w
T
G
←
i
+
b
⊗
e
Q
)
\overleftarrow \alpha_i=softmax(w^T\overleftarrow G_i+b\otimes e_Q)
α
i=softmax(wTG
i+b⊗eQ)
最后的结果为:
H
=
(
h
→
r
,
h
←
r
)
H=(\overrightarrow h^r,\overleftarrow h^r)
H=(h
r,h
r)
最后预测的答案用答案在文档中开始位置start_id和结束位置end_id来表示。
模型比较复杂,有很多个层,文中称为多stage
Word Embedding 用的是GLOVE,下图黄色部分,Character Embedding 用的是Char-CNN,下图粉红色部分
下面是Character Embedding的图例,看到先对词进行pad,然后卷积核大小是3,stride为1,对输入进行卷积后得到4个结果,有4个卷积核,所有有四个颜色,然后对卷积后的结果进行max pooling,每个卷积结果得到一个值。
文档级别的Embedding 层
下面是原文,大意是说用的是LSTM,而且用的是双向LSTM,最后把两个方向的结果concat到一起,所以维度是2d×T(T为背景文档中词的个数)的。H我背景文档向量,U是query文档向量,J是U中词的个数。
接上一层得到的结果H和U,他们的维度分别为2d×T和2d×J,然后
1.计算相似度矩阵S,大小为
(
T
,
J
)
(T,J)
(T,J),
S
t
j
=
w
[
H
:
t
;
U
:
j
;
H
:
t
∗
U
:
j
]
S_{tj}=w[H_{:t};U_{:j};H_{:t}*U_{:j}]
Stj=w[H:t;U:j;H:t∗U:j]
上面公式中
H
:
t
H_{:t}
H:t表示H中的一列,维度是2d1,
U
:
j
U_{:j}
U:j表示U中的一列,维度是2d1,然后
H
:
t
∗
U
:
j
]
H_{:t}*U_{:j}]
H:t∗U:j]相乘的结果维度也是2d1的,最后把他们concat出来维度的大小就变成6d1的,w维度是16d的,最后
S
t
j
S_{tj}
Stj就变成一个常量值,代表文档向量t和query向量j的相似度。下面分两个方向进行计算:
2.计算Context-to-query矩阵:对于Context中的词w,query中哪些词和w最相关:
U
c
−
q
t
=
∑
j
a
t
j
U
:
j
U_{c-q_t}=\sum_ja_{tj}U_{:j}
Uc−qt=∑jatjU:j,其中
a
t
j
a_{tj}
atj是S中第t行做softmax的结果,
U
c
−
q
t
U_{c-q_t}
Uc−qt的维度为2dT。
3.计算Query-to-context矩阵:对于Query,Context中哪个词和Query最相关:
h
q
−
c
=
∑
t
b
t
H
:
t
h_{q-c}=\sum_tb_tH_{:t}
hq−c=∑tbtH:t,其中b是对S每行求max-pooling之后求softmax的结果,
H
q
−
c
H_{q-c}
Hq−c为重复T次的结果。
4.合并两个矩阵得到G:
G
:
t
=
[
H
:
t
;
U
c
−
q
:
t
;
H
:
t
∗
U
c
−
q
:
t
;
H
:
t
∗
H
q
−
c
:
t
]
G_{:t}=[H_{:t};U_{c-q:t};H_{:t}*U_{c-q:t};H_{:t}*H_{q-c:t}]
G:t=[H:t;Uc−q:t;H:t∗Uc−q:t;H:t∗Hq−c:t]
G
:
t
G_{:t}
G:t为4个2d×1的矩阵concat的8d1的结果。G的维度就为8dT
这里的输入是上一层得到的G,维度大小如图所示。
这里用到了两层的双向LSTM处理,得到结果M,其维度是2d×T的。
根据前面内容知道:G和M两个东西concat到一起维度为10d×T的,w维度是10d×1
p
1
=
s
o
f
t
m
a
x
(
w
(
p
1
)
T
[
G
;
M
]
)
p^1=softmax(w^T_{(p^1)}[G;M])
p1=softmax(w(p1)T[G;M])
p
2
=
s
o
f
t
m
a
x
(
w
(
p
2
)
T
[
G
;
M
2
]
)
p^2=softmax(w^T_{(p^2)}[G;M^2])
p2=softmax(w(p2)T[G;M2])
L
(
θ
)
=
−
1
N
∑
i
N
l
o
g
(
p
y
i
1
1
)
+
l
o
g
(
p
y
i
2
2
)
L(\theta)=-\frac{1}{N}\sum_i^Nlog(p^1_{y_i^1})+log(p^2_{y_i^2})
L(θ)=−N1i∑Nlog(pyi11)+log(pyi22)
SQuAD:斯坦福大学的问答数据集,包含100K+的问题答案对,其中答案是背景文档中的连续的一段话,给定问题和背景文档要求找到背景文档中的连续的一段话作为的答案。
完形填空数据集:从CNN和DailyMail上选取的新闻,分别包含300k/4k/3k数据和879k/65k/53k数据。
单模型上要比R-net差一点,但是集成模型NB。右边显示了去掉模型的某个部分后得到的实验结果。
论文主要创新点:
A. 提出了一种双向attention流的模型。
B.使用了字符,词,文本多种级别的信息。
C.在多个数据集上取得了SOTA的效果。
总结:
对比模型:本文对比了Match-Lstm模型。
模型:本文提出了一种双向attention流模型。
实验:本文提出的在对多个数据集上取得了SOTA的结果。
Shuohang Wang et al.Neural Machine Translation by Jointly Learning to Align and Translate
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。