中小學AI 素養 – 生活中用的人工智慧語音及翻譯系統(II)

機器翻譯的進展及問題(ref)

機器翻譯起源及歷史(Ref)

機器翻譯(Ref)英語:Machine Translation,經常簡寫為MT,簡稱機翻)屬於計算語言學的範疇,其研究藉由電腦程式將文字或演說從一種自然語言翻譯成另一種自然語言。簡單來說,機器翻譯是透過將一個自然語言的字辭取代成另一個自然語言的字辭。藉由使用語料庫的技術,可達成更加複雜的自動翻譯,包含可更佳的處理不同的文法結構、辭彙辨識慣用語的對應等。

目前的翻譯機器,有時可以得到可以理解的翻譯結果,但是想要得到較有意義的翻譯結果,往往需要在輸入語句時適當地編輯,以利電腦程式分析。

但是,機器翻譯的結果好壞,往往取決於譯入及譯出語之間的詞彙、文法結構、語系甚至文化上的差異,例如英語荷蘭語同為印歐語系日耳曼語族,這兩種語言間的機器翻譯結果通常比漢語英語間機器翻譯的結果好。

因此,要改善機器翻譯的結果,人為的介入仍顯相當重要。

機器翻譯有時會得出這樣令人難以理解又啼笑皆非的翻譯結果

峇里島景區上的 no entry(禁止進入)被機器翻譯成「沒有進入」

峇里島景區上的 forbidden to stand on(禁止站在上方)被機器翻譯成了「嚴禁站在」

一般而言,大眾使用機器翻譯的目的只是為了獲知原文句子或段落的要旨,而不是精確的翻譯。總的來說,機器翻譯的效果並沒有達到可以取代人工翻譯的程度,所以無法成為正式的翻譯。

不過現在已有越來越多的公司嘗試以機器翻譯的技術來提供其公司網站多語系支援的服務。例如微軟公司試將其 MSDN 以機器翻譯來自動翻譯成多國語言,如上文所說,知識庫作為專業領域,其文法較為制式化,翻譯結果亦更加符合自然語言。

機器翻譯的概念最早可追溯到17世紀。1629年,哲學家笛卡兒(René Descartes)提出了世界語言的概念,即將不同語言相同含義的詞彙以統一符號表示。笛卡兒、萊布尼茲(Gottfried Wilhelm Leibniz)、貝克(Cave Beck)、基爾施(Athanasius Kircher)以及貝希爾(Johann Joachim Becher)等人曾試圖編寫類似世界語言的辭典。直到近代,藉由機械的輔助,機器翻譯的可行性大為提升。20世紀初期便有多位科學家與發明家陸續提出機器翻譯的理論與實作計畫或想法。沃倫韋弗被譽為機器翻譯的鼻祖。他拋卻了俄語文本的含義,轉而視為一堆「密碼」。在美國和歐洲,他的團隊和繼任者在工作時都遵循著一個常理:「任何語言都是由一堆詞彙和一套語法規則組成。只要把兩種詞彙放到機器里,按照人類組合這兩種詞彙的方式,為之建立一套完整的規則,機器就能破譯「密碼」。」1954年美國喬治城大學在一項實驗中,成功將約60句的俄文自動翻譯成英文,被視為機器翻譯可行的開端。自此開始的十年間,政府與企業相繼投入相當的資金,用於機器翻譯的研究上。然而,ALPAC(自動語言處理顧問委員會,Automatic Language Processing Advisory Committee)在1966年提出的一項報告中表明十年來的機器翻譯研究進度緩慢,未達預期。該項報告使得之後的研究資金大為減縮,直到近1980年代,由於電腦運算科技的進步,以及演算成本相對降低,才使政府與企業對機器翻譯再次提起興趣,特別是在統計法機器翻譯的領域上。

從人為的翻譯來看機器翻譯,翻譯的過程可被細分如下:

1.解譯來源文字的文意

2.重新編譯此解析後所得的文意至目標語言

在這看似簡單的步驟之後其實是複雜的認知操作。要能解譯來源文字的完整意義,一個譯者必須能夠分析與詮釋整段文章的所有特徵,必須能夠深度的了解其文法語義語法成語等等,相當於了解來源語言的文化背景。譯者同時也必須兼備目標語言相同深度的知識。

於是,這對機器翻譯便是一項挑戰,即:要如何設計一個程式使其能夠如同真人一樣的「了解認知)」一段文字,並且能夠「創造」一段好似真人實際寫作出來的目標語言的文字。

常見機器翻譯的難處在於無法給於適當且足夠龐大的資訊,來滿足不同領域或是不同法則的機器翻譯法。舉例來說,對於一個需要統計學法則的翻譯法,給予它大量的多語言素材是必要的,但對於文法式法則的翻譯法便顯得沒有太大意義。

// STEAMCourses 課程介紹:

當AI 進入 Scratch

•生活 AI

•創意 AI

•Scratch

•Scratch 的智能語音

•Scratch 的智能翻譯

•做個 Scratch 多語系專家系統(智能導覽)

•視覺辨識

•人臉辨識

•車牌辨識

•文字辨識

// STEAMCourses 課程介紹 end


機器翻譯的方法(Ref)

規則法

規則法機器翻譯的範例包含了轉化法(transfer-based)、中間語法(interlingual)、以及辭典法(dictionary-based)機器翻譯 。

辭典法

機器翻譯可利用辭典的詞彙作翻譯。因為這種翻譯是「字對字」的,所以通常各字之間在意思上都沒有任何關聯。這種機器翻譯法最適用於具有冗長的詞語列表(意即非完整的句子)。例如產品型錄的翻譯。

範例法

所謂範例法,即基於實例的翻譯方法。基本思路是電腦模擬大量翻譯實例(翻譯語料庫),進行有效替換的翻譯策略。因此該方法依賴於翻譯語料庫的質量、規模和覆蓋面。如果有完全一樣的例句,則直接採用範例的譯文;如果有多個相似的例句,則自動模擬相似度最高的譯文,只需翻譯不同部分即可;如果沒有相似的譯文,則必須進行基於統計或規則的方法進行翻譯。根據喬姆斯基的轉換生成語法而言,這種方法永遠也無法趕上人的語言的變化。因此,這種方法算是比較笨的方法,類似於字典,我們可以從中查到有用的字詞,甚至短語,但寫出什麼東西,卻是字典無法實現的。因此這種方法有一定的實用性,但局限性也顯而易見。

統計法

統計機器翻譯:是目前非限定領域機器翻譯中,性能較佳的一種方法。統計機器翻譯的基本思想是通過對大量的平行語料進行統計分析,構建統計翻譯模型,進而使用此模型進行翻譯。從早期基於詞的機器翻譯已經過渡到基於短語的翻譯,並正在融合句法信息,以進一步提高翻譯的精確性。

統計機器翻譯的首要任務是為語言的產生構造某種合理的統計模型,並在此統計模型基礎上,定義要估計的模型參數,並設計參數估計算法。早期的基於詞的統計機器翻譯採用的是噪聲信道模型,採用最大似然準則進行無監督訓練,而近年來常用的基於短語的統計機器翻譯則採用區分性訓練方法,一般來說需要參考語料進行有監督訓練。貝氏模型(Bayesian Model)也是一種機器翻譯方法。

Google 神經機器翻譯 (GNMT) (ref)

Google 神經機器翻譯 (GNMT) 是 Google 開發並于 2016 年 11 月推出的神經機器翻譯 (NMT) 系統,它使用人工神經網路提高 Google 翻譯的流暢性和準確性。

GNMT 通過應用基於示例 (EBMT) 的機器翻譯方法,提高翻譯品質,其中系統"從數百萬個示例中學習"。GNMT提出的系統學習架構首先在谷歌翻譯支援的100多種語言上進行了測試。借助大型端到端框架,系統會隨著時間的推移進行學習,以創建更好、更自然的翻譯。GNMT 能夠一次翻譯整個句子,而不僅僅是逐條翻譯。GNMT 網路可以通過編碼句子的語義,而不是通過記憶短語到短語的翻譯來進行語言間機器翻譯。

谷歌大腦專案成立于2011年"秘密谷歌X研究實驗室"[6]由谷歌研究員傑夫迪恩,谷歌研究員葛列格柯拉多和斯坦福大學電腦科學教授Andrew Ng. Ng的工作導致了一些最大的谷歌和斯坦福的突破。

2016 年 9 月,Google 的一個研究小組宣佈開發 Google 神經機器翻譯系統 (GNMT),到 11 月,Google 翻譯開始使用神經機器翻譯 (NMT),而不是以前的統計方法 (SMT)自2007年10月以來一直使用,採用其專有的內部SMT技術。

谷歌翻譯的NMT系統使用大型人工神經網路,能夠進行深度學習。通過使用數百萬個示例,GNMT 提高了翻譯品質,[2] 使用更廣泛的上下文推斷出最相關的翻譯。然後,結果被重新排列和調整,以適應基於語法的人類語言。GNMT提出的系統學習架構首先在谷歌翻譯支援的100多種語言上進行了測試。 GNMT沒有創建自己的通用間語,而是針對許多語言之間的共性,人們認為心理學家和語言學家比電腦科學家更感興趣。2016年,新的翻譯引擎首次啟用了8種語言:英語和法語、德語、西班牙文、葡萄牙文、中文、日語、韓語和土耳其文。2017年3月,又增加了三種語言:俄語、印度文和越南文以及泰語,後來又增加了支援。 同月,在谷歌翻譯社區的説明下,還添加了對希伯來文和阿拉伯文的支援[2017年4月中旬,谷歌荷蘭宣佈支援荷蘭文和其他與英語相關的歐洲語言。2017年4月底增加了對9種印度語言的進一步支援,即印度文、孟加拉文、馬拉提文、古吉拉特文、旁遮普文、坦米爾文、特拉古文、馬來亞拉姆文和卡納達語。

Google機器翻譯的進展

我們以Google 翻譯作例。在過去的運作模式,要將中文翻成西班牙文,傳統的翻譯模型會先將中文轉換為英文,再將英文轉換為目標語言也就是西班牙文,由於中間經過了兩次的轉換,因此容易造成雜訊被放大,語句偏離原意的情況發生,此外系統轉換語意時是以單字到單字的方式進行,儘管每個單字幾乎都能夠正確被翻譯,但拼湊起來卻會變成語句不通順又看不懂的句子。

以傳統的 Google 翻譯來說,我們很容易得到一段莫名其妙的翻譯結果,舉例來說我們以川普的一小段演說詞為例:
We will build new roads, and highways, and bridges, and airports, and tunnels, and railways all across our wonderful nation.
We will get our people off of welfare and back to work - rebuilding our country with American hands and American labor.

透過過去的翻譯演算模型,我們會得到下面的結果:
我們將建設新的道路和公路,橋梁,機場,隧道和鐵路所有在我們美好的國家。
我們將讓我們的人民過福利和恢復工作,重建我們的國家與美國的雙手和美國勞工。

然而,如同上面的翻譯結果,Google 翻譯過往低落的品質是遭人詬病的主要原因,根據官方的資料表示,全世界有大約 50% 的網路內容是以英文呈現,全球卻只有 20% 的使用者是以英語為其主要語言,每月使用 Google 翻譯的使用者超過 10 億人,代表每 3 個網路使用者當中就有 1 個人是 Google 翻譯的活躍使用者,Google 光是一天就要進行超過 10 億次的翻譯行為,這也是為什麼 Google 要如此重視他們的翻譯功能。
不過,經由導入神經網路後的 Google 翻譯,可以發現透過這項技術明顯提升了得到的成果:
我們將在美好的國家建設新的道路,高速公路,橋樑,機場,隧道和鐵路。
我們將讓我們的人民擺脫福利,重返工作 - 用美國的手和美國勞工重建我們的國家。

如果說傳統的翻譯模式是片語式的翻譯,導入神經網路後的翻譯系統就如同類比訊號一樣,是連續且全面的,每一個單字片語從傳統翻譯判定沒有關聯的情形下,開始建立了前後文彼此影響的關係,也就是說擁有了類似人類的推理能力,透過這樣的轉變,雖然與人工翻譯的品質仍然存在一段落差,不過相較於傳統片語式的翻譯,可以說是大幅降低了相對誤差。

image source:網路溫度計/記者 葛緯詩攝

深度學習是人工智慧中成長最快速的一個領域,Google 的神經網路翻譯也是運用這樣的一個概念,每一個翻譯模型並非是自然產生而成,而是需要透過學習,餵養大量的資料與訓練時間才能逐漸完善,不同的語言經過學習之後會轉換成系統容易理解的中間介質語言,因此將兩種語言經過訓練自動學習後,不需要額外的訓練就能自動翻譯另外一種全新的語言。

以 Google 來說平均一個翻譯模型需要 2 至 3 週的訓練時間,所需餵養的資料量則超過 1 億筆,而這樣的學習模式讓資料量成了深度學習中另一個重要的關鍵因素。

舉例來說,相較於英文翻譯成中文,英文翻譯成法文的準確度要來的高許多,這是因為英國與法國從多年前以來就是雙語並行的國家,因此擁有許多正確可用的資料,反觀英文與中文的可用資料就相對較少,不過近幾年來社群網路的蓬勃發展,慢慢解決了資料量上的問題,現在更重要的是蒐集資料的方法,如何從巨量資料中分辨出雜訊與訊號成了最重要的事情

以人類的演化情形來看大約每千年會進到下一個階段,而摩爾定律告訴我們電腦的運算能力大約每兩年會成長一倍,巨量資料雖然帶來了更多的可能性,同時卻也產生了更多的雜訊,如同人類史上第一次的資訊革命印刷術的誕生一樣,雖然讓知識存量快速累積,但這些資訊的品質差異也十分的大,如果我們能有一套正確分辨雜訊與資訊的系統,相信以 Google 透過神經網路成功改善翻譯品質的案例來看,更成熟的人工智慧或許就離我們不遠了。

近期機器翻譯的問題(ref)

I arrived at the bank after crossing the street.I arrived at the bank after crossing the river.

機器翻譯會怎麼處理呢?

機器翻譯的缺點

機器翻譯雖然是一大利器,但也有一些缺點,比如說:按照「一個字一個字」順序翻譯的機器翻譯模型往往會導致嚴重錯誤發生。谷歌在其研究日誌(Research blog)中發表了一篇趣味十足的文章,詳細分析了這個問題並給出解決方案。谷歌自然語言處理部門的 Jakob Uszkoreit 用以下兩句話闡釋了這個問題:

I arrived at the bank after crossing the street. 過了這條街,就到銀行了
I arrived at the bank after crossing the river. 過了這條河,就到對岸了。
(譯者加註:「bank」為多義詞,兼有「銀行」和「河岸」之意。) 顯而易見,「bank」一詞在兩句話中含義截然不同,但是後台算法很容易處理錯-因為不讀完整個句子就無法判定句中「bank」的確切含義。類似這種多義詞的現像比比皆是。

如果讓我去翻譯這句話,我一眼就能看出這兩句話中「bank」的區別,但這對翻譯系統來說就沒那麼簡單了。如果修改神經網絡,使其翻譯完一句話後再檢查是否有誤,有問題的話就再重來一遍,就未免效率太低。

解決方法

為此,Google 提出了在轉換器(Transformer)中建立關注機制(attention mechanism)作為解決方案。

該機制會將單詞逐一與句中其他單詞進行比對,並檢查是否會影響其他詞的詞義


// STEAMCourses 課程介紹:

當AI 進入 Scratch

•生活 AI

•創意 AI

•Scratch

•Scratch 的智能語音

•Scratch 的智能翻譯

•做個 Scratch 多語系專家系統(智能導覽)

•視覺辨識

•人臉辨識

•車牌辨識

•文字辨識

// STEAMCourses 課程介紹 end

// STEAMKid 實體課程

【AI 創客】Scratch AI & Machine Learning

【文化創客】 博物館文物創客夏令營

// STEAMKid 實體課程

// 相關文章系列

中小學AI 素養 – AI 簡史(I)

中小學AI 素養 – AI 簡史(II)

中小學AI 素養 – 生活中用的人工智慧語音及翻譯系統(I)

中小學AI 素養 – 生活中用的人工智慧語音及翻譯系統(II)

中小學AI 素養 – 生活中用的智慧導航

中小學AI 素養 – 生活中用的智慧視訊偵測

// 相關文章系列