Google最新宣布發布穀歌神經機器翻譯(GNMT:Google Neural Machine Translation)系統,在官方博客中Google稱該系統使用了當前最先進的訓練技術,能夠實現到當下機器翻譯質量上最大的提升。
聽上去十分令人激動,不是嗎?
有從事翻譯職業的網友甚至這樣形容:
作為翻譯,看到這個新聞的時候,我理解了18世紀紡織工人看到蒸汽機時的憂慮與恐懼。
真有這麼可怕嗎?讓我們先來回顧下Google Translate的發展歷程。
| Google Translate發展歷程:在2006 年Google團隊改進了——統計機器翻譯(statistical machine translation),並宣布上線Google Translate翻譯功能。
其中,Google Translate的核心技術 「統計機器翻譯」其基本思想是通過對大量平行語料進行統計分析、構建統計翻譯模型、進而使用此模型進行翻譯。簡單來說,Google Translate 在生成譯文時,會在大量人工翻譯的文檔中查找各種模型,進行合理的猜測,從而得到恰當的翻譯。
當時之所以採用「統計翻譯模型」的一個重要原因就是 Google 的雲計算架構。機器翻譯需要海量的數據存儲空間以及高效的運算能力,而 Google 擁有 GoogleMapReduce(分布式計算系統)和 BigTable(分布式存儲系統),恰好滿足了這兩方面需求。
幾年前,Google開始使用循環神經網絡來直接學習一個輸入序列(如一種語言的一個句子)到一個輸出序列(另一種語言的同一個句子)的映射。
其中基於短語的機器學習(PBMT)將輸入句子分解成詞和短語,然後對它們的大部分進行獨立翻譯,而神經網絡機器翻譯(NMT)則將整個輸入句子視作翻譯的基本單元。
這種方法的優點是:相比之前的基於短語的翻譯系統,這種方法所需的調整更少。
首先,該網絡將這句中文的詞編碼成一個向量列表,其中每個向量都表示了到目前為止所有被讀取到的詞的含義(編碼器「Encoder」)。一旦讀取完整個句子,解碼器就開始工作——一次生成英語句子的一個詞(解碼器「Decoder」)。為了在每一步都生成翻譯正確的詞,解碼器重點注意了與生成英語詞最相關編碼的中文向量的權重分布(注意「Attention」;藍色連線的透明度表示解碼器對一個被編碼的詞的注意程度)。
通過維基百科和新聞網站的例句測定發現:在多個樣本的翻譯中,神經網絡機器翻譯系統將誤差降低了 55%-85%甚至以上。
| 各方對此評價:知乎網友Jacob Wu對此評價十分正面:
這個是基於Yoshua Bengio團隊兩年前的研究做出的成果。目前從中文翻譯到英文,線上系統已經使用了文章中所述的系統。我實際體驗了一下這個系統,明顯超出我的預期,非常牛!
另外一位知乎網友蕭瑟則表示:
百度在1年半前就已經上線了基於attention機制的神經網絡機器翻譯,和google一樣都是基於Yoshua Bengio組2015年的paper做的改進。
Google的方法看起來基本是這幾年學術界paper的組合,包括converage,subword,residual多層等等,並沒有特別明顯的創新。不過google機器翻譯組的迭代實驗能力真心很強,這個不能不服。而且有足夠多的gpu機器把8層神經網絡的模型線上化,也充分體現了google有多麼的土豪。
我們另外有諮詢前百度主任架構師、驀然認知創始人戴帥湘,他對此評價是:
這個方法是新的,但是應該去年還是前年論文就出來了。以前是基於短語的翻譯,這個方法直接用待翻譯的句子來預測目標語言中的詞,去年大家就都用這個方法了,但是效果沒有宣傳的那麼好。對於Google這次發布的新系統,個人猜測Google的語料更大,計算能力強,神經網絡訓練的細節做了比較好的優化,集成了學術上最近一些新改進,理論框架上應該沒什麼大的變化。
但是其在工程上意義很大,以前的方法訓練起來比較辛苦,需要做很多預處理,需要分詞,然後特徵設置也要人為制定一些針對語言特性的,特別是詞對齊本身就比較複雜;採用NN(神經網絡)以後就變得比較簡單的,上述那些預處理基本都沒有了,甚至都不需要分詞,按字做也行。
另外現在主流是NN(神經網絡),既然NN也能達到效果,顯然用主流方法更經濟。
| 實際效果:目前Google Translate已在中英翻譯系統中上線,在實際使用過程中比傳統的機翻體驗好上不少。但是我們有注意到這個情況,加上語助詞之後,原本的翻譯效果大打折扣。
對此,驀然認知創始人戴帥湘的觀點是:
針對上面的例子,我個人是這樣理解的,NMT在用平行句對訓練的時候,把輸入的源語言句子用向量進行描述,通過一個編碼用的神經網絡轉成隱層的向量表示,然後對這個隱層用另外一個神經網絡進行解碼,得到目標語言的向量表示。這個過程純粹是一個擬合函數的過程,即使源語言句子語義一樣,而如果字面有所差異的話,通過這個「擬合函數」映射過去得到的目標語言差異也會很大,所以會出現明明意思沒變,但是加了幾個無關緊要的字或者詞,翻譯過去的句子意思就會變化很大。
如果用基於短語對齊的翻譯模型,在對齊的時候通過引入一些基本的語言特性,或者詞語重要性識別方法,就可以避免這個問題,這也是NMT的缺陷所在,不能很好地引入語言本身的一些特性,如構詞和句法等。
我看過一些試驗數據,基於短語的統計機器翻譯我比較熟悉和完全基於NN的效果沒有特別大的差距。同樣語料訓練的話基於NN的有所提升,但不很顯著。
| 總結:對於Google最新發布的神經機器翻譯(GNMT)系統,我們要充分肯定其在機器翻譯上的進步。在同等語料的情況下,相較於基於短語的統計機器翻譯,神經機器翻譯(GNMT)系統能在更少工程量的基礎上實現相同的效果。但是其純粹把輸入的句子當做一個序列(理論上任意符號序列都可以),不考慮這個句子本身作為語言的特性,生成的內容可能會比較奇怪,難以控制,錯誤的結果也難以解釋。
雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。