iT邦幫忙

第 12 屆 iThome 鐵人賽

0
自我挑戰組

AI 高中生的自我學習系列 第 23

Day 23 - 天眼CNN 的耳朵和嘴巴 - Transformer

  • 分享至 

  • xImage
  •  

RNN問題及解法

RNN 有字數限制, 最多到200字, 超過效果不好。The fall of RNN / LSTM

針對基於CNN和RNN的Seq2Seq模型(註)存在的不足,2017link 《Attention is all you need》這篇論文提出了一種完全基於Attention Mechanism(Self Attention)的Transformer架構:拋棄CNN和RNN,基於Attention來構造Encoder和Decoder ,搭建完全基於Attention的Seq2Seq模型。Attention机制详解

  • Attention Mechanism: Take outputs of all steps into account.考慮所有步驟的輸出。

參考The Illustrated Transformer
https://ithelp.ithome.com.tw/upload/images/20201222/20130601vKK6Qr9k0J.png

當我們完成實作並訓練出一個 Transformer 以後,除了可以英翻中以外,我們還能清楚地了解其是如何利用強大的注意力機制(Encoder-Decoder 模型 + 注意力機制)來做到精準且自然的翻譯。淺談神經機器翻譯 & 用 Transformer 英翻中

Encoder-Decoder:

https://ithelp.ithome.com.tw/upload/images/20201222/20130601N4sJEVsg4u.png

  • 根據不同的任務可以選擇不同的編碼器和解碼器(可以是一個 RNN ,但通常是其變種 LSTM 或者 GRU )

  • 具體實現 Encoder-Decoder 的時候,編碼器和解碼器都不是固定的,可選的有CNN/RNN/BiRNN/GRU/LSTM等等,你可以自由組合且各自獨立。比如說,你在編碼時使用BiRNN,解碼時使用RNN,或者在編碼時使用RNN,解碼時使用LSTM等等。

  • 例如語言翻譯,Encoder 把輸入的句子做處理後所得到的隱狀態向量交給 Decoder 來生成目標語言。link

    • 你可以想像兩個語義相同的法英句子雖然使用的語言、語順不一樣,但因為它們有相同的語義,Encoder 在將整個法文句子濃縮成一個嵌入空間(Embedding Space)中的向量後,Decoder 能利用隱含在該向量中的語義資訊來重新生成具有相同意涵的英文句子。

    • 這樣的模型就像是在模擬人類做翻譯的兩個主要過程:

      • (Encoder)解譯來源文字的文意
      • (Decoder)重新編譯該文意至目標語言
    • 當然人類在做翻譯時有更多步驟、也會考慮更多東西,但 Seq2Seq 模型的表現已經很不錯了。

https://ithelp.ithome.com.tw/upload/images/20201223/20130601iZTXOY9KZM.png
https://ithelp.ithome.com.tw/upload/images/20201223/201306014FogV3NVTd.png
https://ithelp.ithome.com.tw/upload/images/20201223/20130601lGRq1Hi3Sh.png

Transformer

  • Encoder-Decoder 模型 + 注意力機制 link
    基本款的 Seq2Seq 模型表現得不錯,但其實有可以改善的地方。

我們前面曾提過 Seq2Seq 模型裡的一個重要假設是 Encoder 能把輸入句子的語義 / 文本脈絡全都壓縮成一個固定維度的語義向量。之後 Decoder 只要利用該向量裡頭的資訊就能重新生成具有相同意義,但不同語言的句子。

但你可以想像當我們只有一個向量的時候,是不太可能把一個很長的句子的所有資訊打包起來的。

"與其只把 Encoder 處理完句子產生的最後「一個」向量交給 Decoder 並要求其從中萃取整句資訊,不如將 Encoder 在處理每個詞彙後所生成的「所有」輸出向量都交給 Decoder,讓 Decoder 自己決定在生成新序列的時候要把「注意」放在 Encoder 的哪些輸出向量上面。"

這事實上就是注意力機制(Attention Mechanism)的中心思想:提供更多資訊給 Decoder,並透過類似資料庫存取的概念,令其自行學會該怎麼提取資訊。兩篇核心論文分別在 2014 年 9 月2015 年 8 月釋出,概念不難但威力十分強大。

"多數以 RNN 做過的研究,都可以用自注意力機制來取代;多數用 Seq2Seq 架構實現過的應用,也都可以用 Transformer 來替換。模型訓練速度更快,結果可能更好。"

事實上只要是能用 RNN 或 Seq2Seq 模型進行的研究領域,你都會看到已經有大量跟(自)注意力機制或是 Transformer 有關的論文了:

  • 文本摘要(Text Summarization)
  • 圖像描述(Image Captioning)
  • 閱讀理解(Reading Comprehension)
  • 語音辨識(Voice Recognition)
  • 語言模型(Language Model)
  • 聊天機器人(Chat Bot)
  • 其他任何可以用 RNN 的潛在應用

https://ithelp.ithome.com.tw/upload/images/20201222/2013060145QvonPTOo.png

編碼組件是一堆編碼器(紙上將六個編碼器彼此疊放–六個沒有什麼神奇之處,可以嘗試其他組合)。 解碼組件是相同數量的解碼器的堆棧。
https://ithelp.ithome.com.tw/upload/images/20201222/20130601sP4kjkOF09.png

註1: 「Seq2Seq」和「Encoder-Decoder」的關係
Seq2Seq(強調目的)不特指具體方法,滿足「輸入序列、輸出序列」的目的,都可以統稱為 Seq2Seq 模型。
而 Seq2Seq 使用的具體方法基本都屬於Encoder-Decoder 模型(強調方法)的範疇。

總結一下的話:Seq2Seq 屬於 Encoder-Decoder 的大範疇

註2: Encoder-Decoder、Seq2Seq、 以及Transformer之间的关系

註:本文是搜尋數個網站及各種不同來源之結果,著重在學習,有些內容已難辦別出處,我會儘可能列入出處,若有疏忽或出處不可考,請聯絡我, 我會列入, 尚請見諒。

上一篇
Day 22 - 天眼CNN 的耳朵和嘴巴 - RNN(3) -GRU
下一篇
Day 24 - 天眼CNN 的耳朵和嘴巴 - BERT
系列文
AI 高中生的自我學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言