Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context

文章标题:Transformer-XL:超越固定长度上下文的注意力语言模型
作者/机构:Zihang Dai, Zhilin Yang, Yiming Yang, Jaime Carbonell, Quoc V. Le, Ruslan Salakhutdinov
所属机构:卡内基梅隆大学,谷歌大脑

A1 主要贡献

核心问题:尽管Transformer在学习长期依赖方面具有潜力,但在语言建模中,它们受到固定长度上下文的限制。这种方法存在两个关键问题:1) 模型无法捕获超出预定义上下文长度的更长期依赖;2) 将文本简单地切分成固定长度的片段会导致“上下文碎片化”问题,即模型在预测片段开头的词符时缺乏必要的上下文信息,从而导致优化效率低下和性能下降。

研究目标:本文旨在解决标准Transformer模型在处理语言建模任务时因固定长度上下文带来的局限性,使其能够学习超越固定长度的依赖关系,同时不破坏时间连贯性。

创新点
为了解决上述问题,本文提出了一种名为Transformer-XL(意为超长)的新型神经架构。其核心贡献包括:
1. 分段级循环机制(Segment-Level Recurrence):在处理新的文本段时,模型会固定并缓存前一个文本段计算出的隐藏状态序列。这些被重用的隐藏状态作为当前段的记忆或扩展上下文,从而在段与段之间建立了循环连接。这种机制使得信息可以通过循环连接进行传播,从而能够建模非常长期的依赖关系,并解决了上下文碎片化问题。
2. 相对位置编码方案(Relative Positional Encoding):为了在重用隐藏状态时保持位置信息的一致性,本文提出了一种新的相对位置编码方案。与在初始嵌入中静态加入位置信息的绝对位置编码不同,该方案将相对位置信息(即两个位置之间的距离)动态地注入到每一层的注意力分数中。这使得模型能够区分不同段中相同相对位置的词符,使状态重用成为可能,并且在评估时能泛化到比训练时更长的注意力长度。

这两个技术共同构成了一个完整的解决方案,使得Transformer-XL在多个语言建模基准测试中取得了显著优于RNN和标准Transformer的性能,不仅能捕获更长期的依赖,还能在评估时大幅提升速度。

A3 背景知识/关键Observation/设计原则

语言建模领域的进展。近年来,语言建模领域取得了许多重要进展,包括但不限于设计新颖的架构以更好地编码上下文【5, Bengio et al., 2003, Journal of machine learning research】【43, Mikolov et al., 2010, Eleventh Annual Conference of the International Speech Communication Association】【41, Merity et al., 2016, arXiv preprint arXiv:1609.07843】【1, Al-Rfou et al., 2018, arXiv preprint arXiv:1808.04444】,改进正则化和优化算法【13, Gal and Ghahramani, 2016, Advances in neural information processing systems】,加速Softmax计算【14, Grave et al., 2016a, arXiv preprint arXiv:1609.04309】,以及丰富输出分布族【69, Yang et al., 2017, arXiv preprint arXiv:1711.03953】。

捕捉长程上下文的方法。为了在语言建模中捕捉长程上下文,一种研究思路是将更广泛上下文的表示作为额外输入送入网络。现有工作范围广泛,从手动定义上下文表示【44, Mikolov and Zweig, 2012, SLT】【23, Ji et al., 2015, arXiv preprint arXiv:1511.03962】【62, Wang and Cho, 2015, arXiv preprint arXiv:1511.03729】,到依赖于从数据中学习的文档级主题【12, Dieng et al., 2016, arXiv preprint arXiv:1611.01702】【63, Wang et al., 2017, arXiv preprint arXiv:1712.09783】。

通用序列建模中的长期依赖问题。在更广泛的序列建模领域,如何捕捉长期依赖一直是一个长期的研究问题。从这个角度看,自从LSTM被广泛采用以来,许多努力都致力于缓解梯度消失问题,包括更好的初始化方法【33, Le et al., 2015, arXiv preprint arXiv:1504.00941】,增加额外的损失信号【59, Trinh et al., 2018, arXiv preprint arXiv:1803.00144】,增强的记忆结构【27, Ke et al., 2018, Advances in Neural Information Processing Systems】,以及其他修改RNN内部架构以简化优化的方法【68, Wu et al., 2016, Advances in neural information processing systems】【34, Li et al., 2018, Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition】。与这些方法不同,本文的工作基于Transformer架构,并表明语言建模作为一个真实世界的任务,可以从学习更长期依赖的能力中受益。

A2 方法细节

模型概述

语言建模任务的定义。给定一个由词符组成的语料库 $x = (x_1, \dots, x_T)$,语言建模的任务是估计联合概率 $P(x)$。这个概率通常被自回归地分解为 $P(x) = \prod_t P(x_t | x_{<t})$。通过这种分解,问题简化为估计每个条件因子。本文遵循标准的神经方法来建模条件概率,即使用一个可训练的神经网络将上下文 $x_{<t}$ 编码成一个固定大小的隐藏状态,然后该状态与词嵌入相乘以获得logits。这些logits随后被送入Softmax函数,从而产生下一个词符的分类概率分布。</p>

3.1 Vanilla Transformer语言模型

Vanilla Transformer的训练方式。为了将Transformer或自注意力机制应用于语言建模,核心问题是如何训练一个Transformer来有效地将任意长度的上下文编码成一个固定大小的表示。在拥有无限内存和计算资源的情况下,一个简单的解决方案是使用一个无条件的Transformer解码器来处理整个上下文序列,类似于前馈神经网络。然而,在实践中,由于资源有限,这通常是不可行的。一种可行但粗糙的近似方法是将整个语料库分割成可管理大小的较短片段,并且只在每个片段内部训练模型,忽略所有来自前序片段的上下文信息。这就是Al-Rfou等人【1, Al-Rfou et al., 2018, arXiv preprint arXiv:1808.04444】采用的思路。我们称之为vanilla模型,并在图1a中进行了可视化。在这种训练范式下,信息在正向或反向传播中都绝不会跨越片段。

图1:长度为4的vanilla模型示意图。
图1:长度为4的vanilla模型示意图。

固定长度上下文的局限性。使用固定长度上下文存在两个关键限制。首先,可能的最大依赖长度受限于片段长度,在字符级语言建模中这个长度通常是几百【1, Al-Rfou et al., 2018, arXiv preprint arXiv:1808.04444】。因此,尽管自注意力机制相比于RNN受梯度消失问题的影响较小,vanilla模型却无法充分利用这一优化优势。其次,尽管可以使用填充来尊重句子或其他语义边界,但在实践中,为了提高效率,通常的做法是将长文本简单地切分成固定长度的片段【48, Peters et al., 2018, arXiv preprint arXiv:1802.05365】【11, Devlin et al., 2018, arXiv preprint arXiv:1810.04805】【1, Al-Rfou et al., 2018, arXiv preprint arXiv:1808.04444】。然而,如第1节所讨论的,简单地将序列分块会导致上下文碎片化问题。

Vanilla Transformer的评估方式。在评估阶段,每个步骤中,vanilla模型也会处理一个与训练时相同长度的片段,但只在最后一个位置进行一次预测。然后,在下一步中,该片段仅向右移动一个位置,而新的片段必须完全从头开始处理。如图1b所示,这个过程确保了每次预测都利用了训练期间所能接触到的最长上下文,并且也缓解了训练中遇到的上下文碎片化问题。然而,这个评估过程极其昂贵。我们将展示我们提出的架构能够显著提高评估速度。

3.2 带有状态重用的分段级循环

引入分段级循环机制。为了解决使用固定长度上下文的局限性,我们提出在Transformer架构中引入一种循环机制。在训练过程中,为前一个片段计算的隐藏状态序列被固定并缓存下来,以便在模型处理下一个新片段时作为扩展上下文(extended context)重复使用,如图2a所示。尽管梯度仍然局限在单个片段内,但这个额外的输入使得网络能够利用历史信息,从而具备建模更长期依赖的能力并避免上下文碎片化。形式上,假设两个长度为 $L$ 的连续片段分别为 $s_{\tau} = [x_{\tau,1}, \dots, x_{\tau,L}]$ 和 $s_{\tau+1} = [x_{\tau+1,1}, \dots, x_{\tau+1,L}]$。记第 $n$ 层为第 $\tau$ 个片段 $s_{\tau}$ 产生的隐藏状态序列为 $h^n_{\tau} \in R^{L \times d}$,其中 $d$ 是隐藏维度。那么,第 $n$ 层为片段 $s_{\tau+1}$ 产生的隐藏状态(示意性地)如下计算:

公式
公式

其中,函数 $SG(\cdot)$ 代表停止梯度(stop-gradient),符号 $[h_u \circ h_v]$ 表示沿长度维度拼接两个隐藏序列,而 $W_{\cdot}$ 表示模型参数。与标准Transformer相比,关键区别在于键 $k^n_{\tau+1}$ 和值 $v^n_{\tau+1}$ 是基于扩展上下文 $\tilde{h}^{n-1}_{\tau+1}$ 计算的,而这个上下文包含了从前一个片段缓存的 $h^{n-1}_{\tau}$。我们在图2a中用绿色路径强调了这一特定设计。

循环机制的效果。当这种循环机制应用于语料库中每两个连续的片段时,它实质上在隐藏状态中创建了一个分段级别的循环。因此,被有效利用的上下文可以远远超出两个片段的范围。然而,需要注意的是, $h^n_{\tau+1}$ 和 $h^{n-1}_{\tau}$ 之间的循环依赖关系每经过一个片段就会向下一层移动,这与传统RNN-LM中的同层循环不同。因此,最大可能的依赖长度随层数和片段长度线性增长,即 $O(N \times L)$,如图2b中的阴影区域所示。这类似于截断的反向传播(truncated BPTT)【43, Mikolov et al., 2010, Eleventh Annual Conference of the International Speech Communication Association】,一种为训练RNN-LM开发的技术。然而,与截断BPTT不同,我们的方法缓存的是一个隐藏状态序列而不是最后一个状态,并且应与3.3节中描述的相对位置编码技术结合使用。

图2:长度为4的Transformer-XL模型示意图。
图2:长度为4的Transformer-XL模型示意图。

循环机制带来的额外好处。除了实现超长上下文和解决碎片化问题,循环方案带来的另一个好处是评估速度显著加快。具体来说,在评估期间,来自先前片段的表示可以被重用,而不像vanilla模型那样需要从头计算。在我们在enwiki8上的实验中,Transformer-XL在评估期间比vanilla模型快1800多倍(见第4节)。

扩展循环机制。最后,需要注意,循环方案不必仅限于前一个片段。理论上,我们可以缓存GPU内存允许的任意多个先前片段,并在处理当前片段时将它们全部作为额外上下文重用。因此,我们可以缓存一个预定义长度为 $M$ 的旧隐藏状态,这些状态可能跨越多个片段,并将它们称为记忆(memory)$m^n_{\tau} \in R^{M \times d}$,这与记忆增强神经网络【17, Graves et al., 2014, arXiv preprint arXiv:1410.5401】【64, Weston et al., 2014, arXiv preprint arXiv:1410.3916】有明显的联系。在我们的实验中,我们在训练期间将 $M$ 设置为与片段长度相等,并在评估期间将其增加数倍。

3.3 相对位置编码

绝对位置编码的问题。虽然我们发现上一小节提出的想法非常有吸引力,但在重用隐藏状态方面,我们还有一个关键的技术挑战没有解决。那就是,当我们重用状态时,如何保持位置信息的一致性?回想一下,在标准Transformer中,序列顺序的信息是由一组位置编码提供的,记为 $U \in R^{L_{max} \times d}$,其中第 $i$ 行 $U_i$ 对应于一个片段内的第 $i$ 个绝对位置,$L_{max}$ 规定了可以建模的最大可能长度。然后,Transformer的实际输入是词嵌入和位置编码的逐元素相加。如果我们简单地将这种位置编码应用于我们的循环机制,隐藏状态序列的计算(示意性地)将如下所示:

公式
公式

其中 $E_{s_{\tau}} \in R^{L \times d}$ 是 $s_{\tau}$ 的词嵌入序列,$f$ 代表一个变换函数。请注意, $E_{s_{\tau}}$ 和 $E_{s_{\tau+1}}$ 都与相同的位置编码 $U_{1:L}$ 相关联。结果是,对于任何 $j = 1, \dots, L$,模型没有任何信息来区分 $x_{\tau,j}$ 和 $x_{\tau+1,j}$ 的位置差异,这导致了严重的性能损失。

相对位置编码的核心思想。为了避免这种失败模式,根本思想是在隐藏状态中只编码相对位置信息。从概念上讲,位置编码为模型提供了一个关于应如何收集信息的时间线索或“偏置”,即应该关注哪里。为了达到同样的目的,我们可以在每一层的注意力分数中注入相同的信息,而不是在初始嵌入中静态地加入偏置。更重要的是,以相对的方式定义时间偏置更直观且更具泛化性。例如,当一个查询向量 $q_{\tau,i}$ 关注键向量 $k_{\tau, \le i}$ 时,它不需要知道每个键向量的绝对位置来识别该段的时间顺序。相反,它只需要知道每个键向量 $k_{\tau,j}$ 和它自己 $q_{\tau,i}$ 之间的相对距离,即 $i-j$。在实践中,我们可以创建一组相对位置编码 $R \in R^{L_{max} \times d}$,其中第 $i$ 行 $R_i$ 表示两个位置之间为 $i$ 的相对距离。通过将相对距离动态地注入到注意力分数中,查询向量可以很容易地通过不同的距离来区分 $x_{\tau,j}$ 和 $x_{\tau+1,j}$ 的表示,从而使状态重用机制变得可行。同时,我们不会丢失任何时间信息,因为绝对位置可以从相对距离中递归地恢复。

相对位置编码的推导。之前,相对位置编码的思想已经在机器翻译【54, Shaw et al., 2018, arXiv preprint arXiv:1803.02155】和音乐生成【21, Huang et al., 2018, arXiv preprint arXiv:1809.04281】的背景下被探索过。在这里,我们提供了一个不同的推导,得到了一种新形式的相对位置编码,它不仅与其绝对位置编码的对应物有一一对应的关系,而且在经验上享有更好的泛化能力(见第4节)。首先,在标准Transformer【60, Vaswani et al., 2017, Advances in Neural Information Processing Systems】中,同一片段内查询向量 $q_i$ 和键向量 $k_j$ 之间的注意力分数可以分解为:

公式
公式

相对位置编码的重新参数化。遵循只依赖相对位置信息的思想,我们提出将这四个项重新参数化如下:

公式
公式

* 第一处改动:我们将用于计算键向量的项(b)和(d)中所有出现的绝对位置嵌入 $U_j$ 替换为其相对对应物 $R_{i-j}$。这实质上反映了只有相对距离对注意力位置有影响的先验知识。注意,$R$ 是一个没有可学习参数的正弦编码矩阵【60, Vaswani et al., 2017, Advances in Neural Information Processing Systems】。
* 第二处改动:我们引入一个可训练的参数 $u \in R^d$ 来替换项(c)中的查询 $U_i^T W_q^T$。在这种情况下,由于查询向量对所有查询位置都是相同的,这表明对不同词的注意力偏置应该与查询位置无关。基于类似的推理,我们增加了一个可训练的参数 $v \in R^d$ 来替代项(d)中的 $U_i^T W_q^T$。
* 第三处改动:我们特意将权重矩阵分为 $W_{k,E}$ 和 $W_{k,R}$,分别用于产生基于内容的键向量和基于位置的键向量。

新参数化的直观解释。在新的参数化下,每个项都有一个直观的含义:项(a)代表基于内容的寻址;项(b)捕捉了内容相关的 positional bias;项(c)控制了全局内容偏置;项(d)编码了全局位置偏置。

与现有工作的比较。相比之下,Shaw等人【54, Shaw et al., 2018, arXiv preprint arXiv:1803.02155】的公式只有项(a)和(b),省略了两个偏置项(c)和(d)。此外,Shaw等人【54, Shaw et al., 2018, arXiv preprint arXiv:1803.02155】将乘法 $W_k R$ 合并成一个单一的可训练矩阵 $\hat{R}$,这放弃了原始正弦位置编码【60, Vaswani et al., 2017, Advances in Neural Information Processing Systems】中内建的归纳偏置。相反,我们的相对位置嵌入 $R$ 采用了正弦公式。得益于这种归纳偏置,一个在某种长度的记忆上训练的模型可以在评估时自动泛化到几倍长的记忆。

Transformer-XL的最终计算过程。将循环机制与我们提出的相对位置嵌入相结合,我们最终得到了Transformer-XL架构。为完整起见,我们在此总结一个具有单个注意力头的 $N$ 层Transformer-XL的计算过程。对于 $n = 1, \dots, N$:

公式
公式

其中 $h^0_{\tau} := E_{s_{\tau}}$ 定义为词嵌入序列。此外,值得一提的是,计算 $A$ 的一种朴素方法需要为所有对 $(i, j)$ 计算 $W_{k,R}^n R_{i-j}$,其成本与序列长度的平方成正比。然而,注意到 $i-j$ 的值仅在0到序列长度之间,我们在附录B中展示了一个简单的计算过程,将成本降低到与序列长度呈线性关系。

A4 实验环境

A4 实验结果

4.1 主要结果

4.2 消融研究

4.3 相对有效上下文长度 (RECL)

4.4 生成文本

4.5 评估速度

A5 结论

本文提出的Transformer-XL架构通过引入分段级循环机制和新颖的相对位置编码方案,成功解决了标准Transformer在语言建模中受限于固定长度上下文的问题。实验结果表明,Transformer-XL在多个基准上取得了强大的困惑度结果,能够建模比RNN和标准Transformer更长期的依赖,评估速度得到巨大提升,并且能够生成连贯的长篇文章。作者展望Transformer-XL在文本生成、无监督特征学习、图像和语音建模等领域具有广阔的应用前景。

A6 附录

A. 内存约束下的消融研究

同等内存预算下的性能对比。表10比较了Transformer-XL与基线模型在相同内存预算下的性能。结果显示,即便反向传播的长度更短,Transformer-XL的性能仍然优于基线模型。

表10:在WikiText-103上,相同GPU内存约束下的消融研究。
表10:在WikiText-103上,相同GPU内存约束下的消融研究。

B. 相对位置嵌入注意力的有效计算

问题陈述。如3.3节所述,为所有 $(i, j)$ 对计算 $W_{k,R}R_{i-j}$ 的朴素方法会产生二次方的时间复杂度。此处我们展示一种仅需线性复杂度的简单方法。首先,注意到相对距离 $i-j$ 的取值范围是从0到 $M+L-1$ 的整数,其中 $M$ 和 $L$ 分别是记忆长度和段长度。因此,矩阵

公式
公式

的行包含了对于任何 $(i, j)$, $W_{k,R}R_{i-j}$ 所有可能的向量输出。注意我们以相反的顺序定义了 $Q$,即 $Q_k = W_{k,R}R_{M+L-1-k}$,以便于后续讨论。

术语(b)的高效计算。接下来,我们将所有可能的 $i, j$ 对应的术语(b)收集到以下 $L \times (M+L)$ 的矩阵中:

公式
公式

然后,我们进一步定义
公式
公式

现在,很容易看出 $\mathbf{B}$ 和 $\hat{\mathbf{B}}$ 之间的直接关系,其中 $\mathbf{B}$ 的第 $i$ 行就是 $\hat{\mathbf{B}}$ 的第 $i$ 行向左平移(left-shifted)的结果。因此,计算 $\mathbf{B}$ 只需要一次矩阵乘法 $qQ^T$ 来计算 $\hat{\mathbf{B}}$,然后进行一系列左移操作。

术语(d)的高效计算。类似地,我们可以将所有可能的 $i, j$ 对应的术语(d)收集到另一个 $L \times (M+L)$ 的矩阵 $\mathbf{D}$ 中:

公式
公式

然后,我们可以遵循相同的步骤定义
公式
公式

同样,$\mathbf{D}$ 的每一行都是 $\hat{\mathbf{d}}$ 的左移版本。因此,主要的计算成本来自于矩阵-向量乘法 $\hat{\mathbf{d}} = [Qv]^T$,这个计算不再昂贵。

C. 关于RECL的细节

RECL度量定义。本节详细描述RECL(Relative Effective Context Length)度量。设 $M = \{m_1, m_2, \dots, m_N\}$ 是一个包含 $N$ 个模型的模型组。令 $l_i(c, t)$ 表示模型 $m_i$ 在语料库中第 $t$ 个词符上,使用上下文长度为 $c$ 时的损失。具体来说,损失可以写为

公式
公式

其中 $P_{m_i}$ 是模型 $m_i$ 给出的概率分布,$x_t$ 是语料库中的第 $t$ 个词符。给定一个短上下文长度 $c$ 和一个长上下文长度 $c'$ (其中 $c' \ge c$),我们可以为每个位置 $t$ 定义一个基准(baseline):
公式
公式

模型 $m_i$ 相对于模型组 $M$ 的相对损失(relative loss)写为:
公式
公式

上述公式使用所有模型在短上下文长度 $c$ 上的最小损失作为基准,只有小于该基准的损失才会被有效地计入相对损失。这使得多模型之间的比较变得公平,因为所有使用长上下文长度 $c'$ 的模型都需要在同一个基准上取得进步。有时我们只关心基准表现不佳的位置(这意味着上下文长度为 $c$ 的短期依赖不足),因此给定一个比率参数 $r$,我们将上述方程中的集合 $T$ 定义为:
公式
公式

相对增益(relative gain)随后被定义为相对困惑度下降:
公式
公式

RECL计算算法。给定一个步长 $\Delta$,我们使用以下算法通过对相对增益设置阈值来找到RECL:
1. 设置初始短上下文长度 $c$,长上下文长度 $c' = c + \Delta$
2. 计算 $g_i(c, c')$。如果 $g_i(c, c') < 0.01$,返回RECL = $c$。如果 $g_i(c, c') \ge 0.01$,设置 $c = c'$,$c' = c + \Delta$ 并返回步骤1。

可视化结果。在图3中,我们可视化了当 $r=0.1$ 时,不同 $(c, c')$ 对的未归一化相对困惑度增益 ($\exp f_i(c, c) - \exp f_i(c, c')$)。很明显,与RNN和其他基线相比,Transformer-XL具有更长的RECL,因为其相对增益要大得多。作为参考,我们在图4中绘制了困惑度随上下文长度变化的曲线,其y轴表示“常规”困惑度(未经过基准校准)。

图3:当r=0.1时未归一化的相对困惑度增益可视化。
图3:当r=0.1时未归一化的相对困惑度增益可视化。

图4:困惑度与上下文长度的关系。
图4:困惑度与上下文长度的关系。

D. 注意力可视化

注意力模式分析。本节我们对在WikiText-103验证集上SOTA模型的注意力进行可视化。该模型有16个10头的Transformer层,并依赖于长度为640的记忆。
* 总体注意力趋势(图5):第一个可视化旨在揭示模型关注的总体趋势。我们对验证集中所有词符的注意力分布进行平均。如图5所示,总体趋势是更关注附近的词符。然而,一些注意力头(如第1层的头8,第8层的头78,第16层的头158)在整个记忆范围内具有更宽的注意力分布。

图5:对前640个词符的平均注意力,每行对应一个注意力头,每列对应一个相对位置。共有160个注意力头,每10个来自同一层。颜色越深表示值越高。
图5:对前640个词符的平均注意力,每行对应一个注意力头,每列对应一个相对位置。共有160个注意力头,每10个来自同一层。颜色越深表示值越高。

* 特定头的注意力行为(图6):我们挑选了上述三个具有宽注意力范围的头,并可视化它们在随机选择位置的注意力行为。我们观察到三种不同的宽注意力模式:
* 第1层的头8:在整个记忆范围内表现出几乎均匀的注意力。这很直观,因为低层需要筛选整个记忆范围来为高层决定关注点。
* 第8层的头78(中层):表现出非常稀疏的注意力模式,分散在记忆的各个范围。这也符合直觉,随着信息累积,网络可能会关注某些具有特殊兴趣的特定位置。
* 第16层的头158(顶层):每个目标位置都有自己独特的稀疏关注点,不同于头78中目标位置共享大部分注意力位置的情况。同时,这种模式也不同于头8的均匀模式。
图6:三个具有宽注意力范围的头的可视化。每行对应一个目标位置/词符,每列对应一个上下文位置/词符。记忆中注意力值排名前20%的词符以红色高亮显示。
图6:三个具有宽注意力范围的头的可视化。每行对应一个目标位置/词符,每列对应一个上下文位置/词符。记忆中注意力值排名前20%的词符以红色高亮显示。

* 注意力分数项的贡献(图7):我们研究了注意力分数的四个项如何对图5中的总体注意力趋势做出贡献。我们关注(a)、(b)和(d)三项。对每一项,我们取其关于记忆范围的Softmax,并对所有词符的分布进行平均。结果如图7所示:
* 项(a)(纯内容寻址):平均后在整个上下文上基本是均匀的,除了少数非常近的词,这些词可能与目标词在语义上相似。
* 项(b)(内容相关的 positional bias):其总体趋势与图5中整个注意力分布高度相似,表明关注附近上下文的全局趋势主要由这一项贡献。
* 项(d)(全局位置偏置):其总体趋势也更关注附近的词,但与项(b)相比,它明显更平坦,并偏向于更长的上下文。
图7:计算注意力分数的三个项的可视化。每行对应一个注意力头,每列对应一个相对位置。
图7:计算注意力分数的三个项的可视化。每行对应一个注意力头,每列对应一个相对位置。

E. 生成的文本

文本生成能力展示。本节展示了使用在Wikitext-103数据集上训练的最佳模型生成的文本。我们使用Wikitext-103测试集中随机抽样的最多512个连续词符作为上下文种子,然后让Transformer-XL生成预定数量(500或1000)的词符。生成过程采用top-40采样。表11、12、13展示了三个未经挑选的生成示例。

生成文本的特点
* 结构保持:能够结构化地维持维基百科的章节布局。
* 主题一致:在生成过程中能够语义上保持在同一主题。
* 长程引用:生成的文本中常见长距离引用。
* 内容新颖:经常生成训练数据中不存在的新内容。

具体示例分析
* 示例1(表11):模型虚构了棒球手Kershaw在Royals队的经历,并能正确追踪从2011到2013年的时间顺序,并引用了前文提到的“背伤”,展示了其捕捉长期依赖的能力。

表11:示例1 - XL使用Wikitext-103测试集片段作为初始上下文生成的500个词符。该样本是随机生成的,未经任何挑选。
表11:示例1 - XL使用Wikitext-103测试集片段作为初始上下文生成的500个词符。该样本是随机生成的,未经任何挑选。

* 示例2(表12):模型在完成种子上下文的段落后,能够识别主题结束并开始一个全新的维基百科页面(《The Tale of Mrs. Tittlemouse》)。它能从训练集中复制书名等相关信息,但虚构了新的内容,展示了泛化而非记忆的能力。
表12:示例2 - XL使用Wikitext-103测试集片段作为初始上下文生成的500个词符。该样本是随机生成的,未经任何挑选。
表12:示例2 - XL使用Wikitext-103测试集片段作为初始上下文生成的500个词符。该样本是随机生成的,未经任何挑选。

* 示例3(表13):即使在生成1000个词符的长文本中,模型依然能保持主题一致,并虚构了关于拿破仑战争的非真实故事。值得注意的是,模型正确地遵循了月份和日期的细粒度时间顺序来叙述1805年的事件。
表13:示例3 - XL使用Wikitext-103测试集片段作为初始上下文生成的1000个词符。该样本是随机生成的,未经任何挑选。
表13:示例3 - XL使用Wikitext-103测试集片段作为初始上下文生成的1000个词符。该样本是随机生成的,未经任何挑选。

局限性:尽管生成质量很高,但由于训练数据有限(仅1亿词符),模型只能基于种子上下文进行“幻觉”创作,有时生成的内容虽然相关但不够切题。作者认为这主要是训练数据规模的问题,可以通过使用更大的训练集来缓解。