【论文笔记】Self-Attention with Relative Position Representations

Comments:	NAACL 2018
Subjects:	Computation and Language (cs.CL)
Cite as:	arXiv:1803.02155 [cs.CL]
 	(or arXiv:1803.02155v2 [cs.CL] for this version)
 
https://doi.org/10.48550/arXiv.1803.02155

1. Introduction

Transformer的核心结构Self-Attention机制由于其无法对输入token的相对位置或绝对位置信息进行建模,因此,目前主流的方案都是在输入token之外再额外加上一个Positional Encoding来引入位置信息。本文则是从Self-Attention机制内部出发,通过在计算过程中引入token之间的相对位置关系向量,打破了Self-Attention机制的Permutation-Invariant特性,从而更高效地完成了位置信息的编码,性能得到了提升。

2. Background

本文扩展自注意力以考虑输入元素之间的成对关系,从这个意义上讲,就是将输入建模为标记的(labeled),有向的( directed),完全连接的图( fully-connected graph)。在正式进入讲解之前,我们需要回顾一下self-attention。假设我们从多头注意力机制中的一个头输出后的序列是 x = ( x 1 , . . . , x n ) x=(x_1,...,x_n) x=(x1,...,xn),其中 x i ∈ R d x x_i∈\mathbb{R}^{d_x} xiRdx,通过 attention 计算出一个新的序列 z = ( z 1 , … , z n ) z=(z_1,…,z_n) z=(z1,,zn),其中 z i ∈ R d z z_i∈\mathbb{R}^{d_z} ziRdz。线性变换的输入元素的加权和计算公式如下:
在这里插入图片描述
其中,权重系数 a i j a_{ij} aij 是通过 softmax 计算的:
在这里插入图片描述
使用兼容函数计算 e i j e_{ij} eij,该函数比较两个输入元素(其中,使用Scaled dot product作为兼容函数计算是很高效的):
在这里插入图片描述
W Q , W K , W V ∈ R d x × d z W^Q,W^K,W^V∈\mathbb{R}^{d_x×d_z} WQ,WK,WVRdx×dz 是参数矩阵。

3. Proposed Architecture

3.1 Relation-aware Self-Attention

沿用上面的 x x x 的表示,将输入元素之间的edge表示为 a i j V , a i j K ∈ R d a a_{ij}^V,a_{ij}^K∈\mathbb{R}^{d_a} aijV,aijKRda ,学习两个不同的 edge 表示的出发点是 a i j V , a i j K a_{ij}^V,a_{ij}^K aijV,aijK 适用于如下两个等式,这些表示可以在关注头之间共享, d a = d z d_a=d_z da=dz

通过引入边的特征表示,原始的Self-Attention机制修改为以下计算方式:
在这里插入图片描述
即对于各个Value和Key来说,都会引入一个相互的位置关系表示,从而打破了Self-Attention的Permutation-Invariant。

3.2 Relative Position Representation

考虑到计算量、内存消耗以及远距离的精确位置信息效用足等因素,本文对最远的Relative Position Distance限制为 k k k

Relative Position Representation 的目标是给出 a i , j V , a i , j K a_{i,j}^V,a_{i,j}^K ai,jV,ai,jK 的计算方式。假设如果序列中两个元素的距离超过 k k k,则这两元素之间的位置信息就没有意义了。剪裁最大距离还使模型能够泛化训练期间看不到的序列长度,因此,考虑 2 k + 1 2k+1 2k+1 个唯一的edge标签。
在这里插入图片描述
以下图为例,图中假设 2 < = k < = n − 4 2 <= k <= n − 4 2<=k<=n4

i = 2 , j = 1 i=2,j=1 i=2j=1 时, c l i p ( − 1 , k ) = m a x ( − k , m i n ( k , − 1 ) ) = − 1 clip(-1,k)=max(-k,min(k,-1))=-1 clip(1,k)=max(k,min(k,1))=1 a 2 , 1 K = w c l i p ( − 1 , k ) K = w − 1 K a_{2,1}^K=w_{clip(-1,k)}^K=w_{-1}^K a2,1K=wclip(1,k)K=w1K, 同理得 a 2 , 1 V = w − 1 V a_{2,1}^V=w_{-1}^V a2,1V=w1V

i = 4 , j = n i=4,j=n i=4,j=n 时, c l i p ( n − 4 , k ) = m a x ( − k , m i n ( k , n − 4 ) ) = k clip(n-4,k)=max(-k,min(k,n-4))=k clip(n4,k)=max(k,min(k,n4))=k a 4 , n K = w c l i p ( n − 4 , k ) K = w k K a_{4,n}^K=w_{clip(n-4,k)}^K=w_{k}^K a4,nK=wclip(n4,k)K=wkK,同理得 a 4 , n V = w k V a_{4,n}^V=w_{k}^V a4,nV=wkV
在这里插入图片描述
在这种设定下, a i , j V , a i , j K a_{i,j}^V,a_{i,j}^K ai,jV,ai,jK 应该只与相对位置有关,而与 x i , j , x i , j x_{i,j},x_{i,j} xi,j,xi,j 没有关系。作者直接将 a i , j V , a i , j K a_{i,j}^V,a_{i,j}^K ai,jV,ai,jK 定义为可训练的向量,本质上是训练 w K = ( w − k K , . . . , w k K ) w^K=(w_{-k}^K,...,w_k^K) wK=(wkK,...,wkK) w V = ( w − k V , . . . , w k V ) w^V=(w_{-k}^V,...,w_k^V) wV=(wkV,...,wkV) w i K , w i V ∈ R d a w_i^K,w_i^V∈\mathbb{R}^{d_a} wiK,wiVRda

3.3 Efficient Implementation

把等式(4)拆分开如下:
在这里插入图片描述
然后我们就可以通过矩阵并行计算批量进入的数据了。

4 Experiments

实验结果:
在这里插入图片描述
在这里插入图片描述

5 Conclusions

本文主要是从Self-Attention机制本身出发,在计算过程中引入了相对位置信息,从而打破了Self-Attention的Permutation-Invariant特性,提升了各个word之间关系构建能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值