用于自然语言处理的多因素建模的制作方法

用于自然语言处理的多因素建模
1.优先权要求
2.本技术要求于2022年1月18日提交的美国非临时专利申请号17/578,170的权益和优先权,该美国非临时专利申请要求于2021年1月20日提交的美国临时专利申请号63/139,693的权益和优先权,这两个美国专利申请出于所有目的通过引用以其全文并入本文。
技术领域
3.本公开总体上涉及聊天机器人系统,并且更具体地涉及用于自然语言处理中聊天机器人系统的多因素模型训练。
背景技术:
4.即时消息传递功能和自动聊天平台是对现代客户服务问题的高效解决方案。组织可以利用这些做法为其客户提供及时且响应迅速的服务,而无需为单个用户的询问投入宝贵的人力资本。现代自动聊天平台可以利用父“聊天机器人”来处置客户服务请求。父聊天机器人可以与多个子聊天机器人进行协调,这些子聊天机器人被委派了更专门的任务。然而,选择应当委派任务的正确聊天机器人是一个困难且可能成本高昂的决定。某些聊天机器人被设计为仅处置特定范围的询问,而某些聊天机器人处置一项专门任务的效率可能远低于其他聊天机器人。未能选择最高效的聊天机器人来回答客户询问可能会导致性能下降、资源利用效率低下以及令客户群感到沮丧。
5.例如,一些聊天机器人可以包括多种“技能”分类,这些“技能”分类将帮助聊天机器人处理和回应(respond)查询。这些查询可以采用基于自然语言的格式的“话语”形式,这种形式模拟了文本会话或请求。对话语进行处理以确定聊天机器人应该用来解析话语并回应查询的最有可能的技能。例如,为聊天机器人选择“order pizza(订购披萨)”技能分类来回应“please order me a pizza(请为我订披萨)”的自然语言查询。
6.客户询问的上下文、节奏(cadence)、拼写、语气(tone)和/或设置的微小差异可能会导致为特定任务选择错误的聊天机器人/技能。当组织每天执行数百或数千个自动询问回应时,在选择聊天机器人时的错误可能会迅速加剧。选择聊天机器人的简单方法(比如,将单词一对一映射到特定聊天机器人)可能无法考虑适当的上下文分析,也不考虑会话的复杂性。
7.为了帮助选择技能,聊天机器人可以采用机器学习模型来处理话语并输出最有可能的技能来回应话语。可以基于对提供给组织的询问进行上下文和词典分析来选择用于帮助回答询问的技能。因此,使用单因素选择机器学习技术来训练聊天机器人,以在给定输入话语的情况下选择技能。单因素模型将输入直接映射到期望输出,例如将接收到的话语映射到用于处理该话语的预测技能。虽然单因素机器学习技术在根据输入话语预测技能方面更省时,但这种单因素模型无法考虑话语的重要上下文、节奏、拼写、语气或意图。例如,话语“i ordered a pizza and it didn’t arrive(我订了一份披萨,但没有送到)”本来是针对客户服务聊天机器人技能的,但可能会基于部分短语“ordered a pizza(订了一份披
萨)”而被定向到披萨订购聊天机器人技能。因此,使用不那么依赖上下文的方法(比如直接技能选择)训练机器学习模型并不能提供高效聊天机器人模型所需的适当水平的上下文学习。因此,用于直接确定适当技能分类来解析话语的标准机器学习技术通常是不够的。
技术实现要素:
8.公开了用于训练和利用聊天机器人系统进行自然语言处理的多因素建模的技术。
9.在一个实施例中,一种计算机实施的方法包括:由计算设备接收与可由聊天机器人解释的基于自然语言的查询相对应的一组话语数据;由所述计算设备为所述聊天机器人确定一个或多个意图,其中,所述一个或多个意图中的每一个对应于所述基于自然语言的查询的可能上下文并且与所述聊天机器人的一个或多个技能中的一技能相关联;由所述计算机设备使用意图分类器模型基于所述一个或多个意图来生成一个或多个意图分类数据集,其中,每个意图分类数据集与所述自然语言查询对应于所述一个或多个意图中的一意图的概率相关联;由所述计算设备使用变换掩码模型基于所述一个或多个意图分类数据集生成一个或多个变换后的数据集,其中,所述一个或多个变换后的数据集中的每一个对应于一个或多个技能中的一技能;由所述计算设备基于所述一个或多个变换后的数据集来确定所述一个或多个技能中的第一技能;以及基于所确定的第一技能来处理该组话语数据以解析所述基于自然语言的查询。
10.在一个实施例中,该组话语数据是从与同所述计算机设备通信的自动数字助理交互的客户端设备接收的。
11.在一个实施例中,所述变换掩码模型包括一个或多个变换值,每个变换值对应于至少一个意图与至少一个技能的比率。在进一步的实施例中,该组话语数据至少包括所述一个或多个技能的基本事实(ground-truth)技能的指示,并且所述方法进一步包括由所述计算设备将所述基本事实技能与所述第一技能进行比较以生成一个或多个训练损失值;以及由所述计算设备基于所述训练损失值来更改所述一个或多个变换值。
12.在一个实施例中,所述意图分类器模型是被配置为接收该组话语数据作为输入并输出所述一个或多个意图分类数据集的机器学习模型,该组话语数据至少包括所述一个或多个技能的基本事实技能的指示,并且所述方法进一步包括由所述计算设备将所述基本事实技能与所述第一技能进行比较以生成一个或多个训练损失值;以及由所述计算设备通过基于所述训练损失值更改所述机器学习模型的结构来使用所述一个或多个训练损失值训练所述机器学习模型。
13.在一个实施例中,所述方法进一步包括由所述计算设备使用技能分类器模型生成第二技能数据,其中,所述技能分类器模型是被配置为接收该组话语数据作为输入并输出所述一个或多个技能中的预测技能的机器学习模型;由所述计算设备比较所述第一技能和所述第二技能以生成一个或多个训练损失值,所述一个或多个训练损失值对应于所述第一技能与所述第二技能之间的一个或多个差异;以及由所述计算设备通过基于所述训练损失值更改所述机器学习模型的结构来使用所述一个或多个训练损失值训练所述机器学习模型。
14.在一个实施例中,所述方法进一步包括基于所确定的第一技能处理该组话语数据以生成对所述基于自然语言的查询的基于自然语言的回应;以及将所述基于自然语言的回
应发送到客户端设备。
15.在一个实施例中,所述方法进一步包括由所述计算设备处理所述话语数据以生成呈用于输入到所述意图分类器模型的格式的细化话语数据,所述细化话语数据被输入到所述意图分类器模型中以导致生成所述一个或多个意图分类数据集。
16.在一个实施例中,所述一个或多个变换后的数据集中的每个变换后的数据集包括与所述话语数据对应于所述一个或多个技能中的一技能的可能性相对应的概率值,并且确定所述第一技能包括选择与具有一个或多个概率值的集合中的最高概率值的变换后的数据集相对应的技能。
17.在一个实施例中,所述第一技能包括基于与所述意图分类数据集相关联的概率值为每个技能生成一个或多个平均概率值,并选择与所述一个或多个平均概率值中的最高平均概率值相关联的技能。
18.本公开的一些实施例包括一种计算机程序产品,所述计算机程序产品有形地体现在非暂态机器可读存储介质中并且包括被配置为使一个或多个数据处理器执行本文所公开的一种或多种方法的部分或全部的指令。
19.本公开的一些实施例包括一种系统,所述系统包括一个或多个数据处理器。在一些实施例中,所述系统包括包含指令的非暂态计算机可读存储介质,所述指令当在所述一个或多个数据处理器上执行时使所述一个或多个数据处理器执行本文所公开的一种或多种方法的部分或全部和/或一个或多个过程的部分或全部。
20.以多种方式并且在多种上下文中实施了上文和下文所描述的技术。如下文更详细地描述的,参考以下附图提供了几种示例实施方式和上下文。然而,以下实施方式和上下文仅是许多实施方式和上下文中的一些。
附图说明
21.图1是并入了示例性实施例的分布式环境的简化框图。
22.图2是根据某些实施例的父机器人(mb)系统的简化框图。
23.图3是根据某些实施例的技能机器人系统的简化框图。
24.图4是根据某些实施例的实施话语数据处理系统的计算系统的简化框图。
25.图5是根据某些实施例的实施变换模型的计算系统的简化框图。
26.图6a是根据某些实施例的实施变换模型的计算系统的简化框图。
27.图6b是根据某些实施例的实施变换模型的计算系统的简化框图。
28.图7a是根据某些实施例的被配置为人工神经网络的意图分类器的简化框图。
29.图7b是根据某些实施例的被配置为人工神经网络的技能分类器的简化框图。
30.图8图示了根据各种实施例的用于使用变换模型来选择上下文分类以回应话语的处理流程。
31.图9是根据某些实施例的根据意图分类技术对技能机器人的示例选择的简化框图。
32.图10描绘了用于实施各种实施例的分布式系统的简化图。
33.图11是根据各种实施例的系统环境的一个或多个部件的简化框图,通过所述系统环境,由实施例系统的一个或多个部件提供的服务被作为云服务来提供。
34.图12图示了用于实施各种实施例的示例计算机系统。
具体实施方式
35.在以下描述中,出于解释的目的,阐述了具体细节以便提供对某些实施例的透彻理解。然而,将显而易见的是,能够在没有这些具体细节的情况下实践各个实施例。附图和描述不旨在是限制性的。词语“示例性”在本文中用来意指“用作示例、实例或说明”。在本文中被描述为“示例性”的任何实施例或设计不必被解释为比其他实施例或设计更优选或有利。
36.聊天机器人的某些技能被设计为仅处理和回应特定范围的话语,而某些技能可能只能解析其他技能无法解析的专门任务。例如,虽然聊天机器人的一些技能可能与有些相似的任务(例如,操作披萨店的自动化系统)相关,但每个任务都适合处理和回应特定类型的话语(例如,开始新的披萨订单、修改现有订单、提供客户支持、提供与交易和营业时间相关的信息等)。未能选择最高效的技能来回答客户询问可能会导致性能下降、资源利用效率低下以及令客户群感到沮丧。
37.如上所述,自然语言的固有元素(比如客户询问的上下文、节奏、拼写、语气和/或设置)可能会导致为特定任务选择错误的聊天机器人/技能。为了帮助选择最有可能的技能,聊天机器人可以采用机器学习模型来处理话语并输出最有可能的技能来回应话语。可以基于对提供给数字助理的询问进行上下文和词典分析来选择用于帮助回答询问的技能。例如,话语被发送到“技能分类器”以使用机器学习技术对话语进行语法分析(parse)以确定用于解析话语的特定技能。用于选择技能的单因素建模技术将输入(比如自然语言话语)直接映射到用于解析话语的预测技能。单因素建模是一种有用的技术,因为它可以允许快速预测技能,这在使用自动数字助理回应客户时是优选的。然而,基于话语处理来选择技能的单因素机器学习技术可能无法考虑话语的重要上下文、节奏、拼写、语气或意图。例如,话语“i ordered a pizza and it didn’t arrive(我订了一份披萨,但没有送到)”本来是针对客户服务聊天机器人的,但可能会基于短语“ordered a pizza(订了一份披萨)”而被定向到披萨订购聊天机器人。
38.训练聊天机器人模型以基于话语到可能技能的直接映射来选择技能可能不足以训练聊天机器人模型来足够有效地处理话语的上下文和节奏以便足够准确地选择技能。基于单因素技能的选择的不足在聊天机器人系统的训练阶段和预测阶段都很明显。例如,对聊天机器人系统的机器学习模型进行训练以直接根据输入话语来选择和确定技能以回应话语会缺乏足够的上下文细节来构建适当的分类模型。然后,使用单因素建模的训练不佳的聊天机器人可能会在与真实客户端/客户交互时继续选择不适当的技能来解析话语。
39.本文描述的是用于自然语言处理的多因素建模的技术,以训练和部署聊天机器人/技能来处理和回应基于自然语言的查询。多因素建模技术能够改进对输入数据(比如话语数据)的训练和处理,以更好地预测用于处理话语的技能并训练用于处理话语的技能分类器模型。多因素模型还可以被训练以提供更准确的输出数据来训练单因素模型(比如技能分类器),或者处理上下文复杂的话语以回应客户/客户端询问。
40.本文描述的多因素建模技术利用聊天机器人系统的结构化分类层次结构,包括针对每个聊天机器人的一组技能以及针对每个技能的一组意图。下文(包括参考图1至图3)描
述了技能和意图。多因素机器学习模型被用于处理自然语言查询,以输出代表话语意图分类的中间上下文数据集。然后可以利用中间意图分类来确定用于处理话语的技能或者进一步改进对聊天机器人系统的技能分类的训练。因此,多因素建模技术允许引入根据上下文确定的意图数据,以将其作为考虑因素纳入对用于处理话语的聊天机器人技能的最终选择中。在选择用于处理话语的最终技能之前,还可以将各种变换应用于中间意图分类。例如,将变换“掩码”应用于中间意图分类数据以将意图分类映射到对应的技能分类。因此,与单因素建模技术(比如根据话语进行直接技能预测)相比,由多因素建模技术生成的技能分类将包括对原始话语的更多上下文相关的处理。
41.本文描述的技术进一步改进了对可以被部署用于与客户交互的单因素模型的训练和优化。如上所述,仅单因素模型不足以处理自然语言中的低粒度上下文语音和节奏。尝试使用基本的监督机器学习技术来细化这些单因素模型可以在一定程度上提高单因素模型预测技能的准确度,但无法实现基于上下文的训练。使用多因素模型根据一组话语数据来选择上下文更准确的技能并将根据上下文预测的技能与单因素模型预测的技能进行比较将产生用于再训练单因素模型的基于上下文的损失数据,这是仅凭监督学习无法做到的。因此,多因素建模不仅能够在处理自然语言查询时产生更准确的预测,还能够对省时的单因素模型进行训练以在给定一组输入话语数据的情况下更好地预测技能。
42.如本文所述,“话语数据”可以包括与由客户或客户端提供的用于由自动聊天机器人系统解析的基于自然语言的查询相关的数据。例如,话语可以包括基于自然语言的查询“i would like to order a pizza(我想订一份披萨)”。
43.如本文所述,“上下文分类”是与用于由聊天机器人解析话语的回应类别和/或子例程相关的聊天机器人“技能”。上下文技能分类可以包括用于处理和回应基于自然语言的格式的话语的指令、配置或其他功能。例如,聊天机器人可以包括如“披萨订购技能”等技能。每个聊天机器人可以包括多于一个用于解析和回应话语的“技能”。
44.如本文所述,“上下文子类”是与用于由聊天机器人并通过特定技能解析话语的回应子类别和/或子例程相关的聊天机器人“意图”。上下文意图分类可以包括用于根据意图所属的技能来处理和回应基于自然语言的格式的话语的指令、配置或其他功能。例如,聊天机器人可以包括如“披萨订购技能”等技能,并且该技能可以进一步包括如“place new order from customer(客户下了新订单)”等意图。每个技能可以包括/对应于多于一个用于解析和回应话语的“意图”,并且每个意图可以对应于不同的子任务/上下文。
45.如本文所述,“变换模型”是表示聊天机器人模型的一个或多个意图与一个或多个技能之间的对应关系的一组变换数据。例如,变换模型是一组动态训练的映射数据,用于将由机器学习模型输出的意图得分值的“上下文数据集”对应于技能得分的“变换后”数据集,以选择回应基于自然语言的查询的技能。映射数据可以采用矩阵的形式,其中矩阵的行和列分别对应于技能和意图,反之亦然。
46.示例聊天机器人系统
47.机器人(也称为技能、聊天机器人、交谈机器人或谈话机器人)是可以执行与最终用户的会话的计算机程序。机器人通常可以通过使用自然语言消息的消息传递应用程序对自然语言消息(例如,问题或评论)作出回应。企业可以使用一个或多个机器人系统通过消息传递应用程序与最终用户交流。消息传递应用程序(被称为通道)是最终用户已经安装并
且熟悉的最终用户优选的消息传递应用程序。因此,为了与机器人系统聊天,最终用户不需要下载并安装新的应用程序。消息传递应用程序可以包括例如过顶(ott)消息传递通道(如facebook messenger、facebook whatsapp、微信、line、kik、telegram、talk、skype、slack或sms)、虚拟私人助理(如amazon dot、echo或show、google home、apple homepod等)、本地或混合扩展的移动和web应用程序扩展/具有聊天功能的响应式移动应用程序或web应用程序、或基于声音的输入(如具有使用siri、微软小娜(cortana)、谷歌之音(google voice)或用于交互的其他语音输入的设备或应用程序)。
48.在一些示例中,机器人系统与统一资源标识符(uri)相关联。uri可以使用一串字符标识机器人系统。uri用作一个或多个消息传递应用程序系统的网络钩子(webhook)。uri可以包括例如统一资源定位符(url)或统一资源名称(urn)。机器人系统被设计成从消息传递应用程序系统接收消息(例如,超文本传送协议(http)post调用消息)。http post调用消息涉及来自消息传递应用程序系统的uri。在一些实施例中,该消息不同于http post调用消息。例如,机器人系统可以从短消息服务(sms)接收消息。虽然本文的讨论可以将机器人系统接收到的通信称作消息,但是应理解,该消息是http post调用消息、sms消息或两个系统之间的任何其他类型的通信。
49.最终用户可以通过会话式交互(有时称为会话式用户接口(ui))与机器人系统交互,正如人之间的交互那样。在一些情况下,交互可以包括最终用户对机器人说“hello(你好)”以及机器人用“hi(嗨)”回应并询问最终用户机器人可以如何提供帮助。在一些情况下,交互还可以是与例如银行业务机器人的交易式交互,如将钱从一个账户转移到另一个账户;与例如hr机器人的信息式交互,如查询假期结余;或与例如零售机器人的交互,如讨论退回已购商品或寻求技术支持。
50.在一些实施例中,机器人系统可以在没有与机器人系统的管理员或开发人员交互的情况下智能地处置最终用户交互。例如,最终用户可以向机器人系统发送一个或多个消息以便实现期望的目标。消息可以包括某种内容,如文本、表情符号、音频、图像、视频或传达消息的其他方法。在一些实施例中,机器人系统可以将内容转换成标准化形式(例如,利用适当的参数针对企业服务的表述性状态转移(rest)调用)并且生成自然语言回应。机器人系统还可以提示最终用户输入另外的输入参数或请求其他另外的信息。在一些实施例中,机器人系统还可以发起与最终用户的交流,而不是被动地回应最终用户话语。本文所描述的是用于识别机器人系统的显式调用并确定被调用的机器人系统的输入的各种技术。在某些实施例中,显式调用分析是由父机器人基于检测到话语中的调用名称而执行的。响应于检测到调用名称,对话语进行细化以供输入到与调用名称相关联的技能机器人。
51.与机器人的会话可以遵循包括多个状态的特定会话流。所述流可以基于输入来定义接下来会发生什么。在一些实施例中,使用包括用户定义的状态(例如,最终用户意图)和在状态中或状态之间要采取的动作的状态机来实施机器人系统。会话可以基于最终用户输入来采用不同的路径,这可能会影响机器人针对所述流作出的决定。例如,在每个状态下,基于最终用户输入或话语,机器人可以确定最终用户的意图以便确定要采取的下一个适当动作。如本文所使用的且在话语的上下文中,术语“意图”是指提供话语的用户的意图。例如,用户可以打算让机器人参与用于订购披萨的会话,使得用户的意图可以通过话语“order pizza(订购披萨)”来表示。用户意图可以涉及用户希望聊天机器人代表用户执行
的特定任务。因此,话语可以表达为反映用户的意图的问题、命令、请求等。意图可以包括最终用户想要完成的目标。
52.在聊天机器人的配置的上下文中,本文所使用的术语“意图”是指用于将用户的话语映射到聊天机器人可以执行的特定的任务/动作或任务/动作的类别的配置信息。为了区分话语的意图(即,用户意图)与聊天机器人的意图,本文中有时将后者称为“机器人意图”。机器人意图可以包括与意图相关联的一组一个或多个话语。例如,订购披萨的意图可以具有表达下订单购买披萨的期望的话语的各种排列。这些相关联的话语可以用于训练聊天机器人的意图分类器以使意图分类器能够随后确定来自用户的输入话语是否与订购披萨意图相匹配。机器人意图与用于启动与用户在某个状态中的会话的一个或多个对话流相关联。例如,针对订购披萨意图的第一消息可以是问题“what kind of pizza would you like?(你想要哪种披萨?)”。除了相关联的话语之外,机器人意图可以进一步包括与意图有关的命名实体。例如,订购披萨意图可以包括用于执行订购披萨的任务的变量或参数,例如馅料1、馅料2、披萨类型、披萨大小、披萨数量等。实体的值通常是通过与用户交谈获得的。
53.图1是并入了根据某些实施例的聊天机器人系统的环境100的简化框图。环境100包括数字助理构建器平台(dabp)102,所述dabp使得dabp 102的用户能够创建并部署数字助理或聊天机器人系统。dabp 102可以用于创建一个或多个数字助理(或da)或聊天机器人系统。例如,如图1所示,表示特定企业的用户104可以使用dabp 102来创建并部署用于特定企业的用户的数字助理106。例如,dabp 102可以被银行用来创建供银行的客户使用的一个或多个数字助理。多个企业可以使用同一个dabp 102平台来创建数字助理。作为另一示例,餐馆(例如,披萨店)的所有者可以使用dabp 102来创建并部署使餐馆的客户能够订购食物(例如,订购披萨)的数字助理。
54.出于本公开的目的,“数字助理”是通过自然语言会话帮助数字助理的用户完成各种任务的实体。可以仅使用软件(例如,数字助理是使用可由一个或多个处理器执行的程序、代码或指令实施的数字实体)、使用硬件、或使用硬件和软件的组合来实施数字助理。数字助理可以在如计算机、移动电话、手表、器具、车辆等各种物理系统或设备中体现或实施。数字助理有时也称为聊天机器人系统。因此,出于本公开的目的,术语“数字助理”和“聊天机器人系统”是可互换的。
55.数字助理(如使用dabp 102构建的数字助理106)可以用于经由数字助理与其用户108之间基于自然语言的会话来执行各种任务。作为会话的一部分,用户可以向数字助理106提供一个或多个用户输入110并从数字助理106获得返回的回应112。会话可以包括输入110和回应112中的一个或多个。经由这些会话,用户可以请求由数字助理执行一个或多个任务,并且作为回应,数字助理被配置为执行用户请求的任务并以适当的回应来回应用户。
56.用户输入110通常呈自然语言的形式并且被称为话语。用户话语110可以是文本形式,如当用户键入句子、问题、文本片段或甚至单个单词并将文本作为输入提供给数字助理106时。在一些实施例中,用户话语110可以是音频输入或语音的形式,如当用户讲出或说出某些内容作为输入提供给数字助理106时。话语通常呈用户108说出的语言的形式。例如,话语是英语或某种其他语言。当话语呈语音形式时,将语音输入转换成该特定语言的文本形式的话语,并且然后由数字助理106来处理文本话语。使用各种语音到文本处理技术将语音或音频输入转换成文本话语,所述文本话语然后由数字助理106来处理。在一些实施例中,
语音到文本的转换由数字助理106自身完成。
57.话语(其是文本话语或语音话语)可以是片段、一个句子、多个句子、一个或多个单词、一个或多个问题、上述类型的组合等。数字助理106被配置为将自然语言理解(nlu)技术应用于话语以理解用户输入的含义。作为针对话语的nlu处理的一部分,数字助理106被配置为执行用于理解话语的含义的处理,所述处理涉及识别对应于话语的一个或多个意图和一个或多个实体。在理解话语的含义后,数字助理106可以响应于理解的含义或意图来执行一个或多个动作或操作。出于本公开的目的,假设这些话语是已经由数字助理106的用户108直接提供的文本话语,或者是将输入语音话语转换为文本形式的结果。然而,这并不旨在以任何方式进行限制或约束。
58.例如,用户108的输入可以通过提供如“i want to order a pizza(我想要订购披萨)”的话语来请求订购披萨。在接收到这种话语之后,数字助理106被配置为理解话语的含义并采取适当的动作。适当的动作可以涉及例如以请求关于用户期望订购的披萨的类型、披萨的大小、披萨的任何馅料等用户输入的问题来回应用户。由数字助理106提供的回应也可以是自然语言形式,并且通常以与输入话语相同的语言。作为生成这些回应的一部分,数字助理106可以执行自然语言生成(nlg)。为了用户能够经由用户与数字助理106之间的会话来订购披萨,数字助理可以引导用户提供用于披萨订购的所有必要信息,并且然后在会话结束时使披萨被订购。数字助理106可以通过向用户输出指示已经订购披萨的信息来结束会话。
59.在概念层级上,数字助理106响应于从用户接收的话语执行各种处理。在一些实施例中,该处理涉及一系列处理步骤或处理步骤流水线,包括例如理解输入话语的含义(有时称为自然语言理解(nlu)、确定响应于话语而要执行的动作、在适当的情况下使动作被执行、响应于用户话语生成要输出到用户的回应、向用户输出回应等。nlu处理可以包括对所接收的输入话语进行语法分析以理解话语的结构和含义、细化并重新形成所述话语以开发出所述话语的更好的可理解形式(例如,逻辑形式)或结构。生成回应可以包括使用nlg技术。
60.数字助理(如数字助理106)执行的nlu处理可以包括如句子语法分析(例如,标记化、按屈折变化形式进行归类、识别句子的词性标签、识别句子中的命名实体、生成依存树来表示句子结构、将句子分成子句、分析单独的子句、解析指代、执行组块等)等各种nlp相关的处理。在某些实施例中,nlu处理或其部分是由数字助理106自身执行的。在一些其他实施例中,数字助理106可以使用其他资源来执行nlu处理的部分。例如,通过使用语法分析器、词性标记器和/或命名实体识别器处理句子来识别输入话语句子的句法和结构。在一种实施方式中,针对英语语言,使用由斯坦福自然语言处理(nlp)小组提供的语法分析器、词性标记器和命名实体识别器来分析句子结构和句法。这些是作为斯坦福corenlp工具包的一部分提供的。
61.虽然本公开中提供的各个示例示出了英语语言的话语,但是这仅意味着作为示例。在某些实施例中,数字助理106还能够处置除英语以外的语言的话语。数字助理106可以提供被配置用于针对不同语言执行处理的子系统(例如,实施nlu功能的部件)。这些子系统被实施为可以使用服务调用从nlu核心服务器调用的可插单元。这使nlu处理对于每种语言而言是灵活且可扩展的,包括允许不同的处理顺序。为单独的语言提供语言包,其中,语言
包可以登记可以从nlu核心服务器提供服务的子系统的列表。
62.可以通过各种不同的通道(如但不限于经由某些应用程序、经由社交媒体平台、经由各种消息传递服务和应用程序、以及其他应用程序或通道)使数字助理(如图1中描绘的数字助理106)对其用户108而言是可用的或可访问的。单个数字助理可以为自身配置几个通道,使得单个数字助理可以同时在不同的服务上运行并通过不同的服务进行访问。
63.数字助理或聊天机器人系统通常包含一个或多个技能或与一个或多个技能相关联。在某些实施例中,这些技能是被配置为与用户交互并完成特定类型的任务(如跟踪库存、提交时间卡、创建费用报告、订购食物、查询银行账户、进行预约、购买小部件等)的单独的聊天机器人(称为技能机器人)。例如,针对图1所描绘的实施例,数字助理或聊天机器人系统106包括技能116-1、116-2等。出于本公开的目的,术语“技能(skill)”和“技能(skills)”分别与术语“技能机器人(skill bot)”和“技能机器人(skill bots)”同义地使用。
64.与数字助理相关联的每个技能通过与用户的会话帮助数字助理的用户完成任务,其中,所述会话可以包括由用户提供的文本或音频输入与由技能机器人提供的回应的组合。这些回应呈以下形式:给用户的文本或音频消息和/或使用呈现给用户以供用户进行选择的简单的用户界面元素(例如,选择列表)。
65.存在各种方式可以将技能或技能机器人与数字助理相关联或将其添加到数字助理。在一些实例中,可以由企业开发技能机器人,并且然后将其添加到使用dabp 102的数字助理。在其他实例中,可以使用dabp 102开发并创建技能机器人,并且然后将其添加到使用dabp 102创建的数字助理。在又其他实例中,dabp 102提供在线数字商店(称为“技能商店”),所述在线数字商店提供涉及各种各样的任务的多个技能。通过技能商店提供的技能还可以公开(expose)各种云服务。为了将技能添加到使用dabp 102生成的数字助理,dabp 102的用户可以经由dabp 102访问技能商店、选择所需的技能、并指示将所选技能添加到使用dabp 102创建的数字助理。来自技能商店的技能可以按原样或以修改的形式添加到数字助理(例如,dabp 102的用户可以选择并复制技能商店提供的特定技能机器人、对所选技能机器人进行定制或修改并且然后将修改后的技能机器人添加到使用dabp 102创建的数字助理)。
66.使用各种不同的架构来实施数字助理或聊天机器人系统。例如,在某些实施例中,使用父机器人/子(或次)机器人范式或架构来实施使用dabp 102创建并部署的数字助理。根据该范式,数字助理被实施为与是技能机器人的一个或多个子机器人交互的父机器人。例如,在图1所描绘的实施例中,数字助理106包括父机器人114和是父机器人114的子机器人的技能机器人116-1、116-2等。在某些实施例中,数字助理106自身被认为充当父机器人。
67.根据父-子机器人架构实施的数字助理使得数字助理的用户能够通过统一用户接口(即,经由父机器人)与多个技能交互。当用户与数字助理接洽时,父机器人会接收到用户输入。然后,父机器人执行用于确定用户输入话语的含义的处理。父机器人然后确定用户在话语中所请求的任务是否可以由父机器人自身处置,否则父机器人选择适当的技能机器人来处置用户请求并将会话路由到所选择的技能机器人。这使得用户能够通过公共的单个接口与数字助理进行会话,并且仍然有能力使用被配置为执行特定任务的几个技能机器人。例如,针对为企业开发的数字助理,数字助理的父机器人可以与具有特定功能的技能机器
人(如用于执行与客户关系管理(crm)有关的功能的crm机器人、用于执行与企业资源规划(erp)有关的功能的erp机器人、用于执行与人力资本管理(hcm)有关的功能的hcm机器人等)接口连接。这样,数字助理的最终用户或消费者只需要知道如何通过公共的父机器人接口访问数字助理,而在后台提供了多个技能机器人来处置用户请求。
68.在某些实施例中,在父机器人/子机器人基础设施中,父机器人被配置为了解可用技能机器人的列表。父机器人可以访问标识各种可用技能机器人的元数据,并且对于每个技能机器人,访问包括可以由技能机器人执行的任务的技能机器人的能力。在接收到话语形式的用户请求之后,父机器人被配置为从多个可用技能机器人中识别或预测可以最好地服务或处置用户请求的特定技能机器人。然后,父机器人将话语(或话语的一部分)路由到该特定技能机器人以进行进一步的处置。因此,控制权从父机器人流向技能机器人。父机器人可以支持多个输入通道和输出通道。
69.虽然图1的实施例示出了数字助理106包括父机器人114以及技能机器人116-1、116-2和116-3,但这并不旨在是限制性的。数字助理可以包括提供数字助理的功能的各种其他部件(例如,其他系统和子系统)。这些系统和子系统仅以软件(例如,存储在计算机可读介质上并且可由一个或多个处理器执行的代码、指令)、仅以硬件、或以使用软件和硬件的组合的实施方式来实施。
70.dabp 102提供了使dabp 102的用户能够创建数字助理(包括与数字助理相关联的一个或多个技能机器人)的基础设施以及各种服务和特征。在一些实例中,可以通过克隆现有技能机器人来创建技能机器人,例如,克隆由技能商店提供的技能机器人。如前所述,dabp 102提供技能商店或技能目录,所述技能商店或技能目录提供了用于执行各种任务的多个技能机器人。dabp 102的用户可以从技能商店克隆技能机器人。根据需要,对克隆技能机器人进行修改或定制。在一些其他实例中,dabp 102的用户使用由dabp 102提供的工具和服务从头开始创建技能机器人。如前所述,dabp 102所提供的技能商店或技能目录可以提供用于执行各种任务的多个技能机器人。
71.在某些实施例中,在高层级上,创建或定制技能机器人涉及以下步骤:
72.(1)为新技能机器人配置设置
73.(2)为技能机器人配置一个或多个意图
74.(3)针对一个或多个意图配置一个或多个实体
75.(4)训练技能机器人
76.(5)为技能机器人创建对话流
77.(6)根据需要将自定义部件添加到技能机器人
78.(7)测试并部署技能机器人
79.下文简要描述了上述每个步骤。
80.(1)为新技能机器人配置设置——为技能机器人配置各种设置。例如,技能机器人设计者可以为正在创建的技能机器人指定一个或多个调用名称。然后,这些调用名称可以被数字助理的用户用来显式调用技能机器人。例如,用户可以在用户话语中输入调用名称,以显式调用对应的技能机器人。
81.(2)为技能机器人配置一个或多个意图和相关联的示例话语——技能机器人设计者为正在创建的技能机器人指定一个或多个意图(也称为机器人意图)。然后基于这些指定
的意图来训练技能机器人。这些意图表示技能机器人被训练以针对输入话语推断出的类别或分类。在接收到话语之后,经训练的技能机器人推断话语的意图,其中,所推断出的意图是从用于训练技能机器人的预定义意图集中选择的。技能机器人然后基于为话语推断的意图来采取对该话语做出回应的适当动作。在一些实例中,技能机器人的意图表示技能机器人可以为数字助理的用户执行的任务。每个意图被赋予一个意图标识符或意图名称。例如,对于针对银行训练的技能机器人,为所述技能机器人指定的意图可以包括“checkbalance(查询余额)”、“transfermoney(转账)”、“depositcheck(存款查询)”等。
82.对于为技能机器人定义的每个意图,技能机器人设计者还可以提供一个或多个示例话语,这些示例话语表示并说明了意图。这些示例话语旨在表示用户可以针对该意图向技能机器人输入的话语。例如,针对checkbalance意图,示例话语可以包括“what’s my savings account balance?(我的储蓄账户余额是多少?)”、“how much is in my checking account?(我的活期存款账户里有多少钱?)”、“how much money do i have in my account(我的账户里有多少钱)”等。因此,将典型的用户话语的各种排列指定为意图的示例话语。
83.这些意图及其相关联的示例话语用作用于训练技能机器人的训练数据。使用各种不同的训练技术。作为该训练的结果,生成预测模型,所述预测模型被配置为将话语作为输入并输出所述预测模型针对所述话语推断出的意图。在一些实例中,将输入话语提供给意图分析引擎,所述引擎被配置为使用经训练的模型来预测或推断输入话语的意图。然后,技能机器人可以基于推断出的意图采取一个或多个动作。
84.(3)针对技能机器人的一个或多个意图配置实体——在一些实例中,需要另外的上下文来使技能机器人能够适当地回应用户话语。例如,存在其中用户输入话语解析成技能机器人中的相同意图的情况。例如,在以上示例中,话语“what’s my savings account balance?”和“how much is in my checking account?”均解析成相同的checkbalance意图,但是这些话语是请求不同事情的不同请求。为了阐明这种请求,将一个或多个实体添加到意图。使用银行业务技能机器人的示例,被称为accounttype(账户类型)的实体(所述实体定义了被称为“checking(活期存款)”和“saving(储蓄)”的值)可以使技能机器人能够对用户请求进行语法分析并适当地作出回应。在上面的示例中,虽然这些话语解析为相同的意图,但是这两个话语的与accounttype实体相关联的值是不同的。这使技能机器人能够针对这两个话语执行可能不同的动作,尽管这两个话语解析为相同的意图。可以针对为技能机器人配置的某些意图指定一个或多个实体。因此,实体用于向意图本身添加上下文。实体帮助更充分地描述意图并使技能机器人能够完成用户请求。
85.在某些实施例中,有两种类型的实体:(a)dabp 102提供的内置实体;以及(2)可以由技能机器人设计者指定的自定义实体。内置实体是可以与各种机器人一起使用的通用实体。内置实体的示例包括但不限于与时间、日期、地址、数字、电子邮件地址、持续时间、循环时间段、货币、电话号码、url等有关的实体。自定义实体用于更多定制的应用程序。例如,针对银行业务技能,accounttype实体被技能机器人设计者定义为通过检查用户输入的关键词(如活期存款、储蓄、和信用卡等)来实现各种银行业务交易。
86.(4)训练技能机器人——技能机器人被配置为接收呈话语形式的用户输入,语法分析或以其他方式处理接收到的输入并且识别或选择与接收到的用户输入相关的意图。如
上文所指示的,为此,必须对技能机器人进行训练。在某些实施例中,基于为技能机器人配置的意图和与意图相关联的示例话语(统称为训练数据)来训练技能机器人,使得技能机器人可以将用户输入话语解析成其所配置的意图中的一个意图。在某些实施例中,技能机器人使用预测模型,所述预测模型是使用训练数据训练的并且允许技能机器人辨别用户说出(或者在一些情况下,正试图说出)的内容。dabp 102提供可以被技能机器人设计者用于训练技能机器人的各种不同的训练技术,包括各种基于机器学习的训练技术、基于规则的训练技术和/或其组合。在某些实施例中,训练数据的一部分(例如,80%)用于训练技能机器人模型并且另一部分(例如,其余20%)用于测试或验证模型。一旦进行了训练,经训练的模型(有时也称为经训练的技能机器人)便可以用于处置用户的话语并对用户的话语作出回应。在某些情况下,用户的话语是仅需要单一的回答并且无需另外的会话的问题。为了处置这种情况,为技能机器人定义q&a(问与答)意图。这使技能机器人能够在不必更新对话框定义的情况下输出对用户请求的回复。以与常规意图类似的方式创建q&a意图。用于q&a意图的对话流可能与用于常规意图的对话流不同。
87.(5)为技能机器人创建对话流——为技能机器人指定的对话流描述了在响应于接收到的用户输入来解析技能机器人的不同意图时,技能机器人如何反应。对话流定义了技能机器人将采取的操作或动作,例如,技能机器人如何回应用户话语、技能机器人如何提示用户进行输入、技能机器人如何返回数据。对话流像技能机器人所遵循的流程图一样。技能机器人设计者使用一种语言(如markdown语言)指定对话流。在某些实施例中,使用被称为obotml的yaml版本来指定技能机器人的对话流。技能机器人的对话流定义充当会话本身的模型,所述模型是使技能机器人设计者精心策划技能机器人与技能机器人所服务的用户之间的交互的模型。
88.在某些实施例中,技能机器人的对话流定义包含以下三个部分:
89.(a)上下文部分
90.(b)默认转变部分
91.(c)状态部分
92.上下文部分——技能机器人设计者可以在上下文部分中定义会话流中使用的变量。在上下文部分中命名的其他变量包括但不限于:针对错误处置的变量、针对内置实体或自定义实体的变量、使技能机器人能够识别并保存用户偏好的用户变量等。
93.默认转变部分——技能机器人的转变可以在对话流状态部分中或在默认转变部分中定义。在默认转变部分中定义的转变充当后备并且当状态内没有定义适用的转变或触发状态转变所需的条件无法得到满足时被触发。默认转变部分可以用于定义允许技能机器人得体地处置出乎意料的用户动作的路由。
94.状态部分——对话流及其有关操作被定义为管理对话流内的逻辑的暂时状态的序列。对话流定义内的每个状态节点都命名一个部件,所述部件提供所述对话中的那个时候所需的功能。因此,状态是围绕部件构建的。状态包含特定于部件的性质并且定义了在部件执行之后被触发的向其他状态的转变。
95.使用状态部分来处置特殊情况场景。例如,有时可能想要为用户提供让用户暂时离开他们所接洽的第一技能以让他们去做数字助理内的第二技能中的一些事情的选项。例如,如果用户忙于与购物技能进行会话(例如,用户已做出一些购买选择),则用户可能想要
跳转至银行业务技能(例如,用户可能想要确保他/她有足够的钱用于购买)并且然后返回到购物技能以完成用户的订单。为了解决这一点,第一技能中的动作可以被配置为发起与相同数字助理中的第二不同技能的交互并且然后返回到原始流。
96.(6)将自定义部件添加到技能机器人——如上文所描述的,技能机器人的对话流中指定的状态对对应于状态提供所需的功能的部件进行了命名。部件使技能机器人能够执行功能。在某些实施例中,dabp 102提供了用于执行各种各样的功能的一组预先配置的部件。技能机器人设计者可以选择这些预先配置的部件中的一个或多个并且将其与技能机器人的对话流中的状态相关联。技能机器人设计者还可以使用dabp 102提供的工具创建自定义部件或新的部件并且将自定义部件与技能机器人的对话流中的一个或多个状态相关联。
97.(7)测试并部署技能机器人—dabp 102提供了使技能机器人设计者能够测试正在开发的技能机器人的几个特征。然后,可以将技能机器人部署并包括在数字助理中。
98.虽然以上描述描述了如何创建技能机器人,但是还可以使用类似的技术来创建数字助理(或父机器人)。在父机器人或数字助理层级,为数字助理配置内置系统意图。这些内置系统意图用于识别在不调用与数字助理相关联的技能机器人的情况下数字助理自身(即,父机器人)可以处置的一般任务。针对父机器人定义的系统意图的示例包括:(1)exit(退出):当用户发出想要退出数字助理中的当前会话或上下文的信号时适用;(2)help(帮助):当用户请求帮助或定向时适用;以及(3)unresolvedintent(未解析意图):适用于与退出意图和帮助意图不太匹配的用户输入。数字助理还存储关于与数字助理相关联的一个或多个技能机器人的信息。该信息使父机器人能够选择用于处置话语的特定技能机器人。
99.在父机器人或数字助理层级,当用户向数字助理输入短语或话语时,数字助理被配置为执行用于确定如何路由话语和相关会话的处理。数字助理使用路由模型来确定这一点,所述路由模型可以是基于规则的、基于ai的或其组合。数字助理使用路由模型来确定对应于用户输入话语的会话是要被路由到特定技能以进行处置、要由数字助理或父机器人自身按照内置系统意图进行处置、还是要被处置为当前会话流中的不同状态。
100.在某些实施例中,作为此处理的一部分,数字助理确定用户输入话语是否使用其调用名称显式地识别技能机器人。如果调用名称存在于用户输入中,则所述调用名称被视为对应于调用名称的对技能机器人的显式调用。在这种场景下,数字助理可以将用户输入路由到显式调用的技能机器人以进行进一步处置。在某些实施例中,如果不存在特定调用或显式调用,则数字助理评估接收到的用户输入话语并针对与数字助理相关联的系统意图和技能机器人计算置信度得分。针对技能机器人或系统意图计算的得分表示用户输入表示技能机器人被配置为执行的任务或表示系统意图的可能性有多大。选择相关联的计算的置信度得分超过阈值(例如,置信度阈值路由参数)的任何系统意图或技能机器人作为候选以进行进一步的评估。然后,数字助理从所识别的候选中选择特定的系统意图或技能机器人用于对用户输入话语进行进一步的处置。在某些实施例中,在一个或多个技能机器人被识别为候选之后,对与那些候选技能相关联的意图进行评估(根据每个技能的意图模型)并且针对每个意图确定置信度得分。置信度得分超过阈值(例如,70%)的任何意图通常均被视为候选意图。如果选择了特定技能机器人,则将用户话语路由到该技能机器人以进行进一步的处理。如果选择了系统意图,则由父机器人自身根据所选系统意图执行一个或多个动作。
101.图2是根据某些实施例的父机器人(mb)系统200的简化框图。mb系统200可以仅以软件、仅以硬件、或以硬件和软件的组合实施。mb系统200包括预处理子系统210、多个意图子系统(mis)220、显式调用子系统(eis)230、技能机器人调用器240和数据存储250。图2所描绘的mb系统200仅仅是父机器人中的部件布置的示例。本领域技术人员将认识到许多可能的变化、替代方案和修改。例如,在一些实施方式中,mb系统200可以具有比图2所示的那些系统或部件更多或更少的系统或部件,可以组合两个或更多个子系统,或者可以具有不同的子系统配置或布置。
102.预处理子系统210从用户接收话语“a”202并通过语言检测器212和语言语法分析器214来处理话语。如上文所指示的,可以以包括音频或文本的各种方式来提供话语。话语202可以是句子片段、完整句子、多个句子等。话语202可以包括标点符号。例如,如果话语202作为音频提供,则预处理子系统210可以使用将标点符号(例如,逗号、分号、句号等)插入到所得文本中的语音文本转换器(未示出)来将音频转换为文本。
103.语言检测器212基于话语202的文本来检测话语202的语言。话语202的处置方式取决于语言,因为每种语言都有其自己的语法和语义。在分析话语的句法和结构时,会考虑语言之间的差异。
104.语言语法分析器214对话语202进行语法分析以提取话语202中各个语言单元(例如,单词)的词性(pos)标签。pos标签包括例如名词(nn)、代词(pn)、动词(vb)等。语言语法分析器214还可以对话语202的语言单位进行标记化(例如,将每个单词转换为单独的记号)并对单词按屈折变化形式进行归类。词元是如在字典中表示的一组单词的主要形式(例如,“run”是run、runs、ran、running等的词元)。语言语法分析器214可以执行的其他类型的预处理包括复合表达式的组块,例如,将“credit”和“card”组合成单个表达式“credit_card”。语言语法分析器214还可以识别话语202中的单词之间的关系。例如,在一些实施例中,语言语法分析器214生成依存树,所述依存树指示话语的哪一部分(例如,特定名词)是直接宾语、话语的哪一部分是介词等。由语言语法分析器214执行的处理的结果形成提取的信息205,并与话语202本身一起作为输入提供给mis 220。
105.如上文所指示的,话语202可以包括多于一个句子。为了检测多个意图和显式调用的目的,话语202可以被视为单个单元,即使它包括多个句子。然而,在某些实施例中,预处理可以例如由预处理子系统210执行,以识别多个句子中的单个句子以用于多个意图分析和显式调用分析。通常,无论话语202是在单个句子的级别上处理还是作为包括多个句子的单个单元处理,mis 220和eis 230产生的结果都基本相同。
106.mis 220确定话语202是否表示多个意图。尽管mis 220可以检测到话语202中存在多个意图,但mis 220执行的处理不涉及确定话语202的意图是否与已为机器人配置的任何意图相匹配。替代地,确定话语202的意图是否与机器人意图相匹配的处理可以由mb系统200的意图分类器242或技能机器人的意图分类器(例如,如图3的实施例所示出的)执行。mis 220执行的处理假设存在可以处置话语202的机器人(例如,特定技能机器人或父机器人本身)。因此,由mis 220执行的处理不需要知道聊天机器人系统中有哪些机器人(例如,向父机器人注册的技能机器人的身份),也不需要知道已经为特定机器人配置了什么意图。
107.为了确定话语202包括多个意图,mis 220应用数据存储250中的一组规则252中的一个或多个规则。应用于话语202的规则取决于话语202的语言并且可以包括指示存在多个
pizza bot(使用披萨机器人)”与调用披萨机器人有关,但与要由披萨机器人执行的任何处理无关。在一些实例中,eis 230可以重新格式化要发送到被调用机器人的部分,例如,以形成完整的句子。因此,eis 230不仅确定存在显式调用,而且当存在显式调用时确定要向技能机器人发送什么。在一些实例中,可能没有任何文本可以输入到被调用的机器人中。例如,如果话语是“pizza bot(披萨机器人)”,则eis 230可以确定披萨机器人正在被调用,但没有文本要由披萨机器人处理。在这种场景下,eis 230可以向技能机器人调用器240指示没有要发送的内容。
113.技能机器人调用器240以各种方式调用技能机器人。例如,技能机器人调用器240可以响应于接收到作为显式调用的结果已经选择特定技能机器人的指示235来调用机器人。指示235可以由eis 230连同用于显式调用的技能机器人的输入一起发送。在这种场景下,技能机器人调用器240会将会话的控制权交给显式调用的技能机器人。显式调用的技能机器人将通过将输入视为独立话语来确定对来自eis 230的输入的适当回应。例如,回应可以是执行特定动作或在特定状态下开始新会话,其中,新会话的初始状态取决于从eis 230发送的输入。
114.技能机器人调用器240可以调用技能机器人的另一种方式是通过使用意图分类器242进行隐式调用。可以使用机器学习和/或基于规则的训练技术来训练意图分类器242,以确定话语表示特定技能机器人被配置为执行的任务的可能性。意图分类器242在不同的分类上进行训练,每个技能机器人一个分类。例如,每当向父机器人注册新技能机器人时,与新技能机器人相关联的示例话语列表可以用于训练意图分类器242以确定特定话语表示新技能机器人可以执行的任务的可能性。作为该训练的结果产生的参数(例如,机器学习模型的一组参数值)可以存储为技能机器人信息254的一部分。
115.在某些实施例中,意图分类器242是使用机器学习模型实施的,如本文进一步详细描述的。机器学习模型的训练可以涉及至少输入来自与各种技能机器人相关联的示例话语的话语子集,以生成关于哪个机器人是用于处置任何特定训练话语的正确机器人的推断作为机器学习模型的输出。对于每个训练话语,提供用于训练话语的正确机器人的指示作为基本事实信息。然后可以适配机器学习模型的行为(例如,通过反向传播)以最小化所生成的推断与基本事实信息之间的差异。
116.在某些实施例中,意图分类器242针对向父机器人注册的每个技能机器人确定指示技能机器人可以处置话语(例如,从eis 230接收的非显式调用话语234)的可能性的置信度得分。意图分类器242还可以确定已配置的每个系统级意图(例如,帮助、退出)的置信度得分。如果特定置信度得分满足一个或多个条件,则技能机器人调用器240将调用与特定置信度得分相关联的机器人。例如,可能需要满足阈值置信度得分值。因此,意图分类器242的输出245是对系统意图的识别或对特定技能机器人的识别。在一些实施例中,除了满足阈值置信度得分值之外,置信度得分必须超过下一个最高置信度得分一定的裕量。当多个技能机器人的置信度得分均超过阈值置信度得分值时,施加这样的条件将能够路由到特定技能机器人。
117.在基于置信度得分的评估识别出机器人之后,技能机器人调用器240将处理移交给所识别的机器人。在系统意图的情况下,所识别的机器人是父机器人。否则,所识别的机器人是技能机器人。进一步地,技能机器人调用器240将确定提供什么作为所识别的机器人
的输入247。如上所述,在显式调用的情况下,输入247可以基于与调用无关的话语部分,或者输入247可以是什么都没有(例如,空字符串)。在隐式调用的情况下,输入247可以是整个话语。
118.数据存储250包括一个或多个计算设备,其存储由父机器人系统200的各种子系统使用的数据。如上文所解释的,数据存储250包括规则252和技能机器人信息254。规则252包括例如用于由mis 220确定话语何时表示多个意图以及如何拆分表示多个意图的话语的规则。规则252进一步包括用于由eis 230确定要将显式调用技能机器人的话语的哪些部分发送到技能机器人的规则。技能机器人信息254包括聊天机器人系统中的技能机器人的调用名称,例如,向特定父机器人注册的所有技能机器人的调用名称列表。技能机器人信息254还可以包括意图分类器242用来确定聊天机器人系统中每个技能机器人的置信度得分的信息,例如,机器学习模型的参数。
119.图3是根据某些实施例的技能机器人系统300的简化框图。技能机器人系统300是可以仅以软件实施、仅以硬件实施、或以硬件和软件的组合实施的计算系统。在某些实施例中,如图1所描绘的实施例中,技能机器人系统300可以用于在数字助理内实施一个或多个技能机器人。
120.技能机器人系统300包括mis 310、意图分类器320和会话管理器330。mis 310类似于图2中的mis 220并提供类似的功能,包括可操作地使用数据存储350中的规则352来确定:(1)话语是否表示多个意图,以及如果是,(2)如何将话语拆分为针对多个意图中的每个意图的单独话语。在某些实施例中,由mis 310应用的用于检测多个意图和用于拆分话语的规则与mis 220所应用的规则相同。mis 310接收话语302和提取的信息304。提取的信息304类似于图1中的提取的信息205,并且可以使用语言语法分析器214或技能机器人系统300本地的语言语法分析器来生成。
121.意图分类器320可以以与上文结合图4的实施例讨论的意图分类器242类似的方式被训练,并在此进一步详细描述。例如,在某些实施例中,意图分类器320是使用机器学习模型来实施的。针对特定技能机器人,至少使用与该特定技能机器人相关联的示例话语的子集作为训练话语来训练意图分类器320的机器学习模型。每个训练话语的基本事实将是与训练话语相关联的特定机器人意图。
122.话语302可以直接从用户接收或通过父机器人提供。当通过父机器人提供话语302时,例如,作为通过图4中描绘的实施例中的mis 220和eis 230处理的结果,可以绕过mis 310以避免重复已经由mis 220执行的处理。然而,如果直接从用户接收到话语302,例如,在路由到技能机器人之后发生的会话期间,则mis 310可以处理话语302以确定话语302是否表示多个意图。如果是,则mis 310应用一个或多个规则以将话语302拆分为针对每个意图的单独话语,例如话语“d”306和话语“e”308。如果话语302不表示多个意图,则mis 310将话语302转发到意图分类器320以进行意图分类,而不拆分话语302。
123.意图分类器320被配置为将接收到的话语(例如,话语306或308)与同技能机器人系统300相关联的意图相匹配。如上文所解释的,技能机器人可以配置有一个或多个意图,每个意图包括与所述意图相关联并用于训练分类器的至少一个示例话语。在图2的实施例中,父机器人系统200的意图分类器242被训练以确定各个技能机器人的置信度得分和针对系统意图的置信度得分。类似地,可以训练意图分类器320以确定针对与技能机器人系统
300相关联的每个意图的置信度得分。由意图分类器242执行的分类是在机器人级别,而由意图分类器320执行的分类是在意图级别并且因此更细粒度。意图分类器320可以访问意图信息354。对于与技能机器人系统300相关联的每个意图,意图信息354包括表示意图并说明意图的含义并且通常与可由该意图执行的任务相关联的话语列表。意图信息354可以进一步包括作为在该话语列表上进行训练的结果而产生的参数。
124.会话管理器330接收特定意图的指示322作为意图分类器320的输出,所述意图由意图分类器320识别为与输入到意图分类器320的话语最佳匹配。在一些实例中,意图分类器320不能确定任何匹配。例如,如果话语涉及系统意图或不同技能机器人的意图,则由意图分类器320计算的置信度得分可能低于阈值置信度得分值。当这种情况发生时,技能机器人系统300可以将话语提交给父机器人以进行处置,例如,以路由到不同的技能机器人。然而,如果意图分类器320成功地识别技能机器人内的意图,则会话管理器330将发起与用户的会话。
125.由会话管理器330发起的会话是特定于由意图分类器320识别的意图的会话。例如,会话管理器330使用被配置为针对所识别的意图执行对话流的状态机来实施。状态机可以包括默认起始状态(例如,当在没有任何附加输入的情况下调用意图时)和一个或多个附加状态,其中,每个状态与将由技能机器人执行的动作(例如,执行购买交易)和/或要呈现给用户的对话(例如,问题、回应)相关联。因此,会话管理器330可以在接收到识别到意图的指示322时确定动作/对话335,并且可以响应于在会话期间接收到的后续话语来确定附加动作或对话。
126.数据存储350包括一个或多个计算设备,其存储由技能机器人系统300的各种子系统使用的数据。如图3所描绘的,数据存储350包括规则352和意图信息354。在某些实施例中,数据存储350可以集成到父机器人或数字助理的数据存储中,例如图2中的数据存储250。
127.示例数据处理系统
128.图4是根据某些实施例的数据处理系统400的简化框图。如图4所示的布置是用于执行本文描述的全部或部分方法的数据处理系统的示例实施例,但是图4中所示的系统并不是唯一可以执行这些方法的系统。数据处理系统400可以仅以软件、仅以硬件、或以硬件和软件的组合实施。数据处理系统400包括通信门户402。通信门户402是允许外部实体与数据处理系统400之间的通信的任何硬件、软件或指令。在各种实施例中,通信门户402允许在用户与由数据处理系统400实施的聊天机器人之间交换消息。例如,作为与聊天机器人交互的一部分,用户可以将传入话语406发送到数据处理系统400。根据用户通信指令404接收和/或解释传入话语406。用户通信指令404是允许通信门户获取传入话语406或发送传出交互410的指令或步骤的任何集合。在各种实施例中,聊天机器人路由指令被实施为向用户发送与聊天机器人相关联的传出交互410。
129.一旦传入话语406被通信门户接收,它就将被路由到话语变换器412。话语变换器412是数据处理系统400中可以将传入话语406变换成话语数据416的任何实体。在各种实施例中,话语变换器412包括变换指令414,所述变换指令可以包含用于将传入话语406变换成话语数据416的指令或步骤。话语变换器412将以基于自然语言的格式接收到的传入话语406更改为由如意图分类器等分类器模型接收并进行语法分析的输入数据。例如,传入话语
406是与从与自动数字助理交互以便使用聊天机器人解析话语的客户端/客户接收的相同格式的话语数据。话语变换器412利用变换指令414来生成呈可以输入到分类器模型的格式的对应话语数据416。这可以在传入话语406的格式不可接受作为分类器模型的输入时执行。在各种实施例中,来自话语变换器412的话语数据416被发送到意图分类器418。意图分类器418可以分类、量化或以其他方式构造与传入话语406相对应的意图数据420。在各种实施例中,意图数据420可以与特定意图对应于传入话语406的一个或多个概率相对应。意图分类器例如是采用节点的人工神经网络,这些节点包括节点参数或权重,这些参数或权重在训练序列期间被调整以针对所接收的未来话语数据416更好地输出一个或多个概率。例如,在意图分类器418处接收具有一些“基本事实”数据的训练数据集,并且将由此生成的概率与由基本事实数据指定的“期望”意图进行比较以生成将用于再训练机器学习模型的损失。
130.意图数据420从意图分类器418发送到变换模型422。变换模型是独立存在于数据处理系统400内的实体,或者由如数据存储438等单独部件存储和实施。变换模型422将意图数据420变换成将被发送到技能储存库426的技能数据424。在各种实施例中,技能数据424可以与特定技能或子聊天机器人基于输入到其中的意图数据420而对应于传入话语406的一个或多个概率相对应。在各种实施例中,变换模型422对意图数据420执行一个或多个数学变换以创建技能数据424。技能数据424在被变换模型422变换之后被发送到技能储存库426。技能储存库426是数据处理系统400中存储、实施或以其他方式操纵技能数据424以实施本文描述的方法的任何实体。技能储存库426包括技能选择指令428。技能选择指令426是帮助响应于传入话语406来选择技能或聊天机器人的步骤指令的任何集合。例如,技能选择指令428可以响应于对技能数据424进行语法分析而导致选择用于与用户交互的聊天机器人和/或技能。
131.在各种实施例中,话语变换器412可以将话语数据416直接发送到技能储存库426,而不首先使数据通过意图分类器418和/或变换模型422。在各种进一步的实施例中,技能分类器430可以获取话语数据416并且根据与意图分类器418和变换模型422的指令不同的指令来创建技能数据。使用比较来再训练意图分类器418、变换模型422和/或技能分类器430中的任何一个。这表示基于单因素建模技术的预测技能与基于多因素建模技术的预测技能的比较。话语数据416到意图分类器418的输入以及随后到变换模型422的输入表示用于预测用于处理话语的技能的多因素建模方法。相反,话语数据416到技能分类器430的直接输入表示用于预测用于处理话语的技能的单因素建模方法。可以比较使用这两种方法预测的技能之间的差异以生成损失,所述损失可以用于再训练技能分类器430以在单因素建模场景中(比如在与客户端/客户交互时的预测时间)更好地预测技能。
132.技能储存库426包括聊天机器人储存库432。聊天机器人储存库432是包含被实施为处理交互的一个或多个聊天机器人的数据或实例的任何储存库或存储装置。聊天机器人储存库432可以包含父聊天机器人434,其通常可以与数据处理系统400的用户交互。聊天机器人储存库432可以进一步包括与聊天机器人生态系统内的技能相对应的子聊天机器人436a-436n。
133.数据处理系统400可以进一步包括数据存储438。数据存储438是可以存储与数据处理系统400的操作相关的数据的任何存储装置、存储器或介质。例如,数据存储438可以包
括模型储存库446,所述模型储存库可以存储用于将意图数据变换成技能数据的一个或多个变换模型。数据存储438可以进一步包括规则440。规则440是将实施本文描述的方法的规则、步骤、指令、计算机可读代码或其他逻辑的任何集合。数据存储438可以进一步包括训练指令442。训练指令442是将导致对变换模型422或用于将意图数据420变换成技能数据424的任何其他变换模型的训练的步骤或指令的任何集合。数据存储438可以进一步包括技能机器人信息444。技能机器人信息444可以包括与聊天机器人、技能或意图相对应的任何数据。例如,技能机器人信息444可以包括与子聊天机器人436a-436n、与那些聊天机器人相对应的技能、和/或与那些技能和聊天机器人相关联的意图有关的信息。数据存储438耦接到迄今为止讨论的数据处理系统400中的任何实体,包括图4中描绘的那些实体。
134.示例多因素建模的实施例
135.图5是根据某些实施例的实施变换模型的计算系统的简化框图。具体地,图5图示了通过利用多因素建模进行自然语言处理的数据处理系统的传入交互的流程。在一些实施例中,图5中描绘的计算系统被用作预测过程的一部分,以用于确定将用于回应话语的技能。例如,计算系统可以从客户端/客户接收传入话语406并且选择将用于处理传入话语406和/或生成对传入话语406的回应的技能。在其他实施例中,图5中描绘的计算系统被用作训练过程的一部分,以用于确定要与基本事实技能进行比较的技能以细化所描绘的多因素模型。例如,由图5中的计算系统输出的所确定技能可以与一些训练数据中包括的基本事实技能进行比较,并且所确定技能与基本事实技能之间的差异可以用于再训练计算系统的部件。同时,可以将从意图分类器418输出的所确定意图与一些训练数据中包括的基本事实意图进行比较,并且所确定意图与基本事实意图之间的差异可以用于再训练意图分类器418的部件。
136.如图5所描绘的,所示框图涉及由计算机设备或系统实施以从某个原始传入话语406生成技能数据424的流程。所生成的技能数据424包括可以用于选择技能的信息,比如基于原始传入话语406的一组技能得分。例如,传入话语406可以包括与从披萨店聊天机器人订购披萨相关的查询,并且技能数据424包括作为多因素建模技术的结果由意图分类器418和变换模型422生成的多个技能“得分”。
137.在涉及预测过程的实施例中,传入话语406包括与客户端/客户实体生成的话语相关的数据,所述数据应当由适当的技能处理以回应客户端/客户。在这种情况下,图5所描绘的多因素建模过程的目标是利用传入话语406中包括的信息来预测用于回应也包括在传入话语406中的基于自然语言的查询的技能。然后,预测的技能可以基于传入话语406响应性地采取某个动作和/或生成基于自然语言的传出回应以回应客户/客户端的查询。
138.在涉及训练过程的实施例中,传入话语406包括与话语和将用于细化图5中描绘的多因素模型的基本事实技能相关的数据。在这种情况下,图5所描绘的多因素建模过程的目标是尝试预测与传入话语相对应的技能,所述技能原本将用于在预测时间期间处理传入话语406。可以将预测技能与基本事实技能(在多因素模型完美运行的情况下应预测出的技能)进行比较,以确定预测技能与基本事实技能之间的差量。所述差量可以用于细化多因素模型的元素,比如意图分类器418和/或变换模型422。同时,可以将来自分类器418的预测意图与基本事实意图进行比较,以确定预测意图与基本事实意图之间的差量。所述差量可以用于细化多因素模型的元素,比如意图分类器418。
139.在一些实施例中,在预测过程或训练过程期间,技能数据424中技能的最高得分或最高平均得分被用于选择用于处理传入话语406的预测技能。传入话语406首先在话语变换器412中进行变换以创建输入到意图分类器418的话语数据416。例如,与订购披萨相关的自然语言查询被分解为新数据,包括单个单词、单词分组、单词的上下文细节和整个话语等。意图分类器418可以利用模型(比如人工神经网络机器学习模型)来将话语数据416变换成与每个意图的一个或多个“得分”相关的意图数据420。例如,所生成的一个或多个得分可以与传入话语406与跟一个或多个聊天机器人系统相关的意图超集中的特定意图相关的概率相关。下文参考图7a进一步讨论了意图分类器418利用人工神经网络的示例。
140.将所得意图数据420输入到包括掩码500的变换模型422,所述变换模型将意图数据420作为输入以生成一组变换后的技能数据424作为输出。在各种实施例中,掩码500是映射数据集,比如矩阵,其表示意图数据420中的数据集与所得技能之间的对应关系。因此,将掩码500应用于意图数据420以生成技能数据424,所述技能数据可以由技能选择指令428解释以基于意图分类器418和变换模型422的多因素建模来选择预测技能。在一些实施例中,掩码500是动态训练的变换值阵列,其将意图数据420的意图得分映射到技能数据424的技能得分。根据一些指令/标准来利用技能数据424以选择用于处理传入话语406的技能。在一些实施例中,技能数据424和/或所选技能用于再训练各种模型,比如话语变换器412、意图分类器418、变换模型422等(即,训练过程)。在其他实施例中,技能数据424用于选择用于语法分析并回应传入话语406的技能,以解析客户/客户端查询(即,预测过程)。
141.更具体地,如图5所描绘的,从用户接收传入话语406并将其输入到话语变换器412中。传入话语406是原始格式并且可以具有一个或多个变量或特性。例如,传入话语406可以包括与从用户接收的一个或多个话语(例如,基于自然语言的格式的查询)相对应的参数x、与超集中表示基本事实意图的多个标签相对应的参数y(i)、以及与超集中表示基本事实技能的多个标签相对应的参数y(s)。例如,参数x包括一个或多个基于自然语言的查询(例如,“i would like to order a pizza(我想订一份披萨)”),参数y(i)包括将由模型(比如输入分类器)考虑的一组意图(例如,披萨订购意图、订单编辑意图等),并且参数y(s)包括一组技能,将基于图5中呈现的多因素建模技术来预测其中一个技能(例如,订购技能,其可以订购披萨或编辑之前的披萨订单)。
142.作为本文描述的训练或预测过程的一部分,传入话语数据包括元素x、y(i)和y(s)作为用于生成技能预测的参数。例如,一个或多个自然语言查询x是在传入话语406中包括的自然语言查询,意图超集y(i)是可以作为意图分类器418的一部分考虑的所有意图的集合,并且技能超集y(s)是可以根据由多因素模型输出的技能数据424预测的所有技能的集合。在训练过程期间,x可以是基本事实技能所已知的所有自然语言查询。参数y(i)和y(s)可以通过所执行的训练过程来预定义,并且预测技能将是技能超集y(s)中的至少一个;基本事实意图与预测意图数据420之间的差量可以用于更新意图分类器418的参数;基本事实技能与预测技能数据424之间的差量(如果不同)可以用于更新意图分类器418或变换模型422的参数。在预测过程期间,x可以是由客户/客户端生成的所有自然语言查询,并且y(i)和y(s)可以基于话语的来源而选择(例如,经由披萨餐厅所实施的自动数字助理与聊天机器人交互的客户/客户端可能只能使用一组特定的意图和技能与客户进行交互)。
143.然后,传入话语406由话语变换器412处理,以将原始交互数据变换成图5中描绘的
多因素模型可识别或更容易读取的话语数据416。例如,可以对一个或多个自然语言查询x进行变换以消除除构成查询的简单ascii字符数据之外的任何数据。在另一示例中,可以将一个或多个自然语言查询x变换成向量化格式,其中查询的每个单独单词是输入向量中的值。
144.然后,话语数据416可以被发送到意图分类器418,所述意图分类器将利用话语数据416作为输入来生成意图数据420作为输出。意图数据表示为y’(i),对应于为一组意图标签计算的得分。在各种实施例中,意图分类器418利用如人工神经网络等机器学习模型来获取话语数据416并输出意图数据420。在这种情况下,y’(i)可以是与人工神经网络的输出节点相关的值或得分的向量。在一些实施例中,y’(i)可以作为使用一个或多个自然语言查询x的特征的公式的一部分来计算。用于确定y’(i)的方程可以为:
145.y'(i)=2*sigmoid(sf*-1.0*distance(w,transform(x))
146.其中,y’(i)是意图数据420,包括y(i)中每个意图的一组向量化得分,“sigmoid()”是将返回特征参数的所计算的sigmoid的sigmoid函数,sf是之前例如通过超参数调谐或由管理聊天机器人模型的数据科学家确定的缩放因子,distance()是计算两个值之间的相对数学距离的函数,w是在模型训练期间学习的表示每个意图类别的质心的变换矩阵,并且transform(x)是来自话语数据416的一个或多个基于自然语言的查询到可以与w进行比较的格式的变换。
147.所计算意图数据420(其包括与y(i)中的每个意图相对应的值的向量化数据集)因此由y’(i)表示。这些值可以用于经由变换模型来确定技能数据424,作为用于确定处理传入话语406的预测技能的多因素建模过程的一部分。在实施预测过程的实施例中,输出意图数据420然后被输入到变换模型422中以继续预测过程。
148.在实施训练过程的实施例中,意图数据420也可以被输入到变换模型中以继续本文描述的技能预测过程。另外,当意图分类器418是机器学习模型时,可以发生监督机器学习过程。例如,传入话语406可以进一步包括与意图分类器在给定输入话语数据416的情况下选择的期望意图相对应的基本事实意图。计算一个或多个基本事实意图y(i)与由y’(i)表示的意图数据420之间的差异,所述差异被称为loss(i),表示意图分类器在预测基本事实意图时的误差程度。y’(i)中的向量化值可以与一个或多个基本事实意图进行比较,以确定向量化值是否准确地表示基本事实意图的加权重要性。例如,意图损失的计算方程如下:
149.loss(i)=w0*cross_entropy_loss(logit_y’(i),y(i))+w
l
*mse_loss(y’(i),y(i))+w2*margin_loss(y’(i))+w3*threshold_loss(y’(i),y(i))
150.其中,loss(i)是基于y’(i)中的值与基本事实意图y(i)之间的差异计算出的总损失,w0、w1、w2和w3是之前例如通过超参数调谐或由管理聊天机器人模型的数据科学家确定的权重值,cross_entropy_loss()是返回基本事实标签y(i)与由logit_y’(i)表示的意图数据418的逻辑分布的交叉熵损失的函数,mse_loss()是返回基本事实意图y(i)与y’(i)中的值的均方误差损失的函数,margin_loss()是针对y’(i)中的值返回基于裕量的损失分类的函数,并且threshold_loss()是返回基本事实意图y(i)与y’(i)中的值的基于阈值的损失的函数。
151.在一些实施例中,在意图分类器418的训练期间计算的损失可以用于再训练意图分类器。例如,当意图分类器418是机器学习模型时,损失值可以用于与所计算的损失成比
例地更改意图分类器418的操作参数。在意图分类器418是人工神经网络的情况下,损失函数可以用于改变神经网络中的节点的加权参数以细化模型,以在未来处理期间生成更准确的意图数据420。在一些实施例中,为意图分类器418计算的损失进一步被用作通用损失值的一部分,如下所述。
152.从意图分类器418输出的意图数据420被输入到变换模型422中以生成技能数据424。变换模型可以包含一个或多个掩码500,所述掩码是对意图数据420进行变换以生成技能数据424的任何数据、函数、过程或方程。例如,如图5所描绘的,掩码500对应于将一个或多个意图标签从意图数据420映射到一个或多个技能标签的值矩阵。例如,假设聊天机器人系统识别到7个意图和3个技能,则会生成7
×
3的值掩码矩阵以将意图映射到技能。变换模型422利用掩码500的输出是技能数据424。技能数据表示为y’(s)。例如,用于根据y’(i)确定y’(s)的方程为:
153.y
′
(s)=(y
′
(i)*m)
154.其中,y’(i)是输入意图数据420,并且m是掩码矩阵。在一些实施例中,掩码矩阵可以被变换成对于与y’(i)的向量化格式进行数学运算而言可接受的格式。例如,掩码可以在一个或多个轴上翻转,以便与y’(i)的向量化格式相加或相乘,从而计算y’(s)的向量和或积。以这种方式,掩码矩阵可以从标准矩阵格式更改,以将矩阵的某些行或列映射到行或列或y’(i),以便创建向量化输出y’(s)。因此,输出y’(s)将是与一个或多个自然语言查询x对应于一组技能中的任何技能的概率相对应的技能概率向量。
155.与y’(s)的向量化格式相对应的技能可以基于要应用于技能数据424的一些指令(比如技能选择指令428)而被选择为用于处理话语的最有可能的技能。例如,技能选择指令可以通过选择y’(s)中的对应得分值来发生,所述得分值是每个向量化得分的最大值、最小值、最高总和、最高平均值等。由于一些技能与多于一个意图相关联,因此选择技能或生成y’(s)的方式有很多种。在一些实施例中,y’(s)是技能数据424的向量化版本,其中仅包含每个对应技能的最高相对意图值。以下方程说明了该实施例:
156.y
′
(i)m[y1,y2,y3,y4,y5,y6,y7]
[0157]
m=[1 1 0 0 0 0 0]
[0158]
[0 0 1 1 1 0 0]
[0159]
[0 0 0 0 0 1 1]]
[0160]
y’(s){s=0}=max(y
′
(i)*m[0])=max([y1*1y2*1 0 0 0 0 0])=s1
[0161]y′
(s){s1}=max(y
′
(i)*m[1])=max([0 0 y3*1,y4*1,y5*1 0 0])=s2
[0162]y′
(s){s=2}=max(y
′
(i)*m[2])=max([0 0 0 0 0 y6*1,y7*1])=s3
[0163]y′
(s)=[s1,s2,s3]
[0164]
其中y’(s)是向量化技能数据424,m是掩码矩阵,s1-s3是与y(s)中可以被选择用于处理话语的可能技能相对应的三个得分,并且y1-y7是与y(i)中的意图相对应的七个得分。如以上方程所示,意图得分向量y’(i)乘以掩码矩阵m以形成三行向量,每行对应于技能s1-s3。每个向量行可以包括多个值,由于掩码矩阵m仅包含值0和1,因此每个值表示意图与传入话语406相对应的如由意图分类器418输出的可能性。从这三个向量行中,只能选择每个向量中的最高值并将其放置在与这三个行向量中每个技能的最高值相对应的值y’(s)的最终向量中。
[0165]
作为示例,在通过y’(i)和m的矩阵乘法生成的这三个行向量中,每一行中的最高值可以是y2、y4和y6,每个向量对应于这三个技能s1-s3中的一个。然后,所得向量y’(s)将是[y2,y4,y6]。使用向量y’(s),然后可以基于y’(s)中的值来预测“最佳”技能。预测技能是被预测为对于处理和回应传入话语406而言是最佳技能的技能。用于选择预测技能的指令的一个示例可以包括选择向量y’(s)中的最大值。例如,将选择用于回应传入话语406的最佳预测技能的方程由下式给出:
[0166]
y(best)=(max(y
′
(s))
[0167]
其中,y(best)是基于从y’(s)中选择的最高值而选择的预测技能。应当理解,可以应用选择和规则的许多不同组合来预测回应传入话语的技能。在一些实施例中,y’(s)是针对y(s)中每个可能技能包括一个值的向量,其中,所述值是y’(i)中每个相关意图值的平均值。预测技能将对应于y’(s)中技能的最高平均值。在一些实施例中,y’(s)是针对y(s)中每个可能技能包括一个值的向量,其中,所述值是y’(i)中每个相关意图值的总和。预测技能将对应于y’(s)中技能的最高平均值。
[0168]
在一些实施例中,在给定技能数据424的输入的情况下,可以利用机器学习模型(比如技能分类器430)来选择技能向量y’(s),而不是应用用于形成y’(s)的指令。下文参考图6a描述了应用机器学习模型来形成y’(s)的示例。
[0169]
与上述对意图分类器418的训练类似,在训练过程期间,基本事实技能y(s)与预测技能y’(s)之间的差异被称为loss(s),表示多因素建模系统在预测正确技能时的误差程度。与传入话语406相关联的基本事实技能y(s)与预测技能y’(s)之间的差异被称为loss(s),表示变换模型在预测正确技能来用于某个动作时的误差程度。技能损失的计算方程如下:
[0170]
loss(s)=w0_s*cross_entropy_loss(logit_y’(s),y(s))+w1_s*mse_loss(y’(s),y(s))+w2_s*margin_loss(y’(s))+w3_s*threshold_loss(y’(s),y(s))
[0171]
其中,y(s)是基本事实技能,并且y’(s)是预测技能。该方程与上面的loss(i)方程类似,区别在于应用了预测技能与基本事实技能之间的差异来确定loss(s)。在各种实施例中,loss(i)可以与loss(s)组合以形成技能预测的总损失,其考虑了意图评分和技能预测两者中的损失。使用所计算的loss(i)和loss(s),数据处理系统的总损失计算如下:
[0172]
loss(total)=loss(s)+lambda*loss(i)
[0173]
其中,lambda是表示要应用于所计算的意图损失的正则化率的标量。根据各种实施例,数据处理系统可以将loss(total)值标准化为训练格式并且通过将该值输入到训练模型中来更改多因素模型的任何方面。例如,在对训练文本数据的语法分析期间计算的loss(total)被标准化并用于更改变换模型422和/或掩码500以更好地将已知意图映射到已知技能。
[0174]
所计算的损失,无论是loss(i)、loss(s)、loss(total)还是这些损失的任意组合,都可以用于再训练图5中描绘的多因素模型的元素。在一些实施例中,其中意图分类器是包括用于将话语数据416变换成意图数据420的一个或多个操作参数的机器学习模型。例如,意图分类器可以是包括一个或多个节点和节点参数以用于将如话语数据416等输入变换成如意图数据420等输出的人工神经网络机器学习模型。下文参考图7a描绘了该实施例。
[0175]
用作意图分类器418的一部分的机器学习模型的参数可以与上文定义的所计算损
失成比例地更改。例如,人工神经网络的特定节点的参数可以与所计算的损失成比例地重新加权。具体地,对应于与基本事实意图/技能相关联的某些节点的参数可以与损失成比例地增大,并且与预测意图/技能相关联的某些节点可以与损失成比例地减小,以细化机器学习模型。
[0176]
在一些实施例中,掩码500的值可以基于所计算的损失而更改。例如,掩码500可以包括介于0到1之间的值,并且这些值可以基于所计算的损失而更改。例如,掩码500中与预测技能相对应的值可以与损失成比例地减小,或者掩码500中与基本事实技能相对应的值可以与损失成比例地增大。
[0177]
图6a是根据某些实施例的实施变换模型的计算系统的简化框图。具体地,图6a示出了图5中描绘的数据处理系统的部件的替代布置,其中包括作为多因素建模系统的一部分的技能分类器430。技能分类器430既可以在接收话语数据416时被实施为单因素模型,又可以在从变换模型422接收技能数据424时被实施为多因素模型的一部分。
[0178]
如上所述,单因素建模是预测回应传入话语的技能的高效方法,但不能以与多因素模型相同的准确度来预测技能。如图6a所描绘的,话语数据可以在单因素模型(即,技能分类器430)中使用,以生成与用于处理传入话语406的预测技能相对应的预测数据610。因为预测数据610是由技能分类器430使用话语数据416的直接输入生成的,所以可以比图5中描绘的多因素建模更快地预测技能。然而,由技能分类器430执行的单因素建模不如由意图分类器418和变换模型422执行的上下文多因素建模准确。
[0179]
在训练阶段期间,单因素建模过程和多因素建模过程都被执行以再训练技能分类器430以改进单因素建模过程。例如,传入话语数据406可以经历如参考图5所描述的多因素建模。在一些实施例中,如图6a所描绘的,掩码600是将被应用于意图数据420以形成技能数据424的单个向量掩码而不是矩阵掩码。例如,向量化意图数据的每个元素可以乘以向量掩码600中的对应元素,并且所得乘积值将被插入到由y’(i
→
s)表示的向量化技能数据中。
[0180]
一旦计算出值向量y’(i
→
s),所述向量就用于作为多因素建模过程的一部分来计算预测技能。在一些实施例中,将一组规则应用于向量y’(i
→
s)以确定预测的技能,类似于参考图5讨论的实施例。在一些实施例中,向量y’(i
→
s)被输入到技能分类器430以输出预测技能。例如,技能分类器430可以包括一个或多个技能预测模型,包括用于将输入话语数据416变换成预测数据610的一个模型(单因素建模)以及用于将技能值向量变换成预测数据610的另一模型(作为多因素建模过程的一部分)。尽管输入话语数据416和技能数据424是不同类型的输入,但是作为预测数据610的一部分的预测技能输出是相同的,因此可以将单因素建模过程的输出与多因素建模过程的输出进行比较。
[0181]
如上所述,通过对同一传入话语406的单因素建模和多因素建模所预测的技能可以用于细化单因素模型以在保持单因素预测的速度的同时提高准确度。可以比较预测技能以确定每个单独过程的预测技能之间的差异。所述差异被用来识别被用来再训练单因素模型(在这种情况下是技能分类器430)的损失函数或差异。在各种实施例中,当将多次训练迭代应用于参考图5、图6a和图6b描述的系统时,可以使用成本函数。例如,可以针对每次训练迭代来计算多个损失函数并将其用于确定成本函数。损失函数/成本函数可以用于再训练模型。
[0182]
如本文所述,与当话语数据416被直接输入到技能分类器时通过单因素建模过程
生成的得到的预测数据610相比,通过单因素建模过程生成的预测数据610由于使用了上下文更准确的意图数据和可训练变换模型而更加准确。然而,单因素建模更省时,因为无需多因素建模的各个步骤就可以预测技能。因此,使用多因素建模与单因素建模之间的输出差异来训练如技能分类器430等单因素模型以提高聊天机器人系统的单因素建模能力是有用的。
[0183]
作为示例,接收到话语“i ordered a pizza and it wasn’t cooked so it was terrible(我订了一份披萨,但它没有煮熟,所以很糟糕)”。聊天机器人利用了两个技能:披萨订购技能和客户服务技能。训练不佳的单因素模型(比如技能分类器)可能仅基于话语中的术语“ordered(订购)”和“pizza(披萨)”来选择订购披萨的技能,而客户服务才是处理所述话语的正确技能。使用多因素建模进行更细粒度的上下文分析更有可能选择正确的技能。例如,客户服务技能可以包括与不满意的客户评论相关的意图。所述意图与所述话语高度相关,因为其中包含“ordered(订购)”、“pizza(披萨)”、“wasn’t cooked(没煮熟)”和“was terrible(很糟糕)”等词。所述意图还可以确定话语特有的上下文,比如所述话语是用过去时态编写的并且很有可能对应于客户服务这一事实。在该示例中,与单因素建模过程相比,多因素建模过程提供了正确的预测技能。技能预测之间的差异可以用于再训练技能分类器——例如,技能分类器430中对术语“order(订购)”和“pizza(披萨)”与披萨订购技能之间的相关性进行加权的参数可以减小,并且对术语“wasn’t(没)”和“terrible(糟糕)”与客户服务技能之间的相关性进行加权的参数可以增大。
[0184]
因此,预测技能之间的所得损失/差异被用来再训练技能分类器430,以当输入话语数据416作为单因素建模过程的一部分时提供上下文更准确的预测数据610。因此,图6a所描绘的框图图示了可以高效地训练技能分类器430并在预测阶段期间利用所述技能分类器的混合上下文模型。如上所述,预测阶段(或“部署阶段”)是这样的阶段,其中包括本文描述的建模技术的聊天机器人用于与实际客户端/客户交互并解析发送到聊天机器人系统的真实自然语言查询,作为与由客户端/客户使用的自动数字助理进行通信的一部分。在该阶段期间,所述模型被有效地“部署”来处理和回应客户/客户端的需求。尽管训练阶段可以利用预测来再训练模型,但在预测阶段期间使用的预测将用于回应现实世界的客户/客户端。当查询得到快速且准确的解析时,客户端体验就会得到改善。因此,在预测阶段期间,上下文良好训练的单因素模型(比如技能分类器430)对于聊天机器人而言是有用的资产。在客户/客户端提出的查询高度复杂或单因素模型未经过充分训练的一些情况下,可以利用多因素模型来处理请求并预测处置查询的技能以时间方面的效率为代价来提高上下文准确度。例如,可以接收高度复杂的自然语言查询,并且话语变换器可以在转换为话语数据416期间确定话语中的语言对于技能分类器来说可能太复杂而无法提供准确的预测。作为响应,话语变换器可以将话语数据416发送到意图分类器418以开始多因素建模过程。
[0185]
图6b是根据某些实施例的实施变换模型的计算系统的简化框图。如图6b所描绘的,掩码620是比掩码610更复杂的掩码,以在根据技能数据424预测技能之前提供一组上下文更准确的技能数据424。如图6b所描绘的,掩码可以包括不是布尔值(即,0和1)的值。例如,掩码620可以包括与通过训练更改后的值相对应的值,比如根据本文描述的方法根据训练输入而频繁变换的双精度或浮点数。掩码620的这些值可以被更精细地调整以影响意图数据420到技能数据424的更准确变换。如上所述,掩码620包含将意图数据420中的意图得
分映射到技能集中的对应技能的值。在一些情况下,在确定预测技能时,意图可能不会与其他意图具有相同的权重。例如,“促销优惠”意图的使用可能远少于“披萨订购”意图。结果,掩码620中表示促销优惠意图与技能之间的对应关系的值可能远低于表示披萨订购意图与技能之间的对应关系的值。
[0186]
图7a是根据某些实施例的被配置为人工神经网络的意图分类器的简化框图。具体地,图7a描绘了被配置为利用人工神经网络来将话语向量作为输入并输出一个或多个意图得分的意图分类器418的示例实施例。如本文所述,话语向量700是从话语变换器412得到的话语数据416的一种形式,并且意图得分740(a)-740(n)是由意图分类器418输出的意图数据420或上下文数据集的一种形式。
[0187]
如图7a所描绘的,话语向量700包括一组或多组向量数据701(a)-701(n)。向量数据可以包括从话语/基于自然语言的查询得到的并且呈可接受作为意图分类器418的输入的格式的任何数据。向量数据701可以包括例如单个单词、单词分组、上下文、字体、标点符号、环境、客户、或与从客户/客户端接收到的话语有关的任何其他数据。话语向量700被映射到意图分类器418的人工神经网络中的一组输入节点710(a)-710(n)。这些输入节点710中的每一个是包括节点参数/权重的节点,所述参数/权重确定了在人工神经网络的初始阶段中给定的每个输入的相对权重。
[0188]
输入节点710(a)-710(n)经由一个或多个边被映射到人工神经网络的附加层。例如,从输入节点710(a)-710(n)发出的多个边通向隐藏层的附加节点,其中每个附加节点可以具有对应的节点参数/权重值。例如,如图7a所描绘的,输入节点710(a)-710(n)被映射到人工神经网络的隐藏层720(a)。应当理解,人工神经网络是包括每个相继层中的节点的一对一边关系或其中的任何边子集的网络。
[0189]
从输入节点710(a)-710(n)传递的值依次传递通过多个隐藏层720(a)-720(n)以在神经网络中前进。应当理解,节点参数/权重以及在一些情况下节点之间的边的权重会根据一种或多种机器学习训练方法而更改。一旦隐藏层720(n)处理了来自前一隐藏层的数据,所述数据就被传递到一个或多个输出节点730(a)-730(n)。输出节点730(a)-730(n)可以对应于作为人工神经网络的结果而生成的可能上下文子类(比如聊天机器人的意图)的一个或多个最终值。因此,意图分类器418的人工神经网络可以生成与输入话语向量700对应于用于处理和回应话语的特定意图的概率相关的一个或多个概率得分。这些概率由从输出节点730(a)-730(n)得到的意图得分740(a)-740(n)表示。下文参考图9进一步探讨使用意图得分来选择技能。
[0190]
图7b是根据某些实施例的被配置为人工神经网络的技能分类器的简化框图。具体地,图7b描绘了被配置为利用人工神经网络来将话语向量作为输入并输出预测技能作为单因素建模的一部分的技能分类器430的示例实施例。
[0191]
图7b是根据某些实施例的被配置为人工神经网络的技能分类器430的简化框图。具体地,图7b描绘了被配置为利用人工神经网络来将话语向量作为输入并输出用于处理话语的预测技能的技能分类器430的示例实施例。例如,技能分类器430可以类似于意图分类器418获取话语向量的方式来获取话语向量700。技能分类器430还可以包括多个输入节点750(a)-750(n)和多个隐藏层760(a)-760(n)以在神经网络中前进。应当理解,节点参数/权重以及在一些情况下节点之间的边的权重会根据一种或多种机器学习训练方法而更改。最
终隐藏层760(n)然后可以将包括在其中的值发送到得分选择器770。得分选择器770可以利用一个或多个得分选择标准和从隐藏层760(n)接收的值来确定将由技能分类器输出的预测技能780。例如,得分选择器770可以接收与可以从中选择预测技能780的多个可能技能有关的一个或多个得分值,并且利用指定选择最高得分的标准来选择预测技能780。
[0192]
图8图示了根据各种实施例的用于使用变换模型来确定上下文分类以回应话语的处理流程。图8所描绘的处理以由相应系统的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)、硬件或其组合实施。软件存储在非暂态存储介质上(例如,存储器设备上)。图8所呈现的且下文所描述的方法旨在是说明性的而非限制性的。尽管图8描绘了以特定序列或顺序发生的各个处理步骤,但这并不旨在是限制性的。在某些替代性实施例中,步骤以某种不同的顺序执行或者一些步骤也可以并行地执行。在各种实施例中,过程800中详述的步骤由本文关于图1至图7b讨论的系统和模型执行。
[0193]
过程800开始于810,此时接收到包括一个或多个自然语言查询的一组话语数据。例如,话语数据作为传入话语406的一部分被接收并且在数据处理系统400的通信门户402处被接收。在接收传入话语406之后,数据处理系统处理数据以准备用于输入到一个或多个上下文模型中以预测用于处理和解析话语的技能的话语。在一些实施例中,话语数据可以指示话语要作为聊天机器人模型和/或分类器模型的训练阶段的一部分来处理,以细化用于未来预测阶段的模型。在一些实施例中,话语数据可以指示话语来自客户或客户端所利用的自动数字助理,并且因此应当被用来提供与话语相对应的技能的预测,以在预测阶段期间回应客户/客户端的查询。在各种实施例中,响应于接收,由如话语变换器412等数据变换器对话语进行变换,以将数据变换成如话语向量700等话语向量,用于输入到如意图分类器418等分类器。
[0194]
在820中,确定话语数据的一个或多个意图。一个或多个意图是可以用于处理和生成对话语的回应的可能意图,或者是与将用于处理和生成对话语的回应的可预测技能相关联的可能意图。在一些实施例中,接收到的话语被发送到数据处理系统400的特定部分,或者具有与其相关联的元数据,以确定指示用于解析话语的一组技能/意图的特定聊天机器人或感兴趣领域。元数据可以用于确定话语数据的意图。例如,所述话语可能是从作为披萨外卖公司网站门户的一部分运行的自动数字助理接收到的,因此表明应使用经训练来处置披萨订单和相关询问的聊天机器人来处理所述话语。该聊天机器人与一组技能和意图相关联,并且这些意图将在选择聊天机器人时被确定。在一些实施例中,在步骤820中选择数据处理系统400已知的所有可能意图的超集。
[0195]
在830中,使用意图分类器模型生成与话语数据对应于一个或多个意图的概率相关联的一个或多个意图分类数据集。具体地,在820中确定的意图集用于选择与所确定的意图相对应的特定机器学习模型(如图7a中描绘的人工神经网络)。例如,在820中确定的意图集将全部对应于披萨外卖话语,并且还将对应于利用意图分类器模型作为用于解析基于披萨外卖的查询的多因素模型的一部分的聊天机器人。
[0196]
在实施人工神经网络的实施例中,特定意图分类器模型包括将从话语得到的向量化话语数据作为输入的节点,所述向量化话语数据将被映射到一组输入节点(比如输入节点710(a)-710(n))以开始生成一个或多个输出意图分类数据集的过程。从意图分类器输出的意图分类数据集是一组“得分”,比如意图得分740(a)-740(n),其与话语对应于在820中
确定的一个或多个意图中的特定意图的一组概率相对应。这类似于如图4所描绘的将话语数据416输入到意图分类器418以输出意图数据420。因此,从意图分类器模型得到的输出上下文数据集将指示特定意图最接近地对应于要解析的话语的可能性。
[0197]
在840中,使用掩码模型生成与一个或多个技能相对应的一个或多个变换后的数据集。具体地,将掩码模型应用于在830中生成的输出意图分类数据集,以基于掩码模型中的数据生成一个或多个变换后的数据集。这类似于如图4所描绘的将意图数据420输入到变换模型422中以输出技能数据。掩码模型可以是例如在数学上适用于意图分类数据集的向量化版本的向量。数学上将这样的掩码矩阵应用到向量化的意图分类数据将产生向量化的变换后的数据集。所生成的变换后的数据集可以对应于与对应于在820中确定的意图的一个或多个技能分类相关的相对得分或指标。例如,一个或多个变换后的数据集可以包括基于对意图分类数据集的变换而得到的每个技能的综合得分,所述综合得分将用于使用如技能选择指令430等技能选择指令来预测用于回应话语的技能。要应用的掩码可以包括用于将对应于意图的上下文值映射到对应于技能的相关变换后的值的映射值,比如掩码500。
[0198]
在850中,基于一个或多个变换后的数据集来确定用于处理该组话语数据的技能。所确定的技能将用于处理和回应在810中接收到的话语数据。例如,与技能数据424类似的变换后的数据集根据一组技能选择指令428或由技能分类器430进行处理以确定用于处理话语数据的预测技能。在一些实施例中,根据技能选择指令428来执行与值比较相对应的选择标准。在一些实施例中,机器学习模型(比如作为技能分类器430的一部分操作的模型)可以将变换后的数据集作为输入,并输出将用于选择用于处理和回应话语数据的预测技能的一组技能得分。下文参考图9给出了选择上下文技能分类的示例。
[0199]
在860中,使用所确定的技能来处理该组话语数据以解析一个或多个自然语言查询。例如,在850中确定的技能用于基于对话语数据的处理来处理和生成回应和/或执行响应性动作,以便解析自然语言查询。
[0200]
在各种实施例中,过程800作为聊天机器人模型的训练阶段的一部分来执行。例如,根据本文描述的方法在训练阶段期间计算损失函数或值。在各种实施例中,基于所计算的技能标签损失和意图标签损失来计算总损失。在各种进一步的实施例中,总损失被标准化并输入到变换模型中以更改变换模型。在各种进一步的实施例中,通过更改的变换模型来处理和变换询问文本数据。在各种实施例中,在更改变换模型之前和更改之后技能分类的确定被进一步比较和/或用于进一步训练变换模型。
[0201]
在各种实施例中,过程800作为聊天机器人模型的预测阶段的一部分来执行。例如,当将聊天机器人提供给客户用于预测动作时,技能分类器可能未使用本文描述的方法进行适当的训练。在这种情况下,在预测时接收的话语数据可以在选择技能之前首先由意图分类器处理并应用变换掩码以提高对用于回应基于自然语言的查询的技能的预测准确度。在一些实施例中,如果使用话语数据的直接输入来选择用于处理话语的上下文技能分类并且来自得到的变换后的数据集的相对值不满足或超过置信度阈值,则在预测时间使用包括意图分类器和掩码变换的过程800来重新处理话语。
[0202]
图9是根据某些实施例的根据意图分类技术对技能机器人的示例选择的简化框图。具体地,图9描绘了用于基于意图子分类的输出得分(比如根据图7a中所描绘的实施例并根据图8中描述的过程生成的那些)来选择用于处理基于自然语言的查询的技能的流程。
[0203]
意图900(a)-900(g)可以对应于上下文数据集,其表示意图与话语相对应的所得概率,例如图7a中描绘的输出意图得分740(a)-740(n)。每个意图对应于不同的能力或处理上下文。例如,如图9所描绘的,每个意图900(a)-900(g)对应于不同的意图任务,比如订购披萨、披萨店的客户评论等。每个意图900对应于如综合意图得分集910中所示的意图得分。意图得分是表示话语与意图相对应的概率的上下文数据集的一部分。例如,所处理的话语可能是“i ordered a pizza and it never showed up(我订了一份披萨,但它从未出现)”。
[0204]
根据掩码920对意图得分910进行变换以生成将用于选择用于处理话语数据的技能的变换后的数据集。例如,意图得分920以矩阵格式描绘,并且掩码以矩阵格式描绘,掩码与意图得分910相乘以生成对应的技能得分。应用掩码的方式和相应地选择技能的方式由作为技能选择指令428的一部分的得分选择器930子系统确定。例如,得分选择器930可以包括将意图得分910乘以掩码920以生成每个技能的技能得分940的指令。得分选择器930可以进一步指示技能得分940中的最高技能得分940将被用来选择用于处理话语的技能950。
[0205]
技能950(a)-950(c)是基于技能得分940并且根据一些得分选择器930标准而选择的技能。每个技能950与意图900(a)-900(g)的子集相关联。如图9所描绘的,技能得分940中的最高得分对应于“feedback skill(反馈技能)”950(b)。该技能包含“customer service(客户服务)”900(e)的意图,并且是处理和回应话语“i ordered a pizza and it never showed up”的适当技能。
[0206]
说明性系统
[0207]
图10描绘了分布式系统1000的简化图。在图示的示例中,分布式系统1000包括经由一个或多个通信网络1010耦接到服务器1012的一个或多个客户端计算设备1002、1004、1006和1008。客户端计算设备1002、1004、1006和1008被配置为执行一个或多个应用程序。
[0208]
在各种示例中,服务器1012被适配成运行实现本公开所描述的一个或多个实施例的一个或多个服务或软件应用程序。在某些示例中,服务器1012还可以提供可以包括非虚拟环境和虚拟环境的其他服务或软件应用程序。在一些示例中,这些服务作为基于web的服务或云服务(如在软件即服务(saas)模型下)提供给客户端计算设备1002、1004、1006和/或1008的用户。操作客户端计算设备1002、1004、1006和/或1008的用户进而可以利用一个或多个客户端应用程序来与服务器1012交互以利用这些部件所提供的服务。
[0209]
在图10所描绘的配置中,服务器1012可以包括实施由服务器1012执行的功能的一个或多个部件1018、1020和1022。这些部件可以包括由一个或多个处理器、硬件部件或其组合执行的软件部件。应了解,与分布式系统1000不同的各种不同系统配置是可能的。因此,图10所示出的示例是用于实施示例系统的分布式系统的一个示例并且不旨在是限制性的。
[0210]
用户可以使用客户端计算设备1002、1004、1006和/或1008来执行一个或多个应用程序、模型或聊天机器人,所述一个或多个应用程序、模型或聊天机器人可以生成然后可以根据本公开的传授内容实施或服务的一个或多个事件或模型。客户端设备可以提供使客户端设备的用户能够与客户端设备交互的接口。客户端设备还可以经由该接口向用户输出信息。尽管图10描绘了仅四个客户端计算设备,但是支持任何数量的客户端计算设备。
[0211]
客户端设备可以包括各种类型的计算系统,如便携式手持设备、如个人计算机和膝上型计算机等通用计算机、工作站计算机、可穿戴设备、游戏系统、瘦客户端、各种消息传
递设备、传感器或其他感测设备等。这些计算设备可以运行各种类型和版本的软件应用程序和操作系统(例如,microsoftapple或类unix操作系统、linux或类linux操作系统(如google chrome
tm
os)),包括各种移动操作系统(例如,microsoft windowswindowsandroid
tm
、palm)。便携式手持设备可以包括蜂窝电话、智能电话(例如,)、平板计算机(例如,)、个人数字助理(pda)等。可穿戴设备可以包括google头戴式显示器以及其他设备。游戏系统可以包括各种手持游戏设备、支持因特网的游戏设备(例如,有或没有姿势输入设备的microsoft游戏控制台、sony系统、由提供的各种游戏系统、以及其他)等。客户端设备能够执行各种不同的应用程序,如各种因特网相关应用程序、通信应用程序(例如,电子邮件应用程序、短消息服务(sms)应用程序)并可以使用各种通信协议。
[0212]
(多个)网络1010是本领域技术人员所熟悉的可以使用各种可用协议中的任何一种支持数据通信的任何类型的网络,所述可用协议包括但不限于tcp/ip(传输控制协议/因特网协议)、sna(系统网络架构)、ipx(因特网分组交换)、等。仅通过示例的方式,(多个)网络1010是局域网(lan)、基于以太网的网络、令牌环、广域网(wan)、因特网、虚拟网络、虚拟私人网络(vpn)、内部网、外部网、公共交换电话网(pstn)、红外线网、无线网(例如,根据电气与电子协会(ieee)1002.11协议套件、和/或任何其他无线协议中的任一种协议操作的网络)和/或这些网络和/或其他网络的任何组合。
[0213]
服务器1012由以下各项构成:一个或多个通用计算机、专用服务器计算机(通过示例的方式包括pc(个人计算机)服务器、服务器、中档服务器、大型计算机、机架式服务器等)、服务器群、服务器集群、或任何其他适当的布置和/或组合。服务器1012可以包括运行虚拟操作系统的一个或多个虚拟机或涉及虚拟化的其他计算架构,比如逻辑存储设备的被虚拟化以维护服务器的虚拟存储设备的一个或多个灵活池。在各种示例中,服务器1012被适配成运行提供前述公开内容所描述的功能的一个或多个服务或软件应用程序。
[0214]
服务器1012中的计算系统可以运行一个或多个操作系统,所述一个或多个操作系统包括上文所讨论的那些操作系统中的任何一个操作系统以及任何可商购获得的服务器操作系统。服务器1012也可以运行各种附加服务器应用程序和/或中间层应用程序中的任何一种应用程序,包括http(超文本运输协议)服务器、ftp(文件传送协议)服务器、cgi(通用网关接口)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于可从(国际商业机器公司)等商购获得的那些数据库服务器。
[0215]
在一些实施方式中,服务器1012可以包括一个或多个应用程序以分析并合并从客户端计算设备1002、1004、1006和1008的用户接收的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于馈送、更新或从一个或多个第三方信息源和连续数据流接收的实时更新,所述实时更新可以包括与传感器数据应用程序、财务收报机、网络性能测量工具(例如,网络监测和流量管理应用程序)、点击流分析工具、汽车交通监测等相关的实时事件。服务器1012还可以包括一个或多个应用程序以经由
客户端计算设备1002、1004、1006和1008的一个或多个显示设备来显示数据馈送和/或实时事件。
[0216]
分布式系统1000还可以包括一个或多个数据储存库1014、1016。在某些示例中,这些数据储存库用于存储数据和其他信息。例如,数据储存库1014、1016中的一个或多个用于存储信息(如与聊天机器人性能或生成的模型有关的信息)以供服务器1012在执行根据各种实施例的各种功能时使用的聊天机器人使用。数据储存库1014、1016可以驻留在各种位置。例如,服务器1012所使用的数据储存库在服务器1012本地或者远离服务器1012并经由基于网络的或专用的连接与服务器1012通信。数据储存库1014、1016是不同类型。在某些示例中,服务器1012所使用的数据储存库是数据库,例如关系数据库,如由oracle和其他供应商提供的数据库。这些数据库中的一个或多个数据库被适配成响应于sql格式的命令来实现数据到以及从数据库的存储、更新和取得。
[0217]
在某些示例中,数据储存库1014、1016中的一个或多个数据储存库还可以被应用程序用来存储应用程序数据。应用程序所使用的数据储存库是不同类型,如例如键值存储储存库、对象存储储存库或由文件系统支持的通用存储储存库。
[0218]
在某些示例中,本公开所描述的功能经由云环境作为服务提供。图11是根据某些示例的各种服务在其中作为云服务被提供的基于云的系统环境的简化框图。在图11所描绘的示例中,云基础设施系统1102可以提供由用户使用一个或多个客户端计算设备1104、1106和1108请求的一个或多个云服务。云基础设施系统1102可以包括一个或多个计算机和/或服务器,所述一个或多个计算机和/或服务器可以包括上文针对服务器612所描述的那些计算机和/或服务器。云基础设施系统1102中的计算机被组织成通用计算机、专用服务器计算机、服务器群、服务器集群或任何其他适当的布置和/或组合。
[0219]
(多个)网络1110可以促进客户端1104、1106和1108与云基础设施系统1102之间的数据通信和交换。(多个)网络1110可以包括一个或多个网络。网络是相同或不同的类型。(多个)网络1110可以支持一个或多个通信协议(包括有线和/或无线协议)以促进通信。
[0220]
图11所描绘的示例仅是云基础设施系统的一个示例并且不旨在是限制性的。应了解,在一些其他示例中,云基础设施系统1102可以具有比图11所描绘的那些部件更多或更少的部件、可以组合两个或更多个部件或者可以具有不同的部件配置或布置。例如,尽管图11描绘了三个客户端计算设备,但是在替代性示例中,支持任何数量的客户端计算设备。
[0221]
术语云服务通常用于指代通过服务提供商的系统(例如,云基础设施系统1102)按需且经由如因特网等通信网络变得可用于用户的服务。通常,在公共云环境中,构成云服务提供商的系统的服务器和系统与客户自身的室内服务器和系统不同。云服务提供商的系统由云服务提供商管理。因此,客户可以使自身利用由云服务提供商提供的云服务,而不必针对服务购买单独的许可证、支持或硬件和软件资源。例如,云服务提供商的系统可以托管应用程序,并且用户可以经由因特网按需订购并使用应用程序,而用户不必购买用于执行应用程序的基础设施资源。云服务被设计成提供对应用程序、资源和服务的容易的、可伸缩的访问。几个提供商提供云服务。例如,由加利福尼亚州红木海岸(redwood shores,california)的oracle提供如中间件服务、数据库服务、java云服务以及其他服务等几种云服务。
[0222]
在某些示例中,云基础设施系统1102可以使用不同的模型(如在软件即服务
(saas)模型、平台即服务(paas)模型、基础设施即服务(iaas)模型和其他模型(包括混合服务模型)下)提供一个或多个云服务。云基础设施系统1102可以包括实现对各种云服务的供给的一套应用程序、中间件、数据库和其他资源。
[0223]
saas模型使应用程序或软件能够作为服务通过如因特网等通信网络输送给客户,而客户不必购买底层应用程序的硬件或软件。例如,使用saas模型为客户提供对由云基础设施系统1102托管的按需应用程序的访问。oracle提供的saas服务的示例包括但不限于用于人力资源/资本管理、客户关系管理(crm)、企业资源规划(erp)、供应链管理(scm)、企业绩效管理(epm)、分析服务、社交应用程序以及其他等的各种服务。
[0224]
iaas模型通常用于将基础设施资源(例如,服务器、存储、硬件和联网资源)作为云服务提供给客户以提供弹性计算和存储能力。由oracle提供各种iaas服务。
[0225]
paas模型通常用于提供使客户能够开发、运行并管理应用程序和服务而客户不必采购、构建或维护这种资源的平台和环境资源作为服务。由oracle提供的paas服务的示例包括但不限于oracle java云服务(jcs)、oracle数据库云服务(dbcs)、数据管理云服务、各种应用程序开发解决方案服务、以及其他服务。
[0226]
云服务通常是以按需自助服务基础、基于订阅、可弹性伸缩、可靠、高度可用且安全的方式提供的。例如,客户可以经由订阅订单来订购由云基础设施系统1102提供的一个或多个服务。然后,云基础设施系统1102执行处理以提供客户的订阅订单中请求的服务。例如,用户可以使用话语来请求云基础设施系统采取如上文所描述的某个动作(例如,意图)和/或为如本文所描述的聊天机器人系统提供服务。云基础设施系统1102被配置为提供一个或甚至多个云服务。
[0227]
云基础设施系统1102可以经由不同的部署模型提供云服务。在公共云模型中,云基础设施系统1102由第三方云服务提供商拥有,并且云服务被提供给任何一般的公众客户,其中,所述客户是个人或企业。在某些其他示例中,在私有云模型下,云基础设施系统1102在组织内(例如,在企业组织内)操作并且服务被提供给组织内的客户。例如,客户是如人力资源部门、薪资部门等企业的各个部门或甚至是企业内的个人。在某些其他示例中,在社区云模型下,云基础设施系统1102和所提供的服务由有关的社区中的几个组织共享。也可以使用如上文所提到的模型的混合等各种其他模型。
[0228]
客户端计算设备1104、1106和1108是不同类型的(如图10所描绘的客户端计算设备1002、1004、1006和1008)并且能够操作一个或多个客户端应用程序。用户可以使用客户端设备与云基础设施系统1102交互,如请求由云基础设施系统1102提供的服务。例如,用户可以使用客户端设备从如本公开所描述的聊天机器人请求信息或动作。
[0229]
在一些示例中,由云基础设施系统1102执行的用于提供服务的处理可以涉及模型训练和部署。此分析可以涉及使用、分析并操纵数据集来训练并部署一个或多个模型。该分析由一个或多个处理器执行,从而可能并行地处理数据、使用数据执行模拟等。例如,大数据分析由云基础设施系统1102执行以用于针对聊天机器人系统生成并训练一个或多个模型。用于该分析的数据可以包括结构化数据(例如,存储在数据库中或根据结构化模型结构化的数据)和/或非结构化数据(例如,数据块(二进制大对象))。
[0230]
如图11中的示例所描绘的,云基础设施系统1102可以包括被用于促进供给由云基础设施系统1102提供的各种云服务的基础设施资源1130。基础设施资源1130可以包括例如
处理资源、存储或存储器资源、联网资源等。在某些示例中,可用于服务从应用程序请求的存储的存储虚拟机是云基础设施系统1102的一部分。在其他示例中,存储虚拟机是不同系统的一部分。
[0231]
在某些示例中,为了促进这些资源的高效供给以支持由云基础设施系统1102为不同客户提供的各种云服务,资源被捆绑成资源组或资源模块(也称为“群(pod)”)中。每个资源模块或群可以包括一种或多种类型的资源的预先集成且优化的组合。在某些示例中,针对不同类型的云服务预先供给不同的群。例如,针对数据库服务供给第一组群、针对java服务供给第二组群(其可以包括与第一组群中的群不同的资源组合)等。对于一些服务,被分配用于供给服务的资源在服务之间共享。
[0232]
云基础设施系统1102自身可以在内部使用由云基础设施系统1102的不同部件共享并且促进云基础设施系统1102供给服务的服务1132。这些内部共享服务可以包括但不限于安全和身份服务、整合服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高度可用性、备份和恢复服务、用于实现云支持的服务、电子邮件服务、通知服务、文件传送服务等。
[0233]
云基础设施系统1102可以包括多个子系统。这些子系统以软件或硬件或其组合实施。如图11所描绘的,子系统可以包括使得云基础设施系统1102的用户或客户能够与云基础设施系统1102交互的用户接口子系统1112。用户接口子系统1112可以包括各种不同的接口,如web接口1114、在线商店接口1116(其中,广告并且消费者可购买由云基础设施系统1102提供的云服务)和其他接口1118。例如,客户可以使用客户端设备请求(服务请求1134)由云基础设施系统1102使用接口1114、1116和1118中的一个或多个接口提供的一个或多个服务。例如,客户可以访问在线商店、浏览由云基础设施系统1102提供的云服务并且针对客户希望订阅的由云基础设施系统1102提供的一个或多个服务下订阅订单。服务请求可以包括标识客户和客户期望订阅的一个或多个服务的信息。例如,客户可以针对由云基础设施系统1102提供的服务下订阅订单。作为订单的一部分,客户可以提供标识服务要针对其提供的聊天机器人系统的信息并且可选地为聊天机器人系统提供一个或多个凭证。
[0234]
在某些示例(如图11所描绘的示例)中,云基础设施系统1102可以包括被配置为处理新订单的订单管理子系统(oms)1120。作为该处理的一部分,oms 1120被配置为:为客户创建账户(如果尚未创建的话);从客户接收要用于向客户开具账单以向客户提供所请求的服务的账单和/或计费信息;验证客户信息;在验证之后,为客户预订订单;并且策划各种工作流程来准备订单以进行供给。
[0235]
一旦被正确地验证,那么,oms 1120就可以调用被配置成为订单供给资源(包括处理资源、存储器资源和联网资源)的订单供给子系统(ops)1124。供给可以包括为订单分配资源并配置资源以促进客户订单所请求的服务。为订单供给资源的方式和所供给的资源的类型可以取决于客户已经订购的云服务的类型。例如,根据一个工作流程,ops 1124被配置为确定正在请求的特定云服务并且识别可能已经为所述特定云服务预先配置的群的数量。为订单分配的群的数量可以取决于所请求服务的大小/量/层级/范围。例如,基于服务所要支持的用户的数量、正在请求的服务的持续时间等来确定要分配的群的数量。然后,可以为特定的请求客户定制分配的群以用于提供所请求服务。
[0236]
在某些示例中,如上文所描述的设置阶段处理作为供给过程的一部分由云基础设
施系统1102来执行。云基础设施系统1102可以生成应用程序id并从云基础设施系统1102自身所提供的存储虚拟机中或从除云基础设施系统1102以外的其他系统所提供的存储虚拟机中为应用程序选择存储虚拟机。
[0237]
云基础设施系统1102可以向请求客户发送回应或通知1144,以指示何时所请求服务现在已准备好使用。在一些实例中,向客户发送使客户能够开始使用和利用所请求服务的益处的信息(例如,链接)。在某些示例中,对于请求服务的客户,回应可以包括由云基础设施系统1102生成的聊天机器人系统id和标识由云基础设施系统1102对应于聊天机器人系统id为聊天机器人系统选择的聊天机器人系统的信息。
[0238]
云基础设施系统1102可以向多个客户提供服务。对于每个客户,云基础设施系统1102负责管理与从客户接收的一个或多个订阅订单有关的信息、维护与订单相关的客户数据并且向客户提供所请求服务。云基础设施系统1102还可以收集关于客户使用所订阅服务的使用情况统计数据。例如,收集所使用的存储量、所传送的数据量、用户的数量以及系统开机时间量和系统停机时间量等的统计数据。使用该使用情况信息向客户开具账单。例如以月为周期完成开具账单。
[0239]
云基础设施系统1102可以并行地向多个客户提供服务。云基础设施系统1102可以存储这些客户的信息(可能包括专有信息)。在某些示例中,云基础设施系统1102包括被配置为管理客户信息并提供对所管理信息的分离使得与一个客户有关的信息不能被另一个客户访问的身份管理子系统(ims)1128。ims 1128被配置为提供如身份服务等各种安全有关服务,如信息访问管理、认证和授权服务、用于管理客户身份和角色以及相关功能的服务等。
[0240]
图12图示了计算机系统1200的示例。在一些示例中,计算机系统1200用于实施分布式环境内的任何数字助理或聊天机器人系统以及上文所描述的各种服务器和计算机系统。如图12所示,计算机系统1200包括各种子系统,包括经由总线子系统1202与多个其他子系统通信的处理子系统1204。这些其他子系统可以包括处理加速单元1206、i/o子系统1208、存储子系统1218和通信子系统1224。存储子系统1218可以包括非暂态计算机可读存储介质,包括存储介质1222和系统存储器1210。
[0241]
总线子系统1202提供用于允许计算机系统1200的各个部件和子系统按预期彼此通信的机构。虽然总线子系统1202被示意性地示出为单个总线,但是总线子系统的替代性示例可以利用多个总线。总线子系统1202是包括存储器总线或存储器控制器、外围总线、使用各种总线架构中的任何一种的局部总线等的若干种类型的总线结构中的任何一种。例如,这种架构可以包括工业标准架构(isa)总线、微通道架构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)局部总线以及外围部件互连(pci)总线(其被实施为被制造成ieee p1386.1标准的夹层(mezzanine)总线)等。
[0242]
处理子系统1204控制计算机系统1200的操作并且可以包括一个或多个处理器、专用集成电路(asic)或现场可编程门阵列(fpga)。处理器可以包括单核处理器或多核处理器。计算机系统1200的处理资源被组织成一个或多个处理单元1232、1234等。处理单元可以包括一个或多个处理器、来自相同或不同处理器的一个或多个核、核和处理器的组合或核和处理器的其他组合。在一些示例中,处理子系统1204可以包括如图形处理器、数字信号处理器(dsp)等一个或多个专用协处理器。在一些示例中,处理子系统1204的处理单元中的一
些或全部使用如专用集成电路(asic)或现场可编程门阵列(fpga)等定制电路来实施。
[0243]
在一些示例中,处理子系统1204中的处理单元可以执行存储在系统存储器1210内或计算机可读存储介质1222上的指令。在各种示例中,处理单元可以执行各种程序或代码指令并且可以维护多个同时执行的程序或过程。在任何给定时间,要执行的程序代码中的一些或全部驻留在系统存储器1210中和/或计算机可读存储介质1222上(潜在地包括驻留在一个或多个存储设备上)。通过适合的编程,处理子系统1204可以提供上文所描述的各种功能。在计算机系统1200在执行一个或多个虚拟机的实例中,向每个虚拟机分配一个或多个处理单元。
[0244]
在某些示例中,可以可选地提供处理加速单元1206以用于执行定制处理或用于卸载处理子系统1204所执行的处理中的一些处理,从而加速计算机系统1200所执行的总体处理。
[0245]
i/o子系统1208可以包括用于向计算机系统1200输入信息和/或用于从或经由计算机系统1200输出信息的设备和机构。通常,使用术语输入设备旨在包括用于向计算机系统1200输入信息的所有可能类型的设备和机构。用户接口输入设备可以包括例如键盘、如鼠标或轨迹球等指向设备、合并到显示器中的触摸板或触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、具有话音命令识别系统的音频输入设备、麦克风以及其他类型的输入设备。用户接口输入设备还可以包括运动感测和/或姿势识别设备,如使用户能够控制输入设备并与输入设备交互的microsoft运动传感器、microsoft360游戏控制器、提供用于使用姿势和口述命令接收输入的界面的设备。用户接口输入设备还可以包括眼部姿势识别设备,如检测来自用户的眼部活动(例如,在拍照和/或进行菜单选择时“眨眼”)并将眼部姿势转化为到输入设备(如google)的输入的google眨眼检测器。另外,用户接口输入设备可以包括使用户能够通过声音命令与声音识别系统(例如,导航器)交互的声音识别感测设备。
[0246]
用户接口输入设备的其他示例包括但不限于三维(3d)鼠标、操纵杆或指向杆、游戏手柄和图形板、以及音频/视觉设备(如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3d扫描仪、3d打印机、激光测距仪、眼睛注视跟踪设备)。另外,用户接口输入设备可以包括例如医学成像输入设备,如计算机断层扫描、磁共振成像、正电子发射断层扫描和医学超声检查设备。用户接口输入设备还可以包括例如音频输入设备,如midi键盘、数码乐器等。
[0247]
通常,使用术语输出设备旨在包括用于从计算机系统1200向用户或其他计算机输出信息的所有可能类型的设备和机构。用户接口输出设备可以包括显示子系统、指示灯或如音频输出设备等非视觉显示器。显示子系统是阴极射线管(crt)、平板设备(如使用液晶显示器(lcd)或等离子显示器的平板设备)、投影设备、触摸屏等。例如,用户接口输出设备可以包括但不限于在视觉上传达文本、图形和音频/视频信息的各种显示设备,如监视器、打印机、扬声器、头戴式耳机、汽车导航系统、绘图仪、话音输出设备和调制解调器。
[0248]
存储子系统1218提供用于存储计算机系统1200所使用的信息和数据的储存库或数据存储。存储子系统1218提供用于存储提供一些示例的功能的基本编程和数据构造的有形非暂态计算机可读存储介质。存储子系统1218可以存储当由处理子系统1204执行时提供上文所描述的功能的软件(例如,程序、代码模块、指令)。软件由处理子系统1204的一个或
多个处理单元执行。存储子系统1218还可以根据本公开的传授内容提供认证。
[0249]
存储子系统1218可以包括一个或多个非暂态存储器设备,所述一个或多个非暂态存储器设备包括易失性存储器设备和非易失性存储器设备。如图12所示,存储子系统1218包括系统存储器1210和计算机可读存储介质1222。系统存储器1210可以包括多个存储器,包括用于在程序执行期间存储指令和数据的易失性主随机存取存储器(ram)和其中存储有固定指令的非易失性只读存储器(rom)或闪速存储器。在一些实施方式中,包含在启动期间帮助计算机系统1200内的元件之间传送信息的基本例程的基本输入/输出系统(bios)通常可以存储在rom中。ram通常包含目前由处理子系统1204操作并执行的数据和/或程序模块。在一些实施方式中,系统存储器1210可以包括如静态随机存取存储器(sram)、动态随机存取存储器(dram)等多种不同类型的存储器。
[0250]
通过示例而非限制的方式,如图12所描绘的,系统存储器1210可以加载正在执行的应用程序1212(所述应用程序可以包括如web浏览器、中间层应用程序、关系数据库管理系统(rdbms)等各种应用程序)、程序数据1214和操作系统1216。通过示例的方式,操作系统1216可以包括各种版本的microsoftapple和/或linux操作系统、各种可商购获得的或类unix操作系统(包括但不限于各种gnu/linux操作系统、googleos等)和/或如ios、电话、os、os、os操作系统等移动操作系统、以及其他操作系统。
[0251]
计算机可读存储介质1222可以存储提供一些示例的功能的编程和数据构造。计算机可读介质1222可以为计算机系统1200提供对计算机可读指令、数据结构、程序模块和其他数据的存储。当由处理子系统1204执行时提供上文所描述的功能的软件(程序、代码模块、指令)存储在存储子系统1218中。通过示例的方式,计算机可读存储介质1222可以包括如硬盘驱动器、磁盘驱动器、光盘驱动器(如cd rom、dvd、盘或其他光学介质)等非易失性存储器。计算机可读存储介质1222可以包括但不限于驱动器、闪速存储器卡、通用串行总线(usb)闪速存储器驱动器、安全数字(sd)卡、dvd盘、数字录像带等。计算机可读存储介质1222还可以包括如基于闪速存储器的固态驱动器(ssd)、企业级闪速存储器驱动器、固态rom等基于非易失性存储器的ssd、基于如固态ram、动态ram、静态ram等易失性存储器的ssd、基于dram的ssd、磁阻ram(mram)ssd以及使用dram和基于闪速存储器的ssd的组合的混合ssd。
[0252]
在某些示例中,存储子系统1218还可以包括可以进一步连接到计算机可读存储介质1222的计算机可读存储介质读取器1220。读取器1220可以从如盘、闪速存储器驱动器等存储器设备接收数据并且被配置为从所述存储器设备读取数据。
[0253]
在某些示例中,计算机系统1200可以支持虚拟化技术,包括但不限于对处理和存储器资源的虚拟化。例如,计算机系统1200可以提供对执行一个或多个虚拟机的支持。在某些示例中,计算机系统1200可以执行如促进对虚拟机的配置和管理的管理程序等程序。每个虚拟机分配有存储器、计算(例如,处理器、核)、i/o和联网资源。每个虚拟机通常独立于其他虚拟机运行。虚拟机通常运行其自身的操作系统,所述操作系统与由计算机系统1200所执行的其他虚拟机执行的操作系统相同或不同。因此,多个操作系统可以潜在地由计算机系统1200同时运行。
[0254]
通信子系统1224提供到其他计算机系统和网络的接口。通信子系统1224用作用于从其他系统接收数据并且从计算机系统1200向其他系统传输数据的接口。例如,通信子系统1224可以使得计算机系统1200能够经由因特网构建到一个或多个客户端设备的通信通道以用于从客户端设备接收信息并向客户端设备发送信息。例如,当计算机系统1200用于实施图1所描绘的机器人系统120时,通信子系统用于与针对应用程序选择的聊天机器人系统通信。
[0255]
通信子系统1224可以支持有线通信协议和/或无线通信协议两者。在某些示例中,通信子系统1224可以包括用于访问无线声音和/或数据网络的射频(rf)收发器部件(例如,使用蜂窝电话技术、如3g、4g或edge(全球演进增强型数据速率)等先进的数据网络技术、wifi(ieee 802.xx家庭标准、或其他移动通信技术、或其任何组合)、全球定位系统(gps)接收器部件和/或其他部件。在一些示例中,除了无线接口之外或替代无线接口,通信子系统1224可以提供有线网络连接性(例如,以太网)。
[0256]
通信子系统1224可以接收并发射各种形式的数据。在一些示例中,除了其他形式之外,通信子系统1224还可以接收结构化和/或非结构化数据馈送1226、事件流1228、事件更新1230等形式的输入通信。例如,通信子系统1224被配置为从社交媒体网络和/或其他通信服务的用户实时地接收(或发送)数据馈送1226,如馈送、更新、web馈送(如丰富站点摘要(rss)馈送)和/或来自一个或多个第三方信息源的实时更新。
[0257]
在某些示例中,通信子系统1224被配置为接收连续数据流形式的数据,所述连续数据流可以包括实时事件的事件流1228和/或事件更新1230,本质上是连续的或无界的而没有明确的结束。生成连续数据的应用程序的示例可以包括例如传感器数据应用程序、财务收报机、网络性能测量工具(例如,网络监测和流量管理应用程序)、点击流分析工具、汽车交通监测等。
[0258]
通信子系统1224还可以被配置为将数据从计算机系统1200传送到其他计算机系统或网络。将数据以如结构化和/或非结构化数据馈送1226、事件流1228、事件更新1230等各种不同的形式传送到与耦接至计算机系统1200的一个或多个流数据源计算机通信的一个或多个数据库。
[0259]
计算机系统1200是各种类型中的一种,包括手持便携式设备(例如,蜂窝电话、计算平板计算机、pda)、可穿戴设备(例如,google头戴式显示器)、个人计算机、工作站、主机、自助服务终端、服务器机架、或任何其他数据处理系统。由于计算机和网络的不断变化的性质,对图12所描绘的计算机系统1200的描述旨在仅作为具体示例。具有比图12所描绘的系统更多或更少的部件的许多其他配置是可能的。基于本公开和本文所提供的传授内容,应了解,有其他方式和/或方法来实施各种示例。
[0260]
虽然已经描述了具体示例,但是各种修改、更改、替代性构造和等同物是可能的。示例不局限于在某些具体数据处理环境中的操作,而是自由地在多个数据处理环境中操作。另外,尽管已经使用特定系列的事务和步骤描述了某些示例,但是对于本领域技术人员而言应当显而易见的是,这不旨在是限制性的。虽然一些流程图将操作描述为顺序过程,但是许多操作是并行地或同时地执行的。另外,操作的顺序被重新布置。过程可以具有图中未包括的另外的步骤。上述示例的各种特征和方面被单独地或联合地使用。
[0261]
进一步地,虽然已经使用硬件和软件的特定组合描述了某些示例,但是应当认识
到,硬件和软件的其他组合也是可能的。某些示例仅以硬件、或仅以软件、或使用其组合来实施。本文所描述的各种过程在相同处理器或不同处理器上以任何组合实施。
[0262]
在将设备、系统、部件或模块描述为被配置为执行某些操作或功能的情况下,这种配置例如通过将电子电路设计成执行操作、通过对可编程电子电路(如微处理器)进行编程以执行操作(如通过执行计算机指令或代码)或通过被编程成执行存储在非暂态存储器介质上的代码或指令的处理器或核或其任何组合来完成。过程可以使用包括但不限于用于过程间通信的传统技术的各种技术进行通信,并且不同的过程对可以使用不同的技术,或者相同的过程对可以在不同的时间使用不同的技术。
[0263]
本公开中给出了具体细节以提供对示例的透彻理解。然而,在没有这些具体细节的情况下实践示例。例如,已经示出了公知的电路、过程、算法、结构和技术,而没有不必要的细节,以避免模糊示例。此描述仅提供了示例性示例并且不旨在限制其他示例的范围、适用性或配置。而是,先前对示例的描述将为本领域技术人员提供用于实施各种示例的使能描述。对元件的功能和布置作出各种改变。
[0264]
因此,应当从说明性而非限制性意义上看待本说明书和附图。然而,将明显的是,在不脱离权利要求中阐述的更广泛的精神和范围的情况下,能够对其作出添加、减少、删除以及其他修改和改变。因此,虽然已经描述了具体示例,但是这些示例不旨在是限制性的。各种修改和等同物均在以下权利要求的范围内。
[0265]
在前述说明书中,参考本公开的具体示例描述了本公开的各方面,但是本领域技术人员将认识到,本公开并不限于此。上述公开的各种特征和方面被单独地或联合地使用。进一步地,在不脱离说明书的更广泛的精神和范围的情况下,能够在除了本文所描述的那些环境和应用程序外的任何数量的环境和应用程序中利用示例。因此,说明书和附图应被视为说明性的而非限制性的。
[0266]
在前述描述中,出于说明的目的,以特定顺序描述了方法。应了解,在替代性示例中,以与所描述的顺序不同的顺序来执行方法。还应当了解,上文所描述的方法由硬件部件执行或者体现在机器可执行指令的序列中,所述指令用于使机器(如用所述指令编程的通用或专用处理器或逻辑电路)执行所述方法。这些机器可执行指令存储在一个或多个机器可读介质上,如cd-rom或其他类型的光盘、软盘、rom、ram、eprom、eeprom、磁卡或光卡、闪速存储器或适合于存储电子指令的其他类型的机器可读介质。可替代地,方法由硬件和软件的组合来执行。
[0267]
在将部件描述为被配置为执行某些操作的情况下,这种配置例如通过设计用于执行操作的电子电路或其他硬件、通过对用于执行操作的可编程电子电路(例如,微处理器或其他适合的电子电路)进行编程或其任何组合来完成。
[0268]
尽管本文已经详细描述了本技术的说明性示例,但是应当理解,以其他方式不同地体现并采用本发明概念,并且所附权利要求旨在被解释为包括这种变化,受现有技术限制的情况除外。
技术特征:
1.一种方法,包括:由计算设备接收与能由聊天机器人解释的基于自然语言的查询相对应的一组话语数据;由所述计算设备为所述聊天机器人确定一个或多个意图,其中,所述一个或多个意图中的每一个对应于所述基于自然语言的查询的可能上下文并且与所述聊天机器人的一个或多个技能中的一技能相关联;由所述计算机设备使用意图分类器模型基于所述一个或多个意图来生成一个或多个意图分类数据集,其中,每个意图分类数据集与所述自然语言查询对应于所述一个或多个意图中的一意图的概率相关联;由所述计算设备使用变换掩码模型基于所述一个或多个意图分类数据集生成一个或多个变换后的数据集,其中,所述一个或多个变换后的数据集中的每一个对应于所述一个或多个技能中的一技能;由所述计算设备基于所述一个或多个变换后的数据集来确定所述一个或多个技能中的第一技能;以及基于所确定的第一技能来处理所述一组话语数据以解析所述基于自然语言的查询。2.如权利要求1所述的方法,其中,所述一组话语数据是从与同所述计算机设备通信的自动数字助理交互的客户端设备接收的。3.如权利要求1所述的方法,其中,所述变换掩码模型包括一个或多个变换值,每个变换值对应于至少一个意图与至少一个技能的比率。4.如权利要求3所述的方法,其中:所述一组话语数据至少包括所述一个或多个技能的基本事实技能的指示;并且所述方法进一步包括:由所述计算设备将所述基本事实技能与所述第一技能进行比较以生成一个或多个训练损失值;以及由所述计算设备基于所述训练损失值来更改所述一个或多个变换值。5.如权利要求1所述的方法,其中:所述意图分类器模型是被配置为接收所述一组话语数据作为输入并输出所述一个或多个意图分类数据集的机器学习模型;所述一组话语数据至少包括所述一个或多个技能的基本事实技能的指示;并且所述方法进一步包括:由所述计算设备将所述基本事实技能与所述第一技能进行比较以生成一个或多个训练损失值;以及由所述计算设备通过基于所述训练损失值更改所述机器学习模型的结构来使用所述一个或多个训练损失值训练所述机器学习模型。6.如权利要求1所述的方法,进一步包括:由所述计算设备使用技能分类器模型生成第二技能数据,其中,所述技能分类器模型是被配置为接收所述一组话语数据作为输入并输出所述一个或多个技能中的预测技能的机器学习模型;由所述计算设备比较所述第一技能和所述第二技能以生成一个或多个训练损失值,所
述一个或多个训练损失值对应于所述第一技能与所述第二技能之间的一个或多个差异;以及由所述计算设备通过基于所述训练损失值更改所述机器学习模型的结构来使用所述一个或多个训练损失值训练所述机器学习模型。7.如权利要求1所述的方法,进一步包括:基于所确定的第一技能处理所述一组话语数据以生成对所述基于自然语言的查询的基于自然语言的回应;以及将所述基于自然语言的回应发送到客户端设备。8.如权利要求1所述的方法,进一步包括由所述计算设备处理所述话语数据以生成呈用于输入到所述意图分类器模型的格式的细化话语数据,所述细化话语数据被输入到所述意图分类器模型中以导致生成所述一个或多个意图分类数据集。9.如权利要求1所述的方法,其中:所述一个或多个变换后的数据集中的每个变换后的数据集包括与所述话语数据对应于所述一个或多个技能中的一技能的可能性相对应的概率值;并且确定所述第一技能包括选择与具有一个或多个概率值的集合中的最高概率值的变换后的数据集相对应的技能。10.如权利要求1所述的方法,其中,确定所述第一技能包括基于与所述意图分类数据集相关联的所述概率值为每个技能生成一个或多个平均概率值,并选择与所述一个或多个平均概率值中的最高平均概率值相关联的技能。11.一种包括集成计算系统的系统,所述集成计算系统包括一个或多个处理器和其上存储有指令的非暂态机器可读存储介质,所述指令当由所述一个或多个处理器执行时使所述一个或多个处理器执行以下操作:由计算设备接收与能由聊天机器人解释的基于自然语言的查询相对应的一组话语数据;由所述计算设备为所述聊天机器人确定一个或多个意图,其中,所述一个或多个意图中的每一个对应于所述基于自然语言的查询的可能上下文并且与所述聊天机器人的一个或多个技能中的一技能相关联;由所述计算机设备使用意图分类器模型基于所述一个或多个意图来生成一个或多个意图分类数据集,其中,每个意图分类数据集与所述自然语言查询对应于所述一个或多个意图中的一意图的概率相关联;由所述计算设备使用变换掩码模型基于所述一个或多个意图分类数据集生成一个或多个变换后的数据集,其中,所述一个或多个变换后的数据集中的每一个对应于所述一个或多个技能中的一技能;由所述计算设备基于所述一个或多个变换后的数据集来确定所述一个或多个技能中的第一技能;以及基于所确定的第一技能来处理所述一组话语数据以解析所述基于自然语言的查询。12.如权利要求11所述的系统,其中,所述一组话语数据是从与同所述计算机设备通信的自动数字助理交互的客户端设备接收的。13.如权利要求11所述的系统,其中,所述变换掩码模型包括一个或多个变换值,每个
变换值对应于至少一个意图与至少一个技能的比率。14.如权利要求13所述的系统,其中:所述一组话语数据至少包括所述一个或多个技能的基本事实技能的指示;并且所述方法进一步包括:由所述计算设备将所述基本事实技能与所述第一技能进行比较以生成一个或多个训练损失值;以及由所述计算设备基于所述训练损失值来更改所述一个或多个变换值。15.如权利要求11所述的系统,其中:所述意图分类器模型是被配置为接收所述一组话语数据作为输入并输出所述一个或多个意图分类数据集的机器学习模型;所述一组话语数据至少包括所述一个或多个技能的基本事实技能的指示;并且所述方法进一步包括:由所述计算设备将所述基本事实技能与所述第一技能进行比较以生成一个或多个训练损失值;以及由所述计算设备通过基于所述训练损失值更改所述机器学习模型的结构来使用所述一个或多个训练损失值训练所述机器学习模型。16.如权利要求11所述的系统,进一步包括:由所述计算设备使用技能分类器模型生成第二技能数据,其中,所述技能分类器模型是被配置为接收所述一组话语数据作为输入并输出所述一个或多个技能中的预测技能的机器学习模型;由所述计算设备比较所述第一技能和所述第二技能以生成一个或多个训练损失值,所述一个或多个训练损失值对应于所述第一技能与所述第二技能之间的一个或多个差异;以及由所述计算设备通过基于所述训练损失值更改所述机器学习模型的结构来使用所述一个或多个训练损失值训练所述机器学习模型。17.一种非暂态机器可读存储介质,其上存储有指令,所述指令当由一个或多个处理器执行时使所述一个或多个处理器执行以下操作:由计算设备接收与能由聊天机器人解释的基于自然语言的查询相对应的一组话语数据;由所述计算设备为所述聊天机器人确定一个或多个意图,其中,所述一个或多个意图中的每一个对应于所述基于自然语言的查询的可能上下文并且与所述聊天机器人的一个或多个技能中的一技能相关联;由所述计算机设备使用意图分类器模型基于所述一个或多个意图来生成一个或多个意图分类数据集,其中,每个意图分类数据集与所述自然语言查询对应于所述一个或多个意图中的一意图的概率相关联;由所述计算设备使用变换掩码模型基于所述一个或多个意图分类数据集生成一个或多个变换后的数据集,其中,所述一个或多个变换后的数据集中的每一个对应于所述一个或多个技能中的一技能;由所述计算设备基于所述一个或多个变换后的数据集来确定所述一个或多个技能中
的第一技能;以及基于所确定的第一技能来处理所述一组话语数据以解析所述基于自然语言的查询。18.如权利要求17所述的非暂态机器可读存储介质,其中,所述一个或多个处理器进一步执行以下操作:基于所确定的第一技能处理所述一组话语数据以生成对所述基于自然语言的查询的基于自然语言的回应;以及将所述基于自然语言的回应发送到客户端设备。19.如权利要求17所述的非暂态机器可读存储介质,其中,所述一个或多个处理器进一步执行以下操作:由所述计算设备处理所述话语数据以生成呈用于输入到所述意图分类器模型的格式的细化话语数据,所述细化话语数据被输入到所述意图分类器模型中以导致生成所述一个或多个意图分类数据集。20.如权利要求17所述的非暂态机器可读存储介质,其中:所述一个或多个变换后的数据集中的每个变换后的数据集包括与所述话语数据对应于所述一个或多个技能中的一技能的可能性相对应的概率值;以及确定所述第一技能包括选择与具有一个或多个概率值的集合中的最高概率值的变换后的数据集相对应的技能。
技术总结
公开了用于系统的技术,包括用于训练和利用聊天机器人系统进行自然语言处理的多因素建模的技术。在实施例中,一种方法包括:接收与基于自然语言的查询相对应的一组话语数据;为聊天机器人确定一个或多个意图,所述一个或多个意图对应于基于自然语言的查询的可能上下文并且与聊天机器人的技能相关联;生成一个或多个意图分类数据集,每个意图分类数据集与自然语言查询对应于一个或多个意图中的意图的概率相关联;生成一个或多个变换后的数据集,每个变换后的数据集对应于一个或多个技能中的技能;基于一个或多个变换后的数据集来确定一个或多个技能中的第一技能;以及基于所确定的第一技能来处理该组话语数据以解析基于自然语言的查询。然语言的查询。然语言的查询。
技术研发人员:E
受保护的技术使用者:甲骨文国际公司
技术研发日:2022.01.19
技术公布日:2023/9/23
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/