Transformer-XL

义项:长上下文注意力模型架构
Transformer-XL

Transformer-XL是一种面向语言建模的长上下文注意力模型架构,其核心是在标准Transformer基础上引入片段级循环机制与相对位置编码,使模型能够利用超出固定窗口的历史信息。它由卡内基梅隆大学与谷歌研究人员在2019年提出,在多个语言建模数据集上刷新了当时的最好结果,其片段循环与相对位置编码两项设计其后被XLNet等预训练模型采用。[1][2]

目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

Transformer-XL是一个纯自注意力结构的神经语言模型架构,其名称中的XL表示“extra long”,意在让模型处理比原版Transformer长得多的上下文。[3]它并不改变注意力层的基本运算,而是通过两项配套设计,让模型在保持时间连贯性的前提下学到跨越固定长度的依赖关系:一项是把前一片段的隐状态缓存下来供后一片段使用的片段级循环机制,另一项是替换绝对编码的相对位置编码方案。[2]

该方法解决的是传统做法把长文本切成等长片段、逐段独立编码所带来的两个问题:一是依赖长度被片段长度封顶,二是切分点不落在语义边界上造成的上下文碎片化。论文报告,借助这一结构,模型可学到的依赖长度比循环神经网络长约80%,比原版Transformer长约450%,在评估阶段比原版Transformer快1800倍以上。[1]

原理

标准Transformer语言模型在一次前向计算中只能看到固定数目的token,序列更长时只能截断成若干片段分别处理,片段之间没有信息流动;同时其注意力计算量随序列长度呈平方增长,直接加长输入在算力与内存上都难以承受。[4]Transformer-XL沿用了自注意力的分层堆叠结构,但在训练与推理时让第$n$层在处理第$\tau+1$个片段时,额外读取第$n-1$层对第$\tau$个片段输出的缓存隐状态,把历史表示与当前片段拼接后一起参与键、值的计算。由于每一层都保留缓存,信息可以沿层与片段两个方向对角传递,若网络有$N$层、片段长$L$,可建模的最大依赖跨度约为$O(NL)$。[4]

缓存部分只用于前向计算,不参与反向传播,因此训练仍以单个片段为单位更新参数;这也意味着评估时无需像滑动窗口那样重复计算历史token,从而带来显著的速度提升。[5]在具体实现中,查询向量只由当前片段的表示得到,而键和值则来自历史缓存与当前片段拼接后的扩展上下文,这一区别是它与原版多头注意力的关键差异。[5]

单纯复用缓存会破坏位置关系:若前后片段都用同一套绝对位置编号,两个片段中相同序号的位置将无法区分,导致时序错乱。为此论文改用相对位置编码,以token之间的相对距离而非绝对位置来注入位置信息,并且采用固定嵌入配合可学习变换的形式,使得推理时可以泛化到训练阶段未见过的更长注意力跨度。片段循环与相对位置编码两者缺一不可,共同构成完整方案。[3]

发展历程

2019年1月,论文《Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context》以预印本形式公开,作者为戴自航、杨植麟、Yiming Yang、Jaime Carbonell、Quoc V. Le与Ruslan Salakhutdinov,工作由卡内基梅隆大学与谷歌的研究人员合作完成。[1][4]同年1月29日,谷歌研究博客对该架构及其性能做了介绍。该论文随后被ACL 2019收录为长文,代码、预训练模型与超参数同时以TensorFlow和PyTorch两种实现公开。[1][2]

在结果上,该方法把enwiki8的bpc从1.06降到0.99,text8从1.13降到1.08,WikiText-103的困惑度从20.5降到18.3,One Billion Word从23.7降到21.8,宾州树库在未微调情况下从55.3降到54.5。[2]论文作者之一在受访时提到,该工作最初投稿ICLR 2019曾被拒,评审认为提升语言建模指标缺乏直接应用价值,这一反馈促成了后续工作。[6]

其后,同一研究团队提出XLNet,把Transformer-XL的片段级循环与相对位置编码引入广义自回归预训练,并与排列语言模型结合,在多项自然语言处理任务上取得当时的最好成绩。[7]围绕长序列建模,后续又出现了在Transformer-XL记忆机制之上做压缩的Compressive Transformer等变体,用于进一步扩展可关注的历史范围。[8]

应用

Transformer-XL的主要用途是语言建模,即在给定前文的条件预测下一个token,其训练与评测覆盖字符级与词级、长序列与短序列的多类基准。由于缓解了长距离依赖的建模难题,它也被视为改进语言模型预训练方法的候选结构。

在生成任务上,仅在WikiText-103上训练的模型能够生成数千个token且结构较为连贯的新文本,作者还提出其在图像、语音等同样存在长程依赖的领域具有应用潜力。[1]更直接的影响体现在预训练模型上:XLNet沿用其片段循环与相对位置编码思路,使其在长文本建模时能够利用前文片段的信息。[7]

局限

记忆窗口并非无限。模型虽然可以缓存多个历史片段,但可保存的历史长度受显存容量限制,注意力仍要在当前片段与缓存之间计算,缓存越长计算与存储开销越大;Compressive Transformer的作者即指出,此类方法需要更长的记忆窗口才能覆盖更早的信息,而代价随窗口增长而上升。[8][9]后续工作也指出,按片段压缩记忆的方法会丢弃较早片段的条目以腾出空间,上下文范围因此被限制在最近若干片段。[10]

片段级循环本身只带来线性的有效上下文扩展,最大跨度约为层数与片段长度之积,并不是对任意长度序列的原生建模。[4]缓存状态不参与反向传播,也使模型无法像循环网络那样通过时间反向传播来端到端调优长程记忆。此外,有研究对原架构的记忆布置做了消融,发现并非每一层都需要保留长程记忆,只用部分层的记忆即可接近全量配置的表现,说明其记忆分配并非最优。[11]

在该架构被提出的阶段,它的目标是无条件语言建模与表示学习,本身并不是面向具体下游任务的通用框架,这一点在其投稿评审意见中曾被提及。[6]

参见

  • Transformer —— Transformer-XL所基于的原始注意力网络架构。

  • XLNet —— 将Transformer-XL的片段循环与相对位置编码用于预训练的广义自回归模型。

  • 相对位置编码 —— 使历史片段得以复用的位置信息注入方式。

  • 循环神经网络 —— 同样用于序列建模、以循环结构处理历史信息的网络。

  • Compressive Transformer —— 在Transformer-XL记忆机制上引入压缩的后续变体。

参考资料

  1. abstract [引用日期2026-10-29]
  2. las.ac.cn 上的网页 [引用日期2026-10-29]
  3. Transformer-XL [引用日期2026-10-29]
  4. [预训练语言模型专题] Transformer-XL 超长上下文注意力模型 [引用日期2026-10-29]
  5. arxiv.org 上的网页 [引用日期2026-10-29]
  6. 他们创造了横扫NLP的XLNet:专访CMU博士杨植麟 [引用日期2026-10-29]
  7. 2019年开始的顶级AI项目和机器学习研究论文 [引用日期2026-10-29]
  8. compressive-transformer-pytorch [引用日期2026-10-29]
  9. Compressive Transformer 详解:基于 Transformer XL 的记忆压缩长序列建模实现 [引用日期2026-10-29]
  10. arxiv.org 上的网页 [引用日期2026-10-29]
  11. 2007/2007.03356.md · huggingchat/papers-content [引用日期2026-10-29]
词条评价
词条统计

浏览次数:0 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-28T18:31:02Z

历史版本

本条目引用的词条
卡内基梅隆大学 排列语言模型 Transformer XLNet 相对位置编码 循环神经网络 Compressive Transformer