促进以多种语言与自动化助理的端到端沟通的制作方法

文档序号:25882548发布日期:2021-07-16 18:49阅读:91来源:国知局
促进以多种语言与自动化助理的端到端沟通的制作方法
促进以多种语言与自动化助理的端到端沟通
1.分案说明
2.本申请属于申请日为2018年4月16日的中国发明专利申请 201880001823.2的分案申请。
技术领域
3.本公开涉及促进以多种语言与自动化助理的端到端沟通。


背景技术:

4.人类可以与这里称为“自动化助理(automated assistants)”(也 称为“聊天机器人(chatbots)”,“交互式个人助理(interactive personalassistants)”,“智能个人助理(intelligent personal assistants)”,“个 人语音助理(personal voice assistants)”,“会话代理人(conversationalagents)”等)的交互式软件应用进行人机对话。例如,人(当其与自 动化助理交互时可以被称为“用户(users)”)可以使用自由形式的 自然语言输入来提供命令、查询和/或请求(这里统称为“查询 (queries)”),自由形式的自然语言输入可以是被转换为文本然后被 处理的声音话语和/或键入的自由形式的自然语言输入。通常使用预定 的声音话语(例如,“ok assistant”)来调用自动化助理,并且经常 仅对在调用短语之后的那些声音话语执行各种类型的处理,诸如语音 到文本处理和/或自然语言处理。
5.自动化助理擅长以一些广泛使用的语言例如英语与用户沟通,但 是不太能够以其他语言进行沟通。然而,用于配置自动化助理以新语 言进行沟通的传统技术是资源密集型的。对于每种新语言,可能需要 生成新的触发语法(即,用于调用自动化助理的特定动作的单词或短 语),识别以新语言的查询意图(需要针对不同语言的不同自然语言 处理组件),并以新语言生成可理解的自然语言输出。除了该挑战之 外,每种语言都有无数的特性(例如,形态丰富、支持性、性别中立 等),并且可能很难找到能够以特定语言构建这些系统的语言专家。


技术实现要素:

6.本文描述了用于通过利用以特定语言进行处理来促进以各种语言 的人机对话的端到端处理的技术。换句话说,这里描述的技术增加了 自动化助理的语言覆盖范围。在各种实施方式中,可以使用多个管线 来处理提供给自动化助理的用户查询。例如,在一些实施方式中,可 以采用第一管线来尝试以查询的原始语言处理用户的查询。可以采用 第二管线将用户的查询翻译成自动化助理更好处理的不同语言,并使 用所述翻译来识别和履行用户的意图。经由第二管线返回的自然语言 输出可能会或可能不会被翻译回用户的原始语言。在各种实施方式中, 可以例如基于置信度分数对经由多个管线生成的自然语言输出进行排 序,并且可以向用户呈现排序最高的自然语言输出。
7.可能希望以用户说出的语言来保留用户的原始查询的部分。例如, 在一些实施方
式中,可以在用户的原始查询中(或者更具体地,在从 用户的原始话音输入生成的语音识别输出中)识别槽(slot)值。这些 槽值可能不需要翻译,在某些情况下,翻译它们可能会导致错误。例 如,假设用户说出短语“what is akash’s phone number?(akash的电话 号码是什么?)”,名称“akash”可以翻译成具有与用户意图无关的 特定含义(例如,天空)的英语单词。然而,如果单词“akash”可以 被识别为槽值并由此以用户说出的语言进行保存,则可以正确地翻译 用户查询的剩余部分,以便可以采取适当的响应动作。
8.大多数语言具有各种口语(colloquialism)。此外,可以在自然语 言输出生成过程中构建口语,以便自动化助理可以提供听起来更“人 性化”的输出。例如,假设用户以当前尚未得到良好支持的语言询问 天气。用户的查询可以被翻译成更广泛支持的语言,例如英语,然后 可以识别和履行用户的意图。然而,对于像这样的常见查询,很可能 非正式(例如,“像人类的”)自然语言输出可用作直接自然语言输 出的替选。例如,假设今天将热且晴天。自动化助理不是简单地生成 诸如“it will be 90degrees and sunny.(将是90度和晴天)”的自然语 言输出,而是可以选择例如手动生成的自然语言输出以听起来更人性 化,例如“better grab your sunglasses because it’s gonna be a scorcher. (最好带上你的太阳镜,因为将是个大热天。)”。将这种听起来口 语的自然语言输出翻译回用户的母语可能会产生对用户毫无意义的结 果。因此,在一些实施方式中,例如因为其包括手动生成的口语、俚 语等可能难以翻译的自然语言输出可以用更有可能适当地翻译成用户 的母语的更直接的自然语言输出替换。
9.在一些实施方式中,提供了一种由一个或多个处理器执行的方法, 包括:接收用户在客户端设备的输入组件处以第一语言提供的话音输 入;从所述话音输入生成语音识别输出,其中,所述语音识别输出是 以所述第一语言;基于所述语音识别输出识别所述用户的第一语言意 图;履行所述第一语言意图以生成第一履行信息;基于所述第一履行 信息,以所述第一语言生成第一自然语言输出候选;将所述语音识别 输出的至少一部分从所述第一语言翻译成第二语言,以生成所述语音 识别输出的至少部分翻译;基于所述至少部分翻译识别所述用户的第 二语言意图;履行所述第二语言意图以生成第二履行信息;基于所述 第二履行信息,以所述第二语言生成第二自然语言输出候选;确定所 述第一和第二自然语言输出候选的分数;基于所述分数,从所述第一 和第二自然语言输出候选中选择要呈现给所述用户的自然语言输出; 以及使所述客户端设备在所述客户端设备的输出组件处呈现所选择的 自然语言输出。
10.本文中公开的技术的这些和其他实施方式可以可选地包括以下特 征中的一个或多个。
11.在各种实施方式中,该方法还可以包括以所述第一语言生成响应 于所述第二语言意图的第三自然语言输出候选。在一些这样的实施方 式中,确定所述分数还可以包括确定所述第一、第二和第三内容的分 数。
12.在各种实施方式中,该方法还可以包括在评分之前将所述第二自 然语言输出候选翻译成所述第一语言。在各种实施方式中,翻译所述 第二自然语言输出候选可以基于机器学习模型,所述机器学习模型是 使用在人机对话期间由一个或多个自动化助理提供的一个或多个自然 语言输出日志来训练的。
13.在各种实施方式中,翻译以生成所述语音识别输出的所述至少部 分翻译基于机
器学习模型,所述机器学习模型是使用在人机对话期间 提交给一个或多个自动化助理的一个或多个用户查询日志来训练的。 在各种实施方式中,在各种实施方式中,评分可以是基于指派给所述 第一和第二自然语言意图的相应置信度分数。在各种实施方式中,评 分是可以基于获得所述第一和第二自然语言输出候选所需的时间。
14.在各种实施方式中,该方法还可以包括识别所述语音识别输出中 的槽值。在一些这样的实施方式中,所述语音识别输出的所述至少部 分翻译可以排除所述槽值,并且所述第二语言意图是可以基于为所述 第一语言的所述槽值而被进一步识别的。
15.在另一方面,一种方法可以包括以下操作:接收用户在客户端设 备的输入组件处以第一语言提供的话音输入;以所述第一语言生成所 述话音输入的语音识别输出;将所述语音识别输出的至少一部分从所 述第一语言翻译成第二语言,以生成所述语音识别输出的至少部分翻 译;基于所述至少部分翻译识别所述用户的第二语言意图;履行所述 第二语言意图以生成履行信息;基于所述第二语言意图以所述第二语 言生成自然语言输出;将所述自然语言输出翻译成所述第一语言以生 成翻译的自然语言输出;确定所述翻译的自然语言输出是否满足一个 或多个准则;基于所述确定,选择基于所述翻译的自然语言输出或替 选自然语言输出的输出;以及使所述客户端设备在所述客户端设备的 输出组件处呈现所述输出。
16.另外,一些实施方式包括一个或多个计算设备的一个或多个处理 器,其中一个或多个处理器可操作以执行存储在相关存储器中的指令, 并且其中指令被配置成使得执行上述任何一个方法。一些实施方式还 包括存储可由一个或多个处理器执行以执行任何前述方法的计算机指 令的一个或多个非暂时性计算机可读存储介质。
17.应当理解,本文更详细描述的前述概念和附加概念的所有组合都 被认为是本公开的主题的一部分。例如,出现在本公开结尾处的所要 求保护的主题的所有组合被认为是本公开的主题的一部分。
附图说明
18.图1是可以实现本文中所公开的实施方式的示例环境的框图。
19.图2描绘了根据各种实施方式的示例过程流,其展示了本公开的 各个方面。
20.图3a和3b描绘了根据各种实施方式的用户和自动化助理之间的 示例对话。
21.图4描绘了示出根据本文中所公开的实施方式的示例方法的流程 图。
22.图5描绘了示出根据本文中所公开的实施方式的示例方法的流程 图。
23.图6示出了计算设备的示例架构。
具体实施方式
24.现在转到图1,示出了可以实现本文中所公开的技术的示例环境。 示例环境包括多个客户端计算设备1061‑
n
。每个客户端设备106可以执 行自动化助理客户端118的相应实例。一个或多个基于云的自动化助 理组件119(诸如自然语言理解引擎135)可以在经由总体在110指示 的一个或多个局域网和/或广域网(例如,互联网)通信地耦合到客户 端设备1061‑
n
的一个或多个计算系统(统称为“云”计算系统)上实 现。
25.在一些实施方式中,多个客户端计算设备1061‑
n
(这里也简称为
ꢀ“
客户端设备”)可
以以各种方式彼此相关联以便促进本文描述的技 术的执行。例如,在一些实施方式中,多个客户端计算设备1061‑
n
可 以因为它们是由一个或多个用户(例如,个人、家庭、组织的雇员、 其他预定义组等)操作的客户端设备106的协同生态系统的成员来彼 此相关联。
26.如背景技术中所述,自动化助理客户端118的实例通过其与一个 或多个基于云的自动化助理组件119的交互,可以形成从用户的角度 看起来是用户可以与之参与人机对话的自动化助理120的逻辑实例。 图1中描绘了这种自动化助理120的两个实例。由虚线包围的第一自 动化助理120a服务于操作第一客户端设备1061的第一用户(未示出) 并且包括自动化助理客户端1181和一个或多个基于云的自动化助理组 件119。由点划线包围的第二自动化助理120b服务于操作另一客户端 设备106
n
的第二用户(未示出),并且包括自动化助理客户端118
n
和一个或多个基于云的自动化助理组件119。因此,应当理解,与在客 户端设备106上执行的自动化助理客户端118进行交互的每个用户可 以实际上与他或她自己的自动化助理120的逻辑实例进行交互。为了 简洁和简单,这里用作“服务”特定用户的术语“自动化助理”将指 代在由用户操作的客户端设备106上执行的自动化助理客户端118和 一个或多个基于云的自动化助理组件119(其可以在多个自动化助理客 户端118之间共享)的组合。还应当理解,在一些实施方式中,自动 化助理120可以响应于来自任何用户的请求,而不管用户是否实际上 由自动化助理120的特定实例“服务”。
27.客户端设备1061‑
n
可以包括例如以下中的一个或多个:桌面计算 设备、膝上型计算设备、平板计算设备、移动电话计算设备、用户的 车辆的计算设备(例如、车载通信系统、车载娱乐系统、车载导航系 统)、独立的交互式扬声器、诸如智能电视的智能电器、和/或包括计 算设备的用户的可穿戴设备(例如,具有计算设备的用户的手表,具 有计算设备、虚拟或增强现实计算设备的用户的眼镜)。可以提供附 加的和/或替选客户端计算设备。
28.客户端计算设备1061‑
n
中的每一个可以操作各种不同的应用,诸 如多个消息交换客户端1071‑
n
中的对应的一个。消息交换客户端1071‑
n
可以以各种形式出现,并且形式可以在客户端计算设备1061‑
n
之间变 化和/或可以在客户端计算设备1061‑
n
中的单个客户端计算设备上操作 多个形式。在一些实施方式中,消息交换客户端1071‑
n
中的一个或多 个可以以短消息收发服务(“sms”)和/或多媒体消息收发服务 (“mms”)客户端、在线聊天客户端(例如,即时消息收发器、互 联网中继聊天或“irc”等)、与社交网络相关联的消息传递应用、专 用于与自动化助理120的对话的个人助理消息传递服务等。在一些实 施方式中,消息交换客户端1071‑
n
中的一个或多个可以经由网页或由 web浏览器(未示出)或客户端计算设备106的其他应用呈现的其他资 源来实现。
29.如本文更详细描述的,自动化助理120经由一个或多个客户端设 备1061‑
n
的用户接口输入和输出设备与一个或多个用户进行人机对话 会话。在一些实施方式中,响应于用户经由客户端设备1061‑
n
之一的 一个或多个用户接口输入设备提供的用户接口输入,自动化助理120 可以参与与用户的人机对话会话。在这些实施方式中的一些中,用户 接口输入被明确地指向自动化助理120。例如,消息交换客户端1071‑
n
之一可以是专用于与自动化助理120的对话的个人助理消息收发服务, 以及经由该个人助理消息收发服务提供的用户接口输入可以被自动提 供给自动化助理120。此外,例如,用户接口输入可以基于指示要调用 自动化助理120的特定用户接口输入被明确地引导到消息交换客户端 1071‑
n
中的一个或多个中的自动化助理120。例如,特定用户接口输入 可以是一个或多个键入的字符(例如,@
automatedassistant)、用户 与硬件按钮和/或虚拟按钮的交互(例如,点击、长按)、口头命令(例 如,“hey automated assistant”)和/或其他特定用户接口输入。
30.在一些实施方式中,自动化助理120可以响应于用户接口输入参 与人机对话会话,即使该用户接口输入未被明确地引导到自动化助理 120。例如,自动化助理120可以检查用户接口输入的内容并响应于用 户接口输入中存在的某些词项和/或基于其他提示参与对话会话。在许 多实施方式中,自动化助理120可以参与交互式语音响应(“ivr”), 使得用户可以发出命令、搜索等,并且自动化助理可以利用语音识别 将话语转换为文本,并且例如通过提供搜索结果,一般信息和/或采取 一个或多个响应动作(例如,播放媒体、启动游戏、订购食物等)相 应地对文本做出响应。在一些实施方式中,自动化助理120可以附加 地或替选地在不将话语转换为文本的情况下对话语做出响应。例如, 自动化助理120可以将话音输入转换为嵌入、转换为实体表示(其指 示存在于话音输入中的实体/多个实体)、和/或其他“非文本”表示, 并且对这种非文本表示进行操作。因此,这里描述的基于从话音输入 转换的文本操作的实施方式可以附加地和/或替选地直接对话音输入和 /或话音输入的其他非文本表示进行操作。
31.操作基于云的自动化助理组件119的客户端计算设备1061‑
n
和计 算设备中的每一个可以包括用于存储数据和软件应用的一个或多个存 储器、用于访问数据和执行应用的一个或多个处理器和其他有助于通 过网络进行通信的组件。由一个或多个客户端计算设备1061‑
n
和/或由 自动化助理120执行的操作可以分布在多个计算机系统上。自动化助 理120可以被实现为例如在通过网络彼此耦合的一个或多个位置中的 一个或多个计算机上运行的计算机程序。
32.如上所述,在各种实施方式中,客户端计算设备1061‑
n
中的每一 个可以操作自动化助理客户端118。在各种实施方式中,每个自动化助 理客户端118可以包括相应的语音捕获/文本到语音(“tts”)/语音 到文本(“stt”)模块114。在其他实施方式中,语音捕获/tts/stt 模块114的一个或多个方面可以与自动化助理客户端118分开实现。 在各种实施方式中,语音捕获/tts/stt模块114可以基于声音查询 生成语音识别输出。可以根据本文描述的技术分析该语音识别输出。
33.每个语音捕获/tts/stt模块114可以被配置成执行一个或多个 功能:例如经由麦克风来捕获用户的语音;将捕获的音频转换为文本 (和/或转换为其他表示或嵌入);和/或将文本转换为语音。例如,在 一些实施方式中,因为客户端设备106在计算资源(例如,处理器周 期、存储器、电池等)方面可能相对受限,所以每个客户端设备106 本地的语音捕获/tts/stt模块114可以被配置成将有限数量的不同 的说出的短语——特别是调用自动化助理120的短语——转换为文本 (或者转换为其他形式,例如低维嵌入)。其他语音输入可以被发送 到基于云的自动化助理组件119,其可以包括基于云的tts模块116 和/或基于云的stt模块117。
34.基于云的stt模块117可以被配置成利用云的几乎无限的资源来 将由语音捕获/tts/stt模块114捕获的音频数据转换为文本(然后 可以将其提供给自然语言处理器122)。基于云的tts模块116可以 被配置成利用云的几乎无限的资源来将文本数据(例如,由自动化助 理120制定的自然语言响应)转换为计算机生成的语音输出。在一些 实施方式中,tts模块116可以将计算机生成的语音输出提供给客户 端设备106以例如使用一个或多个扬声
器直接输出。在其他实施方式 中,由自动化助理120生成的文本数据(例如,自然语言响应)可以 被提供给语音捕获/tts/stt模块114,其然后可以将文本数据转换为 本地输出的计算机生成的语音。
35.自动化助理120(并且特别地,基于云的自动化助理组件119)可 以包括自然语言理解引擎135、前述tts模块116、前述stt模块117、 以及下面更详细描述的其他组件。在一些实施方式中,可以在与自动 化助理120分开的组件中省略、组合和/或实现自动化助理120的一个 或多个引擎和/或模块。在一些实施方式中,为了保护隐私,自动化助 理120的一个或多个组件例如自然语言处理器122、语音捕获/tts/ stt模块114等可以至少部分地在客户端设备106上实现(例如,排 除云)。
36.在一些实施方式中,自动化助理120响应于在与自动化助理120 的人机对话会话期间由客户端设备1061‑
n
之一的用户生成的各种输入 来生成响应内容。自动化助理120可以提供响应内容(例如,当与用 户的客户端设备分离时通过一个或多个网络)以作为对话会话的一部 分呈现给用户。例如,自动化助理120可以响应于经由客户端设备1061‑
n
之一提供的自由形式的自然语言输入而生成响应内容。如这里所使用 的,自由形式输入是由用户制定并且不限于呈现给用户选择的一组选 项的输入。
37.如本文所使用的,“对话会话”可以包括在用户和自动化助理120 (以及在一些情况下,其他人类参与者)之间的一个或多个消息的逻 辑上自包含的交换。自动化助理120可以基于各种信号来区分与用户 的多个对话会话,诸如会话之间的时间流逝、会话之间的用户场境(例 如、位置、在预定会议之前/期间/之后等)的改变、检测除了用户和自 动化助理之间的对话之外用户和客户端设备之间的一个或多个介入交 互(例如、用户切换应用一段时间、用户走开离开然后返回到独立的 话音激活产品)、在会话之间客户端设备锁定/睡眠、用于与自动化助 理120的一个或多个实例接口连接的客户端设备的改变等。
38.自然语言理解引擎135的自然语言处理器122处理由用户经由客 户端设备1061‑
n
生成的自然语言输入,并且可以生成注释输出(例如, 以文本形式)以供自动化助理120的一个或多个其他组件使用。例如, 自然语言处理器122可以处理由用户经由客户端设备1061的一个或多 个用户接口输入设备生成的自然语言自由形式输入。生成的注释输出 包括自然语言输入的一个或多个注释以及自然语言输入的词项的一个 或多个(例如,所有)。
39.在一些实施方式中,自然语言处理器122被配置成在自然语言输 入中识别和注释各种类型的语法信息。例如,自然语言处理器122可 以包括形态引擎,该形态引擎可以将单个单词分成语素和/或例如用其 类别来注释语素。自然语言处理器122还可以包括词性标注器,其被 配置成用其语法角色来注释词项。例如,词性标注器可以用其词性标 记每个词项,例如“名词(noun)”、“动词(verb)”、“形容词(adjective)”、
ꢀ“
代词(pronoun)”等。此外,例如,在一些实施方式中,自然语言 处理器122可以附加地和/或替选地包括依赖性解析器(未示出),其 被配置成确定自然语言输入中的词项之间的句法关系。例如,依赖性 解析器可以确定哪些词项修饰其他词项、句子的主语和动词等等(例 如,解析树)——并且可以对这种依赖性进行注释。
40.在一些实施方式中,自然语言处理器122可以附加地和/或替选地 包括实体标记器(未示出),其被配置成在一个或多个段中注释实体 引用,诸如对人的引用(包括例如文学角色、名人、公众人物等)、 组织、地点(真实的和想象的)等等。在一些实施方式中,关于
实体 的数据可以存储在一个或多个数据库中,例如存储在知识图(未示出) 中。在一些实施方式中,知识图可以包括表示已知实体(并且在一些 情况下,实体属性)的节点、以及连接节点并表示实体之间的关系的 边。例如,“香蕉”节点可以连接(例如,作为子节点)到“水果
”ꢀ
节点,“水果”节点又可以连接(例如,作为子节点)到“产品”和/ 或“食物”节点。作为另一示例,称为“hypothetical caf
é”
的餐厅可 以由节点表示,该节点还包括诸如其地址、所服务的食物的类型、小 时、联系信息等属性。在某些实施方式中,“hypothetical caf
é”
节点 可以通过边(例如,表示子到父关系)被连接到一个或多个其他节点, 例如“餐厅”节点、“商业”节点、表示餐厅所位于的城市和/或州的 节点等。
41.自然语言处理器122的实体标记器可以以高粒度水平(例如,以 便能够识别对诸如人们的实体类的所有引用)和/或较低粒度水平(例 如,以便能够识别对例如特定人的特定实体的所有引用)注释对实体 的引用。实体标记器可以依赖于自然语言输入的内容来解析特定实体 和/或可以可选地与知识图或其他实体数据库通信以解析特定实体。
42.在一些实施方式中,自然语言处理器122可以附加地和/或替选地 包括共同引用解析器(未示出),其被配置成基于一个或多个场境提 示对相同实体的引用进行分组或“聚类”。例如,可以利用共同引用 解析器将自然语言输入“i liked hypothetical caf
é
last time we ate there (我们上次在那里吃时我喜欢hypothetical caf
é
)”中的“there(那里)
”ꢀ
解析为“hypothetical caf
é”

43.在一些实施方式中,自然语言处理器122的一个或多个组件可以 依赖于来自自然语言处理器122的一个或多个其他组件的注释。例如, 在一些实施方式中,命名实体标记器可以依赖来自共同引用解析器和/ 或依赖性解析器的注释来注释对特定实体的所有提及。而且,例如, 在一些实施方式中,共同引用解析器可以依赖来自依赖性解析器的注 释来聚类对同一实体的引用。在一些实施方式中,在处理特定自然语 言输入时,自然语言处理器122的一个或多个组件可以使用特定自然 语言输入之外的相关先前输入和/或其他相关数据来确定一个或多个注 释。
44.自然语言理解引擎135还可以包括意图匹配器136,其被配置成 确定参与与自动化助理120的人机对话会话的用户的意图。虽然与图1 中的自然语言处理器122分开描绘,在其他实施方式中,意图匹配器 136可以是自然语言处理器122的(或更一般地,包括自然语言处理器 122的管线的)组成部分。在一些实施方式中,自然语言处理器122和 意图匹配器136可以共同形成前述“自然语言理解”引擎135。
45.意图匹配器136可以使用各种技术来确定用户的意图,例如基于 来自自然语言处理器122的输出(其可以包括自然语言输入的注释和 词项)。在一些实施方式中,意图匹配器136可以访问一个或多个数 据库137,其包括例如语法和响应动作(或更一般地,意图)之间的多 个映射。在许多情况下,可以随时间选择和/或学习这些语法,并且这 些语法可以表示用户的最常见意图。例如,可以将一个语法“play <artist>(播放<艺术家>)”映射到调用使得<artist>的音乐在由用户操 作的客户端设备106上播放的响应动作的意图。另一种语法
ꢀ“
[weather|forecast]today([今天的天气|预报])”可能与诸如“what’s theweather today(今天的天气是什么)”和“what’s the forecast for today? (今天的预报是什么?)”的用户查询匹配。如下面将更详细描述的 那样,在一些实施方式中,除了或代替语法,意图匹配器136可以单 独地或与一个或多个语法组合地使用一个或多个经训练的机
器学习模 型。这些经训练的机器学习模型也可以存储在一个或多个数据库137 中。
[0046]
如在“play<artist>”示例语法中所见,一些语法具有可以用槽值 (或“参数”)填充的槽(例如,<artist>)。可以以各种方式确定槽 值。用户通常会主动提供槽值。例如,对于语法“order me a<topping> pizza(为我点一个<配料>比萨饼)”,用户可能会说出“order me a sausage pizza(为我点一个香肠比萨饼)”这一短语,在这种情况下, 槽<topping>被自动填充。附加地或替选地,如果用户调用包括要用槽 值填充的槽的语法,而用户没有主动提供槽值,自动化助理120可以 从用户征求那些槽值(例如,“what type of crust do you want on your pizza?(你想要你的比萨饼什么类型的外壳?)”)。
[0047]
在一些实施方式中,自动化助理120可以促进(或“代理(broker)”) 用户与第三方应用之间的交易。这些第三方应用可以或可以不在与操 作例如基于云的自动化助理组件119的计算系统分开的计算系统上操 作。因此,可以由意图匹配器136识别的一种用户意图是接合第三方 应用。例如,自动化助理120可以提供对比萨饼递送服务的应用编程 接口(“api”)的访问。用户可以调用自动化助理120并提供诸如“i’dlike to order a pizza.(我想订购比萨饼)”的命令。意图匹配器136可 以将该命令映射到触发自动化助理120与第三方比萨饼递送服务接合 的语法(其在某些情况下可以由第三方添加到数据库137)。第三方比 萨饼递送服务可以向自动化助理120提供为完成比萨饼递送订单需要 填充的最小槽列表。自动化助理120可以生成并向用户(经由客户端 设备106)提供征求槽的参数的自然语言输出。
[0048]
在人机对话域中,用户和自动化助理120使用的词汇可能比日常 会话、文学、写作等中使用的词汇更不全面。换言之,在人机对话期 间使用的有限的语言空间通常将是用于更通用目的的人与人沟通(例 如,谈话、写作等)的更全面的语言空间的子集。例如,用户倾向于 与自动化助理120接合以使得执行一个或多个任务。即使在一般搜索 查询的环境中,用户也倾向于与自动化助理接合来执行特定类型的查 询,例如询问天气、交通、运输时间、餐厅营业时间等。
[0049]
因此,在一些实施方式中,自然语言理解引擎135例如通过自然 语言处理器122或意图匹配器136可以访问以特定语言训练以理解通 常在与自动化助理129的人机对话中使用的特定和有限词汇表的一个 或多个模型(例如,在数据库137中)。这些模型可以用特定语言训 练,例如使用翻译成特定语言的自然语言输入的日志,以确定用户特 定语言的意图。这对于尚未完全支持的语言(即,尚未提供全面翻译 的语言)尤其有用。例如,可以从日志中获得广泛支持的语言例如英 语的常见查询(例如,订购食物、检查天气、设置计时器等)并且将 其(例如,由翻译器138自动地,由语言学家/翻译者手动地)翻译成 不太广泛支持的第二语言。这些翻译的公共查询可以与它们的匹配意 图一起用作训练示例,以训练用于不太广泛支持的第二语言的模型。
[0050]
例如,英语查询可以例如使用翻译器138和/或人类语言学家/翻译 者翻译成不太广泛支持的语言。翻译可以用作训练示例,用相应的意 图(其也可以被翻译成不太广泛支持的语言)标记,以训练模型。如 果模型是神经网络的某种风格,则标记的训练示例可以作为跨神经网 络的输入应用以生成输出。可以将输出与相应的标签进行比较以生成 错误。基于该错误,可以采用各种训练技术,例如梯度下降(随机或 批量)和反向传播来调整神经网络的一个或多个隐藏层的权重。
[0051]
在一些实施方式中,可以将以较不广泛支持的语言的先前未见过 的查询应用为跨模型的输入以生成输出。在一些这样的实施方式中, 输出可以采用嵌入到与语言相关联的降维空间的形式。基于它们与降 维空间中的其他嵌入的接近度(例如,欧几里德距离、余弦相似性等), 可以将意图与这些先前未见过的查询匹配。如果提供先前未见过的查 询的用户拒绝最终结果,则用户的查询可以用作消极训练示例以进一 步训练模型。如果提供新查询的用户提供积极反馈(或者没有反馈, 其可以指示用户满意),则用户的查询可以用作积极训练示例以进一 步训练模型。以这种方式,自动化助理120可以“学习”如何以新语 言预测意图。
[0052]
履行引擎124可以被配置成接收由意图匹配器136输出的意图以 及相关联的槽值(无论是由用户主动提供还是从用户请求)并履行意 图。在各种实施方式中,用户意图的履行可以使得例如由履行引擎124 生成/获得各种履行信息(在某些情况下可以是语言不可知的)。如下 所述,在某些实施方式中,履行信息可以被提供给自然语言生成器(在 一些图中的“nlg”)126,其可以基于履行信息生成自然语言输出。
[0053]
履行信息可以采用各种形式,因为可以以各种方式实现意图。假 设用户请求纯信息,例如“where were the outdoor shots of

the shining
’ꢀ
filmed?(拍摄

the shining’的室外镜头在哪里?)”可以例如由意图匹 配器136将用户的意图确定为搜索查询。搜索查询的意图和内容可以 被提供给履行引擎124,其如图1所示可以与被配置成针对响应信息搜 索文档和/或其他数据源(例如知识图等)的语料库的一个或多个搜索 引擎150通信。履行引擎124可以向搜索引擎150提供指示搜索查询 的数据(例如,查询的文本、降维嵌入等)。搜索引擎150可以提供 响应信息,例如gps坐标,或其他更明确的信息,例如“timberline lodge, mt.hood,oregon”。该响应信息可以形成履行引擎124生成的履行信 息的一部分。
[0054]
附加地或替选地,履行引擎124可以被配置成例如从自然语言理 解引擎135接收用户的意图和由用户提供的或者使用其他手段(例如, 用户的gps坐标、用户偏好等)确定的任何槽值并触发响应动作。响 应动作可以包括例如订购商品/服务、启动计时器、设置提醒、发起电 话呼叫、播放媒体、发送消息等。在一些这样的实施方式中,履行信 息可以包括与履行、确认响应(在某些情况下可以从预定的回答中选 择)等关联的槽值。
[0055]
如上所述,自然语言生成器126可以被配置成基于从各种源获得 的数据生成和/或选择自然语言输出(例如,被设计为模仿人类语音的 说出的语言单词/短语)。在一些实施方式中,自然语言生成器126可 以被配置成接收与意图的履行相关联的履行信息作为输入,并且基于 履行信息生成自然语言输出。附加地或替选地,自然语言生成器126 可以从诸如第三方应用接收信息(例如,所需的槽)的其他源,其可 以用于为用户组成自然语言输出。
[0056]
如果用户的意图是搜索一般信息,则自然语言生成器126可以生 成自然语言输出,其响应于用户例如以句子形式而传达信息。在某些 情况下,可以例如由自然语言生成器126提取自然语言输出,从文档 不改变(例如,因为它已经是完整的句子形式)并按原样提供。附加 地或替选地,在一些实施方式中,响应内容可以不是完整的句子形式 (例如,对今天的天气的请求可以包括高温和降水概率作为独立数 据),在这种情况下,自然语言生成器126可以编写呈现响应内容的 一个或多个完整的句子或短语作为自然语言输出。
[0057]
与自然语言理解引擎135(例如,意图匹配器136)的情况一样, 自然语言生成器126可以在比用于一般目的沟通的更全面的语言空间 要小(例如,是其子集)的语言空间中操作。因此,并且与自然语言 理解引擎135的情况一样,在一些实施方式中,自然语言生成器126 可以访问一个或多个数据库127,其可以存储例如专门训练以在人机对 话场境中生成自然语言输出的一个或多个语言特定模型。训练这些简 化模型可能比训练全面模型的密集程度更低,因此可以促进针对语言 对自动化助理120的早期部署,该语言在尚未支持以特定语言的全面 自动翻译和/或一般能力。
[0058]
在一些实施方式中,可以利用以诸如英语的良好支持的语言的人 机对话期间获得的人机对话知识来训练特定于其他较少支持的语言的 模型。例如,可以将自然语言输出的语料库诸如短语、模板(下面更 详细地描述)等翻译(例如、由语言学家和/或翻译者手动)成第二语 言,然后用作训练数据以训练第二语言的自然语言生成模型,其可由 自然语言生成器126使用以便以第二语言生成自然语言输出。
[0059]
在一些实施方式中,训练数据的每个训练示例可以包括导致生成 特定的英语自然语言输出短语/句子的意图以及用户提供的插槽值(如 果有的话)作为输入(例如,作为输入向量)。训练示例可以用英语 自然语言输出短语/句子的翻译版本标记。可以跨自然语言生成模型(例 如,神经网络等)应用输入以生成输出,然后将该输出与标签进行比 较以确定错误。基于该错误,可以应用各种训练技术诸如反向传播、 梯度下降(随机或批量)等以调整自然语言生成模型的权重。
[0060]
一旦经过训练,就可以使用这样的自然语言生成模型以例如生成 随后确定的用户意图到降维空间(例如,与采用第二语言的潜在自然 语言输出相关联的嵌入空间)中的嵌入。嵌入与其他类似意图的嵌入 的接近度(例如,使用欧几里德距离、余弦相似度等确定)可以用于 识别响应于其他嵌入而使用的自然语言输出。然后,自然语言生成器 126可以使用相同或相似的自然语言输出。
[0061]
在一些实施方式中,自然语言生成器126可以依赖于本文中将被 称为“自然语言生成模板”(或“nlg模板”)的内容来生成自然语 言输出。在一些实施方式中,nlg模板可以存储在数据库127中。nlg 模板可以包括响应于来自各种源的各种信息诸如由履行引擎124生成 的履行信息中包括的数据片段来规定自然语言输出的公式的逻辑。在 某些方面,nlg模板实际上可以构成状态机,并且可以使用任何已知 的编程语言或其他建模语言(例如,统一建模语言、规范和描述语言 等)来创建。
[0062]
作为示例,英语nlg模板可以被配置成响应于针对天气信息的英 语语言请求。nlg模板可以指定在多种情况下提供多个候选自然语言 输出中的哪一个。例如,假设由履行引擎124生成的履行信息指示温 度将高于例如80华氏度并且将没有云。nlg模板中提出的逻辑(例如, if/else语句)可以规定由自然语言生成器126选择的自然语言输出是诸 如“it’s gonna be a scorcher,don’t forget your sunglasses.(将是一个大热 天,不要忘记你的太阳镜)”之类的短语。假设由履行引擎124生成 的履行信息指示温度将低于例如30华氏度并且将有雪。nlg模板中提 出的逻辑可以规定由自然语言生成器126选择的自然语言输出是诸如
ꢀ“
it’s gonna be chilly,you might want a hat and gloves,and be careful on the road.(将很冷,你可能想要帽子和手套,并且在路上小心)”的短 语。等等。
[0063]
在一些实施方式中,可以将一种良好支持的语言诸如英语中的 nlg模板翻译成另一种较少支持的语言。例如,语言学家和/或翻译者 可以用一种语言手动编辑nlg模板,以便将其中包含的自然语言输出 选项翻译成另一种语言。在一些实施方式中,可以提供设计应用,其 使计算设备呈现图形用户界面(“gui”)。gui可以包括以直观方式 呈现的nlg模板中包含的逻辑的图形表示,例如逻辑流程图(例如, 具有表示状态的节点和表示状态之间的转换的边)。在一些这样的实 施方式中,逻辑流程图的节点可以在适用的情况下包括可由语言学家 和/或翻译人员编辑的候选自然语言输出语句(有时用占位符替换依赖 于履行引擎124提供的履行信息和/或槽值的单词/短语)。这可能允许 缺乏广泛编程知识但接受翻译培训的人只翻译自然语言输出,而不必 处理基础逻辑。
[0064]
一些语言比其他语言更说话者/听者不可知,因此以这些语言的自 然语言输出在各种情况下可能相对一致。然而,其他语言包括规定如 何说出特定单词或短语的规则,例如基于性别的规则,基于形式的规 则等。因此,在一些实施方式中,为一个说话者/听者不可知的语言生 成nlg模板,当翻译成另一种不那么说话者/听者不可知的语言,可能 需要附加逻辑。例如,当将英语nlg模板翻译成西班牙语nlg模板 时,可能需要向翻译的nlg模板添加附加逻辑以考虑用户的性别和/ 或与自动化助理120使用的语音相关联的性别(例如,可以有从不同 的计算机生成的话音例如男性和女性的话音中选择的选项)。反之亦 然,在将nlg模板从西班牙语翻译成英语(或其他说话者/听者不可知 语言)时,可能有必要简化模板,以便去除不必要的性别选择逻辑(和 /或形式选择逻辑)。
[0065]
如背景技术中所述,自动化助理擅长以一些广泛使用的语言诸如 英语与用户沟通。这可能是出于各种原因,例如自动化助理是在英语 是最常用的语言的国家中开发的。但是,自动化助理可能不太善于与 其他语言的用户沟通。每种语言都具有无数的特性,这使得使自动化 助理120适应以这些语言的沟通变得困难,通常需要语言专家进行大 量的人为干预。此外,第三方应用开发人员可能缺乏使其系统适应以 多种语言沟通的资源。
[0066]
存在各种用于将一种语言的文本自动翻译成另一种语言的技术。 存在各种被配置成以第一语言接收输入并以第二语言提供输出的模 型。例如,许多web浏览器提供将web页面翻译成不同语言的功能。 另外,一些web服务被配备为以一种语言接收用户输入,并以用户选 择的另一种语言提供输出。
[0067]
因此,在各种实施方式中,可以例如作为基于云的自动化助理组 件119的一部分或单独地提供翻译器138,其可以被配置成在各种语言 之间翻译内容。在图1中,翻译器138可以访问一个或多个数据库139, 数据库139可以包括可用于从一种语言翻译到另一种语言的各种类型 的数据(例如,词典、经训练的翻译模型等)。例如,第一数据库可 以促进从第一语言到第二语言的翻译,反之亦然。第二数据库可以促 进从第一语言到第三语言的翻译,反之亦然。等等。
[0068]
在一些实施方式中,翻译器138可以实现统计机器翻译服务,该 服务将来自各种源语言的文本翻译成规范语言(例如,英语),然后 从规范语言翻译成目标语言。附加地或替选地,在一些实施方式中, 翻译器138可以实现神经机器翻译(“nmt”)引擎,其一次翻译整 个句子或短语,而不是单独的令牌,从而可以利用文本输入的整体场 境。
[0069]
在一些实施方式中,例如已经由翻译器138用于执行通用翻译的 传统神经机器翻译(“nmt”)模型可以被增强(即,经过特殊训练) 以更好地翻译和理解在人机对话会话期间
具体使用的语言。这种增强 的nmt模型在本文中将称为“自然语言理解

神经机器翻译”(“nlu

nmt”)模型。
[0070]
首先,可以从在用户和自动化助理120之间的人机对话期间生成 的查询/意图的日志中收集训练数据。例如,可以从日志中获得以良好 支持的语言(例如,英语)的随机样本查询以及以另一个不太良好支 持的语言(本例中为“语言l”)的随机查询样本。附加地或替选地, 还可以获得以英语和语言l做出的一些“顶部”查询(例如,最常见 的)。
[0071]
该数据可以例如由人类语言学家/翻译者手动翻译成英语和/或从 英语翻译以生成第一对集合<sentence

en,sentence

l>。该对集合将用作 nlu

nmt的训练数据。接下来,可以通过以下方式将更多训练数据添 加到nlu

nmt模型的训练数据:(i)从相同的自动化助理日志获得 相对大量的附加查询,以及(ii)例如由翻译器138对这些附加查询进 行机器翻译生成第二对集合<sentence

en,sentence

l>。第一和第二对集 合可以组合并用于重新训练(即增强)已经由翻译器138使用的现有 nmt模型,例如以生成nlu

nmt模型。此后,nlu

nmt模型可能 比单独的传统nmt模型在从语言l到英语翻译用户通常询问自动化助 理120的查询类型方面更好。
[0072]
使用第二语言(例如,英语)的查询作为收集训练数据的基础允 许提前准备nlu

nmt模型,甚至在开始以第一语言实现自动化助理 120之前。在一些实施方式中,当可获得以第二语言(例如,英语)的 日志时,可以通过提供以第二语言获取日志并经由人类翻译者并经由 机器翻译来翻译它们获得的新训练集,可以进一步重新训练nlu

nmt 模型。
[0073]
与用户在与自动化助理120接合时使用的语言的情况一样,由自 动化助理120生成的自然语言的类型是在通用人与人沟通期间使用的 语言的子空间。因此,在一些实施方式中,可以例如由自然语言生成 器126使用如上关于nlu

nmt模型描述的类似过程,以生成自然语 言输出。
[0074]
如上所述,一些传统的翻译器已经采用神经机器翻译(“nmt”) 模型来执行两种语言之间的通用翻译。因此,并且类似于先前描述的 nlu

nmt模型,传统的nmt模型可以用从在与用户的人机对话期间 由自动化助理120提供的自然语言输出的日志中收集的训练数据增强 (即,重新训练)以生成自然语言生成

神经翻译模型(“nlg

nmt”)。 例如,从日志获得的这些自然语言输出可以例如由语言学家/翻译者手 动翻译和/或由翻译器138自动翻译成<sentence

en,sentence

l>对,如 前所述。然后,这些对可以用于将已经由翻译器138使用的nmt模型 重新训练成nlg

nmt模型,该模型能够更好地翻译在人机对话会话 期间通常由自动化助理120使用的自然语言输出。
[0075]
在一些实施方式中,可以训练nlg

nmt模型以翻译经由一个或 多个nlg语言模板生成的语言输出。可以通过提供新的训练集来实现 再训练。在一些实施方式中,可以通过经由人类翻译者以更广泛支持 的语言诸如英语翻译最频繁生成的句子来获得训练集。在一些实施方 式中,可以通过例如经由翻译器138自动翻译nlg模板的大量算法生 成的示例实现来增强该集合。
[0076]
在各种实施方式中,可以训练nlg

nmt模型以更精确地翻译源 自各种其他来源的答案。例如,可以训练nlg

nmt模型以更精确地 训练对从web文档获得的一般查询的答案。特别地,可以以广泛支持 的语言(例如,英语)提供来自在线文档的对普通查询的最高答案的 手动翻译版本,作为用于重新训练nlg

nmt模型的附加训练集。作 为另一示例,在一些
实施方式中,可以训练nlg

nmt模型以翻译源 自“个性”数据库的答案。“个性”答案(可能包括口语)是创意作 者为回答特定类型的用户查询而编写的答案。可以由创意作者编写的 答案的示例可以包括例如本文其他地方描述的“it’s gonna be a scorcher (将是一个大热天)”示例。这些个性答案可以手动翻译,然后用作 nlg

nmt模型的另一个训练集。
[0077]
图2描绘了根据各种实施方式的可以使用多个管线处理用户的自 由形式输入(例如,说出或键入)的一个示例过程流。在框250处, 例如在客户端设备106的麦克风处接收自由形式输入(或“查询”)。 查询可以搜索信息(例如,“what’s the weather today(今天的天气是 什么?)”,“what’s the capitol of france?(法国的首都是什么?)”) 和/或发起一个或多个动作(例如,订购食物、播放音乐、创建提醒、 创建日历条目、向其他人发送消息、设置计时器等)。出于说明目的, 假设以用户的母语接收查询。对于该示例,还可以假设框250处的查 询已经被语音识别(例如,通过图1中的模块114和/117),使得查 询是文本形式的(尽管其他形式,例如用户话语的降维嵌入也是可能 的)。所接收的查询可以被提供给多个处理管线,每个管线被配置成 (i)识别用户的意图(以及履行意图所需的任何槽值),(ii)履行所 识别的意图,以及(iii)基于所识别的意图的履行生成自然语言输出。
[0078]
第一管线可以在框252处开始,此时,目标匹配器136可以尝试 以用户的母语(在图2中被称为“第一语言”)来确定用户的意图。 如上所述,在一些实施方式中,意图匹配器136可以使用一个或多个 训练机器学习模型(例如,神经网络)来将查询嵌入到降维空间中并 确定其与其他意图相关联的其他嵌入的接近度。附加地或替选地,意 图匹配器136可以利用一个或多个语法来确定用户的意图。
[0079]
在一些实施方式中,可以例如通过评分引擎140来对在框252处 确定的意图(其也可以被称为“第一语言意图”)进行评分,以确定 匹配意图真的是用户的意图的置信度度量。如果对用户的母语的支持 已经相对较强,则与匹配意图相关联的置信度度量可能相对较高。然 而,在用户的母语尚未得到良好支持的情况下,置信度度量可能相对 较低。在一些实施方式中,如果匹配的第一语言意图中的置信度度量 不满足某些准则(诸如预定阈值),则可以在其进一步行进之前放弃 第一管线的处理。在一些实施方式中,可以将与该匹配意图相关联的 置信度度量与针对使用其他管线确定的其他匹配意图(下面描述)确 定的置信度度量进行比较,并且可以使用最高置信度意图来履行用户 的请求。
[0080]
在框253处,可以例如由履行引擎124使用在框252处以用户的 母语识别的第一语言意图来履行用户的请求。在各种场景中,用户的 意图也可以用其他数据点来履行,例如用户提供的槽值和/或从各种其 他源获得的数据点。如前所述,用户意图的履行可以使履行引擎124 生成包括响应内容的履行信息。在一些实施方式中,这可以包括来自 用户的母语的各种文档的语料库(例如,由传统搜索引擎搜索的类似 语料库)的内容和/或来自向以用户语言的文档更重偏斜的更一般的语 料库的内容作为搜索结果。在一些实施方式中,这可以包括由用户控 制的内容,诸如来自用户的日历、提醒列表等的信息。附加地或替选 地,履行信息可以包括响应动作,诸如播放媒体、订购产品/服务等。
[0081]
在框254处,可以例如由自然语言生成器126使用履行信息来以 用户的母语生成第一自然语言输出候选。如前所述,在一些实施方式 中,这可以包括自然语言生成器126应用履行信息作为在以用户的母 语训练的机器学习模型上的输入,以生成用于制定第一自然语言输出 候选的输出。附加地或替选地,这可以包括实现包含在以用户的母语 的nlg模
板中的逻辑以生成自然语言输出。如下面将描述的,然后可 以将在框254处生成的自然语言输出提供给评分引擎140以在框264 处进行评分。
[0082]
在各种实施方式中,例如与由框252

254定义的管线并行,可以 实现一个或多个附加管线。例如,第二管线可以在框256开始,其中 用户的查询可以例如由翻译器138翻译成可以更完全支持的第二语言。 虽然在本文描述的示例中英语被指示为完全支持的语言,但这并不意 味着限制。在一些实施方式中,翻译器138可以使用先前描述的 nlu

nmt模型来执行框256的翻译。如上所述,将应用用户的查询作 为跨nlu

nmt模型的输入可以生成比已经用于通用翻译的传统nmt 模型生成的输出更可能准确预测用户的意图的输出。
[0083]
在框258处,用户的查询的翻译例如由意图匹配器136与以第二 语言的一个或多个意图(也称为“第二语言意图”)匹配。与框252 的情况一样,在各种实施方式中,可以例如由评分引擎140对在框258 处匹配的第二语言意图进行评分,以确定例如置信度度量。例如,可 以将该置信度度量与针对框252的匹配的第一语言意图确定的置信度 度量进行比较。在一些实施方式中,可以选择具有最高置信度度量(或 者具有足够高的置信度度量)的意图,并且只有与所选意图相关联的 管线可以继续处理。
[0084]
在框259,可以例如由履行引擎124履行在框258处匹配的第二 语言意图,以生成第二履行信息,类似于框253。在框260,在框259 处生成的履行信息可以例如由自然语言生成器126使用以便以第二语 言生成第二自然语言输出候选,类似于框254。在一些实施方式中,然 后可以例如由翻译器138翻译第二自然语言输出候选(其为第二语言), 在框262处返回到第一语言(即用户的母语),从而产生翻译的第二 自然语言输出候选。
[0085]
在各种实施方式中,在框254(以第一语言)生成的第一自然语 言输出候选和在框260(以第二语言)生成的、在框262已经被翻译回 第一语言的第二自然语言输出候选可以例如由评分引擎140来进行评 分。在各种实施方式中,可以选择具有最高分数的自然语言输出候选 (现在都是第一语言)以呈现给用户。在对自然语言输出候选进行评 分时可以使用各种准则。在一些实施方式中,可以至少部分地基于针 对产生自然语言输出的意图确定的置信度度量(框252和258)对自然 语言输出候选进行评分。附加地或替选地,在一些实施方式中,可以 基于翻译的质量(一些翻译模型被配置成对其各自的翻译进行评分) 对在框262处被翻译成第一语言的第二自然语言输出候选进行评分。
[0086]
在一些实施方式中,可以将另一(第三)管线建立为分别由框 252

254和256

262定义的第一和第二管线的“混合”。例如,在一些 实施方式中,在框258处以第二语言匹配用户的意图之后,可以在框 261处尝试以第一语言履行该匹配的意图,如标记为“混合(hybrid)
”ꢀ
的箭头所示。在框254,可以例如由自然语言生成器126使用在框261 处生成的履行信息来生成第三自然语言输出候选。在一些实施方式中, 可以在框264处将该第三自然语言输出候选与其他自然语言输出候选 一起评分。
[0087]
实现该管线系列(例如,层级)可以改善以已经支持的语言的自 动化助理120的质量。通过激活新管线,可以正确理解和执行更多查 询。此外,多个管线的使用在不牺牲其对用户查询的响应的质量的情 况下加速了自动化助理120的开发。在一些实施方式中,致力于以新 语言实现自动化助理120的语言学家可以编写语法,训练本地理解模 型,和/或为那些使用第二和第三管线不能开箱即用的查询提供语言模 板(256

262,或分别为256

>258

>261

>254)。
[0088]
图2中描绘的三个管线中的每一个可以特别擅长处理某些类型的 查询。第一管线252

254可以特别适合于处理简单和/或在人机对话场 境中通常遇到的查询。假设尚未完全支持塞尔维亚语的全面翻译,但 是塞尔维亚语的一些语法已经可用和/或已经例如使用翻译成塞尔维亚 语的英语查询/意图对的日志训练对意图匹配器136可用的机器学习模 型(例如,存储在数据库137中)以理解自动化助理对话框场境中常 见的基本查询。进一步假设塞尔维亚语用户说“zovi ivana”,其英文 意思是“call ivan(呼叫伊万)”。这种类型的查询是自动化助理120 能力的核心。因此,这个查询很容易使用第一管线252

254来处理。在 框264处指派给得到的自然语言输出候选的分数可能高于与从其他两 个管线产生的任何其他自然语言输出候选相关联的分数(如果其甚至 有时间完成的话)。
[0089]
第二管线256

262可能更适合于自然语言输出生成将被证明是最 复杂和/或困难的查询。例如,假设一名塞尔维亚语说话者发出命令,
ꢀ“
'koliko je brz najbrzi covek na svetu?”。在方框256,这个查询可以 被(例如,由翻译器138)从塞尔维亚语翻译成英语为“how fast is thefastest man in the world?(世界上最快的人有多快?)”在框258,该翻 译可用于确定get_information的意图,其中查询的词项形成一个 或多个参数/槽值。在框259,可以例如通过对相关文档执行标准互联 网搜索并从那些文档中提取所请求的信息来履行意图。在这个示例中, 英语的答案将会是“the data on usain bolt showed that he reached at topspeed of 12.27metres per second,which is 27.44miles per hour(usainbolt的数据显示他达到了每秒12.27米的最高速度,即每小时27.44英 里。)”因为这个陈述是信息性的并且相对冗长,所以在框260,自然 语言生成器126可以简单地逐字使用该语言作为自然语言输出。在框 262处,翻译器138可将该英语陈述翻译成塞尔维亚语,并且可在框 264处对塞尔维亚语翻译进行评分。
[0090]
第三混合管线256

>258

>261

>254可能更适合于生成相对简单的 意图和/或履行信息的查询。假设塞尔维亚语说话者发出查询“podesialarm za 9ujutru.”。在框256,该查询可以(例如由翻译器138)从塞 尔维亚语翻译成英语“set an alarm for 9in the morning(在早上9点设 置闹钟)”。在框258,该翻译可用于确定set_alarm的意图和第 二天9am的参数。一旦在框261处履行了该意图,自然语言生成器126 通常将例如从英语nlg模板生成自然语言输出“alright,alarm set for 9am(好的,闹钟设置为早上9点)”。然而,这样的nlg模板(并 且特别地,其中包含的输出候选)从英语翻译成塞尔维亚语可能相对 简单。因此,并且假设已经(例如,由语言学家和/或翻译者)生成nlg 模板的塞尔维亚语翻译,则可以在框254处例如由自然语言生成器126 使用该塞尔维亚语nlg模板来生成塞尔维亚语的输出。
[0091]
上面描述的和图2中描绘的管线可以以各种方式实现。在一些实 施方式中,可以例如在另一个管线的启动期间递归地启动一个或多个 管线。例如,可以首先启动第一管线252

254,然后其启动可以触发第 二管线(256

262)的启动。在一些这样的实施方式中,如果第一管线 在第二管线有机会完成之前返回具有足够高分的内容(例如,因为说 话者的语言得到良好支持),则对第一管线的调用可以简单地在对第 二管线的调用已经完成之前返回。
[0092]
当使用第二管线(256

262)时,可能希望保留用户查询的一些词 项不翻译(例如,以用户的母语保留它们)。对于用户以其母语提供 的槽值或参数尤其如此。图3a和3b描绘
了一个这样的示例。在图3a 中,用户101与采用交互式独立扬声器的形式的客户端设备306接合, 该交互式独立扬声器至少部分地操作自动化助理120的实例。用户101 用印地语说出话语“kol akash”,其在英语中应该被解释为呼叫一个 名叫“akash”的人。但是,“akash”听起来类似于印地语单词“aakaash”, 其在英语中翻译成“sky(天空)”。因此,存在这样的风险:当用户 的话语被语音识别然后被翻译时(在框256),它可以被翻译成“call sky (呼叫天空)”。这样的翻译不可能产生与用户101的真实意图相匹 配的意图。因此,在图3a中,至少部分在客户端设备306上操作的自 动化助理120响应“mujhe kshama karen,mujhe samajh nahin aa rahahai”,其翻译成“i’m sorry,i don’t understand(对不起,我不明白)”。
[0093]
然而,在一些实施方式中,可以例如由意图匹配器136和/或通过 其他基于云的自动化助理组件119在从用户的查询生成的语音识别输 出中识别槽值。在各种实施方式中,在图2的框256处发生的翻译可 以具体地排除该标识的槽值,例如使得在框258处识别出匹配意图时 保留它。因此,可以至少部分地基于第一语言的槽值在框258处识别 第二语言意图。例如,在图3b中,代替将“aakaash”翻译成“sky”, 可以(例如由自然语言处理器122)将翻译成“call”的词项“kol”识 别作为通常在槽值前面的词项,并用于确定下一个词项“akash”可能 是一个人的名字。因此,用户的查询的翻译将是“kol akash”而不是
ꢀ“
kol aakaash”,并且自动化助理120可以用“theek hai,ab aakrti kobulao”来响应,这意味着“ok,calling akash now(好的,现在呼叫 akash)”。
[0094]
作为另一个示例,假设用户用意大利语问“aggiungi latte alla listadella spesa”,其用英语翻译成“add milk to the shopping list(将牛奶 添加到购物清单)”。这里,用户希望看到“latte”这个词而不是“milk
”ꢀ
添加到购物清单中。因此,使用各种技术,例如由自然语言处理器122 应用的注释,或基于先前描述的nlu

nmt模型应用的注释,可以在 用户的原始意大利语查询中注释词项“latte”,使得用户的意图(例如, add_to_shopping_list)可以用用户意图的正确参数“latte”来履 行。
[0095]
作为又一示例,假设用户用印地语询问“dil se bajao”,其在英语 中直译成“play from the heart(从心脏播放)”。然而,用户可能实际 上想要自动化助理120来发起标题为“dil se”的印度语电影。在这个 示例中,可以例如通过上面提到的实体标签来将“dil se”注释为印度 电影。因此,“dil se”可以保留在印地语中,而用户查询的剩余部分 (bajao)可以被翻译成英语,使得自动化助理120将按照用户的意图 发起电影的回放。
[0096]
在一些实施方式中,如图2中所示实现多个处理管线可能在人机 对话中引入等待时间。例如,翻译器138的一些实施方式可以添加大 约几百毫秒的等待时间。因此,在各种实施方式中,可以采取各种缓 解动作来减少等待时间的影响。
[0097]
例如,假设第一管线(252

254)生成与高置信水平相关联的意图 和/或自然语言输出。这可能是用户提供查询所使用的语言得到良好支 持的情况,或者用户的查询恰好匹配以用户的支持良好的语言的几种 语法之一。因此,在第二管线(256

262)有时间完成之前,可以以用 户的语言生成自然语言输出。在这种情况下,一旦第一管线返回以用 户的语言的自然语言输出,就可以放弃第二管线的处理。
[0098]
作为另一示例,可以例如由翻译器138在索引139中以各种语言 缓存常见问题的查询(也称为“头部(long

tail)”查询,而不是不太 常见的“长尾(long

tail)”查询)的翻
译。作为又一示例,在一些实 施方式中,翻译器138使用的翻译模型可以比可以用于翻译整个文档 的全面翻译模型更简单。在一些实施方式中,简化的翻译模型可以针 对人机对话而定制,并且特别地可以针对在人机对话中经常遇到的语 法来定制。
[0099]
在一些实施方式中,可以仅当确定用户提供初始查询所使用的语 言未得到良好支持时才采用翻译(即第二管线256

262)。附加地或替 选地,在一些实施方式中,可以仅例如因为在框252处匹配的意图或 在框254处生成的自然语言输出候选具有低关联置信度度量当第一管 线(252

254)不成功之后,才采用翻译(即第二管线256

262)。
[0100]
在一些实施方式中,如果特定查询在第一管线(252

254)中成功, 则可以例如用“触发”位标记该查询,并且可以存储触发位(例如, 在数据库中)137)使得当稍后接收到相同语言的相同查询(或相同 语言的语法/语义相似的查询)时,可以检查触发的位。假设该位已设 置(意味着先前在第一管线中相同或类似的查询成功),则可以启动 第一管线的处理,并且可以不启动第二管线(或者可以仅在某些原因 第一管线失败时启动)。
[0101]
在一些实施方式中,可以通过构建机器学习分类器来扩展该想法, 该机器学习分类器将查询分类为例如在第一管线中可能成功或可能不 成功。例如,如果使用第一管线(252

254)处理的查询产生成功的结 果,则该查询可以用作分类器(例如,神经网络、支持向量机等)的 积极训练示例,以及与积极训练示例相关联的标签可以指示它是成功 的。类似地,在一些实施方式中,通过第一管线未成功处理的查询可 以用作否定训练示例。可以通过在模型中应用这些积极和/或消极训练 示例来训练诸如神经网络的模型以生成输出,确定输出和标签之间的 差异(或错误),以及执行各种学习技术,例如梯度下降(随机或批 量)和/或反向传播以调整模型的权重。此后,可以在训练模型上应用 新查询作为输入以生成输出,该输出指示例如使用第一管线是否可能 成功处理它们。如果答案是肯定的,那么可能不会启动第二管线。
[0102]
图4是示出根据本文中所公开的实施方式的示例方法400的流程 图。为方便起见,参考执行操作的系统来描述流程图的操作。该系统 可以包括各种计算机系统的各种组件,例如履行自动化助理120的计 算系统的一个或多个组件。此外,虽然方法400的操作以特定顺序示 出,但这并不意味着是限制性的。可以重新排序、省略或添加一个或 多个操作。
[0103]
在框402处,系统可以以第一语言例如用户的母语接收由用户在 客户端设备的输入组件处提供的话音输入。在框404处,系统例如通 过stt引擎117或语音捕获/tts/stt 114可以从话音输入生成语音 识别输出。在各种实施方式中,语音识别输出可以包括从语音生成的 文本数据,并且在许多情况下,语音识别输出也可以是第一语言。在 用户提供查询作为键入文本的其他实施方式中(例如,通过消息交换 客户端107),可以省略框402

404。
[0104]
在框406处,系统例如通过意图匹配器136可以基于在框404处 生成的语音识别输出来识别用户的第一语言意图。这可以对应于图2 中的框252,并且可以构成前面描述的第一管线的开始。例如,意图匹 配器136可以将语音识别输出与例如存储在数据库137中的第一语言 的一个或多个语法进行比较。即使对于在自动化助理生态系统中相对 不支持的语言,在数据库137中仍可能提供有至少一些基本语法。可 以以各种方式找到匹配,例如语音识别输出与一个或多个语法足够相 似(语义和/或语法上)。附加地或替选地,在一些实施方式中,系统 可使用一个或多个特定于域的经训练的机器学习模型来识别第一语言 意
图。
[0105]
在框408处,系统可以履行第一语言意图。这可以对应于图2中 的框253。例如,系统可以从至少部分地以第一语言编写的文档的语料 库中获得响应内容。附加地或替选地,系统可以识别响应于第一语言 意图的一个或多个动作(例如,匹配一个或多个语法的命令)。可以 基于框408的履行来生成第一履行信息。在框410,系统例如通过自然 语言生成器126可以基于在框408处生成的第一履行信息以第一语言 生成第一自然语言输出(图4中的“nlo”)候选。
[0106]
在框412处,系统可以将语音识别输出的至少一部分从第一语言 翻译成第二语言,以生成语音识别输出的至少部分翻译。这可以对应 于图2的框256,并且可以是先前描述的第二和第三管线的开始。因此, 在一些实施方式中,框406

410的操作和框412

420的操作可以并行操 作,和/或操作集可以递归地调用另一组。
[0107]
在框414处,系统可以基于该至少部分翻译来识别用户的第二语 言意图(例如,对应于图2的框258)。在框416处,系统可以履行第 二语言意图以生成第二履行信息,类似于图2的框259。此时,第二和 第三管线发散。在框418,第二管线继续,并且系统可以例如通过自然 语言生成器126以第二语言生成第二自然语言输出候选。在框419,可 以将第二自然语言输出候选翻译成第一语言。同时,在框420处,作 为第三管线的一部分,系统可以例如通过自然语言生成器126例如使 用如前所述的翻译的nlg模板或使用其他技术直接以第一语言生成第 三自然语言输出候选。
[0108]
在框422处,系统可以例如通过评分引擎140确定第一、第二和 第三自然语言输出候选的分数,如图2的框264所示。基于在框422 处确定的分数,在框424处,系统可以选择并使得自然语言输出被输 出给用户。例如,如果用户声音地提供了初始话语,则可以通过扬声 器可听地向用户提供自然语言输出。如果用户提供初始查询作为文本 输入(例如,使用消息交换客户端107),则可以在视觉上呈现自然语 言输出,例如作为消息交换客户端107中正在进行的转录的一部分。
[0109]
在所选内容是动作(例如,播放音乐、订购食物)的一些实施方 式中,所生成的自然语言候选可包括将执行动作的确认。如下面将更 详细描述的,在一些实施方式中,自然语言输出可以以第二语言生成, 然后被翻译成第一语言(例如,因为用户最初以第一语言讲话)。在 一些这样的实施方式中,可以确定翻译的自然语言输出是否满足一个 或多个准则,且如果不满足则可以生成、翻译替换自然语言输出并将 其提供给用户。
[0110]
当以第二语言生成自然语言输出然后翻译成第一语言供用户消费 时,可能的情况是,用第二语言生成的自然语言输出不易翻译,或者 翻译未能通过对翻译质量的一些测试。例如,在各种场景中(例如, 如nlg模板所指示的),有时可以用口语来代替更严格和/或正式的自 然语言输出,以使自动化助理120听起来或看起来更生活化。假设用 户询问今天天气,预报为85华氏度和晴天。在某些情况下,代替简单 地生成直接的自然语言输出来传达该信息,自动化助理120可以替代 地选择(例如,基于nlg模板)预定的口语短语,诸如“it’s gonna bea scorcher,don’t forget your sunglasses(将是一个大热天,不要忘记你 的太阳镜)”。但是,在使用自动化助理不完全支持的语言的用户的 场境下,这样的口语短语可能无法很好地翻译成用户的母语。
[0111]
因此,在一些实施方式中,例如当在框418处生成自然语言输出 时,可以采用各种
技术,以确保用户接收作为输出的内容在用户的母 语中是有意义的。图5描绘了可以实现为图2的第二管线256

262的一 部分的一种这样的技术500。
[0112]
在框520处,系统可以以第二语言生成自然语言输出,类似于图 2中的框260。在框522,系统例如通过翻译器138可以将自然语言输 出从第二语言(例如,英语或其他完全支持的语言)翻译成第一语言, 类似于图2的方框262。在方框524,系统可以确定与方框522的翻译 相关联的质量度量是否满足某些准则,例如最小阈值。如果答案为是, 则用户可能以第一语言理解翻译,因此,在框526,可以在用户的客户 端设备处呈现翻译的自然语言输出。
[0113]
然而,如果框524处的答案为否,则翻译可能质量差,并且用户 可能不容易理解它(或者它可能看起来笨拙或有错误)。在这种情况 下,在框528,系统可以用替选自然语言输出替换在框520处以第二语 言生成的自然语言输出。这种替选自然语言输出可以更正式、通用、 缺乏口语、或者以其它方式可以被选择为更容易地从第二语言翻译成 用户使用的第一语言。在框530处,系统例如通过翻译器138可以翻 译并使得替选自然语言输出被呈现在用户的客户端设备处。
[0114]
图6是可选地用于执行本文描述的技术的一个或多个方面的示例 计算设备610的框图。在一些实施方式中,客户端计算设备、用户控 制的资源引擎130和/或其他组件中的一个或多个可以包括示例计算设 备610的一个或多个组件。
[0115]
计算设备610通常包括至少一个处理器614,其经由总线子系统 612与多个外围设备通信。这些外围设备可以包括存储子系统624,包 括例如存储器子系统625和文件存储子系统626、用户接口输出设备 620、用户接口输入设备622和网络接口子系统616。输入和输出设备 允许用户与计算设备610交互。网络接口子系统616提供到外部网络 的接口并且耦合到其他计算设备中的相应接口设备。
[0116]
用户接口输入设备622可以包括键盘,诸如鼠标、轨迹球、触摸 板或图形输入板的指示设备、扫描仪、结合到显示器中的触摸屏、诸 如语音识别系统的音频输入设备、麦克风和/或其他类型的输入设备。 通常,术语“输入设备”的使用旨在包括所有可能类型的设备和将信 息输入计算设备610或通信网络的方式。
[0117]
用户接口输出设备620可以包括显示子系统、打印机、传真机或 诸如音频输出设备的非可视显示器。显示子系统可包括阴极射线管 (crt)、诸如液晶显示器(lcd)的平板装置、投影装置或用于产生 可见图像的一些其他机构。显示子系统还可以提供非可视显示,例如 经由音频输出设备。通常,术语“输出设备”的使用旨在包括将信息 从计算设备610输出到用户或另一机器或计算设备的所有可能类型的 设备及方式。
[0118]
存储子系统624存储提供本文描述的一些或所有模块的功能的编 程和数据构造。例如,存储子系统624可以包括执行图4和图5的方 法的所选方面以及实现图1中描绘的各种组件的逻辑。
[0119]
这些软件模块通常由处理器614单独执行或与其他处理器组合执 行。存储子系统624中使用的存储器625可以包括多个存储器,包括 用于在程序执行期间存储指令和数据的主随机存取存储器(ram)630 和存储固定指令的只读存储器(rom)632。文件存储子系统626可以 为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱 动器以及相关联的可移动介质、cd

rom驱动器、光盘驱动器或可移 动介质盒。实现某些实施方式的功
能的模块可以由文件存储子系统626 存储在存储子系统624中,或者存储在处理器614可访问的其他机器 中。
[0120]
总线子系统612提供用于使计算设备610的各种组件和子系统按 预期彼此通信的机制。尽管总线子系统612被示意性地示为单个总线, 但是总线子系统的替代实施方式可以使用多个总线。
[0121]
计算设备610可以是各种类型,包括工作站、服务器、计算集群、 刀片服务器、服务器群、或任何其他数据处理系统或计算设备。由于 计算机和网络的不断变化的性质,图6中描绘的计算设备610的描述 仅旨在作为用于说明一些实施方式的目的的特定示例。计算设备610 的许多其他配置可能具有比图6中描绘的计算设备更多或更少的组件。
[0122]
虽然本文已经描述和说明了若干实施方式,但是可以利用用于执 行功能和/或获得结果和/或本文描述的一个或多个优点的各种其他手 段和/或结构,并且每个这些变化和/或修改被认为是在本文描述的实施 方式的范围内。更一般地,本文描述的所有参数、尺寸、材料和配置 旨在是示例性的,并且实际参数、尺寸、材料和/或配置将取决于使用 该教导的特定应用或多个应用。本领域技术人员将认识到或能够使用 不超过常规的实验确定本文所述具体实施方式的许多等同物。因此, 应该理解,前述实施方式仅作为示例呈现,并且在所附权利要求及其 等同物的范围内,可以以不同于具体描述和要求保护的方式实施实施 方式。本公开的实施方式涉及本文描述的每个单独的特征、系统、物 品、材料、套件和/或方法。此外,如果这些特征、系统、物品、材料、 套件和/或方法不相互矛盾,则两个或更多个这样的特征、系统、物品、 材料、套件和/或方法的任何组合被包括在本公开的范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1