<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Transformer模型有多少種變體?復旦邱錫鵬教授團隊做了全面綜述

          共 6547字,需瀏覽 14分鐘

           ·

          2021-06-12 16:45

          視學算法報道
          轉載自:機器之心
          編輯:Liyuan、杜偉
          自提出至今,Transformer 模型已經在自然語言處理、計算機視覺以及其他更多領域「大展拳腳」,學界也提出了各種各樣基于原始模型的變體。但應看到,學界依然缺少系統(tǒng)全面的 Transformer 變體文獻綜述。復旦大學邱錫鵬教授團隊的這篇綜述正好彌補了這一空缺。
          自 2017 年 6 月谷歌發(fā)布論文《Attention is All You Need》后,Transformer 架構為整個 NLP 領域帶來了極大的驚喜。在誕生至今僅僅四年的時間里,Transformer 已經成為自然語言處理領域的主流模型,基于 Transformer 的預訓練語言模型更是成為主流。

          隨著時間的推移,Transformer 還開始了向其他領域的跨界。得益于深度學習的發(fā)展,Transformer 在計算機視覺(CV)和音頻處理等許多人工智能領域已然殺瘋了,成功地引來了學界和業(yè)界研究人員的關注目光。到目前為止,研究者已經提出了大量且種類駁雜的 Transformer 變體(又名 X-former),但是仍然缺失系統(tǒng)而全面的 Transformer 變體文獻綜述。

          去年,谷歌發(fā)布的論文《Efficient Transformers: A Survey》對高效 Transformer 架構展開了綜述,但主要關注 attention 模塊的效率問題,對 Transformer 變體的分類比較模糊。

          近日,復旦大學計算機科學技術學院邱錫鵬教授團隊對種類繁多的 X-former 進行了綜述。首先簡要介紹了 Vanilla Transformer,提出 X-former 的新分類法。接著從架構修改、預訓練和應用三個角度介紹了各種 X-former。最后概述了未來研究的一些潛在方向。


          論文鏈接:https://arxiv.org/pdf/2106.04554.pdf

          回顧 Transformer 的發(fā)展

          Transformer 最初是作為機器翻譯的序列到序列模型提出的,而后來的研究表明,基于 Transformer 的預訓練模型(PTM) 在各項任務中都有最優(yōu)的表現(xiàn)。因此,Transformer 已成為 NLP 領域的首選架構,尤其是 PTM。除了語言相關的應用,Transformer 還被用于 CV、音頻處理,甚至是化學和生命科學。由于取得了成功,過去幾年研究者又提出了各種 Transformer 變體(又名 X-former)。這些 X-former 主要從以下三個不同的角度改進了最初的 Vanilla Transformer

          • 模型效率。應用 Transformer 的一個關鍵挑戰(zhàn)是其處理長序列時的效率低下,這主要是由于自注意力(self-attention)模塊的計算和內存復雜度。改進的方法包括輕量級 attention(例如稀疏 attention 變體)和分而治之的方法(例如循環(huán)和分層機制);

          • 模型泛化。由于 Transformer 是一種靈活的架構,并且對輸入數據的結構偏差幾乎沒有假設,因此很難在小規(guī)模數據上進行訓練。改進方法包括引入結構偏差或正則化,對大規(guī)模未標記數據進行預訓練等;

          • 模型適配。這一系列工作旨在使 Transformer 適應特定的下游任務和應用程序。


          雖然可以根據上述角度來組織 X-former,但許多現(xiàn)有的 X-former 可能會解決一個或幾個問題。例如,稀疏 attention 變體不但降低了計算復雜度,而且在輸入數據上引入了結構先驗以緩解小數據集上的過度擬合問題。因此,主要根據 X-former 改進 Vanilla Transformer 的方式進行分類更加有條理:架構修改、預訓練和應用。考慮到本次綜述的受眾可能來自不同的領域,研究者主要關注的是通用架構變體,僅簡要討論了預訓練和應用方面的具體變體。

          Vanilla Transformer

          架構

          Vanilla Transformer 是一個序列到序列的模型,由一個編碼器和一個解碼器組成,二者都是相同的塊 ?? 組成的堆棧。每個編碼器塊主要由一個多頭 self-attention 模塊和一個位置前饋網絡(FFN)組成。為了構建更深的模型,每個模塊周圍都采用了殘差連接,然后是層歸一化模塊。與編碼器塊相比,解碼器塊在多頭 self-attention 模塊和位置方面 FFN 之間額外插入了 cross-attention 模塊。此外,解碼器中的 self-attention 模塊用于防止每個位置影響后續(xù)位置。Vanilla Transformer 的整體架構如下圖所示:


          用法

          通常有三種不同的方式使用 Transformer 架構:

          • 使用編碼器 - 解碼器,通常用于序列到序列建模,例如神經機器翻譯;

          • 僅使用編碼器,編碼器的輸出用作輸入序列的表示,通常用于分類或序列標記問題;

          • 僅使用解碼器,其中也移除了編碼器 - 解碼器 cross-attention 模塊,通常用于序列生成,例如語言建模。


          Transformer 變體的的分類

          截止目前,領域研究人員從架構修改類型、預訓練方法和應用這三個方面提出了各種基于 vanilla Transformer 的變體模型。下圖顯示了 這些變體模型的類別:


          而下圖顯示了本文研究者的分類和一些代表性模型:


          Attention 模塊

          Self-attention 在 Transformer 中非常重要,但在實際應用中存在兩個挑戰(zhàn):

          • 復雜度。self-attention 的復雜度為 O(T^2·D)。因此,attention 模塊在處理長序列時會遇到瓶頸;

          • 結構先驗。Self-attention 對輸入沒有假設任何結構性偏差,甚至指令信息也需要從訓練數據中學習。因此,無預訓練的 Transformer 通常容易在中小型數據集上過擬合。


          Attention 機制的改進可以分為以下幾個方向:

          • 稀疏 attention。將稀疏偏差引入 attention 機制可以降低了復雜性;

          • 線性化 attention。解開 attention 矩陣與內核特征圖,然后以相反的順序計算 attention 以實現(xiàn)線性復雜度;

          • 原型和內存壓縮。這類方法減少了查詢或鍵值記憶對的數量,以減少注意力矩陣的大小;

          • 低階 self-Attention。這一系列工作捕獲了 self-Attention 的低階屬性;

          • Attention 與先驗。該研究探索了用先驗 attention 分布來補充或替代標準 attention;

          • 改進多頭機制。該系列研究探索了不同的替代多頭機制。


          稀疏 attention

          在標準的 self-attention 機制中,每個 token 都需要 attend 所有其他的 token。然而,據觀察,對于經過訓練的 Transformer,學習到的 attention 矩陣 A 在大多數數據點上通常非常稀疏。因此,可以通過結合結構偏差來限制每個查詢 attend 的查詢鍵對的數量來降低計算復雜度。

          從另一個角度來看,標準 attention 可以被視為一個完整的二部圖,其中每個查詢從所有內存節(jié)點接收信息并更新其表示。而稀疏 attention 可以看成是一個稀疏圖,其中刪除了節(jié)點之間的一些連接。基于確定稀疏連接的指標,研究者將這些方法分為兩類:基于位置和基于內容的稀疏 attention。

          原子稀疏 attention

          基于位置的稀疏 attention 之一是原子稀疏 attention,如下圖所示主要有五種模式。彩色方塊表示計算的 attention 分數,空白方塊表示放棄的 attention 分數。


          復合稀疏 attention

          而另一種基于位置的稀疏 attention 是復合稀疏 attention,下圖顯示了其五種主要模式,其中紅色框表示序列邊界。


          擴展稀疏 attention

          除了上述模式,一些現(xiàn)有的研究已經針對特定數據類型探索了擴展稀疏模式。下圖(a)展示了全局 attention 擴展的抽象視圖,其中全局節(jié)點是分層組織的,任何一對 token 都與二叉樹中的路徑相連。紅色框表示查詢位置,橙色節(jié)點 / 方塊表示查詢關注相應的 token。


          還有一些視覺數據的擴展。Image Transformer 探索了兩種類型的 attention:

          • 按光柵掃描順序展平圖像像素,然后應用塊局部稀疏 attention;
          • 2D 塊局部 attention,其中查詢塊和內存塊直接排列在 2D 板中,如上圖 (b) 所示。

          視覺數據稀疏模式的另一個例子,Axial Transformer 在圖像的每個軸上應用獨立的 attention 模塊。每個 attention 模塊沿一個軸混合信息,同時保持另一個軸的信息獨立,如上圖 (c) 所示。這可以理解為按光柵掃描順序水平和垂直展平圖像像素,然后分別應用具有圖像寬度和高度間隙的跨步 attention。

          線性化 attention

          下圖顯示了標準 self-attention 和線性化 linear-attention 的復雜度區(qū)別。


          查詢原型和內存壓縮

          除了使用稀疏 attention 或基于內核的線性化 attention 之外,還可以通過減少查詢或鍵值對的數量來降低 attention 的復雜度,這分別引向了查詢原型和內存壓縮的方法。

          在查詢原型設計中,幾個查詢原型作為計算 attention 分布的主要來源。該模型要么將分布復制到表示的查詢的位置,要么用離散均勻分布填充這些位置。

          下圖 (a) 說明了查詢原型的計算流程。除了通過查詢原型減少查詢數量外,還可以通過在應用 attention 機制之前減少鍵值對的數量(壓縮鍵值內存)來降低復雜度,如下圖(b)所示。


          先驗 attention

          Attention 機制通常將預期值輸出為向量的加權和,其中權重是值上的 attention 分布。傳統(tǒng)上,分布是從輸入生成的,例如 Vanilla Transformer 中的 softmax(QK?)。一般情況下,attention 分布也可以來自其他來源,也就是先驗。先驗注意力分布可以補充或替代輸入產生的分布。Attention 的這種表述可以抽象為具有先驗 attention,如下圖所示。在大多數情況下,兩個 attention 分布的融合可以通過在應用 softmax 之前計算對應于先驗 attention 和生成 attention 的分數的加權和來完成。


          改進的多頭機制

          多頭 attention 的吸引力在于能夠共同 attend 來自不同位置的不同表示子空間的信息。然而,沒有機制可以保證不同的 attention 頭確實地捕捉到不同的特征。

          如下圖所示,多頭機制下三種跨度屏蔽函數??(??)。橫軸代表距離??,縱軸代表掩碼值。


          其他模塊級修改

          位置的重要性

          驗證卷積和循環(huán)網絡不是置換等變是很簡單的。然而,Transformer 中的 self-attention 模塊和位置前饋層都是置換等變的,這在建模問題時可能是一個問題。例如,在對文本序列建模時,單詞的順序很重要,因此在 Transformer 架構中正確編碼單詞的位置至關重要。因此,需要額外的機制將位置信息注入到 Transformer 中。一種常見的設計是首先使用向量表示位置信息,然后將向量作為附加輸入注入模型。

          層的歸一化

          層歸一化 ( Layer Normalization, LN) 以及殘差連接被認為是一種穩(wěn)定深度網絡訓練的機制(如減輕不適定梯度和模型退化)。在 Vanilla Transformer 中,LN 層位于殘差塊之間,被稱為 post-LN 。后來的 Transformer 實現(xiàn)將 LN 層放在 attention 或 FFN 之前的殘差連接內,在最后一層之后有一個額外的 LN 來控制最終輸出的大小,即 pre-LN。Pre-LN 已被許多后續(xù)研究和實現(xiàn)所采用。pre-LN 和 post-LN 的區(qū)別如下圖所示。


          位置方面的 FFN

          盡管很簡單,但位置前饋網絡 (feed-forward network, FFN) 層對于 Transformer 實現(xiàn)良好性能至關重要。研究者觀察到簡單地堆疊 self-attention 模塊會導致等級崩潰問題以及 token 均勻性歸納偏差,而前饋層是緩解此問題的重要構建塊之一。本節(jié)探索了研究者對 FFN 模塊的修改。

          架構級修改

          在本章中,研究者介紹了架構層面的 X-former 變體模型。

          輕量級 Transformer

          除了在模塊層面為減輕計算開銷所做的努力外,領域內還出現(xiàn)了一些在更高層面進行修改的輕量級 Transformer 模型,如 Lite Transformer、Funnel Transformer 和 DeLighT。 

          Strengthening Cross-Block Connectivity 

          在 deep Transformer 編碼器 - 解碼器模型中,解碼器中的 cross-attention 模塊僅利用編碼器的最終輸出,因此誤差信號必須沿著編碼器的深度進行遍歷。這使得 Transformer 更易于受到梯度消失等優(yōu)化問題的影響。

          Transparent Attention [8] 使用每個 cross-attention 模塊中所有編碼器層(包括嵌入層)上的編碼器表示的加權和。對于第 j 個編碼器塊,cross-attention 應表示如下: 


          Feedback Transformer[34] 提出在 Transformer 解碼器添加反饋機制,其中每個位置均關注來自所有層的歷史表示的加權和:


          自適應計算時間

          與大多數神經模型一樣,Vanilla Transformer 使用固定(學習的)計算程序來處理每個輸入。一個有趣且有發(fā)展?jié)摿Φ男薷氖鞘褂嬎銜r間以輸入為條件,即在 Transformer 模型中引入自適應計算時間(Adaptive Computation Time, ACT)。

          如下圖 12(a)所示,Universal Transformer (UT) 結合了深度循環(huán)(recurrence-over-depth)機制,該機制使用一個在深度上共享的模塊來迭代地改進所有符號的表示;圖 12(b)中,Conditional Computation Transformer (CCT) 在每個自注意力和前饋層添加一個門控模塊來決定是否跳過當前層;圖 12(c)中,與 UT 中使用的動態(tài)停機機制類似,有一條工作線專門用于調整每個輸入的層數以實現(xiàn)良好的速度 - 準確率權衡,這稱為「提前退出機制」(early exit mechanism)。


          利用「分而治之」策略的 Transformer

          自注意力對序列長度的二次復雜度會顯著限制一些下游任務的性能。研究者確定了兩類有具有代表性的方法,分別是循環(huán)和層級 Transformer,具體如下圖 13 所示


          在循環(huán) Transformer 中,維護一個高速緩存(cache memory)用來合并歷史信息。在處理一段文本時,該網絡從緩存中的讀取作為額外輸入。處理完成后,網絡通過簡單地復制隱藏狀態(tài)或使用更復雜的機制來寫入內存。

          層級 Transformer 將輸入分層分解為更細粒度的元素。低級特征首先被饋入到 Transformer 編碼器,產生輸出表示,然后使用池化或其他操作來聚合以形成高級特征,然后通過高級 Transformer 進行處理。

          ? THE END 

          轉載請聯(lián)系原公眾號獲得授權

          投稿或尋求報道:[email protected]


          點個在看 paper不斷!

          瀏覽 52
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  男女操逼在线免费观看 | 无码动漫在线黄 | 日韩国产在线观看 | 欧美做爱无吗码 | 男人的天堂最新资源 |