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