人工智能 · 2024年1月10日

揭秘谷歌Allo的人工智能技术来源

谷歌Allo的“智商”哪儿来?人工智能技术大揭秘

图片来源:PCM

编者按:谷歌在今年的I/O大会推出了一个大惊喜:由机器学习支持的Allo智能聊天应用。为何Allo能够如此讨用户的欢心?谷歌研究的Pranav Khaitan在谷歌博客上为我们解读了Allo背后的人工智能算法。Khaitan具有斯坦福大学计算机科学硕士学位,曾在斯坦福大学担任研究助理工作,并在微软、Facebook等公司实习。他2011年加入谷歌,目前带领团队进行机器学习、神经网络和个人化科技的工作,并帮助打造谷歌搜索等产品所需的知识图表,在谷歌搜索的几乎每个领域——排名、指数和基础建设——都能看到由他打造、发布的功能。

谷歌一直在打造由机器学习支持的产品,让用户的生活更加简单、美好。今天,本文将介绍一个全新智能聊天应用Allo背后的技术,该应用使用神经网络和谷歌搜索,让文字聊天更加简单、高效。

正如Inbox的智能回复一样,Allo能够理解对话记录,提供用户会想采用的回复建议。除了理解对话的语境之外,Allo还能理解你的个人聊天风格,因此可以实现个人定制的聊天回复。

谷歌Allo的“智商”哪儿来?人工智能技术大揭秘

图片来源:Google Research Blog

如何做到的?

一年多以前,团队开始研究如何让对话可以更加简便、更加好玩。Allo智能回复的想法来源于团队中的Sushant Prakash和Ori Gershony,他们带领团队打造了这项技术。我们最初使用了一个神经网络进行试验,其模型架构之前已经成功应用在序列预测中,包括Inbox智能回复中使用的编码-解码模型。

我们面临的挑战之一,是在线聊天在回复时间上有很严格的要求。为了解决这个问题,Pavel Sountsov和Sushant想出了一个非常创新的两阶段模型。首先,一个递归神经网络一个字一个字地查看聊天语境,然后用长短时记忆(LSTM)的隐藏状态将其编码。下图展示的就是一个例子,语境是“你在哪?”语境有三个标记,每一个标记都嵌入到一个连续空间中,然后输入到LSTM里。然后,LSTM状态将语境编码为一个连续矢量。这个矢量用来生成作为离散语义类别的回复。

谷歌Allo的“智商”哪儿来?人工智能技术大揭秘

上图的例子中,最下方是输入的语境(“你在哪?“),黄色层为”文字嵌入“,蓝色层为”LSTM“,绿色层为”softmax函数“,最后输出”地点短语“,作为预测的回复语义。图片来源:Google Research Blog。

每一个语义类别都与它可能的回复库关联起来。我们使用了第二个递归神经网络来从这个回复库中,生成一个具体的回复信息。这个神经网络还将语境转换为一个隐藏的LSTM状态,但是这一次,这个隐藏状态是用来生成回复的完整信息,一次生成一个标记。我们回到上面的例子,LSTM看到了“你在哪?”的语境后,生成了回复:“我在上班。”

谷歌Allo的“智商”哪儿来?人工智能技术大揭秘

上图中,最下方是语境输入(”你在哪?”),最上层softmax函数生成”我在上班。”来源:Google Research Blog。

从LSTM生成的大量可能回复库中,beam搜索能有效选择出顶层得分最高的回复。下图展示的是一个搜索空间的小片段,我们可以从中一窥beam搜索技术。

谷歌Allo的“智商”哪儿来?人工智能技术大揭秘

图片来源:Google Research Blog

正如任何大规模产品一样,我们面临了多个工程方面的挑战,高效生成高质量的回复库并非易事。举一个例子,虽然我们使用了这个两阶段的架构,我们最初的几个神经网络运行都非常慢,生成一个回复需要大约半秒钟。半秒钟听起来很短,但是针对实时聊天应用来说,这完全是没法接受的。因此,我们必须让我们的神经网络架构进一步进化,将回复时间再减少至少200毫秒。我们改变了softmax层,转而使用一个层级性的softmax层,可以遍历一个词汇树,比之前遍历一个词汇列表更加高效。

在生成预测时我们遇到的另一个挑战比较有趣,那就是控制信息的长度。有时候,所有可能的回复长度都不合适——如果模型预测的信息太短,可能对于读者来说就没有用;而如果我们预测的信息太长,可能就不适合手机屏幕的显示大小。我们的办法是,让beam搜索更偏向于跟进能够通向更高反应用途的路径,而不是倾向于选择最有可能的回复。这样,我们可以高效生成长度适合的回复预测,对用户来说会非常有用。

个人定制

这项智能聊天建议最棒的地方在于,随着时间,软件会为用户进行个人定制,这样你的个人风格会在聊天对话中体现出来。例如,假设当别人和你说“你好吗?”(“How are you?”)的时候,你通常的回复方式是“蛮好。”而不是“不错。”(英文中某个用户可能更习惯回复“Fine.”而不是“I am good.”),软件就会了解到你的偏好,在未来的回复建议中就会考虑到这一点。要实现这一点,就要在神经网络中加入用户的个人”风格“,将这个神经网络用于预测回复中下一个词语是什么,这样回复建议就会根据你的个性和偏好进行定制化。用户的风格是在一系列数字中获取的,我们称之为用户嵌入。这些嵌入可以作为常规模型训练的一部分,但是这种方法需要等上很多天训练才能结束,而且如果用户超过了几百万人,这种方法就有可能搞不定。为了解决这个问题,Alon Shafrir打造了一项基于L-BFGS的技术,让Allo能够快速、大量地生成用户嵌入。现在,Allo的用户只需要很短的一段时间,就能获得个人定制化的回复建议。

不只会说英语

我们之前说到的这个神经

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.

登录免费注册