淘新聞

F8 2017 | 技術負責人為你解析 Facebook 神經機器翻譯

該講座主題為 Facebook 機器翻譯的兩代架構以及技術挑戰。

雷鋒網消息:在昨日的 F8 會場,該講座吸引了眾多開發者到場,主講者是 Facebook 語言翻譯部門技術負責人 Necip Fazil Ayan。

Necip Fazil Ayan 首先介紹了 Facebook 翻譯業務的使命和願景,以及對機器翻譯的應用。

使命與願景

Necip Fazil Ayan:

Facebook 希望推動建立一個真正的全球社區,即“連接世界”:每個人都能與全世界任意國家的人、任意語言內容自如交互。翻譯,便是其中最關鍵的一環。

使命:通過打破語言障礙,讓世界更開放、更緊密聯結。

願景:每一名使用者都能用其語言無障礙的使用 Facebook。

Facebook 是怎麼應用機器翻譯的

有兩種途徑。

“See translation”:當 Facebook 系統判斷使用者無法理解某個帖子時,便提供“翻譯”選項。

系統判斷的依據很簡單:對貼子的語言識別和對使用者的語言預測。

“Auto translation”: 當系統判斷翻譯品質很高時,會自動顯示翻譯結果,而不是原始語言。 這背後,是 Facebook 對平臺上的每一條翻譯都計算 confidence score(置信度),並據此預估翻譯品質。這靠另一個單獨的機器學習模型來實現。

Facebook 機器翻譯的兩代架構

目前,Facebook 絕大部分的翻譯系統,仍是基於 phrase-based machine translation 架構,即“基於短語的機器翻譯”。

在過去的十到十五年中,該架構被行業廣泛採用。但在最近的幾年,Facebook 正轉向 neural net machine translation 架構,即神經網路機器翻譯。據雷鋒網瞭解,

去年 6 月,Facebook 部署了第一個基於神經機器翻譯的產品——德譯英;拉開了從“基於短語”切換到神經機器翻譯的大幕。

至今,已有 15 個不同語言的翻譯系統,遷移到了新的機器翻譯架構;Facebook 平臺上,超過 50% 的翻譯出自基於神經網路的系統。

那麼,為什麼 Facebook 要轉移至神經網路機器翻譯?或者說,新架構的優點是什麼?

首先,Necip Fazil Ayan 表示,神經機器翻譯為 Facebook 帶來翻譯品質的大幅提升:

精確度(是否清楚表達了原句的意思)提升 20%,通順程度(翻譯語句聽起來是否正常)提升 24%。

這是兩代架構的翻譯結果對比(土耳其語到英語)

左邊是基於短語的機器翻譯,大多數詞語的意思是對的,但順序不對勁。右邊是神經網路機器翻譯,大多數詞語的意思也是對的,但語序更加自然。翻譯出來的句子更容易理解、更通順。

底層發生了什麼?

我先談談基於短語的機器翻譯。該系統學習詞語之間的對應關係,然後把這些對應關係泛化到成串詞語上,即短語。這些短語是從海量的句子翻譯(原句+譯句)中得來。給定一個新句子,該系統會根據已學到的短語翻譯,試圖找出一個最優分段方案。

短語越長,我們越不擔心重新排列詞序問題(local reordering)。資料越多,學習長短語的效果越好。

基於短語架構機器翻譯的缺陷:

缺乏語境。短語一般最多只有 7 到 10 個單詞的長度

短語的重新排序問題很大,尤其對於詞序差異很大的語言,比如英語和土耳其語

其統計模型難以擴展新功能

泛化效果不好,非常依賴學習過的資料

再來看一看神經網路機器翻譯系統。

神經機器翻譯系統會考慮原句的整個語境,以及當次翻譯過程中此前翻譯出的所有內容。

它的優點有:

支持大段的語序重排(long distance reordering)

連續、豐富的表達。我們把詞語映射到向量表示(詞向量)。它們不再是獨立的詞語,而是一維空間中的點。不同點之間的距離,可被用來代表不同詞語之間的語義相似性

神經網路的擴展性非常好。我們可以把不同來源的資訊整合進去,使我們得以很容易的把不同類型的表達結合到一起

更通順

至於為什麼更多語境能起到積極作用,我想多解釋一下:這裡的任務,是根據語境預測下一個詞語。當語境資訊越豐富,預測就更準確。借助遞迴神經網路(RNN),我們的語言建模能力獲得了無限制的提升。通過更大的視野,我們可以做出更好的決策。

對於翻譯系統本身,我們也是用 RNN with attention。我們的架構包含編碼器以及解碼器。編碼器的作用是把原語句轉化為向量表達;隨後,解碼器把後者轉為另一個句子,這就是機器翻譯的過程。

對於原語句,我們用的是一個雙向的神經網路。這意味著,我們既利用了前文中的詞語,也用到了後文的詞語。所以,編碼器的輸出,是一個利用了前後文所有語境的、對原句的表示。目標句子也使用 RNN 來生成。

在生成過程中的每一步,我們均充分利用了此前生成的詞語,以及語境的某部分。

重複這一步驟,我們便得到了最終的機器翻譯結果。

挑戰

1. 網路語言

首先是網路語言,我們稱之為“Facebook 語言”。

人們在社交網路上會使用俚語、造出來的動詞,以及奇奇怪怪的拼寫;還有用標點符號表情的,這直接讓 Facebook 的語言識別和機器翻譯系統失靈。

解決該問題的一個方案,被我們成為 sub-word units。

神經網路受到特定詞彙量的限制,通常是訓練階段遇到過的詞彙。對某些語言而言,這造成了非常大的麻煩,尤其是那些可以對現有詞彙添加新成分、以生成一個新詞彙的語言,比如土耳其語。由於這一點,我們不可能知道一個高品質翻譯所需的全部詞彙。

解決辦法是把詞彙分拆為更小的、更凝聚的單元。舉個例子,可把單詞 being、moving 拆成動詞 +ing 的形式。這種方式,可用 sub-word 模型來生成新動詞,比如 +ing 生成其它動詞的進行時。對於 low resource 語言(LRC),這大幅提升了翻譯效果,並且還能對非正式語言進行標準化。

2. low resource 語言

另一項主要挑戰是 low resource 語言。

正如我提到了,Facebook 支援超過 45 種語言,超過 2000 種翻譯方向。訓練一個翻譯系統需要大量資料,不幸的是,對於許多語言我們並沒有很多資料。

一個解決方案被我們成為 back translation。我們一般使用平行資料(parallel data)來訓練這些系統。當我們只有少量平行資料,我們會用它來創建一個小型的翻譯系統。另外,對於多門語言,我們有許多單語言資料(monolingual data),即只以一門語言表示的資料。所以我們把該資料填入這一小型機器翻譯系統,然後獲得翻譯。很顯然,翻譯結果並不完美。

但把它們結合起來,我們可以訓練更大的機器翻譯系統。這種方法十分吸引人的一點,是它有兩個翻譯方向:它不僅生成英語到土耳其語的翻譯系統,還能生成土耳其語到英語的翻譯。另外,由於目標語句基於單語言資料,它會更加通順。

3. 大規模部署

一項比較艱巨的挑戰,是大規模部署機器翻譯以及應用研究。

我們需要訓練非常多的翻譯系統,並且快速地訓練、快速地解碼、快速地生成翻譯。

一項加速計算過程的方案,名為 online vocabulary reduction (線上詞彙縮減)。正如我之前提到的,在神經網路架構中,目標詞彙是受限制的。詞彙量越大,計算成本越高。

於是我們盡可能減小 output projection layer 的規模。

當你需要翻譯一個特定語句,你可以觀察句子中所有詞彙的出現頻率、排在最前的翻譯選項,以對詞彙進行篩選。

在這個例子中,你可以在活躍詞彙庫中忽略 and 和 move,因為對於該翻譯,它們並沒有對應到任意一個詞彙。這使得計算時間大幅縮短,而並不犧牲翻譯品質。

最後,我想說我們實現了許多提升,但仍有很長的路要走。對於 low resource 語言,我們需要做得更好,這是一個非常艱巨的挑戰。我們需要開始翻譯圖像和視頻。我們需要找到更高效地使用圖像、視頻中語境資訊的方法。我們需要開發出私人訂制的、符合語境的翻譯系統。我對加入這趟“連接世界”的旅程感到萬分激動並自豪。

謝謝。

本講座由雷鋒網編譯,轉載請聯繫。