Press "Enter" to skip to content

相对位置编码Transformer的一个理论缺陷与对策

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

©PaperWeekly 原创 · 作者 |

苏剑林

单位 |追一科技

研究方向 |NLP、神经网络

 

位置编码是 Transformer 中很重要的一环,在 《让研究人员绞尽脑汁的 Transformer 位置编码》 中我们就总结了一些常见的位置编码设计。大体上,我们将 Transformer 的位置编码分为“绝对位置编码”和“相对位置编码”两类,其中“相对位置编码”在众多 NLP/CV 的实验表现相对来说更加好些。

 

然而,我们可以发现,目前相对位置编码几乎都是在 Softmax 之前的 Attention 矩阵上进行操作的,这种施加方式实际上都存在一个理论上的缺陷,使得 Transformer 无法成为“万能拟合器”。本文就来分析这个问题,并探讨一些解决方案。

 

 

简单探针

 

顾名思义,位置编码就是用来给模型补充上位置信息的。那幺,如何判断一个模型有没有足够的识别位置的能力呢?笔者之前曾构思过一个简单的探针实验:

 

对于一个有识别位置能力的模型,应该有能力准确实现如下映射

 

 

也就是说,输入个 0,能有序地输出位置编号。这个探针实验的思想很简单,即模型如果有能力做到这一点,说明识别位置是模型自身具备的能力,跟外部输入无关,这正是我们想要的。不难发现,绝对位置由于是直接施加在输入上的,所以它很容易能够完成探针测试。

 

 

无法胜任

 

然而,当笔者带着这个简单的探针实验去思考带有相对位置编码的 Transformer 模型时,却发现它们几乎都不能完成上述任务。

 

具体来说,除了《Self-Attention with Relative Position Representations》 [1] 所提出的设计外,其余所有相对位置编码(包括笔者所提的RoPE)都只修改了 Softmax 前的 Attention 矩阵,那幺带有相对位置信息的 Attention 矩阵依然是一个概率矩阵(即每一行求和等于 1)。

 

另一方面,对于 Transformer 模型来说,Token之间的交互的唯一来源是 Self Attention 的这一步,或者写成。相同的输入意味着每个都是相同的,所以

 

 

这意味着每个也是相同的。换句话说,模型的每个位置自始至终都输出相同的结果,所以模型根本不可能输出各不相同的。

 

类似的发现也出现在最近的论文《Your Transformer May Not be as Powerful as You Expect》 [2] 中,作者构建了略有不同的例子来演示相对位置编码 Transformer 的拟合能力缺陷问题,两者异曲同工、不谋而合了。

 

 

初步方案

 

稍加思考就可以发现,其实问题主要出在 Attention 矩阵的每一行求和等于 1,要解决这个问题,想办法打破这个约束就行了。为此,《Your Transformer May Not be as Powerful as You Expect》 [2] 在其发现之上进一步提出了如下设计

 

 

其中是一个可训练的参数矩阵,是逐位相乘(Hadamard 积 [3] )。为了使得整个模型依然只包含相对位置信息(因为本文就是讨论相对位置编码 Transfomrer 的缺陷),我们要约束为 Toeplitz 矩阵 [4]

 

有了的加入,作为一个整体,每一行的和显然不一定为 1,从而打破了这个限制,因此是可以解决问题的。但这样一来,引入了新的参数矩阵不说,由于本身是有限大小的,所以它就不能很好地支持变长输入(或者矩阵相应地要做一些截断,即的形式),总的来说显得不够简洁优雅。

 

 

去掉分母

 

再次回到问题所在:Attention 矩阵的每一行求和等于 1。是什幺操作导致了这一现象呢?答案很显然,是 Softmax:

 

 

这里的是 Softmax 前的矩阵。很明显,就是“除以”这一步导致了,那幺一个很直接的想法就是:

 

如果我不想,那幺干脆别除以就行了?

 

事实上确实可以!实验结果显示,不除以该分母的 Transformer 确实能成功地完成前述探针测试。此时就不得不感概一下GAU 的“先见之明”了,它提出的新式 Attention 直接是激活然后简单除以来归一化,避免了,从而增强了模型的理论能力(当然也许作者根本没想那幺多,是笔者想象的成分居多)。

 

 

新归一化

 

然而,我们在 《听说 Attention 与 Softmax 更配哦~》发 现像 GAU 里的不进行概率归一化的 Attention 设计可能存在外推能力欠佳的问题。也就是说,进行概率归一化导致了前面说的理论缺陷,简单地除以来归一化则外推能力可能欠佳,有没有同时能兼顾两者的方案呢?

 

让我们再发散一下脑洞。从范数的角度来看,实际上是向量的范数,所以 Softmax 实际上就是向量的的归一化操作,那幺要避免,又有保留归一化,换成其他的归一化操作是否可以呢?比如归一化:

 

 

经过笔者测试,这种归一化的 Attention,确实能成功完成探针实验。那幺,这个改动对我们更关心的 NLP 预训练场景有没有帮助呢?笔者也做了相应的对比实验,结果是分两部分:

 

1、对于标准的 Attention + FFN 组合,应用归一化 Attention 之前要缩小一下 Attention 的的初始方差,实验结果则是略差于常规的归一化 Attention;

 

2、对于全 GAU 的架构,可以直接应用归一化 Attention,不需要改动初始化,实验结果则是略优于常规的归一化 Attention。

 

两者的差别大概是源于它们本身的初始化方式不同,在标准的 Attention + FFN 组合中,初始 Attention 矩阵接近一个均匀矩阵(每个数都相同),而在《门控注意力单元(GAU)还需要 Warmup 吗?》 [5] 我们则分析过,GAU 的初始 Attention 矩阵更接近一个单位阵(的若干倍)。

 

 

峰回路转

 

再次纵观前文,我们发现是因为“每个都是相同的”,所以“的模型无法完成探针实验”。但如果每个不全相同呢?

 

我们知道,从 BERT 开始,主流的 Transformer 模型都是像“[CLS][SEP]”设计输入的,也就是在输入前后会附加一些标记性的 Token,如果我们将这些标记 Token 当作模型的一部分而不是输入(也就是说输入“[CLS][SEP]”而不是全 0),那幺是否有可能完成探针呢?

 

笔者也对此做了实验,发现对输入补充上标记行 Token 后,不需要对相对位置编码 Transformer 的其他部分做修改,确实也能够完成探针实验。这结果就有点啼笑皆非了,原来 BERT 的作者们也很有“先见之明”啊,所添加的特殊 Token [CLS]、[SEP] 还有辅助定位的作用,我们分析那幺久的理论缺陷,居然就这样被两个特殊 Token 解决了。

 

当然,这也不意味着我们前面的思考全无意义。比如对 GAU 模型来说,Attention 换用归一化确确实实有加快收敛、轻微提升效果的作用。此外,既然可以接受归一化,那幺是不是还可以换成一般的激活函数(比如去掉非负性约束)呢?笔者也简单做了“归一化”的实验,发现有一定的可行性。从这个角度来看,归一化下的 Attention 实际上有更多的拓展空间。

 

 

曲终人散

 

本文分析了相对位置编码 Transformer 的一个隐含缺陷,并探讨了相应的对策,从中引申出关于 Attention 矩阵的非负性、归一化方式的思考。

 

 

参考文献

 

 

[1] https://arxiv.org/abs/1803.02155

 

[2] https://arxiv.org/abs/2205.13401

 

[3]  https://en.wikipedia.org/wiki/Hadamard_product_(matrices)

 

[4] https://en.wikipedia.org/wiki/Toeplitz_matrix

 

[5] https://kexue.fm/archives/8990

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。