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