Transformer-XL: Attentive Language Models beyond a Fixed-Length Context
TL;DR 精炼摘要
本文提出一种新型的神经网络架构——Transformer-XL,旨在克服固定长度上下文对语言建模的限制。该架构通过段级循环机制和新颖的位置信息编码方案,有效学习超越固定长度的长期依赖,解决上下文碎片化问题,性能显著优于传统模型,并在多个数据集上达到最新水平,速度提升达到1800倍以上。
摘要
Transformers have a potential of learning longer-term dependency, but are limited by a fixed-length context in the setting of language modeling. We propose a novel neural architecture Transformer-XL that enables learning dependency beyond a fixed length without disrupting temporal coherence. It consists of a segment-level recurrence mechanism and a novel positional encoding scheme. Our method not only enables capturing longer-term dependency, but also resolves the context fragmentation problem. As a result, Transformer-XL learns dependency that is 80% longer than RNNs and 450% longer than vanilla Transformers, achieves better performance on both short and long sequences, and is up to 1,800+ times faster than vanilla Transformers during evaluation. Notably, we improve the state-of-the-art results of bpc/perplexity to 0.99 on enwiki8, 1.08 on text8, 18.3 on WikiText-103, 21.8 on One Billion Word, and 54.5 on Penn Treebank (without finetuning). When trained only on WikiText-103, Transformer-XL manages to generate reasonably coherent, novel text articles with thousands of tokens. Our code, pretrained models, and hyperparameters are available in both Tensorflow and PyTorch.
思维导图
论文精读
中文精读
1. 论文基本信息
1.1. 标题
Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context
1.2. 作者
Zihang Dai, Zhilin Yang, Yiming Yang, Jaime Carbonell, Quoc V. Le, Ruslan Salakhutdinov。作者主要来自卡内基梅隆大学 (Carnegie Mellon University) 和谷歌大脑 (Google Brain)。
1.3. 发表期刊/会议
ACL Anthology, P19-1285。ACL (Association for Computational Linguistics) 是计算语言学领域的顶级会议,其论文通常代表了该领域的最新和最高水平研究。
1.4. 发表年份
2019年 (UTC):2019-06-30T16:00:00.000Z
1.5. 摘要
Transformer 模型在学习长距离依赖 (longer-term dependency) 方面具有潜力,但在语言建模 (language modeling) 的设置中受到固定长度上下文 (fixed-length context) 的限制。本文提出了一种名为 Transformer-XL 的新型神经网络架构,它能够在不破坏时间连贯性 (temporal coherence) 的情况下,学习超越固定长度的依赖关系。该架构包含一个 段级循环机制 (segment-level recurrence mechanism) 和一种新颖的 位置编码方案 (positional encoding scheme)。本文方法不仅能够捕获更长期的依赖,还解决了上下文碎片化问题 (context fragmentation problem)。结果显示,Transformer-XL 学习到的依赖关系比 循环神经网络 (RNNs) 长80%,比 普通 Transformer (vanilla Transformers) 长450%,在短序列和长序列上都取得了更好的性能,并且在评估期间比普通 Transformer 快1800多倍。值得注意的是,本文将 每字符比特数 (bpc) / 困惑度 (perplexity) 的最先进 (state-of-the-art) 结果提升到:enwiki8 上为0.99,text8 上为1.08,WikiText-103 上为18.3,One Billion Word 上为21.8,以及 Penn Treebank 上为54.5(未经微调)。仅在 WikiText-103 上训练时,Transformer-XL 能够生成数千个词元 (token) 的相当连贯、新颖的文本文章。代码、预训练模型和超参数 (hyperparameters) 在 Tensorflow 和 PyTorch 中均可用。
1.6. 原文链接
官方来源: https://aclanthology.org/P19-1285/ PDF 链接: https://aclanthology.org/P19-1285.pdf 发布状态:已正式发表。
2. 整体概括
2.1. 研究背景与动机
2.1.1. 语言模型中的长距离依赖挑战
语言建模 (language modeling) 是一个需要建模长距离依赖 (long-term dependency) 的重要问题,例如在无监督预训练 (unsupervised pretraining) 等应用中。然而,让神经网络具备建模序列数据中长距离依赖的能力一直是一个挑战。传统的 循环神经网络 (RNNs),尤其是 长短期记忆网络 (LSTM) (Hochreiter and Schmidhuber, 1997),是语言建模的标准解决方案,并在多个基准测试上取得了良好结果。尽管 RNNs 被广泛采用,但由于 梯度消失和爆炸 (gradient vanishing and explosion) (Hochreiter et al., 2001) 问题,它们很难优化。LSTMs 中引入的门控机制 (gating mechanism) 和 梯度裁剪 (gradient clipping) (Graves, 2013) 技术可能不足以完全解决这个问题。经验研究发现,LSTM 语言模型平均使用约200个上下文词 (Khandelwal et al., 2018),这表明仍有改进空间。
2.1.2. Transformer 的固定长度上下文限制
另一方面,自注意力机制 (attention mechanisms) 中长距离词对之间的直接连接可能简化优化,并使学习长距离依赖成为可能 (Bahdanau et al., 2014; Vaswani et al., 2017)。近年来,Al-Rfou et al. (2018) 设计了一套辅助损失 (auxiliary losses) 来训练深度 Transformer 网络进行字符级语言建模 (character-level language modeling),并大幅超越了 LSTMs。
尽管取得了成功,但 Al-Rfou et al. (2018) 中的语言模型训练是在分离的、固定长度的短文本段 (fixed-length segments)(几百个字符)上进行的,没有信息流 (information flow) 跨越文本段。这种固定上下文长度 (fixed context length) 的后果是,模型无法捕获任何超出预定义上下文长度的更长距离依赖。
2.1.3. 上下文碎片化问题
此外,固定长度的文本段是通过选择连续的符号块来创建的,而不考虑句子或其他语义边界。这导致模型在预测每个文本段开头几个符号时缺乏必要的上下文信息,从而导致效率低下的优化和较差的性能。本文将此问题称为 上下文碎片化问题 (context fragmentation problem)。
2.1.4. Transformer-XL 的切入点
为了解决固定长度上下文的上述限制,本文提出了一个新的架构,名为 Transformer-XL (意为超长,eXtra Long)。其核心思想是将循环 (recurrence) 的概念引入到深度 自注意力网络 (self-attention network) 中。具体来说,不是为每个新文本段从头计算隐藏状态 (hidden states),而是重用 (reuse) 在前一个文本段中获得的隐藏状态。这些重用的隐藏状态作为当前文本段的记忆 (memory),从而在文本段之间建立了循环连接。
2.2. 核心贡献/主要发现
- 引入
段级循环机制 (segment-level recurrence mechanism): 在纯自注意力模型 (self-attentive model)中引入循环概念。通过重用前一个文本段计算出的隐藏状态作为当前文本段的扩展上下文,从而使模型能够捕获远超固定长度的依赖关系,并解决了上下文碎片化问题。 - 提出新颖的
相对位置编码方案 (relative positional encoding scheme): 针对状态复用 (state reuse)机制,设计了一种新的相对位置编码方法。它不仅与传统的绝对位置编码 (absolute positional encoding) 有一对一的对应关系,而且在经验上具有更好的泛化能力,尤其是在训练时未见过的更长注意力长度 (attention lengths) 下。 - 显著提升长距离依赖建模能力:
Transformer-XL学习到的依赖关系比RNNs长80%,比普通 Transformer长450%。 - 显著提高评估速度: 由于
状态复用,Transformer-XL在评估期间比普通Transformer快高达1800多倍。 - 刷新多项基准测试的最先进结果: 在
WikiText-103、enwik8、text8、One Billion Word和Penn Treebank这五个标准语言建模数据集上取得了新的最先进 (state-of-the-art) 性能。 - 生成连贯长文本: 仅使用
WikiText-103训练,Transformer-XL能够生成数千个词元、相当连贯且新颖的文本文章。 - 提供开源实现: 代码、预训练模型和超参数在
Tensorflow和PyTorch中均可用,促进了研究的复现和进一步发展。
3. 预备知识与相关工作
3.1. 基础概念
3.1.1. 语言建模 (Language Modeling)
语言建模 任务是估计给定词序列的概率 ,其中 是一个词元序列。通常,这个联合概率会通过自回归 (auto-regressively) 的方式分解为每个词元在其前序词元条件下的条件概率的乘积:
其中 表示词元 之前的所有词元。语言模型的任务就是估计每个条件概率 ,这通常通过训练一个神经网络来将上下文 编码成一个固定大小的隐藏状态 (fixed size hidden state),然后通过 Softmax 函数输出下一个词元的概率分布。
3.1.2. 循环神经网络 (Recurrent Neural Networks, RNNs) 和长短期记忆网络 (Long Short-Term Memory, LSTMs)
RNNs 是一类专门用于处理序列数据的神经网络。它们通过在序列中的每个时间步共享参数,并维护一个内部隐藏状态来捕获序列信息。传统的 RNNs 存在 梯度消失和爆炸 (vanishing/exploding gradient) 问题,这使得它们难以学习长距离依赖。
LSTM (Hochreiter and Schmidhuber, 1997) 是 RNN 的一种特殊变体,通过引入门控机制 (gating mechanisms)(输入门、遗忘门、输出门)和细胞状态 (cell state) 来有效缓解 梯度消失 问题,从而更好地捕获长距离依赖。然而,LSTMs 仍然受限于其顺序计算的特性,并且在实践中发现其有效上下文长度 (effective context length) 有限 (Khandelwal et al., 2018)。
截断反向传播时间 (Truncated Backpropagation Through Time, Truncated BPTT) (Mikolov et al., 2010) 是一种训练 RNNs 的技术,它将很长的序列分成较短的子序列(或“文本段”),并在每个子序列上进行反向传播,同时将前一个子序列的最终隐藏状态传递给下一个子序列作为初始状态,以近似地捕获长距离依赖。
3.1.3. Transformer 模型 (Vaswani et al., 2017)
Transformer 模型是一种完全基于 自注意力机制 (self-attention mechanism) 的架构,摒弃了传统的 循环 (recurrent) 和 卷积 (convolutional) 结构。它通过并行计算 (parallel computation) 和直接捕获任意距离依赖的能力,在序列建模任务中取得了巨大成功。
Transformer 的核心是 多头自注意力 (Multi-Head Self-Attention) 机制。在 自注意力 层中,每个词元会生成三个向量:查询 (Query, Q)、键 (Key, K) 和 值 (Value, V)。注意力分数 (attention score) 通过 和 的点积计算,然后经过 Softmax 归一化,再乘以 得到加权值。
自注意力 的计算公式如下:
其中 是查询矩阵, 是键矩阵, 是值矩阵, 是序列长度, 是键和查询的维度。 用于缩放点积,防止梯度过大。
3.1.4. 位置编码 (Positional Encodings)
由于 Transformer 模型缺乏 循环 或 卷积 结构来捕获序列中词元的顺序信息,因此引入了 位置编码 (positional encodings)。原始 Transformer 使用正弦和余弦函数来生成 绝对位置编码 (absolute positional encodings),并将其加到词嵌入 (word embeddings) 上,以提供词元在序列中的绝对位置信息。公式为:
其中 pos 是词元在序列中的绝对位置, 是编码维度, 是词嵌入维度。
3.2. 前人工作
Transformer语言模型 (Al-Rfou et al., 2018): 这是本文直接改进的基线之一。该工作设计了辅助损失来训练用于字符级语言建模的深层Transformer网络,并取得了优于LSTMs的结果。然而,其主要限制在于将语料库分割成固定长度的文本段进行训练,文本段之间没有信息流,导致无法捕获长距离依赖和产生上下文碎片化问题。自注意力与相对位置表示(Shaw et al., 2018): 首次在机器翻译的Transformer模型中探索了相对位置编码的概念。他们通过修改注意力分数的计算方式,使模型能够编码词元之间的相对距离,而不是其绝对位置。用于音乐生成的改进相对自注意力机制(Huang et al., 2018): 也在音乐生成领域探索了相对位置编码的变体。神经语言模型(Bengio et al., 2003; Mikolov et al., 2010; Merity et al., 2016): 这些工作是语言建模领域的基础,探索了不同的架构来更好地编码上下文,例如前馈神经网络 (Feed-Forward Neural Networks)和RNNs。捕捉长距离上下文: 一系列工作直接将更广阔上下文的表示作为额外输入送入网络 (Mikolov and Zweig, 2012; Ji et al., 2015; Wang and Cho, 2015),或依赖于从数据中学习到的文档级主题 (Dieng et al., 2016; Wang et al., 2017)。缓解梯度消失问题: 针对LSTM,有许多工作致力于缓解梯度消失,包括更好的初始化 (Le et al., 2015)、额外的损失信号 (Trinh et al., 2018)、增强记忆结构 (Ke et al., 2018) 以及修改RNN内部架构以简化优化 (Wu et al., 2016; Li et al., 2018)。
3.3. 技术演进
语言建模技术的发展经历了从基于统计的方法(如 N-gram 模型)到 循环神经网络 (RNNs) 的转变,其中 LSTMs 克服了 RNN 在长距离依赖上的部分挑战。随着 注意力机制 (attention mechanisms) 的兴起,Transformer 模型因其并行计算能力和直接建模长距离依赖的潜力而成为主流。
然而,原始 Transformer 在语言建模中通常以固定长度的文本段进行训练,这引入了 上下文碎片化问题 并限制了其捕获超长距离依赖的能力。Transformer-XL 正是在这个背景下提出的,它通过引入 段级循环 和改进的 相对位置编码 来弥补 Transformer 在长序列建模方面的不足,使其能够更有效地利用 自注意力机制 的优势。
3.4. 差异化分析
-
与
普通 Transformer(Al-Rfou et al., 2018) 的区别:- 上下文长度: 普通
Transformer受限于固定长度上下文,无法捕获超出文本段长度的依赖。Transformer-XL通过段级循环机制实现了超越固定长度上下文的依赖建模。 - 上下文碎片化: 普通
Transformer简单地将序列切片,导致文本段开头缺乏上下文。Transformer-XL通过状态复用解决了这一问题,为每个文本段的计算提供了前一个文本段的完整上下文。 - 评估速度: 普通
Transformer在评估时需要为每个新的预测重新计算整个滑动窗口,效率低下。Transformer-XL的状态复用显著提升了评估速度。 - 辅助损失:
Transformer-XL无需 Al-Rfou et al. (2018) 所使用的辅助损失,所有性能提升均归因于其架构改进。
- 上下文长度: 普通
-
与
RNNs/LSTMs的区别:- 长距离依赖建模:
Transformer-XL能够学习比RNNs和LSTMs更长的依赖关系,这得益于自注意力机制直接连接远距离词元的能力,以及段级循环机制。RNNs即使有门控机制,仍受梯度消失影响。 - 优化:
自注意力机制相较于RNNs更不易受梯度消失问题的影响。 - 并行性:
Transformer-XL保留了Transformer的并行计算优势,而RNNs的顺序计算本质上限制了并行性。
- 长距离依赖建模:
-
与
Shaw et al. (2018)中相对位置编码的区别:- 偏置项:
Shaw et al. (2018)的公式中只包含内容相关的寻址和内容依赖的位置偏置项,而Transformer-XL引入了两个额外的全局偏置项:全局内容偏置 (global content bias)() 和全局位置偏置 (global positional bias)()。 - 可学习参数与归纳偏置:
Shaw et al. (2018)将 合并为一个可学习矩阵,放弃了原始Transformer中正弦位置编码所建立的归纳偏置 (inductive bias)。Transformer-XL的相对位置编码 R沿用了正弦公式,从而受益于这种归纳偏置,使得模型在训练时给定长度的记忆上训练后,在评估时能泛化到几倍长的记忆。
- 偏置项:
4. 方法论
本节将详细阐述 Transformer-XL 的核心技术方案,包括其 段级循环机制 (segment-level recurrence mechanism) 和新颖的 相对位置编码方案 (relative positional encoding scheme)。
4.1. 方法原理
Transformer-XL 的核心思想是为了解决传统 Transformer 在语言建模中面临的两个主要问题:固定长度上下文 (fixed-length context) 的限制和 上下文碎片化问题 (context fragmentation problem)。
其直觉在于:
-
扩展上下文: 当模型处理当前文本段时,不应仅仅依赖于当前文本段内部的信息,而应该能够“回忆”起之前文本段中已经处理过的信息。这通过
段级循环实现,即重用前一个文本段的隐藏状态。 -
保持时间连贯性: 当重用隐藏状态时,必须确保模型能够正确理解这些重用状态的时间信息。如果简单地为每个文本段都使用相同的绝对位置编码,模型将无法区分来自不同文本段但在段内位置相同的词元。因此,需要一种
相对位置编码来提供词元之间的相对距离信息,而非绝对位置。这两项技术是相互补充的:
段级循环提供了扩展上下文的能力,而相对位置编码则确保了扩展上下文的时间连贯性和正确性。
4.2. 核心方法详解
4.2.1. 普通 Transformer 语言模型 (Vanilla Transformer Language Models) 的局限性
为了在语言建模中应用 Transformer 或 自注意力 (self-attention),核心问题是如何有效地将任意长的上下文编码成固定大小的表示。理论上,如果内存和计算资源无限,一个简单的解决方案是使用一个无条件的 Transformer 解码器来处理整个上下文序列,类似于一个 前馈神经网络 (feed-forward neural network)。然而,在实际中,由于资源限制,这通常是不可行的。
一种可行但粗糙的近似方法是将整个语料库分割成可管理大小的较短文本段 (segments),然后只在每个文本段内训练模型,忽略来自前一个文本段的所有上下文信息。这正是 Al-Rfou et al. (2018) 所采用的思想,本文称之为 普通模型 (vanilla model)。
下图(原文 Figure 1)展示了 普通模型,其中 文本段长度 (segment length) 为4。
该图像是一个示意图,展示了Transformer-XL模型在训练阶段和评估阶段的工作机制。在训练阶段(图(a)),模型通过多个段落进行学习,而在评估阶段(图(b)),则展现了固定长度上下文的限制。图中箭头和颜色标志显示了信息流动的路径和上下文的限制。
Figure 1: Illustration of the vanilla model with a segment length 4.
在这种训练范式下,信息在 前向传播 (forward pass) 和 反向传播 (backward pass) 过程中都无法跨越文本段流动。这导致了两个关键限制:
- 最大依赖长度受限: 最长的可能依赖长度被文本段长度所限制。例如,在字符级语言建模中,这可能只有几百个字符 (Al-Rfou etou. (2018))。尽管
自注意力机制相比RNNs更少受梯度消失问题的影响,但普通模型无法充分利用这一优化优势。 - 上下文碎片化问题: 尽管可以使用填充 (padding) 来尊重句子或其他语义边界,但在实践中,为了提高效率,通常会简单地将长文本切分成固定长度的文本段 (Peters et al., 2018; Devlin et al., 2018; Al-Rfou et al., 2018)。然而,这种简单的切分会导致
上下文碎片化问题。这意味着模型在预测每个文本段开头的几个符号时,缺乏必要的上下文信息,导致优化效率低下和性能下降。
4.2.2. 带 状态复用 (State Reuse) 的 段级循环 (Segment-Level Recurrence)
为了解决 固定长度上下文 的局限性,本文提出了将 循环机制 (recurrence mechanism) 引入 Transformer 架构。在训练过程中,为前一个文本段计算出的隐藏状态序列会被固定并缓存起来,以便在模型处理下一个新文本段时作为扩展上下文 (extended context) 重用。
下图(原文 Figure 2a)展示了 段级循环 的概念,其中 文本段长度 为4。
该图像是Transformer-XL模型的示意图,展示了训练阶段和评估阶段的区别。在训练阶段,模型的上下文是固定的,而新段落的连接则没有梯度更新;在评估阶段,模型可以扩展上下文以进行更长依赖的学习。图中的箭头指示了信息流动的方向。
Figure 2: Illustration of the Transformer-XL model with a segment length 4.
虽然 梯度 (gradient) 仍然限制在一个文本段内,但这个额外的输入允许网络利用历史信息,从而能够建模更长距离的依赖,并避免 上下文碎片化。
形式上,设两个连续的长度为 的文本段分别为 和 。
用 表示为第 个文本段 生成的第 层的隐藏状态序列,其中 是隐藏维度。
那么,为文本段 生成的第 层隐藏状态(示意性地)如下:
首先,构建一个扩展的隐藏状态序列 ,它由前一个文本段的第 n-1 层隐藏状态 (经过 停止梯度 (stop-gradient) 操作)和当前文本段的第 n-1 层隐藏状态 沿长度维度拼接而成:
其中,
-
代表
停止梯度 (stop-gradient)操作,这意味着在反向传播时,来自 的梯度不会向前传播到更早的文本段,这与截断反向传播时间 (Truncated BPTT)类似。 -
表示两个隐藏序列沿长度维度进行拼接 (concatenation)。
-
是前一个文本段 在第
n-1层计算出的隐藏状态。 -
是当前文本段 在第
n-1层计算出的隐藏状态。接着,基于这个扩展的隐藏状态序列 ,计算查询 、键 和值 : 其中,
-
, , 是模型的可学习参数矩阵。
-
关键区别在于,
键 (Key)和值 (Value)是基于扩展上下文 而不是仅仅当前文本段的隐藏状态 计算的。这意味着它们能够利用前一个文本段缓存 (cached)的信息。 -
查询 (Query)仍然仅基于当前文本段的隐藏状态 计算,因为它代表了当前文本段中每个位置要查询的信息。最后,使用这些 、、 向量通过
Transformer层 (Transformer Layer)计算出第 层的隐藏状态 : 通过将这个循环机制应用于语料库中每两个连续的文本段,它实际上在隐藏状态中创建了一个段级循环。结果是,有效利用的上下文可以远远超出两个文本段。值得注意的是, 和 之间的循环依赖 (recurrent dependency)在每个文本段中向下偏移一层,这与传统RNN-LMs中同层循环不同。因此,最大的可能依赖长度与层数 以及文本段长度 成线性关系,即 ,如原文 Figure 2b 中的阴影区域所示。这类似于截断反向传播时间 (Truncated BPTT)(Mikolov et al., 2010),但本文的方法缓存的是隐藏状态序列,而不是仅最后一个隐藏状态,并且必须与相对位置编码技术结合使用。
除了实现超长上下文和解决 上下文碎片化,循环机制 还带来了显著的评估速度提升。在评估期间,可以重复利用前一个文本段的表示,而无需像 普通模型 那样从头计算。在 enwik8 数据集上的实验表明,Transformer-XL 在评估期间比 普通模型 快高达 倍。
循环机制 理论上不限于只重用前一个文本段。可以缓存尽可能多的先前文本段(受 GPU 内存限制),并将它们全部作为当前文本段的额外上下文。因此,可以缓存预定义长度 的旧隐藏状态,并将它们称为 记忆 (memory) ,这与 记忆增强神经网络 (memory augmented neural networks) (Graves et al., 2014; Weston et al., 2014) 有明显联系。在本文的实验中,训练时 等于文本段长度,而在评估时将其增加数倍。
4.2.3. 相对位置编码 (Relative Positional Encodings)
在 状态复用 机制中,一个关键的技术挑战是如何保持位置信息的一致性。在标准 Transformer 中,序列顺序信息由一组 位置编码 (positional encodings) 提供,其中第 行 对应于文本段内的第 个绝对位置, 规定了可建模的最大长度。实际输入是词嵌入和位置编码的元素级相加。
如果简单地将这种 位置编码 适应到 循环机制 中,隐藏状态序列将示意性地计算为:
其中,
-
是文本段 的词嵌入序列。
-
代表一个转换函数。
-
是从绝对位置编码矩阵 中取出的,代表段内位置1到L的编码。
问题在于, 和 都关联着相同的
位置编码。结果是,模型无法区分 和 之间的位置差异(对于任何 ),这将导致严重的性能损失。
为了避免这种失败模式,核心思想是只在隐藏状态中编码 相对位置信息 (relative positional information)。位置编码旨在提供模型关于信息如何收集(即关注何处)的时间线索或“偏置”。为了达到同样的目的,与其将偏置静态地整合到初始嵌入中,不如将相同的信息注入到每一层的 注意力分数 (attention score) 中。更重要的是,以 相对方式 (relative manner) 定义时间偏置更直观且更具泛化性。
例如,当 查询向量 (query vector) 注意 键向量 (key vectors) 时,它不需要知道每个 键向量 的绝对位置来识别文本段的时间顺序。相反,它只需知道每个 键向量 与其自身 之间的相对距离,即 i-j。
实际上,可以创建一组 相对位置编码 (relative positional encodings) ,其中第 行 表示两个位置之间的相对距离 。通过将相对距离动态地注入 注意力分数,查询向量 可以通过不同的距离轻松区分 和 的表示,从而使 状态复用机制 可行。同时,不会丢失任何时间信息,因为绝对位置可以从相对距离递归地恢复。
本文提出了一种新的 相对位置编码 形式,它不仅与 绝对位置编码 有一对一的对应关系,而且在经验上具有更好的泛化能力。
首先,在标准 Transformer (Vaswani et al., 2017) 中,同一文本段内 查询 (query) 和 键 (key) 之间的 注意力分数 (attention score) 可以分解为四个项:
其中,
-
和 分别是词元 和 的词嵌入。
-
和 分别是位置 和 的绝对位置编码。
-
和 是查询和键的权重矩阵。
根据只依赖
相对位置信息的思想,本文提出对这四项进行重新参数化,得到新的相对注意力分数 (relative attention score): 具体的改变如下: -
替换绝对位置嵌入: 将项
(b)和(d)中计算键向量 (key vectors)的绝对位置嵌入 (absolute positional embedding)替换为其相对位置编码 (relative counterpart)。这反映了一个先验知识,即对于关注何处,只有相对距离是重要的。值得注意的是, 是一个正弦编码矩阵 (sinusoid encoding matrix) (Vaswani et al., 2017),不包含可学习参数。 -
引入可训练偏置参数:
- 在项
(c)中,用一个可训练参数 替换了查询 (query)。这意味着无论查询位置如何,对不同词的注意力偏置都应保持不变。 - 同理,在项
(d)中,添加了一个可训练参数 来替代 。
- 在项
-
分离权重矩阵: 刻意将用于生成基于内容的
键向量 (content-based key vectors)的权重矩阵 和用于生成基于位置的键向量 (location-based key vectors)的权重矩阵 分开。在新参数化下,每个项都具有直观的含义:
-
项
(a):代表基于内容的寻址 (content-based addressing)。 -
项
(b):捕获内容依赖的位置偏置 (content-dependent positional bias)。 -
项
(c):控制全局内容偏置 (global content bias)。 -
项
(d):编码全局位置偏置 (global positional bias)。与
Shaw et al. (2018)的公式相比,其只包含项(a)和(b),缺少了两个偏置项(c)和(d)。此外,Shaw et al. (2018)将乘法 合并为一个单一的可训练矩阵 ,从而放弃了原始正弦位置编码(Vaswani et al., 2017) 中内置的归纳偏置。相反,本文的相对位置嵌入沿用了正弦公式。由于这种归纳偏置的优势,在一个特定长度的记忆上训练的模型,在评估时可以自动泛化到几倍长的记忆。
结合 循环机制 和本文提出的 相对位置嵌入,就得到了 Transformer-XL 架构。为了完整性,这里总结了具有单个注意力头 (single attention head) 的 层 Transformer-XL 的计算过程。对于 :
-
构建扩展隐藏状态序列: 其中,
- 是前一个文本段的记忆(即缓存的隐藏状态序列),通常是前一个文本段的 。
- 是当前文本段的第
n-1层隐藏状态(对于第0层,即词嵌入 )。 - 是停止梯度操作。
- 表示沿序列长度维度拼接。
-
计算查询、键和值: 其中,
- , , 是第 层的可学习权重矩阵。
- 注意,这里的 是
内容键 (content key),与相对位置键 (relative positional key)不同,它们会在注意力分数计算中结合。
-
计算注意力分数(这是本文的核心修改): 其中,
- 是当前文本段中位置 的查询向量。
- 是扩展上下文中位置 的内容键向量。
- 是位置 和 之间的相对位置编码。
- 和 是可学习的全局偏置向量。
- 是第 层用于生成相对位置键的权重矩阵。
-
计算注意力权重并加权值: 其中,
Masked-Softmax是带掩码的Softmax操作,用于确保每个位置只能关注其自身和之前的词元,这是语言模型中的标准做法。- 是值矩阵。
-
残差连接和层归一化 (Residual Connection and Layer Normalization): 这里是标准的
Transformer结构,将注意力层的输出通过线性投影后与前一层的输入进行残差连接 (residual connection),然后进行层归一化 (Layer Normalization)。 -
位置前馈网络 (Position-wise Feed-Forward Network): 最终通过一个
位置前馈网络得到当前层的最终输出 。
初始输入 定义为词嵌入序列 。
值得一提的是,直接计算 需要为所有 (i, j) 对计算 ,其成本与序列长度的平方成正比。然而,考虑到 i-j 的值只在零到序列长度之间,本文在附录 B 中展示了一种简单的计算过程,将成本降低到与序列长度线性相关。
5. 实验设置
5.1. 数据集
本文在多种数据集上评估 Transformer-XL 的性能,这些数据集涵盖了词级和字符级语言建模任务,并具有不同的特性和规模。
- WikiText-103 (Merity et al., 2016):
- 特点: 现有的最大词级语言建模基准,具有长距离依赖。包含来自28K篇文章的1.03亿个训练词元,平均每篇文章长达3.6K词元。非常适合测试模型对长距离依赖的建模能力。
- 用途: 主要用于词级语言建模,验证
Transformer-XL捕获长距离依赖的有效性。
- enwik8 (LLC, 2009):
- 特点: 包含1亿字节未经处理的维基百科文本。是一个字符级语言建模基准。
- 用途: 主要用于字符级语言建模,与先前的
Transformer和RNN模型进行比较。
- text8 (LLC, 2009):
- 特点: 类似于
enwik8但经过处理,包含1亿个小写维基百科字符,移除了除26个字母和空格之外的所有字符。也是一个字符级语言建模基准。 - 用途: 用于字符级语言建模,验证
Transformer-XL在处理这种预处理文本上的性能。
- 特点: 类似于
- One Billion Word (Chelba et al., 2013):
- 特点: 一个大型词级语言建模基准,但句子已被打乱,因此不保留任何长距离依赖。
- 用途: 用于测试模型建模短距离依赖的能力,并作为消融实验的一部分,以隔离
上下文碎片化问题解决方案的收益。
- Penn Treebank (Mikolov and Zweig, 2012):
- 特点: 一个相对较小的词级语言建模数据集,训练集只有1百万个词元。
- 用途: 用于验证
Transformer-XL在小数据集上的泛化能力。
5.2. 评估指标
本文使用了语言建模任务中常见的评估指标:困惑度 (Perplexity) 和 每字符比特数 (Bits Per Character),并引入了一个新的指标 相对有效上下文长度 (Relative Effective Context Length)。
5.2.1. 困惑度 (Perplexity, PPL)
- 概念定义:
困惑度 (Perplexity)是衡量一个概率分布或概率模型预测样本(通常是文本序列)效果好坏的指标。它表示模型对下一个词元的预测有多“困惑”或者说不确定。困惑度越低,表示模型对文本的预测能力越强,模型性能越好。 - 数学公式:
给定一个测试序列 ,其
困惑度定义为: 这等价于: 其中H(W)是平均交叉熵 (cross-entropy) 损失。 - 符号解释:
- : 测试序列。
- : 测试序列中词元的总数。
- : 模型预测在给定前
i-1个词元时,下一个词元是 的概率。 - : 连乘符号。
- : 自然对数的底数。
- : 自然对数。
5.2.2. 每字符比特数 (Bits Per Character, bpc)
- 概念定义:
每字符比特数 (bpc)是在字符级语言建模中常用的评估指标,它衡量了模型平均编码一个字符所需的比特数。bpc值越低,表示模型对字符序列的预测和压缩能力越强,模型性能越好。它与交叉熵损失直接相关。 - 数学公式:
给定一个字符序列 ,其
每字符比特数定义为: - 符号解释:
- : 字符序列。
- : 字符序列中字符的总数。
- : 模型预测在给定前
i-1个字符时,下一个字符是 的概率。 - : 以2为底的对数。
5.2.3. 相对有效上下文长度 (Relative Effective Context Length, RECL)
-
概念定义:
有效上下文长度 (Effective Context Length, ECL)(Khandelwal et al., 2018) 是一种评估序列模型的方法,它表示增加上下文跨度能带来收益的“最长长度”。然而,ECL忽略了模型在已经很低的困惑度下获得进一步改进会更困难的事实,因此不适合在多个模型之间进行公平比较。本文提出了相对有效上下文长度 (RECL),它定义在一个模型组上而不是单个模型上,并且通过与模型组中表现最好的短上下文模型进行比较,来衡量长上下文带来的相对改进。因此,模型组共享相同的基线,从而实现公平比较。RECL还有一个参数 ,用于将比较限制在前 比例的“困难”样本上。 -
数学公式: 论文正文未直接给出
RECL的数学公式,但描述了其计算方法。根据论文的描述,RECL的计算步骤如下:- 定义一个模型组: 包含多个模型,这些模型在相同的参数预算下,使用不同长度的上下文进行训练和评估。
- 确定基线: 在该模型组中,找出使用最短上下文长度且表现最好的模型,将其性能作为基线。
- 计算相对改进: 对于模型组中每个使用较长上下文的模型,计算其相对于基线的性能改进。
- 定义阈值和 参数: 设定一个性能提升的阈值,以及一个参数 (例如 ),表示只考虑对前 比例的“困难”样本(例如,初始预测概率最低的样本)进行比较。
- 确定
RECL:RECL被定义为在满足上述条件(相对于基线的改进超过阈值,且在 比例的困难样本上)时,最长的上下文长度。
-
符号解释:
- : 一个参数,通常为 ,表示只考虑前 比例的“困难”样本进行
RECL计算。困难样本通常指模型预测概率较低或损失较高的样本。 - 模型组: 一组具有相同参数预算但可能使用不同上下文长度的语言模型。
- 基线模型: 模型组中使用最短上下文且表现最好的模型。
- 相对改进: 某个模型相对于基线模型的性能提升(例如
困惑度的降低)。
- : 一个参数,通常为 ,表示只考虑前 比例的“困难”样本进行
5.3. 对比基线
本文将 Transformer-XL 与多种现有最先进的语言模型进行了比较,包括:
- 基于
RNN的模型:LSTM(Grave et al., 2016b)QRNN(Merity et al., 2018)LN HyperNetworks(Ha et al., 2016)LN HM-LSTM(Chung et al., 2016)RHN(Zilly et al., 2016)FS-LSTM(Mujika et al., 2017)Large mLSTM(Krause et al., 2016)Neural cache(Grave et al., 2016b)Hebbian + Cache(Rae et al., 2018)AWD-LSTM(Merity et al., 2017)MoS (Mixture of Softmaxes)(Yang et al., 2017)Tied Variational LSTM(Inan et al., 2016)Variational RHN(Zilly et al., 2016)
- 基于
CNN的模型:TCN(Bai et al., 2018)GCNN(Dauphin et al., 2016)
- 基于
Transformer的模型:Vanilla Transformer(Al-Rfou et al., 2018)Adaptive Input(Baevski and Auli, 2018)
- 基于
NAS(Neural Architecture Search) 的模型:-
NAS Cell(Zoph and Le, 2016) -
Efficient NAS(Pham et al., 2018) -
Differentiable NAS(Liu et al., 2018)这些基线模型涵盖了语言建模领域中
RNN、CNN和Transformer架构的主要进展,代表了不同时期和不同方向的最先进技术。选择它们进行比较,可以全面评估Transformer-XL在不同任务和模型规模下的性能优势。
-
6. 实验结果与分析
6.1. 核心结果分析
Transformer-XL 在多个数据集上取得了显著的性能提升,展示了其在长距离依赖建模、评估效率和泛化能力方面的优势。
6.1.1. WikiText-103 (词级,长距离依赖)
在 WikiText-103 数据集上,Transformer-XL 显著降低了 困惑度 (PPL),将最先进结果从20.5(由 Adaptive Input 模型获得)提升到18.3。这个数据集以其长文章和丰富的长距离依赖而闻名,Transformer-XL 的优越性能直接证明了其架构在捕获长距离依赖方面的卓越能力。通过使用 自适应 Softmax (adaptive softmax) 和 输入表示 (input representations) 等技术,Transformer-XL 充分利用了其架构优势。
以下是原文 Table 1 的结果:
| Model | #Param | PPL |
| Grave et al. (2016b) - LSTM | 48.7 | |
| Bai et al. (2018) - TCN | 45.2 | |
| Dauphin et al. (2016) - GCNN-8 | 44.9 | |
| Grave et al. (2016b) - Neural cache | 40.8 | |
| Dauphin et al. (2016) - GCNN-14 | - | 37.2 |
| Merity et al. (2018) - QRNN | 151M | 33.0 |
| Rae et al. (2018) - Hebbian + Cache | - | 29.9 |
| Ours - Transformer-XL Standard | 151M | 24.0 |
| Baevski and Auli (2018) - Adaptive Input | 247M | 20.5 |
| Ours - Transformer-XL Large | 257M | 18.3 |
6.1.2. enwik8 (字符级,长距离依赖)
在 enwik8 数据集上,Transformer-XL 首次将 每字符比特数 (bpc) 突破了1.0的关口,达到了0.99。值得注意的是,一个12层的 Transformer-XL (41M参数) 取得了1.06 bpc,与 Al-Rfou et al. (2018) 中64层的 普通 Transformer (235M参数) 性能相同,但仅使用了后者17%的参数量。这表明 Transformer-XL 在参数效率方面也具有显著优势,并且无需任何辅助损失,所有的提升都归因于其架构改进。通过增加模型大小(18层和24层),性能进一步提高。
以下是原文 Table 2 的结果:
| Model | #Param | bpc |
| Ha et al. (2016) - LN HyperNetworks Chung et al. (2016) - LN HM-LSTM | 27M | 1.34 1.32 |
| Zilly et al. (2016) - RHN | 35M 46M | |
| Mujika et al. (2017) - FS-LSTM-4 | 1.27 | |
| 47M | 1.25 | |
| Krause et al. (2016) - Large mLSTM Knol (2017) - cmix v13 | 46M | 1.24 |
| Al-Rfou et al. (2018) - 12L Transformer | - | 1.23 |
| 44M | 1.11 | |
| Ours - 12L Transformer-XL | 41M | 1.06 |
| Al-Rfou et al. (2018) - 64L Transformer | 235M | 1.06 |
| Ours - 18L Transformer-XL | 88M | 1.03 |
| Ours - 24L Transformer-XL | 277M | 0.99 |
6.1.3. text8 (字符级)
在 text8 数据集上,Transformer-XL 也达到了新的最先进结果1.08 bpc,再次超越了 普通 Transformer 和 RNN 基线。由于 text8 与 enwik8 相似,本文直接沿用了在 enwik8 上表现最好的模型和超参数,没有进行额外调优,这进一步证明了 Transformer-XL 架构的鲁棒性。
以下是原文 Table 3 的结果:
| Model | #Param | bpc |
| Cooijmans et al. (2016) - BN-LSTM Chung et al. (2016) - LN HM-LSTM | - | 1.36 |
| 35M | 1.29 | |
| Zilly et al. (2016) - RHN | 45M | 1.27 |
| Krause et al. (2016) - Large mLSTM | 45M | 1.27 |
| Al-Rfou et al. (2018) - 12L Transformer | 44M | 1.18 |
| Al-Rfou et al. (2018) - 64L Transformer | 235M | 1.13 |
| Ours - 24L Transformer-XL | 277M | 1.08 |
6.1.4. One Billion Word (词级,无长距离依赖)
One Billion Word 数据集特点是句子被打乱,不保留长距离依赖,因此主要测试模型建模短距离依赖的能力。尽管 Transformer-XL 主要设计用于捕获长距离依赖,它依然将单模型的最先进 困惑度 从23.7大幅提升到21.8。这表明 Transformer-XL 的优势也适用于建模短序列,并且其解决 上下文碎片化问题 的能力对性能提升有普遍益处。
以下是原文 Table 4 的结果:
| Model | |#ParamPPL | |||
| 33B 52.920B 51.3- 36.0- 31.91.8B 30.6 | ||||
| 1.8B 30.61.04B 30.0 | ||||
| ~5B 34.1 | ||||
| ~5B 28.0 | ||||
| 4.9B 24.0 | ||||
| 0.46B 24.11.0B 23.7 | ||||
| Ours - Transformer-XL BaseOurs - Transformer-XL Large | 0.46B 23.50.8B 21.8 | |||
6.1.5. Penn Treebank (词级,小数据集)
在 Penn Treebank 这个小型数据集上(只有1M训练词元),Transformer-XL 在不进行两步微调 (two-step finetuning) 的模型中达到了新的最先进 困惑度 54.5。这表明 Transformer-XL 即使在小数据集上也能很好地泛化,这通常是 Transformer 模型的挑战之一。
以下是原文 Table 5 的结果:
| Model | #ParamPPL | ||||
| Inan et al. (2016) - Tied Variational LSTMZilly et al. (2016) - Variational RHNZoph and Le (2016) - NAS CellMerity et al. (2017) - AWD-LSTMPham et al. (2018) - Efficient NASLiu et al. (2018) - Differentiable NASYang et al. (2017) - AWD-LSTM-MoSMelis et al. (2018) - Dropout tuning | 24M 73.2 | ||||
| 23M 65.4 | |||||
| 25M 64.0 | |||||
| 24M 58.8 | |||||
| 24M 58.6 | |||||
| 23M 56.1 | |||||
| 22M 55.9724M 55.3 | |||||
| Ours - Transformer-XL | 24M 54.52 | ||||
| Merity et al. (2017) - AWD-LSTM+Finetune†Yang et al. (2017) - MoS+Finetune† | 24M 57.322M 54.44 | ||||
6.2. 消融实验/参数分析
6.2.1. WikiText-103 上的消融研究
本文在 WikiText-103 上进行了两组消融研究,以检验 循环机制 和 新位置编码方案 的效果。
以下是原文 Table 6 的结果:
| Remark | Recurrence | Encoding | Loss | PPL init | PPL best | Attn Len |
|---|---|---|---|---|---|---|
| Transformer-XL (128M) | ✓ | Ours | Full | 27.02 | 26.77 | 500 |
| ✓ | Shaw et al. (2018) | Full | 27.94 | 27.94 | 256 | |
| - | ✓ | Ours | Half | 28.69 | 28.33 | 460 |
| X | Ours | Full | 29.59 | 29.02 | 260 | |
| X | Ours | Half | 30.10 | 30.10 | 120 | |
| X | Shaw et al. (2018) | Full | 29.75 | 29.75 | 120 | |
| X | Shaw et al. . (2018) | Half | 30.50 | 30.50 | 120 | |
| X | Vaswani et al. . (2017) | Half | 30.97 | 30.97 | 120 | |
| Transformer (128M)† | X | Al-Rfou et al. (2018) | Half | 31.16 | 31.16 | 120 |
| Transformer-XL (151M) | ✓ | Ours | Full | 23.43 | 23.09 | 640 |
| 23.16 23.35 | 450 300 |
分析:
循环机制和相对位置编码的必要性: 表格显示,同时使用循环机制(Recurrence: ✓) 和本文的相对位置编码(Encoding: Ours) 的Transformer-XL(26.77 PPL) 取得了最佳性能。- 泛化到更长注意力序列: 只有当同时使用这两个技术时,模型才能在评估时泛化到更长的注意力长度 (Attn Len),例如从训练时的128(通常是
Half损失的最大有效长度)增加到测试时的500或640。 - 不同位置编码的比较:
- 本文的
相对位置编码(Ours) 优于Shaw et al. (2018)的方案 (Full loss, 26.77 vs 27.94 PPL)。 绝对位置编码(Vaswani et al., 2017; Al-Rfou et al., 2018) 仅在Half损失下表现尚可,因为Half损失排除了训练时注意力长度较短的位置,以改善泛化。当没有循环机制时,它们的性能显著下降。
- 本文的
- 损失函数的选择:
Full损失(对文本段所有位置应用交叉熵损失)通常与循环机制和本文的相对位置编码结合时表现最佳,因为状态复用解决了上下文碎片化,使得文本段开头的预测也变得可靠。
6.2.2. One Billion Word 上的消融研究 (隔离 上下文碎片化)
为了隔离解决 上下文碎片化问题 的效果,本文在 One Billion Word 数据集上进行了受控实验。该数据集不要求长距离依赖,因此任何性能提升都可以归因于解决了 上下文碎片化。
以下是原文 Table 7 的结果:
| Method | PPL |
| Ours | 25.2 |
| With Shaw et al. (2018) encodings | 25.7 |
| Without recurrence | 27.1 |
分析:
循环机制解决上下文碎片化: 对比“Ours” (25.2 PPL) 和“Without recurrence” (27.1 PPL),可以看出,即使在不需要长距离依赖的数据集上,段级循环机制也能显著提升性能。这证实了循环机制确实通过消除上下文碎片化带来了收益。- 本文
相对位置编码的优势: 对比“Ours” (25.2 PPL) 和“With Shaw et al. (2018) encodings” (25.7 PPL),本文的相对位置编码在短序列上也优于Shaw et al. (2018)的方案。
6.2.3. 相对有效上下文长度 (Relative Effective Context Length, RECL)
RECL 是一种新的评估指标,用于公平比较模型捕获长距离依赖的能力。
以下是原文 Table 8 的结果:
| Model | r = 0.1 r = 0.5 r = 1.0 | ||
|---|---|---|---|
| Transformer-XL 151M | 900 | 800 | 700 |
| QRNN | 500 | 400 | 300 |
| LSTM | 400 | 300 | 200 |
| Transformer-XL 128M | 700 | 600 | 500 |
| - use Shaw et al. (2018) encoding | 400 | 400 | 300 |
| - remove recurrence | 300 | 300 | 300 |
| Transformer | 128 | 128 | 128 |
分析:
Transformer-XL的长距离依赖能力: 在 (即对最困难的10%样本)的设置下,Transformer-XL(151M) 能够平均建模900词长的依赖。这比RNN(LSTM) 长80% (900/500 ≈ 1.8),比普通 Transformer(128) 长450% (900/128 ≈ 7.03)。这强有力地支持了Transformer-XL能够建模更长距离依赖的论点。- 各组件的贡献:
循环机制和本文的位置编码都对更长的RECL有贡献。移除循环机制会使RECL显著下降 (从700降到300),而使用Shaw et al. (2018)的编码也会使其下降 (从700降到400)。这再次强调了Transformer-XL两个核心组件的协同作用。
6.2.4. 生成文本
Transformer-XL 仅在 WikiText-103 这个中等规模的数据集上训练,就能够生成数千个词元的相对连贯、新颖的文本文章,尽管存在一些小瑕疵。这表明 Transformer-XL 捕获长期语篇结构和生成高质量长文本的能力。原文附录E提供了生成文本的样本。
6.2.5. 评估速度
Transformer-XL 在评估速度上取得了巨大提升。
以下是原文 Table 9 的结果:
| Attn Len | How much Al-Rfou et al. (2018) is slower |
| 3,800 | 1,874x |
| 2,800 | 1,409x |
| 1,800 | 773x |
| 800 | 363x |
分析:
状态复用带来的速度提升: 由于状态复用机制,Transformer-XL在评估期间比普通 Transformer(Al-Rfou et al., 2018) 实现了高达1874倍的速度提升(在注意力长度为3,800时)。这使得在实际应用中,Transformer-XL能够以更高的效率处理长序列,从而降低了计算成本和时间。
6.3. 数据呈现 (表格)
- 表 1:
WikiText-103上的最先进结果比较 (已在 6.1.1 节展示) - 表 2:
enwik8上的最先进结果比较 (已在 6.1.2 节展示) - 表 3:
text8上的最先进结果比较 (已在 6.1.3 节展示) - 表 4:
One Billion Word上的最先进结果比较 (已在 6.1.4 节展示) - 表 5:
Penn Treebank上的最先进结果比较 (已在 6.1.5 节展示) - 表 6:
WikiText-103上的消融研究 (已在 6.2.1 节展示) - 表 7:
One Billion Word上的消融研究,一个不具有长距离依赖的数据集 (已在 6.2.2 节展示) - 表 8:
相对有效上下文长度 (RECL)比较 (已在 6.2.3 节展示) - 表 9: 评估期间运行时间减慢倍数 (已在 6.2.5 节展示)
7. 总结与思考
7.1. 结论总结
Transformer-XL 成功解决了 Transformer 模型在语言建模中面临的 固定长度上下文 限制和 上下文碎片化问题。通过引入 段级循环机制 和新颖的 相对位置编码方案,该架构实现了对长距离依赖的有效建模,其捕获的依赖长度比 RNNs 长80%,比 普通 Transformer 长450%。此外,Transformer-XL 在评估期间实现了显著的速度提升(高达1800多倍),并在 WikiText-103、enwik8、text8、One Billion Word 和 Penn Treebank 等多个标准语言建模基准上刷新了最先进结果。即使在仅使用中等规模数据集进行训练的情况下,Transformer-XL 也展现了生成数千个词元连贯长文本的能力。这项工作不仅在理论上提出了创新的架构组件,也在实践中展示了卓越的性能和效率,为语言建模及其他序列任务奠定了新的基础。
7.2. 局限性与未来工作
论文中没有明确设立一个“局限性”的章节,但在 Abstract 中提到生成文本时存在“minor flaws”(细微瑕疵)。这暗示了尽管模型能生成连贯长文本,但仍有提升空间,例如在保持完美逻辑和事实准确性方面。
论文指出的未来可能的研究方向和应用包括:
- 文本生成 (text generation): 鉴于其生成连贯长文本的能力,
Transformer-XL在更高级的文本生成任务中具有巨大潜力。 - 无监督特征学习 (unsupervised feature learning): 作为一个强大的语言模型,它可以用于学习通用的语言表示,作为下游任务的预训练模型。
- 图像和语音建模 (image and speech modeling):
Transformer-XL的核心思想(长距离依赖、循环机制、相对位置)可以推广到其他序列数据类型,如图像像素序列或语音信号序列。
7.3. 个人启发与批判
7.3.1. 个人启发
Transformer-XL 的核心创新在于其对 Transformer 架构的巧妙改造,而非从零开始发明新机制。它展示了如何通过结合不同架构范式的优点(Transformer 的 自注意力 和 RNN 的 循环)来解决特定问题。
- 跨范式融合的强大: 这篇论文启发我,在研究中不应局限于单一的架构范式。将
RNN的循环概念与Transformer的自注意力结合,解决了Transformer在长序列处理上的固有缺陷,同时保留了其并行性和长距离建模优势。这提示我们,“旧”概念在“新”架构中仍有其价值,关键在于如何巧妙地重新诠释和应用。 - 问题拆解与针对性解决: 作者清晰地识别了
普通 Transformer的两个核心问题:固定长度上下文和上下文碎片化。然后,段级循环解决了前者和部分后者,而相对位置编码则完美补足了段级循环引入的时间连贯性问题。这种分而治之、协同解决的思路非常值得学习。 - 归纳偏置 (Inductive Bias) 的重要性: 论文中强调
相对位置编码沿用正弦公式带来的归纳偏置,使其能泛化到更长的记忆长度。这再次提醒我们,精心设计的数学结构和先验知识,即使看似简单,也能为模型带来强大的泛化能力和鲁棒性,远超完全依赖可学习参数的方法。 - 效率与性能并重:
Transformer-XL不仅提高了性能,还大幅提升了评估效率。在实际应用中,效率往往与性能同样重要。这表明在设计新模型时,需要综合考虑计算成本和实际部署的可行性。
7.3.2. 批判与潜在改进
- 训练复杂性: 虽然
Transformer-XL在评估时速度更快,但其训练过程仍然涉及对较长序列(虽然是分段的)进行计算和记忆管理,这可能增加了训练的内存和计算需求,尤其是在处理超大模型和超长上下文时。尽管论文提到了stop-gradient来限制反向传播,但前向传播的上下文长度仍然是增加的。 - 记忆长度的限制:
记忆 (memory)的长度最终仍受限于GPU内存。虽然比普通 Transformer大幅提升,但对于极其长的文档(例如一本书的长度),仍然需要更复杂的机制来处理。未来的工作可以探索更高效的记忆压缩、检索或分层记忆系统。 - 相对位置编码的进一步探索: 虽然本文的
相对位置编码表现出色,但其基于正弦函数的固定形式可能并非最优。可以探索可学习的相对位置编码,或者根据任务特性调整其形式,以适应更复杂的相对位置关系。 - 多语言和多模态应用: 论文主要在英文语言建模上进行了评估。其在多语言环境下的表现,以及如何与图像、语音等其他模态进行更深度的融合,值得进一步研究。例如,如何设计适用于跨模态交互的
段级循环和相对位置编码。 - “细微瑕疵”的量化与解决: 论文提到生成文本存在“minor flaws”,但没有量化这些瑕疵的类型和频率,也没有具体说明如何解决。未来的研究可以深入分析这些瑕疵的来源(例如事实错误、逻辑不连贯、重复性等),并提出针对性的改进方案。
相似论文推荐
基于向量语义检索推荐的相关论文。