Longformer: The Long-Document Transformer
Allen AI 研究院
Abstract
Longformer提供了一种attention机制,可以直接作为传统transformer的替代。
Longformer的attention由local window attention + global attention组成。
Task:MLM
Dataset:text8 and enwik8
Introduction
动机1: transformer的有效性,但却有平方级的计算量
动机2: 之前对于长文本的处理都是先对文本进行分段,显然这样的分段会损失掉段与段之间的交互信息,所以再针对特征的任务对段与段之间的交互进行处理。
本文解决: 多层attention(三种attention patten)叠加,扩大感受野,从而对全局文本信息进行表达。
local window attention: 提供类似于CNN的inductive bias
global attention:全局文本表达
Related works
其他方法的不足:
left-to-right :用于自回归模型、很难进行迁移学习
Sparse Transformer: 使用8*8的窗口滑块,都使用了自定义的CUDA内核,但是本文用的TVM更易维护
针对特定任务的方法:不够灵活,提供了global attention解决这个问题
Models
Sliding window
把长文本分成很多个chunk,每个chunk的大小是2w,其中前w个与前一个chunk重叠,每个chunk做self-attention,然后再把这些chunk的结果合并成这样的对角线形式。
窗口大小w,encoder层数l,感受野大小l*w
Dilated Sliding Window
和dilated CNN一样,加了个空洞步长d,感受野大小变为:l * d * w
Global Attention
针对特定任务自然语言任务
如:文本分类,需要在Token前加一个 [CLS] token;QA任务,需要问题和回答拼接起来做self-attention,Sliding window提供的attention不足以更好的处理这些任务。
解决:引入Global Attention, 对某些指定的Token做Global Attention,然后再与local attention相加。
这里其实有一个问题,当选择了全部token进行global attention,那本次计算消耗仍然是n的平方级,所以好像没那么适合用于QA任务,所以最好不是所有层都做global attention,并且选择token的时候也尽可能少;
Autoregressive Language Modeling
将该模型用于自回归语言建模,即MLM。
- 每层使用不同的window size, 底层w较小,高层w越高,这样做使得高层更专注于获得更多的全局表达、底层更专注于局部attention,同时也平衡了效率和性能。
- 只对高层encoder的两个head使用dilated sliding window。
Experiment
Ablation study
Pretrain