Longformer: The Long-Document Transformer

1 简介

本文根据2020年《Longformer: The Long-Document Transformer》翻译总结的。

以前的基于Transformer的模型,不能处理长序列,因为自注意力机制是序列长度的二次方。Longformer将计算复杂度减为O(n)

Longformer的注意力机制是 windowed local-context self-attention 和基于终端任务的global attention的结合。Local attention主要用来构建上下文表达,而global attention用来建立用于预测的全序列表达。

2 Longformer

Longformer: The Long-Document Transformer_第1张图片

2.1 Sliding window

如上图b,对角线部分,我们采样一个固定大小的window attention围绕每一个token。如window 的大小是w,那么每个token在每一边关注1/2 w的token。

采用多层堆叠,就行CNN网络,上面的层就拥有融合整个输入的能力;比如一个L层的transformer,顶层的感受域大小是L*w(假定每层的w是一样的)。

整个计算复杂度是O(n*w),而不是n的二次方。

实验中,我们在底层使用较小的windows size,然后随着层高逐渐增加window size。这样高层捕获整个序列的特征,而底层捕获local 信息。

2.2 扩大的(Dilated )Sliding Window

如上图c,我们可以扩大sliding window。Window有空隙,大小d。这样感受域就变为L* d* w。在多头注意力,每个注意力头计算不同的注意力分数。我们发现每个头设置不同的扩大参数可以改善效果,一些不带扩大参数的头聚焦local context,而一些带着扩大参数的头聚焦更长的context。

在模型底层,我们没有使用扩大参数,以使其更好的捕获local context;在更高的层,我们仅在两个头使用了扩大参数。

2.3 Global Attention

Window和扩大的attention不是足够灵活的来学习下游任务,为此我们引入global attention。我们挑选少量的token进行global关注。上图d,显示了一个例子。在分类任务中,我们在[CLS]token上使用global attention;在QA任务上,是在所以问题token上使用global attention。这种global attention参与的token很少,所以不影响计算复杂度,模型的计算复杂度依然是O(n).

3 实验

训练时,我们采用多步训练方法,在开始阶段使用较短的序列长度和window size,在后面阶段我们将window size和序列长度翻倍,同时将学习率减半。

Ablation study:从低层到顶层逐渐增加window size 效果会好些;有扩大(dilation)的window
效果会好些。
Longformer: The Long-Document Transformer_第2张图片

实验结果如下,可以看到longformer表现更好,尤其像在WikiHop这种存在较多长序列的任务上。

Longformer: The Long-Document Transformer_第3张图片

你可能感兴趣的:(Attention,transformer,NLP,transformer,深度学习,人工智能)