Google Assistant 中的上下文改述

1726718304002.jpg

当人们相互交谈时,语境和指代词在提高对话效率方面起着至关重要的作用。例如,如果有人问“谁写了《罗密欧与朱丽叶》?”,在得到答案后,他问“他出生在哪里?”,很明显,“他”指的是威廉·莎士比亚,而不需要明确提到他。或者,如果有人在一句话中提到“蟒蛇”,我们可以根据对话中的上下文判断他们指的是一种蛇还是一种计算机语言。如果虚拟助手无法稳健地处理上下文和指代词,用户就需要适应技术的局限性,在后续查询中重复之前共享的上下文信息,以确保助手理解他们的请求并提供相关答案。

在这篇文章中,我们介绍了一项目前部署在Google Assistant上的技术,该技术允许用户在引用先前查询和答案中定义的上下文时以自然的方式说话。该技术基于最新的机器学习 (ML) 进展,可以重新表述用户的后续查询,以明确提及缺失的上下文信息,从而使其可以作为独立查询进行回答。虽然 Assistant 会考虑多种类型的上下文来解释用户输入,但在本文中,我们将重点关注短期对话历史记录。

通过改述来处理上下文

Assistant 理解上下文查询的方法之一是检测输入的话语是否指的是之前的上下文,然后在内部重新表述以明确包含缺失的信息。继上一个用户询问《罗密欧与朱丽叶》作者是谁的示例之后,可以提出后续问题,例如“什么时候?”。Assistant 认识到该问题既指主题(罗密欧与朱丽叶),也指上一个查询(威廉·莎士比亚)的答案,并且可以将“什么时候?”改写为“威廉·莎士比亚什么时候写了《罗密欧与朱丽叶》?”

虽然还有其他方法可以处理上下文,例如,通过将规则直接应用于查询含义的符号表示(如意图和参数),但改述方法的优势在于它可以在任何查询应答、解析或操作履行模块的字符串级别水平运行。

Nest Hub Max 示例

在智能显示屏上进行对话,Assistant 可以理解多个上下文后续查询,让用户进行更自然的对话。显示屏底部显示的短语是用户可以选择的后续问题建议。不过,用户仍然可以提出不同的问题。

各种各样的上下文查询

传统上,自然语言处理领域并不太重视上下文的通用方法,而是专注于理解完全指定的独立查询。准确地整合上下文是一个具有挑战性的问题,尤其是在考虑到各种上下文查询类型时。下表包含示例对话,这些对话说明了查询的可变性以及 Assistant 的改写方法可以解决的许多上下文挑战(例如,区分指称和非指称情况或识别查询所指称的上下文)。我们展示了 Assistant 现在如何能够改写后续查询,在提供答案之前添加上下文信息。

系统架构

从高层次上讲,改述系统使用不同类型的候选生成器生成改述候选。然后根据多个信号对每个改述候选进行评分,并选择得分最高的改述候选。

Google Assistant 上下文改写器的高级架构。

候选人生成

为了生成改述候选词,我们使用了一种混合方法,该方法应用了不同的技术,我们将其分为三类:

基于查询的语言结构分析的生成器使用语法和形态规则来执行特定操作 - 例如,用上下文中的先行词替换代词或其他类型的指称短语。

基于查询统计数据的生成器将当前查询及其上下文中的关键词结合起来,以创建与历史数据或常见查询模式中的热门查询相匹配的候选项。

基于Transformer 技术的生成器(例如MUM)会根据大量训练样本学习生成单词序列。LaserTagger和FELIX是适合输入和输出文本重叠度高的任务的技术,推理速度非常快,并且不易产生幻觉(即生成与输入文本无关的文本)。一旦呈现查询及其上下文,它们就可以生成一系列文本编辑,通过指示应保留上下文的哪些部分以及应修改哪些单词,将输入查询转换为改写候选词。

候选人评分

我们为每个改写候选词提取大量信号,并使用 ML 模型来选择最有希望的候选词。一些信号仅取决于当前查询及其上下文。例如,当前查询的主题是否与前一个查询的主题相似?或者,当前查询是否是一个很好的独立查询,还是看起来不完整?其他信号取决于候选词本身:候选词保留了多少上下文信息?从语言学的角度来看,候选词是否格式正确?等等。

最近, BERT和 MUM 模型 生成的新信号显著提高了排名器的性能,固定了大约三分之一的召回空间,同时最大限度地减少了非上下文查询序列(因此不需要改述)的 误报。

电话示例

手机上的示例对话,其中 Assistant 可以理解一系列上下文查询。

结论

本文描述的解决方案尝试通过重新表述上下文查询来解决它们,以便以独立的方式完全回答它们,即在执行阶段无需与其他信息相关联。这种方法的好处是它与执行查询的机制无关,因此可以在任何进一步处理之前将其用作要部署的水平层。

考虑到人类语言中自然使用的语境种类繁多,我们采用了一种混合方法,将语言规则、通过日志获得的大量历史数据和基于最先进 Transformer 方法的 ML 模型相结合。通过为每个查询及其上下文生成大量改写候选词,然后使用各种信号对它们进行评分和排名,Assistant 可以改写并正确解释大多数上下文查询。由于 Assistant 可以处理大多数类型的语言参考,我们让用户能够进行更自然的对话。为了让这种多轮对话更加轻松,Assistant 用户可以打开“继续对话”模式,以便在每次查询之间无需重复“Hey Google”即可提出后续查询。我们还在其他虚拟助手设置中使用这项技术,例如,从屏幕上显示的内容或扬声器上播放的内容中解释上下文。

致谢

这篇文章是 Aliaksei Severyn、André Farias、Cheng-Chun Lee、Florian Thöle、Gabriel Carvajal、Gyorgy Gyepesi、Julien Cretin、Liana Marinescu、Martin Bölle、Patrick Siegler、Sebastian Krause、Victor Ähdel、Victoria Fossum 和 Vincent Zhao 共同努力的成果。我们还要感谢 Amar Subramanya、Dave Orr 和 Yury Pinsky 的有益讨论和支持。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论