結合堆疊與深度轉換的新型神經翻譯架構:愛丁堡大學提出BiDeep RNN

機器之心發表於2017-08-03

在神經機器翻譯問題中,不同的堆疊架構(stacked)已經多次在不同研究中展現出了良好的表現,而深度轉換架構(Deep transition architecture)則成功地用於語言建模等用途中。愛丁堡大學與 Charles University 的研究者們對這兩種架構的多個組合形式在 WMT 翻譯任務中的表現進行了測試,並提出了結合堆疊與深度轉換的新型神經網路:BiDeep RNN。

論文:Deep Architectures for Neural Machine Translation

結合堆疊與深度轉換的新型神經翻譯架構:愛丁堡大學提出BiDeep RNN

論文連結:https://arxiv.org/abs/1707.07631

越來越多的實驗正在不斷證明:神經機器翻譯的質量會隨著模型深度的增加而提高。然而,雖然人們已經提出了一些不同結構的變體,並不斷增加模型的深度,但是至今仍然沒有與之相關的全面對比研究。

在這篇論文的工作中,我們描述並評價了幾個現存的在神經機器翻譯中引入深度的方法。此外,我們還探索了包括深度轉換迴圈神經網路(RNN)在內的幾種新穎的結構變體,並且我們還改變了在深度解碼器中使用 attention 的方式。我們引入了一個新型的「BiDeep」RNN 的架構,它結合了深度翻譯 RNN 和 stacked RNN。

我們的評估是在在英語-德語之間的 WMT 新聞翻譯資料集上進行的,我們在訓練和推理的過程中都使用了具有一塊 GPU 的機器。我們發現新提出的幾種架構在運算速度和翻譯質量方面都比現存的方法要好。我們在一個深度為 8 的 BiDeep RNN 上得到了最佳的效能提升,在較強的測試基準上得到了 1.5BLEU 的提升。

EMNLP 2017 新聞機器翻譯任務:http://www.statmt.org/wmt17/translation-task.html

為了便於使用,這些程式碼將被開源。

神經機器翻譯結構

在本論文中,我們主要考慮了以下幾個結構:門控迴圈單元(GRU,Cho 等人,2014),

2.1 基礎結構

我們使用 Nematus 機器翻譯系統作為我們的基礎結構,Sennrich 等人(2017)對此做了深度的描述。我們使用層歸一化對它做了擴充套件,結果證明我們的結構既能夠提升翻譯質量,又能夠讓訓練過程變得更快。

在我們的討論中,以下這兩種早就存在的深度型別是與之相關的:

  • 正如 Firat 和 Cho 在 2016 年的論文中所描述的,每個輸出單詞的解碼 RNN 中的迴圈翻譯深度由兩個 GRU 轉換組成,並且兩個 GRU 之間還有一個注意力(attention)機制。
  • 在注意力網路中計算對齊得分的前饋深度,以及在輸出網路中預測目標單詞的前饋深度。這兩個網路都是具有 tanh 隱藏層的多層感知機。


2.2 深度轉換結構

在一個深度轉換 RNN(DT-RNN)中,每一個時間步驟中的下一狀態都透過有序地使用多轉換層來實現,這有效地使用了內嵌迴圈單元的前饋網路。在我們的實驗中,這些轉換層是擁有獨立可訓練引數的 GRU 塊,將其中一個塊的輸出「狀態」與下一個塊的輸入「狀態」相連線。要注意的是,每個 GRU 並不是獨自迴圈的,迴圈僅僅存在於整個多層單元的整體水平上,因為最後一個 GRU 轉換器當前時間步驟的輸出「狀態」將繼續作為第一個 GRU 下一個時間步驟的輸入「狀態」。

結合堆疊與深度轉換的新型神經翻譯架構:愛丁堡大學提出BiDeep RNN

圖 1. 深度轉換解碼器

將這個結構應用在神經機器翻譯(NMT)中是一個創新的貢獻。

2.3 堆疊的結構

讓多層 RNN(我們的實驗中使用的是 GRU)執行相同數量的時間步驟便得到了一個堆疊 RNN(stacked RNN),正因為有這樣的連線方式,所以每一個最底部(如下圖)的 RNN 都會從外界獲得「外部」輸入,而每一個更高層的 RNN 會將它下面的 RNN 的輸出「狀態」作為其「外部」輸入。處在不同深度的狀態之間的殘差連線也被用來改善資訊流。要注意的是,與深度轉換 GRU 不同的是,堆疊 RNN 中的 GRU 轉換塊由一個獨自迴圈的單元組成,因為它自身的狀態在不同的時間步驟之間迴圈。

結合堆疊與深度轉換的新型神經翻譯架構:愛丁堡大學提出BiDeep RNN

 圖 2. 交替的堆疊解碼器(Zhou 等人,2016)

結合堆疊與深度轉換的新型神經翻譯架構:愛丁堡大學提出BiDeep RNN

 圖 3. 雙向對的解碼器

結合堆疊與深度轉換的新型神經翻譯架構:愛丁堡大學提出BiDeep RNN

 圖 4. 堆疊 RNN(stacked RNN)解碼器

2.4 雙深度架構

我們引入了雙深度 RNN(BiDEEP RNN),這是一個透過結合堆疊的深度轉換器得到的新型結構。

BiDeep 編碼器是這樣得到的:將堆疊解碼器中的 Ds 個單獨的迴圈 GRU 單元用多層深度轉換單元替換每個多層轉換單元都由 Ls 個 GRU 轉換塊組成。

例如,BiDeep 代替解碼器的過程可以定義如下:

結合堆疊與深度轉換的新型神經翻譯架構:愛丁堡大學提出BiDeep RNN

其中,每個多層單元 DTDRUk 被定義為:

結合堆疊與深度轉換的新型神經翻譯架構:愛丁堡大學提出BiDeep RNN

也可以在每一個堆疊水平擁有不同的轉換深度。

BiDeep 解碼器也是類似的定義,將迴圈單元(如 GRU,rGRU,cGRU 或者 crGRU)用深度多層轉換單元替換。

相關文章