丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
人工智能 正文
發(fā)私信給陳村
發(fā)送

1

回顧Google神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯上線歷程 | 深度

本文作者: 陳村 2016-11-22 21:20
導(dǎo)語:回顧下機(jī)器翻譯的發(fā)展歷程,以及Google深度神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯有什么厲害的地方?

雷鋒網(wǎng)按:本文作者陳村,劍橋大學(xué)自然語言處理(NLP)組, 現(xiàn)為機(jī)器學(xué)習(xí)語義分析工程師。

回顧Google神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯上線歷程 | 深度

Google Translate作為久負(fù)盛名的機(jī)器翻譯產(chǎn)品,推出10年以來,支持103種語言,一直作為業(yè)界的標(biāo)桿。

而在前不久,Google官方對翻譯進(jìn)行一次脫胎換骨的升級——將全產(chǎn)品線的翻譯算法換成了基于神經(jīng)網(wǎng)絡(luò)的機(jī)器翻譯系統(tǒng)(Nueural Machine Translation,NMT)。從Google官方發(fā)表的博文[1]和技術(shù)報告[2]中,我們有機(jī)會一窺究竟,這個全新的系統(tǒng)到底有什么神奇的地方?筆者借這篇文章,幫大家梳理一下機(jī)器翻譯的發(fā)展歷程,以及Google這次新系統(tǒng)的一些亮點。

| 機(jī)器翻譯的發(fā)展史

機(jī)器翻譯,即把某一種源語言(比如英文)翻譯到最恰當(dāng)?shù)哪繕?biāo)語言(比如中文)。

還在幾年前,機(jī)器翻譯界的主流方法都是Phrased-Based Machine Translation (PBMT),Google翻譯使用的也是基于這個框架的算法。所謂Phrased-based,即翻譯的最小單位由任意連續(xù)的詞(Word)組合成為的詞組(Phrase),比如下圖中的“北風(fēng)呼嘯”。

PBMT是怎么把一句英文翻譯成中文的呢?

  • 首先,算法會把句子打散成一個個由詞語組成的詞組(中文需要進(jìn)行額外的分詞),如圖中(1)所示;

  • 然后,預(yù)先訓(xùn)練好的統(tǒng)計模型會對于每個詞組,找到另一種語言中最佳對應(yīng)的詞組,如圖中(2)所示;

  • 最后,需要將這樣“硬生生”翻譯過來的目標(biāo)語言詞組,通過重新排序,讓它看起來盡量通順以及符合目標(biāo)語言的語法,如圖中(3)所示。

 回顧Google神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯上線歷程 | 深度

圖片出處:Lopez, A. (2008). Statistical machine translation. ACM Computing Surveys, 40(3), 1–49. 

傳統(tǒng)的PBMT的方法,一直被稱為NLP(Natural Language Processing,自然語言處理)領(lǐng)域的終極任務(wù)之一。因為整個翻譯過程中,需要依次調(diào)用其他各種更底層的NLP算法,比如中文分詞、詞性標(biāo)注、句法結(jié)構(gòu)等等,最終才能生成正確的翻譯。這樣像流水線一樣的翻譯方法,一環(huán)套一環(huán),中間任意一個環(huán)節(jié)有了錯誤,這樣的錯誤會一直傳播下去(error propagation),導(dǎo)致最終的結(jié)果出錯。

因此,即使單個系統(tǒng)準(zhǔn)確率可以高達(dá)95%,但是整個翻譯流程走下來,最終累積的錯誤可能就不可接受了。

深度學(xué)習(xí)這幾年火了之后,機(jī)器翻譯一直是深度學(xué)習(xí)在NLP領(lǐng)域里成果最為卓越的方向之一。深度神經(jīng)網(wǎng)絡(luò)提倡的是end-to-end learning,即跳過中間各種子NLP步驟,用深層的網(wǎng)絡(luò)結(jié)構(gòu)去直接學(xué)習(xí)擬合源語言到目標(biāo)語言的概率。

2014年,Cho et. al [3]和Sutskever et al. [4] 提出了Encoder-Decoder架構(gòu)的神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯系統(tǒng)。如下圖所示:

首先把源語言一個詞一個詞地輸入Encoder,Encoder利用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)參數(shù),把整個輸入序列的信息存在一個隱層向量h中;h這個隱層,可以理解為包含了所有對輸入源語言的描述;然后再由Decoder,利用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)參數(shù),從隱層h中讀取參數(shù),再一個詞一個詞地輸出目標(biāo)語言。

回顧Google神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯上線歷程 | 深度

via:3.bp.blogspot.com

NMT這樣的過程直接學(xué)習(xí)源語言到目標(biāo)語言,省去了訓(xùn)練一大堆復(fù)雜NLP子系統(tǒng)的依賴,依靠大量的訓(xùn)練數(shù)據(jù)(平行語聊庫,比如同一本書的中文和英文版本),直接讓深度神經(jīng)網(wǎng)絡(luò)去學(xué)習(xí)擬合。熟悉深度學(xué)習(xí)的朋友可能會意識到,這樣的方法一個極大的優(yōu)勢就是省去了很多人工特征選擇和調(diào)參的步驟。聽說前兩年,有個做神經(jīng)網(wǎng)絡(luò)圖像處理的教授,在不太了解NLP的基礎(chǔ)上,硬生生地搭建了一套可以匹敵傳統(tǒng)PBMT的機(jī)器翻譯系統(tǒng),后者可是十幾年來多少奮戰(zhàn)在第一線的NLP同志一磚一瓦壘起來的啊。而且,相比于傳統(tǒng)PBMT一個詞組一個詞組的獨立翻譯,NMT這樣end-to-end翻譯出來的語言更加自然流暢。

2015年,Yoshua Bengio團(tuán)隊進(jìn)一步,加入了Attention的概念。稍微區(qū)別于上面描述的Encoder-Decoder方法,基于Attention的Decoder邏輯在從隱層h中讀取信息輸出的時候,會根據(jù)現(xiàn)在正在翻譯的是哪個詞,自動調(diào)整對隱層的讀入權(quán)重。即翻譯每個詞的時候,會更加有側(cè)重點,這樣也模擬了傳統(tǒng)翻譯中詞組對詞組的對應(yīng)翻譯的過程。Attention模塊其實也就是一個小型神經(jīng)網(wǎng)絡(luò),嵌入在Encoder-decoder之間的,跟著整個神經(jīng)網(wǎng)絡(luò)訓(xùn)練的時候一起優(yōu)化訓(xùn)練出來的。

Bengio團(tuán)隊的這個工作也奠定了后序很多NMT商業(yè)系統(tǒng)的基礎(chǔ),也包括Google這次發(fā)布的GNMT。

| Google GNMT

Google這次在算法上、尤其是工程上對學(xué)術(shù)界的NMT方法提出了多項改進(jìn),才促成了這次Google NMT系統(tǒng)的上線。

學(xué)術(shù)上的NMT雖然取得了豐碩的成果,但在實際的產(chǎn)品中NMT的效果卻比不上PBMT。究其原因Google在技術(shù)報告[2]中總結(jié)了三點:

1、訓(xùn)練和預(yù)測的速度太慢。

要獲得更好的模擬效果,就要用更深層的神經(jīng)網(wǎng)絡(luò)來擬合參數(shù)(下面會提到,GNMT用了8層的Stack LSTM來做Encoder)。這么復(fù)雜的神經(jīng)網(wǎng)絡(luò)在預(yù)測的時候就要耗費大量的資源,遠(yuǎn)遠(yuǎn)慢于PBMT的系統(tǒng)。并且在訓(xùn)練的時候擬合這么大規(guī)模的預(yù)料,可能要很久很久才能訓(xùn)練一次,這樣不利于快速迭代改進(jìn)調(diào)整模型參數(shù)。

2、NMT在處理不常見的詞語的時候比較薄弱。

比如一些數(shù)字、或者專有名詞。在傳統(tǒng)PBMT系統(tǒng)中,可以簡單地把這些詞原封不動的copy到翻譯句子中;但是在NMT中,這樣的操作就無法有效的進(jìn)行。

3、有時候NMT無法對輸入源句子的所有部分進(jìn)行翻譯,這樣會造成很奇怪的結(jié)果。

Google NMT的主要神經(jīng)網(wǎng)絡(luò)架構(gòu)圖如下:

回顧Google神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯上線歷程 | 深度

仔細(xì)看,其實還是帶Attenion的Encoder-Decoder邏輯。Encoder是由8層LSTM組成,最下面兩層是一個雙向LSTM,可以從前到后以及從后往前理解一遍輸入的源語言輸入。中間的藍(lán)色模塊就是Attention模塊,負(fù)責(zé)對Encoder的邏輯進(jìn)行加權(quán)平均輸出到Decoder層。Decoder模塊也是一個8層的LSTM,最終連接到Softmax層,一個詞一個詞輸出最終的目標(biāo)語言詞語的概率分布。

算法上,論文中還提到了一些創(chuàng)新點。包括引入Wordpiece來對單詞進(jìn)行更細(xì)粒度的建模,來解決上面提到的不常見詞語的問題;以及在Decoding結(jié)束之后,搜索最佳輸出序列的時候,引入coverage penalty的概念,來鼓勵Decoder輸出更加完整的翻譯句子,以解決有時候NMT有時候無法完整的翻譯整句的情況。

工程上,報告里面著重談到了幾個性能優(yōu)化的重點:

  • 引入Risidual Connection

8層的LSTM堆疊起來,大大增加了神經(jīng)網(wǎng)絡(luò)的表達(dá)能力,在海量的數(shù)據(jù)下可以獲得更好的模型效果。不過這樣的堆疊會直接導(dǎo)致模型太龐大不可訓(xùn)練,在梯度反向傳播的時候,很容易出現(xiàn)梯度彌散或梯度爆炸的問題。過去的研究證明[5],Residual Connection的方式,直接去學(xué)習(xí)殘差可能會帶來更好的效果,避免了深度網(wǎng)絡(luò)中反向傳播中出現(xiàn)的梯度反向傳播可能會發(fā)生的問題。在上面的Google NMT架構(gòu)圖中,從倒數(shù)第三層開始都會引入Residual Connection。

  • 大量的并行優(yōu)化

與此同時,在工程上Google也進(jìn)行了非常多的優(yōu)化,來減少訓(xùn)練和實時翻譯時候的延遲問題。比如訓(xùn)練數(shù)據(jù)的時候,數(shù)據(jù)會分成n等份,交給不同的GPU去異步訓(xùn)練,然后再匯總到統(tǒng)一的參數(shù)服務(wù)器;同時,Encoder和Decoder的不同層的LSTM會在不同的GPU上運行,因為更上一層的LSTM不必等到下一層的神經(jīng)網(wǎng)絡(luò)完全計算完畢再開始工作;即使對于最后的Softmax輸出層,如果最后輸出詞的維度太大,也會劃分到不同的GPU上并行處理??芍^不放過絲毫并行的機(jī)會。

底層基礎(chǔ)計算平臺的支持。Google NMT采用了自家的Tensorflow深度學(xué)習(xí)框架,并運行在Google專門為深度學(xué)習(xí)打造的TPU(Tensor Processing Unit)上,當(dāng)年的AlphaGo也是由TPU提供支持。在對于模型參數(shù)的計算上,也大量應(yīng)用了Quantized計算的技術(shù):

由于神經(jīng)網(wǎng)絡(luò)參數(shù)涉及大量的耗時的浮點數(shù)運算,通過Quantization的方法,將模型參數(shù)由浮點數(shù)類型轉(zhuǎn)換到一個更低精度(比如8bit),雖然會有一些精度的損失,但是可以大大減少計算量以及最終訓(xùn)練模型的體積。

從軟件框架到定制硬件,相互配合,追求最極致的性能。在這篇報告里,有著長長的作者列表,最后赫然列著Google工程架構(gòu)大神Jeffrey Dean的名字,他是當(dāng)年一手創(chuàng)造了Map Reduce、Big Table等產(chǎn)品的Google奠基者之一。

| 寫在后面

Google這次的論文,基本框架仍然是帶Attention模塊的Encoder-Decoder。而且國內(nèi)廠商,比如百度和搜狗,也發(fā)布了類似的神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯系統(tǒng)。百度早在去年,就發(fā)布“工業(yè)界第一款NMT系統(tǒng)”。不過,Google畢竟是機(jī)器翻譯界的標(biāo)桿,這次披露的論文也揭示了很多他們?yōu)榱舜笠?guī)模商業(yè)化做出的努力,因此在業(yè)界引起了不小的震動。

注:[1]A Neural Network for Machine Translation, at Production Scale

[2] Wu, Y., Schuster, M., Chen, Z., Le, Q. V., Norouzi, M., Macherey, W., et al. (2016, September 26). Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation.

[3] Cho, K., van Merrienboer, B., Gulcehre, C., Bougares, F., Schwenk, H., and Bengio, Y. (2014a). Learning phrase representations using RNN encoder-decoder for statistical machine translation. In Proceedings of the Empiricial Methods in Natural Language Processing (EMNLP 2014).

[4] Sutskever, I., Vinyals, O., and Le, Q. (2014). Sequence to sequence learning with neural networks. In Advances in Neural Information Processing Systems (NIPS 2014).

[5] He, K., Zhang, X., Ren, S., & Sun, J. (1512). Deep residual learning for image recognition. arXiv preprint (2015).

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知

回顧Google神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯上線歷程 | 深度

分享:
相關(guān)文章

專欄作者

語義分析,創(chuàng)業(yè),畢業(yè)于劍橋大學(xué)自然語言組
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說