基于机器学习的「智能撰写」让你的 Gmail 如开挂一般好用
来源 | Tensorflow
编辑 | 磐石
出品 | 磐创AI技术团队
【磐创AI导读】:本文授权转载自Tensorflow,主要分享了”智能撰写技术“。欢迎大家点击上方蓝字关注我们的公众号:磐创AI。(发布人:Google Brain 团队首席工程师 Yonghui Wu)
在 5 月初的 Google I/O 大会上,我们推出了一项 Gmail 新功能 – 智能撰写,此功能利用机器学习,以交互方式在用户打字时给出建议,帮助用户补全句子,从而提高电子邮件的写作速度。智能撰写基于为智能回复开发的技术,为电子邮件写作提供了一种新的方式。无论是回复收到的电子邮件,还是新写邮件都能够体验。
在开发智能撰写的过程中,需要面对许多关键挑战,其中包括:
-
延迟时间:智能撰写基于每次的按键操作提供预测,因此它必须在 100 毫秒内作出响应,用户才不会注意到任何延迟。因此,如何平衡模型复杂度和推断速度成为一个关键问题。
-
规模:Gmail 拥有超过 14 亿用户。要为所有 Gmail 用户提供有效的自动补全建议,模型必须具备足够的建模能力,才能根据不同的语境给出相应的建议。
-
公平性和隐私性:在开发智能撰写时,我们需要在训练过程中杜绝存在潜在偏见的数据源,同时必须遵守与智能回复相同的严格用户隐私标准,确保模型不会泄露用户的隐私信息。此外,研究人员无法访问电子邮件,这意味着他们必须开发并训练一个机器学习系统来处理他们无法读取的数据集。
寻找合适的模型
ngram、神经词袋 (BoW) 和 RNN 语言 (RNN-LM) 等典型的语言生成模型基于前面的单词序列学习预测下个单词。 然而,在电子邮件场景中,用户在当前电子邮件撰写会话中所打出的单词只是模型可用于预测下个单词的提示之一。为了融入有关用户想表达内容的更多语境,我们的模型将电子邮件主题和之前的电子邮件正文(如果用户要回复收到的邮件)也作为了一种预测条件。
要想包含这一额外语境,一种方法是将此问题看作序列到序列 (seq2seq) 的机器翻译任务,其中源序列是主题和之前电子邮件正文(如果有)的结合,目标序列是用户当前正在撰写的电子邮件。尽管此方法在预测质量方面表现良好,但它远远达不到我们严格的延迟时间约束标准。
为了改善这种情况,我们将 BoW 模型与 RNN-LM 结合起来,结果,速度快于 seq2seq 模型,且模型预测质量损失微乎其微。在这种混合方法中,我们通过将每个字段中的词嵌入取平均值,对主题和之前的电子邮件进行编码。然后在每个解码步骤中,将这些平均嵌入连接起来并输入到目标序列 RNN-LM 中。模型架构如下图所示。
智能撰写 RNN-LM 模型架构。通过对每个字段中的词嵌入取平均值,对主题和之前的电子邮件消息进行编码。然后在每个解码步骤中将平均嵌入输入到 RNN-LM 中。
加速模型训练与服务
当然,确定使用这种建模方法后,我们仍需要调整不同的模型超参数,并在数十亿个样本上训练模型,这些加起来需要耗费大量时间。为了加快速度,我们使用完整的 TPUv2 Pod 进行实验。通过这种方式,不到一天的时间即可将模型训练至收敛。
即使在训练完较快的混合模型之后,最初版本的智能撰写在标准 CPU 上运行时的平均服务延迟时间仍高达数百毫秒,这个值对于一个试图节约用户时间的功能来说仍然是不可接受的。幸运的是,在推断时还可以使用 TPU,从而极大地加速用户体验。通过将大量计算转移到 TPU 上,我们将平均延迟时间减少到几十毫秒,同时极大地提高了单个机器可服务的请求数量。
公平性和隐私性
机器学习中的公平性非常重要,因为语言理解模型可能反映人类的认知偏见,产生一些不受欢迎的单词和句子关联。正如 Caliskan 等人在他们的近期论文”Semantics derived automatically from language corpora contain human-like biases”【参考文献1】中所述,这些关联与自然语言数据有着盘根错节的联系,这对构建语言模型提出了巨大挑战。我们正在积极探索如何在训练过程中进一步减少潜在偏见。同时,由于智能撰写与垃圾邮件机器学习模型的训练方式类似,基于数十亿词组和句子训练而成,因此,我们运用此论文【参考文献2】的研究成果,对模型进行了大量测试,以便确保只有多个用户使用的常见词组才会被模型记住。
未来工作
我们将继续通过先进架构(如 Transformer【参考文献3】、RNMT+【参考文献4】等)提高语言生成模型的建议质量,并试验最新、最先进的训练技术。一旦这些更先进的模型满足严格的延迟时间约束条件,我们就会将模型部署到生产中。我们还将研究整合个人语言模型,旨在更准确地在系统中模仿个人的写作风格。
致谢
智能撰写语言生成模型由 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 等人共同开发。
相关文献
[1] Semantics derived automatically from language corpora contain human-like biases
(https://arxiv.org/abs/1608.07187)
[2] The Secret Sharer: Measuring Unintended Neural Network Memorization & Extracting Secrets(https://arxiv.org/abs/1802.08232)
[3] Attention Is All You Need (https://arxiv.org/abs/1706.03762)
[4] The Best of Both Worlds: Combining Recent Advances in Neural Machine Translation
(https://arxiv.org/abs/1804.09849)
你也许还想看:
● 一文彻底搞懂BP算法:原理推导+数据演示+项目实战(上篇)
● TensorFlow + Keras 实战 YOLO v3 目标检测图文并茂教程(文末有惊喜)
● 入门 | Tensorflow实战讲解神经网络搭建详细过程
Tips:欢迎大家点击最下方二维码关注我们的公众号,点击干货资源专栏或发送关键字“资源”获取更多资源推荐。关注我们的历史文章,一起畅游在深度学习的世界中。我们期待你的留言和投稿,共建交流平台。来稿请寄:voice1235@163.com。
欢迎扫码进入相应技术交流群:
点击下方 | 阅读原文 | 了解更多
原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2018/06/02/0390032fc0/