“你打篮球像蔡徐坤”:微信翻译这个bug是怎么回事?
2019-03-08 09:01

“你打篮球像蔡徐坤”:微信翻译这个bug是怎么回事?

本文来自微信公众号:硅星人(guixingren123),作者:光谱


为了微信的一个 bug,蔡徐坤的粉丝们差点跟腾讯势不两立。


上周末,一组微信“神翻译”的截图,在微博、知乎、豆瓣和虎扑等社交网络上传开。有人输入诸如 you play basketball like caixukun 等句子,用微信自带的翻译功能,得到的却是含义完全错误的译文:



其他遭殃被一起拿来调戏微信翻译的男星,还有吴亦凡、谢广坤等。




蔡徐坤是目前中国娱乐界的流量明星之一,其粉丝肯定不好惹。



微信团队目前已经部分下线了翻译功能。根据硅星人实测,类似 you are so 的句式,以及涉及 caixukun 等词的语句,现在已经无法翻译成中文了。


与此同时,官方账号@腾讯微信团队也在微博上宣布,翻译功能目前正在紧急修复中。截至发稿,相关语句仍然无法被微信正常翻译。


注意,微信官方提供了一小段解释:


翻译引擎在翻译一些没有进行过训练的非正式英文词汇时出现误翻,导致部分语句翻译出现问题。



在 caixukun 后,又有网友发现了更多会触发 bug 的词。比如,微信翻译似乎在大学英文简称上表现比较差劲。输入 your school is WHU,翻不出武汉大学,却给出了“你的学校很烂”的结果。



没过多久,学校的句式也翻不出来了。


硅星人认为,微信应该进一步、更加详细地告知我们,这个 bug 为什么会出现,由哪些因素所导致。


一方面,微信翻译背后的技术确实比较复杂。解释它,有助于用户去理解它的工作原理,明白这个翻译结果的背后,可能有着十分复杂的技术原因。


另一方面,你关掉了 you are so 句式,还会出现学校简称;关了学校简称,还会有更多会触发 bug 的词被发现。发现一次关一次?这样伤害的是正常使用翻译功能用户的体验,长此以往不是办法。


遗憾的是,微信方面表示,以上面微博公告为准,不再过多置评(或许是因为不想继续惹恼蔡徐坤的粉丝吧)。同时,中文互联网上完全找不到针对此事靠谱的技术解答,即便在知乎上,相关主题下面也都是用户在分享自己发现的 bug 截图,没有人解释原因。


既然这样,不妨让硅星人来试试?


我们采访了多位机器学习专家,并在接下来的篇幅里,先解释微信翻译用的到底是什么技术,再尝试回答 you play basketball like caixukun 这句话,为什么在微信翻译里被翻错了。



微信翻译用的是什么技术?


硅星人经过多方面了解,确信微信英汉互译系统采用的是目前机器学习领域比较火的“神经机器翻译”(Neural Machine Translation, 简称 NMT)技术,由微信 AI 团队自研。


从外行人的角度来看,NMT 在翻译一句话时,做了这些事情:


Step 1: 在一定程度上模仿人脑的思维方式,NMT 根据一个单词在整个句子(可以是长句)当中的语境,为这个单词建立一个神经网络的模型,形成一个语义表示。


比如单词是英语的 dog,可以理解为 NMT 在它的“大脑”里形成了一条狗的印象。


Step 2: 按照在句子甚至段落中的语境,将模型重新转化成另一种语言。


比如 dog 翻译成法语就是 le chien,但如果语境是“一条狗生下了小狗”,那么 dog 就会被翻译成阴性的 la chienne 。


(NMT 不是真的在大脑中形成狗的视觉印象,事实上整个过程跟图像完全没有任何关系。这个所谓的“印象”,通过一连串向量 (vector) 表示。狗的例子来自于 Microsoft Translator [1])


NMT 的主要优势是对长句子(甚至段落)有着不俗的翻译能力,阅读起来上下文连贯程度接近人翻。问世之后,NMT 也逐渐被微软、Google、百度、腾讯等大公司的翻译产品所采用。


“机翻技术一直在不断迭代更新,以前基于规则,过去十年主要基于统计,现在我们开始用神经网络。神经机器翻译是目前机器翻译上比较火的一项技术。我们绝大多数的大语种翻译已经基于这个技术了。”在美国一家顶级科技公司的研究院分支担任资深研究员的王夏告诉硅星人,“在机翻技术发展的每个阶段,科研人员都会遇到一些问题。NMT 也存在一些问题,比如整个过程的可解释性是非常低的。”


硅星人翻译一下这句话的意思:在具体案例的层面上,一个 NMT 的系统为什么会把一句话 ABCDE 翻译成 abcde,研究者目前是很难将翻译过程解释清楚的。




这句话为什么被翻错了?


当 NMT 翻错了的时候,可能发生了哪些情况?


其实错没错、错误严重不严重,都是人来决定的。在机器眼里没有对错,选定的答案就是机器认为概率最高或最有可能的那个答案,因为一切都按照模型、算法运转着。


接受这一点,你才能理解这句话为什么翻错。


接下来进入正题。


可能原因 1:训练集噪音


在接受硅星人采访的多位机器学习专家当中,大部分人都给这条原因投了票。


形象一点比喻,噪音就是训练翻译系统的数据集里出现的“不正确”的,“脏”的数据。


训练一个优秀的 NMT 系统,需要大量高质量的平行语料数据——“高质量”指的是准确的翻译,“平行语料”指的是一句英文一句中文的,I love you = 我爱你,等等。


这些数据要去哪里找?英汉辞典是一个来源。除此之外,最流行的做法是去互联网上抓取,从全网大量的数据里,抓取到所需要的高质量平行语料。


you play basketball like caixukun 被翻译成了“你的篮球打得真好”,噪音是哪来的?硅星人发现有两种可能性:


  • 比如,网上已经存在了大量“caixukun=好”的语料。这些语料在爬取中被微信翻译当成了平行语料并采用了。但是实际上,这属于噪音,因为在翻译的语境下建立不了相关性,没办法确保是准确的。微信 AI 可能在以后加强类似领域的去噪音。


  • 创办了一家机器学习公司的韩辰指出:在训练中,微信翻译团队人员可能使用生成对抗攻击 (generative adversarial attack) 的方式,做了类似手动加入噪音,在训练过程中主动对类似的翻译结果进行纠错的操作,最终干扰了翻译结果——这是一种可能发生的情况,我们并不揣测动机。


用噪音干扰计算机视觉图像识别的示例:人类无法辨认的图片,被深度神经网络识别为不同的物体。示例与本文主题无关,仅作参考


在有噪音等异常情况的前提下,系统仍然能够正常训练、工作,给出高质量翻译结果——这样的能力在计算机科学里叫做“鲁棒性”(robustness)


王夏指出,鲁棒性是 NMT 以及今后的机器翻译技术都需要改进和注意的。


可能原因 2:集外词


一种可能出现的情况是,在微信翻译训练用的数据集中,压根就没有出现过 caixukun 这个词。


当 NMT 遇到集外词时,可能会进行拆解找到集内词。这个拆解的过程也是随机的,比方说它可能拆成了 caix ukun,得到的仍然是集外词。


集外词翻译不好是很正常。如果没见过,那就不会翻,出现偏差也是情理之中的。


可能原因 3:领域不匹配


另一种可能出现的情况是领域不匹配 (domains do not match)。王夏表示,并指出这并不一定是具体案例的情况。


在这个具体案例中,句子里出现了 basketball(篮球),而微信翻译的训练数据集可能没有篮球领域的,或者跟篮球有关的非常少。一个不匹配的领域,再加上句子里还有一个集外词,共同作用使得翻译结果很难正确。


这个解释行得通。比方说商贸往来是大部分微信用户使用翻译的原因,那么微信在训练 NMT 时可能用了贸易领域的数据集;篮球不是微信翻译用户的主要场景,那么在训练时也许就没有用篮球的数据集。


如果因为集外词和领域不匹配而出了错,你也不能怪它。没学过的东西,它又怎么可能会呢?


微信 AI 的官方网站


可能原因 4:奇怪单词+无法引入常识


这个原因也是由 NMT 的工作原理导致的。


NMT 对于长句子、段落,甚至一整篇文章的翻译效果很不错。这得益于它的机制,在翻译某个词时能够贴合上下文的语境。


但是在短句上,它就不一定灵了——特别是当这个句子完全不通顺的时候。


可能因为在 you play basketball like caixukun 这句话中,caixukun 是一个非常奇怪的单词。它既没有出现在任何一本英语辞典当中,看上去跟句子的上下文也没什么关系。


微信翻译的训练,可能发生在蔡徐坤成为 NBA 中国新春贺岁大使之前


人类在翻译的时候,能够参考已有的常识、知识,翻不出来也可以去查资料。NMT 却做不到这一点,当它在工作的时候,它没有一个常识库可以用来参考。


而且,这一点并不是微信做不好——现在去用同样的句子考考 Google Translate,得到的结果也不令人完全满意。


“这个(无法引入常识的)问题不仅体现在翻译任务上,还包括阅读理解、问答等任务。如何在这一点上做改进,是个很有趣的方向,大家也都还在探索。”王夏表示。


所以,微信做错了吗?


上述情况如若出现,必然会导致翻译错误,因为 NMT 就是这样工作的。就算不发生在微信上,也会发生在 Google Translate,或者任何其他一个基于 NMT 的翻译产品上。这样来看,微信产品本身没有任何过错。


但微信团队也不是一点责任都没有。因为除了技术,bug 出现也有可能是流程管控上出了问题。


在一个9亿用户量级的全民级 app 里,开发任何功能都应该经过仔细的论证,上线前也应该有严格的测试,尽量确保万无一失。然而,微信的前工程师曾透露,至少在微信翻译上线时候并非如此。


当时,工程师在知乎上是这样回答的:




说来腾讯/微信也不是第一次出这种问题了。


去年腾讯 AI 负责博鳌亚洲论坛的同声传译,直接把一个基于 seq2seq 的机翻系统带过去了,先是把“一带一路”翻译成了“一条公路和一条腰带”和“道路和传送带”,接着又干脆抽风罢工。



“数据量大,活糙敢干。”这是韩辰对这次微信翻译 bug 的评价。


接受硅星人采访时,一位不愿意透露姓名的蔡徐坤粉丝说,不希望看到有个别人通过技术的手段,去纵容针对艺人的网络暴力。


“艺人是无辜的,这样的翻译本身会给艺人带来负面影响。而网友的群嘲,可能给艺人带来心理上的二次伤害。”她表示,“这次微信官方的反应比较快,很赞。我希望微信是没有恶意的,也希望所有全民级 app 和社交媒体都有基本的道德底线。”


*王夏、韩辰为化名

本内容为作者独立观点,不代表虎嗅立场。未经允许不得转载,授权事宜请联系hezuo@huxiu.com
如对本稿件有异议或投诉,请联系tougao@huxiu.com
正在改变与想要改变世界的人,都在 虎嗅APP
赞赏
关闭赞赏 开启赞赏

支持一下   修改

确定