QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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:002203
用户头像

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

关注

评论

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

Java线程中的wait、notify和notifyAll解析

共饮一杯无

Java 多线程 三周年连更

Java枚举和注解

timerring

Java 三周年连更

极光笔记 | 让运营“从心”出发,打造身临其境的客户体验!

极光JIGUANG

运营 消息推送 极光推送

如何在业务开发中使用适配器模式?

做梦都在改BUG

一篇神文就把java多线程,锁,JMM,JUC和高并发设计模式讲明白了

做梦都在改BUG

Java 多线程 高并发

MySQL到ClickHouse数据同步产品对比推荐

NineData

MySQL Clickhouse dba bifrost NineData

SAP Emarsys 的前后台技术栈

汪子熙

SaaS Cloud SAP 思爱普 三周年连更

《社区人员管理》实战案例设计&个人案例分享

京东科技开发者

架构 测试 编码 在线设计平台 企业号 4 月 PK 榜

缓存与数据库双写一致性几种策略分析

京东科技开发者

数据库 缓存 高并发 数据一致性 企业号 4 月 PK 榜

Spring Boot整合多数据源实践

做梦都在改BUG

Java Spring Boot

Springboot如何手动连接库并获取指定表结构|超级详细,建议收藏

bug菌

springboot 三周年连更

通过小程序容器技术让App实现灰度发布

没有用户名丶

企业微信接入系列-自建应用

六月的雨在InfoQ

企业微信 应用配置 三周年连更 自建应用

leetcode-2335. 装满杯子需要的最短总时长

肥晨

三周年征文

漫谈前端自动化测试演进之路及测试工具分析

京东科技开发者

前端 自动化测试 前端测试 企业号 4 月 PK 榜

全栈开发实战|Spring Boot文件上传与下载

TiAmo

Spring Boot 三周年连更 Apache Commons 文件上传下载

《设计模式之禅》Proxy_Pattern--代理模式

浅辄

设计模式 代理模式 三周年连更

实习生疑问:为什么要在需要排序的字段上加索引呢?

架构精进之路

MySQL 数据库 索引 三周年连更

Typescript-类型检测和变量的定义

格斗家不爱在外太空沉思

typescript 三周年连更

跨平台图像浏览器:XnViewMP 中文激活版

真大的脸盆

Mac Mac 软件 图像查看 图像浏览

Karmada v1.5发布:多调度组助力成本优化

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

MySQL8.0 优化器介绍(三)

GreatSQL

MySQL greatsql greatsql社区

软件架构生态化-多角色交付的探索实践

京东科技开发者

架构 架构师 交付能力 企业号 4 月 PK 榜

全网已经疯传90多万次的java修炼指南!已帮我拿下11个大厂offer

做梦都在改BUG

Intents ,快速完成任务的最强辅助

鼎道智联

AI

DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍

汀丶人工智能

人工智能 自然语言处理 深度学习 ChatGPT

再聊 MySQL 聚簇索引

江南一点雨

Java MySQL

CentOS7 离线安装 Zabbix5.0

A-刘晨阳

Linux zabbix 三周年连更 离线安装

基于阿里云物联网平台设计的实时图传系统_采用MQTT协议传输图像

DS小龙哥

三周年连更

MobPush Android SDK厂商通道申请指南

MobTech袤博科技

“分割一切”大模型SAM、超轻量PP-MobileSeg、工业质检工具、全景分割方案,PaddleSeg全新版本等你来体验!

飞桨PaddlePaddle

计算机视觉 飞桨 图像分割

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