赶上最新的AI论文

长变形器:变形器的改进版,可处理较长的序列

长变形器:变形器的改进版,可处理较长的序列

BERT

三个要点
✔️ 针对高效处理长序列的挑战提出了解决方案
✔️ 使用三种注意力:滑动窗口注意力、稀释滑动窗口注意力和全局注意力降低了 Transformern 的计算复杂度
✔️ 提高了以长句子为输入的任务的准确性

Longformer: The Long-Document Transformer
written by Iz BeltagyMatthew E. PetersArman Cohan
(Submitted on 10 Apr 2020 (v1), last revised 2 Dec 2020 (this version, v2))
Comments: Version 2 introduces the Longformer-Encoder-Decoder (LED) model

Subjects:  Computation and Language (cs.CL)

code:  

本文所使用的图片要么来自论文、介绍性幻灯片,要么是参考这些图片制作的。

概述

Longformer 尝试通过设计注意力来解决以下问题:Transformer 自我注意力的计算复杂度为 $O(n^2)$,当包含长句时,内存使用量会随着输入量的增加而呈四倍增长。

变形金刚有哪些问题?

变换器的计算复杂度随输入序列的增加而呈二次曲线增加。这导致计算时间和内存占用非常长。

Transformer 的计算复杂度随输入序列的增加而呈二次方增长,其原因在于 Transformer 的主要部分--缩放点积自注意力(Scaled Dot-Product Self-Attention)。首先,Scaled Dot-Product Self-Attention 使用查询键值对计算 Attention。换句话说,缩放点积自注意力的计算公式使用查询、键和值($Q, K, V$)来计算注意力。

$$Attention(Q, K, V) = softmax(\frac{QK^T}{sqrt{d_k}}V)$$.

查询用 $n$ 表示。查询和值(Q,V)的乘积是文档长度($n$)的平方。因此,在输入 2046 个词组的情况下,用于计算注意力的矩阵大小为 2024*2024,这意味着在计算注意力时需要处理一个包含约 410 万个元素的矩阵。

批处理规模的计算量非常大,内存容量也是一个主要问题。长变换器是本文的主题,它解决了变换器的计算复杂度随输入序列的平方而增加的问题。

什么是 Longformer?

在缩放点积自我注意中,注意力从每个单词指向每个单词,导致计算量和内存使用量都达到了 $n^2$。因此,我们提出了一种装置,尽可能只将注意力从重要单词引导到重要单词。

事实上,如下图所示,所需的计算时间和内存空间要少得多。

Longformer 学习创新

本节介绍 Longformer 中的注意力设计。具体来说,我们提出了三种注意力设计。

(a) 全面关注 $n^2$

Trasformer 中使用的缩放点积自我注意力。因此,注意力会从每个单词转移到每个单词。

(b) 注意推拉窗。

滑动窗口注意力只指向自身附近的注意力。内存的使用量可以根据此时注意力所指向的单词数来计算。所用内存的具体变化量为窗口大小为 $w$ 的自身左右两侧的 $\frac{1}{2}w$单词,因此所用内存量与文档长度成线性关系,当文档长度为 $n$ 时,计算量为 $O(nw)$。计算复杂度为 $O(nw)$。

各层的窗口大小 $w$ 设置不同。具体来说,在下游层减小窗口大小 $w$,在上游层增大窗口大小 $w$。这样可以

- 下游层收集本地信息
- 上游层收集整体信息

其效果与

(c) 扩张的滑动窗口。

稀释滑动窗口是一种在保持较低计算复杂度的前提下,通过定时跳过单词,不仅能将注意力引导到近处,还能将注意力引导到中等距离处的方法。在本文中,跳过单词的意义用 $d$ 作为间隙大小来表示。通过跳过 $d$ 单词并改变每个多头注意力的 $d$ 值,似乎也能提高性能。

不过,扩展滑动窗口并没有在下游层收集局部信息,而是仅限于上层的两个头部。
这是因为经过实验,结果表明增加窗口大小可以提高准确度,而且只限于上层的两个 Heads 比不限制窗口大小更准确,如下图所示。

(d) 全局+滑动窗口

这是 "全局注意 "和 "滑动窗口注意 "的结合,而在 "滑动窗口注意 "中,"注意 "不是指向所有单词,而是只指向自己周围的单词。全局注意力则是针对某个特定的单词,将注意力引向所有单词,而针对任何单词,则将注意力引向该特定单词。

更具体地说,在 BERT 中,[CLS] 这个特殊标记被用来划分文档的类别。我们的想法是,当[CLS]在位时,Attention 应该指向所有单词,而对于[CLS]以外的单词,Attention 应该指向[CLS]。这样,[CLS] 就能将注意力引向所有单词,并在对文档进行分类时获得整句特征。这种全局注意力的计算复杂度为 $O(n)$,因为我们只讨论特定的单词位置。

据称,这种全局注意力应该与滑动窗口注意力一起使用。

此外,对于 "全局注意力 "和 "滑动窗口注意力",计算 "注意力 "时并不像在 Transformer 中那样使用单一的 $(Q,K,V)$,而是使用它们各自的线性映射。这样,模型就能灵活适应每种注意力,并在下游任务中表现出更好的性能。

提高每项任务的准确性

培训评估模型

在训练一个用于评估的模型时,要分五个阶段进行训练。训练模型的理想方法是使用 GPU 内存中最大的窗口大小和序列长度来训练模型。然而,在长上下文中进行训练时,这是不可能的。此外,在训练的早期阶段,需要执行许多梯度更新,而从短序列开始、设置较低的学习率和减小窗口大小可以高效地完成训练。因此,在本研究中,学习分五个阶段进行,开始序列长度为 2,048 个,结束序列长度为 23,040 个。

在模型训练的每个阶段,每个参数的设定值都达到了最佳性能,详情如下。

学习成果

其学习效果优于旧的 Transformer 和试图改进 Transformer 的 Reformer。

BERT 中的验证

BERT 的一个突破是逐个任务进行精确度比较,这在 Reformer 和其他系统中是没有的。据此,几乎所有任务都实现了高精度。

使用 RoBERTa 进行微调的结果被用于验证。但是,RoBERTa 只有 512 个位置嵌入,因此需要复制 8 个位置嵌入来容纳 4096 个字。尽管它很简单,但据称却非常有效,这显然是因为复制消除了分区边界。

BERT 的验证结果

对 BERT 相关模型中每项任务的评估如下

每项任务由以下人员执行

WikiHop:.
阅读多份文件并拼凑信息以回答问题的任务。

TriviaQA:
一个数据集的一个实例包括一个问题、一个答案和一个理由。

HotpotQA:
阅读多份文件并将信息联系起来回答问题的任务。

本体注释(核心参照解析):
查找和映射指代同一事物的两个或多个单词的任务。

IMDB:
电影评论数据集中相对较短文本的分类任务。

超党派:
新闻数据集中相对较长句子的分类任务。

在每项任务中,Longformer 都能很好地处理所有数据集,证明了 Longformer 的实用性。

摘要

Longformer 是一种基于 Transformer 的可扩展模型,用于处理长文档,也是一种机制,可轻松执行各种文档级 NLP 任务,而无需对长输入进行分块或缩短,也无需使用复杂的架构来组合各块信息。Longformer 结合了本地和全局信息,以及三种注意力(滑动窗口注意力、放大滑动窗口注意力和全局注意力)。窗口注意和全局注意)。Longformer 还在 text8 和 enwik8 任务中取得了最佳性能。此外,Longformer 在长文档任务中的表现一直优于 RoBERTa,并且在预训练后的 WikiHop 和 TriviaQA 任务中表现最佳。

  • メルマガ登録(ver
  • ライター
  • エンジニア_大募集!!

如果您对文章内容有任何改进建议等,请通过 "联系我们 "表格与爱学网编辑部联系。
如果您能通过咨询表与我们联系,我们将非常感激。

联系我们