谷歌翻譯最新突破,“關注機制”讓機器讀懂詞與詞的聯系
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)。
來自: 36kr.com