大數據文摘作品,作者 | Devin Coldewey,編譯 | 白丁,大餅,錢天培。
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「的區別,但這對翻譯系統來說就沒那麼簡單了。如果修改神經網絡,使其翻譯完一句話後再檢查是否有誤,有問題的話就再重來一遍,就未免效率太低。
解決方法
為此,谷歌提出了在轉換器(Transformer)中建立關注機制(attention mechanism)作為解決方案。
該機制會將單詞逐一與句中其他單詞進行比對,並檢查是否會影響其他詞的詞義 - 比如,檢查說話人是「他」還是「她」,或者像「bank」這樣的多義詞在句中的確切含義。
在構建譯文的過程中,關注機制會把句子中的每個單詞與所有其他單詞逐一比對。下圖在一定程度上說明了這個比對過程的工作機制。
有意思的是,谷歌的方法也讓我們有機會一窺其系統的內部邏輯:因為轉換器(Transformer)會為每個單詞與其他詞的關係按對逐一打分,所以你可以看到它認為哪些詞是相關的,或至少可能相關的:
(譯者註:以上兩句話的意思分別是:
那隻動物沒有穿過街道因為它太累了。
那隻動物沒有穿過街道因為它太寬了。
「it」這個單詞在兩句話裡面分別指代「動物」和「街道」。)
酷吧?我覺得超酷啊。這是另一種多義詞的情形:「it」既可能指代街道或也可能指代動物,而只有讀到最後一個單詞(「累」或者「寬」)才能明白到底指代的是什麼。我們人類自動就能分辨,而機器仍需練習。看起來谷歌的這一系統已經學得相當好了。
最後,如果你覺得「關注機制」這個詞眼熟,那你之前一定已經讀過了Techcrunch對DeepL的報導。
DeepL是一家機器翻譯的初創公司。在報導中公司聯合創始人表示他們致力於關注機制,甚至表示谷歌的日誌是基於《關注就是一切》(Attention Is All You Need)這篇文章的,谷歌作了一定的修改。
然而,這位聯合創始人還認為他們公司的辦法非常有效 —— 甚至比谷歌的還好用。
如果你想進一步了解「關注機制」,不妨閱讀DeepL發表的論文 Attention Is All You Need(https://arxiv.org/abs/1706.03762)。
原文連結