謝亦才
摘要:Transformer在自然語言處理、計(jì)算機(jī)視覺和音頻處理等人工智能領(lǐng)域取得了巨大的成功。學(xué)術(shù)界和產(chǎn)業(yè)界研究者設(shè)計(jì)出了各種各樣的Transformer(又稱X-formers)。然而,關(guān)于這些Transformer的系統(tǒng)全面的文獻(xiàn)綜述仍然缺乏。在本綜述中,首先簡(jiǎn)要介紹了vanilla Transformer,然后提出了一種新的X-formers分類法。接下來,從架構(gòu)修改、預(yù)訓(xùn)練和應(yīng)用三個(gè)角度介紹了各種X-former。最后,概述了未來研究的一些潛在方向。
關(guān)鍵詞:Transformer;架構(gòu)修改;預(yù)訓(xùn)練
中圖分類號(hào):TP311? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)03-0084-03
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
1 引言
Transformer[1]是一種著名的深度學(xué)習(xí)模型,在許多領(lǐng)域都被廣泛采用,比如自然語言處理(NLP)、計(jì)算機(jī)視覺(CV)和語音處理等領(lǐng)域。Transformer最初是作為機(jī)器翻譯的序列到序列模型提出的。后來的工作表明,基于Transformer的預(yù)訓(xùn)練模型(PTM)[2]可以在各種任務(wù)上實(shí)現(xiàn)最先進(jìn)的性能。因此,Transformer成了NLP的首選體系結(jié)構(gòu),尤其是PTMs。除了與語言相關(guān)的應(yīng)用程序外,Transformer在CV[3],音頻處理[4]甚至其他學(xué)科中也被采用,比如化學(xué)和生命科學(xué)。
在本概述中,目的是提供一個(gè)全面的回歸Transformer及其變種。雖然可以在上述觀點(diǎn)的基礎(chǔ)上組織X-former,但許多現(xiàn)有的X-former可以解決一個(gè)或多個(gè)問題。例如,稀疏注意變量不僅降低了計(jì)算復(fù)雜度,而且在輸入數(shù)據(jù)上引入了結(jié)構(gòu)先驗(yàn),以緩解小數(shù)據(jù)集上的過擬合問題。因此,對(duì)現(xiàn)有的各種X-former進(jìn)行分類并提出一種新的分類法,主要是根據(jù)它們改進(jìn)vanilla Transformer的方法:架構(gòu)修改、預(yù)培訓(xùn)和應(yīng)用進(jìn)行分類??紤]到概述的對(duì)象可能來自不同的領(lǐng)域,主要關(guān)注一般的體系結(jié)構(gòu)變體,并簡(jiǎn)要討論了預(yù)訓(xùn)練和應(yīng)用的具體變體。
2 Transformer分類
到目前為止,基于vanilla Transformer已經(jīng)從三個(gè)角度提出了各種各樣的變種模型:體系結(jié)構(gòu)的變種、預(yù)訓(xùn)練方法變種和應(yīng)用變種。如圖1所示。
2.1 基于注意力機(jī)制改進(jìn)的Transformer變種
自注意力機(jī)制在Transformer中起著重要的作用,但在實(shí)際應(yīng)用中存在兩個(gè)挑戰(zhàn)。
(1)復(fù)雜度。自注意力的復(fù)雜度是O(T2·D)。 因此,注意力模塊在處理長(zhǎng)序列時(shí)成為瓶頸。
(2)結(jié)構(gòu)優(yōu)先。自注意力不假定對(duì)輸入有任何結(jié)構(gòu)性偏見。甚至順序信息也需要從訓(xùn)練數(shù)據(jù)中學(xué)習(xí)。因此,Transformer(不帶預(yù)訓(xùn)練)通常很容易對(duì)小或中等大小的數(shù)據(jù)過擬合。
Transformer中注意力機(jī)制的改進(jìn)可以分為幾個(gè)方向:
(1)稀疏注意力。這項(xiàng)工作將稀疏性偏差引入注意力機(jī)制,從而降低了復(fù)雜性。
(2)線性化注意力。這一工作解開了注意力矩陣與核心特征地圖。然后以相反的順序計(jì)算注意力,以獲得線性復(fù)雜度。
(3)原型和內(nèi)存壓縮。這類改進(jìn)方法減少了查詢或鍵值對(duì)內(nèi)存的數(shù)量,以減小注意矩陣的大小。
(4)低級(jí)別的自注意力。這項(xiàng)工作抓住了自注意力的低級(jí)屬性。
(5)先驗(yàn)注意力。這項(xiàng)研究探索補(bǔ)充或取代標(biāo)準(zhǔn)注意與先前的注意分布。
(6)改進(jìn)的多頭注意力。這項(xiàng)研究探索了不同的替代性多頭注意力機(jī)制。
2.2 Transformer架構(gòu)層面的變種
2.2.1 Transformer輕量化
除了在模塊級(jí)別上為減輕計(jì)算開銷所做的努力之外,還有一些嘗試通過在更高級(jí)別上的修改使Transformer變得輕量級(jí)。類似于低階自注意力[5]將注意分解為局部約束注意和低階全局注意,Lite Transformer建議替換每個(gè)注意具有雙分支結(jié)構(gòu)的Transformer中的模塊,其中一個(gè)分支使用注意力來捕獲遠(yuǎn)程上下文,而另一個(gè)分支使用深度卷積和線性層來捕獲局部依賴性。該體系結(jié)構(gòu)在模型尺寸和計(jì)算方面都是輕量級(jí)的,因此更適合于移動(dòng)設(shè)備。
2.2.2 增強(qiáng)跨模塊的連接線
在vanilla Transformer中,每個(gè)塊將前一個(gè)塊的輸出作為輸入,并輸出一系列隱藏表示。人們可能會(huì)創(chuàng)建更多的路徑使輸入信號(hào)可以通過網(wǎng)絡(luò)傳輸。例如realeformer和Predictive Attention Transformer,它們將注意力分布從上一個(gè)塊重用到下一個(gè)塊引導(dǎo)當(dāng)前塊的注意。這可以看作是在相鄰Transformer塊之間創(chuàng)建正向路徑。
2.2.3 自適應(yīng)計(jì)算時(shí)間
像大多數(shù)神經(jīng)模型一樣,Vanilla Transformer使用固定的(學(xué)習(xí)的)計(jì)算過程來處理每個(gè)輸入。一個(gè)有趣的和有希望的修改是以計(jì)算時(shí)間為輸入的一個(gè)條件,即在Transformer模型中引入自適應(yīng)計(jì)算時(shí)間(ACT)。此類修改可能產(chǎn)生以下優(yōu)點(diǎn):
(1)特征細(xì)化。對(duì)于難以處理的數(shù)據(jù),簡(jiǎn)單的表示可能不足以應(yīng)對(duì)當(dāng)前的任務(wù)。更理想的做法是應(yīng)用更多計(jì)算以獲得更深入和更精細(xì)的表示。
(2)提高效率。在處理簡(jiǎn)單的示例時(shí),一個(gè)淺層特征的表示可能就足夠了。在這種情況下,如果網(wǎng)絡(luò)能夠?qū)W習(xí)使用更少的計(jì)算時(shí)間來提取特征,這將是有益的。
2.2.4 分而治之策略的Transformer
序列長(zhǎng)度上自我注意的二次方復(fù)雜性會(huì)顯著限制下游任務(wù)的性能。例如,語言建模通常需要長(zhǎng)的上下文。處理長(zhǎng)序列的另一種有效方法是使用分治策略,即將輸入序列分解為更細(xì)的序列可由Transformer或Transformer模塊有效處理的段。有兩類具有代表性的方法,遞歸Transformer和層次Transformer。
遞歸Transformer。在遞歸Transformer中,維護(hù)高速緩存以合并歷史信息。當(dāng)處理一段文本時(shí),網(wǎng)絡(luò)從緩存中讀取作為附加輸入。處理完成后,網(wǎng)絡(luò)通過簡(jiǎn)單地復(fù)制隱藏狀態(tài)或使用更復(fù)雜的機(jī)制。
層次Transformer。層次Transformer將輸入按層次分解為粒度更細(xì)的元素。低級(jí)特征首先被饋送到Transformer編碼器,生成輸出表示,然后進(jìn)行聚合(使用池或其他操作)以形成輸出高級(jí)特征,然后由高級(jí)Transformer處理。這類方法可以理解為一個(gè)分層抽象的過程。這種方法的優(yōu)點(diǎn)有兩個(gè):(1)層次化建模允許模型以有限的資源處理長(zhǎng)輸入。(2)它有可能生成對(duì)任務(wù)有益的更豐富的表示。
2.2.5 探索替代架構(gòu)
盡管Transformer結(jié)構(gòu)取得了成功,但人們可能會(huì)質(zhì)疑當(dāng)前Transformer的結(jié)構(gòu)是否是最佳的。有趣的是,一些研究已經(jīng)探索了Transformer的替代架構(gòu)。
Lu等人[6]將Transformer解釋為多粒子動(dòng)力學(xué)系統(tǒng)中對(duì)流擴(kuò)散方程的數(shù)值常微分方程(ODE)解算器,并設(shè)計(jì)Macaron Transformer,用FFN注意FFN變量替換每個(gè)Transformer塊。
Sandwich Transformer[7]探索了注意力模塊和FFN模塊的重組,使得注意力模塊主要位于下層,F(xiàn)FN模塊位于上層。這個(gè)誘導(dǎo)模型在不增加參數(shù)、內(nèi)存或訓(xùn)練時(shí)間的情況下,改善了多語言建?;鶞?zhǔn)的復(fù)雜性。
掩碼注意網(wǎng)絡(luò)(MAN)在每個(gè)變壓器塊中的自我注意模塊上預(yù)先設(shè)置一個(gè)動(dòng)態(tài)面具注意模塊。掩碼是以符號(hào)表示為條件的,令牌和頭部索引之間的相對(duì)距離。結(jié)果表明,所提出的動(dòng)態(tài)掩碼注意能夠有效地對(duì)文本數(shù)據(jù)中的局部性進(jìn)行建模,并且誘導(dǎo)模型在機(jī)器翻譯和抽象摘要中的性能始終優(yōu)于基線模型。
值得注意的是,有一系列工作使用神經(jīng)架構(gòu)搜索(NAS)來搜索改變的本機(jī)轉(zhuǎn)換器架構(gòu)。進(jìn)化Transformer(ET)[8]采用基于進(jìn)化的方法使用標(biāo)準(zhǔn)變壓器體系結(jié)構(gòu)搜索初始總體。這個(gè)搜索到的模型在幾種語言上都比Transformer有一致的改進(jìn)任務(wù)。作為另一項(xiàng)代表性工作,DARTSformer采用了可微體系結(jié)構(gòu)搜索(DARTS)[9],結(jié)合多分裂可逆網(wǎng)絡(luò)和反向傳播重建算法,提高內(nèi)存效率。由此產(chǎn)生的模型始終優(yōu)于其他模型標(biāo)準(zhǔn)變壓器和比較有利的更大的ET模型,與一個(gè)顯著減少搜索成本。
3 預(yù)訓(xùn)練Transformer
Transformer與卷積網(wǎng)絡(luò)和遞歸網(wǎng)絡(luò)的一個(gè)關(guān)鍵區(qū)別在于,卷積網(wǎng)絡(luò)和遞歸網(wǎng)絡(luò)固有地包含了局部性的感應(yīng)偏差,Transformer不對(duì)數(shù)據(jù)的結(jié)構(gòu)進(jìn)行任何假設(shè)。一方面,這有效地使Transformer成為一個(gè)非常通用的體系結(jié)構(gòu),具有捕獲不同范圍的依賴關(guān)系的潛力。另一方面,當(dāng)數(shù)據(jù)有限時(shí),這使得變壓器容易過度擬合。緩解這一問題的一種方法是在模型中引入歸納偏置。
最近的研究表明,在大型語料庫上預(yù)先訓(xùn)練的Transformer模型可以學(xué)習(xí)通用語言表示法,這對(duì)下游任務(wù)是有益的。使用各種自我監(jiān)督目標(biāo)對(duì)模型進(jìn)行預(yù)訓(xùn)練,例如,根據(jù)上下文預(yù)測(cè)掩蓋掉的詞。在預(yù)先訓(xùn)練模型之后,可以簡(jiǎn)單地在下游數(shù)據(jù)集上對(duì)其進(jìn)行微調(diào),而不是從頭開始訓(xùn)練模型。為了說明在預(yù)培訓(xùn)中使用變壓器的典型方法,確定了一些預(yù)培訓(xùn)變壓器,并將其分類如下。
(1)僅限編碼器。工作線使用Transformer編碼器作為其主干架構(gòu)。BERT是一種典型的PTM,通常用于自然語言理解任務(wù)。它采用掩膜語言建模(MLM)和下一句預(yù)測(cè)(NSP)作為自監(jiān)督訓(xùn)練目標(biāo)。RoBERTa進(jìn)一步調(diào)整了BERT的培訓(xùn),并刪除了NSP目標(biāo),因?yàn)榘l(fā)現(xiàn)它會(huì)影響下游任務(wù)的性能。
(2)僅限解碼器。有幾項(xiàng)研究側(cè)重于對(duì)Transformer解碼器進(jìn)行語言建模的預(yù)訓(xùn)練。例如,生成型預(yù)訓(xùn)練Transformer(GPT)系列專用于縮放預(yù)訓(xùn)練Transformer解碼器,并且最近已經(jīng)說明,大規(guī)模PTM可以通過將任務(wù)和示例輸入到構(gòu)建的模型提示來實(shí)現(xiàn)令人印象深刻的少樣本性能。
(3)編解碼器。還有一些PTM采用Transformer編碼器-解碼器作為總體架構(gòu)。BART將BERT的去噪目標(biāo)擴(kuò)展到編碼器-解碼器架構(gòu)。使用編碼器-解碼器體系結(jié)構(gòu)的好處是,誘導(dǎo)模型具有執(zhí)行自然語言理解和生成的能力。T5采用了類似的架構(gòu),是最早在下游任務(wù)中使用任務(wù)特定文本前綴的研究之一。
一些Transformer架構(gòu)變體也可應(yīng)用于基于Transformer的PTM。例如,BigBird是一種基于編碼器的PTM,它使用基于復(fù)合位置的稀疏注意來啟用長(zhǎng)序列輸入。GPT-3在自我注意模塊中使用交替密集和局部帶狀稀疏注意。Switch Transformer是一種基于編碼器的PTM,它用專家混合代替FFN層層和可以增加參數(shù)計(jì)數(shù),同時(shí)保持每個(gè)示例的觸發(fā)器恒定。
4 Transformer的應(yīng)用
Transformer最初設(shè)計(jì)用于機(jī)器翻譯,但由于其靈活的體系結(jié)構(gòu),它已被廣泛應(yīng)用于NLP以外的各個(gè)領(lǐng)域,包括CV、音頻處理和多模態(tài)應(yīng)用。CV中包括圖像分類、目標(biāo)檢測(cè)、圖像生成和視頻處理等。音頻處理包括語音識(shí)別、語音合成、語音增強(qiáng)和音樂合成。多模態(tài)應(yīng)用包括視覺常識(shí)推理、視覺問答、看圖說話、音頻-文本翻譯和文本-圖像生成等。
5 結(jié)論和未來展望
在這項(xiàng)調(diào)查中,筆者對(duì)X-former進(jìn)行了全面的概述,并提出了一種新的分類法?,F(xiàn)有的大多數(shù)工作都從不同的角度對(duì)Transformer進(jìn)行了改進(jìn),如效率、通用化和應(yīng)用。這些改進(jìn)包括加入結(jié)構(gòu)優(yōu)先、設(shè)計(jì)輕量級(jí)架構(gòu)、預(yù)訓(xùn)練等。
盡管X-Former已經(jīng)證明了他們?cè)诟鞣N任務(wù)中的能力,但挑戰(zhàn)仍然存在。除了當(dāng)前關(guān)注的問題(例如效率和通用性),Transformer的進(jìn)一步改進(jìn)可能位于以下方向:理論分析、更好的全球交互機(jī)制、多模態(tài)數(shù)據(jù)的統(tǒng)一框架。由于Transformer在文本、圖像、視頻和音頻方面取得了巨大成功,我們有機(jī)會(huì)構(gòu)建一個(gè)統(tǒng)一的框架更好地捕捉多模態(tài)數(shù)據(jù)之間的內(nèi)在聯(lián)系。然而,模態(tài)內(nèi)和模態(tài)間的注意力機(jī)制的設(shè)計(jì)仍有待改進(jìn)。
參考文獻(xiàn):
[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)編輯:梁書】