万字长文带你一览ICLR2020最新Transformers进展(下)
原文鏈接:http://gsarti.com/post/iclr2020-transformers/
作者:Gabriele Sarti
編譯:樸素人工智能
3. Embeddings
原始的Transformer依靠兩組嵌入來表示輸入序列:
詞匯表中存在的每個標記的學習單詞嵌入(word embedding),用作模型的標記向量表示。
位置嵌入(position embedding),用于注入有關(guān)token在序列中的位置的信息。對于位置和維度,位置嵌入與正弦周期函數(shù)相對應(yīng),根據(jù)經(jīng)驗顯示這些正弦周期函數(shù)與通過學習獲得的嵌入效果相當:
對于能夠在多個輸入段上運行的類似BERT的模型,還使用第三組可學習的分段嵌入(segment embedding)來區(qū)分屬于不同句子的token。
所有這些嵌入都具有相同的尺寸,并被加在一起以獲得輸入最終的表示。本節(jié)介紹的方法旨在給嵌入注入更多結(jié)構(gòu),或優(yōu)化其尺寸以提高效率。
Position-Aware Complex Word Embeddings
Introduced in: Encoding word order in complex[1] embeddings by Wang et al.
盡管PE在輸入中捕獲了不同的位置,但它們沒有明確考慮這些位置之間的關(guān)系,即順序關(guān)系(標準PE只關(guān)注距離,不關(guān)注先后,可以自己推導看看)。Transformer-XL已通過利用單詞之間的相對距離而不是原始位置索引來解決此問題。
本文提出的改進是將單詞嵌入泛化為與位置相關(guān)的連續(xù)函數(shù),并擴展到復數(shù)值域,以便從更豐富的表示形式中獲益。生成的復值嵌入(complex-valued embeddings)引入了新的關(guān)于幅度、頻率和初始相位的參數(shù),這些參數(shù)確定了嵌入的各種屬性(例如位置敏感性)。實驗結(jié)果表明,具有參數(shù)共享方案的復值嵌入優(yōu)于以前的嵌入方法,而可訓練參數(shù)的數(shù)量卻沒有顯著增加。
Hierarchical Embeddings
Introduced in: Tree-Structured Attention with Hierarchical Accumulation[2] by Nguyen et al.
在之前對樹狀結(jié)構(gòu)注意的概述中,我們看到了如何使用層次累加來形成基于非葉子節(jié)點后代的表示。但是,此過程的缺點是沒有考慮后代的層次結(jié)構(gòu)。
通過將垂直和水平嵌入矩陣連接起來,分別表示分支內(nèi)部的層次結(jié)構(gòu)順序和子樹中同級節(jié)點之間的關(guān)系,使得分層嵌入(Hierarchical embeddings) 可以注入更多的結(jié)構(gòu)信息。這些嵌入在注意力頭之間共享,因此僅占總參數(shù)的0.1%。
Factorized Embedding Parametrization
Introduced in: ALBERT: A Lite BERT for Self-supervised Learning of Language Representations[3] by Lan et al.
在基于BERT和Transformer-XL的最新模型中,embedding大小與隱藏層的大小有關(guān),即。這在實際操作時有很大的弊端:要增強模型的上下文表示能力通常要增大隱層,這會導致嵌入矩陣的變大,因為,其中是詞匯量。即使對于相對較小的隱藏層尺寸,這中關(guān)系也會導致數(shù)十億個參數(shù),而且這些參數(shù)在訓練期間很少更新。
ALBERT作者建議在和(我感覺,這個應(yīng)該是)之間插入一個投影使兩個維度獨立,這種方法在時對減少參數(shù)量特別有效。一個,? 包含21M參數(shù)(表3中為89M,而BERT為110M)的ALBERT,可以在許多下游任務(wù)上獲得與具有相同配置的BERT基礎(chǔ)相當?shù)男阅堋?/p>
4. 模型架構(gòu)
原始的Transformer體系結(jié)構(gòu)由編碼器和解碼器組成,每個編碼器和解碼器由相同層的堆疊序列組成,這些堆疊序列對具有相同尺寸的嵌入進行轉(zhuǎn)換(因此稱為Transformer)。Transformer編碼器的每一層都由兩個子層:一個多頭自我注意機制和一個前饋網(wǎng)絡(luò)組成,前者被殘差連接所包圍,然后進行層歸一化。解碼器還包括第三層,對編碼器的輸出執(zhí)行多頭自我注意,并解碼器的自注意力子層也和編碼器不同。因為由于自回歸語言模型的要求,這里需要避免后文參與運算(否則就泄露了)。
Transformer的雙向變體(如BERT)放棄了解碼器結(jié)構(gòu),僅專注于編碼器,以生成各種任務(wù)(包括MLM)所需的上下文嵌入。
特別的,Transformer-XL為Transformer網(wǎng)絡(luò)引入了一種內(nèi)存概念,其中在前段中獲得的隱藏狀態(tài)會被重用以更好地對長程依賴性進行建模,從而防止上下文碎片化。
關(guān)于Transformer-XL可以參考我們之前的文章[預(yù)訓練語言模型專題] Transformer-XL 超長上下文注意力模型。
以下方法嘗試在當前結(jié)構(gòu)的基礎(chǔ)上進一步改善長程建模、減少參數(shù)數(shù)量或優(yōu)化模型執(zhí)行的計算。
Compressive Memory
Introduced in: Compressive Transformers for Long-Range Sequence Modelling[4] by Rae et al.
在Transformer-XL的循環(huán)存儲方法中,舊記憶會被丟棄,從而能夠以先進先出的方式存儲新的記憶。此方法僅考慮先后遠近,而不考慮可能會丟棄的信息的相關(guān)性。
Compressive Transformers添加了新的壓縮記憶機制,保存歷史記憶的粗糙表示,而非直接丟棄舊記憶。作者嘗試使用多種壓縮函數(shù),最后選擇一種注意力重建損失函數(shù)(attention-reconstruction loss),該損失會丟棄網(wǎng)絡(luò)未被注意(not attended)到的信息。壓縮內(nèi)存的使用顯示了對少見單詞建模的巨大改進,實驗證明網(wǎng)絡(luò)通過壓縮機制學習到了如何保留有用的信息。
Reversible Layers
Introduced in: Reformer: The Efficient Transforme[5]r by Kitaev et al.
可逆性(reversibility)背后的主要思想是可以通過僅使用后續(xù)層的激活情況和模型參數(shù)來恢復網(wǎng)絡(luò)任意層中的激活情況。當與Transformer模型結(jié)合時,它變得特別有趣,因為Transformers通常由一大堆堆疊的層組成,并且模型的內(nèi)存復雜度隨層數(shù)線性增長。
通過將自注意力和前饋子層組合成為單個可逆層,Reformer在Transformer體系結(jié)構(gòu)中引入了可逆性。這允許僅在存儲最上層的激活情況,并通過在反向傳播期間反轉(zhuǎn)各層來恢復所有其他激活,從而使模型大小與層數(shù)無關(guān)。通過在前饋和可逆層中進行分塊獨立計算,還可以進一步改進空間復雜性。
Cross-Layer Parameter Sharing
Introduced in: ALBERT: A Lite BERT for Self-supervised Learning of Language Representations[6] by Lan et al.
跨層參數(shù)共享是一種簡單但非常有效的方法,可以大大減少深度Transformer模型內(nèi)部的參數(shù)數(shù)量,正如ICLR 2019 在Universal Transformer[7]論文中所展示的那樣。
ALBERT作者對自注意子層和前饋子層的跨層參數(shù)共享進行了實驗,發(fā)現(xiàn)共享權(quán)重矩陣可以將模型的總參數(shù)數(shù)量大大減少,當結(jié)合前面的嵌入分解使時,模型大小可以變?yōu)樵瓉淼钠叻种?#xff0c;而對最終結(jié)果的影響很小。參數(shù)共享還可以使層間的過渡更加平滑,有效地穩(wěn)定網(wǎng)絡(luò)參數(shù)。
Adaptive Depth Estimation
Introduced in: Depth-Adaptive Transformer[8] by Elbayad et al.
不管輸入語句的復雜度如何,當前模型為每個輸入執(zhí)行的計算都是固定的。這個問題已經(jīng)在Universal Transformer中被提出,Universal Transformer建議使用自適應(yīng)計算時間(ACT)重復使用相同的層,但是由此導致的每層權(quán)重的增加大大降低了網(wǎng)絡(luò)的計算速度。
Depth-adaptive Transformer通過使用標準Transformer編碼器對序列進行編碼并以可變步長對其進行解碼來解決此問題。為此,將一個分類器連接到解碼器的每層后面,然后使用首先在計算機視覺領(lǐng)域引入的anytime prediction方法,通過如圖所示的對齊和混合訓練(aligned and mixed training)對整個集合進行訓練。作者探索了不同的機制來自適應(yīng)地控制序列級別和token 級別的計算量,并得出結(jié)論:自適應(yīng)可以縮減超過75%的解碼器層,而不會對機器翻譯任務(wù)造成任何性能損失。
(這篇沒怎么看懂,大家可以參考知乎上的一些介紹)
結(jié)論
在ICLR 2020上引入的許多方法為解決原始Transformer從自注意力計算到模型結(jié)構(gòu)本身的問題提供了大量的解決方案。
其中的許多方法似乎對Transformer的未來發(fā)展很有幫助,而且重要的是,一旦其中一些方法被組合起來,就有可能相互補充產(chǎn)生更進一步的改進。
我希望在ICLR 2021能看到更多的工作,將現(xiàn)存的策略組合在一起,呈現(xiàn)它們之間最有效的組合。
參考資料
[1]
Encoding word order in complex: https://iclr.cc/virtual_2020/poster_Hke-WTVtwr.html
[2]Tree-Structured Attention with Hierarchical Accumulation: https://iclr.cc/virtual_2020/poster_HJxK5pEYvr.html
[3]ALBERT: A Lite BERT for Self-supervised Learning of Language Representations: https://iclr.cc/virtual_2020/poster_H1eA7AEtvS.html
[4]Compressive Transformers for Long-Range Sequence Modelling: https://iclr.cc/virtual_2020/poster_SylKikSYDH.html
[5]Reformer: The Efficient Transforme: https://iclr.cc/virtual_2020/poster_rkgNKkHtvB.html
[6]ALBERT: A Lite BERT for Self-supervised Learning of Language Representations: https://iclr.cc/virtual_2020/poster_H1eA7AEtvS.html
[7]Universal Transformer: https://arxiv.org/abs/1807.03819
[8]Depth-Adaptive Transformer: https://iclr.cc/virtual_2020/poster_SJg7KhVKPH.html
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯AI基礎(chǔ)下載(pdf更新到25集)機器學習的數(shù)學基礎(chǔ)專輯本站qq群1003271085,加入微信群請回復“加群”獲取一折本站知識星球優(yōu)惠券,復制鏈接直接打開:https://t.zsxq.com/yFQV7am喜歡文章,點個在看 與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的万字长文带你一览ICLR2020最新Transformers进展(下)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 万字长文带你一览ICLR2020最新Tr
- 下一篇: 免费直播公开课 | 图卷积神经网络, B