免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

【深度學(xué)習(xí)】Transformer長大了,它的兄弟姐妹們呢?(含Transformers超細(xì)節(jié)知識點...

 520jefferson 2021-07-19

最近復(fù)旦放出了一篇各種Transformer的變體的綜述(重心放在對Transformer結(jié)構(gòu)(模塊級別和架構(gòu)級別)改良模型的介紹),打算在空閑時間把這篇文章梳理一下:

  • 知乎:https://zhuanlan.zhihu.com/p/379057424

  • arxiv:https:///abs/2106.04554

Part1背景

1Transformer的優(yōu)點

  • 可并行
  • 弱歸納偏置,通用性強(qiáng)
  • 特征抽取能力強(qiáng)
  • 自編碼上下文雙向建模

2Transformer的缺點

  • self-attention 計算復(fù)雜度高,序列長度上升,復(fù)雜度指數(shù)級上升
  • 弱歸納偏置增加了小數(shù)據(jù)集上過擬合的風(fēng)險

3原生Transformer(Vanilla Transformer)

  • sequence-to-sequence 模型(encoder and a decoder)
  • 堆疊 ?? 個相同的 blocks
  • 每個 encoder block 主要由多頭自注意力模塊(multi-head self-attention module)和位置相關(guān)全連接(position-wise feed-forward network (FFN))組成,構(gòu)建的時候還有殘差連接(residual connection)以及層歸一化(Layer Normalization)。
  • 與encoder相比,decoder在多頭自注意模塊和位置相關(guān)全連接之間額外插入了交叉注意模塊。
圖片

注意力模塊(Attention Modules)

多頭注意力層,核心點在于 Q/K/V 三個矩陣,其中 Q/K 矩陣生成權(quán)重矩陣(經(jīng)由softmax),隨后和V矩陣得到加權(quán)和。

這個過程重復(fù)了 n_heads 次,這個 n_heads 代表的就是頭的數(shù)目,這里需要注意的是我們需要確保 hidden_size/n_heads 需要為一個整數(shù),不然會報錯。

圖片圖片

基于位置的全連接(Position-wise FFN)

注意:Transformer中的FFN全稱是Position-wise Feed-Forward Networks,重點就是這個position-wise,區(qū)別于普通的全連接網(wǎng)絡(luò),這里FFN的輸入是序列中每個位置上的元素,而不是整個序列,所以每個元素完全可以獨立計算,最極端節(jié)省內(nèi)存的做法是遍歷序列,每次只取一個元素得到FFN的結(jié)果,但是這樣做時間消耗太大,“分段”的含義就是做下折中,將序列分成 段,也就是 個子序列,每次讀取一個子序列進(jìn)行FFN計算,最后將 份的結(jié)果拼接。分段FFN只是一種計算上的技巧,計算結(jié)果和原始FFN完全一致,所以不會影響到模型效果,好處是不需要一次性將整個序列 讀入內(nèi)存,劣勢當(dāng)然是會增加額外的時間開銷了。圖片

殘差與歸一化(Residual Connection and Normalization)

殘差連接一般出現(xiàn)在比較深的模型中,可以使得信息前后向傳播更加順暢,緩解了梯度破碎問題。為什么這里使用 Layer Normalization,而不是BN,這里直白的回答就是,BN的效果差,所以不用。圖片

位置編碼(Position Encodings)

因為Transformer不引入RNN或CNN,所以它忽略了位置信息(尤其是對于encoder)。因此Transformer使用Position Encodings來建模token之間的順序。

4使用方法(Usage)

  • Encoder-Decoder 因為具有encoder和decoder,所以可以用作Seq2Seq任務(wù);
  • Encoder only 通常將Encoder作為文本的編碼器,通常用于文本分類任務(wù);
  • Decoder only 只使用decoder時,需要將encoder和decoder的交叉編碼器刪除,通常用作文本生成任務(wù)。

5模型分析(Model Analysis)

為了分析Tranformer的計算復(fù)雜度,本文分析了其主要的兩個組件:self-attention和position-wise FFN。具體的對比如下表所示,本文假設(shè)隱藏層的維度為??,輸入的序列長度為??。FFN的中間單元數(shù)量設(shè)置為4??,key和value的維度設(shè)置為??/?? 。圖片

當(dāng)輸入數(shù)據(jù)的長度較短時, 隱藏層的維度??主導(dǎo)了self-attention和position-wise FFN的復(fù)雜度。此時Transformer的計算瓶頸在于FFN,但是隨著序列長度的增加,序列長度??逐漸主導(dǎo)復(fù)雜度,此時Transformer的計算瓶頸在于self-attention。此外,自注意力的計算需要存儲?? × ?? 的注意力分布矩陣,這使得Transformer的計算在長序列場景(例如,長文本文檔和高分辨率圖像的像素級建模)是不可行的。

6Transformer和其他網(wǎng)絡(luò)的對比(Comparing Transformer to Other Network Types)

Self-Attention的分析(Analysis of Self-Attention)

本文將self-attention和其余幾個神經(jīng)網(wǎng)絡(luò)模型進(jìn)行了對比,總結(jié)出了以下幾點Transformer的優(yōu)點:

  • self-attention具有和FFN相同的最大路徑長度,因此Transformer更適合長距離依賴的建模。但是相對于FNN,Transformer的參數(shù)的有效性更高且對于變長序列的處理更好。
  • 由于卷積層的感受野有限,人們通常需要堆疊一個深的網(wǎng)絡(luò)來擁有一個全局感受野。另一方面,恒定的最大路徑長度允許self-attention建模恒定層數(shù)之間的長期依賴性。
  • 恒定的順序操作和最大路徑長度使得self-attention比RNN更具并行性,在遠(yuǎn)程建模中表現(xiàn)更好。

注意:最大路徑長度指的是從任何輸入位置通過前向和后向信號的到達(dá)任意輸出位置的最大長度。較短的句子長度意味著更好的學(xué)習(xí)長期依賴性的能力。

圖片

歸納偏置(In Terms of Inductive Bias)

歸納偏置其實可以理解為:從現(xiàn)實生活中觀察到的現(xiàn)象中歸納出一定的規(guī)則(heuristics),然后對模型做一定的約束,從而可以起到“模型選擇”的作用,即從假設(shè)空間中選擇出更符合現(xiàn)實規(guī)則的模型。

在具體的深度學(xué)習(xí)模型中:CNN具有平移不變性和局部性的歸納偏置。類似地,RNN因為其馬爾可夫結(jié)構(gòu)具有時間不變性和局部性的歸納偏置。

而Transformer很少對數(shù)據(jù)的結(jié)構(gòu)信息進(jìn)行假設(shè)。這使得Transformer成為一個通用且靈活的體系結(jié)構(gòu)。但是這樣也有其對應(yīng)的缺點。缺少結(jié)構(gòu)歸納偏置使得Transformer容易對小規(guī)模數(shù)據(jù)過擬合。

另外一種和Transformer類似的模型則是Graph Neural Networks (GNNs),Transformer可以看作是一個定義在一個完全有向圖(帶環(huán))上的GNN,其中每個輸入都是GNN中的一個節(jié)點。Transformer和GNNs之間的關(guān)鍵區(qū)別在于Transformer沒有引入關(guān)于輸入數(shù)據(jù)結(jié)構(gòu)的先驗知識,Transformer中的消息傳遞過程完全依賴于文本的相似性度量。

Part2Transformer的分類(TAXONOMY OF TRANSFORMERS)

到目前為止,研究人員已經(jīng)基于vanilla Transformer從三個角度提出了各種各樣的模型:體系結(jié)構(gòu)修改的類型;預(yù)訓(xùn)練方法;應(yīng)用。

圖片圖片

7注意力機(jī)制(Attention)

注意力模塊是Transformer中的核心模塊,實際應(yīng)用時通常會遇到以下問題:

  • 復(fù)雜度過高:上一節(jié)中提到了Transformer隨著序列長度增加,復(fù)雜度指數(shù)上升的問題。序列長度變長的話,self-attention成為Transformer計算效率的瓶頸。
  • 缺少結(jié)構(gòu)先驗:自注意力機(jī)制并沒有引入任何的結(jié)構(gòu)假設(shè),甚至順序信息都還要從訓(xùn)練數(shù)據(jù)中學(xué)習(xí)得到,因為未預(yù)訓(xùn)練過的Transformer可能會在小數(shù)據(jù)集上過擬合。

針對上述問題的改進(jìn)主要可以分為以下幾種:

  • 稀疏注意力(Sparse Attention):采用稀疏注意力機(jī)制,將O(n)依賴降至線性,解決了BERT模型中的全注意力機(jī)制帶來的序列長度二次依賴限制,同時兼顧更長的上下文。
  • 線性化的注意力(Linearized Attention) :為了給計算復(fù)雜度降低到線性,使用核函數(shù)來簡化Attention的計算過程,并且替換掉SoftMax。
  • Prototype and Memory Compression:這類方法減少了Q和KV內(nèi)存對的數(shù)量,以減小注意力矩陣的大小。
  • Low-rank Self-Attention:這類工作抓住了自我注意力的low rank屬性。
  • 注意力先驗(Attention with Prior):這一系列的研究旨在補(bǔ)充或取代具有先驗的注意分布標(biāo)準(zhǔn)注意力機(jī)制。
  • 改善多頭自注意力機(jī)制:這一系列研究探索了不同可替代多頭機(jī)制的結(jié)構(gòu)。

8稀疏注意力(Sparse Attention)

在標(biāo)準(zhǔn)的Transformer中,每個token都需要和其他的所有token做運(yùn)算,但是有研究人員觀察到針對一個訓(xùn)練好的Transformer,其中的注意力矩陣通常非常稀疏。因此,通過結(jié)合結(jié)構(gòu)偏差來限制每個Q關(guān)注的Q-K對的數(shù)量,可以降低計算復(fù)雜度。在該限制下,只需要根據(jù)預(yù)定義的模式計算Q-K對的相似度即可。圖片

上述公式得到的結(jié)果是一個非歸一化的矩陣,在具體的實現(xiàn)中,矩陣中的一般不會被存儲。

從另一個角度來看,標(biāo)準(zhǔn)的注意力可以看作是一個完整的二部圖,其中每個Q接收來自所有存儲節(jié)點的信息并更新其表示。稀疏注意可以看作是一個稀疏圖,其中刪除了節(jié)點之間的一些連接。我們將確定稀疏連接的度量分為兩類:基于位置的稀疏注意基于內(nèi)容的稀疏注意。

基于位置的稀疏注意力

在基于位置的稀疏注意力中,注意力矩陣根據(jù)一些預(yù)先定義的pattern進(jìn)行限制。雖然這些稀疏模式有不同的形式,但本文發(fā)現(xiàn)其中一些可以分解為原子類型的稀疏pattern。本文首先確定一些原子類型的稀疏pattern,然后描述這些pattern是如何在一些現(xiàn)有的工作應(yīng)用的。最后本文介紹了一些針對特定數(shù)據(jù)類型的擴(kuò)展稀疏pattern。

原子稀疏注意力(Atomic Sparse Attention)

主要有五種原子稀疏注意模式,如下圖所示。

  • Global Attention. 為了緩解在稀疏注意中對長距離依賴性建模能力的退化,可以添加一些全局節(jié)點作為節(jié)點間信息傳播的中心。這些全局節(jié)點可以attend到序列中的所有節(jié)點,并且整個序列也可以attend到這些全局節(jié)點,其中注意矩陣如圖4(a)所示。
  • Band Attention. 又稱之為滑動窗口注意力或局部注意力。由于大多數(shù)數(shù)據(jù)都具有很強(qiáng)的局部性,因此很自然地會限制每個Q去關(guān)注其鄰居節(jié)點。這種稀疏模式被廣泛采用的一類是Band Attention,其中注意矩陣如圖4(b)所示。
  • Dilated Attention. 與擴(kuò)張的CNN類似,通過使用具有間隙的擴(kuò)張窗口,可以潛在地增加Band Attention的感受野,而不增加計算復(fù)雜度。其中注意矩陣如圖4(c)所示。這可以很容易地擴(kuò)展到跨越式的注意力機(jī)制,窗口大小不受限制,但???? 需要設(shè)置為更大的值。
  • Random Attention. 為了增加非局部交互的能力,對每個Q隨機(jī)抽取一些邊,如圖4(d)所示。這是基于隨機(jī)圖(Erd?s–Rényi隨機(jī)圖)可以具有與完全圖相似的譜性質(zhì),從而通過在隨機(jī)圖上的游走可以得到更加快速的mixing時間。
  • Block Local Attention. 這類注意力機(jī)制將輸入序列分割成若干個互不重疊的查詢塊,每個查詢塊與一個本地存儲塊相關(guān)聯(lián)。查詢塊中的所有Q只涉及相應(yīng)內(nèi)存塊中的K。圖4(e)展示了存儲器塊與其對應(yīng)的查詢塊。
圖片

復(fù)合稀疏注意力(Compound Sparse Attention)

現(xiàn)有的稀疏注意力通常由以上原子模式中的一種以上組成。圖5顯示出了一些代表性的復(fù)合稀疏注意模式。圖片

  • Star Transformer結(jié)合了Band Attention和Global Attention.。具體來看Star Transformer僅包括一個全局節(jié)點和一個寬度為3的Band Attention,其中任何一對非相鄰節(jié)點通過一個共享的全局節(jié)點連接,相鄰節(jié)點之間直接連接。這種稀疏模式可以在節(jié)點間形成星形圖。

  • Longformer結(jié)合了Band Attention和internal global-node attention,選擇做分類的[CLS]token以及問答任務(wù)中的所有的問題tokens作為全局節(jié)點。此外還用擴(kuò)大的Dilated Attention代替上層的一些Band Attention頭,以增加感受野而不增加計算量。

  • ETC(Extended Transformer Construction)作為和Longformer同時出現(xiàn)的工作,ETC結(jié)合了band attention和external global-node attention。ETC還使用了一種[MASK]機(jī)制,用于處理結(jié)構(gòu)化輸入和調(diào)整對比預(yù)測編碼(CPC)以用于預(yù)訓(xùn)練。

  • 除了band attention和external global-node attention之外,Big bird還使用額外的隨機(jī)注意力來接近完全注意力。相應(yīng)的理論分析表明,使用稀疏編碼器和稀疏解碼器可以模擬任何類型的圖靈機(jī),這同時解釋了這些稀疏注意模型的有效性。

  • Sparse Transformer使用了一種因式分解的注意力機(jī)制,其中針對不同類型的數(shù)據(jù)設(shè)計了不同的稀疏模式。對于具有周期性結(jié)構(gòu)的數(shù)據(jù)(例如圖像),它使用了band attention和strided attention的組合。而對于沒有周期結(jié)構(gòu)的數(shù)據(jù)(如文本),則采用block local attention與global attention相結(jié)合的組合,全局節(jié)點來自輸入序列中的固定位置。

擴(kuò)展的稀疏注意力(Extended Sparse Attention)

除了上述模式之外,一些現(xiàn)有的研究還探索了特定數(shù)據(jù)類型的擴(kuò)展稀疏模式。

對于文本數(shù)據(jù),BP Transformer構(gòu)造了一個二叉樹,其中所有標(biāo)記都是葉節(jié)點,內(nèi)部節(jié)點是包含許多標(biāo)記的span節(jié)點。圖中的邊是這樣構(gòu)造的:每個葉節(jié)點都連接到它的鄰居葉節(jié)點和更高級別的span節(jié)點,這些節(jié)點包含來自更長距離的token。這種方法可以看作是全局注意的一種擴(kuò)展,其中全局節(jié)點是分層組織的,任何一對token都與二叉樹中的路徑相連接。圖6(a)展示出了該方法的抽象視圖。

對于視覺數(shù)據(jù)也有一些擴(kuò)展。Image Transformer探索了兩種類型的注意力模式:

  • 按光柵掃描順序展平圖像像素,然后應(yīng)用block local稀疏注意力;
  • 2D block local注意力,其中查詢塊和存儲塊直接排列在2D板中,如圖6(b)所示。作為視覺數(shù)據(jù)稀疏模式的另一個例子,Axial Transformer在圖像的每個軸上應(yīng)用獨立的注意力模塊。如圖6(c)所示,每個注意模力塊沿一個軸混合信息,同時保持沿另一個軸的信息獨立。這可以理解為以光柵掃描水平和垂直展平的圖像像素,然后分別使用圖像寬度和高度的間隙來應(yīng)用跨越式注意力。圖片

基于內(nèi)容的稀疏注意力

另一個方向的工作是基于輸入內(nèi)容創(chuàng)建稀疏圖,即構(gòu)造輸入中的稀疏連接時是有條件的。

構(gòu)造基于內(nèi)容的稀疏圖的簡單方法是選擇那些可能與給定Q具有較大相似性分?jǐn)?shù)的K。為了有效地構(gòu)造稀疏圖,可以將其看做Maximum Inner Product Search (MIPS)問題,即在不計算所有點積項的情況下,通過一個查詢Q來尋找與其具有最大點積的K。Routing Transformer使用了k-means聚類——對查詢queries和keys在同一簇質(zhì)心向量集合上進(jìn)行聚類。每個查詢Q只關(guān)注與其屬于同一簇內(nèi)的keys。在訓(xùn)練的時候,會使用分配的向量指數(shù)移動平均數(shù)除以簇的數(shù)量來更新每個簇的質(zhì)心向量。

圖片

表示的是??這個簇中包含的向量的數(shù)量, 是一個可學(xué)習(xí)的超參數(shù)。

假設(shè)表示第個查詢涉及的Key的索引集合,在Routing Transformer中的表示為:圖片

Reformer使用了局部敏感哈希(LSH)算法來為每一個query選擇對應(yīng)的K-V對,LSH注意允許每個token只關(guān)注同一散列桶中的token。其基本思想是使用LSH函數(shù)將Query和Key散列到多個bucket中,相似的項有很高的概率落在同一個bucket中。

具體來看,他們使用隨機(jī)矩陣方法作為LSH的函數(shù)。假設(shè)表示bucket的數(shù)量,給定隨機(jī)矩陣大小為,則LSH函數(shù)的計算公式為:圖片

LSH允許Query只關(guān)注具有索引的K-V對:圖片

  • 稀疏自適應(yīng)連接(Sparse Adaptive Connection,SAC)將輸入序列視為一個圖,并學(xué)習(xí)構(gòu)造注意力邊,以使用自適應(yīng)稀疏連接提高特定任務(wù)的性能。SAC使用LSTM邊緣預(yù)測器來構(gòu)造token之間的邊。在沒有遍的情況下,采用強(qiáng)化學(xué)習(xí)的方法訓(xùn)練邊緣預(yù)測器。
  • Sparse Sinkhorn Attention(SSA)首先將查詢Q和鍵K分成幾個塊,并為每個查詢塊分配一個鍵塊。每個查詢Q只允許關(guān)注分配給其相應(yīng)鍵塊中的鍵。鍵塊的分配由排序網(wǎng)絡(luò)控制,該網(wǎng)絡(luò)是一個使用Sinkhorn歸一化產(chǎn)生的雙隨機(jī)矩陣,該矩陣用作分配時的排列矩陣。SSA使用這種基于內(nèi)容的block sparse attention以及上面中介紹的block local attention以增強(qiáng)模型的局部建模能力。

好了,本次的分享就是這些,剩余部分之后會繼續(xù)解讀。希望能對大家有幫助。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多