Google工程師:谷歌翻譯在幾個月內效果明顯提升的秘訣
編輯|Vincent,Emily AI 前線導讀:相信經常使用谷歌翻譯的讀者已經發現了,今年穀歌翻譯的水平可以說實現了質的飛躍。從以前一句話都翻譯的亂七八糟,到現在幾百詞甚至上千詞的長段落可以通順翻譯,谷歌翻譯到底經歷了什麼?在谷歌任職的工程師來為你解答。更多乾貨內容請關注微信公眾號「AI 前線」,(ID:ai-front)
近日,一位網友在知乎提問:谷歌翻譯這幾個月的進化速度突然加快是什麼原因?問題鏈接:
https://www.zhihu.com/question/55915702/answer/282532687
他描述道:曾經的印象中,谷歌翻譯只是用來翻譯單詞、用來對文段粗解大意的。今天查文獻的時候,一時懶得一個個查單詞了(幾乎都是專業英語),就扔給了谷歌翻譯,結果產生了以下效果:
點擊圖片放大
從上圖可以看得出,這一段文字不僅翻譯通順,而且句子中的中文語法也更加符合中國人的語言習慣,而並非像原來那樣按照英文語法僵硬地直譯;此外,大寫專有名詞地區分、近義詞地選取也比原來更加精準。尤其是這位網友說:「英譯中和英譯德(我德語比英語好,以前經常會退而求其次地把英文翻譯成德文來讀,畢竟同語系的翻譯難度更低得多)不一樣,何止是跨語系,根本就是跨語類翻譯,這方面感覺即使是人腦都很難做好。」
隨後,谷歌員工共 Da Huang 詳細分析了兩點原因,為了不改變答者願意,我們將他回答地全文整理了出來:
作為 Google 員工,我來談談兩個令我體會比較深刻的原因吧。
神經網路 / 深度學習在機器翻譯上的飛速進展。
大概在 14 年左右的時候,關於在機器翻譯上應用神經網路 / 深度學習的論文開始大量地被發表。[1][Sutskever et al., 2014] 把基於 RNN 的序列到序列(seq2seq)模型應用於機器翻譯的任務上。
"多層 seq2seq 模型"
後來因為單純的 seq2seq 對於長句的效果不佳,引入了注意力機制(Attention)。[2,3][Bahdanau et al., 2015, Luong et al., 2015]。
Attention
大概的意思是把編碼層的輸出和解碼層的輸出結合起來計算一個含有對齊信息的上下文向量 (Context Vector)。由於帶上了對齊信息,對長句的翻譯效果有了顯著的提高。
再後來是去年誕生的 GNMT[4] [Wu et al., 2016],在上述工作的基礎上加入了一些改進,如:
用 WordPiece 來解決低頻詞的問題。這個就相當於是子詞,如 wordpiece 會被拆分成 word 和 piece 兩個子詞。
加入了殘差連接(ResNet),提高了更深的網路的可訓練性。
雙向 RNN。
基本上,每一次改進都是在原先的神經網路中一些新的結構來改善原先模型不足的地方。不得不說,神經網路其中一個美妙之處就在於可以很容易地通過在上面加結構 / 連接來改變模型性質,所以 實驗一種新的模型不是一件難事,這也是促成神經網路在各個應用上研究大爆發的其中一個原因。
當然,為了解決 RNN 訓練慢的問題,後來又有研究者提出了基於 CNN 的方法 [5][Gehring et al. 2017],純粹 Attention 的方法 [6][Vaswani, et al., 2017]。這些方法擯棄了傳統的 RNN 方法,不過我們仍然可以看到組成這些模型的各個子結構大部分都是一些已經存在的結構。
另外值得一提的是,上述模型都是端到端的模型(模型的輸入和輸出都是句子),不需要我們去處理語法 / 句法之類的問題。這其實就是降低了機器翻譯研究的門檻,即不需要太多的領域內的專業知識。
Tensorflow 在 Google 內部的廣泛應用,以及 Google 內部對 Tensorflow 強大的基礎設施支持。Google 有著大量的機器集群,並且對 Tensorflow 有著很好的支持。在這些集群上部署神經網路訓練任務是一件輕而易舉的事情。基本上,我們只需要指定所需要的資源,就可以把我們的訓練任務部署在機器集群上。這就大大地降低研究的成本。這不但把研究者們從這些瑣碎的事情上解放出來專心於網路結構的研究,而且可以讓研究者們同時進行很多實驗去驗證他們的想法、快速迭代。快速迭代對於研究真的非常非常重要。
當然,硬體革新也是很重要的,近年來 GPU 越來越快,並且 Google 自家也開發了專門用於機器學習的 TPU。這都是對於減低實驗時間成本有著很積極的作用。
順帶一提,Google 已經在 Tensorflow 的官方教程中加入了關於機器翻譯的教程:
https://www.tensorflow.org/versions/master/tutorials/seq2seq
如果哪位同學對這個感興趣的話,可以比較容易地跟著上面的教程,開發一個自己的機器翻譯模型出來。
答者回答中一些 paper 的下載地址,如有讀者需要可自行查看下載:
[1]https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf
[2] https://arxiv.org/pdf/1409.0473.pdf
[3] http://aclweb.org/anthology/D15-1166
[4] https://arxiv.org/pdf/1609.08144.pdf
[5] https://arxiv.org/abs/1705.03122
[6] https://arxiv.org/abs/1706.03762
另外,還有其他答者指出:去年九月谷歌搞出了一個叫「神經機器翻譯」的大新聞,讓谷歌翻譯學會了整句翻譯,現在,谷歌翻譯的社區里,來自全球各地的譯者都可以對谷歌翻譯進行「調教」,谷歌翻譯的進步,每個用戶都是功不可沒的。
推薦閱讀:
※《幼學瓊林》卷二.婚姻 翻譯
※#小熊翻譯精選#之 復古女王范連衣裙 Principessa dress
※《論語》原文及其全文翻譯(四十四)
※朱子家訓(全文兼翻譯)
※SH19翻譯:我有一個夢想 (馬丁·路德·金)