0
本文作者: 三川 | 2017-04-20 18:08 | 專(zhuān)題:Facebook F8大會(huì) |
該講座主題為 Facebook 機(jī)器翻譯的兩代架構(gòu)以及技術(shù)挑戰(zhàn)。
雷鋒網(wǎng)消息:在昨日的 F8 會(huì)場(chǎng),該講座吸引了眾多開(kāi)發(fā)者到場(chǎng),主講者是 Facebook 語(yǔ)言翻譯部門(mén)技術(shù)負(fù)責(zé)人 Necip Fazil Ayan。
Necip Fazil Ayan 首先介紹了 Facebook 翻譯業(yè)務(wù)的使命和愿景,以及對(duì)機(jī)器翻譯的應(yīng)用。
Necip Fazil Ayan:Facebook 希望推動(dòng)建立一個(gè)真正的全球社區(qū),即“連接世界”:每個(gè)人都能與全世界任意國(guó)家的人、任意語(yǔ)言?xún)?nèi)容自如交互。翻譯,便是其中最關(guān)鍵的一環(huán)。
使命:通過(guò)打破語(yǔ)言障礙,讓世界更開(kāi)放、更緊密聯(lián)結(jié)。
愿景:每一名用戶(hù)都能用其語(yǔ)言無(wú)障礙的使用 Facebook。
有兩種途徑。
“See translation”:當(dāng) Facebook 系統(tǒng)判斷用戶(hù)無(wú)法理解某個(gè)帖子時(shí),便提供“翻譯”選項(xiàng)。
系統(tǒng)判斷的依據(jù)很簡(jiǎn)單:對(duì)貼子的語(yǔ)言識(shí)別和對(duì)用戶(hù)的語(yǔ)言預(yù)測(cè)。
“Auto translation”: 當(dāng)系統(tǒng)判斷翻譯質(zhì)量很高時(shí),會(huì)自動(dòng)顯示翻譯結(jié)果,而不是原始語(yǔ)言。 這背后,是 Facebook 對(duì)平臺(tái)上的每一條翻譯都計(jì)算 confidence score(置信度),并據(jù)此預(yù)估翻譯質(zhì)量。這靠另一個(gè)單獨(dú)的機(jī)器學(xué)習(xí)模型來(lái)實(shí)現(xiàn)。
目前,F(xiàn)acebook 絕大部分的翻譯系統(tǒng),仍是基于 phrase-based machine translation 架構(gòu),即“基于短語(yǔ)的機(jī)器翻譯”。
在過(guò)去的十到十五年中,該架構(gòu)被行業(yè)廣泛采用。但在最近的幾年,F(xiàn)acebook 正轉(zhuǎn)向 neural net machine translation 架構(gòu),即神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯。據(jù)雷鋒網(wǎng)了解,去年 6 月,F(xiàn)acebook 部署了第一個(gè)基于神經(jīng)機(jī)器翻譯的產(chǎn)品——德譯英;拉開(kāi)了從“基于短語(yǔ)”切換到神經(jīng)機(jī)器翻譯的大幕。至今,已有 15 個(gè)不同語(yǔ)言的翻譯系統(tǒng),遷移到了新的機(jī)器翻譯架構(gòu);Facebook 平臺(tái)上,超過(guò) 50% 的翻譯出自基于神經(jīng)網(wǎng)絡(luò)的系統(tǒng)。
那么,為什么 Facebook 要轉(zhuǎn)移至神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯?或者說(shuō),新架構(gòu)的優(yōu)點(diǎn)是什么?
首先,Necip Fazil Ayan 表示,神經(jīng)機(jī)器翻譯為 Facebook 帶來(lái)翻譯質(zhì)量的大幅提升:
精確度(是否清楚表達(dá)了原句的意思)提升 20%,通順程度(翻譯語(yǔ)句聽(tīng)起來(lái)是否正常)提升 24%。
這是兩代架構(gòu)的翻譯結(jié)果對(duì)比(土耳其語(yǔ)到英語(yǔ))
左邊是基于短語(yǔ)的機(jī)器翻譯,大多數(shù)詞語(yǔ)的意思是對(duì)的,但順序不對(duì)勁。右邊是神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯,大多數(shù)詞語(yǔ)的意思也是對(duì)的,但語(yǔ)序更加自然。翻譯出來(lái)的句子更容易理解、更通順。
我先談?wù)劵诙陶Z(yǔ)的機(jī)器翻譯。該系統(tǒng)學(xué)習(xí)詞語(yǔ)之間的對(duì)應(yīng)關(guān)系,然后把這些對(duì)應(yīng)關(guān)系泛化到成串詞語(yǔ)上,即短語(yǔ)。這些短語(yǔ)是從海量的句子翻譯(原句+譯句)中得來(lái)。給定一個(gè)新句子,該系統(tǒng)會(huì)根據(jù)已學(xué)到的短語(yǔ)翻譯,試圖找出一個(gè)最優(yōu)分段方案。
短語(yǔ)越長(zhǎng),我們?cè)讲粨?dān)心重新排列詞序問(wèn)題(local reordering)。數(shù)據(jù)越多,學(xué)習(xí)長(zhǎng)短語(yǔ)的效果越好。
基于短語(yǔ)架構(gòu)機(jī)器翻譯的缺陷:
缺乏語(yǔ)境。短語(yǔ)一般最多只有 7 到 10 個(gè)單詞的長(zhǎng)度
短語(yǔ)的重新排序問(wèn)題很大,尤其對(duì)于詞序差異很大的語(yǔ)言,比如英語(yǔ)和土耳其語(yǔ)
其統(tǒng)計(jì)模型難以擴(kuò)展新功能
泛化效果不好,非常依賴(lài)學(xué)習(xí)過(guò)的數(shù)據(jù)
再來(lái)看一看神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯系統(tǒng)。
神經(jīng)機(jī)器翻譯系統(tǒng)會(huì)考慮原句的整個(gè)語(yǔ)境,以及當(dāng)次翻譯過(guò)程中此前翻譯出的所有內(nèi)容。它的優(yōu)點(diǎn)有:
支持大段的語(yǔ)序重排(long distance reordering)
連續(xù)、豐富的表達(dá)。我們把詞語(yǔ)映射到矢量表示(詞向量)。它們不再是獨(dú)立的詞語(yǔ),而是一維空間中的點(diǎn)。不同點(diǎn)之間的距離,可被用來(lái)代表不同詞語(yǔ)之間的語(yǔ)義相似性
神經(jīng)網(wǎng)絡(luò)的擴(kuò)展性非常好。我們可以把不同來(lái)源的信息整合進(jìn)去,使我們得以很容易的把不同類(lèi)型的表達(dá)結(jié)合到一起
更通順
至于為什么更多語(yǔ)境能起到積極作用,我想多解釋一下:這里的任務(wù),是根據(jù)語(yǔ)境預(yù)測(cè)下一個(gè)詞語(yǔ)。當(dāng)語(yǔ)境信息越豐富,預(yù)測(cè)就更準(zhǔn)確。借助遞歸神經(jīng)網(wǎng)絡(luò)(RNN),我們的語(yǔ)言建模能力獲得了無(wú)限制的提升。通過(guò)更大的視野,我們可以做出更好的決策。
對(duì)于翻譯系統(tǒng)本身,我們也是用 RNN with attention。我們的架構(gòu)包含編碼器以及解碼器。編碼器的作用是把原語(yǔ)句轉(zhuǎn)化為矢量表達(dá);隨后,解碼器把后者轉(zhuǎn)為另一個(gè)句子,這就是機(jī)器翻譯的過(guò)程。
對(duì)于原語(yǔ)句,我們用的是一個(gè)雙向的神經(jīng)網(wǎng)絡(luò)。這意味著,我們既利用了前文中的詞語(yǔ),也用到了后文的詞語(yǔ)。所以,編碼器的輸出,是一個(gè)利用了前后文所有語(yǔ)境的、對(duì)原句的表示。目標(biāo)句子也使用 RNN 來(lái)生成。在生成過(guò)程中的每一步,我們均充分利用了此前生成的詞語(yǔ),以及語(yǔ)境的某部分。重復(fù)這一步驟,我們便得到了最終的機(jī)器翻譯結(jié)果。
首先是網(wǎng)絡(luò)語(yǔ)言,我們稱(chēng)之為“Facebook 語(yǔ)言”。人們?cè)谏缃痪W(wǎng)絡(luò)上會(huì)使用俚語(yǔ)、造出來(lái)的動(dòng)詞,以及奇奇怪怪的拼寫(xiě);還有用標(biāo)點(diǎn)符號(hào)表情的,這直接讓 Facebook 的語(yǔ)言識(shí)別和機(jī)器翻譯系統(tǒng)失靈。
解決該問(wèn)題的一個(gè)方案,被我們成為 sub-word units。
神經(jīng)網(wǎng)絡(luò)受到特定詞匯量的限制,通常是訓(xùn)練階段遇到過(guò)的詞匯。對(duì)某些語(yǔ)言而言,這造成了非常大的麻煩,尤其是那些可以對(duì)現(xiàn)有詞匯添加新成分、以生成一個(gè)新詞匯的語(yǔ)言,比如土耳其語(yǔ)。由于這一點(diǎn),我們不可能知道一個(gè)高質(zhì)量翻譯所需的全部詞匯。
解決辦法是把詞匯分拆為更小的、更凝聚的單元。舉個(gè)例子,可把單詞 being、moving 拆成動(dòng)詞 +ing 的形式。這種方式,可用 sub-word 模型來(lái)生成新動(dòng)詞,比如 +ing 生成其它動(dòng)詞的進(jìn)行時(shí)。對(duì)于 low resource 語(yǔ)言(LRC),這大幅提升了翻譯效果,并且還能對(duì)非正式語(yǔ)言進(jìn)行標(biāo)準(zhǔn)化。
另一項(xiàng)主要挑戰(zhàn)是 low resource 語(yǔ)言。正如我提到了,F(xiàn)acebook 支持超過(guò) 45 種語(yǔ)言,超過(guò) 2000 種翻譯方向。訓(xùn)練一個(gè)翻譯系統(tǒng)需要大量數(shù)據(jù),不幸的是,對(duì)于許多語(yǔ)言我們并沒(méi)有很多數(shù)據(jù)。
一個(gè)解決方案被我們成為 back translation。我們一般使用平行數(shù)據(jù)(parallel data)來(lái)訓(xùn)練這些系統(tǒng)。當(dāng)我們只有少量平行數(shù)據(jù),我們會(huì)用它來(lái)創(chuàng)建一個(gè)小型的翻譯系統(tǒng)。另外,對(duì)于多門(mén)語(yǔ)言,我們有許多單語(yǔ)言數(shù)據(jù)(monolingual data),即只以一門(mén)語(yǔ)言表示的數(shù)據(jù)。所以我們把該數(shù)據(jù)填入這一小型機(jī)器翻譯系統(tǒng),然后獲得翻譯。很顯然,翻譯結(jié)果并不完美。
但把它們結(jié)合起來(lái),我們可以訓(xùn)練更大的機(jī)器翻譯系統(tǒng)。這種方法十分吸引人的一點(diǎn),是它有兩個(gè)翻譯方向:它不僅生成英語(yǔ)到土耳其語(yǔ)的翻譯系統(tǒng),還能生成土耳其語(yǔ)到英語(yǔ)的翻譯。另外,由于目標(biāo)語(yǔ)句基于單語(yǔ)言數(shù)據(jù),它會(huì)更加通順。
一項(xiàng)比較艱巨的挑戰(zhàn),是大規(guī)模部署機(jī)器翻譯以及應(yīng)用研究。我們需要訓(xùn)練非常多的翻譯系統(tǒng),并且快速地訓(xùn)練、快速地解碼、快速地生成翻譯。
一項(xiàng)加速計(jì)算過(guò)程的方案,名為 online vocabulary reduction (在線詞匯縮減)。正如我之前提到的,在神經(jīng)網(wǎng)絡(luò)架構(gòu)中,目標(biāo)詞匯是受限制的。詞匯量越大,計(jì)算成本越高。
于是我們盡可能減小 output projection layer 的規(guī)模。
當(dāng)你需要翻譯一個(gè)特定語(yǔ)句,你可以觀察句子中所有詞匯的出現(xiàn)頻率、排在最前的翻譯選項(xiàng),以對(duì)詞匯進(jìn)行篩選。
在這個(gè)例子中,你可以在活躍詞匯庫(kù)中忽略 and 和 move,因?yàn)閷?duì)于該翻譯,它們并沒(méi)有對(duì)應(yīng)到任意一個(gè)詞匯。這使得計(jì)算時(shí)間大幅縮短,而并不犧牲翻譯質(zhì)量。
最后,我想說(shuō)我們實(shí)現(xiàn)了許多提升,但仍有很長(zhǎng)的路要走。對(duì)于 low resource 語(yǔ)言,我們需要做得更好,這是一個(gè)非常艱巨的挑戰(zhàn)。我們需要開(kāi)始翻譯圖像和視頻。我們需要找到更高效地使用圖像、視頻中語(yǔ)境信息的方法。我們需要開(kāi)發(fā)出私人訂制的、符合語(yǔ)境的翻譯系統(tǒng)。我對(duì)加入這趟“連接世界”的旅程感到萬(wàn)分激動(dòng)并自豪。
謝謝。
本講座由雷鋒網(wǎng)編譯,轉(zhuǎn)載請(qǐng)聯(lián)系。
相關(guān)文章:
一窺谷歌神經(jīng)機(jī)器翻譯模型真面貌,其底層框架開(kāi)源!
Google Brain:NMT訓(xùn)練成本太高?用大規(guī)模神經(jīng)機(jī)器翻譯架構(gòu)分析給出解決方案
哈佛神經(jīng)機(jī)器翻譯系統(tǒng) OpenNMT 更新等 | AI 開(kāi)發(fā)者頭條
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。
本專(zhuān)題其他文章