113519256604

【為什麼我們挑選這篇文章】Google 之前表示透過「神經機器翻譯系統」讓翻譯的品質更精準、自然,現在更宣布他們的系統能實現「零數據翻譯」( Zero-Shot Translation),能夠對從沒見過的語言進行翻譯。

Google 翻譯的速度越來越快、精準,加上能對沒見過的語言做翻譯,想想真的為翻譯人員的未來捏把冷汗…(責任編輯:張瑋倫)

過去10年中,Google 翻譯已從僅支持幾種語言發展到了支持 103 種,每天翻譯超過了 1400 億字。為了實現這一點,我們需要構建和維護許多不同的系統,以便在任何兩種語言之間進行轉換,由此產生了巨大的計算成本。

神經網路改革了許多領域,我們確信可以進一步提高翻譯質量,但這樣做意味著重新思考 Google 翻譯背後的技術。

今年 9 月,Google 翻譯改為啟用 Google 神經機器翻譯(GNMT)的新系統,這是一個端到端的學習框架,可以從數百萬個示例中學習,並在翻譯質量方面有顯著提升。

不過,雖然啟用 GNMT 的幾種語言翻譯質量得到了提升,但將其擴展到所有 103 種 Google 翻譯支持的語種,卻是一個重大的挑戰。

實現零數據翻譯(Zero-Shot Translation)

在論文《Google多語言神經機器翻譯系統:實現零數據翻譯》(Google’s Multilingual Neural Machine Translation System: Enabling Zero-Shot Translation)中,我們通過擴展以前的 GNMT 系統解決這一挑戰,使單個系統能夠在多種語言之間進行翻譯。

我們提出的架構不需要改變基本的 GNMT 系統,而是在輸入句子的開頭使用附加的「token」,指定系統將要翻譯的目標語言。除了提高翻譯質量,我們的方法還實現了「Zero-Shot Translation」,也就是在沒有先驗數據的情況下,讓系統對從未見過的語言進行翻譯。

下圖展示了最新 GNMT 的工作原理。假設我們使用日語和英語以及韓語和英語之間相互翻譯為例,訓練一個多語言系統,如動畫中藍色實線所示。

article-cover-201611-23-120155572851

這個新的多語言系統與單個 GNMT 系統大小一樣,參數也一樣,能夠在日英和韓英這兩組語言對中進行雙語翻譯。參數共享使系統能夠將「翻譯知識」(translation knowledge)從一個語言對遷移到其他語言對。這種遷移學習和在多種語言之間進行翻譯的需要,迫使系統更好地利用其建模能力。

由此,我們想到:能夠讓系統在從未見過的語言對之間進行翻譯嗎?例如韓語和日語之間的翻譯,系統並沒有接受過日韓之間翻譯的訓練。

但答案是肯定的——雖然從來沒有教過它,但新的系統確實能夠生成日韓兩種語言之間合理的翻譯。我們將其稱為「零數據」(zero-shot)翻譯,如動畫中的黃色虛線所示。據我們所知,這還是首次將這種類型的遷移學習應用機器翻譯中。

零數據翻譯的成功帶來了另一個重要的問題:系統是否學會了一種通用的表徵,其中不同語言中具有相同意義的句子都以類似的方式表示,也即所謂的「國際通用語」( interlingua)?

使用內部網路數據的三維表徵,我們能夠看見系統在翻譯日語、韓語和英語這幾種語言時,在各種可能的語言對之間進行轉換(比如日語到韓語、韓語到英語、英語到日語等等)時,內部發生的情況。

article-cover-201611-23-120153303573

上圖中的(a)部分顯示了這些翻譯的總體幾何構成。圖中不同顏色的點代表不同的意思;意思相同的一句話,從英語翻譯為韓語,與從日語翻譯為英語的顏色相同。我們可以從上圖中看到不同顏色的點各自形成的集合(group)。

(b)部分是這些點集的其中一個放大後的結果,(c)部分則由原語言的顏色所示。在單個點集中,我們能夠看到日韓英三種語言中,擁有相同含義的句子聚在一起。

這意味著網路必定是對句子的語義進行編碼,而不是簡單地記住短語到短語之間的翻譯。由此,我們認為這代表了網路中存在了一種國際通用語(interlingua)。

我們在論文中還寫下了更多的結果和分析,希望這些的發現不僅能夠幫助從事機器學習或機器翻譯的研究人員,還能對於語言學家和對使用單一系統處理多語言感興趣的人有用。

最後,上述多語言 Google 神經機器翻譯系統(Multilingual Google Neural Machine Translation)從今天開始將陸續為所有 Google 翻譯用戶提供服務。當前的多語言系統能夠在最近推出的 16 個語言對中的 10 對中進行轉化,提高了翻譯質量,並且簡化了生產架構。

商業部署後,實現技術上的突破

正如前文所說,今年 9 月,Google 宣布對部分語種啟用 Google 神經機器翻譯(GNMT)的新系統,並在幾種率先使用的測試語種(包括漢語)翻譯質量方面得到了顯著提升。

下面的動圖展示了 GNMT 進行漢英翻譯的過程。首先,網路將漢字(輸入)編碼成一串向量,每個向量代表了當前讀到它那裡的意思(即 e3 代表「知識就是」,e5 代表「知識就是力量」)。整句話讀完之後開始解碼,每次生成一個作為輸出的英語單詞(解碼器)。

120156578581

要每一步生成一個翻譯好的英語單詞,解碼器需要注意被編碼中文向量的加權分佈中,與生成英語單詞關係最為密切的那個(上圖中解碼器 d 上面多條透明藍線中顏色最深的那條),解碼器關注越多,藍色越深。

使用人類對比評分指標,GNMT 系統生成的翻譯相比此前有了大幅提高。在幾種重要語言中,GNMT 將翻譯錯誤降低了55%-58%

不過,當時也有很多研究人員認為,當時 Google 翻譯取得的「里程碑」,與其說是技術突破,不如說是工程上的勝利 ——大規模部署本身確實需要軟硬件方面超強的實力,尤其是想 Google 翻譯這樣支持 1 萬多種語言的商業應用,對速度和質量的要求都非常的高。

但是,神經機器翻譯的技術早已存在,借鑒了語言和圖像處理方面的靈感,是多種技術的整合。

現在,只用了大約 2 個月的時間(論文首次上傳到 arXiv 是 11 月 14 日),Google 翻譯和 Google 大腦團隊就實現了技術上的突破——讓系統在從未見過的語言對之間進行翻譯,也即所謂的「zero-shot translation」。

不僅如此,Google 研究人員還在論文最後做了分析,新的模型代表了實現一種「國際通用語」模型的可能。有評論稱,這可以說是實現「巴別塔」的第一步。

Google 神經機器翻譯系統架構

就在幾天前,國外研究員 Smerity 在他的部落格上發布了一篇分析 Google 神經機器翻譯(GNMT)架構的文章,在 HackerNews、Reddit 等網站都引發了很多討論。

Smerity 在博文中指出,GNMT 的架構並不標準,而且在很多情況下偏離主流學術論文中提出的架構。但是,根據 Google 特定的需求,Google 修改了系統,重點保證系統的實用性而並非追求頂尖結果。

article-cover-201611-23-120153260439

【論文】Google 的多語言神經機器翻譯系統:實現 zero-shot 翻譯

摘要如下:

我們提出了一種使用單一神經機器翻譯(NMT)模型,在多語種之間進行翻譯簡潔而優雅的解決方案。不需要修改 Google 現有的基礎系統模型架構,而是在輸入句子的前面加入人工標記(token)明確其要翻譯成的目標語言。

模型的其他部分(包括編碼器、解碼器和注意模型)保持不變,而且可以在所有語言上共享。使用一個共享的 wordpiece vocabulary,這種方法能夠使用單一模型實現多語種神經機器翻譯,而不需要增加參數,相比此前提出的方法更為簡單。

實驗表明,這種新的方法大部分時候能提升所有相關語言對的翻譯質量,同時保持總的模型參數恆定。

在 WMT’ 14 基准上,單一多語言模型在英法雙語翻譯上實現了與當前最好技術相同的結果,並在英德雙語翻譯上超越當前最佳的結果。

同時,單一多語言模型分別在 WMT’14 和 WMT’15 基準上,超越了當前最佳的法英和德英翻譯結果。在用於生產的語料庫上,多達 12 個語言對的多語言模型能夠實現比許多單獨的語言對更好的表現。

除了提升該模型訓練所用的語言對的翻譯質量之外,新的模型還能在訓練過程中將沒有見過的語言對相互聯繫起來(bridging),表明用於神經翻譯的遷移學習和零數據翻譯是可能的。

article-cover-201611-23-120153557000

最後,我們分析了最新模型對通用語言間表徵的跡象,還展示了一些混合語言時會出現的有趣案例。

(本文經合作夥伴虎嗅網授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為〈谷歌又飆車了,剛發布了神經機器翻譯系統,沒見過的語言它也能翻譯〉。)

延伸閱讀

Google 翻譯還無法掌握的七種語言,為什麼克林貢語跟魔戒精靈語也要算在內啊?
不用學英文了?Google 翻譯導入類神經機器學習,Google 小姐變聰明啦!
【更複雜的我不敢保證】Google 翻譯不斷進化,就算是詩詞也能翻美美的