transformer与递归和卷积神经网络不同,它不显式地对其结构中的相对或绝对位置信息进行建模在这项工作中,本文提出了另一种方法,扩展自我注意机制,以有效地考虑相对位置的表示,或序列元素之间的距离。
在这项工作中,我们提出了一种将相对位置表征结合到transformer self-attention中的有效方法。即使完全替换其绝对位置编码,我们也在两个机器翻译任务上证明了翻译质量的显著提高。
主要对相对位置编码做了一个扩展,attention中在第一层之前,将基于变化频率的正弦的位置编码与编码器和解码器输入相加。与学习绝对位置表示的方法不同,atttention作者假设正弦位置编码将通过允许模型学习以及相对位置,从而帮助模型泛化,可以计算在训练过程中没有见过的序列长度。与绝对位置表示法不同,本文的相对位置表示方法共享了这一属性,它不随总序列长度而变化。
残差连接有助于将位置信息传递到高层layer。
原来的self-attention公式:
a
t
t
e
n
t
i
o
n
=
s
o
f
t
m
a
x
(
Q
K
T
d
)
V
attention = softmax(\frac{QK^T}{\sqrt{d} } )V
attention=softmax(dQKT)V
a
t
t
e
n
t
i
o
n
=
Z
i
=
∑
j
n
α
i
j
(
x
i
j
W
V
)
attention =Z_i = \sum_{j}^{n}\alpha _{ij}(x_{ij}W^{V})
attention=Zi=j∑nαij(xijWV)
(
Q
K
T
/
d
)
:
e
i
j
=
(
x
i
W
Q
)
(
x
j
W
k
)
T
d
z
(QK^T/\sqrt[]{d} ):e_{ij}=\frac{(x_iW^{Q})(x_jW^{k})^T}{\sqrt[]{d_z} }
(QKT/d):eij=dz(xiWQ)(xjWk)T
s
o
f
t
m
a
x
(
Q
K
T
d
)
:
α
i
j
=
exp
e
i
j
∑
k
=
1
n
exp
e
i
k
softmax(\frac{QK^T}{\sqrt[]{d} }):\alpha_{ij}=\frac{\exp e_{ij}}{\sum\nolimits_{k=1}^{n}\exp e_{ik} }
softmax(dQKT):αij=∑k=1nexpeikexpeij
V
:
x
i
j
W
V
V:x_{ij}W^V
V:xijWV
扩展:将V和K进行扩展,分别添加一个额外的值
a
i
j
V
,
a
i
j
K
a_{ij}^{V},a_{ij}^{K}
aijV,aijK进去
输入元素
x
i
与
x
j
x_i 与x_j
xi与xj之间的边表示为
a
i
,
j
V
,
a
i
,
j
K
∈
R
d
a
a_{i,j}^V,a_{i,j}^K \in R^{d_a}
ai,jV,ai,jK∈Rda
这里W的下标表示相对于当前位置的偏移量,例如
a
2
,
1
a_{2,1}
a2,1 2 是当前位置,1是前一个位置,下标就是-1 (1-2),
a
2
,
4
a_{2,4}
a2,4 ,当前为2 ,相关位置为4,就是向后偏移两个位置,因此下标为2(4-2),也就是相对位置距离,这也符合了标题的相对位置信息。
对于线性序列来说,“边(EDGE)”可以捕获不同元素之间相对位置差异的信息,我们考虑最大相对位置被限制为最大绝对值K。假设超过某个距离之后,精确的相对位置信息是没有用的。裁剪修改最大距离可以是模型泛化能力更好,可以泛化到训练期间没有见过的序列。综上,作者考虑2K+1个独立的 edge label。