機器翻譯引擎的基本原理 摘自:infoq
<a href="https://research.googleblog.com/2016/11/zero-shot-translation-with-googles.html">谷歌機器翻譯</a>
Zero-shot:零次
Training:訓練
Google Neural Machine Translation:谷歌神經機器翻譯
幾年前,翻譯未知語言文本是非常耗時的。使用簡單的詞彙逐詞逐字翻譯之是以困難,是由于以下兩個原因:1)讀者必須知道文法規則,2)在翻譯整個句子時,需要記住所有語言版本。
現在,我們不需要太多的努力就可以将短語、句子、甚至是大段文本放在谷歌翻譯中來翻譯。但大多數人并不在意機器學習翻譯的引擎如何工作。這篇文章專為那些在意的人而寫。
深度學習翻譯的問題
如果谷歌翻譯引擎将短句的譯文保留,則它将會由于可能出現的各種變數而無法工作。最好的方法是教會計算機文法規則,并讓它根據這些規則來翻譯句子。這聽起來很簡單。
如果你曾經學過外語,你就知道規則總是有很多例外的。當嘗試捕獲程式中的所有這些規則、例外和例外中的例外時,翻譯的品質就會下降。
現代機器翻譯系統采用了不同的方法:它們通過分析大量的文檔來配置設定文本中的規則。
建立一個屬于你自己的簡單的機器翻譯器可以作為任何資料科學家應聘履歷中的一個重大項目。
讓我們來研究一下被稱之為“黑盒”的機器翻譯器中隐藏的東西。深層神經網絡可以在非常複雜的任務(語音或視覺對象識别)中取得優異的效果,但盡管十分靈活,它們隻能用于輸入維數和目标維數固定的任務。
循環神經網絡
而這正是長短期記憶網絡(LSTM)派上用場的地方,LSTM能幫助我們處理不能被先驗知道的序列。
LSTM是一種特殊的循環神經網絡(RNN),它能夠學習長期性的依賴關系。所有RNN看起來都像一連串的重複子產品。
雙向RNN
我們的下一步是雙向RNN(BRNN)。BRNN将正常RNN的神經元分成兩個方向。一個方向是正向的時間或向前的狀态。另一個方向是負向的時間或向後的狀态。但這兩個狀态的輸出并不與相反方向狀态的輸入進行連接配接。
為什麼BRNN比相對簡單的RNN更好?請想象有一個9個字的句子,而我們要預測第五個字。我們可以知道前4個字,或前4個字和最後4個字。當然,第二種情況預測的品質會更好。
序列到序列
現在我們可以認識序列到序列模型(也稱為seq2seq)了。一個基本的seq2seq模型由兩個RNN組成即:處理輸入的編碼器網絡和産生輸出的解碼器網絡。
<a href="https://research.googleblog.com/2016/09/a-neural-network-for-machine.html">序列到序列模型</a>
最後,我們便可以制作出自己的第一個機器翻譯器了!
谷歌翻譯
該方法的主要特點在于,現在谷歌翻譯算法對于每對語言隻使用一個系統,而不是一個龐大的集合。
該系統在輸入句子的開頭需要一個“令牌”以指定你要将短語翻譯成的語言。
這一改變提高了翻譯品質,甚至可以在系統從未見過的兩種語言之間進行翻譯,這種方法被稱為“零次(Zero-Shot)翻譯”。
什麼是更好的翻譯?
當談到谷歌翻譯算法的改進和更好的結果時,如何才能正确地評估第一個翻譯備選比第二個更好?
這不是一個無關緊要的問題,因為對于一些常用的句子,雖然我們有專業翻譯器的參考翻譯,但這些翻譯仍然有一些差異。
備選1:Statsbot makes it easy for companies to closely monitor data from various analytical platforms via natural language. (Statsbot通過自然語言使企業能輕松地密切監控來自各種分析平台的資料。)
備選2:Statsbot uses natural language to accurately analyze businesses’ metrics from different analytical platforms.(Statsbot使用自然語言準确地分析企業來自不同分析平台的名額。)
雖然它們有相同的含義,但品質和結構都不同。
我們再看看來自兩個人的翻譯:
參考1:Statsbot helps companies closely monitor their data from different analytical platforms via natural language. (Statsbot通過自然語言幫助公司密切監測來自不同分析平台的資料。)
參考2:Statsbot allows companies to carefully monitor data from various analytics platforms by using natural language. (Statsbot通過使用自然語言使企業能夠密切監控來自各種分析平台的資料。)
現在你可以開始評估複雜的機器學習翻譯引擎了。下次當你使用谷歌翻譯翻譯某些内容時,可以想像一下:在給你最好的翻譯版本之前,其實谷歌翻譯已經分析了數百萬份文檔。
本文轉自張昺華-sky部落格園部落格,原文連結:http://www.cnblogs.com/bonelee/p/7413452.html,如需轉載請自行聯系原作者