谷歌邮件智能回复系统:基于循环神经网络构建

摘要:Google推出智能回复是使用深度神经网络训练的撰写email的功能。智能回复系统建立在一对循环神经网络之上,其中一个RNN用于对收到的电子邮件进行编码,而另一个用于预测可能的回复。至今为止,这项功能表现特别出色。
Google将为其Gmail应用推出一项称为智能回复(Smart?Reply)的新功能,这篇博文解析了Smart?Reply的技术原理:建立在一对循环神经网络(RNN)之上,其中一个RNN用于对收到的电子邮件进行编码,另一个用于预测可能的回复。

机器智能

我经常会收到大量的email,一般我都是在手机上阅读这些邮件。然而在手机上回复邮件真的是件痛苦的事,即使只是简短的几句话。如果有一个系统,可以自动地判断是否需要简单地回复这封邮件,并且撰写几个可以编辑的回复或者是轻轻一点就发送出去,那该多好啊。

谷歌邮件智能回复系统:基于循环神经网络构建

几个月前,来自Gmail团队的Bálint?Miklós问我这种功能是否可以实现。我当时说,这听起来就跟通过图灵测试一样,所以不要对我们寄望太高……但在使用机器学习改进垃圾邮件检测和email分类的同时,我觉得我们可以尝试一下。

对于理解和生成自然语言的应用程序,如机器翻译,已经有着很悠久的研究历史。去年,Google研究人员Oriol?Vinyals、Ilya?Sutskever?和?Quoc?Le提出融合这两项工作,并称之为序列到序列的学习。这种端到端的方法已经有许多的应用,但在实验中一个最难预料的就是会话合成。早期的研究成果表明,我们可以使用序列到序列的学习来控制聊天机器人,让它玩的非常开心,尽管在程序中并没有明确的语言知识。

显然,研究机灵的聊天机器人与开发智能撰写email的系统是大不相同的。这项工作仍是一个开放性的难题,即使我们能够建立一些对用户真正有用的东西。然而,我们团队的一名工程师Anjuli?Kannan表示愿意接受这个挑战。在与机器智能研究者和Gmail工程师的紧密合作中,她阐述并试验了序列到序列的研究思路。其结果是这项神经网络技术将会成功地运行在本周推出的智能回复功能的核心模块中。

工作原理

尝试去建立一个响应式生成系统可能要依赖于手工制定的规则,如一些常见的回复等。但在实践中,任何一个工程师制定的“规则”都会快速地被人类交流的多样性给超越。对比之下,一套好的机器学习系统能够隐式地捕捉不同的情况、写作风格以及语气和色调。这些系统比基于规则的系统概括的更好,并且能够完全地、更优雅地处理新的输入。

谷歌邮件智能回复系统:基于循环神经网络构建

来自设计者Chris?Olah

类似于其他序列到序列的模型,智能回复系统(Smart?Reply?System)建立在一对循环神经网络(recurrent?neural?networks,?RNN)?之上,其中一个RNN用于对收到的电子邮件进行编码,而另一个用于预测可能的回复。编码网络会依次处理收到的电子邮件的各个词语,并产生一个向量(一个数字列表)。这个向量,?Geoff?Hinton称之为“思维向量”,抓住了说话者措辞的核心要点——例如,向量“Are?you?free?tomorrow?”?应该是类似于向量”Does?tomorrow?work?for?you?”,第二个网络从这种思维向量开始,并依次合成符合标准语法的回复,就好像是在逐字键入一样。令人惊讶的是,每个网络的详细操作都是完全学习的,只不过是通过训练模型来预测可能的回复。

处理电子邮件的一个挑战是,该模型的输入和输出可以有几百个词语。这也是循环神经网络(RNN)在选择上面临的真正问题。为此,我们使用一个改良的“长短期记忆”网络(LSTM),该网络擅长保存长期依赖信息,在预测回复中可以保存邮件内部最有用的信息,不会被前后不相关的句子所干扰。

当然,在处理email的时候还有另一个非常重要的因素,那就是隐私。我们在开发Smart?Reply时,附加了一些严格的用户隐私标准——换句话说,也就是没有其他人会阅读你的email邮件。这也意味着研究人员必须让机器学习方法在他们不能读取的数据集上工作,有点像是蒙着眼睛来解决一个难题——但是正因为有这种挑战性,才使得它更加有趣!

正确反应

系统的第一个原型有一些意想不到的漏洞。比如我们想生成几个备选回复,当我们向神经网络请求三个最有可能的回复时,它会给出三个回复,像“How?about?tomorrow?”, “Wanna?get?together tomorrow?”, “I?suggest?we?meet?tomorrow.”,这些回复对于用户而言,能做的选择真的不多。为此,Sujith?Ravi给出了一个解决方案,他所在的团队开发了一个出色的机器学习系统,可以将自然语言回复映射到语义意图上。这在项目的多个阶段都起到了很好的作用,并且对于解决“回复多样性问题”也至关重要:通过了解两个回复在语义上的相似点,我们可以给出措辞不同且含义各异的回复。

早期的原型还存在另一个奇怪的特点,它倾向于对任何邮件都做出“I?love?you”的回复。这听起来很是讨人喜欢,但真的不是我们所期望的。一些分析显示,系统做的事情正是我们训练它去做的事,然后产生可能的回复——结果表明像“Thanks”,“Sounds?good”,和“I?love?you”这类回复是非常常见的——所以,当系统不确定做何种回复时,这些词语就会成为安全词语。通过回复的先验概率强迫模型来预测回复的方式,标准化一个候选回答的可能性,这种模型预测的回复不仅可能性很高,而且对原始消息还有很高的亲和力。虽然这并可能不怎么有爱,但对于电子邮件助手来说却更管用。

尝试一下

这项功能目前表现得特别出色,这让我们真的很惊讶。本周稍晚一些,我们会在 Android和iOS邮件收件箱中推出这一功能,希望到时候你能去尝试一下!只需点击Smart?Reply给出的建议,然后编辑它。如果内容符合你的要求,直接点击发送即可。双击一下电子邮件就发出去了——跟Bálint设想的完全一样。

原文链接: Computer respond to this email(译者/刘帝伟 审校/赵屹华、朱正贵 责编/周建丁)

译者简介:刘帝伟,中南大学软件学院在读研究生,关注机器学习、数据挖掘及生物信息领域。

本文出处:,链接:,采用「CC BY-SA 4.0 CN」协议转载学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请联系「我们」处理。

发表评论

登录后才能评论

联系我们

如有建议:>>给我留言 大数据交流群: 统  计  学 数据分析网-统计学 商业智能 数据分析网-商业智能 数据挖掘 数据分析-数据挖掘 数据产品 数据分析网-数据产品

QR code