赞
踩
参照上图理解Attention,将Source中的包含一系列<Key,Value>数据对(key和value是相等地,都是encoder的输出值
h
h
h),此时给定Target中的某个元素Query(即decoder中的
h
i
h_i
hi),通过计算Query和各个Key的相似性,得到每个Key对应Value的权重系数,然后对Value进行加权求和,即得到了最终的Attention数值。所以本质上Attention机制是对Source中元素的Value值进行加权求和,而Query和Key用来计算对应Value的权重系数。第一阶段进行相似度计算:
A
t
t
e
n
t
i
o
n
(
Q
u
e
r
y
,
S
o
u
r
c
e
)
=
∑
i
=
1
n
S
i
m
i
l
a
r
i
t
y
(
Q
u
e
r
y
,
K
e
y
i
)
∗
V
a
l
u
e
i
(1)
Attention(Query,Source)=n∑i=1Similarity(Query,Keyi)∗Valuei
其中
n
n
n是Key, Value对的个数,
S
i
m
i
l
a
r
i
t
y
(
Q
,
K
i
)
Similarity(Q, K_i)
Similarity(Q,Ki)的计算方式如下:
点
积
:
S
i
m
i
l
a
r
i
t
y
(
Q
u
e
r
y
,
K
e
y
i
)
=
<
Q
u
e
r
y
,
K
e
y
i
>
余
弦
相
似
度
:
S
i
m
i
l
a
r
i
t
y
(
Q
u
e
r
y
,
K
e
y
i
)
=
<
Q
u
e
r
y
,
K
e
y
i
>
∥
Q
u
e
r
y
∥
∗
∥
K
e
y
i
∥
M
L
P
单
层
隐
藏
层
神
经
网
络
:
S
i
m
i
l
a
r
i
t
y
(
Q
u
e
r
y
,
K
e
y
i
)
=
M
L
P
(
Q
u
e
r
y
,
K
e
y
i
)
(2)
点积:Similarity(Query,Keyi)=<Query,Keyi>余弦相似度:Similarity(Query,Keyi)=<Query,Keyi>‖Query‖∗‖Keyi‖MLP单层隐藏层神经网络:Similarity(Query,Keyi)=MLP(Query,Keyi)
第一阶段计算出Query和
K
e
y
i
Key_i
Keyi的相似度后,第二阶段将相似度得分进行softmax计算(一方面可以进行归一化,将原始计算分值整理成所有元素权重之和为1的概率分布;另一方面也可以通过SoftMax机制突出重要元素的权重),一版采用如下公式计算:
α
=
S
o
f
t
m
a
x
(
S
i
m
i
)
=
e
S
i
m
i
∑
j
=
1
n
e
S
i
m
i
(3)
α=Softmax(Simi)=eSimi∑nj=1eSimi
上式中的
α
i
\alpha_i
αi即为
V
a
l
u
e
i
Value_i
Valuei的权重系数,第三阶段进行加权求和即可得到Attention的数值,如下所示:
A
t
t
e
n
t
i
o
n
(
Q
u
e
r
y
,
V
a
l
u
e
i
)
=
∑
i
=
1
n
α
i
∗
V
a
l
u
e
i
(4)
Attention(Query,Valuei)=n∑i=1αi∗Valuei
阶段1:Query与每一个Key通过F函数得到相似性评分s;
阶段2:将s评分进行softmax转换成[0,1]之间的概率分布;
阶段3:将
[
α
1
,
α
2
,
α
3
…
α
n
]
[\alpha_1,\alpha_2,\alpha_3…\alpha_n]
[α1,α2,α3…αn]作为权值矩阵对每一个Value进行加权求和得到最后的Attention值。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。