iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0
AI & Data

當自然語言處理遇上深度學習系列 第 19

[神經機器翻譯理論與實作] Google Translate的神奇武器- Seq2Seq (I)

  • 分享至 

  • xImage
  •  

前言

Google 在2016年公開宣布翻譯系統的全面改革,一改沿用多年的 Phrase-Based Statistical Machine Translation ,轉而採用了當時最新穎技術的 sequence-to-sequence model (簡寫為 Seq2Seq)來提升翻譯品質。今天就讓我們深入來探討這個模型背後的架構!

Google Translate採用 Seq2Seq 模型之後大幅提升翻譯品質:

圖片來源:Google AI Blog

Seq2Seq模型概述

Seq2seq是一類將序列轉化為序列技術的統稱,最初即是由 Google Translate 研究團隊所開發( 首次公布於 2014年的論文 Sequence to Sequence Learning with Neural Networks ),並最終在2016年之後 GNMT 系統全面取代了既有的統計翻譯方法。目前 seq2seq 除了用來翻譯之外,還被使用來自動整理文件摘要、建立聊天機器人等任務。
Seq2seq 的基本架構由一個編碼器( encoder )和一個解碼器( decoder )所組成,因此又被稱為 encoder-decoder network 。 當某一串序列(字符排列、句子或其他時間序列)輸入encoder 後會被轉為 context vector (也被稱為 sentence embedding ),其將當下的輸入字詞以及上下文保留起來,並傳入 decoder ,最後得到另一串序列。 Encoder 本身是一個由諸多遞迴小單元(或稱記憶細胞)所串聯而成,可以是 RNNLSTM 或是 GRU 等具有循環性值的神經網絡。 decoder 的組成與 encoder 極為相近,差別在於當下輸出的 https://chart.googleapis.com/chart?cht=tx&chl=y_t 會當作下一個時刻 t+1 的輸入。

以RNN作為循環小單元的seq2seq架構:
https://ithelp.ithome.com.tw/upload/images/20210927/20140744eIkNpLKXiw.jpg

在上一篇關於文本生成的介紹中我們提到字符級的生成器,其輸入序列可以是字符序列(例如{'A', 'B', 'C', '<EOS>'})也可以為單詞序列(例如{"I", "would", "like", "to", "say", "<EOS>"}),而輸出則是字符序列;單詞級的生成任務則是預測單詞序列。而以機器翻譯而言,輸入序列則是 word embedding 向量序列, 輸出序列亦然。

Google NMT的encoder-decoder神經網絡,以LSTM作為編碼器及解碼器的設計:
https://ithelp.ithome.com.tw/upload/images/20210927/201407446CQ4DxCzBQ.jpg

圖片來源:Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation (2016)

結語

今天先介紹 seq2seq 模型的架構,明天我們會從最簡單的 RNN 架構的編碼器講起,再提到 LSTM 架構,藉此補足先前未細談的模型數學式,並且以深度學習框架 Tensorflow 撰寫 encoder LSTMdecoder LSTMPython 程式碼。今天是假期過後的第一天,各位也和我一樣經歷了 Monday blue 嗎?廢話不多說,我們明天見!

閱讀更多

  1. A Neural Network for Machine Translation, at Production Scale

上一篇
[神經機器翻譯理論與實作] AI也會寫故事?聊聊文本生成吧!
下一篇
[神經機器翻譯理論與實作] Google Translate的神奇武器- Seq2Seq (II)
系列文
當自然語言處理遇上深度學習33
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言