機器只會逐字逐句翻譯很蠢?谷歌給出了調教方案
自從人工智能火起來之后,除了翻譯從業者之外,人類一直期待翻譯被人工智能替代的一天。
機器學習在翻譯領域確實很有用,但是它也有一些弱點,或者說不那么容易解決的難題。讓你印象最深刻的,大概是他們并不是在翻譯句子或者文章,而是在翻譯詞語,即便現在翻譯軟件越發智能,但他們逐字逐句翻譯的傾向依然存在。這是目前的翻譯模型存在的一個明顯弊端。
據 Techcrunch 報道,最近,谷歌的技術團隊寫了一篇非常詳細的博文去分析該問題的細節,而且給出了自己的解決方案。這篇文章的作者是谷歌自然語言處理部門的 Jakob Uszkoreit。
我們先來看看下面這個這兩個句子:
-
I arrived at the bank after crossing the street.
-
I arrived at the bank after crossing the river.
在英文里面,bank 作為名詞,有銀行、岸、儲庫和淺灘等意思,在上面兩個句子中,它很有可能不是同一個意思。假若讓算法順著一字一句翻譯下來,它很有可能會選了一個錯的詞——因為即便是人類,如果你不讀到最后,你是不會知道 bank 在這里是什么意思的。
這種模棱兩可的情況俯拾皆是。對于人類而言,我們讀完之后可能會在腦子里面重寫了一下句子,比如把前提條件或者先發生的事情放到前面去,也就是將 After 從句提前。如果機器也能這么機智,它就不僅僅是智能了,而是“人工”了。還有一種方法,就是讓機器翻譯完之后,自己檢查一遍有沒有錯,如果就重新再翻譯一遍,然后再檢查——光是聽就覺得,要將神經網絡調成這種思維模式,它會變得很低效。
谷歌用的解決方法叫注意力機制(attention mechanism),其將這個機制內嵌在一套叫變形器(Transformer)的系統當中。系統會拿句子中的每一個單詞跟其他單詞對照,看看其中一個會不會影響到另一個——比如究竟是“他(he)”還是“她(she)”在講話,或者像上面的句子中的“bank”究竟是什么意思。
氪星讀者們可以借助以下動圖來意會一下:
想到將這種方法用在翻譯上的,不僅是谷歌,還有一家名為 DeepL 的翻譯公司。他們的創始人同樣非常專注于研究這個領域,而且也提到過谷歌這篇博文引用的論文。更重要的是,它可能比谷歌的還好用。
理科生可能會發現,這個方法可能會造成一個副作用。由于算法會讓系統去檢查每一個詞跟其他幾個詞之間的關系強弱,并給強弱關系打分,現實中很可能會出現以下情況:
在上面的句子中,它(it)究竟是指動物(animal),還是指那條街(street)呢?好像兩者都可以誒,原來生活中語意不明指代不明的情況經常存在。要知道答案,可能還要根據上下文,也許只讓機器以句子為單位分析,還是不夠。這讓我莫名想起了一個段子:
在家的女朋友打電話給對正在加班的程序員說:“下班回家買一個西瓜。如果在路上看到有包子,買兩個。”
邏輯超強的程序員果然在路上看到了有包子賣,結果他買回了兩個西瓜……
看來人工智能跟程序員一樣,要好好調教調教。
來自: 36kr.com