文 /?吴勇辉,谷歌大脑团队首席工程师

在 Google I / O上,我们推出了 Smart Compose,这是 Gmail 中的一项新功能,它利用机器学习,通过交互方式为正在编写邮件的用户提供补全句子的预测建议,从而让用户更快地撰写邮件。 Smart Compose 基于智能回复技术,提供了一种全新的方式来帮助您撰写邮件 - 无论您是在回复邮件亦或是从头开始起草一封新邮件。

在开发 Smart Compose 过程中,遇到了一些关键性的挑战,其中包括:

?

寻找合适的模型

典型的语言生成模型,例如 ngram,神经词袋(BoW)和 RNN 语言(RNN-LM)模型,是在以前缀词序列为条件的基础上学习预测下一个单词。 然而,在电子邮件中,用户在当前电子邮件中键入的单词成为模型可用于预测下一单词的 “信号”,模型将利用该信号来预测下一个单词。 为了结合更多有关用户想要表达的内容,我们的模型还会参考电子邮件的主题和先前的电子邮件正文内容(假设用户正在回复一封刚刚收到的电子邮件)。

注:ngram 链接

https://en.wikipedia.org/wiki/Language_model

神经词袋(BoW)链接

http://www.jmlr.org/papers/volume3/bengio03a/bengio03a.pdf

RNN 语言 链接

https://www.isca-speech.org/archive/interspeech_2010/i10_1045.html

包含和利用附加语境的一个方法是将问题转换成 sequence-to-sequence(seq2seq)机器翻译任务,其中源序列是邮件主题和先前电子邮件正文(如有)的串联,而用户正在撰写的邮件作为目标序列。尽管这种方法在预测质量方面表现良好,但它未能满足我们严苛的延迟标准。

为了改善这一点,我们将 BoW 模型与 RNN-LM 结合起来,结合后的模型比 seq2seq 模型更快,而对模型的预测质量影响极小。在这种混合法中,我们通过把单词嵌套平均分配在每个区域内,对邮件主题和之前的电子邮件内容进行编码。然后我们将这些平均分配后的嵌套连接在一起,并在每次执行解码步骤时将它们馈送到目标序列 RNN-LM,过程如下面的模型图所示。

Smart Compose RNN-LM 模型架构。通过对每个字段中的单词嵌套平均分配到每个区域内,将邮件主题和先前的电子邮件信息进行编码。 随后,平均后的嵌套会在每次执行解码步骤时提供给目标序列 RNN-LM。

加速模式培训与服务

当然,一旦我们决定采用这种建模方法,我们就必须调整各种模型超参数,并使用数十亿个示例对模型进行训练,所有这些操作都相当费时。 为了加快速度,我们使用了一个完整的 TPUv2 Pod 来进行实验。如此,我们能够在一天之内将一个模型训练至收敛状态。

?

即便训练出了速度更快的混合模型,初始版本的 Smart Compose 在标准CPU上运行时,依旧存在着几百毫秒的平均服务延迟,这似乎与 Smart Compose 努力帮助用户节省时间的初衷依旧相去甚远。幸运的是,在推断期间可以使用 TPU 来大大加快用户体验。 gpa是什么通过将大部分计算分流到 TPU 上,我们将平均延迟时间缩短至几十毫秒,与此同时还大幅增加了单台计算机可处理的服务请求数量。

公平与隐私

由于语言理解模型会反映人类的认知偏差,导致得到多余的单词关联和组句建议,因此在机器学习中实现公平性至关重要。 正如 Caliskan 等人在他们近期的论文 “Semantics derived automatically from language corpora contain human-like biases 从语料库中自动导出的语义包含类似人类的偏见” 中指出,这些关联深深隐藏在自然语言数据中,这对于构建任一语言模型来说都是相当大的挑战。 我们正在积极研究如何继续减少训练程序中的潜在偏见问题。此外,由于 Smart Compose 是基于数十亿的短语和句子进行训练,类似垃圾邮件机器学习模型的训练方式,我们已经进行了广泛的测试,确保模型只记忆各类用户使用的常用短语。

未来研究方向

我们一直致力于通过遵循最先进的架构(例如,Transformer,RNMT +等),并尝试最新和最先进的训练技术,不断提高语言生成模型的预测质量。 一旦模型的实验结果能够满足严苛的延迟约束条件,我们就会将这些更先进的模型部署到产品中。此外,我们还在努力整合个人语言模型,旨在使它能够在系统中更加准确地模拟不同用户的个性化写作风格。

鸣谢

Smart Compose 语言生成模型由 Benjamin Lee,Mia Chen,Gagan Bansal,Justin Lu,Jackie Tsay,Kaushik Roy,Tobias Bosch,Yinan Wang,Matthew Dierker,Katherine Evans,Thomas Jablin,Dehao Chen,Vinu Rajashekhar,Akshay Agrawal, Yuan Cao,Shuyuan Zhang,Xiaobing Liu,Noam Shazeer,Andrew Dai,Zhifeng Chen,Rami Al-Rfou,DK Choe,Yunhsuan Sung,Brian Strope,Timothy Sohn,Yonghui Wu 等开发。?

更多 AI 相关阅读:

·?Android Smart Linkify 支持机器学习

·?使用 Flutter 反序列化 JSON 的一些选项

·?将连接组学提高一个数量级


文章来源:https://blog.csdn.net/jILRvRTrc/article/details/82230102

转载于:https://www.cnblogs.com/yujingyua/p/9645368.html

智能编撰:使用神经网络协助编写电子邮件相关推荐

  1. MATLAB数学建模:智能优化算法-神经网络算法

    智能优化算法: 神经网络算法 人工神经网络的构筑是受生物神经网络的运作而启发的. 人工神经网络通常通过一个基于数学统计学类型的学习方法从而得以优化, 因此人工神经网络也可被看作是数学统计学方法的一种应 ...

  2. VC++编写电子邮件程序 第二篇 也是用simple mapi

    VC++编写电子邮件程序 一.概述 ---- 本文主要讲述如何使用Visual C++用MAPI编写E-mail程序.MAPI是包含在Windows之中的, 因此不需要安装其他额外的部件.MAPI有以 ...

  3. SnnGrow快讯:微软被曝整合ChatGPT进必应向谷歌宣战?、消息称微软将把OpenAI人工智能技术整合至Office:或可编写电子邮件、学校封杀,大厂禁用,ChatGPT引发大面积恐慌?

    1.苹果AR/VR头显有望在春季发布 但发货可能要到秋季 [TechWeb]1月9日消息,据国外媒体报道,在高端消费电子产品市场占有相当份额的苹果,除了对现有的iPhone.iPad等硬件产品线持续升 ...

  4. 基于神经网络的智能诊断,基于神经网络的控制

    机电系统智能控制的毕业论文可以写哪些部分? 基于联合仿真的机电液一体化系统优化设计方法研究,我的题目.并联机器人系统的仿真优化在搭建的仿真优化平台上对并联机器人进行联合仿真和集成优化研究. 通过仿真优 ...

  5. python硬件编程智能家居_python编程可编写智能家居吗

    展开全部 可以 智能家居已经32313133353236313431303231363533e4b893e5b19e31333363393666被越来越多的家居生产厂家所重视,这是一块大蛋糕.智能首先 ...

  6. 【智能语音】神经网络如何模拟人耳听觉机制?

    人的耳朵是一个非常精巧的声音处理系统.总体来说,声音引起鼓膜振动,经过听小骨传递到耳蜗后,形成神经脉冲传到大脑中形成声音感知.在这一过程中,耳蜗是物理振动转换成神经电信号的核心部件,很多人耳感知的特性 ...

  7. 智能计算之神经网络(Hopfield网络-DHNN,CHNN )介绍

    目录 1. 神经网络受欢迎的原因 2. 人工神经网络定义 3. 人工神经网络的学习能力 4. 人工神经网络的基本原理 5. 神经网络的研究进展 6. 神经网络的典型结构 6.1 单层感知器网络 6.2 ...

  8. 智能优化算法-神经网络-径向基神经网络

    clear all;clc X=0:0.05:5; Y=exp(+0.15*0.5*X).*cos(X*pi); %%%%%%%%%%%%%%%%%%绘制出此函数上的采样点%%%%%%%%%%%%%% ...

  9. 利用 Universal Transformer,翻译将无往不利!

    文 / Google Brain Team 的研究科学家 Stephan Gouws.阿姆斯特丹大学的 Mostafa Dehghani 博士生.谷歌研究实习生 去年,我们发布了 Transforme ...

最新文章

  1. 我的中年危机来得很自然
  2. Node.js 第二个思路
  3. 1.4 isAlive()方法
  4. msp430 c语言开发环境,如何使用C语言来编写MSP430的高质量代码
  5. kafka是什么_技术面试官问:Kafka为什么速度那么快?
  6. Launcher3调整壁纸清晰度
  7. 多速率多传感器数据融合估计(二)
  8. 苹果的编程语言--Swift
  9. 惠普p1106打印机安装步骤_hplaserjetp1106打印机驱动安装说明
  10. 【OpenDDS开发指南V3.20】第一章:介绍
  11. java程序员的项目经历如何写,大量教程
  12. AD导入原理图库PCB库文件 最强原理图PCB库
  13. 大气层整合傻瓜包_三国无双7大气层傻瓜包存档
  14. Git error: unable to create file xxx: Filename too long
  15. android百度地图禁止转动和俯视,百度地图之UI控制
  16. Apple Final Cut Pro X 10.4.6 中文特别版 Mac 最强大视频后期制作软件
  17. plex插件显示无服务器,deepin 15.11 安装plex和插件
  18. 【算法学习4】树与二叉树基础
  19. 一键加群android代码如何使用!
  20. 空白新机设置——让新电脑nice一些

热门文章

  1. useState用法指南
  2. 状态码301和302的区别?
  3. mysql用户表示例_MySQL添加用户、删除用户与授权与关联实例
  4. python怎么定义一个变量为空列表_python – 为什么一个类变量没有在列表理解中定义,但另一个是?...
  5. (纯CSS)悬浮一个元素,让另一个元素改变属性
  6. java的io中replace咋么使用_Java.io.ObjectOutputStream.replaceObject()方法实例
  7. abaqus python二次开发攻略_Python 进行 Abaqus 二次开发的基础知识
  8. div中文字居中加粗
  9. 物联网核心安全系列——智能监控安全问题
  10. 恋爱必经阶段,过不来就分了