謝亦才
摘要:Transformer在自然語言處理、計算機視覺和音頻處理等人工智能領(lǐng)域取得了巨大的成功。學(xué)術(shù)界和產(chǎn)業(yè)界研究者設(shè)計出了各種各樣的Transformer(又稱X-formers)。然而,關(guān)于這些Transformer的系統(tǒng)全面的文獻綜述仍然缺乏。在本綜述中,首先簡要介紹了vanilla Transformer,然后提出了一種新的X-formers分類法。接下來,從架構(gòu)修改、預(yù)訓(xùn)練和應(yīng)用三個角度介紹了各種X-former。最后,概述了未來研究的一些潛在方向。
關(guān)鍵詞:Transformer;架構(gòu)修改;預(yù)訓(xùn)練
中圖分類號:TP311? ? 文獻標(biāo)識碼:A
文章編號:1009-3044(2022)03-0084-03
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
1 引言
Transformer[1]是一種著名的深度學(xué)習(xí)模型,在許多領(lǐng)域都被廣泛采用,比如自然語言處理(NLP)、計算機視覺(CV)和語音處理等領(lǐng)域。Transformer最初是作為機器翻譯的序列到序列模型提出的。后來的工作表明,基于Transformer的預(yù)訓(xùn)練模型(PTM)[2]可以在各種任務(wù)上實現(xiàn)最先進的性能。因此,Transformer成了NLP的首選體系結(jié)構(gòu),尤其是PTMs。除了與語言相關(guān)的應(yīng)用程序外,Transformer在CV[3],音頻處理[4]甚至其他學(xué)科中也被采用,比如化學(xué)和生命科學(xué)。
在本概述中,目的是提供一個全面的回歸Transformer及其變種。雖然可以在上述觀點的基礎(chǔ)上組織X-former,但許多現(xiàn)有的X-former可以解決一個或多個問題。例如,稀疏注意變量不僅降低了計算復(fù)雜度,而且在輸入數(shù)據(jù)上引入了結(jié)構(gòu)先驗,以緩解小數(shù)據(jù)集上的過擬合問題。因此,對現(xiàn)有的各種X-former進行分類并提出一種新的分類法,主要是根據(jù)它們改進vanilla Transformer的方法:架構(gòu)修改、預(yù)培訓(xùn)和應(yīng)用進行分類。考慮到概述的對象可能來自不同的領(lǐng)域,主要關(guān)注一般的體系結(jié)構(gòu)變體,并簡要討論了預(yù)訓(xùn)練和應(yīng)用的具體變體。
2 Transformer分類
到目前為止,基于vanilla Transformer已經(jīng)從三個角度提出了各種各樣的變種模型:體系結(jié)構(gòu)的變種、預(yù)訓(xùn)練方法變種和應(yīng)用變種。如圖1所示。
2.1 基于注意力機制改進的Transformer變種
自注意力機制在Transformer中起著重要的作用,但在實際應(yīng)用中存在兩個挑戰(zhàn)。
(1)復(fù)雜度。自注意力的復(fù)雜度是O(T2·D)。 因此,注意力模塊在處理長序列時成為瓶頸。
(2)結(jié)構(gòu)優(yōu)先。自注意力不假定對輸入有任何結(jié)構(gòu)性偏見。甚至順序信息也需要從訓(xùn)練數(shù)據(jù)中學(xué)習(xí)。因此,Transformer(不帶預(yù)訓(xùn)練)通常很容易對小或中等大小的數(shù)據(jù)過擬合。
Transformer中注意力機制的改進可以分為幾個方向:
(1)稀疏注意力。這項工作將稀疏性偏差引入注意力機制,從而降低了復(fù)雜性。
(2)線性化注意力。這一工作解開了注意力矩陣與核心特征地圖。然后以相反的順序計算注意力,以獲得線性復(fù)雜度。
(3)原型和內(nèi)存壓縮。這類改進方法減少了查詢或鍵值對內(nèi)存的數(shù)量,以減小注意矩陣的大小。
(4)低級別的自注意力。這項工作抓住了自注意力的低級屬性。
(5)先驗注意力。這項研究探索補充或取代標(biāo)準(zhǔn)注意與先前的注意分布。
(6)改進的多頭注意力。這項研究探索了不同的替代性多頭注意力機制。
2.2 Transformer架構(gòu)層面的變種
2.2.1 Transformer輕量化
除了在模塊級別上為減輕計算開銷所做的努力之外,還有一些嘗試通過在更高級別上的修改使Transformer變得輕量級。類似于低階自注意力[5]將注意分解為局部約束注意和低階全局注意,Lite Transformer建議替換每個注意具有雙分支結(jié)構(gòu)的Transformer中的模塊,其中一個分支使用注意力來捕獲遠程上下文,而另一個分支使用深度卷積和線性層來捕獲局部依賴性。該體系結(jié)構(gòu)在模型尺寸和計算方面都是輕量級的,因此更適合于移動設(shè)備。
2.2.2 增強跨模塊的連接線
在vanilla Transformer中,每個塊將前一個塊的輸出作為輸入,并輸出一系列隱藏表示。人們可能會創(chuàng)建更多的路徑使輸入信號可以通過網(wǎng)絡(luò)傳輸。例如realeformer和Predictive Attention Transformer,它們將注意力分布從上一個塊重用到下一個塊引導(dǎo)當(dāng)前塊的注意。這可以看作是在相鄰Transformer塊之間創(chuàng)建正向路徑。
2.2.3 自適應(yīng)計算時間
像大多數(shù)神經(jīng)模型一樣,Vanilla Transformer使用固定的(學(xué)習(xí)的)計算過程來處理每個輸入。一個有趣的和有希望的修改是以計算時間為輸入的一個條件,即在Transformer模型中引入自適應(yīng)計算時間(ACT)。此類修改可能產(chǎn)生以下優(yōu)點:
(1)特征細(xì)化。對于難以處理的數(shù)據(jù),簡單的表示可能不足以應(yīng)對當(dāng)前的任務(wù)。更理想的做法是應(yīng)用更多計算以獲得更深入和更精細(xì)的表示。
(2)提高效率。在處理簡單的示例時,一個淺層特征的表示可能就足夠了。在這種情況下,如果網(wǎng)絡(luò)能夠?qū)W習(xí)使用更少的計算時間來提取特征,這將是有益的。
2.2.4 分而治之策略的Transformer
序列長度上自我注意的二次方復(fù)雜性會顯著限制下游任務(wù)的性能。例如,語言建模通常需要長的上下文。處理長序列的另一種有效方法是使用分治策略,即將輸入序列分解為更細(xì)的序列可由Transformer或Transformer模塊有效處理的段。有兩類具有代表性的方法,遞歸Transformer和層次Transformer。
遞歸Transformer。在遞歸Transformer中,維護高速緩存以合并歷史信息。當(dāng)處理一段文本時,網(wǎng)絡(luò)從緩存中讀取作為附加輸入。處理完成后,網(wǎng)絡(luò)通過簡單地復(fù)制隱藏狀態(tài)或使用更復(fù)雜的機制。
層次Transformer。層次Transformer將輸入按層次分解為粒度更細(xì)的元素。低級特征首先被饋送到Transformer編碼器,生成輸出表示,然后進行聚合(使用池或其他操作)以形成輸出高級特征,然后由高級Transformer處理。這類方法可以理解為一個分層抽象的過程。這種方法的優(yōu)點有兩個:(1)層次化建模允許模型以有限的資源處理長輸入。(2)它有可能生成對任務(wù)有益的更豐富的表示。
2.2.5 探索替代架構(gòu)
盡管Transformer結(jié)構(gòu)取得了成功,但人們可能會質(zhì)疑當(dāng)前Transformer的結(jié)構(gòu)是否是最佳的。有趣的是,一些研究已經(jīng)探索了Transformer的替代架構(gòu)。
Lu等人[6]將Transformer解釋為多粒子動力學(xué)系統(tǒng)中對流擴散方程的數(shù)值常微分方程(ODE)解算器,并設(shè)計Macaron Transformer,用FFN注意FFN變量替換每個Transformer塊。
Sandwich Transformer[7]探索了注意力模塊和FFN模塊的重組,使得注意力模塊主要位于下層,F(xiàn)FN模塊位于上層。這個誘導(dǎo)模型在不增加參數(shù)、內(nèi)存或訓(xùn)練時間的情況下,改善了多語言建?;鶞?zhǔn)的復(fù)雜性。
掩碼注意網(wǎng)絡(luò)(MAN)在每個變壓器塊中的自我注意模塊上預(yù)先設(shè)置一個動態(tài)面具注意模塊。掩碼是以符號表示為條件的,令牌和頭部索引之間的相對距離。結(jié)果表明,所提出的動態(tài)掩碼注意能夠有效地對文本數(shù)據(jù)中的局部性進行建模,并且誘導(dǎo)模型在機器翻譯和抽象摘要中的性能始終優(yōu)于基線模型。
值得注意的是,有一系列工作使用神經(jīng)架構(gòu)搜索(NAS)來搜索改變的本機轉(zhuǎn)換器架構(gòu)。進化Transformer(ET)[8]采用基于進化的方法使用標(biāo)準(zhǔn)變壓器體系結(jié)構(gòu)搜索初始總體。這個搜索到的模型在幾種語言上都比Transformer有一致的改進任務(wù)。作為另一項代表性工作,DARTSformer采用了可微體系結(jié)構(gòu)搜索(DARTS)[9],結(jié)合多分裂可逆網(wǎng)絡(luò)和反向傳播重建算法,提高內(nèi)存效率。由此產(chǎn)生的模型始終優(yōu)于其他模型標(biāo)準(zhǔn)變壓器和比較有利的更大的ET模型,與一個顯著減少搜索成本。
3 預(yù)訓(xùn)練Transformer
Transformer與卷積網(wǎng)絡(luò)和遞歸網(wǎng)絡(luò)的一個關(guān)鍵區(qū)別在于,卷積網(wǎng)絡(luò)和遞歸網(wǎng)絡(luò)固有地包含了局部性的感應(yīng)偏差,Transformer不對數(shù)據(jù)的結(jié)構(gòu)進行任何假設(shè)。一方面,這有效地使Transformer成為一個非常通用的體系結(jié)構(gòu),具有捕獲不同范圍的依賴關(guān)系的潛力。另一方面,當(dāng)數(shù)據(jù)有限時,這使得變壓器容易過度擬合。緩解這一問題的一種方法是在模型中引入歸納偏置。
最近的研究表明,在大型語料庫上預(yù)先訓(xùn)練的Transformer模型可以學(xué)習(xí)通用語言表示法,這對下游任務(wù)是有益的。使用各種自我監(jiān)督目標(biāo)對模型進行預(yù)訓(xùn)練,例如,根據(jù)上下文預(yù)測掩蓋掉的詞。在預(yù)先訓(xùn)練模型之后,可以簡單地在下游數(shù)據(jù)集上對其進行微調(diào),而不是從頭開始訓(xùn)練模型。為了說明在預(yù)培訓(xùn)中使用變壓器的典型方法,確定了一些預(yù)培訓(xùn)變壓器,并將其分類如下。
(1)僅限編碼器。工作線使用Transformer編碼器作為其主干架構(gòu)。BERT是一種典型的PTM,通常用于自然語言理解任務(wù)。它采用掩膜語言建模(MLM)和下一句預(yù)測(NSP)作為自監(jiān)督訓(xùn)練目標(biāo)。RoBERTa進一步調(diào)整了BERT的培訓(xùn),并刪除了NSP目標(biāo),因為發(fā)現(xiàn)它會影響下游任務(wù)的性能。
(2)僅限解碼器。有幾項研究側(cè)重于對Transformer解碼器進行語言建模的預(yù)訓(xùn)練。例如,生成型預(yù)訓(xùn)練Transformer(GPT)系列專用于縮放預(yù)訓(xùn)練Transformer解碼器,并且最近已經(jīng)說明,大規(guī)模PTM可以通過將任務(wù)和示例輸入到構(gòu)建的模型提示來實現(xiàn)令人印象深刻的少樣本性能。
(3)編解碼器。還有一些PTM采用Transformer編碼器-解碼器作為總體架構(gòu)。BART將BERT的去噪目標(biāo)擴展到編碼器-解碼器架構(gòu)。使用編碼器-解碼器體系結(jié)構(gòu)的好處是,誘導(dǎo)模型具有執(zhí)行自然語言理解和生成的能力。T5采用了類似的架構(gòu),是最早在下游任務(wù)中使用任務(wù)特定文本前綴的研究之一。
一些Transformer架構(gòu)變體也可應(yīng)用于基于Transformer的PTM。例如,BigBird是一種基于編碼器的PTM,它使用基于復(fù)合位置的稀疏注意來啟用長序列輸入。GPT-3在自我注意模塊中使用交替密集和局部帶狀稀疏注意。Switch Transformer是一種基于編碼器的PTM,它用專家混合代替FFN層層和可以增加參數(shù)計數(shù),同時保持每個示例的觸發(fā)器恒定。
4 Transformer的應(yīng)用
Transformer最初設(shè)計用于機器翻譯,但由于其靈活的體系結(jié)構(gòu),它已被廣泛應(yīng)用于NLP以外的各個領(lǐng)域,包括CV、音頻處理和多模態(tài)應(yīng)用。CV中包括圖像分類、目標(biāo)檢測、圖像生成和視頻處理等。音頻處理包括語音識別、語音合成、語音增強和音樂合成。多模態(tài)應(yīng)用包括視覺常識推理、視覺問答、看圖說話、音頻-文本翻譯和文本-圖像生成等。
5 結(jié)論和未來展望
在這項調(diào)查中,筆者對X-former進行了全面的概述,并提出了一種新的分類法?,F(xiàn)有的大多數(shù)工作都從不同的角度對Transformer進行了改進,如效率、通用化和應(yīng)用。這些改進包括加入結(jié)構(gòu)優(yōu)先、設(shè)計輕量級架構(gòu)、預(yù)訓(xùn)練等。
盡管X-Former已經(jīng)證明了他們在各種任務(wù)中的能力,但挑戰(zhàn)仍然存在。除了當(dāng)前關(guān)注的問題(例如效率和通用性),Transformer的進一步改進可能位于以下方向:理論分析、更好的全球交互機制、多模態(tài)數(shù)據(jù)的統(tǒng)一框架。由于Transformer在文本、圖像、視頻和音頻方面取得了巨大成功,我們有機會構(gòu)建一個統(tǒng)一的框架更好地捕捉多模態(tài)數(shù)據(jù)之間的內(nèi)在聯(lián)系。然而,模態(tài)內(nèi)和模態(tài)間的注意力機制的設(shè)計仍有待改進。
參考文獻:
[1]Ashish Vaswani, Noam Shazeer, Niki Parmar, et al. Attention is All you Need[C]//In Proceedings of NeurIPS, 2017, 5998–6008.
[2] Qiu X P,Sun T X,Xu Y G,et al.Pre-trained models for natural language processing:a survey[J].Science China Technological Sciences,2020,63(10):1872-1897.
[3] Nicolas Carion, Francisco Massa, Gabriel Synnaeve, et al. End-to-End Object Detection with Transformers[C]//In Proceedings of ECCV 2020 - 2020 Europeon Conference on Computer Vision, 213–229.
[4] Chen X,Wu Y,Wang Z H,et al.Developing real-time streaming transformer transducer for speech recognition on large-scale dataset[C]//ICASSP 2021 - 2021 IEEE International Conference on Acoustics,Speech and Signal Processing (ICASSP).June 6-11,2021,Toronto,ON,Canada.IEEE,2021:5904-5908.
[5] Guo Q P,Qiu X P,Xue X Y,et al.Low-rank and locality constrained self-attention for sequence modeling[J].ACM Transactions on Audio,Speech,and Language Processing,2019,27(12):2213-2222.
[6] Lu Y , Li Z , He D , et al. Understanding and Improving Transformer From a Multi-Particle Dynamic System Point of View. arXiv:1906.02762 [cs.LG].
[7] Press O,Smith N A,Levy O.Improving transformer models by reordering their sublayers[C]//Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics.Online.Stroudsburg,PA,USA:Association for Computational Linguistics,2020:2996–3005.
[8] David R. So, Quoc V. Le, and Chen Liang. The Evolved Transformer[C]// ICML 2019 - 2019 International Conference on Machine Learning, 5877–5886.
[9] Hanxiao Liu, Karen Simonyan, and Yiming Yang. DARTS: Differentiable Architecture Search[C]// ICLR 2019 - 2019 International Conference on Learning Representations, 1-13.
【通聯(lián)編輯:梁書】