谷歌翻譯是收斂的嗎?


之前Google Translate的工程師來我們系裡做過講座,聽了個大概,試著答一下。

Google Translate運用了大量的machine learning的演算法,他們會把辭彙表輸入到系統里,然後規定一些基本的語法規則,接下來就用machine learning分析成千上萬的已經翻譯好的雙語對照的文檔。然後根據這些已有文檔自己總結出更多的規則出來。

當用戶給了一個輸入後,如果這個輸入是單詞,直接查找相應的翻譯就好; 如果是句子/短語,那麼它會進行一定的解析(parsing tokenize)。當然,一句話很可能有很多不同的解析方法,(比如對詞性的判斷不同,對主語判斷不同等等),它會根據之前machine learning習得的規則挑一個「它認為」最合理的解析方式,然後找到對應翻譯,按語法規則整合後呈遞給用戶。

所以就像樓上舉的例子一樣,如果你輸入的不是非常常見的或者標準的句型,一般Google 是不會整句對應地翻譯的。就像樓上舉的例子:

谷歌將永遠無法理解深(深)的愛

這句話前半部分都很好,我們看到只有後面深深的愛這裡有反覆,為什麼呢?「深深的愛」是一個典型的形容詞+名詞短語,Google足以聰明到識別出這個短語的結構,所以可以無誤地翻譯成英文 deep deep love。然而在中文裡,形容詞末尾的「的」很多時候是可有可無的,Google根據以前ML習得的英譯中規則來決定是不是加上這個「的」,然而這應該是一個non-deterministic的演算法,而且我猜中文形容詞末尾出現/不出現「的」的概率很相近,所以你會看到有時候有,有時候沒有。。

所以很多時候你輸入的第一句話是不收斂的,反覆多次就收斂了 (或者至少有這個趨勢)。

如果你輸入的是:

知識就是力量&<--&>The knowledge is power

這個句子很可能已經存在於Google的資料庫里了,而且沒有任何歧義,所以一次就是收斂的。

你可能還好奇,為什麼我已經輸入過「谷歌將永遠無法理解深(深)的愛」了,Google還是不知道把它翻譯回來呢?

因為用戶輸入的文本在這個演算法里權重很低,低到忽略不計,所以你的輸入對它的後繼翻譯幾乎沒有影響。

同樣的道理,比如你覺得Google翻譯的不對,可以手動糾正翻譯結果,但你的這個反饋並不會馬上被採納,也是因為權重不夠高,只有收集了足夠的反饋證明你的這個糾正是合理的時候才會被採納。所以這也是你為什麼糾正過一次翻譯後,馬上再翻譯同樣的詞句還是會看到糾正以前的結果。


不一定收斂到不動點,一樓給出了周期軌的例子。

如果句子長度有限(不超過 N 個字),那麼這個集上的翻譯變換一定會落入周期軌。

不過考慮到 GOOGLE 可以接受任意長度的句子,似乎可以提出個猜想:「GOOGLE 翻譯」變換沒有奇異吸引子,也沒有推斥域。


推薦閱讀:

職業翻譯們是否會用到類似google translate之類的輔助工具?
google翻譯技術是怎麼實現的?
谷歌服務框架內都有哪些應用?
為什麼谷歌不能用谷歌翻譯卻可以?
谷歌翻譯這幾個月的進化速度突然加快是什麼原因?

TAG:演算法 | 數學 | 科技 | 翻譯 | Google翻譯 |