2
本文作者: NLP日月星辰 | 2016-09-30 18:31 |
雷鋒網(wǎng)按:據(jù)悉傳統(tǒng)的基于短語的機(jī)器學(xué)習(xí)將輸入句子分解成詞和短語,然后對它們的大部分進(jìn)行獨(dú)立翻譯,而神經(jīng)機(jī)器翻譯則將整個輸入句子視作翻譯的基本單元。所以重大突破并不僅僅是上了深度神經(jīng)網(wǎng)絡(luò),而是以句子為單元。
最近,做機(jī)器翻譯的同志們一打開朋友圈,猛然發(fā)現(xiàn)好像飯碗沒了,谷歌爸爸大力出奇跡,提高了機(jī)器翻譯87%的水平。結(jié)果打開人家原文一看,原來虛驚一場,只是現(xiàn)有工作的整合,一篇完美的工程論文,并沒有新的模型提出。不禁長舒一口氣,呼~飯碗還在。
呼~到底火遍朋友圈的那篇文章“谷歌機(jī)器翻譯取得顛覆性突破,錯誤率下降87%”到底幾分真幾分假呢?
1. 谷歌的論文價值
谷歌在本周發(fā)布了谷歌翻譯的實(shí)現(xiàn)論文Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation 這篇論文有非常強(qiáng)的工程性價值,融合了已有機(jī)器翻譯的幾大技術(shù) Seq2Seq + Attention + Sentence loss optimization 三大技術(shù)均不是這篇原創(chuàng),而是之前的經(jīng)典工作。
如果說IBM Model1是機(jī)器翻譯的牛頓定律,那么Seq2Seq就是機(jī)器翻譯里的愛因斯坦相對論,Seq2Seq是谷歌在機(jī)器學(xué)習(xí)頂會NIPS的一篇論文,模型簡單漂亮,為文本生成尤其是機(jī)器翻譯打下了良好的模型基礎(chǔ),所有的NMT(神經(jīng)機(jī)器翻譯)均在此模型上添磚加瓦,這篇也是一樣。
換句話說,神經(jīng)機(jī)器翻譯早已取得比統(tǒng)計機(jī)器翻譯好的效果,只是大家不知道,誤以為是谷歌拯救了科研界,創(chuàng)造了奇跡。其實(shí)是世界上所有機(jī)器翻譯學(xué)者近兩年一起的貢獻(xiàn)(例如:清華也貢獻(xiàn)了Sentence loss optimization for machine translation的技術(shù))。
那么谷歌這篇論文最大的價值是什么呢?答案是:超強(qiáng)的工程實(shí)現(xiàn)。谷歌這篇論文的StackLSTM用了8個GPU實(shí)現(xiàn)了8層的StackLSTM,在當(dāng)前高校以及普通公司的實(shí)現(xiàn)中,NMT還只跑在單卡上,由于顯存限制單卡幾乎不可能跑8層的StackLSTM,而谷歌利用GoogleBrain,向世人展示了一把當(dāng)LSTM深到一定程度機(jī)器翻譯能做成什么樣。
(1) Seq2Seq是一個基于RNN的模型,他有encoder和decoder兩部分。Encoder首先將源語言利用RNN(RNN是一個刻畫序列的模型,hidden states記錄了他讀過序列的所有信息,變種有LSTM和GRU)進(jìn)行句子的向量化表示,當(dāng)Seq2Seq讀到最后一個詞的時候,他記錄了這個句子的所有信息。
之后進(jìn)入Decoder模塊,此部分利用Encoder所給的源語言信息,一個詞一個詞的生成目標(biāo)語言中的詞匯。如果通俗的講解這個模型就是,機(jī)器是一個翻譯人員,突然有個人說了一串源語言所構(gòu)成的序列,要他同聲傳譯,源語言的句子只說一遍,讓機(jī)器翻譯出來目標(biāo)語言所對應(yīng)的句子。
(2)我們都知道同聲傳譯很難,于是人類很聰明,讓機(jī)器把需要翻譯的東西紀(jì)錄在紙上,每當(dāng)他翻譯一個詞的時候一看下所需翻譯的完整句子。這便提出了Attention模型。
Attention模型在翻譯的時候,每當(dāng)翻譯一個詞的時候,都要利用源語言的所有詞進(jìn)行一次計算,計算結(jié)果代表著當(dāng)前詞和源語言每個詞的對應(yīng)關(guān)系。例如翻譯:多個機(jī)場都被迫關(guān)閉了時候,英文airport就和機(jī)場的關(guān)系非常強(qiáng)。這就像一個翻譯官,每次都在看自己所記錄的句子,并決定現(xiàn)在翻譯哪個詞。
(3)然而這么翻譯還是不好,像在蹦詞,而不是在翻譯一句通順的話,于是乎人類又教機(jī)器針對句子的損失進(jìn)行優(yōu)化。原來seq2seq優(yōu)化的是當(dāng)前詞翻譯的好不好(也叫作ML Loss),此時,直接優(yōu)化我所翻譯的句子好不好。
3. 谷歌神經(jīng)機(jī)器翻譯錯誤率下降最高達(dá)87%是如何算出來的?
神經(jīng)機(jī)器翻譯近兩年取得了統(tǒng)計機(jī)器翻譯20年還沒夠著的效果,效果毋容置疑。谷歌原文里面拿人給翻譯的句子打分,滿分六,神經(jīng)機(jī)器翻譯會好于統(tǒng)計機(jī)器翻譯0.5分,大概就是學(xué)霸每次6分的考試都能比學(xué)渣高0.5,好是好但是遠(yuǎn)沒有標(biāo)題中的85%那么恐怖。
那那個百分之87%是怎么算出來的呢?比如滿分5分,我得了4.9分,你得了4分,那么我就比你提高了90%,可謂玩了個數(shù)字游戲。如果這百分之87%是機(jī)器翻譯的BLEU上升87%,那才是真正的顛覆。
現(xiàn)在BLEU普遍在30多,能提高五個點(diǎn),大概就可以拿自然語言處理領(lǐng)域頂級會議ACL的最佳論文,而且會被歷史銘記~而五個點(diǎn)才提高了百分之十幾,誰要是能提高百分之八十幾,那翻譯真是可以下班了。
我們首先可以看一下神經(jīng)機(jī)器翻譯和語法機(jī)器翻譯還有統(tǒng)計機(jī)器翻譯的效果對比
我們可以看到神經(jīng)機(jī)器翻譯通過兩年的努力就超過了另外兩種機(jī)器翻譯。
那為什么神經(jīng)機(jī)器翻譯會比統(tǒng)計機(jī)器翻譯好這么多呢?
端到端的訓(xùn)練(End-to-end training )
神經(jīng)機(jī)器翻譯非常的優(yōu)雅,一個模型就解決了機(jī)器翻譯。而統(tǒng)計機(jī)器翻譯包含詞對齊,調(diào)序,重排等十分繁瑣。
更好地詞匯相似度計算
由于Word2vec的出現(xiàn),近義詞和同義詞可以更好地在語義空間進(jìn)行表達(dá)。例如百度和谷歌在語義空間就十分接近,而神經(jīng)機(jī)器翻譯可以很好利用word2vec的結(jié)果。
更好地利用上下文(只是更好還沒做到很好)
Seq2Seq模型在對上下文建模時比統(tǒng)計機(jī)器翻譯優(yōu)雅很多,他不再受N元語言模型的束縛,可以更好地處理語言的上下文依賴。
5. 機(jī)器翻譯還有什么問題
筆者不是機(jī)器翻譯從業(yè)者,但略知機(jī)器翻譯的幾大問題。
1. 生僻詞翻譯效果極差。例如你輸入了人名或者奇怪的機(jī)構(gòu)名,都會導(dǎo)致翻譯一塌糊涂。
2. 經(jīng)常會漏詞或者同一個詞翻譯好多次
比如圖中的development就被重復(fù)翻譯了
3. 不考慮上下文,以及無法 “雅”的翻譯俗語等~
結(jié)語
神經(jīng)機(jī)器翻譯未來可期,但現(xiàn)在仍有諸多不足,仍然需要每一個研究人員不卑不亢,每天踏踏實(shí)實(shí)的做好研究才能真的顛覆昨天的機(jī)器翻譯。而不要為了每天寫大新聞,而急功近利。
雷鋒網(wǎng)注:本文為雷鋒網(wǎng)獨(dú)家約稿文章,未經(jīng)授權(quán)拒絕轉(zhuǎn)載。
相關(guān)閱讀:
漲姿勢!如何評價Google神經(jīng)機(jī)器翻譯(GNMT)系統(tǒng)?
Google 翻譯的“漢譯英”錯誤率降低 60%,是怎么算出來的?
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。