0. 背景
机构:Google Research
作者:Yi Tay, Dara Bahri, Donald Metzler, Da-Cheng Juan, Zhe Zhao, Che Zheng
论文地址:https://arxiv.org/abs/2005.00743
0.1 摘要
以当下基于Transformer的各种先进模型来看,使用点积自注意力(dot product self-attention)是至关重要且不可或缺的。但,事实真的如此吗,没有点积自注意力就会不香吗?点积自注意力是否真的不可替代?为此,本文提出SYNTHESIZER模型,该模型注意力权重的学习摒弃了传统自注意力机制中token之间的交互。本文通过大量实验发现:
(1)随机初始化对齐矩阵所表现出的实力惊人
(2)基于token-token或者说query-key之间的交互学习注意力权重其实是没必要的。
实验表明SYNTHESIZER在多个任务(包括机器翻译、语言建模、文本摘要、对话生成和自然语言理解)上可以与原始的Transformer相媲美。
1. 介绍
随着基于Transformer的各种模型在众多NLP任务上大获成功,Transformer的霸主地位已成事实。而Transformer的核心是query-key-value的点积自注意力,点积自注意力的基本作用是学习自对齐(self-alignment),即确定单个token相对于序列中所有其他token的相对重要性。实际上query、key和values隐含着自注意力模拟一个基于内容的检索过程,而这个过程的核心是pairwise之间的交互。本文则对这整个过程进行了反思。
与传统的做法相反,本文提出既不需要点积自注意力,也不需要基于内容的记忆类自注意力。传统上,注意力权重是在实例或样本级学习的,其中权重通过实例级的pairwise交互产生。因此,这些特定于具体实例的交互往往在不同的实例间波动,缺乏一致的全局语境。为此,本文提出 SYNTHESIZER,该模型不再手动计算token之间两两点积,而是学习合成自对齐(self-alignment)矩阵。同时文本提出多种合成函数,并对其进行全面评估。这些合成函数接收的信息源包括(1)单个token(2)token-token之间的交互(3)全局任务信息。
SYNTHESIZER是标准 Transformer 的泛化,实验结果表明凭全局注意力权重也能够获得具有竞争性的结果,而完全不用考虑token-token交互或任何实例级(局部)信息。随机初始化的 SYNTHESIZER 在WMT 2014 English-German上取得27.27的BLEU。在某些情况下,可以用更简单的SYNTHESIZER变体替换流行的和完善的基于内容的点积注意力,而不会牺牲太多性能。总的来说,本文的发现将会促进Transformer模型中自注意机制的真正作用和效用的进一步调查和讨论。
本文的贡献如下:
- 提出 Synthetic Attention, 这是一种新的学习注意力权重的方式。该方法没有使用点积注意力或基于内容的注意力)。生成独立于token-token交互的对齐矩阵,并探索了一组用于生成注意力矩阵的参数化函数。
- 提出 SYNTHESIZER 模型,该模型利用了Synthetic Attention。该模型在多个自然语言任务(包括机器翻译和语言建模)上可以与最先进的Transformer模型相比肩。
- 证明(1)随机可学习的对齐矩阵的性能具有竞争性;(2)用各种Transformer模型进行屠榜时,token-token的依赖关系并非必要。
2. 模型
SYNTHESIZER 本质上仍是一个 Transformer,只是其中自注意力模块被 Synthetic Attention 模块替换。在生成注意力对齐矩阵()的时候,本文提出两种SYNTHESIZER模型:Dense Synthesizer 和 Random Synthesizer。Figure 1 展示了 Transformer、Dense Synthesizer 和 Random Synthesizer 的关键思想。
2.1 Dense Synthesizer
这种 SYNTHESIZER 模型最为直观,与输入的每个token相关联。假设Dense Synthesizer模型的输入,输出是。其中表示文本序列的长度,表示模型的维度(每个token的维度)。整个模型分为2个步骤:
- 计算每个token的注意力权重
使用参数化的函数将文本序列中的每个token 从维映射为维。
更具体地
这可以理解为两层Dense层。由此计算结果表示每个token对序列中其他token的注意力值,所以输出结果维度是。 - 结合注意力得分计算模型输出结果
其中,是另一个参数化的函数,类比为标准 Transformer 的即value。
简而言之,Dense Synthesizer是用提换掉标准 Transformer 中的,从而消除点积注意力。
所以该模型考虑的是如何从values转为output过程变革。传统的方式用的点积注意力结果经过softmax后再和values相乘。而本文的方法:假设每个token的value维度是d,经过转换后的输出结果是 维,表示该token对文本中每个token的注意力权重分布。那么长度为的序列,经过转换后得到的是的矩阵。那么从矩阵转为的矩阵,期间需要引入的是一个的矩阵。这个的矩阵,即为Dense Synthesizer需要学习的参数。
2.2 Random Synthesizer:
Dense Synthesizer学习的synthetic attention是将给定的每个token映射到维,因此Dense Synthesizer模型的映射结果每个token之间是独立的(每个只与有关,而与其他token无关)。这与标准的 Transformer 模型中的token-token交互截然不同。
本文提出的另一种SYNTHESIZER模型是Random Synthesizer,该模型注意力权重的初始化不受任何输入token 的影响,而是完全随机初始化。这些随机初始化的值可以被训练也可以保持固定。具体定义如下:
其中是随机初始化的矩阵。该方法不依赖token对之间的交互或者任何单个token的信息,而是学习一个能跨实例有效的特定任务对齐。换句话说,学习一个跨实例有效的模型意味着在初始化时不直接依靠任何 token 信息。
2.3 模型分解
Dense Synthesizer和Random Synthesizer中引入的网络参数量分别是和。当文本序列很长时,参数量将暴增,为此本文引入模型分解的方法,一方面可以降低参数量,另一方面也可以缓解过拟合。
Factorized Dense Synthesizer:
通过生成2个低维矩阵(原文用的是,为了不与上文的混淆,这里稍微改动),,,。
最终的输出:
其中,表示重复b次,。表示重复a次,,所以最终都是。最后将两者逐位相乘(哈达玛积)得到。
Factorized Random Synthesizer
未分解前参数是,类似地,随机矩阵也可被分解为两个低秩矩阵:。
实验过程,选择的k=8。
混合Synthesizers:
上述提出各种synthetic attention变种都可以通过加和形式混合到一起:
其中表示一个 synthesizer 函数,是可学习的权重参数,。
比如混合的Random Factorized + Dense Synthesizers 可以用下式表示:
本文提出的各种合成函数如 Table 1所示。值得注意的是,常规的点积注意力也可以被纳入SYNTHESIZER的合成器框架,换句话说,SYNTHESIZER是 Transformer 模型的一般化形式。当合成函数为,即为标准的Transformer模型。
Condition On这一列表示合成的输出是否与或者-对相关,即输出和输入之间的关系。Sample这一列表示是否用到局部或全局信息,输入部分没有涉及具体的即表示全局信息。Random Synthesizers在所有样本中共享相同的全局对齐模式,所以是全局的;而Dense Synthesizers 与局部的直接相关,所以是局部的,这使得对齐模式依赖于每个单独的样本。此外,Synthesizers模型也采用多头的方式。
3. 实验
文本在机器翻译、语言模型、文本生成、多任务自然语言理解等任务上进行了实验。
机器翻译和语言建模:
在WMT’14 英德(EnDe)和英法(EnFr)机器翻译任务数据集上评测,结果如Table 2所示。
从上述Table 2可以看出,除了固定的Random Synthesizer 表现较差之外,其他模型表现都差不多,尽管相比于 Transformers 略有下降。其实固定的Random Synthesizer结果也是蛮惊人的,EnDe上也有大概24 BLEU。
语言建模任务上使用的数据集是LM1B,混合Synthesizer(Dense + Vanilla)取得效果最好 ,同时该混合Synthesizer模型也是 的各种Synthesizer模型中唯一超过 Transformer 的。
文本生成:
在文本生成上分别使用了摘要生成方面的CNN/Dailymail数据集和对话生成方面的PersonaChat数据集,具体实验结果如Table 3所示:
实验结果可以看出Synthesizer的各个模型表现不一。在文本摘要生成这个任务上,虽然在不同指标上最优模型各不相同,但是整体上标准Transformer效果比较好。但在对话生成这个任务上,各个指标上都是Synthesizer优于标准 Transformer,特别是Synthesizer(D)在各个指标上都取得了最佳结果。而当Dense和Random混合了标准的Transformer后(即 D+V 和 R+V),指标却下降了。这意味着点积自注意力在这项任务上实际上可能是帮了倒忙的。
多任务自然语言理解:
在自然语言理解任务上选用的是使用 GLUE 和 SuperGLUE。SYNTHESIZER模型和T5(base)在上述俩个benchmark上的实验结果如 Table 4和Table 5所示:
从实验结果可以看出,R+V的混合模型在多数子任务上取得最好的效果。
4. 总结
本文提出一种新的Transformer模型SYNTHESIZER,该模型它采用合成注意力(Synthetic Attention)。此外试图更好地理解和评估全局对齐、局部对齐和实例对齐(单个token和token-token)在自注意力中的效用。并在机器翻译、语言建模和对话生成等多个任务上证明了合成注意力可以与原始的Transformer相媲美。特别是在对话生成任务上,token-token之间的交互实际上会降低性能。Synthesizer 的不同设置没有绝对的优劣,与具体的任务相关。
总的来说,本文是对当下流行的自注意力机制的反思和探索,希望能够抛砖引玉,进一步促进Transformer中各个部分效用的研究。