使用通用相对位置编码改进Transformer的通用近似性.

1. 相对位置编码的理论缺陷

位置编码是为Transformer的输入序列引入位置信息的重要手段。其中绝对位置编码是在输入中添加入绝对位置的表示。对应的完整自注意力机制运算如下

qi=(xi+pi)WQ,kj=(xj+pj)WK,vj=(xj+pj)WVαij=softmax{(xi+pi)WQ((xj+pj)WK)T}=softmax{xiWQ(WK)TxTj+xiWQ(WK)TpTj+piWQ(WK)TxTj+piWQ(WK)TpTj}zi=nj=1αij(xjWV+pjWV)qi=(xi+pi)WQ,kj=(xj+pj)WK,vj=(xj+pj)WVαij=softmax{(xi+pi)WQ((xj+pj)WK)T}=softmax{xiWQ(WK)TxTj+xiWQ(WK)TpTj+piWQ(WK)TxTj+piWQ(WK)TpTj}zi=nj=1αij(xjWV+pjWV)

注意到绝对位置编码相当于在自注意力运算中引入了一系列piWQ,(pjWK)T,pjWVpiWQ,(pjWK)T,pjWV项。而相对位置编码通过将这些项调整为与相对位置(i,j)(i,j)有关的向量Ri,jRi,j,在一系列自然语言任务上取得更好的表现。

然而相对位置编码存在理论缺陷,会使得Transformer无法成为通用近似器。不妨构造一个简单的探针实验,以判断一个模型有没有足够的位置识别能力。对于一个有位置识别能力的模型,应该能准确实现如下映射:

输入:[0,0,,0,0]输出:[1,2,,n1,n]

即输入全0序列,模型能有序地输出位置编号。绝对位置编码比较容易实现上述需求,而现有的相对位置编码却几乎都不能完成上述任务。

大部分相对位置编码都只修改了Softmax前的Attention矩阵,此时带有相对位置信息的Attention矩阵依然是一个按行的概率矩阵,位置信息由相对位置矩阵B引入:

αij=softmax{xiWQ(WK)TxTj+B}zi=nj=1αijxjWV

对于相同的输入,每个xj都是相同的,此时有:

zi=nj=1αijxjWV=(nj=1αij)xWV=xWV

此时模型的每个位置都输出相同的结果,无法输出不同的位置编号。上述结果表明相对位置编码会导致Transformer出现拟合能力缺陷问题。

2. URPE

为了保证使用相对位置编码的Transformer仍然是通用近似器,作者设计了通用相对位置编码(Universal RPE)。注意到上述问题出现在Attention矩阵是一个按行的概率矩阵,因此引入如下约束:

zi=nj=1αijcijxjWV

其中C=[cij]是一个可训练的参数矩阵,它与Attention矩阵逐位相乘。为使模型包含相对位置信息,约束CToeplitz矩阵: cij=g(ij)

实验表明,上述URPE在预测位置编号和预测偶数位置等特殊任务上都能取得显著的表现。