“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?


“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?


關於神經機器翻譯,來一次科普教育。

文 | 光譜

為了微信的一個 bug,蔡徐坤的粉絲們差點跟騰訊勢不兩立。

上週末,一組微信“神翻譯”的截圖,在微博、知乎、豆瓣和虎撲等社交網絡上傳開。有人輸入諸如 "you play basketball like caixukun" 等句子,用微信自帶的翻譯功能,得到的卻是含義完全錯誤的譯文:

“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?


其他遭殃被一起拿來調戲微信翻譯的男星,還有吳亦凡、謝廣坤等。

“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?


“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?


蔡徐坤是目前中國娛樂界流量第一的明星,其粉絲肯定不好惹。

“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?


微信團隊目前已經部分下線了翻譯功能。根據硅星人實測,類似"you are so" 的句式,以及涉及"caixukun"等詞的語句,現在已經無法翻譯到中文了。

與此同時,官方賬號@騰訊微信團隊也在微博上宣佈,翻譯功能目前正在緊急修復中。截至發稿,相關語句仍然無法被微信正常翻譯。

翻譯引擎在翻譯一些沒有進行過訓練的非正式英文詞彙時出現誤翻,導致部分語句翻譯出現問題。


“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?


在"caixukun"後,又有網友發現了更多會觸發 bug 的詞。比如,微信翻譯似乎在大學英文簡稱上表現比較差勁。輸入"your school is WHU",翻不出武漢大學,卻給出了“你的學校很爛”的結果。

“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?


沒過多久,學校的句式也翻不出來了。

硅星人認為,微信應該進一步、更加詳細地告知我們:這個 bug 為什麼會出現,由哪些因素所導致。

一方面,微信翻譯背後的技術確實比較複雜。解釋它,有助於用戶去理解它的工作原理,明白這個翻譯結果的背後,可能有著十分複雜的技術原因。

另一方面,你關掉了"you are so"句式,還會出現學校簡稱;關了學校簡稱,還會有更多會觸發 bug 的詞被發現。發現一次關一次?這樣傷害的是正常使用翻譯功能用戶的體驗,長此以往總不是辦法。

遺憾的是,微信方面表示,以上面微博為準,不再更多置評(或許是因為不想繼續惹惱蔡徐坤的粉絲吧。)同時,中文互聯網上完全找不到針對此事靠譜的技術解答,即便在知乎上,相關主題下面也都是用戶在分享自己發現的 bug 截圖,沒有人解釋原因。

既然這樣,不妨讓硅星人來試試?

我們採訪了多位機器學習專家,並在接下來的篇幅裡 1)解釋微信翻譯用的到底是什麼技術;2)再嘗試回答"you play basketball like caixukun" 這句話,為什麼在微信翻譯裡被翻錯了。


“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?



硅星人經過多方面瞭解,確信微信英漢互譯系統採用的是目前機器學習領域比較火的“神經機器翻譯”(Neural Machine Translation, 簡稱 NMT) 技術,由微信 AI 團隊自研。

從外行人的角度來看,NMT 在翻譯一句話時,做了這些事情:

Step 1: 在一定程度上模仿人腦的思維方式,NMT 根據一個單詞在整個句子(可以是長句)當中的語境,為這個單詞建立一個神經網絡的模型,形成一個語義表示。

比如單詞是英語的 dog,可以理解為 NMT 在它的“大腦”裡形成了一條狗的印象。

Step 2: 按照在句子甚至段落中的語境,將模型重新轉化成另一種語言。

比如 dog 翻譯成法語就是 “le chien”;但如果語境是“一條狗生下了小狗”,那麼 dog 就會被翻譯成陰性的"la chienne"。

“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?


(NMT 不是真的在大腦中形成狗的視覺印象,事實上整個過程跟圖像完全沒有任何關係。這個所謂的“印象”,通過一連串向量 (vector) 表示。狗的例子來自於 Microsoft Translator [1])

NMT 的主要優勢是對長句子(甚至段落)有著不俗的翻譯能力,閱讀起來上下文連貫程度接近人翻。問世之後,NMT 也逐漸被微軟、Google、百度、騰訊等大公司的翻譯產品所採用。

“機翻技術一直在不斷迭代更新,以前基於規則,過去十年主要基於統計,現在我們開始用神經網絡。神經機器翻譯是目前機器翻譯上比較火的一項技術。我們絕大多數的大語種翻譯已經基於這個技術了,“在美國一家頂級科技公司的研究分支擔任資深研究員的王夏*告訴硅星人。

”在機翻技術發展的每個階段,科研人員都會遇到一些問題。NMT 也存在一些問題,比如整個過程的可解釋性是非常低的,”他說。

硅星人翻譯一下這句話的意思:在具體案例的層面上,一個 NMT 的系統為什麼會把一句話 ABCDE 翻譯成 abcde,研究者目前是很難將翻譯過程解釋清楚的。


“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?



這句話為什麼被翻錯了?

當 NMT 翻錯了的時候,可能發生了哪些情況?

其實錯沒錯、錯誤嚴重不嚴重,都是人來決定的。在機器眼裡沒有對錯,選定的答案就是機器認為概率最高或最有可能的那個答案,因為一切都按照模型、算法運轉著。

接受這一點,你才能理解這句話為什麼翻錯。

接下來進入正題

可能原因 1:訓練集噪音

在接受硅星人採訪的多位機器學習專家當中,大部分人都給這條原因投了票。

形象一點比喻,噪音 (noise) 就是訓練翻譯系統的數據集裡出現的”不正確“的,“髒”的數據。

訓練一個優秀的 NMT 系統,需要大量高質量平行語料數據——”高質量“指的是準確的翻譯,”平行語料“指的是一句英文一句中文的,”I love you = 我愛你“,等等。

這些數據要去哪裡找?英漢辭典是一個來源。除此之外,最流行的做法是去互聯網上抓取,從全網大量的數據裡,抓取到所需要的高質量平行語料。

"you play basketball like caixukun" 被翻譯成了”你的籃球打得真好“,噪音是哪來的?硅星人發現有兩種可能性:

  • 比如,網上已經存在了大量”caixukun=好“的語料。這些語料在爬取中被微信翻譯當成了平行語料並採用了。但是實際上,這屬於”噪音“,因為在翻譯的語境下建立不了相關性,沒辦法確保是準確的。微信 AI 可能在以後加強類似領域的去噪音。
  • 創辦了一家機器學習公司的韓辰*指出:在訓練中,微信翻譯團隊人員可能使用生成對抗攻擊 (generative adversarial attack) 的方式,做了類似手動加入噪音,在訓練過程中主動對類似的翻譯結果進行糾錯的操作,最終干擾了翻譯結果——這是一種可能發生的情況,我們並不揣測動機。


“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?


用噪音干擾計算機視覺圖像識別的示例:人類無法辨認的圖片,被深度神經網絡識別為不同的物體。示例與本文主題無關,僅作參考。

在有噪音等異常情況存在的前提下,系統仍然能夠正常訓練、工作,給出高質量翻譯結果——這樣的能力在計算機科學裡叫做“魯棒性”(robustness)。

王夏指出,魯棒性是 NMT 以及今後的機器翻譯技術都需要改進和注意的。

可能原因 2:集外詞

一種可能出現的情況是,在微信翻譯訓練用的數據集中,壓根就沒有出現過"caixukun"這個詞。

當 NMT 遇到集外詞時,可能會進行拆解找到集內詞。這個拆解的過程也是隨機的,比方說它可能拆成了 caix ukun,得到的仍然是集外詞。

集外詞翻譯不好是很正常。如果沒見過,那就不會翻,出現偏差也是情理之中的。

可能原因 3:領域不匹配

”另一種可能出現的情況是領域不匹配 (domains do not match),“王夏表示,並指出這並不一定是具體案例的情況。

在這個具體案例中,句子裡出現了 basketball(籃球),而微信翻譯的訓練數據集可能沒有籃球領域的,或者跟籃球有關的非常少。一個不匹配的領域,再加上句子裡還有一個集外詞,共同作用使得翻譯結果很難正確。

這個解釋行得通。比方說商貿往來是大部分微信用戶使用翻譯的原因,那麼微信在訓練 NMT 時可能用了貿易領域的數據集;籃球不是微信翻譯用戶的主要場景,那麼在訓練時也許就沒有用籃球的數據集。

如果因為集外詞和領域不匹配而出了錯,你也不能怪它。沒學過的東西,它又怎麼可能會呢?

“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?


可能原因 4:奇怪單詞+無法引入常識

這個原因也是由 NMT 的工作原理導致的。

NMT 對於長句子、段落,甚至一整篇文章的翻譯效果很不錯。這得益於它的機制,在翻譯某個詞時能夠貼合上下文的語境。

但是在短句上,它就不一定靈了——特別是當這個句子完全不通順的時候。

可能因為在"you play basketball like caixukun"這句話中,caixukun 是一個非常奇怪的單詞。它既沒有出現在任何一本英語辭典當中,看上去跟句子的上下文也沒什麼關係。

“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?


微信翻譯的訓練,可能發生在蔡徐坤成為 NBA 中國新春賀歲大使之前

人類在翻譯的時候,能夠參考已有的常識、知識,翻不出來也可以去查資料。NMT 卻做不到這一點,當它在工作的時候,它並不具備一個常識庫可以去參考。

而且,這一點並不是微信做不好——現在去用同樣的句子考考 Google Translate,得到的結果也不令人完全滿意。

“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?


“這個(無法引入常識的)問題不僅體現在翻譯任務上,還包括閱讀理解、問答等任務。如何在這一點上做改進,是個很有趣的方向,大家也都還在探索,”王夏表示。


上述情況如若出現,必然會導致翻譯錯誤,因為 NMT 就是這樣工作的。就算不發生在微信上,也會發生在 Google Translate,或者任何其他一個基於 NMT 的翻譯產品上。這樣來看,微信產品本身沒有任何過錯。

但微信團隊並非完全無辜的。因為除了技術上,bug 出現也有可能是流程管控上出了問題。

在一個9億用戶量級的全民級 app 裡,開發任何功能都應該經過仔細的論證,上線前也應該有嚴格的測試,儘量確保萬無一失。然而,微信的前工程師曾透露,至少在微信翻譯上線時候並非如此。

當時,工程師在知乎上是這樣回答的:

“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?


“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?


說來騰訊/微信也不是第一次出這種問題了。

去年騰訊 AI 負責博鰲亞洲論壇的同聲傳譯,直接把一個基於 seq2seq 的機翻系統帶過去了,先是把“一帶一路”翻譯成了“一條公路和一條腰帶”和“道路和傳送帶”,接著又幹脆抽風罷工。

“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?


“數據量大,活糙敢幹。”

這是韓辰對這次微信翻譯 bug 的評價。

接受硅星人採訪時,一位不願意透露姓名的蔡徐坤粉絲說,不希望看到有個別人通過技術的手段,去縱容針對藝人的網絡暴力。

“藝人是無辜的,這樣的翻譯本身會給藝人帶來負面影響。而網友的群嘲,可能對藝人帶來心理上的二次傷害,“她表示,”這次微信官方的反應比較快,很贊。我希望微信是沒有惡意的,也希望所有全民級 app 和社交媒體都有基本的道德底線。“

那麼,


“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?


*王夏、韓辰為化名。

[1] 什麼是神經機器翻譯? https://translator.microsoft.com/zh/help/articles/neural/


“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?



“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?


硅星人播客上線了!

這是硅星人制作的第一檔音頻節目。我們將和你暢聊硅谷的幕後故事和熱鬧話題。你可以在蘋果Podcast和喜馬拉雅上搜索“硅星人”找到我們!

趕快來收聽吧!


趕快加上星標,精彩好內容不再錯過!

“你打籃球像蔡徐坤”:微信翻譯這個bug是怎麼回事?


硅星人:(ID:guixingren123)

從科技到文化,從深度到段子,硅星人為你講述關於硅谷的一切。


分享到:


相關文章: