機器翻譯三大核心技術原理 | AI知識科普
機器翻譯技術發展了80多年,巴別塔的傳說已經成為過去,上天是不可能上天的了,但是讓你優雅地和全世界討論世界杯,不再手舞足蹈、雞同鴨講,這一點機器翻譯還是可以做到的!
01機器翻譯和巴別塔的傳說
《圣經》中記載了這樣一個故事:
- 人類曾經聯合起來興建能通往天堂的高塔——巴別塔,為了阻止人類的計劃,上帝讓人類說不同的語言,使人類相互之間不能溝通,計劃因此失敗,人類自此各散東西。
實現不同語種之間的無障礙溝通,一直都是人類***夢想之一。
在認識到不眠不休窮盡人類一生的力量,也只能掌握幾十種語言時,很多科學家開始思考,如何用機器來幫助人們去解決溝通問題,于是機器翻譯應運而生。
機器翻譯其實是利用計算機把一種自然語言翻譯成另一種自然語言的過程,基本流程大概分為三塊:預處理、核心翻譯、后處理。
預處理是對語言文字進行規整,把過長的句子通過標點符號分成幾個短句子,過濾一些語氣詞和與意思無關的文字,將一些數字和表達不規范的地方,歸整成符合規范的句子。
核心翻譯模塊是將輸入的字符單元、序列翻譯成目標語言序列的過程,這是機器翻譯中最關鍵最核心的地方。
后處理模塊是將翻譯結果進行大小寫的轉化、建模單元進行拼接,特殊符號進行處理,使得翻譯結果更加符合人們的閱讀習慣。
02曲折中前行的機器翻譯
機器翻譯的故事始于1933年,從最開始的只是科學家腦海中一個大膽設想,到現在大規模的開始應用,機器翻譯技術的發展道路大概有6個階段。
起源階段:
機器翻譯起源于1933年,由法國工程師G.B.阿爾楚尼提出機器翻譯設想,并獲得一項翻譯機專利;
萌芽時期:
- 1954年,美國喬治敦大學在IBM公司協同下用IBM-701計算機***完成了英俄機器翻譯試驗,拉開了機器翻譯研究的序幕;
沉寂階段:
- 美國科學院成立了語言自動處理咨詢委員會(ALPAC)于1966年公布了一份名為《語言與機器》的報告,該研究否認機器翻譯可行性,機器翻譯研究進入蕭條期;
復蘇階段:
- 1976年,加拿大蒙特利爾大學與加拿大聯邦政府翻譯局聯合開發的TAUM-METEO系統,標志著機器翻譯的全面復蘇;
發展階段:
- 1993年,IBM的Brown等提出基于詞對齊的統計翻譯模型,基于語料庫的方法開始盛行;
- 2003年,愛丁堡大學的Koehn提出短語翻譯模型,使機器翻譯效果顯著提升,推動了工業應用;
- 2005年,David Chang進一步提出了層次短語模型,同時基于語法樹的翻譯模型方面研究也取得了長足的進步;
繁榮階段:
- 2013年和14年,牛津大學、谷歌、蒙特利爾大學研究人員提出端到端的神經機器翻譯,開創了深度學習翻譯新時代;
- 2015年,蒙特利爾大學引入Attention機制,神經機器翻譯達到實用階段;
- 2016年,谷歌GNMT發布,訊飛上線NMT系統,神經翻譯開始大規模應用。
03機器翻譯的技術原理
在講機器翻譯的技術原理之前,我們先來看一張機器翻譯技術發展歷史圖:
20世紀80年代基于規則的機器翻譯開始走向應用,這是***代機器翻譯技術。隨著機器翻譯的應用領域越來越復雜,基于規則的機器翻譯的局限性開始顯現,應用場景越多,需要的規則也越來越多,規則之間的沖突也逐漸出現。
于是很多科研學家開始思考,是否能讓機器自動從數據庫里學習相應的規則,1993年IBM提出基于詞的統計翻譯模型標志著第二代機器翻譯技術的興起。
2014年谷歌和蒙特利爾大學提出的第三代機器翻譯技術,也就是基于端到端的神經機器翻譯,標志著第三代機器翻譯技術的到來。
看完了機器翻譯技術的迭代發展,我們來了解下三代機器翻譯的核心技術:規則機器翻譯、統計機器翻譯、神經機器翻譯。
規則機器翻譯
基于規則的機器翻譯大概有三種技術路線,***種是直接翻譯的方法,對源語言做完分詞之后,將源語言的每個詞翻譯成目標語言的相關詞語,然后拼接起來得出翻譯結果。
由于源語言和目標語言并不在同一體系下,句法順序有很大程度上的出入,直接拼接起來的翻譯結果,效果往往并不理想。
于是科研人員提出了第二個規則機器翻譯的方法,引用語言學的相關知識,對源語言的句子進行句法的分析,由于應用了相關句法語言學的知識,因此構建出來的目標譯文是比較準確的。
但這里依然存在著另外一個問題,只有當語言的規則性比較強,機器能夠做法分析的時候,這套方法才比較有效。
因此在此基礎之上,還有科研人員提出,能否借助于人的大腦翻譯來實現基于規則的機器翻譯?
這里面涉及到中間語言,首先將源語言用中間語言進行描述,然后借助于中間語言翻譯成我們的目標語言。
但由于語言的復雜性,其實很難借助于一個中間語言來實現源語言和目標語言的精確描述。
講完了基于規則的機器翻譯的三種技術路線,我們用一張圖來總結下它的優缺點:
統計機器翻譯
機器翻譯的第二代技術路線,是基于統計的機器翻譯,其核心在于設計概率模型對翻譯過程建模。
比如我們用x來表示原句子,用y來表示目標語言的句子,任務就是找到一個翻譯模型
θ 。
最早應用于統計翻譯的模型是信源信道模型,在這個模型下假設我們看到的源語言文本 x是由一段目標語言文本 y 經過某種奇怪的編碼得到的,那么翻譯的目標就是要將 y 還原成 x,這也就是一個解碼的過程。
所以我們的翻譯目標函數可以設計成***化Pr(𝑥│𝑦),通過貝葉斯公式,我們可以把Pr(𝑥│𝑦)分成兩項,Pr(𝑦) 的語言模型,Pr(𝑦|𝑥)的翻譯模型
如果將這個目標函數兩邊同取log,我們就可以得到對數線性模型,這也是我們在工程中實際采用的模型。
對數線性模型不僅包括了翻譯模型、語言模型,還包括了調序模型,扭曲模型和詞數懲罰模型,通過這些模型共同約束來實現源語言到目標語言的翻譯。
講完了統計機器翻譯的相關知識,我們來看下基于短語的統計翻譯模型的三個基本步驟:
- 源短語切分:把源語言句子切分成若干短語
- 源短語翻譯:翻譯每一個源短語
- 目標短語調序:按某順序把目標短語組合成句子
***,我們依舊用一張圖來總結下基于統計機器翻譯的優缺點:
神經機器翻譯
講完了基于規則的機器翻譯和基于統計的機器翻譯,接下來我們來看下基于端到端的神經機器翻譯。
神經機器翻譯基本的建模框架是端到端序列生成模型,是將輸入序列變換到輸出序列的一種框架和方法。
其核心部分有兩點,一是如何表征輸入序列(編碼),二是如何獲得輸出序列(解碼)。
對于機器翻譯而言不僅包括了編碼和解碼兩個部分,還引入了額外的機制——注意力機制,來幫助我們進行調序。
下面我們用一張示意圖來看一下,基于RNN的神經機器翻譯的流程:
首先我們通過分詞得到輸入源語言詞序列,接下來每個詞都用一個詞向量進行表示,得到相應的詞向量序列,然后用前向的RNN神經網絡得到它的正向編碼表示。
再用一個反向的RNN,得到它的反向編碼表示,***將正向和反向的編碼表示進行拼接,然后用注意力機制來預測哪個時刻需要翻譯哪個詞,通過不斷地預測和翻譯,就可以得到目標語言的譯文。
04機器翻譯的基本應用
機器翻譯的基本應用可分為三大場景:信息獲取為目的場景、信息發布為目的的場景、信息交流為目的場景。
以信息獲取為目的的應用場景,可能大家都比較熟悉,比如說翻譯或是海外購物,遇到一些生僻的詞就可以借助機器翻譯技術,來了解它的真正意思。
在信息發布為目的的場景中,典型的應用是輔助筆譯。
大家應該都還記得本科畢業論文需要用英文寫個摘要。不少同學都是利用谷歌的翻譯,將中文摘要翻譯成英文摘要,然后再做一些簡單的調序,得出最終的英文摘要,其實這就是一個簡單的輔助筆譯的過程。
第三大場景就是以信息交流為目的場景,主要解決人與人之間的語言溝通問題。