[轉]神經機器翻譯(NMT)相關資料整理

1 簡介

自2013年提出了神經機器翻譯系統以後,神經機器翻譯系統取得了很大的進展。最近幾年相關的論文,開源系統也是層出不窮。本文主要梳理了神經機器翻譯入門、進階所須要閱讀的資料和論文,並提供了相關連接以及簡單的介紹,以及總結了相關的開源系統和業界大牛,以便其餘的小夥伴能夠更快的瞭解神經機器翻譯這一領域。php

隨着知識的逐步積累,本文後續會持續更新。請關注。html

2 入門資料

這部分主要整理了神經機器翻譯入門的資料以及所需的一些基礎知識,如RNN、LSTM、GRU等。python

2.1 神經機器翻譯入門資料

1. CIPS青工委學術專欄第9期 | 神經機器翻譯git

連接:http://www.cipsc.org.cn/qngw/?p=953github

介紹:由熊德意、張民等老師所寫,梳理了神經機器翻譯的歷史發展;介紹了採用注意力機制的神經機器翻譯模型的特色;總結了神經機器翻譯的譯文問題,1)如詞彙表規模受限問題、2)源語言翻譯覆蓋問題、3)翻譯不忠實問題;就當前的研究熱點,大體就三個問題進行了討論,1)規模受限詞語表問題、2)注意力機制問題、3)神經機器翻譯和傳通通計機器翻譯的結合。web

2. 基於深度學習的機器翻譯研究進展算法

連接:http://www.caai.cn/index.php?s=/Home/Article/qikandetail/year/2016/month/02.html網絡

介紹:首先歸納了統計機器翻譯目前存在的一些問題,而後引入基於深度學習的機器翻譯。主要分爲兩類:1)利用深度學習改進統計機器翻譯;2)端到端神經機器翻譯。利用深度學習改進統計機器翻譯的核心思想是以統計機器翻譯爲主題,使用深度學習改進其中的關鍵模塊,如語言模型、翻譯模型、調序模型、詞語對齊等,取得了顯著的效果,可是依然存在線性不可分、非局部特徵等問題。端到端神經機器翻譯的基本思想是使用神經網絡直接將源語言文本映射成目標語言文本。與統計機器翻譯不一樣,再也不有人工設計的詞語對齊、短語切分、句法樹等隱結構,再也不須要人工設計特徵,End 2 End神經機器翻譯僅使用一個非線性的神經網絡便能直接實現天然語言文本的轉換。在基於End 2 End的框架之上,注意力模型被提出。固然端到端神經機器翻譯也存在可解釋性差、訓練複雜度高等問題架構

3. ACL 2016 Tutorial -- Neural Machine Translation框架

連接:http://nlp.stanford.edu/projects/nmt/Luong-Cho-Manning-NMT-ACL2016-v4.pdf

介紹:Lmthang在ACL 2016上所作的tutorial。主要介紹了1)神經機器翻譯以及基於短語的統計機器翻譯與神經機器翻譯之間的關聯;2)使用隨機梯度法和BPTT訓練循環語言模型,因爲梯度消失等問題引入LSTM、GRU,基於編碼器-解碼器網絡的機器翻譯模型,基於束搜索的解碼策略,神經機器翻譯的集成模型;3)就詞彙表、記憶力、語言複雜度、數據等問題進行了討論;4)對多任務學習、更大的上下文、移動設備方面的應用、採用其餘函數,而非最大似然函數估計等方面進行了展望。

這個tutorial總結的很是全面和深刻,能夠結合後面提到的Lmthang的博士論文一塊兒看。

4. 神經機器翻譯前沿進展

連接:http://nlp.csai.tsinghua.edu.cn/~ly/talks/cwmt2016_ly_v3_160826.pptx

介紹:由清華大學的劉洋老師在第十二屆全國機器翻譯討論會(2016年8月在烏魯木齊舉辦)上作的報告。因爲統計機器翻譯存在的缺點,如線性模型難以處理高維空間中線性不可分的狀況、須要人類專家設計特徵、離散表示帶來嚴重的數據稀疏問題、難以處理長距離依賴等問題,由此引入深度學習,爲機器翻譯帶來新的思路——編碼器-解碼器框架。而後分別大體介紹了RNN、LSTM、注意力機制在神經機器翻譯中的應用及其優缺點。最後總結了近期的研究進展,好比1)受限詞彙量、2)細粒度意義單元、3)先驗約束、4)記憶機制、5)訓練準則、6)單語數據利用、7)多語言、8)多模態等。而後總結了神經機器翻譯教程和開源工具。最後對比了統計機器翻譯與神經機器翻譯的特色。

5. CCL2016 | T1B: 深度學習與機器翻譯

連接:http://www.cips-cl.org/static/CCL2016/tutorialsT1B.html

介紹:第十五屆全國計算語言學會議(CCL 2016),第四屆基於天然標註大數據的天然語言處理國際學術研討會(NLP-NABD 2016)上分別由劉洋、張家俊兩位老師作的tutorial。主要介紹統計機器翻譯的基本模型、歷史發展與不足。而後介紹基於深度學習的統計機器翻譯,以及深度學習方法如何應用於統計機器翻譯中的各個子模型,例如,詞、短語與句子級翻譯模型、調序模型和語言模型等;而後介紹了神經機器翻譯的基本模型,包括編碼器-解碼器架構、注意力機制等,最後介紹了神經機器翻譯的最新進展,例如,架構、訓練、語言與多模態等,以及神經機器翻譯的將來展望。

6. Neural Machine Translation

連接:http://statmt.org/mtma16/uploads/mtma16-neural.pdf

介紹:介紹了神經機器翻譯,包括語言模型,基於注意力的編碼器-解碼器,以及就神經機器翻譯領域當前的研究、機會和挑戰展開了討論。其中,tutorial中的例子很具體,並結合了Python代碼,很形象生動。

2.2 循環神經網絡入門資料

RNN

RECURRENT NEURAL NETWORKS TUTORIAL, PART 1 – INTRODUCTION TO RNNS ,以語言模型爲例對RNN進行講解。

supervised sequence labelling with recurrent neural network ,Deep Learning中講解RNN部分參考的論文,做者Alex Graves是LSTM的提出者Jurgen Schmidhuber的博士。

Training RECURRENT NEURAL NETWORKS , 做者IIya Sutskever是Hinton的博士,也是Seq 2 Seq的提出者。

LSTM

RECURRENT NEURAL NETWORK TUTORIAL, PART 4 – IMPLEMENTING A GRU/LSTM RNN WITH PYTHON AND THEANO ,可結合下一篇博客一塊兒看。

Understanding LSTM Networks ,很形象的講解了LSTM的原理。

long short-term memory , LSTM的原始Paper。

GRU

Learning Phrase Representations using RNN Encoder–Decoder For Statistical Machine Translation , GRU的原始Paper。

3 進階資料

這部分主要整理了神經機器翻譯這一領域最近幾年發表的一些有表明性的論文,包括End 2 End框架、注意力機制、MRT訓練、 漏譯與過譯等問題。

下面是Lmthang的博士論文,很是值得一讀。

NEURAL MACHINE TRANSLATION

關鍵詞:拷貝機制;Attention機制;混合模型

下載連接:https://github.com/lmthang/thesis/thesis.pdf

介紹:Lmthang的博士論文。主要對機器翻譯的發展歷程進行歸納,包括統計機器翻譯、神經機器翻譯。而後介紹了本身的一些成果,包括1)針對神經機器翻譯的未登陸詞問題提出的拷貝機制;2)針對神經機器翻譯的注意力機制進行改進;3)針對未登陸詞問題提出了混合模型,針對常見詞使用基於詞的模型,針對未登陸詞使用基於字符的模型;4)就神經機器翻譯的後續發展進行了展望。論文寫的很是清晰易懂,值得你們一讀。

3.1 End 2 End 框架

1. recurrent continuous translation models

關鍵詞:End 2 End框架

下載連接:http://www.aclweb.org/anthology/D13-1176

介紹:2013年,英國牛津大學的Kalchbrenner和Blunsom首先提出了End 2 End神經機器翻譯,他們爲機器翻譯提出了一個「編碼-解碼」的新框架:給定一個源語言句子,首先使用一個解碼器將其映射爲一個連續、稠密的向量,而後再使用一個解碼器將該向量轉化爲一個目標語言句子。編碼器使用的是卷積神經網絡(Convolutional Neural Network),解碼器用的是遞歸神經網絡(Recurrent Neural Network)。使用遞歸神經網絡具備可以捕獲所有歷史信息和傳力變長字符串的優勢。這是一個很是大膽的新架構,用非線性模型取代統計機器翻譯的線性模型;用單個複雜的神經網絡取代隱結構流水線;用鏈接編碼器和解碼器的向量來描述語義等價性;用遞歸神經網絡捕獲無限長的歷史信息。而後End 2 End神經機器翻譯最初並無得到理想的翻譯性能,一個重要緣由是訓練遞歸神經網絡時面臨着「梯度消失」和「梯度爆炸」問題。所以,雖然遞歸神經網絡理論上可以捕獲無限長的歷史信息,但實際上難以真正處理長距離的依賴關係。

2. sequence to sequence learning with neural networks

關鍵詞:End 2 End框架

下載連接:http://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf

介紹:2014年,Google公司的Sutskever等人將長短時間記憶(Long Short-Term Memory)引入End 2 End神經機器翻譯,長短時間記憶經過採用設計門開關(gate)的方法解決了訓練遞歸神經網絡時的「梯度消失」和「梯度爆炸」問題,可以較好地捕獲長距離依賴。與Kalchbrenner和Blunsom的工做不一樣,不管是編碼器仍是解碼器,Sutskever等人都採用了遞歸神經網絡。當生成目標語言詞時,解碼器不但考慮整個源語言句子的信息,還考慮已經生成的部分譯文。因爲引入長短時間記憶,End 2 End神經機器翻譯的性能獲得了大幅度提高,取得了與傳通通計機器至關甚至更好的準確率。而後,這種新的框架仍面臨要給重要的挑戰,即不論是較長的源語言句子,仍是較短的源語言句子,編碼器都須要將其映射到一個維度固定的向量,這對實現準確的編碼提出了極大的挑戰。

3. Learning phrase representations using rnn encoder-decoder for statistical machine translation

關鍵詞:End 2 End 框架

下載連接:https://arxiv.org/abs/1406.1078

介紹:使用循環神經網絡編碼器-解碼器模型,包含兩個循環神經網絡,第一個循環神經網絡將輸入序列編碼爲一個固定長度的向量表示,另外一個循環神經網絡將這個向量解碼爲輸出序列。編碼器和解碼器聯合訓練,給定源語言句子,最大化目標語言的條件機率。而後將循環神經網絡編碼器-解碼器計算獲得的短語對的條件機率做爲統計機器翻譯系統中對數線性模型的一個特徵,提升了翻譯性能,說明循環神經網絡編碼器-解碼器很好的學習了語言短語的語法和語義有意義的表示。

3.2 Attention機制

1. Neural machine translation by jointly learning to align and translate

關鍵詞:Attention機制

下載連接:https://arxiv.org/abs/1409.0473

介紹:針對編碼器生成定長向量的問題,2015年,Bengio研究組提出了基於注意力(attention)的End 2 End神經機器翻譯。所謂注意力,是指當解碼器在生成單個目標語言詞時,僅有小部分的源語言詞是相關的,絕大多數源語言詞都是無關的。所以,Bengio研究組主要爲每一個目標語言詞動態生成源語言端的上下文向量,而不是採用表示整個源語言句子的定長向量,爲此,他們提出了一套基於內容(content-based)的注意力方法,實驗代表,注意力的引入可以更好地處理長距離依賴,顯著提高End 2 End神經機器翻譯的性能。能夠將注意力視爲一種軟對齊,將對齊與翻譯過程聯合訓練。

2. Effective Approaches to Attention-based Neural Machine Translation

關鍵詞:Attention機制

下載連接:https://arxiv.org/abs/1508.04025

介紹:針對「Neural machine translation by jointly learning to align and translate」提出的注意力機制進行改進,提出了全局注意力機制和局部注意力機制,以及將狀態做爲下一時刻的輸入等策略。

3.3 MRT訓練

1. Minimum Risk Training For Neural Machine Translation

關鍵詞:MRT訓練

下載連接:https://arxiv.org/pdf/1512.02433v2

介紹:這個思路很是相似於och在2003年提出的MERT訓練參數的思想。針對神經機器翻譯,引入了最少風險訓練(MRT),訓練目標就是在訓練數據上最小化指望損失函數,包括訓練時期的模型預測以及直接用於評估的模型參數優化一塊兒訓練。1)將評測指標做爲損失函數,在訓練數據上最小化指望損失函數;2)可使用任意句子級別的損失函數,沒必要是可微分的;3)能夠應用到任何的end2end的神經機器翻譯系統中。因爲每一個句子的候選翻譯的數量是指數級的,也即搜索空間很大,所以算法在實現中對搜索空間進行採樣,來近似後驗分佈,以便提高效率。

3.4 漏譯與過譯

1. Modeling Coverage for Neural Machine Translation

關鍵詞:覆蓋率;漏譯;過譯

下載連接:http://arxiv.org/abs/1601.04811

介紹:神經機器翻譯存在過譯(一些詞被翻譯屢次)和漏譯(一些詞沒有被翻譯)問題。爲了緩解這個問題,使用一個覆蓋率向量來記錄注意力歷史,覆蓋率向量做爲注意力模型的輸入用於調整後續的注意力,可讓神經機器翻譯系統考慮更多的未翻譯詞。相比基於標準注意力機制的神經機器翻譯系統,改進後的模型顯著提升了翻譯質量和對齊質量。其中的覆蓋率向量有兩種構造方式,一種是基於語言學意義上的,另外一種基於神經網絡的。

2. Neural Machine Translation with Reconstruction

關鍵詞:重構器;翻譯充分性

下載連接:https://www.arxiv.org/abs/1611.01874

介紹:神經機器翻譯系統的翻譯結果一般缺少充分性,傾向於重複翻譯某些詞以及錯誤的忽略另一些詞。爲了緩解這個問題,提出了encoder-decoder-reconstructor框架,reconstructor(重構器)將輸出目標句子的隱藏層構造爲輸入源句子,這樣能夠保證源句子的信息儘量的傳入到目標句子側。目標函數包括最大似然機率和重構分數,也即同時考慮了流利度和充分性。

4 相關工具

這部分主要整理相關的開源系統,這些開源系統大可能是基於TensorFlow、Theano等框架進行開發的。

seq2seq

項目連接:https://github.com/tensorflow/tensorflow

介紹:實現了谷歌提出的seq2seq模型,基於TensorFlow框架開發。

nmt.matlab

項目連接:https://github.com/lmthang/nmt.matlab

介紹:由Stanford的博士Lmthang開源的,代碼由Matlab所寫。

GroundHog

項目連接:https://github.com/lisa-groundhog/GroundHog

介紹:實現了基於注意力機制的神經機器翻譯模型,由Bengio研究組,基於Theano框架開發。

NMT-Coverage

項目連接:https://github.com/tuzhaopeng/NMT-Coverage

介紹:實現了基於覆蓋率的神經機器翻譯模型,由華爲諾亞方舟實驗室李航團隊,基於Theano框架開發。

OpenNMT

項目連接:http://opennmt.net/

介紹:由哈佛大學NLP組開源的神經機器翻譯工具包,基於Torch框架開發,達到工業級程度。

EUREKA-MangoNMT

項目連接:https://github.com/jiajunzhangnlp/EUREKA-MangoNMT

介紹:由中科院自動化所的張家俊老師開發,採用C++。

dl4mt-tutorial

項目連接:https://github.com/nyu-dl/dl4mt-tutorial

介紹:基於Theano框架開發。

  • Tensorflow [Google-GNMT]: https://github.com/tensorflow/nmt
  • Torch [Facebook-fairseq]: https://github.com/facebookresearch/fairseq
  • MXNet [Amazon-Sockeye]: https://github.com/awslabs/sockeye
  • Theano [NEMATUS]: https://github.com/EdinburghNLP/nematus
  • Theano [THUMT]: https://github.com/thumt/THUMT
  • Torch [OpenNMT]: https://github.com/opennmt/opennmt
  • PyTorch [OpenNMT]: https://github.com/OpenNMT/OpenNMT-py
  • Matlab [StanfordNMT]: https://nlp.stanford.edu/projects/nmt/
  • DyNet-lamtram [CMU]: https://github.com/neubig/nmt-tips
  • EUREKA [MangoNMT]: https://github.com/jiajunzhangnlp/EUREKA-MangoNMT

5 相關公開數據集

5.1 LDC

LDC(Linguistic Data Consortium,語言數據聯盟)提供了大量的平行語料,大多數都是「阿-英」、「漢-英」和「法-英」(加拿大會議記錄)的語料資源。右中-英雙語平行語料,可是,針對會員是免費的,非會員收費。

參考連接:https://www.ldc.upenn.edu/

5.2 Europal

Europal語料是歐洲議會會議記錄文本集,這些會議記錄被譯成11中語言,這個語料是由每種語言大約4000萬的單詞組成的。語料庫中沒有中文語料。

參考連接:http://www.statmt.org/europarl/

5.3 OPUS

OPUS收集了各類平行語料,包括公開資源軟件本地化的語料和文檔。

包含中文的一些比較大的數據集,主要有MultiUN(http://opus.lingfil.uu.se/MultiUN.php) 和 OpenSubtitles2016(http://opus.lingfil.uu.se/OpenSubtitles2016.php),均有200萬左右的句對。

參考連接:http://opus.lingfil.uu.se/

5.4 Acquis Communautaire

Acquis Communautaire語料是由歐盟成員國簽定的法律文獻的集合,有超過20多種語言。語料庫中沒有中文語料。

參考連接:http://optima.jrc.it/Acquis/JRC-Acquis.2.2/doc/README_Acquis-Communautaire-corpus_JRC.html

5.5 UM-Corpus

UM-Corpus是由天然語言處理與中葡機器翻譯實驗室整理的語料,大約200萬英中對齊語料,涵蓋教育、法律、微博、新聞、科學、演講、字幕和論文等8個主題。開發者下載語料,須要註冊申請。通常申請後數天,就能夠收到郵件,郵件中有語料下載連接。

參考連接:http://nlp2ct.cis.umac.mo/um-corpus/index.html

6 相關大牛

這部分主要整理了機器翻譯領域學術界及工業界的一些大牛。後續能夠多關注這些大牛的成果。

6.1 國外

Université de Montréal: Yoshua Bengio,Dzmitry Bahdanau

New York University: KyungHyun Cho

Stanford University: Manning,Lmthang

Google: IIya Sutskever,Quoc V.Le

6.2 國內

中科院計算所: 劉羣

東北大學: 朱靖波

清華大學: 劉洋

中科院自動化所: 宗成慶,張家俊,徐波

蘇州大學: 熊德意,張民

華爲-諾亞方舟: 李航,塗兆鵬

百度: 王海峯,吳華

7 Reference

Rico Sennrich, Neural Machine Translation

神經機器翻譯(NMT)資料

神經機器翻譯(NMT)開源工具

8 研究趨勢

  • 罕見詞問題
  • 單語言數據使用
  • 多語言翻譯/多語言NMT
  • 記憶機制
  • 語言融合
  • 覆蓋問題
  • 訓練過程
  • 先驗知識融合
  • 多模態翻譯
相關文章
相關標籤/搜索