LongFormer:用稀疏自注意力拓展模型文本容纳量
論文標題:
Longformer: The Long-Document Transformer
論文作者:
Iz Beltagy (AllenAI), Matthew E. Peters (AllenAI), Arman Cohan (AllenAI)
論文鏈接:
https://arxiv.org/pdf/2004.05150.pdf
代碼鏈接:
https://github.com/allenai/longformer
盡管Self-Attention可以建模長距離文本,但由于時空復雜度都為平方級,從而它無法一次處理較長的文本。
BERT的處理方法是,將文本截斷為512的長度,如此一來,雖然模型可以分段處理,但數(shù)據(jù)的預處理也是相當麻煩的。
本文采用局部自注意力和全局自注意力結(jié)合的方式(或簡稱為稀疏注意力),同時為其進行了CUDA優(yōu)化,從而使得模型最大能夠容納長度上萬的文本,同時還能實現(xiàn)更好的結(jié)果。
自注意力機制的缺陷
眾所周知,Transformer 的 Self-Attention 有一大優(yōu)點一大缺點:優(yōu)點是它能在理論上建模任意長的文本,缺點是實踐中過長的文本會導致內(nèi)存爆炸。
這是因為,自注意力的時空復雜度都是平方級的,文本越長,空間消耗就顯著更大,所以在實際使用的時候,通常把句子長度截短到512,然后分段送入模型。
這種方法雖然可以在一定程度上解決內(nèi)存不足的問題,但是:
它回避了Self-Attention的固有缺陷,只是一種暫緩之計;
這種方法非常麻煩,需要預處理數(shù)據(jù)集;
很多任務都包含大量長文本,實際需要要求我們能夠一次性處理它們。
基于以上現(xiàn)狀和自注意力的固有缺陷,本文提出結(jié)合局部自注意力和全局自注意力,在提高效率的同時又不失效果。
和之前的許多工作相比,本文沒有在具體技術(shù)上有太大創(chuàng)新,但是本文首次將這種稀疏自注意力應用到了三種包含長文本的任務上:問答、共指消解和文檔分類,并證明了其有效性。
此外,本文還基于TVM實現(xiàn)了稀疏自注意力的CUDA優(yōu)化并開源,造福廣大研究者!
總的來說,本文有如下貢獻:
通過大量實驗(語言模型、問答、共指消解、文檔分類)證明了稀疏自注意力的有效性,甚至優(yōu)于原版自注意力;
基于TVM實現(xiàn)了稀疏自注意力的CUDA優(yōu)化,加快了實際應用的使用速度;
開源代碼,便于復現(xiàn)論文結(jié)果。
稀疏自注意力
在此之前已經(jīng)有許多關(guān)于稀疏自注意力的工作,本文使用簡單的CNN局部自注意力實現(xiàn),如下圖所示。
圖1是原版自注意力(每個字符都能關(guān)注其他所有字符),圖2是基于CNN的局部自注意力(以窗口的形式移動,每個窗口內(nèi)的字符可以互相關(guān)注),圖3是基于Dilated CNN的局部自注意力(跨越式滑動窗口),圖4是結(jié)合局部自注意力和全局自注意力的稀疏自注意力。
其中,“全局”的意思是,讓小部分字符既能關(guān)注其他所有字符,又能讓其他所有字符關(guān)注它。如果這些字符的數(shù)量很小,那么整體也可以看成是O(n)復雜度的。
在具體使用的時候,本文設置兩套映射矩陣Q,K,V,一套用于CNN局部自注意力Q_s,K_s,V_s,另一套用于全局注意力Q_g,K_g,V_g。
同時,在模型底層使用較小的CNN窗口大小,以建模局部信息;在高層使用較大的CNN大小,以擴大感受野。
使用圖4的稀疏自注意力,可以看到,有大量的“白色方塊”,表示不需要關(guān)注,而隨著文本長度的增加,這種白色方塊的數(shù)量會呈平方級增加,所以實際上我們需要的“綠色方塊”數(shù)量是很少的。
為了讓稀疏自注意力適應當前深度學習框架,本文還基于TVM實現(xiàn)了對其的CUDA優(yōu)化,極大提升了實際使用的效率。
下圖是使用CUDA優(yōu)化的稀疏自注意力(Longformer)、原版自注意力(Full Self-attention)和未使用CUDA優(yōu)化的稀疏自注意力(Naive Pytorch)在時間復雜度和空間復雜度上的比較。
可以看到,LongFormer能夠取得最佳的時空復雜度。
實驗
本文在語言模型、問答、共指消解和文檔分類任務上進行實驗,驗證LongFormer在長文本上的效果。
語言模型任務
語言模型使用數(shù)據(jù)集text8和enwik8,按階段訓練LongFormer。在測評時,在長度為32256長的文本上進行,其他設置詳見原文。
下表是實驗結(jié)果。可以看到,在參數(shù)量相近的情況下,Longformer取得了略好的結(jié)果,但由于一次可容納的最大文本長度大大增加了,測試的時間也會有所縮短(表中未給出)。
下表是LongFormer中局部自注意力窗口大小隨模型深度變化情況帶來的最終效果,可以看到,由底層到高層降低感受野的方法效果最差,而由底層到高層增加感受野的方法效果最好;并且為2個頭使用Dilated的方法可以更好一些。
問答、共指消解與文檔分類任務
在進行這三個任務之前,LongFormer首先需要預訓練。為此,模型在RoBERTa上繼續(xù)預訓練,預訓練語料主要包含了一些長文本。
在預訓練之后,再在具體任務上微調(diào)。這里略去預訓練細節(jié),有興趣的讀者可以參考原文Section 5。
問答的數(shù)據(jù)集有WikiHop, TriviaQA和HotpotQA,共指消解的數(shù)據(jù)集有OntoNotes,文檔分類的數(shù)據(jù)集有IMDB和Hyperpartisan。
問答的三個數(shù)據(jù)集都有很長的文本長度,RoBERTa需要對其切分,而LongFormer直接把一個問答任務中的問題和所有文檔拼接起來,不需要再切分。
對另外兩個任務也是同樣的操作。基線模型是RoBERTa。
下面是在這三個任務上總的結(jié)果。
可以看到,LongFormer在這些任務上都或多或少超過了基線模型,尤其是在需要長距離上下文的數(shù)據(jù)集上,如WikiHop和Hyperpartisan。
下表是LongFormer在HotPotQA上的表現(xiàn),當前該數(shù)據(jù)集表現(xiàn)最佳的模型是多階段+圖網(wǎng)絡,而從表中可以看到,單階段的LongFormer也能有69.5的F1值,二階段的模型有71.4的F1值,已經(jīng)比較接近當前最佳結(jié)果。
最后來看看因子分析實驗,數(shù)據(jù)集為WikiHop。從表中可以看到,對LongFormer影響最大的是全局注意力、局部注意力和兩套映射矩陣。
值得注意的是,當LongFormer和RoBERTa同樣采用512的長度和原版自注意力時,效果還不僅RoBERTa,盡管LongFormer在更多的語料上預訓練了,這說明LongFormer的效果增強并不來自于預訓練。
小結(jié)
本文提出了一種綜合的稀疏自注意力模型——LongFormer,利用局部自注意力和全局自注意力在大幅降低空間復雜度的情況下提高模型效果。
LongFormer可以直接吞進長文本,而不需要像BERT類模型一樣對其強行截短,這就有利于那些需要建模長距離語義的任務。
在語言模型、問答、共指消解和文檔分類任務上,LongFormer展現(xiàn)出了它強壯的一面,也為稀疏自注意力的研究帶來新的可能性,我們期待它能在更多任務上取得好的表現(xiàn)。
????
現(xiàn)在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關(guān)注」訂閱我們的專欄吧
關(guān)于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術(shù)平臺。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結(jié)
以上是生活随笔為你收集整理的LongFormer:用稀疏自注意力拓展模型文本容纳量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米造车总部设在哪里 很有可能在他的家乡
- 下一篇: 玩家制作 Mod 将《黑神话:悟空》变为