解密:Gmail移动客户端自动邮件回复技术

  雷锋网 (搜索“雷锋网”公众号关注) 按:本文作者NLP日月星辰,北京航空航天大学在读博士生,研究方向为 自然语言处理,深度学习。

  深度学习已经在许多工业产品中取得应用。例如Jeff Dean(谷歌大脑负责人)在去年的WSDM会议上指出,谷歌的搜索相关性计算模块,深度学习的三个特征是权重最大的。

  并且深度学习算法也大量的应用到了谷歌和百度的机器翻译系统之中,使机器翻译质量提升。本文将介绍另一个深度学习的应用,邮件自动回复。

  手机版邮件系统的困扰

  自动回复是否可以在工业中进行实际应用,一直是人们喋喋不休争论的一个问题,很多人认为对话系统,所利用的自动回复技术只是一个玩物,无法解决用户的刚需。而谷歌,在去年十一月将自动回复技术应用到了Inbox中。

  Inbox是谷歌在手机上的邮件客户端,类似于手机上的Outlook。Inbox利用深度学习技术,增添了为一些语义简单的邮件进行自动回复的功能,拟解决“由于屏幕较小,手机邮件回复很不方便”的用户痛点。其中主要解决如下几个问题:

  如何选择可回复邮件:当今商务人士邮件众多,很多邮件并不长,据谷歌统计有百分之25%的邮件少于20个词。那么对这些简短且语义好理解的邮件是否可以通过分类进行筛选,交给邮件生成系统是一个有趣的分类问题。

  回复的邮件是否可分类:很多邮件的回复类型可枚举,例如问“下午三点是否可以参加XXX会议”,答案无非是“可以参加”,“有事情不能参加”,“我在想想”这三个情况,所以如何通过算法将三种类型的回复进行聚类是一个有现实意义的聚类问题。

  如何针对每个类选出最合适的邮件:针对每个类,如何通过自动回复算法生成特定的回复,是一个自然语言处理上的回复生成问题。

  系统架构

  谷歌于今年KDD会议上,发布了SmartReply的论文。我们首先看SmartReply的架构

物联网

  从图中可以看到,系统分为四个部分,分别是 可回复邮件筛选,回复邮件聚类,回复邮件选择,和多样性回复生成 ,之后将一一介绍。

  可回复邮件筛选机制(Trigger Response)

  模块功能

  在谷歌的邮件回复系统中,并不是每一封邮件都会给出自动回复的建议。因为有些邮件意思简单明了,机器可以快速的理解,并给出一些回复候选。

  例如:今天晚上七点我们开个会讨论一下项目修改方案吧。

  这个邮件机器可以快速理解,并通过之后的步骤给出对应的候选方案。然而,还存在着一些邮件结构复杂,机器并不能很好的理解其中含义。

  例如:我已经看完你的论文,在你的论文中,公式2的推导出现了错误,我觉得倒数应该用链式法则求解。

  总之,在回复之前,需要一个模块判定机器是否可以理解邮件语义,避免在不理解的时候仍然给出邮件回复候选,使用户感到被骚扰。

  模块实现方法

  可回复邮件的筛选机制归根结底是一个分类问题,即给定训练集合 D ={X,Y},X代表文档的特征集合,Y代表文档的标签,学习函数f(x),使得y与f(x)的误差最小。在此任务中谷歌选择了多层感知机作为分类器,多层感知机如下图所示

物联网

  在此分类任务中,这篇论文使用了一元词汇(Unigram)和二元词汇(Bigram)来对抽取特征,并将同一类的特征进行相加,得到MLP的输入。

  这个MLP模型有三个隐层层,每层的激活函数使用了ReLU,且利用DropOut防止过拟合。最终经过试验证明,这个分类模型的AUC为0.854。针对此模块,笔者观点如下:

  MLP模型算是文本分类的最简单模型之一,然而简单模型在这个任务上仍能取得不错的效果,这和一些其他的论文得到的结论一致(例如Facebook的FastText,利用简单的结构就可以在分类任务和复杂结构的网络得到近似的效果)。大部分现实分类任务简单,很多简单的模型便可以达到还不错的效果,刻意追求模型的复杂性在简单任务上往往得不偿失。