當機器翻譯遇上人工智能,會變得更靠譜嗎?
提到機器翻譯時,很多心中都會感到疑惑,早在十幾年前,我們把一句英文放到金山詞霸里,就能被翻譯成中文。如今加入了深度學習技術的機器翻譯,又能有什么不同呢?
區(qū)別當然有很多,最典型的就是機器翻譯能夠翻譯出整篇文章,可普通的翻譯技術遇到長一點句子就不行了。原因就是機器翻譯并非簡單的將一個個單詞翻譯成另一種語言,而是可以像人一樣,不斷向前回顧以理解結構復雜的句子,并且結合上下文,理解每一個It/He/She具體指代誰。
實現(xiàn)這種功能,分別依賴于兩種神經(jīng)網(wǎng)絡架構,一個是RNN——循環(huán)神經(jīng)網(wǎng)絡,另一個則是CNN——卷積神經(jīng)網(wǎng)絡。最近關于RNN和CNN哪個更適用于機器翻譯的爭論也很多,今天就來看看這兩種神經(jīng)網(wǎng)絡都是如何加持機器翻譯,拯救外語渣的。
RNN:機器翻譯中的Old School
首先我們要明白,對于機器來說,翻譯就是一個解碼后再編碼的過程。如果要把英語翻譯成中文,就要先把英語原文解碼成“神經(jīng)代碼”,再編碼生成中文。
而循環(huán)神經(jīng)網(wǎng)絡的關鍵,就在于循環(huán)二字上。系統(tǒng)會“記住”上一次輸出的內容,以此來決定下一次輸出。有了上一次和下一次的概念,神經(jīng)網(wǎng)絡就不會把輸入和輸出的信息看做獨立的,而是相互關聯(lián)的時間序列。這樣就可以通過以往的序列關聯(lián)猜測到下一個序列會出現(xiàn)的詞,
用最通俗的話講,我們聽多了郭德綱的相聲,就知道“于謙的父親”這一元素,后面接的一定是“王老爺子”。
在翻譯時,RNN把源語言當做輸入序列,把翻譯語言當做輸出序列,由于每一次輸出都會參考上一次輸出的結果,所以機器翻譯更具整體性,而不是簡單的翻譯單詞。
目前對RNN應用的最為爐火純青的應該就是谷歌翻譯了 ,去年谷歌提出了用神經(jīng)網(wǎng)絡系統(tǒng)進行機器翻譯,據(jù)稱漢譯英的錯誤率***下降85%,在當時還小小的引起了一番轟動。
如果說傳統(tǒng)神經(jīng)網(wǎng)絡在翻譯時,永遠是用一片空白的大腦面對每一個句子,那么RNN在翻譯時則擁有持久的思想,而谷歌翻譯所應用的LSTM更加強了這一點。LSTM是RNN的一類變種,被譯為長短期記憶網(wǎng)絡,是一種時間遞歸神經(jīng)網(wǎng)絡。RNN的缺陷在于,“于謙的父親-王老爺子”這種間隔很短的序列預測以前很容易,但要預測“今天出門晚了,所以上班[]”這類句子,需要聯(lián)系到間隔較遠的上下文,這時RNN可能就表現(xiàn)的沒那么優(yōu)秀了。
而LSTM,就可以學習和理解這種長期依賴關系。LSTM通過一系列計算將句子中的各個元素的特征構建成非線性的組合,同時還設立了“遺忘機制”,將權重較低的元素遺忘掉。這就意味著LSTM可以“更新”記憶,讓長期依賴因素不斷的存在于距離較近的神經(jīng)元中。
CNN:GPU的寵兒
就在RNN機器翻譯還在不斷更新時,又有人提出了將CNN——卷積神經(jīng)網(wǎng)絡應用于機器翻譯之上。
從上文我們可以得出結論,RNN(LSTM)機器翻譯按照序列進行工作,也就是和人一樣,按照順序一個個的進行翻譯。但要記住的一點是,目前比較主流的GPU***的有點是可以進行并行計算。這樣一來RNN就沒法***化利用GPU的計算能力。
而CNN則可以同時處理多個語言片段,并且具有信息分層處理能力。將文本序列化、單詞向量化,經(jīng)過分層處理后再輸出結果。在分層過程中,還會不斷回顧源文本來確定下一個輸出序列。
提出這種技術的是Facebook和最近的機器翻譯新秀DeepL。在上半年時,F(xiàn)acebook宣布推出了基于CNN開發(fā)的語言翻譯模型,據(jù)說比基于RNN開發(fā)的語言翻譯模型速度快9倍,而且準確率更高。在測試上,F(xiàn)acebook翻譯系統(tǒng)在英語-德語、英語-法語的測試上都比RNN更接近人工翻譯。
而來自德國的DeepL更是在冰島放了臺世界排名23名的超級計算機,每秒能執(zhí)行5.1peta浮點運算,只為了訓練他們的神經(jīng)網(wǎng)絡。
從他們自己展示的數(shù)據(jù)看來,DeepL的成績已經(jīng)遠超F(xiàn)acebook、微軟甚至谷歌。
不過不管是CNN還是RNN都不是機器翻譯的終點,比如谷歌近期提到的不基于RNN的注意力機制,以及多層神經(jīng)網(wǎng)絡、深度神經(jīng)網(wǎng)絡等等,都是解決機器翻譯的方法。在速度、計算資源消耗、情感理解等等多種維度上都有不同的表現(xiàn)。
如果從最終的實用性來說,神經(jīng)網(wǎng)絡模型能影響到的僅僅只是一部分。更多的是語料庫的大小、繁重的語料標注工作等等,同時這也注定了蒙古語、藏語這種語料較少語言仍然無法受益于機器翻譯。
目前的機器翻譯,基本還停留在輔助人工翻譯的階段。不論是DeepL的超級計算機,還是谷歌的拋開神經(jīng)網(wǎng)絡,都可以理解成在技術上的一種“炫技”。比使用哪種神經(jīng)網(wǎng)絡更重要的,還是應該讓機器翻譯更多的進入我們的生活。