2
本文作者: NLP日月星辰 | 2016-09-30 18:31 |
雷鋒網按:據(jù)悉傳統(tǒng)的基于短語的機器學習將輸入句子分解成詞和短語,然后對它們的大部分進行獨立翻譯,而神經機器翻譯則將整個輸入句子視作翻譯的基本單元。所以重大突破并不僅僅是上了深度神經網絡,而是以句子為單元。
最近,做機器翻譯的同志們一打開朋友圈,猛然發(fā)現(xiàn)好像飯碗沒了,谷歌爸爸大力出奇跡,提高了機器翻譯87%的水平。結果打開人家原文一看,原來虛驚一場,只是現(xiàn)有工作的整合,一篇完美的工程論文,并沒有新的模型提出。不禁長舒一口氣,呼~飯碗還在。
呼~到底火遍朋友圈的那篇文章“谷歌機器翻譯取得顛覆性突破,錯誤率下降87%”到底幾分真幾分假呢?
1. 谷歌的論文價值
谷歌在本周發(fā)布了谷歌翻譯的實現(xiàn)論文Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation 這篇論文有非常強的工程性價值,融合了已有機器翻譯的幾大技術 Seq2Seq + Attention + Sentence loss optimization 三大技術均不是這篇原創(chuàng),而是之前的經典工作。
如果說IBM Model1是機器翻譯的牛頓定律,那么Seq2Seq就是機器翻譯里的愛因斯坦相對論,Seq2Seq是谷歌在機器學習頂會NIPS的一篇論文,模型簡單漂亮,為文本生成尤其是機器翻譯打下了良好的模型基礎,所有的NMT(神經機器翻譯)均在此模型上添磚加瓦,這篇也是一樣。
換句話說,神經機器翻譯早已取得比統(tǒng)計機器翻譯好的效果,只是大家不知道,誤以為是谷歌拯救了科研界,創(chuàng)造了奇跡。其實是世界上所有機器翻譯學者近兩年一起的貢獻(例如:清華也貢獻了Sentence loss optimization for machine translation的技術)。
那么谷歌這篇論文最大的價值是什么呢?答案是:超強的工程實現(xiàn)。谷歌這篇論文的StackLSTM用了8個GPU實現(xiàn)了8層的StackLSTM,在當前高校以及普通公司的實現(xiàn)中,NMT還只跑在單卡上,由于顯存限制單卡幾乎不可能跑8層的StackLSTM,而谷歌利用GoogleBrain,向世人展示了一把當LSTM深到一定程度機器翻譯能做成什么樣。
(1) Seq2Seq是一個基于RNN的模型,他有encoder和decoder兩部分。Encoder首先將源語言利用RNN(RNN是一個刻畫序列的模型,hidden states記錄了他讀過序列的所有信息,變種有LSTM和GRU)進行句子的向量化表示,當Seq2Seq讀到最后一個詞的時候,他記錄了這個句子的所有信息。
之后進入Decoder模塊,此部分利用Encoder所給的源語言信息,一個詞一個詞的生成目標語言中的詞匯。如果通俗的講解這個模型就是,機器是一個翻譯人員,突然有個人說了一串源語言所構成的序列,要他同聲傳譯,源語言的句子只說一遍,讓機器翻譯出來目標語言所對應的句子。
(2)我們都知道同聲傳譯很難,于是人類很聰明,讓機器把需要翻譯的東西紀錄在紙上,每當他翻譯一個詞的時候一看下所需翻譯的完整句子。這便提出了Attention模型。
Attention模型在翻譯的時候,每當翻譯一個詞的時候,都要利用源語言的所有詞進行一次計算,計算結果代表著當前詞和源語言每個詞的對應關系。例如翻譯:多個機場都被迫關閉了時候,英文airport就和機場的關系非常強。這就像一個翻譯官,每次都在看自己所記錄的句子,并決定現(xiàn)在翻譯哪個詞。
(3)然而這么翻譯還是不好,像在蹦詞,而不是在翻譯一句通順的話,于是乎人類又教機器針對句子的損失進行優(yōu)化。原來seq2seq優(yōu)化的是當前詞翻譯的好不好(也叫作ML Loss),此時,直接優(yōu)化我所翻譯的句子好不好。
3. 谷歌神經機器翻譯錯誤率下降最高達87%是如何算出來的?
神經機器翻譯近兩年取得了統(tǒng)計機器翻譯20年還沒夠著的效果,效果毋容置疑。谷歌原文里面拿人給翻譯的句子打分,滿分六,神經機器翻譯會好于統(tǒng)計機器翻譯0.5分,大概就是學霸每次6分的考試都能比學渣高0.5,好是好但是遠沒有標題中的85%那么恐怖。
那那個百分之87%是怎么算出來的呢?比如滿分5分,我得了4.9分,你得了4分,那么我就比你提高了90%,可謂玩了個數(shù)字游戲。如果這百分之87%是機器翻譯的BLEU上升87%,那才是真正的顛覆。
現(xiàn)在BLEU普遍在30多,能提高五個點,大概就可以拿自然語言處理領域頂級會議ACL的最佳論文,而且會被歷史銘記~而五個點才提高了百分之十幾,誰要是能提高百分之八十幾,那翻譯真是可以下班了。
我們首先可以看一下神經機器翻譯和語法機器翻譯還有統(tǒng)計機器翻譯的效果對比
我們可以看到神經機器翻譯通過兩年的努力就超過了另外兩種機器翻譯。
那為什么神經機器翻譯會比統(tǒng)計機器翻譯好這么多呢?
端到端的訓練(End-to-end training )
神經機器翻譯非常的優(yōu)雅,一個模型就解決了機器翻譯。而統(tǒng)計機器翻譯包含詞對齊,調序,重排等十分繁瑣。
更好地詞匯相似度計算
由于Word2vec的出現(xiàn),近義詞和同義詞可以更好地在語義空間進行表達。例如百度和谷歌在語義空間就十分接近,而神經機器翻譯可以很好利用word2vec的結果。
更好地利用上下文(只是更好還沒做到很好)
Seq2Seq模型在對上下文建模時比統(tǒng)計機器翻譯優(yōu)雅很多,他不再受N元語言模型的束縛,可以更好地處理語言的上下文依賴。
5. 機器翻譯還有什么問題
筆者不是機器翻譯從業(yè)者,但略知機器翻譯的幾大問題。
1. 生僻詞翻譯效果極差。例如你輸入了人名或者奇怪的機構名,都會導致翻譯一塌糊涂。
2. 經常會漏詞或者同一個詞翻譯好多次
比如圖中的development就被重復翻譯了
3. 不考慮上下文,以及無法 “雅”的翻譯俗語等~
結語
神經機器翻譯未來可期,但現(xiàn)在仍有諸多不足,仍然需要每一個研究人員不卑不亢,每天踏踏實實的做好研究才能真的顛覆昨天的機器翻譯。而不要為了每天寫大新聞,而急功近利。
雷鋒網注:本文為雷鋒網獨家約稿文章,未經授權拒絕轉載。
相關閱讀:
漲姿勢!如何評價Google神經機器翻譯(GNMT)系統(tǒng)?
Google 翻譯的“漢譯英”錯誤率降低 60%,是怎么算出來的?
雷峰網原創(chuàng)文章,未經授權禁止轉載。詳情見轉載須知。