XYZNOT

论文 · arXiv 2104.09864

RoFormer:基于旋转位置嵌入的增强型 Transformer

RoFormer: Enhanced Transformer with Rotary Position Embedding

发表于 cs.CLcs.AIcs.LG arXivPDF

用 XYZNOT 阅读(全文翻译与 AI 讲解)

三句话总结

  1. 🎯 标准位置嵌入要么是加性绝对向量,要么是破坏与线性自注意力兼容性的相对修正项。
  2. 🔧 RoPE 将查询和键向量乘以正交的分块对角旋转矩阵,使得它们的内积仅取决于 token 之间的相对距离。
  3. 📈 在 WMT 2014 英德翻译任务上达到 27.5 BLEU,预训练期间收敛更快,且在序列长度为 1024 时于 CAIL2019-SCM 上的准确率比 WoBERT 高出 1.5%。

摘要

近年来,位置编码在 Transformer 架构中展现出显著的有效性。它为序列中不同位置元素之间的依赖关系建模提供了宝贵的监督信号。在本文中,我们首先调研了将位置信息整合到基于 Transformer 的语言模型学习过程中的各种方法。随后,我们提出了一种名为旋转位置嵌入(RoPE)的新方法,以有效利用位置信息。具体而言,所提出的 RoPE 通过旋转矩阵对绝对位置进行编码,同时在自注意力公式中显式引入了相对位置依赖。值得注意的是,RoPE 具备许多优良特性,包括灵活的序列长度外推能力、随相对距离增加而衰减的 token 间依赖性,以及赋予线性自注意力相对位置编码的能力。最后,我们在多个长文本分类基准数据集上对配备旋转位置嵌入的增强型 Transformer(即 RoFormer)进行了评估。实验表明,该模型始终优于现有替代方案。此外,我们还提供了理论分析来解释部分实验结果。RoFormer 已集成至 Huggingface:\url{https://huggingface.co/docs/transformers/model_doc/roformer}。

英文原文摘要

Position encoding recently has shown effective in the transformer architecture. It enables valuable supervision for dependency modeling between elements at different positions of the sequence. In this paper, we first investigate various methods to integrate positional information into the learning process of transformer-based language models. Then, we propose a novel method named Rotary Position Embedding(RoPE) to effectively leverage the positional information. Specifically, the proposed RoPE encodes the absolute position with a rotation matrix and meanwhile incorporates the explicit relative position dependency in self-attention formulation. Notably, RoPE enables valuable properties, including the flexibility of sequence length, decaying inter-token dependency with increasing relative distances, and the capability of equipping the linear self-attention with relative position encoding. Finally, we evaluate the enhanced transformer with rotary position embedding, also called RoFormer, on various long text classification benchmark datasets. Our experiments show that it consistently overcomes its alternatives. Furthermore, we provide a theoretical analysis to explain some experimental results. RoFormer is already integrated into Huggingface: \url{https://huggingface.co/docs/transformers/model_doc/roformer}.

论文解读

问题与动机

Transformer 中的自注意力机制本质上具有置换不变性,因此需要显式的位置信息。以往的方法大致可分为两类:直接与词表示相加的绝对位置嵌入(可学习的或固定的正弦向量),以及集成到注意力矩阵中的相对位置嵌入(例如 Shaw 等人、Transformer-XL、T5、DeBERTa)。然而,现有的相对位置方法大多依赖于加性分解来修改中间注意力 logits,这导致它们无法与需要可分解表示的基于核函数的线性自注意力机制兼容。此外,许多模型往往难以在可变序列长度之间无缝扩展。

核心思想

  • 通过向量旋转建模相对距离:RoPE 不采用相加位置向量的方式,而是对经过仿射变换后的 query 和 key 应用与位置相关的旋转矩阵。索引 处的旋转 query 与索引 处的旋转 key 之间的内积自然仅取决于相对距离 。
  • 正交性与范数保持:由于旋转算子是正交的,它能够保持 query 和 key 的欧氏范数,从而稳定隐层状态。
  • 远程衰减:基于正弦频率缩放,token 之间的交互会随着相对距离的增加自然衰减,契合了距离较远的 token 之间依赖性更弱的语言学直觉。
  • 兼容线性注意力:由于位置信息是在计算点积之前直接应用于 token 向量上的,因此 RoPE 可以与基于核函数的线性注意力(如 Performer)无缝结合。

方法(及核心公式)

目标是寻找映射函数 和 ,使其内积仅取决于词嵌入和相对距离:

在二维子空间中,将实数向量视为复数即可得到解:

对于偶数维度的嵌入维度 ,将空间划分为 个二维子空间,其频率集合为 。通用的变换采用分块对角旋转矩阵 :

由此产生的计算位置 与 之间的注意力得分满足:

为了高效计算而无需进行稀疏矩阵乘法,RoPE 通过逐元素操作实现:

结果(及重要指标)

  • 机器翻译:在 WMT 2014 英德翻译任务中,RoFormer 达到了 27.5 BLEU,优于 Transformer-base 基线(27.3 BLEU)。
  • 预训练收敛速度:在 BookCorpus 和 Wikipedia 上使用 RoPE 训练 BERT-base 时,RoFormer 相比原生 BERT 收敛更快,且达到了更低的掩码语言建模(MLM)损失。
  • GLUE 微调:预训练的 RoFormer 在下游任务 MRPC(89.5 vs. 88.9 F1)、STS-B(87.0 vs. 85.8 Spearman)和 QQP(86.4 vs. 71.2 F1)上取得了显著提升,但在 SST-2(90.7 vs. 93.5)、QNLI(88.0 vs. 90.5)和 MNLI-m/mm(80.2/79.8 vs. 84.6/83.4)上略低于 BERT。
  • 线性注意力(Performer):在 Enwik8 数据集上,为 12 层的字符级 Performer 加入 RoPE 能够显著加快收敛速度并降低训练损失。
  • 长文本语义匹配:在 CAIL2019-SCM 上,RoFormer-512 取得了 68.29% 的测试准确率(BERT-512 为 67.77%,WoBERT-512 为 68.10%)。当上下文扩展到 RoFormer-1024 时,测试准确率提升至 69.79%(相比 WoBERT-512 带来了 1.5% 的绝对提升)。

局限性与开放问题

  • 论文指出,与加性位置编码方案相比,目前仍缺乏充分的理论解释来阐明为何二维旋转公式在预训练期间收敛更快。
  • 尽管从数学上证明了远程衰减特性,但 RoFormer 为何在长序列上的泛化能力显著优于同类模型仍是一个开放问题。
  • 评估大规模预训练下的 RoFormer 需要巨大的 GPU 算力,更广泛的扩展规律(scaling properties)仍有待后续研究。

关键术语

Rotary Position Embedding (RoPE)
一种位置编码机制,通过将 query 和 key 的表示与正交分块对角旋转矩阵相乘来注入位置信息。
RoFormer
一种配备了旋转位置嵌入(RoPE)而非标准绝对或加性相对位置编码的 Transformer 架构。
Long-term Decay
随着相对位置距离 增大,query 和 key 的内积逐渐减小的数学特性。
Linear Attention
通过计算核特征映射来改变矩阵乘法顺序,从而实现线性 计算复杂度的注意力机制。
PerFormer
一种线性注意力 Transformer 架构,论文用其证明 RoPE 能够无缝赋予线性注意力相对位置信息。
CAIL2019-SCM
中国法研杯 2019 相似案例匹配基准,包含法律案件三元组,用于评估模型处理超过 512 词的长文本建模能力。
WoBERT
一种基于词级别的中文 BERT 模型,在中文语料库上被用作对比基准以及 RoFormer 的预训练基础。

常见问题

RoPE 与标准的正弦位置嵌入有何不同?

正弦嵌入是在线性投影之前加到输入的 token 向量上;而 RoPE 是以乘法形式作为旋转算子,直接作用于注意力层内部的 query 和 key 投影上。

为什么 RoPE 能与线性自注意力兼容,而其他相对编码不能?

现有的相对编码通常在 softmax 操作内部修改成对的注意力 logits,这破坏了线性注意力所需的因式分解形式。RoPE 则是在不改变范数的前提下单独旋转 query 和 key 向量,使线性注意力的核方法能够正常运作。

应用 RoPE 是否需要与 $R^d_{\Theta, m}$ 进行稠密矩阵乘法?

不需要。因为 是由 分块组成的稀疏对角分块矩阵,在计算实现上只需使用余弦和正弦向量进行逐元素相乘并按位相加重组即可。

RoFormer 在扩展到更长上下文时表现如何?

在 CAIL2019-SCM 基准上,将上下文长度从 512 扩展到 1024 时,RoFormer 的测试准确率从 68.29% 提升至 69.79%,展现出强大的长度泛化能力。

本页解读由 AI 根据论文生成,可能有错误;细节请以原文为准。

用 XYZNOT 阅读(全文翻译与 AI 讲解)