萬字長文帶你一覽ICLR2020最新Transformers進展

轉載來源:https://zhuanlan.zhihu.com/p/141370077 https://zhuanlan.zhihu.com/p/141553688
原文鏈接:http://gsarti.com/post/iclr2020-transformers/
作者:Gabriele Sarti
編譯:樸素人工智能

alt

Transformer 體系結構最初是在 Attention is All You Need 中提出的,它是順序語言建模方法(如 LSTM)的有效替代方法,此後在自然語言處理領域變得無處不在,從而推動了大多數下游語言的發展相關任務。

今年的國際學習表示法會議(ICLR)中有許多文章對原始的 Transformer 及其最新的 BERTTransformer-XL 進行了改進。這些改進措施解決了 Transformer 衆所周知的弱點:

  • 優化自我注意力計算。
  • 在模型架構中注入出於語言動機的歸納偏差。
  • 使模型更具參數和數據效率。

這篇文章希望總結並提供這些貢獻的高層概述,重點介紹更好和更快的自然語言處理模型的當前趨勢。所有圖像版權歸其各自的論文作者。

1. Self-atention 的變體

可縮放的點積自注意力是標準 Transformer 層中的主要組件之一,無論依賴關係在輸入中的距離如何,都可以對其進行建模。自注意力機制大家都已經很熟悉,其公式爲:
 Attention (Q,K,V)=softmax(QKTdk)V\text { Attention }(Q, K, V)=\operatorname{softmax}\left(\frac{Q K^{T}}{\sqrt{d}_{k}}\right) V
進一步,多頭自注意力機制的公式爲:
 MultiHead (Q,K,V)= Concat ( head 1,,headh)WO where head i= Attention (QWiQ,KWiK,VWiV)\begin{array}{c} \text { MultiHead }(Q, K, V)=\text { Concat }\left(\text { head }_{1}, \ldots, \operatorname{head}_{h}\right) W^{O} \\ \text { where head }_{i}=\text { Attention }\left(Q W_{i}^{Q}, K W_{i}^{K}, V W_{i}^{V}\right) \end{array}
本節介紹了自我注意組件的一些變體,使其在上下文處理中更加有效。

Long-Short Range Attention

Introduced in: Lite Transformer with Long-Short Range Attention by Wu, Liu et al.

通過將輸入沿通道尺寸分成兩部分並將每個部分輸入兩個模塊,Long-Short Range Attention (LSRA) 可使計算效率更高。兩個模塊分別是使用標準自注意的全局提取器和使用輕量級深度卷積的局部提取器。作者指出這種方法可以減少一半模型的整體計算,使其適合於移動端。

Tree-Structured Attention with Subtree Masking

Introduced in: Tree-Structured Attention with Hierarchical Accumulation by Nguyen et al.

標準 Transformer 的一個缺點是缺少歸納偏差來解釋語言的層次結構。這部分是由於通常通過遞歸或遞歸機制建模的樹狀結構,難以保持恆定的自我注意時間複雜性。

本文所提出的解決方案是利用輸入文本的句法分析來構建隱藏狀態樹,並使用分層累加將非葉子節點的值用子節點聚合來表示。最終的輸出表示通過分支級表示的加權聚合來構建。

本文另一個有趣的想法是通過限制每個節點查詢僅關注其子樹,使用子樹遮罩來過濾掉多餘的噪聲。這種歸納偏差的引入方式會增加計算和存儲成本,文章使用參數共享來減輕這種成本。

Hashed Attention

Introduced in: Reformer: The Efficient Transformer by Kitaev et al.


由於 self-attention 的時間複雜度與序列長度的平方成正比,給建模長序列帶來了困難。Reformer 提出將每個查詢所涉及的候選者池限制爲通過本地敏感哈希(LSH)找到的一小部分鄰居。由於 LSH 分桶採用隨機投影的方法,因此類似的向量有時可能會落在不同的鄰域中。文中使用多輪並行哈希處理來緩解此問題。使用 LSH 注意可以將自我注意操作的計算成本降低到,允許模型在更長的序列上運行。

關於 LSH 可以參考我們之前的文章 REALM 後續:最近鄰搜索,MIPS,LSH 和 ALSH

eXtra Hop Attention

Introduced in: Transformer-XH: Multi-Evidence Reasoning with eXtra Hop Attention by Zhao et al.


儘管對 Transformer 可以在單個序列或序列對上進行操作獲得很好結果,但它們卻很難推廣到證據分散在多段文本中的情況,例如頗具挑戰性的多跳問答任務。

Transformer-XH 引入了一種新的注意力變體 eXtra Hop Attention,可以將其應用於由邊(例如,超鏈接)連接的文本序列圖。這種新的注意力機制將每個序列開頭的特殊標記[CLS]用作關注中心 (attention hub),該中心 attend 到圖中的其他相連接的序列。然後將所得表示通過線性投影的標準自注意力機制進行組合。模型展示出對需要對圖進行推理任務的顯着改進,但新的注意力機制引入了額外的計算代價。

2. 訓練目標

Transformer 模型的預訓練通常是通過多個不受監督的目標來實現的,並利用了大量的非註釋文本。用於此目的的最常見任務是自迴歸語言建模(也稱爲標準語言建模,LM)和對掩碼輸入的自動編碼(通常稱爲掩碼語言建模,MLM)。

標準的 Transformer 實現及其 GPT 變體採用自迴歸方法,利用序列內部的單向上下文(正向或反向)估計下一個 token 的概率分佈:

類似 BERT 的方法使用雙向上下文來恢復輸入被特殊[MASK] token 替代的一小部分。事實證明,此變體對下游自然語言理解任務特別有效。

除了單詞級建模之外,由於許多重要的語言應用程序都需要理解兩個序列之間的關係,因此通常在訓練過程中添加諸如下一個句子預測(NSP)之類的句子級分類任務。關於 BERT,可以參考我們之前的文章 [預訓練語言模型專題] BERT,開啓 NLP 新時代的王者

儘管這些任務可以獲得有意義的 token 和句子層表示,但本節將介紹一些更好的替代方法,這些方法可以使學習更加有效。

Discriminative Replacement Task

Introduced in: ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators by Clark et al.

在類似 BERT 的模型中使用的掩蔽策略在數據上效率很低,僅使用約 15%的輸入文本來完成 MLM 任務。但是,由於過多的 masked token 可能會使整體上下文信息損失嚴重,因此很難增加屏蔽數據的百分比。

ELECTRA 提出了一種簡單而有效的方法來應對這種效率低下的問題。像普通的 MLM 一樣,訓練一個小的屏蔽語言模型,然後將其用作生成器,用其填充輸入中被屏蔽的 token。但是,主模型的新任務將是一個分類任務:除了預測掩蓋的 token 之外,該模型還必須檢測生成器替換了哪些 token。這允許利用整個輸入序列進行訓練。正如作者所提到的,在相同的計算預算下,這種方法始終優於 MLM 預訓練。

關於 Electra,可以參考我們之前的文章性能媲美 BERT 卻只有其 1/10 參數量? | 近期最火模型 ELECTRA 解析

Word and Sentence Structural Tasks

Introduced in: StructBERT: Incorporating Language Structures into Pre-training for Deep Language Understanding by Wang et al.

如前所述,Transformers 並未明確考慮輸入中存在的語言結構。雖然樹狀結構的注意力在模型體系結構中注入了很多的結構信息,但 StructBERT 採用了兩種更輕便但有效的方法,使生成的表示形式更瞭解語言的基本順序。

第一個是單詞結構目標 (word structural objective),即輸入的三字組(trigram)被隨機打亂,模型必須重新構造其原始順序。這是與常規 MLM 並行完成的。句子結構目標(sentence structural objective) 是 ERNIE 2.0 中句子重排任務和 ALBERT 中 SOP 任務的輕量級變體:給定一對句子對 (S1, S2) 作爲輸入,我們要求模型區分 S1 是在 S2 之前、之後或與之無關。這項新任務擴展了標準的 NSP 任務,NSP 對於學習有意義的句子關係來說太容易了。這些改進帶來了自然語言理解能力的提升。

Type-Constrained Entity Replacement

Introduced in: Pretrained Encyclopedia: Weakly Supervised Knowledge-Pretrained Language Model by Xiong et al.

儘管很多研究已經顯示,經過預訓練的 Transformer 模型隱式地捕獲了現實世界的知識,但是它們的標準訓練目標並未明確考慮到在現實世界中進行可靠推理所需的以實體爲中心的信息。

帶類型約束的實體替換 (Type-constrained entity replacement) 是一種弱監督的方法,文本中的實體隨機地被具有相同實體類型的其他來自 Wikidata 的實體替換。然後,該模型使用類似於 ELECTRA 的判別目標來確定實體是否被替換。這是在多任務設置中與 MLM 一起完成的,並且作者報告說,由於更深入地瞭解實體,該模型在例如開放域 QA 和實體類型預測等問題中有顯著的提升。

3. Embeddings

原始的 Transformer 依靠兩組嵌入來表示輸入序列:

  • 詞彙表中存在的每個標記的學習單詞嵌入(word embedding),用作模型的標記向量表示。
  • 位置嵌入(position embedding),用於注入有關 token 在序列中的位置的信息。對於位置和維度,位置嵌入與正弦週期函數相對應,根據經驗顯示這些正弦週期函數與通過學習獲得的嵌入效果相當:

對於能夠在多個輸入段上運行的類似 BERT 的模型,還使用第三組可學習的分段嵌入 (segment embedding) 來區分屬於不同句子的 token。

所有這些嵌入都具有相同的尺寸,並被加在一起以獲得輸入最終的表示。本節介紹的方法旨在給嵌入注入更多結構,或優化其尺寸以提高效率。

Position-Aware Complex Word Embeddings

Introduced in: Encoding word order in complex embeddings by Wang et al.


儘管 PE 在輸入中捕獲了不同的位置,但它們沒有明確考慮這些位置之間的關係,即順序關係(標準 PE 只關注距離,不關注先後,可以自己推導看看)。Transformer-XL 已通過利用單詞之間的相對距離而不是原始位置索引來解決此問題。

本文提出的改進是將單詞嵌入泛化爲與位置相關的連續函數,並擴展到複數值域,以便從更豐富的表示形式中獲益。生成的復值嵌入 (complex-valued embeddings) 引入了新的關於幅度、頻率和初始相位的參數,這些參數確定了嵌入的各種屬性(例如位置敏感性)。實驗結果表明,具有參數共享方案的復值嵌入優於以前的嵌入方法,而可訓練參數的數量卻沒有顯着增加。

Hierarchical Embeddings

Introduced in: Tree-Structured Attention with Hierarchical Accumulation by Nguyen et al.


在之前對樹狀結構注意的概述中,我們看到了如何使用層次累加來形成基於非葉子節點後代的表示。但是,此過程的缺點是沒有考慮後代的層次結構。

通過將垂直和水平嵌入矩陣連接起來,分別表示分支內部的層次結構順序和子樹中同級節點之間的關係,使得分層嵌入 (Hierarchical embeddings) 可以注入更多的結構信息。這些嵌入在注意力頭之間共享,因此僅佔總參數的 0.1%。

Factorized Embedding Parametrization

Introduced in: ALBERT: A Lite BERT for Self-supervised Learning of Language Representations by Lan et al.


在基於 BERT 和 Transformer-XL 的最新模型中,embedding 大小與隱藏層的大小有關,即。這在實際操作時有很大的弊端:要增強模型的上下文表示能力通常要增大隱層,這會導致嵌入矩陣的變大,因爲,其中是詞彙量。即使對於相對較小的隱藏層尺寸,這中關係也會導致數十億個參數,而且這些參數在訓練期間很少更新。

ALBERT 作者建議在和(我感覺,這個應該是) 之間插入一個投影使兩個維度獨立,這種方法在時對減少參數量特別有效。一個, 包含 21M 參數(表 3 中爲 89M,而 BERT 爲 110M)的 ALBERT,可以在許多下游任務上獲得與具有相同配置的 BERT 基礎相當的性能。

4. 模型架構

原始的 Transformer 體系結構由編碼器和解碼器組成,每個編碼器和解碼器由相同層的堆疊序列組成,這些堆疊序列對具有相同尺寸的嵌入進行轉換(因此稱爲 Transformer)。Transformer 編碼器的每一層都由兩個子層:一個多頭自我注意機制和一個前饋網絡組成,前者被殘差連接所包圍,然後進行層歸一化。解碼器還包括第三層,對編碼器的輸出執行多頭自我注意,並解碼器的自注意力子層也和編碼器不同。因爲由於自迴歸語言模型的要求,這裏需要避免後文參與運算(否則就泄露了)。

Transformer 的雙向變體(如 BERT)放棄瞭解碼器結構,僅專注於編碼器,以生成各種任務(包括 MLM)所需的上下文嵌入。

特別的,Transformer-XL 爲 Transformer 網絡引入了一種內存概念,其中在前段中獲得的隱藏狀態會被重用以更好地對長程依賴性進行建模,從而防止上下文碎片化。

關於 Transformer-XL 可以參考我們之前的文章。

[預訓練語言模型專題] Transformer-XL 超長上下文注意力模型​

以下方法嘗試在當前結構的基礎上進一步改善長程建模、減少參數數量或優化模型執行的計算。

Compressive Memory

Introduced in: Compressive Transformers for Long-Range Sequence Modelling by Rae et al.


在 Transformer-XL 的循環存儲方法中,舊記憶會被丟棄,從而能夠以先進先出的方式存儲新的記憶。此方法僅考慮先後遠近,而不考慮可能會丟棄的信息的相關性。

Compressive Transformers 添加了新的壓縮記憶機制,保存歷史記憶的粗糙表示,而非直接丟棄舊記憶。作者嘗試使用多種壓縮函數,最後選擇一種注意力重建損失函數(attention-reconstruction loss),該損失會丟棄網絡未被注意 (not attended) 到的信息。壓縮內存的使用顯示了對少見單詞建模的巨大改進,實驗證明網絡通過壓縮機制學習到了如何保留有用的信息。

Reversible Layers

Introduced in: Reformer: The Efficient Transforme by Kitaev et al.


可逆性(reversibility)背後的主要思想是可以通過僅使用後續層的激活情況和模型參數來恢復網絡任意層中的激活情況。當與 Transformer 模型結合時,它變得特別有趣,因爲 Transformers 通常由一大堆堆疊的層組成,並且模型的內存複雜度隨層數線性增長。

通過將自注意力和前饋子層組合成爲單個可逆層,Reformer 在 Transformer 體系結構中引入了可逆性。這允許僅在存儲最上層的激活情況,並通過在反向傳播期間反轉各層來恢復所有其他激活,從而使模型大小與層數無關。通過在前饋和可逆層中進行分塊獨立計算,還可以進一步改進空間複雜性。

Cross-Layer Parameter Sharing

Introduced in: ALBERT: A Lite BERT for Self-supervised Learning of Language Representationsby Lan et al.


跨層參數共享是一種簡單但非常有效的方法,可以大大減少深度 Transformer 模型內部的參數數量,正如 ICLR 2019 在 Universal Transformer 論文中所展示的那樣。

ALBERT 作者對自注意子層和前饋子層的跨層參數共享進行了實驗,發現共享權重矩陣可以將模型的總參數數量大大減少,當結合前面的嵌入分解使時,模型大小可以變爲原來的七分之一,而對最終結果的影響很小。參數共享還可以使層間的過渡更加平滑,有效地穩定網絡參數。

Adaptive Depth Estimation

Introduced in: Depth-Adaptive Transformer by Elbayad et al.


不管輸入語句的複雜度如何,當前模型爲每個輸入執行的計算都是固定的。這個問題已經在 Universal Transformer 中被提出,Universal Transformer 建議使用自適應計算時間(ACT)重複使用相同的層,但是由此導致的每層權重的增加大大降低了網絡的計算速度。

Depth-adaptive Transformer 通過使用標準 Transformer 編碼器對序列進行編碼並以可變步長對其進行解碼來解決此問題。爲此,將一個分類器連接到解碼器的每層後面,然後使用首先在計算機視覺領域引入的 anytime prediction 方法,通過如圖所示的對齊和混合訓練(aligned and mixed training)對整個集合進行訓練。作者探索了不同的機制來自適應地控制序列級別和 token 級別的計算量,並得出結論:自適應可以縮減超過 75%的解碼器層,而不會對機器翻譯任務造成任何性能損失。

結論

在 ICLR 2020 上引入的許多方法爲解決原始 Transformer 從自注意力計算到模型結構本身的問題提供了大量的解決方案。

其中的許多方法似乎對 Transformer 的未來發展很有幫助,而且重要的是,一旦其中一些方法被組合起來,就有可能相互補充產生更進一步的改進。

我希望在 ICLR 2021 能看到更多的工作,將現存的策略組合在一起,呈現它們之間最有效的組合。

參考資料

[1] Attention is All You Need: https://arxiv.org/abs/1706.03762

[2] LSTM: https://www.researchgate.net/publication/13853244_Long_Short-term_Memory

[3] ICLR 官網: https://iclr.cc/

[4] BERT: https://www.aclweb.org/anthology/N19-1423/

[5] Transformer-XL: https://www.aclweb.org/anthology/P19-1285/

[6] Lite Transformer with Long-Short Range Attention: http://iclr.cc/virtual_2020/poster_ByeMPlHKPH.html

[7] Tree-Structured Attention with Hierarchical Accumulation: https://iclr.cc/virtual_2020/poster_HJxK5pEYvr.html

[8] Reformer: The Efficient Transformer: https://iclr.cc/virtual_2020/poster_rkgNKkHtvB.html

[9] Transformer-XH: Multi-Evidence Reasoning with eXtra Hop Attention: https://iclr.cc/virtual_2020/poster_r1eIiCNYwS.html

[10] ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators: https://iclr.cc/virtual_2020/poster_r1xMH1BtvB.html

[11] StructBERT: Incorporating Language Structures into Pre-training for Deep Language Understanding: https://iclr.cc/virtual_2020/poster_BJgQ4lSFPH.html

[12] Pretrained Encyclopedia: Weakly Supervised Knowledge-Pretrained Language Model: https://iclr.cc/virtual_2020/poster_BJlzm64tDH.html

[13] Encoding word order in complex :https://iclr.cc/virtual_2020/poster_Hke-WTVtwr.html

[14] Tree-Structured Attention with Hierarchical Accumulation:_ https://iclr.cc/virtual_2020/poster_HJxK5pEYvr.html_

[15] ALBERT: A Lite BERT for Self-supervised Learning of Language Representations:_ https://iclr.cc/virtual_2020/poster_H1eA7AEtvS.html_

[16]Compressive Transformers for Long-Range Sequence Modelling:_ https://iclr.cc/virtual_2020/poster_SylKikSYDH.html_

[17] The Efficient Transforme:_ https://iclr.cc/virtual_2020/poster_rkgNKkHtvB.html_

[18]Universal Transformer:https://arxiv.org/abs/1807.03819

[19] Depth-Adaptive Transformer:https://iclr.cc/virtual_2020/poster_SJg7KhVKPH.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章