Google新作synthesizer:Rethinking Self-Attention in Transformer Models

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模型中自注意机制的真正作用和效用的进一步调查和讨论。

本文的贡献如下:

  1. 提出 Synthetic Attention, 这是一种新的学习注意力权重的方式。该方法没有使用点积注意力或基于内容的注意力)。生成独立于token-token交互的对齐矩阵,并探索了一组用于生成注意力矩阵的参数化函数。
  2. 提出 SYNTHESIZER 模型,该模型利用了Synthetic Attention。该模型在多个自然语言任务(包括机器翻译和语言建模)上可以与最先进的Transformer模型相比肩。
  3. 证明(1)随机可学习的对齐矩阵的性能具有竞争性;(2)用各种Transformer模型进行屠榜时,token-token的依赖关系并非必要。

2. 模型

SYNTHESIZER 本质上仍是一个 Transformer,只是其中自注意力模块被 Synthetic Attention 模块替换。在生成注意力对齐矩阵( R ℓ × ℓ \mathbb{R}^{\ell \times \ell} R×)的时候,本文提出两种SYNTHESIZER模型:Dense Synthesizer 和 Random Synthesizer。Figure 1 展示了 Transformer、Dense Synthesizer 和 Random Synthesizer 的关键思想。
在这里插入图片描述

2.1 Dense Synthesizer

这种 SYNTHESIZER 模型最为直观,与输入的每个token相关联。假设Dense Synthesizer模型的输入 X ∈ R ℓ × d X \in \mathbb{R}^{\ell \times d} XR×d,输出是 Y ∈ R ℓ × d Y \in \mathbb{R}^{\ell \times d} YR×d。其中 ℓ \ell 表示文本序列的长度, d d d表示模型的维度(每个token的维度)。整个模型分为2个步骤:

  1. 计算每个token的注意力权重
    使用参数化的函数 F ( X i ) F(X_{i}) F(Xi)将文本序列中的每个token X i X_{i} Xi d d d维映射为 ℓ \ell 维。
    B i = F ( X i ) B_{i}=F\left(X_{i}\right) Bi=F(Xi)
    更具体地
    F ( X ) = W ( σ R ( W ( X ) + b ) ) + b F(X)=W\left(\sigma_{R}(W(X)+b)\right)+b F(X)=W(σR(W(X)+b))+b
    这可以理解为两层Dense层。由此计算结果表示每个token对序列中其他token的注意力值,所以输出结果维度是 ℓ \ell
  2. 结合注意力得分计算模型输出结果
    Y = Softmax ⁡ ( B ) G ( X ) Y=\operatorname{Softmax}(B) G(X) Y=Softmax(B)G(X)
    其中 B ∈ R ℓ × ℓ B \in \mathbb{R}^{\ell \times \ell} BR× G ( X ) G(X) G(X)是另一个参数化的函数,类比为标准 Transformer 的 V V V即value。

简而言之,Dense Synthesizer是用 F ( X ) F(X) F(X)提换掉标准 Transformer 中的 Q K ⊤ Q K^{\top} QK,从而消除点积注意力。
所以该模型考虑的是如何从values转为output过程变革。传统的方式用 Q K ⊤ Q K^{\top} QK的点积注意力结果经过softmax后再和values相乘。而本文的方法:假设每个token的value维度是d,经过转换后的输出结果是 ℓ \ell 维,表示该token对文本中每个token的注意力权重分布。那么长度为 ℓ \ell 的序列,经过转换后得到的是 ℓ × ℓ \ell \times \ell ×的矩阵。那么从 ℓ × d \ell \times d ×d矩阵转为 ℓ × ℓ \ell \times \ell ×的矩阵,期间需要引入的是一个 d × ℓ d \times \ell d×的矩阵。这个 d × ℓ d \times \ell d×的矩阵,即为Dense Synthesizer需要学习的参数。

2.2 Random Synthesizer:

Dense Synthesizer学习的synthetic attention是将给定的每个token映射到 ℓ \ell 维,因此Dense Synthesizer模型的映射结果每个token之间是独立的(每个 B i B_i Bi只与 X i X_i Xi有关,而与其他token无关)。这与标准的 Transformer 模型中的token-token交互截然不同。
本文提出的另一种SYNTHESIZER模型是Random Synthesizer,该模型注意力权重的初始化不受任何输入token 的影响,而是完全随机初始化。这些随机初始化的值可以被训练也可以保持固定。具体定义如下:
Y = Softmax ⁡ ( R ) G ( X ) Y=\operatorname{Softmax}(R) G(X) Y=Softmax(R)G(X)
其中 R ∈ R ℓ × ℓ R \in \mathbb{R}^{\ell \times \ell} RR×是随机初始化的矩阵。该方法不依赖token对之间的交互或者任何单个token的信息,而是学习一个能跨实例有效的特定任务对齐。换句话说,学习一个跨实例有效的模型意味着在初始化时不直接依靠任何 token 信息。

2.3 模型分解

Dense Synthesizer和Random Synthesizer中引入的网络参数量分别是 d × ℓ {d \times \ell} d× ℓ × ℓ {\ell \times \ell} ×。当文本序列很长时,参数量将暴增,为此本文引入模型分解的方法,一方面可以降低参数量,另一方面也可以缓解过拟合。

Factorized Dense Synthesizer:
通过生成2个低维矩阵 B 1 、 B 2 B_1、B_2 B1B2(原文用的是 A 、 B A、B AB,为了不与上文的 B B B混淆,这里稍微改动), B 1 ∈ R ℓ × a B_1 \in \mathbb{R}^{\ell \times a} B1R×a B 2 ∈ R ℓ × b B_2 \in \mathbb{R}^{\ell \times b} B2R×b a × b = ℓ a \times b=\ell a×b=
B 1 , B 2 = F B 1 ( X i ) , F B 2 ( X i ) B_1, B_2=F_{B_1}\left(X_{i}\right), F_{B_2}\left(X_{i}\right) B1,B2=FB1(Xi),FB2(Xi)
最终的输出:
Y = Softmax ⁡ ( C ) G ( X ) Y=\operatorname{Softmax}(C) G(X) Y=Softmax(C)G(X)
其中 C = H B 1 ( B 1 ) ∗ H B 2 ( B 2 ) C=H_{B_1}(B_1) * H_{B_2}(B_2) C=HB1(B1)HB2(B2) H B 1 ( B 1 ) H_{B_1}(B_1) HB1(B1)表示 B 1 B_1 B1重复b次, R a → R a b \mathbb{R}^{a} \rightarrow \mathbb{R}^{a b} RaRab H B 2 ( B 2 ) H_{B_2}(B_2) HB2(B2)表示 B 2 B_2 B2重复a次, R b → R b a \mathbb{R}^{b} \rightarrow \mathbb{R}^{ba} RbRba,所以最终都是 R ℓ × ℓ \mathbb{R}^{\ell \times \ell} R×。最后将两者逐位相乘(哈达玛积)得到 C C C

Factorized Random Synthesizer
未分解前参数是 ℓ × ℓ \ell \times \ell ×,类似地,随机矩阵也可被分解为两个低秩矩阵: R 1 , R 2 ∈ R ℓ × k R_{1}, R_{2} \in \mathbb{R}^{\ell \times k} R1,R2R×k
Y = Softmax ⁡ ( R 1 R 2 ⊤ ) G ( X ) Y=\operatorname{Softmax}\left(R_{1} R_{2}^{\top}\right) G(X) Y=Softmax(R1R2)G(X)
实验过程,选择的k=8。

混合Synthesizers:
上述提出各种synthetic attention变种都可以通过加和形式混合到一起:
Y = Softmax ⁡ ( α 1 S 1 ( X ) + ⋯ α N S N ( X ) ) G ( X ) Y=\operatorname{Softmax}\left(\alpha_{1} S_{1}(X)+\cdots \alpha_{N} S_{N}(X)\right) G(X) Y=Softmax(α1S1(X)+αNSN(X))G(X)
其中 S ( . ) S(.) S(.)表示一个 synthesizer 函数, α \alpha α是可学习的权重参数, ∑ α = 1 \sum \alpha=1 α=1
比如混合的Random Factorized + Dense Synthesizers 可以用下式表示:
Y = Softmax ⁡ ( R 1 R 2 ⊤ + F ( X ) ) G ( X ) Y=\operatorname{Softmax}\left(R_{1} R_{2}^{\top}+F(X)\right) G(X) Y=Softmax(R1R2+F(X))G(X)

本文提出的各种合成函数如 Table 1所示。值得注意的是,常规的点积注意力也可以被纳入SYNTHESIZER的合成器框架,换句话说,SYNTHESIZER是 Transformer 模型的一般化形式。当合成函数为 S ( X ) = F Q ( X ) F K ( X ) ⊤ S(X)=F_{Q}(X) F_{K}(X)^{\top} S(X)=FQ(X)FK(X),即为标准的Transformer模型。
在这里插入图片描述
Condition On这一列表示合成的输出是否与 X i X_i Xi或者 X i X_i Xi- X j X_j Xj对相关,即输出和输入之间的关系。Sample这一列表示是否用到局部或全局信息,输入部分没有涉及具体的 X i X_i Xi即表示全局信息。Random Synthesizers在所有样本中共享相同的全局对齐模式,所以是全局的;而Dense Synthesizers 与局部的 X i X_i Xi直接相关,所以是局部的,这使得对齐模式依赖于每个单独的样本。此外,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中各个部分效用的研究。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值