写点什么

Gmail Inbox 发布基于深度学习的智能回复功能

  • 2015-11-13
  • 本文字数:1734 字

    阅读完需:约 6 分钟

作为日常工作最主要的沟通手段,Email 在发明后几十年仍然活跃在工作第一线,越来越多的智能功能被添加进来。近日,继旅程助手提醒推荐功能以后,Gmail 团队发布了Inbox 最新功能:智能回复(Smart Reply)(界面如下图),并撰文阐述了背后基于深度学习的实现思路

推出智能回复功能的契机很直白:由于工作强度的增强,人们的交流日益频繁,然而大多数人有用手机收发邮件的习惯,使得回复Email 有时变成了很烦躁的事情,费时费力。而很多时候,工作邮件都可以通过一些简短的回复例如“正在尝试”、“马上发给您”、“开会时讨论一下”等等来解决。智能回复就是基于这种考虑,通过深度学习技术,来“猜测”可能的简短回复,帮用户简化回复过程。智能回复会基于用户收到的邮件内容,来推荐三个可能的回复供用户选择,一个直观的展示参见下图:

智能回复将此前数次按键输入直接简化为一两次,极大方便了用户,提高了Inbox 体验,而后台支撑该功能的技术却是相当复杂。Inbox 利用机器学习技术(确切来讲是深度学习技术)识别那些能够被“秒回”的邮件,并动态生成回复。值得一提的是,用户选择智能回复词的过程中,后台的机器学习模型会根据选择不断迭代。下面再介绍一些具体的技术细节。

在展开介绍之前,多说一句Google 内部的很多项目都在使用机器学习技术来改进用户体验,比如利用深度学习改进语音搜索 YouTube 缩略图等等。因此 Gmail 团队的 Bálint Miklós 看到了上文中提到的回复邮件痛点,找到资深科学家 Greg Corrado,后者表示了极大的兴趣。

智能回复的原理是很复杂的,涉及到自然语言理解和生成技术,这些技术多用于机器翻译,而回复邮件也可以抽象认为是个机器翻译问题,即来信是一种语言,而回信是另一种语言,智能回复就是要理解来信,并“翻译”生成回信。长期的实践已经表明相关技术并没有发展到能直接应用到产品中的程度,大部分时间都只能实现一些逗乐聊天机器人。但对于智能回复词这一特定场景,是能够给出比较满意答案的。Google 科学家 Oriol Vinyals, Ilya Sutskever 和 Quoc Le 在去年曾重点研究理解和生成技术,称为序列学习,Greg 的同事Anjuli Kannan 在此基础上开发了可生成智能回复的产品级神经网络。

类似其他序列学习系统,智能回复功能由一对RNN 组成,如下图所示。

一个用来对用户收到的邮件内容进行编码,另一个则用来预测可能的回复。编码网络一次读入一个单词,然后生成一个由数字组成的向量。该向量被Geoff Hinton 老先生称为“ thought vector ”,能够在一定程度上表达邮件的语义。在这种情况下,英文句子“Are you free tomorrow?”和句子“Does tomorrow work for you?”语义距离更近。第二个网络根据 thought vector 来生成一个语义语法都正确的回复。值得一提的是,整个网络都无需任何人工接入,完全通过历史邮件和回复来学习模型。

Greg 提到,跟邮件打交道的一个挑战就是,学习模型的输入和输出都很长,有时多达几百单词。因此需要选择合适的 RNN 模型,Google 选择的是 LSTM 模型,能够很好处理比较远的单词之间的依赖关系,并能够发现邮件内容中最重要的部分,而不会被附近的短句所影响。Greg 还提到,另一个挑战就是用户的隐私问题,在模型训练的过程当中,要保证没有任何人阅读用户的邮件,全程都是机器自动化操作。

最后 Greg 还分享了开发过程中的一些感受。最开始的时候,智能回复给出的三个答案基本意思相同,用户很难取舍。最后机器学习专家 Sujith Ravi 解决了这个问题,并表示这是一个典型的“回复多样性”缺乏问题,可通过计算句子语义相似度来解决,而不仅仅是考虑单词的相似度。另一个早期版本中的问题是不管邮件内容是什么,智能回复都倾向给出“I love you”的回复,因为类似感谢、听起来不错和我爱你这样的回复太常见了。后来通过对可能回复的概率进行归一化解决,使得回复不但常见,而且要和邮件的内容也比较相关。

据悉,智能回复功能将会在下周发布的 iOS 和 Android 版本中,感兴趣的读者可以进行更新尝试。


感谢杜小芳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-11-13 18:002507
用户头像

发布了 268 篇内容, 共 135.2 次阅读, 收获喜欢 24 次。

关注

评论

发布
暂无评论
发现更多内容

对话 CTO | 听快看漫画 CTO 李润超讲重塑漫画产业的技术推动力

ONES 王颖奇

研发管理 CTO 动画 文化

“随大流”的你是不会成功的

小天同学

个人成长 思考 写作平台 感悟 坚持

【Howe 学 JAVA】Java 类集框架1——List集合

Howe

Java List 集合

《Linux就该这么学》笔记(一)

编程随想曲

Linux

当前的经济形势,如何让自己免于风险?

鼎玉谷

给应届毕业生们的七点建议

Neco.W

大学生日常 工作 应届毕业

C语言if分支结构

C语言技术网-码农有道

C语言 C语言if分支结构

放假了,你还会打开钉钉么?

Geek_6rptuk

高效工作 团队管理 企业文化 个人成长 技术管理

你还在这样使用MYSQL吗?

Geek_6rptuk

MySQL 数据库 数据库规范 数据库设计

OceanBase原理与实现分析

ElvinYang

【Howe 学 JAVA】Java 类集框架2——Set 集合

Howe

Java 集合 set

C语言运算符

C语言技术网-码农有道

C语言 运算符

办公人员的 python 妙用——抽签结果提取

小匚

Python 远程办公

每个人都应该知道的性能参数

ElvinYang

JavaScript 学习笔记——数据类型

zjlulsum

Java 学习 大前端 类型推断 入门

深入理解MDL元数据锁

Simon

MySQL

C语言常量、变量和关键字

C语言技术网-码农有道

C语言 常量 变量 关键字

Using R for everything: 方差分解(Variation partition)变量筛选与显著性标注

洗衣机用户不会用洗衣机

数据分析 R

面试官竟然一直和我聊线程的启动和终止

Simon郎

Java 大数据 后端 多线程

物联网资产整合架构

老任物联网杂谈

物联网架构

游戏夜读 | 游戏设计需要天赋?

game1night

对话 CTO | 喜茶也有 CTO?听陈霈霖讲讲茶饮中的技术甜度

ONES 王颖奇

研发管理 CTO 零售

Python网络编程socket 简易聊天窗

Flychen

C语言输入和输出

C语言技术网-码农有道

C语言 输入 输出

保险知识梳理

魁拔

保险 生活质量

如何扩大我们的英语词汇量

董一凡

学习

探寻融云多年领先的秘密:不断创新贴近开发者真实需求

DT极客

高仿瑞幸小程序 06 layout布局

曾伟@喵先森

小程序 微信小程序 大前端

前端开发的瓶颈与未来之路

keelii

node.js typescript ruby-on-rails 编程 大前端

自助设备系列——技术应用

孙苏勇

产品 行业资讯 智能设备

工具集系列 02|还在为海报设计、LOGO 设计发愁?这些在线工具值得收藏

一尘观世界

效率工具 设计 海报 课程封面 知识付费

Gmail Inbox发布基于深度学习的智能回复功能_语言 & 开发_张天雷_InfoQ精选文章