论文阅读——Self-Attention with Relative Position Representations
Self-Attention with Relative Position Representations
Abstract
2017年 Vaswani 等人提出的Transformer需要在输入中添加绝对位置表示。作者在这篇文章中提出将元素与元素之间的相对位置表示引入了self-attention机制,在两个机器翻译(WMT 2014 EN-DE and EN-FR)的任务中,引入相对位置表示的self-attention比绝对位置编码的self-attention有明显的提升。但相对与绝对结合并不会进一步提高翻译质量。
1 Introduction
RNNs通常根据时间t的输入和先前的隐藏状态h_{t-1}计算隐藏状态h_t,通过时序结构直接获取时间维度上的相对和绝对位置。非递归模型(如Transformer)不一定顺序地考虑输入元素,因此可能需要明确地编码位置信息以便能够使用序列顺序。
一种常见的方法是使用与输入元素结合的位置编码,以将位置信息公开给模型。这些位置编码可以是位置的确定性函数或学习的表示形式。比如,卷积神经网络捕获每个卷积内核大小内的相对位置,已被证明仍然受益于位置编码。
2 Background
- self-attention

假设我们从多头注意力机制中的一个头输出后的序列是 x=(x_1,x_2,...,x_n),其中 x_i∈R^{d_x},这个时候,我们需要通过attention计算出一个新的序列 z:
z_i=\sum_{j=1}^{n}a_{ij}(x_jW^V)
其中,权重系数 a_{ij}是通过 softmax计算的:
a_{ij}=\frac{exp(e_{ij})}{\sum_{k=1}^nexp(e_{ik})}
使用兼容函数计算 e_{ij},该函数比较两个输入元素(其中,使用Scaled dot-product作为兼容函数计算是很高效的):
e_{ij}=\frac{(x_iW^Q)(x_jW^K)^T}{\sqrt{d_z}}
- 位置编码公式
PE_{(pos.2i)}=sin(pos/10000^{2i/d_{model}})
PE_{(pos.2i+1)}=cos(pos/10000^{2i/d_{model}})
3 Proposed Architecture
3.1 Relation-aware Self-Attention
将输入元素 x_i和 x_j之间的edge表示为 a_{ij}^V,a_{ij}^K∈R^{d_a},学习两个不同的edge表示的出发点是 a_{ij}^V,a_{ij}^K适用于如下两个等式,这些表示可以在关注头之间共享,其中 d_a=d_z。
z_i=\sum_{j=1}^{n}a_{ij}(x_jW^V+a_{ij}^K)^T
此扩展对于在任务中非常重要,其中任务由给定的注意头选择的edge类型信息对下游编码器或解码器层有用。同时,还修改了等式(3)确定兼容性时要考虑edge
e_{ij}=\frac{(x_iW^Q)(x_iW^K+a_{ij}^K)^T}{\sqrt{d_z}}
这里将edge信息通过简单加法合并进表示的主要原因是为了高效实现,这在后面会讲到。
3.2 Relative Position Representations

对于线性序列,edge可以捕获输入元素之间相对位置差异的信息。作者考虑最大相对位置被裁剪为最大绝对值k,因为精确的相对位置信息在一定距离外没有用。裁剪最大距离还可以使模型推广到训练期间未看到的序列长度。因此,考虑 2k+1个唯一的 edge标签。
a_{ij}^K=w_{clip(j-i,k)}^K
a_{ij}^V=w_{clip(j-i,k)}^V
clip(x,k)=max(-k,min(k,x))
3.3 Efficient Implementation
通过在每个注意头之间共享相对位置表示来降低存储相对位置表示的空间复杂度。
把等式(7)拆分开如下:
e_{ij}=\frac{x_iW^Q(x_jW^K)+x_iW^Q(a_{ij}^K)^T}{\sqrt{d_z}}
使之可以计算单个矩阵乘法中的所有 e_{ij},还可以避免广播相对位置表示。
4 Experiments
使用newstest2014测试集,WMT 2014英语到德语(EN-DE)和英语到法语(EN-FR)翻译任务的实验结果。

参数:
- encoder-decoder layers = 6
- d_x=512
- d_z=64
- attention heads = 8
- feed forward inner-layer dimensions = 1024
- Pdropout = 0.1
- k = 16
改变剪切距离 k 的实验结果。

相对位置表示 a_{ij}^V和 a_{ij}^K 的实验结果

5 Conclusions
本文提出了自注意力的扩展,可用于合并序列的相对位置信息,从而提高了机器翻译的性能。论文中的这个思路可以借鉴参考,通过对自注意力的改造,就不需要进行硬位置编码了,但是论文中貌似没有比较硬位置编码和该方法的效果。
