神經機器翻譯實戰

機器之心發表於2018-12-22

1.0 引言

機器翻譯(MT)是藉機器之力「自動地將一種自然語言文字(源語言)翻譯成另一種自然語言文字(目標語言)」[1]。使用機器做翻譯的思想最早由 Warren Weaver 於 1949 年提出。在很長一段時間裡(20 世紀 50 年代到 80 年代),機器翻譯都是通過研究源語言與目標語言的語言學資訊來做的,也就是基於詞典和語法生成翻譯,這被稱為基於規則的機器翻譯(RBMT)。隨著統計學的發展,研究者開始將統計模型應用於機器翻譯,這種方法是基於對雙語文字語料庫的分析來生成翻譯結果。這種方法被稱為統計機器翻譯(SMT),它的表現比 RBMT 更好,並且在 1980 年代到 2000 年代之間主宰了這一領域。1997 年,Ramon Neco 和 Mikel Forcada 提出了使用「編碼器-解碼器」結構做機器翻譯的想法 [2]。幾年之後的 2003 年,蒙特利爾大學 Yoshua Bengio 領導的一個研究團隊開發了一個基於神經網路的語言模型 [3],改善了傳統 SMT 模型的資料稀疏性問題。他們的研究工作為未來神經網路在機器翻譯上的應用奠定了基礎。

1.1 神經機器翻譯的誕生

2013 年,Nal Kalchbrenner 和 Phil Blunsom 提出了一種用於機器翻譯的新型端到端編碼器-解碼器結構 [4]。該模型可以使用卷積神經網路(CNN)將給定的一段源文字編碼成一個連續的向量,然後再使用迴圈神經網路(RNN)作為解碼器將該狀態向量轉換成目標語言。他們的研究成果可以說是神經機器翻譯(NMT)的誕生;神經機器翻譯是一種使用深度學習神經網路獲取自然語言之間的對映關係的方法。NMT 的非線性對映不同於線性的 SMT 模型,而且是使用了連線編碼器和解碼器的狀態向量來描述語義的等價關係。此外,RNN 應該還能得到無限長句子背後的資訊,從而解決所謂的「長距離重新排序(long distance reordering)」問題 [29]。但是,「梯度爆炸/消失」問題 [28] 讓 RNN 實際上難以處理長距依存(long distance dependency);因此,NMT 模型一開始的表現並不好。

1.2 用於長距問題的記憶

一年後的 2014 年,Sutskever et al. 和 Cho et al. 開發了一種名叫序列到序列(seq2seq)學習的方法,可以將 RNN 既用於編碼器也用於解碼器 [5][6],並且還為 NMT 引入了長短時記憶(LSTM,是一種 RNN)。在門機制(gate mechanism)的幫助下(允許在 LSTM 中刪除和更新明確的記憶),「梯度爆炸/消失」問題得到了控制,從而讓模型可以遠遠更好地獲取句子中的「長距依存」。

LSTM 的引入解決了「長距離重新排序」問題,同時將 NMT 的主要難題變成了「固定長度向量(fixed-length vector)」問題:如圖 1 所示,不管源句子的長度幾何,這個神經網路都需要將其壓縮成一個固定長度的向量,這會在解碼過程中帶來更大的複雜性和不確定性,尤其是當源句子很長時 [6]。

神經機器翻譯實戰圖 1:沒有「注意力」機制的原始神經機器翻譯機制 [5] 

1.3 注意、注意、注意

自 2014 年 Yoshua Bengio 的團隊為 NMT 引入了「注意力(attention)」機制 [7] 之後,「固定長度向量」問題也開始得到解決。注意力機制最早是由 DeepMind 為影象分類提出的 [23],這讓「神經網路在執行預測任務時可以更多關注輸入中的相關部分,更少關注不相關的部分」[24]。當解碼器生成一個用於構成目標句子的詞時,源句子中僅有少部分是相關的;因此,可以應用一個基於內容的注意力機制來根據源句子動態地生成一個(加權的)語境向量(context vector)(如圖 2 所示,紫色線的透明度表示權重大小)。然後網路會根據這個語境向量而不是某個固定長度的向量來預測詞。自那以後,NMT 的表現得到了顯著提升,「注意力編碼器-解碼器網路」已經成為了 NMT 領域當前最佳的模型。


相關文章