7. Transformer-XL原理介紹


1. 語言模型

2. Attention Is All You Need(Transformer)算法原理解析

3. ELMo算法原理解析

4. OpenAI GPT算法原理解析

5. BERT算法原理解析

6. 從Encoder-Decoder(Seq2Seq)理解Attention的本質

7. Transformer-XL原理介紹

1. 前言

2017年6月,Google Brain在論文《Attention Is All You Need》中提出的Transformer架構,完全摒棄了RNN的循環機制,采用一種self-attention的方式進行全局處理。我也在博客Attention Is All You Need(Transformer)算法原理解析有所介紹。

Transformer結構的特點:

  1. 全部用self-attention的自注意力機制。
  2. 在self-attention的基礎上改進了Multi-Attention和Mask Multi-Attention兩種多頭注意力機制。
  3. 網絡由多個層組成,每個層都由多頭注意力機制前饋網絡構成。
  4. 由於在全局進行注意力機制的計算,忽略了序列中最重要的位置信息,添加了位置編碼(Position Encoding),使用正弦函數完成,為每個部分的位置生成位置向量。

image

2. Vanilla Transformer

Vanilla Transformer是Transformer和Transformer-XL中間過度的一個算法,所以在介紹Transformer-XL之前我們先來了解下Vanilla Transformer。

Vanilla Transformer的原理圖:
image

Vanilla Transformer論文中使用64層模型,並僅限於處理 512個字符這種相對較短的輸入,因此它將輸入分成段,並分別從每個段中進行學習,如下圖所示。 在測試階段如需處理較長的輸入,該模型會在每一步中將輸入向右移動一個字符,以此實現對單個字符的預測。

Vanilla Transformer的三個缺點:

  • 上下文長度受限:字符之間的最大依賴距離受輸入長度的限制,模型看不到出現在幾個句子之前的單詞。
  • 上下文碎片:對於長度超過512個字符的文本,都是從頭開始單獨訓練的。段與段之間沒有上下文依賴性,會讓訓練效率低下,也會影響模型的性能。
  • 推理速度慢:在測試階段,每次預測下一個單詞,都需要重新構建一遍上下文,並從頭開始計算,這樣的計算速度非常慢。

3. Transformer-XL

Transformer-XL架構在vanilla Transformer的基礎上引入了兩點創新:

  1. 循環機制(Recurrence Mechanism)
  2. 相對位置編碼(Relative Positional Encoding)。

以克服Vanilla Transformer的缺點。與Vanilla Transformer相比,Transformer-XL的另一個優勢是它可以被用於單詞級和字符級的語言建模。

3.1 循環機制(Recurrence Mechanism)

Transformer-XL仍然是使用分段的方式進行建模,但其與Vanilla Transformer的本質不同是在於引入了段與段之間的循環機制,使得當前段在建模的時候能夠利用之前段的信息來實現長期依賴性。如下圖所示:

image

在訓練階段,處理后面的段時,每個隱藏層都會接收兩個輸入:

  1. 該段的前面節點的輸出,與Vanilla Transformer相同(上圖的灰色線)。
  2. 前面段的節點的輸出(上圖的綠色線),可以使模型創建長期依賴關系。這部分輸出市通過cache的機制傳導過來,所以不會參與梯度的計算。原則上只要GPU內存允許,該方法可以利用前面更多段的信息。

在預測階段:

如果預測\(x_{11}\)我們只要拿之前預測好的[\(x_1\),\(x_2\)...\(x_{10}\)]的結果拿過來,直接預測。同理在預測\(x_{12}\)的時候,直接在[\(x_1\),\(x_2\)...\(x_{10}\),\(x_{11}\)]的基礎上計算,不用像Vanilla Transformer一樣每次預測一個字就要重新計算前面固定個數的詞。

3.2 相對位置編碼

在Transformer中,一個重要的地方在於其考慮了序列的位置信息。在分段的情況下,如果僅僅對於每個段仍直接使用Transformer中的位置編碼,即每個不同段在同一個位置上的表示使用相同的位置編碼,就會出現問題。比如,第\(i_2\)段和第\(i_1\)段的第一個位置將具有相同的位置編碼,但它們對於第\(i\)段的建模重要性顯然並不相同(例如第\(i_2\)段中的第一個位置重要性可能要低一些)。因此,需要對這種位置進行區分。

可以將Transformer-XL中的attention的計算分為如下四個部分:

  1. 基於內容的“尋址”,即沒有添加原始位置編碼的原始分數。
  2. 基於內容的位置偏置,即相對於當前內容的位置偏差。
  3. 全局的內容偏置,用於衡量key的重要性。
  4. 全局的位置偏置,根據query和key之間的距離調整重要性

4. 總結

4.1 優點

  1. 在幾種不同的數據集(大/小,字符級別/單詞級別等)均實現了最先進的語言建模結果。
  2. 結合了深度學習的兩個重要概念——循環機制和注意力機制,允許模型學習長期依賴性,且可能可以擴展到需要該能力的其他深度學習領域,例如音頻分析(如每秒16k樣本的語音數據)等。
  3. 在inference階段非常快,比之前最先進的利用Transformer模型進行語言建模的方法快300~1800倍。

4.2 不足

  1. 尚未在具體的NLP任務如情感分析、QA等上應用。
    沒有給出與其他的基於Transformer的模型,如BERT等,對比有何優勢。
  2. 訓練模型需要用到大量的TPU資源。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM