本文來(lái)自微信公眾號(hào):硅星人(guixingren123)
為了微信的一個(gè) bug,蔡徐坤的粉絲們差點(diǎn)跟騰訊勢(shì)不兩立。
上周末,一組微信“神翻譯”的截圖,在微博、知乎、豆瓣和虎撲等社交網(wǎng)絡(luò)上傳開(kāi)。有人輸入諸如 you play basketball like caixukun 等句子,用微信自帶的翻譯功能,得到的卻是含義完全錯(cuò)誤的譯文:
其他遭殃被一起拿來(lái)調(diào)戲微信翻譯的男星,還有吳亦凡、謝廣坤等。
蔡徐坤是目前中國(guó)娛樂(lè)界的流量明星之一,其粉絲肯定不好惹。
微信團(tuán)隊(duì)目前已經(jīng)部分下線(xiàn)了翻譯功能。根據(jù)硅星人實(shí)測(cè),類(lèi)似 you are so 的句式,以及涉及 caixukun 等詞的語(yǔ)句,現(xiàn)在已經(jīng)無(wú)法翻譯成中文了。
與此同時(shí),官方賬號(hào)@騰訊微信團(tuán)隊(duì)也在微博上宣布,翻譯功能目前正在緊急修復(fù)中。截至發(fā)稿,相關(guān)語(yǔ)句仍然無(wú)法被微信正常翻譯。
注意,微信官方提供了一小段解釋?zhuān)?/p>
翻譯發(fā)動(dòng)機(jī)在翻譯一些沒(méi)有進(jìn)行過(guò)訓(xùn)練的非正式英文詞匯時(shí)出現(xiàn)誤翻,導(dǎo)致部分語(yǔ)句翻譯出現(xiàn)問(wèn)題。
在 caixukun 后,又有網(wǎng)友發(fā)現(xiàn)了更多會(huì)觸發(fā) bug 的詞。比如,微信翻譯似乎在大學(xué)英文簡(jiǎn)稱(chēng)上表現(xiàn)比較差勁。輸入 your school is WHU,翻不出武漢大學(xué),卻給出了“你的學(xué)校很爛”的結(jié)果。
沒(méi)過(guò)多久,學(xué)校的句式也翻不出來(lái)了。
硅星人認(rèn)為,微信應(yīng)該進(jìn)一步、更加詳細(xì)地告知我們,這個(gè) bug 為什么會(huì)出現(xiàn),由哪些因素所導(dǎo)致。
一方面,微信翻譯背后的技術(shù)確實(shí)比較復(fù)雜。解釋它,有助于用戶(hù)去理解它的工作原理,明白這個(gè)翻譯結(jié)果的背后,可能有著十分復(fù)雜的技術(shù)原因。
另一方面,你關(guān)掉了 you are so 句式,還會(huì)出現(xiàn)學(xué)校簡(jiǎn)稱(chēng);關(guān)了學(xué)校簡(jiǎn)稱(chēng),還會(huì)有更多會(huì)觸發(fā) bug 的詞被發(fā)現(xiàn)。發(fā)現(xiàn)一次關(guān)一次?這樣傷害的是正常使用翻譯功能用戶(hù)的體驗(yàn),長(zhǎng)此以往不是辦法。
遺憾的是,微信方面表示,以上面微博公告為準(zhǔn),不再過(guò)多置評(píng)(或許是因?yàn)椴幌肜^續(xù)惹惱蔡徐坤的粉絲吧)。同時(shí),中文互聯(lián)網(wǎng)上完全找不到針對(duì)此事靠譜的技術(shù)解答,即便在知乎上,相關(guān)主題下面也都是用戶(hù)在分享自己發(fā)現(xiàn)的 bug 截圖,沒(méi)有人解釋原因。
既然這樣,不妨讓硅星人來(lái)試試?
我們采訪了多位機(jī)器學(xué)習(xí)專(zhuān)家,并在接下來(lái)的篇幅里,先解釋微信翻譯用的到底是什么技術(shù),再?lài)L試回答 you play basketball like caixukun 這句話(huà),為什么在微信翻譯里被翻錯(cuò)了。
微信翻譯用的是什么技術(shù)?
硅星人經(jīng)過(guò)多方面了解,確信微信英漢互譯系統(tǒng)采用的是目前機(jī)器學(xué)習(xí)領(lǐng)域比較火的“神經(jīng)機(jī)器翻譯”(Neural Machine Translation, 簡(jiǎn)稱(chēng) NMT)技術(shù),由微信 AI 團(tuán)隊(duì)自研。
從外行人的角度來(lái)看,NMT 在翻譯一句話(huà)時(shí),做了這些事情:
Step 1: 在一定程度上模仿人腦的思維方式,NMT 根據(jù)一個(gè)單詞在整個(gè)句子(可以是長(zhǎng)句)當(dāng)中的語(yǔ)境,為這個(gè)單詞創(chuàng)建一個(gè)神經(jīng)網(wǎng)絡(luò)的模型,形成一個(gè)語(yǔ)義表示。
比如單詞是英語(yǔ)的 dog,可以理解為 NMT 在它的“大腦”里形成了一條狗的印象。
Step 2: 按照在句子甚至段落中的語(yǔ)境,將模型重新轉(zhuǎn)化成另一種語(yǔ)言。
比如 dog 翻譯成法語(yǔ)就是 le chien,但如果語(yǔ)境是“一條狗生下了小狗”,那么 dog 就會(huì)被翻譯成陰性的 la chienne 。
(NMT 不是真的在大腦中形成狗的視覺(jué)印象,事實(shí)上整個(gè)過(guò)程跟圖像完全沒(méi)有任何關(guān)系。這個(gè)所謂的“印象”,通過(guò)一連串矢量 (vector) 表示。狗的例子來(lái)自于 Microsoft Translator [1])
NMT 的主要優(yōu)勢(shì)是對(duì)長(zhǎng)句子(甚至段落)有著不俗的翻譯能力,閱讀起來(lái)上下文連貫程度接近人翻。問(wèn)世之后,NMT 也逐漸被微軟、Google、百度、騰訊等大公司的翻譯產(chǎn)品所采用。
“機(jī)翻技術(shù)一直在不斷迭代更新,以前基于規(guī)則,過(guò)去十年主要基于統(tǒng)計(jì),現(xiàn)在我們開(kāi)始用神經(jīng)網(wǎng)絡(luò)。神經(jīng)機(jī)器翻譯是目前機(jī)器翻譯上比較火的一項(xiàng)技術(shù)。我們絕大多數(shù)的大語(yǔ)種翻譯已經(jīng)基于這個(gè)技術(shù)了?!痹诿绹?guó)一家頂級(jí)科技公司的研究院分支擔(dān)任資深研究員的王夏告訴硅星人,“在機(jī)翻技術(shù)發(fā)展的每個(gè)階段,科研人員都會(huì)遇到一些問(wèn)題。NMT 也存在一些問(wèn)題,比如整個(gè)過(guò)程的可解釋性是非常低的?!?/p>
硅星人翻譯一下這句話(huà)的意思:在具體案例的層面上,一個(gè) NMT 的系統(tǒng)為什么會(huì)把一句話(huà) ABCDE 翻譯成 abcde,研究者目前是很難將翻譯過(guò)程解釋清楚的。
這句話(huà)為什么被翻錯(cuò)了?
當(dāng) NMT 翻錯(cuò)了的時(shí)候,可能發(fā)生了哪些情況?
其實(shí)錯(cuò)沒(méi)錯(cuò)、錯(cuò)誤嚴(yán)重不嚴(yán)重,都是人來(lái)決定的。在機(jī)器眼里沒(méi)有對(duì)錯(cuò),選定的答案就是機(jī)器認(rèn)為概率最高或最有可能的那個(gè)答案,因?yàn)橐磺卸及凑漳P汀⑺惴ㄟ\(yùn)轉(zhuǎn)著。
接受這一點(diǎn),你才能理解這句話(huà)為什么翻錯(cuò)。
接下來(lái)進(jìn)入正題。
可能原因 1:訓(xùn)練集噪音
在接受硅星人采訪的多位機(jī)器學(xué)習(xí)專(zhuān)家當(dāng)中,大部分人都給這條原因投了票。
形象一點(diǎn)比喻,噪音就是訓(xùn)練翻譯系統(tǒng)的數(shù)據(jù)集里出現(xiàn)的“不正確”的,“臟”的數(shù)據(jù)。
訓(xùn)練一個(gè)優(yōu)秀的 NMT 系統(tǒng),需要大量高質(zhì)量的平行語(yǔ)料數(shù)據(jù)——“高質(zhì)量”指的是準(zhǔn)確的翻譯,“平行語(yǔ)料”指的是一句英文一句中文的,I love you = 我愛(ài)你,等等。
這些數(shù)據(jù)要去哪里找?英漢辭典是一個(gè)來(lái)源。除此之外,最流行的做法是去互聯(lián)網(wǎng)上抓取,從全網(wǎng)大量的數(shù)據(jù)里,抓取到所需要的高質(zhì)量平行語(yǔ)料。
you play basketball like caixukun 被翻譯成了“你的籃球打得真好”,噪音是哪來(lái)的?硅星人發(fā)現(xiàn)有兩種可能性:
比如,網(wǎng)上已經(jīng)存在了大量“caixukun=好”的語(yǔ)料。這些語(yǔ)料在爬取中被微信翻譯當(dāng)成了平行語(yǔ)料并采用了。但是實(shí)際上,這屬于噪音,因?yàn)樵诜g的語(yǔ)境下創(chuàng)建不了相關(guān)性,沒(méi)辦法確保是準(zhǔn)確的。微信 AI 可能在以后加強(qiáng)類(lèi)似領(lǐng)域的去噪音。
創(chuàng)辦了一家機(jī)器學(xué)習(xí)公司的韓辰指出:在訓(xùn)練中,微信翻譯團(tuán)隊(duì)人員可能使用生成對(duì)抗攻擊 (generative adversarial attack) 的方式,做了類(lèi)似手動(dòng)加入噪音,在訓(xùn)練過(guò)程中主動(dòng)對(duì)類(lèi)似的翻譯結(jié)果進(jìn)行糾錯(cuò)的操作,最終干擾了翻譯結(jié)果——這是一種可能發(fā)生的情況,我們并不揣測(cè)動(dòng)機(jī)。
用噪音干擾計(jì)算機(jī)視覺(jué)圖像識(shí)別的示例:人類(lèi)無(wú)法辨認(rèn)的圖片,被深度神經(jīng)網(wǎng)絡(luò)識(shí)別為不同的物體。示例與本文主題無(wú)關(guān),僅作參考
在有噪音等異常情況的前提下,系統(tǒng)仍然能夠正常訓(xùn)練、工作,給出高質(zhì)量翻譯結(jié)果——這樣的能力在計(jì)算機(jī)科學(xué)里叫做“魯棒性”(robustness)。
王夏指出,魯棒性是 NMT 以及今后的機(jī)器翻譯技術(shù)都需要改進(jìn)和注意的。
可能原因 2:集外詞
一種可能出現(xiàn)的情況是,在微信翻譯訓(xùn)練用的數(shù)據(jù)集中,壓根就沒(méi)有出現(xiàn)過(guò) caixukun 這個(gè)詞。
當(dāng) NMT 遇到集外詞時(shí),可能會(huì)進(jìn)行拆解找到集內(nèi)詞。這個(gè)拆解的過(guò)程也是隨機(jī)的,比方說(shuō)它可能拆成了 caix ukun,得到的仍然是集外詞。
集外詞翻譯不好是很正常。如果沒(méi)見(jiàn)過(guò),那就不會(huì)翻,出現(xiàn)偏差也是情理之中的。
可能原因 3:領(lǐng)域不匹配
另一種可能出現(xiàn)的情況是領(lǐng)域不匹配 (domains do not match)。王夏表示,并指出這并不一定是具體案例的情況。
在這個(gè)具體案例中,句子里出現(xiàn)了 basketball(籃球),而微信翻譯的訓(xùn)練數(shù)據(jù)集可能沒(méi)有籃球領(lǐng)域的,或者跟籃球有關(guān)的非常少。一個(gè)不匹配的領(lǐng)域,再加上句子里還有一個(gè)集外詞,共同作用使得翻譯結(jié)果很難正確。
這個(gè)解釋行得通。比方說(shuō)商貿(mào)往來(lái)是大部分微信用戶(hù)使用翻譯的原因,那么微信在訓(xùn)練 NMT 時(shí)可能用了貿(mào)易領(lǐng)域的數(shù)據(jù)集;籃球不是微信翻譯用戶(hù)的主要場(chǎng)景,那么在訓(xùn)練時(shí)也許就沒(méi)有用籃球的數(shù)據(jù)集。
如果因?yàn)榧庠~和領(lǐng)域不匹配而出了錯(cuò),你也不能怪它。沒(méi)學(xué)過(guò)的東西,它又怎么可能會(huì)呢?
微信 AI 的官方網(wǎng)站
可能原因 4:奇怪單詞+無(wú)法引入常識(shí)
這個(gè)原因也是由 NMT 的工作原理導(dǎo)致的。
NMT 對(duì)于長(zhǎng)句子、段落,甚至一整篇文章的翻譯效果很不錯(cuò)。這得益于它的機(jī)制,在翻譯某個(gè)詞時(shí)能夠貼合上下文的語(yǔ)境。
但是在短句上,它就不一定靈了——特別是當(dāng)這個(gè)句子完全不通順的時(shí)候。
可能因?yàn)樵?you play basketball like caixukun 這句話(huà)中,caixukun 是一個(gè)非常奇怪的單詞。它既沒(méi)有出現(xiàn)在任何一本英語(yǔ)辭典當(dāng)中,看上去跟句子的上下文也沒(méi)什么關(guān)系。
微信翻譯的訓(xùn)練,可能發(fā)生在蔡徐坤成為 NBA 中國(guó)新春賀歲大使之前
人類(lèi)在翻譯的時(shí)候,能夠參考已有的常識(shí)、知識(shí),翻不出來(lái)也可以去查資料。NMT 卻做不到這一點(diǎn),當(dāng)它在工作的時(shí)候,它沒(méi)有一個(gè)常識(shí)庫(kù)可以用來(lái)參考。
而且,這一點(diǎn)并不是微信做不好——現(xiàn)在去用同樣的句子考考 Google Translate,得到的結(jié)果也不令人完全滿(mǎn)意。
“這個(gè)(無(wú)法引入常識(shí)的)問(wèn)題不僅體現(xiàn)在翻譯任務(wù)上,還包括閱讀理解、問(wèn)答等任務(wù)。如何在這一點(diǎn)上做改進(jìn),是個(gè)很有趣的方向,大家也都還在探索?!蓖跸谋硎?。
所以,微信做錯(cuò)了嗎?
上述情況如若出現(xiàn),必然會(huì)導(dǎo)致翻譯錯(cuò)誤,因?yàn)?NMT 就是這樣工作的。就算不發(fā)生在微信上,也會(huì)發(fā)生在 Google Translate,或者任何其他一個(gè)基于 NMT 的翻譯產(chǎn)品上。這樣來(lái)看,微信產(chǎn)品本身沒(méi)有任何過(guò)錯(cuò)。
但微信團(tuán)隊(duì)也不是一點(diǎn)責(zé)任都沒(méi)有。因?yàn)槌思夹g(shù),bug 出現(xiàn)也有可能是流程管控上出了問(wèn)題。
在一個(gè)9億用戶(hù)量級(jí)的全民級(jí) app 里,開(kāi)發(fā)任何功能都應(yīng)該經(jīng)過(guò)仔細(xì)的論證,上線(xiàn)前也應(yīng)該有嚴(yán)格的測(cè)試,盡量確保萬(wàn)無(wú)一失。然而,微信的前工程師曾透露,至少在微信翻譯上線(xiàn)時(shí)候并非如此。
當(dāng)時(shí),工程師在知乎上是這樣回答的:
說(shuō)來(lái)騰訊/微信也不是第一次出這種問(wèn)題了。
去年騰訊 AI 負(fù)責(zé)博鰲亞洲論壇的同聲傳譯,直接把一個(gè)基于 seq2seq 的機(jī)翻系統(tǒng)帶過(guò)去了,先是把“一帶一路”翻譯成了“一條公路和一條腰帶”和“道路和傳送帶”,接著又干脆抽風(fēng)罷工。
“數(shù)據(jù)量大,活糙敢干?!边@是韓辰對(duì)這次微信翻譯 bug 的評(píng)價(jià)。
接受硅星人采訪時(shí),一位不愿意透露姓名的蔡徐坤粉絲說(shuō),不希望看到有個(gè)別人通過(guò)技術(shù)的手段,去縱容針對(duì)藝人的網(wǎng)絡(luò)暴力。
“藝人是無(wú)辜的,這樣的翻譯本身會(huì)給藝人帶來(lái)負(fù)面影響。而網(wǎng)友的群嘲,可能給藝人帶來(lái)心理上的二次傷害?!彼硎荆斑@次微信官方的反應(yīng)比較快,很贊。我希望微信是沒(méi)有惡意的,也希望所有全民級(jí) app 和社交媒體都有基本的道德底線(xiàn)?!?/p>
*王夏、韓辰為化名