神奇的神經(jīng)機(jī)器翻譯:從發(fā)展脈絡(luò)到未來(lái)前景(附論文資源)
機(jī)器翻譯(MT)是借機(jī)器之力「自動(dòng)地將一種自然語(yǔ)言文本(源語(yǔ)言)翻譯成另一種自然語(yǔ)言文本(目標(biāo)語(yǔ)言)」[1]。使用機(jī)器做翻譯的思想最早由 Warren Weaver 于 1949 年提出。在很長(zhǎng)一段時(shí)間里(20 世紀(jì) 50 年代到 80 年代),機(jī)器翻譯都是通過(guò)研究源語(yǔ)言與目標(biāo)語(yǔ)言的語(yǔ)言學(xué)信息來(lái)做的,也就是基于詞典和語(yǔ)法生成翻譯,這被稱(chēng)為基于規(guī)則的機(jī)器翻譯(RBMT)。隨著統(tǒng)計(jì)學(xué)的發(fā)展,研究者開(kāi)始將統(tǒng)計(jì)模型應(yīng)用于機(jī)器翻譯,這種方法是基于對(duì)雙語(yǔ)文本語(yǔ)料庫(kù)的分析來(lái)生成翻譯結(jié)果。這種方法被稱(chēng)為統(tǒng)計(jì)機(jī)器翻譯(SMT),它的表現(xiàn)比 RBMT 更好,并且在 1980 年代到 2000 年代之間主宰了這一領(lǐng)域。1997 年,Ramon Neco 和 Mikel Forcada 提出了使用「編碼器-解碼器」結(jié)構(gòu)做機(jī)器翻譯的想法 [2]。幾年之后的 2003 年,蒙特利爾大學(xué) Yoshua Bengio 領(lǐng)導(dǎo)的一個(gè)研究團(tuán)隊(duì)開(kāi)發(fā)了一個(gè)基于神經(jīng)網(wǎng)絡(luò)的語(yǔ)言模型 [3],改善了傳統(tǒng) SMT 模型的數(shù)據(jù)稀疏性問(wèn)題。他們的研究工作為未來(lái)神經(jīng)網(wǎng)絡(luò)在機(jī)器翻譯上的應(yīng)用奠定了基礎(chǔ)。
神經(jīng)機(jī)器翻譯的誕生
2013 年,Nal Kalchbrenner 和 Phil Blunsom 提出了一種用于機(jī)器翻譯的新型端到端編碼器-解碼器結(jié)構(gòu) [4]。該模型可以使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)將給定的一段源文本編碼成一個(gè)連續(xù)的向量,然后再使用循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)作為解碼器將該狀態(tài)向量轉(zhuǎn)換成目標(biāo)語(yǔ)言。他們的研究成果可以說(shuō)是神經(jīng)機(jī)器翻譯(NMT)的誕生;神經(jīng)機(jī)器翻譯是一種使用深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)獲取自然語(yǔ)言之間的映射關(guān)系的方法。NMT 的非線(xiàn)性映射不同于線(xiàn)性的 SMT 模型,而且是使用了連接編碼器和解碼器的狀態(tài)向量來(lái)描述語(yǔ)義的等價(jià)關(guān)系。此外,RNN 應(yīng)該還能得到無(wú)限長(zhǎng)句子背后的信息,從而解決所謂的「長(zhǎng)距離重新排序(long distance reordering)」問(wèn)題 [29]。但是,「梯度爆炸/消失」問(wèn)題 [28] 讓 RNN 實(shí)際上難以處理長(zhǎng)距依存(long distance dependency);因此,NMT 模型一開(kāi)始的表現(xiàn)并不好。
用于長(zhǎng)距問(wèn)題的記憶
一年后的 2014 年,Sutskever et al. 和 Cho et al. 開(kāi)發(fā)了一種名叫序列到序列(seq2seq)學(xué)習(xí)的方法,可以將 RNN 既用于編碼器也用于解碼器 [5][6],并且還為 NMT 引入了長(zhǎng)短時(shí)記憶(LSTM,是一種 RNN)。在門(mén)機(jī)制(gate mechanism)的幫助下(允許在 LSTM 中刪除和更新明確的記憶),「梯度爆炸/消失」問(wèn)題得到了控制,從而讓模型可以遠(yuǎn)遠(yuǎn)更好地獲取句子中的「長(zhǎng)距依存」。
LSTM 的引入解決了「長(zhǎng)距離重新排序」問(wèn)題,同時(shí)將 NMT 的主要難題變成了「固定長(zhǎng)度向量(fixed-length vector)」問(wèn)題:如圖 1 所示,不管源句子的長(zhǎng)度幾何,這個(gè)神經(jīng)網(wǎng)絡(luò)都需要將其壓縮成一個(gè)固定長(zhǎng)度的向量,這會(huì)在解碼過(guò)程中帶來(lái)更大的復(fù)雜性和不確定性,尤其是當(dāng)源句子很長(zhǎng)時(shí) [6]。
圖 1:沒(méi)有「注意」的原始神經(jīng)機(jī)器翻譯機(jī)制 [5]
注意、注意、注意
自 2014 年 Yoshua Bengio 的團(tuán)隊(duì)為 NMT 引入了「注意力(attention)」機(jī)制 [7] 之后,「固定長(zhǎng)度向量」問(wèn)題也開(kāi)始得到解決。注意力機(jī)制最早是由 DeepMind 為圖像分類(lèi)提出的 [23],這讓「神經(jīng)網(wǎng)絡(luò)在執(zhí)行預(yù)測(cè)任務(wù)時(shí)可以更多關(guān)注輸入中的相關(guān)部分,更少關(guān)注不相關(guān)的部分」[24]。當(dāng)解碼器生成一個(gè)用于構(gòu)成目標(biāo)句子的詞時(shí),源句子中僅有少部分是相關(guān)的;因此,可以應(yīng)用一個(gè)基于內(nèi)容的注意力機(jī)制來(lái)根據(jù)源句子動(dòng)態(tài)地生成一個(gè)(加權(quán)的)語(yǔ)境向量(context vector)(如圖 2 所示,紫色線(xiàn)的透明度表示權(quán)重大小)。然后網(wǎng)絡(luò)會(huì)根據(jù)這個(gè)語(yǔ)境向量而不是某個(gè)固定長(zhǎng)度的向量來(lái)預(yù)測(cè)詞。自那以后,NMT 的表現(xiàn)得到了顯著提升,「注意力編碼器-解碼器網(wǎng)絡(luò)」已經(jīng)成為了 NMT 領(lǐng)域當(dāng)前最佳的模型。
圖 2:谷歌神經(jīng)機(jī)器翻譯(GNMT)[8] 的「注意力編碼器-解碼器網(wǎng)絡(luò)」架構(gòu)的機(jī)制
NMT vs. SMT
盡管 NMT 已經(jīng)在特定的翻譯實(shí)驗(yàn)上取得了驚人的成就,但研究者還想知道能否在其它任務(wù)上也實(shí)現(xiàn)這樣的優(yōu)良表現(xiàn),以及 NMT 是否確實(shí)能取代 SMT。因此,Junczys-Dowmunt et al. 在「United Nations Parallel Corpus」語(yǔ)料庫(kù)上進(jìn)行了實(shí)驗(yàn),該語(yǔ)料庫(kù)包含 15 個(gè)語(yǔ)言對(duì)和 30 個(gè)翻譯方向;而通過(guò) BLEU 分?jǐn)?shù)(一種自動(dòng)評(píng)估機(jī)器翻譯的方法,分?jǐn)?shù)越高越好 [33])對(duì)實(shí)驗(yàn)結(jié)果的測(cè)定,NMT 在這所有 30 個(gè)翻譯方向上都得到了與 SMT 媲美或更好的表現(xiàn)。此外,在 2015 年的 Workshop on Statistical Machine Translation(WMT)比賽上,來(lái)自蒙特利爾大學(xué)的這個(gè)團(tuán)隊(duì)使用 NMT 贏得了英語(yǔ)-德語(yǔ)翻譯的第一名和德語(yǔ)-英語(yǔ)、捷克語(yǔ)-英語(yǔ)、英語(yǔ)-捷克語(yǔ)翻譯的第三名 [31]。
與 SMT 相比,NMT 可以聯(lián)合訓(xùn)練多個(gè)特征,而無(wú)需先驗(yàn)的領(lǐng)域知識(shí),這可以實(shí)現(xiàn) zero-shot 翻譯 [32]。除了更高的 BLEU 分?jǐn)?shù)和更好的句子結(jié)構(gòu),NMT 還有助于減少 SMT 上常見(jiàn)的形態(tài)學(xué)錯(cuò)誤、句法錯(cuò)誤和詞序錯(cuò)誤。另一方面,NMT 還有一些需要解決的問(wèn)題和挑戰(zhàn):訓(xùn)練和解碼過(guò)程相當(dāng)慢;對(duì)同一個(gè)詞的翻譯風(fēng)格可能不一致;在翻譯結(jié)果上還存在「超出詞匯表(out-of-vocabulary)」的問(wèn)題;「黑箱」的神經(jīng)網(wǎng)絡(luò)機(jī)制的可解釋性很差;訓(xùn)練所用的參數(shù)大多數(shù)是根據(jù)經(jīng)驗(yàn)選擇的。
軍備競(jìng)賽已經(jīng)開(kāi)始
因?yàn)?NMT 的特性及其相對(duì)于 SMT 的優(yōu)勢(shì),產(chǎn)業(yè)界最近也開(kāi)始采用 NMT 了:2016 年 9 月,谷歌大腦團(tuán)隊(duì)發(fā)布了一篇博客說(shuō)他們已經(jīng)在谷歌翻譯產(chǎn)品的漢語(yǔ)-英語(yǔ)語(yǔ)言對(duì)上開(kāi)始使用 NMT 替代基于短語(yǔ)的機(jī)器翻譯(PBMT,這是一種 SMT)。他們部署的 NMT 名叫谷歌神經(jīng)機(jī)器翻譯(GNMT),他們也在同一時(shí)間發(fā)布了一篇論文 [9],對(duì)該模型進(jìn)行了詳細(xì)的解釋。之后還不到一年時(shí)間(2017 年),F(xiàn)acebook 人工智能研究院(FAIR)就宣布了他們使用 CNN 實(shí)現(xiàn) NMT 的方法,其可以實(shí)現(xiàn)與基于 RNN 的 NMT 近似的表現(xiàn)水平 [10][11],但速度卻快 9 倍。作為回應(yīng),谷歌在 6 月份發(fā)布了一個(gè)完全基于注意力(attention)的 NMT 模型;這個(gè)模型既沒(méi)有使用 CNN,也沒(méi)有使用 RNN,而是完全基于注意力機(jī)制 [12]。
其它科技巨頭也都各有動(dòng)作。比如亞馬遜剛在 7 月份發(fā)布了他們使用 MXNet 的 NMT 實(shí)現(xiàn) [13];微軟在 2016 年談?wù)撨^(guò)他們對(duì) NMT 的應(yīng)用,盡管目前還未披露進(jìn)一步的技術(shù)細(xì)節(jié) [27]。IBM Watson(機(jī)器翻譯領(lǐng)域的老將)、英偉達(dá)(人工智能計(jì)算的領(lǐng)軍者)和 SYSTRAN(機(jī)器翻譯先驅(qū))[35] 全都或多或少地參與到了 NMT 的開(kāi)發(fā)中。在東亞地區(qū),中國(guó)這個(gè)人工智能領(lǐng)域的新星正在升起,百度、網(wǎng)易有道、騰訊、搜狗、訊飛、阿里巴巴等許多公司甚至已經(jīng)部署了 NMT。它們?nèi)计幢M全力想在機(jī)器翻譯的下一輪演進(jìn)中取得競(jìng)爭(zhēng)優(yōu)勢(shì)。
NMT 就是未來(lái)嗎?
在高速發(fā)展和高度競(jìng)爭(zhēng)的環(huán)境中,NMT 技術(shù)正在取得顯著的進(jìn)展。在最近的 ACL 2017 會(huì)議上,機(jī)器翻譯類(lèi)別下接收的 15 篇論文全都與神經(jīng)機(jī)器翻譯有關(guān) [34]。我們可以看到 NMT 還將在許多方面得到不斷完善,其中包括:
- 罕見(jiàn)詞問(wèn)題 [14][15]
- 單語(yǔ)言數(shù)據(jù)使用 [16][17]
- 多語(yǔ)言翻譯/多語(yǔ)言 NMT [18]
- 記憶機(jī)制 [19]
- 語(yǔ)言融合 [20]
- 覆蓋問(wèn)題 [21]
- 訓(xùn)練過(guò)程 [22]
- 先驗(yàn)知識(shí)融合 [25]
- 多模態(tài)翻譯 [26]
因此,我們有足夠的理由相信 NMT 還將取得更大的突破,還將替代 SMT 逐漸發(fā)展成主流的機(jī)器翻譯技術(shù),并在不久的將來(lái)讓全社會(huì)受益。
最后補(bǔ)充
為了幫你了解 NMT 的神奇之處,我們列出了一些 NMT 的開(kāi)源實(shí)現(xiàn),它們使用了不同的工具:
- 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
如果你有興趣進(jìn)一步了解 NMT,我們鼓勵(lì)你閱讀參考文獻(xiàn)中列出的論文:[5][6][7] 是必讀的核心論文,能幫你了解什么是 NMT;[9] 是 NMT 的機(jī)制和實(shí)現(xiàn)的全面展示。此外,在機(jī)器之心正在整理編輯的《人工智能技術(shù)報(bào)告》中,機(jī)器翻譯也是一個(gè)重要篇章。
【本文是51CTO專(zhuān)欄機(jī)構(gòu)“機(jī)器之心”的原創(chuàng)文章,微信公眾號(hào)“機(jī)器之心( id: almosthuman2014)”】