CN114365119A - 在聊天机器人系统中检测不相关的话语 - Google Patents
在聊天机器人系统中检测不相关的话语 Download PDFInfo
- Publication number
- CN114365119A CN114365119A CN202080063757.9A CN202080063757A CN114365119A CN 114365119 A CN114365119 A CN 114365119A CN 202080063757 A CN202080063757 A CN 202080063757A CN 114365119 A CN114365119 A CN 114365119A
- Authority
- CN
- China
- Prior art keywords
- training
- robot
- input
- feature vector
- skills
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
- G06F40/35—Discourse or dialogue representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/02—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Medical Informatics (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Machine Translation (AREA)
- Manipulator (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
描述了确定输入话语是否与和主机器人相关联的一组技能机器人不相关的技术。在一些实施例中,本文描述的系统包括训练系统和主机器人。训练系统训练主机器人的分类器。训练包括访问与技能机器人相关联的训练话语并从训练话语生成训练特征向量。训练还包括生成训练特征向量的多个集合表示,以及用集合表示配置分类器,其中每个集合表示与训练特征向量的子集对应。主机器人访问输入话语并生成输入特征向量。主机器人使用分类器将输入特征向量与所述多个集合表示进行比较,以确定输入特征是否落入外面并因此无法由技能机器人处置。
Description
相关申请的交叉引用
本申请根据35U.S.C.119(e)要求于2019年9月12日提交的标题为“DetectingUnrelated Utterances in a Chatbot System”的美国临时申请No.62/899,700的权益和优先权,其内容通过引用并入本文以用于所有目的。
背景技术
聊天机器人是基于人工智能的软件应用或设备,其提供与人类用户交谈的接口。聊天机器人可以被编程为响应于交谈期间提供的用户输入来执行各种任务。用户输入可以以各种形式来提供,包括例如音频输入和文本输入。因此,自然语言理解、言语到文本和其它语言处理技术可以被用作由聊天机器人执行的处理的一部分。在一些计算环境中,可以使用多个聊天机器人与用户交谈,每个聊天机器人处置不同的任务集。
发明内容
本文描述的技术用于确定来自用户的输入话语与主机器人可用的一个或多个技能机器人的集合中的任何技能机器人(也被称为聊天机器人)无关。在一些实施例中,主机器人可以评估输入话语并且确定输入话语与技能机器人无关或者将输入话语路由到适当的技能机器人。
在一些实施例中,本文描述的系统包括训练系统和主机器人。训练系统被配置为训练分类器模型。训练分类器模型包括访问与技能机器人相关联的训练话语,其中训练话语包括与技能机器人中的每个技能机器人相关联的相应训练话语。每个技能机器人被配置为提供与用户的对话。训练还包括从训练话语生成训练特征向量。训练特征向量包括与每个技能机器人相关联的相应训练特征向量。训练还包括生成训练特征向量的多个集合表示,其中多个集合表示中的每个集合表示与训练特征向量的子集对应,以及配置分类器模型以将输入特征向量与多个集合表示进行比较。主机器人被配置为访问作为用户输入的输入话语并从输入话语生成输入特征向量。主机器人还被配置为使用分类器模型将输入特征向量与训练特征向量的多个集合表示进行比较,并基于输入特征向量落入多个集合表示之外而输出技能机器人不能处置用户输入的指示。
在附加或替代实施例中,本文描述的方法包括由计算机系统访问与技能机器人相关联的训练话语,其中训练话语包括用于技能机器人中的每个技能机器人的训练话语的相应子集。每个技能机器人都被配置为提供与用户的对话。该方法还包括从训练话语生成训练特征向量,其中训练特征向量包括用于每个训练话语的相应训练特征向量。该方法还包括确定特征空间中集群(cluster)的质心位置并且将每个训练特征向量指派给集群当中具有训练特征向量最接近的相应质心位置的相应集群。该方法还包括重复修改集群直到满足停止条件。修改集群包括将集群的计数增加到更新计数,确定数量等于更新计数的集群的新质心位置,并基于与新质心位置的接近度将训练特征向量重新指派给集群。该方法还包括确定集群的边界,其中边界包括集群中的每个集群的相应边界。该方法还包括访问输入话语,将输入话语转换成输入特征向量,以及通过将输入特征向量与集群的边界进行比较来确定输入特征向量落入集群的边界之外。此外,该方法包括基于输入特征向量落入特征空间中的集群之外而输出技能机器人不能处置输入话语的指示。
在附加的或替代的实施例中,本文描述的方法包括由计算机系统访问与技能机器人相关联的训练话语。训练话语包括用于技能机器人中的每个技能机器人的训练话语的相应子集。每个技能机器人被配置为提供与用户的对话。该方法还包括从训练话语生成训练特征向量,其中训练特征向量包括用于训练话语中的每个训练话语的相应训练特征向量,以及将训练话语划分为交谈类别。该方法还包括生成与交谈类别对应的复合特征向量。生成复合特征向量包括:对于交谈类别中的每个交谈类别,将相应的复合特征向量生成为交谈类别中的训练话语的相应训练特征向量的聚合。该方法还包括访问输入话语、将输入话语转换成输入特征向量,并通过将输入特征向量与复合特征向量进行比较来确定输入特征向量与复合特征向量不足够相似。此外,该方法包括基于输入特征向量与复合特征向量不足够相似来输出技能机器人不能处置输入话语的指示。
在附加的或替代的实施例中,本文描述的系统包括主机器人。主机器人被配置为执行包括以下的操作:访问作为用户输入的输入话语;从输入话语生成输入特征向量;使用分类器模型将输入特征向量与训练特征向量的多个集合表示进行比较;基于输入特征向量落入多个集合表示之外而输出用户输入不能被技能机器人处置的指示。技能机器人中的每个技能机器人被配置为提供与用户的对话。
在附加的或替代的实施例中,本文描述的方法包括访问输入话语。该方法还包括将输入话语转换成输入特征向量。该方法还包括通过将输入特征向量与集群的边界进行比较来确定输入特征向量落入特征空间中的集群的边界之外。该方法还包括基于输入特征向量落入特征空间中的集群之外而输出输入话语不能被技能机器人处置的指示。技能机器人中的每个技能机器人被配置为提供与用户的对话。
在附加的或替代的实施例中,本文描述的方法包括访问输入话语。该方法还包括将输入话语转换成输入特征向量。该方法还包括通过将输入特征向量与复合特征向量进行比较来确定输入特征向量与复合特征向量不足够相似。复合特征向量与交谈类别对应。该方法还包括基于输入特征向量与复合特征向量不足够相似来输出输入话语不能被技能机器人处置的指示。技能机器人中的每个技能机器人被配置为提供与用户的对话。
在附加的或替代的实施例中,本文描述的方法包括访问作为用户输入的输入话语。该方法还包括从输入话语生成输入特征向量。该方法还包括使用分类器模型将输入特征向量与训练特征向量的多个集合表示进行比较。该方法还包括基于输入特征向量落入多个集合表示之外而输出用户输入不能被技能机器人处置的指示。技能机器人中的每个技能机器人被配置为提供与用户的对话。
在附加的或替代的实施例中,本文描述的方法用于训练分类器模型。该方法包括访问与技能机器人相关联的训练话语,这些训练话语包括与技能机器人中的每个技能机器人相关联的相应训练话语。技能机器人中的每个技能机器人被配置为提供与用户的对话。该方法还包括从训练话语生成训练特征向量,训练特征向量包括与技能机器人中的每个技能机器人相关联的相应训练特征向量。该方法还包括生成训练特征向量的多个集合表示。多个集合表示中的每个集合表示与训练特征向量的子集对应。该方法还包括配置分类器模型以将输入特征向量与训练特征向量的多个集合表示进行比较。
在附加的或替代的实施例中,本文描述的方法被用于生成可以用于确定输入话语是否可以被技能机器人处置的集群。该方法包括由计算机系统访问与技能机器人相关联的训练话语,该训练话语包括用于技能机器人中的每个技能机器人的训练话语的相应子集。技能机器人中的每个技能机器人被配置为提供与用户的对话。该方法还包括从训练话语生成训练特征向量,训练特征向量包括用于训练话语中的每个训练话语的相应训练特征向量。该方法还包括确定特征空间中的集群的质心位置。该方法还包括将训练特征向量中的每个训练特征向量指派给集群中在集群当中具有训练特征向量最接近的相应质心位置的相应集群;并重复地修改集群,直到满足停止条件。修改集群包括将集群的计数增加到更新计数;确定数量等于更新计数的集群的新质心位置;并基于与新质心位置的接近度将训练特征向量重新指派给集群。该方法还包括确定集群的边界,边界包括用于集群中的每个集群的相应边界。
在附加的或替代的实施例中,本文描述的方法用于生成复合特征向量,该复合特征向量可以被用于确定输入话语是否可以被技能机器人处置。该方法还包括由计算机系统访问与技能机器人相关联的训练话语,训练话语包括用于技能机器人中的每个技能机器人的训练话语的相应子集。技能机器人中的每个技能机器人被配置为提供与用户的对话。该方法还包括从训练话语生成训练特征向量,训练特征向量包括用于训练话语中的每个训练话语的相应训练特征向量。该方法还包括将训练话语划分为交谈类别。该方法还包括生成与交谈类别对应的复合特征向量。生成复合特征向量包括:对于交谈类别中的每个对话类别,将相应的复合特征向量生成为交谈类别中的训练话语的相应训练特征向量的聚合。
在附加的或替代的实施例中,本文描述的系统包括用于执行任何上面提到方法的部件。
在参考以下说明书、权利要求和附图时,前述内容以及其它特征和实施例将变得更加清楚。
附图说明
图1是根据本文描述的一些实施例的包括与各种技能机器人(也被称为聊天机器人)通信的主机器人的环境的框图。
图2是根据本文描述的一些实施例的配置和使用主机器人来将输入话语指引到技能机器人并且在适用时确定某些输入话语与可用的技能机器人不相关的方法的流程图。
图3是根据本文描述的某些实施例的被配置为确定输入话语是否与可用的技能机器人不相关的主机器人的框图。
图4是根据本文描述的某些实施例的技能机器人的图。
图5是根据本文描述的一些实施例的初始化主机器人的分类器模型以确定输入话语是否与可用的技能机器人不相关的方法的流程图。
图6图示了根据本文描述的一些实施例的从用于训练分类器模型的训练话语生成训练特征向量。
图7是根据本文描述的一些实施例的使用主机器人的分类器模型来确定输入话语是否与和主机器人相关联的任何可用技能机器人不相关的方法的示例的流程图。
图8是根据本文描述的一些实施例的使用主机器人的分类器模型来确定输入话语是否与和主机器人相关联的任何可用技能机器人不相关的方法的另一个示例的流程图。
图9图示了根据本文描述的一些实施例的包括表示示例话语的特征向量的点的特征空间的示例。
图10图示了根据本文描述的一些实施例的图9的特征空间的示例,其具有示例话语的特征向量的意图类之间的类边界。
图11图示了根据本文描述的一些实施例的图9的特征空间的示例,其具有将与共同意图相关联的特征向量分离到相应集群中的类边界。
图12图示了根据本文描述的一些实施例的图9的特征空间的示例,其具有将与共同意图相关联的特征向量分离到相应集群中的重叠类边界。
图13图示了根据本文描述的一些实施例的图9的特征空间的另一个示例,其具有将特征向量分离到集群中的类边界。
图14是根据本文描述的一些实施例的初始化主机器人的分类器模型以利用集群来确定输入话语是否与可用技能机器人不相关的方法的流程图。
图15图示了根据本文描述的一些实施例的图14的方法的某些方面的执行的示例。
图16是根据本文描述的一些实施例的使用主机器人的分类器模型来确定输入话语是否与和主机器人相关联的任何可用技能机器人不相关的方法的流程图。
图17图示了根据本文描述的一些实施例的在输入特征向量落入所有集群边界之外的情况下执行这种方法的示例。
图18是根据本文描述的一些实施例的初始化主机器人的分类器模型以利用复合特征向量来确定输入话语是否与可用技能机器人不相关的方法的流程图。
图19图示了根据本文描述的一些实施例的使用基于意图的交谈类别来生成复合特征向量。
图20图示了根据本文描述的一些实施例的使用基于机器人的交谈类别来生成复合特征向量。
图21是根据本文描述的一些实施例的使用主机器人的分类器模型来确定输入话语是否与和主机器人相关联的任何可用技能机器人不相关的方法的流程图。
图22是根据本文描述的一些实施例的选择技能机器人来处置输入话语的方法的示例的流程图。
图23是根据本文描述的一些实施例的选择技能机器人来处置输入话语的方法的另一个示例的图。
图24是用于实现本文描述的一些实施例的分布式系统的图。
图25是根据本文描述的一些实施例的基于云的系统环境的图,其中各种聊天机器人相关的服务可以作为云服务提供。
图26是可以用于实现本文所述的一些实施例的计算机系统的示例图。
具体实施方式
在以下描述中,出于解释的目的,阐述了具体细节以便提供对某些实施例的透彻理解。但是,显然可以在没有这些具体细节的情况下实践各种实施例。附图和描述并非旨在限制。“示例性”一词在本文用于表示“作为示例、实例或说明”。本文描述为“示例性”的任何实施例或设计都不一定被解释为比其它实施例或设计更优选或有利。
本文描述了各种实施例,包括方法、系统、存储可由一个或多个处理器执行的程序、代码或指令的非暂态计算机可读存储介质等。
如上所述,某些环境包括多个聊天机器人(在本文也被称为技能机器人),使得每个聊天机器人专门用于处置相应的任务或技能集合。在这种情况下,有利地将是自动将来自用户的用户输入指引到最适合处置该用户输入的聊天机器人,并且进一步快速识别用户输入何时与聊天机器人不相关并且因此无法被任何可用的聊天机器人处置。本文描述的一些实施例使得诸如主机器人之类的计算系统能够对用户输入执行初步处理以确定用户输入是否与聊天机器人不相关(即,不能被聊天机器人处置)。因此,聊天机器人不会在尝试处理不相关的用户输入时浪费计算资源。因此,本文描述的某些实施例通过对不相关的用户输入提供早期检测以防止环境中的聊天机器人处理这样的用户输入,从而节省了聊天机器人的计算资源。另外,某些实施例通过阻止主机器人将这样的用户输入发送到不能够处置它们的一个或多个聊天机器人来节省网络资源。
在包括多个聊天机器人的环境中,主机器人可以包括分类器,该分类器确定哪个聊天机器人应当处理输入话语。例如,分类器可以被实现为输出一组概率的神经网络或某种其它ML模型,每个概率与聊天机器人相关联并指示聊天机器人可以处置输入话语的置信度。这种类型的主机器人选择具有最高置信度的聊天机器人,并将输入话语转发到那个聊天机器人。但是,主机器人可能会为不相关的输入话语提供错误的高置信度分数,因为置信度本质上是在可用聊天机器人之间划分的,而根本不考虑聊天机器人是否被配置为处置输入话语。这会导致聊天机器人处理聊天机器人无法处置的输入话语。聊天机器人最终可以提供它无法处置输入话语的指示或向用户提出澄清请求;但是,这会在聊天机器人消耗资源处理输入话语之后发生。
可替代地,开发人员可以训练主机器人,以尝试帮助主机器人识别任何可用聊天机器人都无法处置的话语。例如,可以用包括相关话语(即,可以由聊天机器人处置)和不相关话语(即,不能由聊天机器人处置)的带标记的训练数据来训练主机器人,以教导主机器人识别不相关的话语。但是,训练数据的范围不可能足以让主机器人识别所有不相关的话语。与训练期间使用的任何不相关的话语都不相似的输入话语最终可能仍会被转发到聊天机器人进行处理。因此,用于训练主机器人的计算资源将增加,而主机器人仍然无法识别大量不相关的话语。
本文描述的某些实施例解决了上述技术的缺点,并且可以代替或结合这些技术使用。在某些实施例中,使用经训练的机器学习(ML)模型(在本文中被称为分类器模型)来确定作为用户输入提供的输入话语(即,潜在的文本形式的自然语言短语)是否与一组可用技能机器人中的任何技能机器人相关。例如,这个确定可以由利用分类器模型的主机器人执行。主机器人从输入话语中生成输入特征向量。在一个示例中,主机器人的分类器模型将特征向量与作为训练数据的特征向量的训练特征向量的一组集群进行比较,以确定输入特征向量是否落入任何集群中。如果输入特征向量落入所有集群之外,那么主机器人判定输入话语与技能机器人不相关。在另一个示例中,主机器人的分类器模型将输入特征向量与一组复合特征向量进行比较,每个复合特征向量表示属于相应类别的一个或多个训练特征向量。如果输入特征向量与任何复合特征向量都不足够相似,那么主机器人判定输入话语与技能机器人不相关。如果确定输入话语与任何机器人都不相关,那么输入话语可以被视为“空类(none class)”并且不会被路由到任何机器人进行处置。代替地,输入话语的处理可以结束,或者主机器人可以提示用户澄清用户的意图是什么。
这种改进的路由可以阻止计算资源被用于处置最终不会被系统有效处置的查询。这可以提高系统的整体响应性。此外,用户体验可以得到改进,因为可以引导用户以更容易被适当训练的专家聊天机器人或聊天机器人集合处置的方式来改写或澄清他们的查询。除了节省处理和网络资源之外,通过经由机器人网络的这种改进的路由可以减少处置用户查询的平均时间。
如果确定输入话语与至少一个机器人相关,那么输入话语可以经历意图分类,其中确定与输入话语最密切匹配的意图,以便开始与那个意图相关联的交谈流。例如,技能机器人的每个意图可以具有与其相关联的状态机,该状态机定义与用户的对话的各种交谈状态。意图分类可以在个体机器人级别执行。例如,向主机器人注册的每个技能机器人可以有其自己的分类器(例如,基于ML的分类器),该分类器在与那个特定机器人相关联的预定义话语上被训练。输入话语可以被输入到与输入话语最密切相关的机器人的意图分类器,以确定哪个机器人意图与话语最匹配。
这可以导致改进的用户体验,因为用户的查询可以被快速路由到所选择的技能机器人或所选择的技能机器人集合,这些机器人可能比非专业通用机器人更好地被装备以处置用户的查询,或者可以比非专业的通用机器人更快地处置用户的查询。改进的路由可以附加地或可替代地导致使用更少的计算资源,因为所选择的技能机器人或所选择的技能机器人集合在处置用户查询时可以消耗比非专业通用机器人更少的处理资源。
示例聊天机器人系统的概述
图1是根据本文描述的一些实施例的包括与各种技能机器人116(也被称为聊天机器人)通信的主机器人114的环境的框图。该环境包括数字助理构建器平台(DABP)102,它使得开发人员能够对数字助理(DA)106或聊天机器人系统进行编程和部署。DA 106包括或有权访问主机器人114,主机器人114包括或有权访问一个或多个技能机器人116,其中每个技能机器人116被配置为向用户提供一个或多个技能或任务。在一些实施例中,主机器人114和技能机器人116在DA 106本身上运行;但是,可替代地,只有主机器人114在DA 106上运行并与在别处(例如,在另一个计算设备上)运行的技能机器人116通信。
在一些实施例中,DABP 102可以被用于对一个或多个DA 106进行编程。例如,如图1中所示,开发人员可以使用DABP 102来创建和部署数字助理106以供用户访问。例如,DABP102可以被银行用来创建一个或多个数字助理以供银行客户使用。同一个DABP 102平台可以被多个企业用来创建数字助理106。作为另一个示例,餐馆(例如,披萨店)的所有者可以使用DABP 102来创建和部署使得餐馆的顾客能够订购食物(例如,订购披萨)的数字助理。附加地或可替代地,例如,DABP 102可以被开发人员用来部署一个或多个技能机器人116,使得一个或多个技能机器人116变得可被现有数字助理106的主机器人114访问。
附加地或可替代地,在一些实施例中,如下文进一步描述的,DABP 102被配置为训练数字助理的主机器人114,以使得主机器人114能够识别输入话语何时与任何可用的技能机器人116都不相关。
就本公开而言,“数字助理”是帮助数字助理的用户通过自然语言交谈完成各种任务的实体。数字助理可以仅使用软件(例如,数字助理是使用可由一个或多个处理器执行的程序、代码或指令实现的数字实体)、使用硬件、或使用硬件和软件的组合来实现。数字助理可以在可包括通用或专用硬件的各种物理系统或设备中实施或实现,诸如在计算机、移动电话、手表、电器、车辆等中。数字助理有时也被称为聊天机器人系统。因而,为了本公开的目的,术语“数字助理”和“聊天机器人系统”是可互换的。
在一些实施例中,数字助理106可以被用于经由数字助理与其用户108之间的基于自然语言的交谈来执行各种任务。作为交谈的一部分,用户可以向数字助理106提供用户输入110,数字助理106可以提供对于用户输入110的响应112并且可以可选地执行与用户输入110相关的一个或多个附加任务(例如,如果用户输入包括执行任务的指令)。交谈或对话可以包括一个或多个用户输入110和响应112。经由交谈,用户可以请求数字助理106执行一项或多项任务,并且数字助理106被配置为,作为响应,执行用户请求的任务并且以对用户的适当响应来响应。
用户输入110可以是自然语言形式,被称为话语。话语可以是文本形式,诸如当用户键入诸如句子、问题、文本片段或甚至单个词之类的短语并将文本作为输入提供给数字助理106时。在一些实施例中,用户话语可以是音频输入或言语形式,诸如当用户说出作为输入提供给数字助理106的某些内容时,数字助理106可以包括或有权访问用于捕获此类言语的麦克风。话语通常是用户所说的语言。当话语是言语输入的形式时,言语输入可以被转换成同一种语言的文本话语,并且数字助理106可以将文本话语处理为用户输入。可以使用各种言语到文本处理技术来将言语输入转换成文本话语。在一些实施例中,言语到文本的转换由数字助理106本身执行,但各种实现方式都在本公开的范围内。出于本公开的目的,假设输入话语(即,作为用户输入提供的话语)是由数字助理106的用户108直接提供的文本话语,或者是输入言语话语到文本形式的转换结果。但是,这并不旨在以任何方式进行限制或限定。
话语可以是片段、句子、多个句子、一个或多个词、一个或多个问题、上面提到的类型的组合等。在一些实施例中,数字助理106,包括其主机器人114和技能机器人116,被配置为将自然语言理解(NLU)技术应用于话语以理解用户输入的含义。作为针对话语的NLU处理的一部分,数字助理106可以执行处理以理解话语的含义,这涉及识别与话语对应的一个或多个意图以及一个或多个实体。在理解话语的含义后,数字助理106,包括其主机器人114和技能机器人116,可以响应于所理解的含义或意图而执行一个或多个动作或操作。
例如,用户输入可以通过提供诸如“我想订购披萨”之类的输入话语来请求订购披萨。在接收到这种话语后,数字助理106确定话语的含义并采取适当的动作。适当的动作可以涉及,例如,用请求用户输入关于用户期望订购的披萨的类型、披萨的尺寸、披萨的任何配料等的问题来响应用户。由数字助理106提供的响应112也可以是自然语言形式并且通常是与输入话语相同的语言。作为生成这些响应112的一部分,数字助理106可以执行自然语言生成(NLG)。对于订购披萨的用户,经由用户和数字助理106之间的交谈,数字助理可以引导用户提供披萨订单所需的所有信息,然后在交谈结束时使披萨被订购。数字助理106可以通过向用户输出指示披萨已被订购的信息来结束交谈。
在概念级别,数字助理106连同其主机器人114和相关联的技能机器人116响应于从用户接收到的话语而执行各种处理。在一些实施例中,这个处理涉及一系列处理步骤或处理步骤的流水线,包括例如理解输入话语的含义(使用NLU)、确定响应于话语而要执行的动作、在适当时使得动作被执行、生成响应于话语而要输出给用户的响应,并向用户输出响应。NLU处理可以包括解析接收到的输入话语以理解话语的结构和含义,精炼和重组话语以开发更容易解析和理解的形式(例如,逻辑形式)。生成响应可以包括使用NLG技术。因此,由数字助理106执行的自然语言处理可以包括NLU和NLG处理的组合。
由数字助理106执行的NLU处理可以包括各种NLU处理,诸如句子解析(例如,令牌化、词形还原、识别词性标记、识别命名实体、生成依赖树以表示句子结构、将话语中的句子拆分成子句、分析各个子句、辨析照应、执行分块等)。在某些实施例中,NLU处理或其部分由数字助理106本身执行。附加地或替代地,数字助理106可以使用其它资源来执行NLU处理的部分。例如,输入话语的句法和结构可以通过使用与数字助理106分离的解析器、词性标记器或命名实体识别器处理输入话语来识别。
虽然本公开中提供的各种示例示出了英语语言的话语,但这仅意味着作为示例。在某些实施例中,数字助理106附加地或可替代地能够处置除英语之外的语言的话语。数字助理106可以提供被配置用于针对不同语言执行处理的子系统(例如,实现NLU功能性的组件)。这些子系统可以被实现为可插入单元,这些可插入单元可以使用来自NLU核心服务器的服务调用来调用,该NLU核心服务器可以在数字助理106上运行。这使得NLU处理对每种语言都是灵活的和可扩展的,包括允许不同的处理次序。可以为单个语言提供语言包,其中语言包可以注册可从NLU核心服务器提供服务的子系统的列表。
在一些实施例中,数字助理106可以通过各种不同的渠道(诸如经由通过某些应用、经由社交媒体平台、经由各种消息传递服务和应用(例如,即时通信应用)或其它应用或渠道)可用或可供其用户108访问。单个数字助理可以具有为其配置的几个通道,以便它可以同时运行并由不同的服务访问。附加地或可替代地,数字助理106可以在用户本地的设备上实现,因此可以是供用户或其他附近用户使用的个人数字助理。
数字助理106可以与一种或多种技能相关联。在某些实施例中,这些技能是通过被称为技能机器人116的各个聊天机器人实现的,每个聊天机器人被配置为与用户交互以履行特定类型的任务,诸如跟踪库存、提交考勤卡、创建费用报告、订购食物、检查银行账户、进行预订、购买小部件或其它任务。例如,对于图1中描绘的实施例,数字助理106包括或以其它方式有权访问三个技能机器人116,每个技能机器人实现特定技能或技能集合。但是,数字助理106可以支持各种数量的技能机器人116。每个技能机器人116可以被实现为硬件、软件或两者的组合。
与数字助理106相关联并因此被实现为技能机器人116的每个技能被配置为帮助数字助理106的用户通过与用户的交谈来完成任务。交谈可以包括由用户提供的文本或音频用户输入110和由技能机器人116通过数字助理106提供的响应112的组合。这些响应112可以是给用户的文本或音频消息的形式,或者可以使用呈现给用户以供用户进行选择的简单用户接口元素(例如,选择列表)来提供。
有各种方式可以将技能机器人116关联或添加到数字助理。在一些情况下,技能机器人116可以由企业开发,然后使用DABP 102添加到数字助理106,例如,通过由DABP 102提供的用于向数字助理106注册技能机器人116的用户接口。在其它情况下,技能机器人116可以使用DABP 102来开发和创建,然后使用DABP 102添加到数字助理106。在还有其它情况下,DABP 102提供在线数字商店(称为“技能商店”),其提供针对广泛任务的多种技能。通过技能商店提供的技能也可以暴露各种云服务。为了使用DABP 102将技能添加到数字助理106,开发人员可以经由DABP 102访问技能商店,选择期望的技能,并指示选择的技能将被添加到数字助理106。来自技能商店的技能可以按原样或以修改后的形式添加到数字助理。为了以技能机器人116的形式将技能添加到数字助理106,DABP 102可以配置数字助理106的主机器人114以与技能机器人116通信。此外,DABP 102可以用技能机器人数据配置主机器人114,使得主机器人114能够识别技能机器人116能处置的话语,并因此更新主机器人114用来确定输入话语是否与数字助理106的任何技能机器人116不相关的数据。以下更详细地描述以这种方式配置主机器人114的活动。
可与数字助理106一起使用的技能机器人116以及因此技能可以变化很大。例如,对于为企业开发的数字助理106,数字助理的主机器人114可以与具有特定功能的技能机器人116交互,诸如用于执行与客户关系管理(CRM)相关的功能的CRM机器人、用于执行与企业资源规划(ERP)相关的功能的ERP机器人、用于执行与人力资本管理(HCM)相关的功能的HCM机器人,或其它。各种其它技能也可以可用于数字助理并且可以取决于数字助理106的预期用途。
可以使用各种体系架构来实现数字助理106。在某些实施例中,数字助理106可以使用主-子范例或体系架构来实现。根据这种范例,数字助理106通过包括主机器人114或者通过访问主机器人114来充当主机器人114,并且与作为技能机器人116的一个或多个子机器人交互。技能机器人116可以或可以不直接在数字助理106上运行。在图1中所描绘的示例中,数字助理106包括(即,访问和使用)主机器人114和三个技能机器人116;但是,可以使用过量的技能机器人116,并且随着从数字助理106添加或移除技能,该数量可以随时间变化。
根据主-子体系架构实现的数字助理106使得数字助理106的用户能够与多个技能机器人116交互,从而通过统一的用户接口(即,经由主机器人114)利用可以分开实现的多种技能。在一些实施例中,当用户与数字助理106接洽时,主机器人114接收用户输入。主机器人114然后执行初步处理以确定充当用户输入的输入话语的含义,其中输入话语可以是例如用户输入本身或用户输入的文本版本。主机器人114确定输入话语是否与其可用的技能机器人116不相关,例如,如果输入话语要求技能机器人116的技能之外的技能,那么会是这种情况。如果输入话语与技能机器人116不相关,那么主机器人114可以向用户返回输入话语与技能机器人116不相关的指示;例如,数字助理106可以要求用户做出澄清或者可以报告输入话语未被理解。但是,如果主机器人114识别出合适的技能机器人116,那么主机器人114可以将输入话语以及因此正在进行的交谈路由到那个技能机器人116。这使得用户能够通过共用界面与具有多个技能机器人116的数字助理106交谈。
虽然图1中的实施例示出了包括主机器人114和技能机器人116的数字助理106,但这不旨在进行限制。在一些实施例中,数字助理106可以包括提供数字助理106的功能的各种其它组件,例如其它系统或子系统。这些系统和子系统可以仅以软件(例如,作为存储在计算机可读介质上并且可由一个或多个处理器执行的代码)、以硬件或以使用软件和硬件的组合的实现方式来实现。
在某些实施例中,主机器人114被配置为知道可用的技能机器人116。例如,主机器人114可以有权访问标识各种可用技能机器人116的元数据,并且对于每个技能机器人116,技能机器人116的能力,包括可以由技能机器人116执行的任务。在接收到输入话语形式的用户请求后,主机器人114被配置为从多个可用技能机器人116中识别或预测可以最好地服务或处置用户请求的特定技能机器人116,或者在替代方案中,确定输入话语与任何技能机器人116不相关。如果确定技能机器人116可以处置输入话语,那么主机器人114可以将输入话语或输入话语的至少一部分路由到那个技能机器人116以供进一步处置。控制因此从主机器人114流向技能机器人116。
在一些实施例中,DABP 102提供使得DABP 102的开发人员用户能够创建包括一个或多个技能机器人116的数字助理106的基础设施以及各种服务和特征。在一些情况下,技能机器人116可以通过克隆现有技能机器人116来创建,例如,通过克隆技能商店中提供的技能机器人116。如前面所指示的,DABP 102可以提供技能商店,该技能商店提供用于执行各种任务的多个技能机器人116。DABP 102的用户可以从技能商店克隆技能机器人116,并且根据需要,可以对克隆的技能机器人116进行修改或定制。在一些其它情况下,DABP 102的开发人员用户从头开始创建技能机器人116,诸如通过使用由DABP 102提供的工具和服务。
在某些实施例中,在高级别,创建或定制技能机器人116涉及以下活动:
(1)为新技能机器人配置设置
(2)为技能机器人配置一个或多个意图
(3)为一个或多个意图配置一个或多个实体
(4)训练技能机器人
(5)为技能机器人创建对话流
(6)根据需要为技能机器人添加自定义组件
(7)测试和部署技能机器人
下面简要介绍上述各项活动。
(1)为新技能机器人116配置设置:可以为技能机器人116配置各种设置。例如,技能机器人开发人员可以为正在创建的技能机器人116指定一个或多个调用名称。用作技能机器人116的标识符的这些调用名称然后可以被数字助理106的用户用来显式地调用技能机器人116。例如,用户可以在用户的输入话语中包括调用名称,以显式地调用对应的技能机器人116。
(2)为技能机器人116配置一个或多个意图和相关联的示例话语:技能机器人116设计者为正在创建的技能机器人116指定一个或多个意图,也被称为聊天机器人意图。然后基于这些指定的意图训练技能机器人116。这些意图表示技能机器人116被训练以推断输入话语的类别或类。在接收到话语后,经训练的技能机器人116推断(即,确定)话语的意图,其中推断的意图是从用于训练技能机器人116的预定义意图集合中选择的。然后基于为那个话语推断的意图,技能机器人116响应于该话语而采取适当的动作。在一些情况下,用于技能机器人116的意图表示技能机器人116可以为数字助理的用户执行的任务。每个意图被赋予意图标识符或意图名称。例如,对于为银行训练的技能机器人116,为技能机器人116指定的意图可以包括“查询余额”、“转账”、“存款查询”等。
对于为技能机器人116定义的每个意图,技能机器人116设计者还可以提供代表并说明意图的一个或多个示例话语。这些示例话语意在表示用户可以针对那个意图输入到技能机器人116的话语。例如,对于查询余额意图,示例话语可以包括“我的储蓄账户余额是多少?”、“我的支票账户中有多少钱?”、“我的账户中有多少钱”等。因而,典型用户话语的各种置换可以被指定为意图的示例话语。
意图及其相关联的示例话语(也被称为训练话语)被用作训练数据来训练技能机器人116。可以使用各种不同的训练技术。作为这种训练的结果,生成预测性模型,该模型被配置为将话语作为输入并输出为该话语推断的意图。在一些情况下,作为用户输入提供的输入话语被输入到意图分析引擎(例如,由技能机器人116执行的基于规则或基于ML的分类器),该意图分析引擎被配置为使用经训练的模型来预测或推断输入话语的意图。技能机器人116然后可以基于推断的意图采取一个或多个动作。
(3)为技能机器人116的一个或多个意图配置实体:在一些情况下,可能需要附加的上下文以使得技能机器人116能够正确响应输入话语。例如,可以存在多个输入话语在技能机器人116中辨析为相同意图的情况。例如,话语“我的储蓄账户余额是多少?”和“我的支票账户里有多少钱?”两者都辨析为相同的查询余额意图,但这些话语是不同的请求,要求不同的东西。为了阐明此类请求,可以将一个或多个实体添加到意图中。使用银行技能机器人116的示例,被称为Account_Type的实体定义被称为“支票”和“储蓄”的值,可以使得技能机器人116能够解析用户请求并适当地响应。在上面的示例中,虽然话语辨析为相同的意图,但与两个话语的Account_Type实体相关联的值是不同的。这使得技能机器人116能够为这两个话语执行可能不同的动作,虽然它们辨析为相同的意图。可以为技能机器人116配置的某些意图指定一个或多个实体。因此,实体被用于向意图本身添加上下文。实体帮助更全面地描述意图并使得技能机器人116能够完成用户请求。
在某些实施例中,存在两种类型的实体:(a)可以由DABP 102提供的内置实体,以及(2)可以由开发人员指定的自定义实体。内置实体是通用实体,其可以与各种技能机器人116一起使用。内置实体的示例包括与时间、日期、地址、数字、电子邮件地址、持续时间、重复时间段、货币、电话号码、统一资源定位器(URL)等相关的实体。自定义实体用于更多定制的应用。例如,对于银行技能,开发人员可以定义Account_Type实体以通过检查用户输入的关键字(如支票、储蓄或信用卡)来支持各种银行交易。
(4)训练技能机器人116:技能机器人116被配置为接收话语形式的用户输入,解析或以其它方式处理接收到的用户输入,并识别或选择与接收到的用户输入相关的意图。在一些实施例中,如上面所指示的,必须为此训练技能机器人116。在某些实施例中,基于为技能机器人116配置的意图和与意图相关联的示例话语(即,训练话语)来训练技能机器人116,使得技能机器人116可以将输入话语辨析为其配置的意图之一。在某些实施例中,技能机器人116使用预测性模型,该模型使用训练数据进行训练并且允许技能机器人116辨别用户说什么或者在一些情况下试图说什么。DABP 102可以提供开发人员可以用来训练技能机器人116的各种不同的训练技术,包括各种基于ML的训练技术、基于规则的训练技术或其组合。在某些实施例中,训练数据的一部分(例如,80%)被用于训练技能机器人模型,而另一个部分(例如,剩余的20%)被用于测试或验证模型。一旦经过训练,经训练的模型(也被称为经训练的技能机器人116)就可以用于处置和响应输入话语。在某些情况下,输入话语可以是只需要单个答案而不需要进一步交谈的问题。为了处置此类情况,可以为技能机器人116定义问答(Q&A)意图。在一些实施例中,Q&A意图以与其它意图类似的方式创建,但是用于Q&A意图的对话流可以与用于常规意图的对话流不同。例如,与其它意图不同,Q&A意图的对话流可以不涉及向用户征求附加信息(例如,特定实体的值)的提示。
(5)为技能机器人116创建对话流:为技能机器人116指定的对话流描述了技能机器人116如何反应,因为用于技能机器人116的不同意图是响应于接收到的用户输入110而被辨析的。对话流定义技能机器人116将采取的操作或动作,诸如技能机器人116如何响应用户话语、技能机器人116如何提示用户输入以及技能机器人116如何返回数据。对话流与技能机器人116遵循的流程图相似。技能机器人116设计者使用诸如markdown语言之类的语言来指定对话流。在某些实施例中,被称为OBotML的YAML的版本可以被用于指定技能机器人116的对话流。用于技能机器人116的对话流定义充当交谈本身的模型,让技能机器人116设计者编排技能机器人116与技能机器人116所服务的用户之间的交互的模型。
在某些实施例中,技能机器人116的对话流定义包含三个部分,如下所述:
(a)上下文部分;
(b)默认过渡部分;以及
(c)状态部分。
上下文部分:在上下文部分中,技能机器人116的开发人员可以定义对话流中使用的变量。可以在上下文部分中命名的其它变量包括例如:用于错误处置的变量、用于内置或自定义实体的变量、使得技能机器人116能够识别和保持用户偏好的用户变量等。
默认过渡部分:用于技能机器人116的过渡可以在对话流状态部分或默认过渡部分中定义。默认过渡部分中定义的过渡充当后备,并且在状态中没有定义适用的过渡或无法满足触发状态过渡所需的条件时被触发。默认过渡部分可以被用于定义允许技能机器人116优雅地处置意外的用户动作的路由。
状态部分:对话流及其相关操作被定义为一系列临时状态,它们管理对话流内的逻辑。对话流定义内的每个状态节点命名提供对话中那个点处所需的功能的组件。因此,状态是围绕组件构建的。状态包含特定于组件的特性并定义到组件执行之后被触发的其它状态的过渡。
可以使用状态部分来处置特殊情况场景。例如,有时可能期望在数字助理106内向用户提供暂时离开他们从事的第一技能以在第二技能中做某事的选项。例如,如果用户正在与购物技能进行交谈(例如,用户已经做出了一些购买选择),那么用户可能想要跳转到银行技能(例如,用户可能想要确保用户有足够的钱用于购买)然后返回到购物技能以完成用户的订单。为了解决这个问题,可以将第一技能的对话流定义中的状态部分配置为发起与同一数字助理中的第二不同技能的交互,然后返回到原始对话流。
(6)向技能机器人116添加自定义组件:如上所述,在对话流中为技能机器人116指定的状态命名提供与状态对应的所需功能的组件。这些组件使得技能机器人116能够执行功能。在某些实施例中,DABP 102提供一组预配置的组件用于执行广泛的功能。开发人员可以选择这些预配置组件中的一个或多个并将它们与用于技能机器人116的对话流中的状态相关联。开发人员还可以使用由DABP 102提供的工具创建自定义或新组件,并且可以将自定义组件与用于技能机器人116的对话流中的一个或多个状态相关联。
(7)测试和部署技能机器人116:DABP 102可以提供使得开发人员能够测试正在开发的技能机器人116的若干特征。然后技能机器人116可以被部署和包括在数字助理106中。
虽然以上描述了如何创建技能机器人116,但相似的技术也可以被用于创建数字助理106或主机器人114。在主机器人级别或数字助理级别,可以为数字助理106配置内置系统意图。在一些实施例中,这些内置系统意图被用于标识主机器人114可以在不调用技能机器人116的情况下处置的一般任务。为主机器人114定义的系统意图的示例包括:(1)退出:当用户表示期望退出数字助理中的当前交谈或上下文时应用;(2)帮助:当用户请求帮助或情况介绍时应用;(3)未辨析的意图:适用于与“退出”和“帮助”意图不匹配的用户输入。主机器人114可以存储关于与数字助理106相关联的一个或多个技能机器人116的信息。这个信息使得主机器人114能够选择特定技能机器人116来处置话语或者,在替代方案中,确定话语与数字助理106的任何技能机器人116不相关。
当用户向数字助理106输入短语或话语时,主机器人114被配置为执行处理以确定如何路由话语和相关交谈。主机器人114使用路由模型来确定这一点,路由模型可以是基于规则的、基于ML的或其组合。主机器人114使用路由模型来确定是否将与话语对应的交谈路由到特定技能机器人116进行处置、是由数字助理106还是主机器人114自身根据内置系统意图来处置、是否将作为当前对话流中的不同状态来处置,或者是否与和数字助理106相关联的任何技能机器人116都不相关。
在某些实施例中,作为这个处理的一部分,主机器人114确定输入话语是否使用其调用名称显式地标识技能机器人116。如果输入话语中存在调用名称,那么将其视为与调用名称对应的技能机器人116的显式调用。在这种场景中,主机器人114可以将输入话语路由到被显式调用的技能机器人116以进一步处置。如果不存在特定的或显式的调用,那么在某些实施例中,主机器人114评估输入话语并计算系统意图和与数字助理106相关联的技能机器人116的置信度分数(例如,使用逻辑回归模型)。为技能机器人116或系统意图计算的分数表示输入话语代表技能机器人116被配置为执行的任务或代表系统意图的可能性有多大。具有超过阈值的相关联的计算出的置信度分数的任何系统意图或技能机器人116可以被选择作为进一步评估的候选。主机器人114然后从识别出的候选中选择特定系统意图或技能机器人116以进一步处置输入话语。在某些实施例中,在一个或多个技能机器人116被识别为候选之后,与那些候选技能机器人116相关联的意图被评估,诸如通过使用为每个技能机器人116训练好的模型,并且为每个意图确定置信度分数。一般而言,任何置信度分数超过阈值(例如,70%)的意图都被视为候选意图。如果选择了特定技能机器人116,那么输入话语被路由到那个技能机器人116以进一步处理。如果选择了系统意图,那么由主机器人114本身根据选择的系统意图执行一个或多个动作。
本文描述的主机器人114的一些实施例不仅被配置为将输入话语指引到合适的技能机器人116(如果适用的话),而且还被配置为确定输入话语何时与可用的技能机器人116不相关,并且不相关的输入话语提示不相关的某种迹象。图2是根据本文描述的一些实施例的配置和使用主机器人114以将输入话语指引到技能机器人116并且在适用时确定某些输入话语与可用技能机器人116不相关的方法200的流程图。图2的方法200是其各种具体实例将在下面被详细描述的总体概述。
图2中描绘的方法200以及本文描述的其它方法可以在由一个或多个处理单元(例如,处理器或处理器核心)执行的软件(例如,作为代码、指令或程序)、硬件或其组合中实现。软件可以存储在非暂态存储介质上,诸如存储器设备上。该方法200旨在是说明性而非限制性的。虽然图2描绘了以特定顺序或次序发生的各种活动,但这不旨在是限制性的。在某些实施例中,例如,可以以不同的次序执行活动,或者可以并行执行方法200的一个或多个活动。在某些实施例中,方法200可以由训练系统和主机器人114执行。
如图2中所示,在方法200的方框205处,初始化主机器人114的分类器模型。在一些实施例中,分类器模型被配置为确定输入话语是否与任何可用的技能机器人116不相关。此外,在一些实施例中,分类器模型还可以被配置为如果输入话语被认为与技能机器人116相关,那么将输入话语路由到合适的技能机器人116以供处理。
在一些实施例中,分类器模型的初始化可以包括教导分类器模型如何识别不相关的输入话语。为此,可以是DABP 102的一部分的训练系统可以有权访问用于每个技能机器人116的训练话语(即,示例话语)。训练系统可以生成描述和表示主机器人114可用或将可用的各种技能机器人116的每个训练话语的相应训练特征向量。每个训练特征向量是对应训练话语的特征向量。训练系统然后可以从训练特征向量生成各种集合表示。每个集合表示可以是训练特征向量的集体(collection)的表示;例如,这种集体可以是集群或复合特征向量,如下面详细描述的。为了初始化分类器模型,训练系统可以配置分类器模型以将输入向量与表示训练特征向量的集体的各种集合表示进行比较。
在方框210处,主机器人114以输入话语的形式接收用户输入110。例如,用户可能已经键入输入话语作为用户输入110,或者用户可能已经说出用户输入110,数字助理106将其转换成输入话语。输入话语可以包括要由数字助理106处置并因此由主机器人114处置的用户请求。
在方框215处,主机器人114利用分类器模型来确定输入话语是否可以被与主机器人114相关联的任何技能机器人116处置。在一些实施例中,主机器人114的分类器模型生成描述和表示输入话语的输入特征向量。分类器模型可以将输入特征向量与训练特征向量的集合表示进行比较,并且基于这种比较,分类器模型确定输入话语是否与主机器人114可用的任何技能机器人116(即,其训练话语在集合表示中表示的技能机器人116)不相关。
数字助理或技能机器人级别的分类的示例
图3是根据本文描述的某些实施例的主机器人114(也被称为主机器人(MB)系统)的框图。主机器人114可以以仅软件、仅硬件或硬件和软件的组合来实现。在一些实施例中,主机器人114包括预处理子系统310和路由子系统320。图3中描绘的主机器人114仅仅是主机器人114中的组件的布置的示例。本领域普通技术人员将认识到许多可能的变化、替代方案和修改。例如,在一些实现方式中,主机器人114可以具有比图3中所示的更多或更少的系统或组件,可以组合两个或更多个子系统,或者可以具有不同的子系统配置或布置。
在一些实施例中,语言处理子系统310被配置为处理由用户提供的用户输入110。这种处理可以包括例如,如果用户输入是音频形式或者非文本的某种其它形式,那么使用自动语音识别或某种其它工具将用户输入110翻译成文本输入话语303。
在一些实施例中,路由子系统320被配置为确定(a)输入话语303是否与任何可用的技能机器人116不相关,以及(b)如果输入话语303与至少一个技能机器人116相关,哪个技能机器人116最适合处置输入话语303。特别地,路由子系统320的分类器模型324可以是基于规则的或基于ML的,或其组合,并且可以被配置为确定输入话语303是否与任何可用的技能机器人116不相关,代表特定技能机器人116,或代表为特定技能机器人116配置的特定意图。例如,如前面所讨论的,技能机器人116可以配置有一个或多个聊天机器人意图。每个聊天机器人意图可以具有其自己的对话流并且与技能机器人116可以执行的一个或多个任务相关联。在确定输入话语303代表特定技能机器人116或已给特定技能机器人116配置的意图时,路由子系统320可以调用特定技能机器人116并将输入话语303作为输入335传送给特定技能机器人116。但是,如果输入话语303被认为与任何可用的技能机器人116不相关,那么输入话语303被认为属于空类316,这是可用的技能机器人不能处置的话语类。在那种情况下,数字助理106可以向用户指示不能处置输入话语303。
在一些实施例中,分类器模型324可以使用基于规则或基于ML的模型或两者来实现。例如,在一些实施例中,分类器模型324可以包括在包括示例话语的训练数据354上训练的基于规则的模型,使得基于规则的模型被用于确定输入话语是否与任何可用的技能机器人116(即,与数字助理106相关联的任何技能机器人116)不相关。附加地或可替代地,在一些实施例中,分类器模型324可以包括在训练数据354上训练的神经网络。对于每个技能机器人116,训练数据354可以包括对应的示例话语集合(例如,用于给技能机器人116配置的每个意图的两个或更多个示例话语)。例如,在图3的示例中,可用的技能机器人116包括第一技能机器人116a、第二技能机器人116b和第三技能机器人116c,并且训练数据354包括用于每个这样的技能机器人116的相应技能机器人数据,包括与第一技能机器人116a对应的第一技能机器人数据358a、与第一技能机器人116b对应的第二技能机器人数据358b和与第一技能机器人116c对应的第三技能机器人数据358c。用于技能机器人116的技能机器人数据可以包括训练话语(即,示例话语),这些训练话语代表可以由那个技能机器人116特别处置的话语;因此,训练数据354包括用于各种技能机器人116中的每一个的训练话语。可以但不一定结合到DABP 102中的训练系统350可以使用训练数据354来训练主机器人114的分类器模型324以执行这些任务。
在一些实施例中,训练系统350使用训练数据354来训练分类器模型324以确定输入话语是否与任何可用的技能机器人116不相关。一般而言,训练系统350可以生成训练特征向量来描述和表示训练数据354中的训练话语。如以下详细描述的,训练系统350可以生成集合表示,每个集合表示是训练特征向量的集体的表示。在训练之后和在操作期间,分类器模型324可以将输入话语303与集合表示进行比较,以确定输入话语303是否与任何可用的技能机器人116不相关。
在一些实施例中,分类器模型324包括一个或多个子模型,每个子模型被配置为执行与分类输入话语303相关的各种任务。附加地或可替代地,例如,分类器模型324可以包括ML模型或其它类型的模型,其被配置为在输入话语303被认为与至少一个可用的技能机器人116相关(即,不是不相关)的情况下确定哪个技能机器人116最适合于输入话语。在一些实施例中,分类器模型324可以在确定输入话语与至少一个技能机器人116相关的同时确定最合适的技能机器人116,并且在那种情况下,不需要进行进一步的确定来识别最合适的技能机器人116。但是,可替代地,分类器模型324可以为每个技能机器人116确定(例如,使用逻辑回归模型)相关联的置信度分数,该置信度分数指示技能机器人116最适合处理输入话语303(即,是其最佳匹配)的可能性。为此,训练系统可以训练在分类器模型324中包括的神经网络以确定输入话语303代表每个技能机器人116或已经给技能机器人116配置的意图之一的可能性。例如,神经网络可以确定并输出与每个技能机器人116相关联的相应置信度分数,其中技能机器人的置信度分数指示技能机器人116可以处置输入话语303或者是用于处理输入话语的最佳可用技能机器人116的可能性。给定置信度分数,路由子系统320然后可以选择与最高置信度分数相关联的技能机器人116并且可以将输入话语303路由到那个技能机器人116以进行处理。
图4是根据本文描述的某些实施例的技能机器人116(也被称为技能机器人系统)的图。图4中所示的技能机器人116的实例可以被用作图1中的技能机器人116,并且可以以仅软件、仅硬件或硬件和软件的组合来实现。如图4中所示,技能机器人116可以包括确定输入话语303的意图的机器人分类器模型424和基于意图生成响应435的对话管理器430。
机器人分类器模型424可以使用基于规则或基于ML的模型或两者来实现,并且可以将由主机器人114路由到技能机器人116的输入话语303作为输入。机器人分类器模型424可以访问在技能机器人116上或者技能机器人116可以以其它方式访问的数据存储库450中的规则452和意图数据454。例如,意图数据454可以包括示例话语或针对每个意图的其它数据,并且规则452可以描述如何使用意图数据来确定输入话语303的意图。机器人分类器模型424可以将那些规则应用于输入话语303和意图数据454以确定输入话语303的意图。
更具体而言,在一些实施例中,机器人分类器模型424可以以与图3中的分类器模型324确定用于处置输入话语303的技能机器人116的方式相似的方式操作。例如,机器人分类器模型424可以确定(例如,使用逻辑回归模型)并且可以将相应的置信度级别指派给配置有技能机器人116的每个聊天机器人意图,类似于分类器模型324可以将置信度级别指派给技能机器人116的方式,使得置信度级别指示相应聊天机器人意图最有可能适用于输入话语303的可能性。机器人分类器模型424然后可以选择指派了最高置信度的意图。在附加或替代实施例中,机器人分类器模型424通过将描述输入话语303的输入特征向量与以下当中的任一个或两者进行比较来确定输入话语303的意图:(a)复合特征向量,包括用于表示相应意图的训练特征向量的一个复合特征向量,或(b)训练特征向量的集群,每个集群表示一个意图或多个意图。下面将更详细地描述以这种方式使用特征向量。
在识别出话语202最能表示的意图后,机器人分类器模型424可以将意图指示422(即,识别出的意图的指示)传送到交谈管理器430。在图4的实施例中,交谈管理器430被示为在技能机器人116本地。但是,交谈管理器430可以与主机器人114或跨多个技能机器人116共享。因而,在一些实施例中,交谈管理器430在数字助理或主机器人114本地。
响应于接收到意图指示422,交谈管理器430可以确定对话语202的适当响应435。例如,响应435可以是在为技能机器人116系统400配置的对话流定义455中指定的动作或消息,并且响应435可以被用作图1的实施例中的DA响应112。例如,数据存储库450可以包括各种对话流定义,包括用于每个意图的相应对话流定义,并且交谈管理器430可以基于与那个对话流定义455对应的意图的识别来访问对话流定义455。基于对话流定义455,交谈管理器430可以根据对话流定义455将对话流状态确定为要过渡到的下一个状态。交谈管理器430可以基于对输入话语303的进一步处理来确定响应435。例如,如果输入话语303是“检查储蓄余额”,那么交谈管理器430可以过渡到对话流状态,其中与用户的储蓄账户相关的对话被呈现给用户。交谈管理器430可以基于指示识别出的意图是为技能机器人116配置的“查询余额”意图的意图指示422并且还基于识别出已经为“Account_Type”实体提取出“储蓄”的值而过渡到这个状态。
使用特征向量来描述话语
如上面所提到的,分类器模型324可以在确定输入话语是否与任何可用的技能机器人116不相关或相关时使用特征向量。出于本公开的目的,特征向量是描述话语的特征并因此描述话语本身的向量或坐标集。如本文所述,描述话语的特征向量可以被用于在某些情况下表示话语。
特征向量的概念基于词嵌入的概念。一般而言,词嵌入是一种类型的语言建模,其中词映射到对应的向量。特定的词嵌入可以将语义相似的词映射到向量空间的相似区域,使得相似的词在向量空间中靠得很近,而不相似的词相距很远。词嵌入的简单示例使用“one hot”编码,其中字典中的每个词都映射到其维数等于字典的尺寸的向量,使得该向量在与词本身对应的维度中具有值1并且在所有其它维度中具有值零。例如,“Gointelligent bot service artificial intelligence,Oracle”这句话的前两个词可以用下面的“one hot”编码来表示:
词 | Go | intelligent | bot | service | artificial | intelligence | Oracle |
Go | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
Intelligent | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
… | … | … | … | … | … | … | … |
特征向量可以被用于表示词、句子或各种类型的短语。给定上述词嵌入的简单示例,对应的特征向量可能将一系列词(诸如话语)映射到特征向量,该特征向量是该系列中词的词嵌入的聚合。例如,那个聚合可以是总和、平均或加权平均。
对于彼此不同的话语,因为此类话语包括具有非常不同语义含义的词,因此相应的特征向量也可以不同。但是,语义相似并且因此包括在话语之间相同或在话语之间语义相似的词的话语可以具有相似的特征向量(即,特征向量在向量空间中定位成彼此靠近)。每个特征向量与向量空间(也被称为特征空间)中的单个点对应,其中那个点是特征空间的原点加上特征向量。在一些实施例中,用于语义上彼此相似的话语的点彼此靠近。在整个本公开中,特征向量及其对应的点将被可互换地指代,因为两者提供相同信息的不同视觉形式。
初始化主机器人的分类器模型的示例方法
在一些实施例中,主机器人114的分类器模型324利用训练话语的特征向量作为用于确定输入话语是否与任何可用的技能机器人116不相关或相关的基础。图5是根据本文描述的一些实施例的初始化主机器人114的分类器模型324以执行这个任务的方法500的图。例如,该方法500或类似方法可以在用于配置和使用主机器人114路由输入话语303的方法200的方框205处执行。图5是通用方法500,其更详细的实例参考图14和图18被示出和描述。
图5中描绘的方法500以及本文描述的其它方法可以在由一个或多个处理单元(例如,处理器或处理器核心)执行的软件(例如,作为代码、指令或程序)、硬件或其组合中实现。软件可以存储在非暂态存储介质上,诸如存储器设备上。该方法500旨在是说明性而非限制性的。虽然图5描绘了以特定顺序或次序发生的各种活动,但这不旨在是限制性的。在某些实施例中,例如,可以以不同的次序执行活动,或者可以并行执行方法50的一个或多个活动。在某些实施例中,方法500可以由训练系统350执行,训练系统350可以是DABP 102的一部分。
在方框505处,训练系统350访问与主机器人114相关联的各种技能机器人116的训练话语,也被称为示例话语。例如,训练话语可以被存储为训练系统350可访问的训练数据354中的技能机器人数据。在一些实施例中,主机器人114可用的每个技能机器人116可以与训练话语的子集相关联,并且此类训练话语的每个子集可以包括针对技能机器人116被配置用于的每个意图的训练话语。因此,训练话语的整个集合可以包括针对每个技能机器人116的每个意图的训练话语,使得表示每个技能机器人116的每个意图。
在方框510处,训练系统350从在方框505处访问的训练话语生成训练特征向量。如上所述,训练话语可以包括与每个技能机器人116相关联的子集,并且还可以包括针对每个技能机器人116的每个意图的训练话语。因此,在一些实施例中,训练特征向量可以包括用于每个技能机器人116的相应子集,并且还可以包括针对每个技能机器人的每个意图的相应特征向量。
图6图示了根据本文描述的一些实施例的从训练话语615生成训练特征向量620。具体而言,图6涉及训练数据354中的技能机器人数据358的训练话语615,其中技能机器人数据358与特定技能机器人116相关联。该技能机器人116被配置为处置多个意图(包括意图A和意图B)的输入话语303,因此,训练话语615包括代表意图A的训练话语615以及代表意图B的训练话语615。
如上所述,训练系统350可以生成训练特征向量620来描述和表示每个相应的训练话语615。用于将诸如训练话语615之类的词序列转换成诸如训练特征向量620之类的特征向量的各种技术是已知的,并且可以使用此类技术中的一种或多种。例如,训练系统350可以但不一定使用one-hot编码或某种其它编码来将每个训练话语615编码为对应的训练特征向量620。
同样如上所述,特征向量可以被表示为点。在一些实施例中,每个训练特征向量620可以被表示为特征空间630中的点640,其中特征空间的维数等于训练特征向量620中的特征数(即,维度的数量)。在图6的示例中,代表相同意图(具体而言是意图A)的两个训练特征向量620被绘制为靠在一起的点640,因为这两个训练特征向量620在语义上相似。但是,不要求将用于特定意图的所有训练特征向量620或所有特征向量表示为彼此靠近的点。
返回到图5,在方框515处,训练系统350生成在方框510处生成的训练特征向量620的多个集合表示,其中每个集合表示代表训练特征向量620的集合。如以下详细描述的,集合表示可以是例如训练特征向量620的集群或作为多个训练特征向量620的聚合的复合特征向量。本质上,集合表示可以是表示已经分组在一起的多个训练特征向量620的方式。以对应的集合表示表示的训练特征向量的每个集合可以共享共同的意图、共同的意图组、共同的技能机器人116或特征空间630的共同区域,或者可替代地,以单个集合表示表示的训练特征向量除了基于训练数据354之外不需要有任何共性。
在方框520处,训练系统350可以配置分类器模型324以将作为用户输入110提供的输入话语303与各种集合表示进行比较。例如,集合表示可以存储在主机器人114的分类器模型324可访问的存储设备上,并且分类器模型324可以编程有用于如何确定输入话语是否匹配或不匹配各种集合表示的规则。匹配的定义可以取决于所使用的特定集合表示,如下面将更详细描述的。
图7是根据本文描述的一些实施例的使用主机器人114的分类器模型324来确定作为用户输入110提供的输入话语303是否与和主机器人114相关联的任何可用技能机器人116不相关的方法700的图。该方法700或类似方法可以在分类器模型324的初始化之后并且进一步对于接收到的每个输入话语303执行。例如,该方法700或类似方法可以在用于配置和使用主机器人114路由输入话语303的方法200的方框215处执行。图7是通用方法700,其更详细的实例参考图16和图21被示出和描述。
图7中描绘的方法700以及本文描述的其它方法可以在由一个或多个处理单元(例如,处理器或处理器核心)执行的软件(例如,作为代码、指令或程序)、硬件或其组合中实现。软件可以存储在非暂态存储介质上,诸如存储器设备上。该方法700旨在是说明性而非限制性的。虽然图7描绘了以特定顺序或次序发生的各种活动,但这不旨在是限制性的。在某些实施例中,例如,可以以不同的次序执行活动,或者可以并行执行方法700的一个或多个活动。在某些实施例中,方法700可以由主机器人114执行。
在方法700的方框705处,主机器人114访问已经作为用户输入110提供的输入话语303。例如,在一些实施例中,用户可以以言语输入的形式提供用户输入110,并且数字助理106可以将那个用户输入110转换成文本输入话语303以供主机器人114使用。
在方框710处,主机器人114可以从在方框705处访问的输入话语303生成输入特征向量。输入特征向量可以描述和表示输入话语303。用于将诸如输入话语之类的词序列转换成特征向量的各种技术是已知的,并且可以使用此类技术中的一种或多种。例如,训练系统350可以但不一定使用one-hot编码或某种其它编码来将输入话语编码为对应的输入特征向量。但是,主机器人114的实施例使用与在训练分类器模型324时用于从训练话语生成训练特征向量620相同的技术。
在判定方框715处,主机器人114可以使分类器模型324将在方框710处生成的输入特征向量与在用于初始化分类器模型324的方法500的方框515处确定的集合表示进行比较,因此,主机器人114可以确定输入特征向量是否匹配主机器人114可用的任何技能机器人116。用于比较和匹配的具体技术可以取决于集合表示的性质。例如,如下面将描述的,如果集合表示是训练特征向量620的集群,那么分类器模型324可以将输入特征向量(即,表示输入特征向量的点)与集群进行比较以确定输入特征向量是否落入任何集群内并因此匹配至少一个技能机器人116;或者如果集合表示是训练特征向量的复合向量,那么分类器模型324可以将输入特征向量与复合特征向量进行比较以确定输入特征向量是否与任何这样的复合特征向量足够相似并因此匹配至少一个技能机器人116。各种实现方式是可能的并且在本公开的范围内。
如果在判定方框715处认为输入特征向量与至少一个技能机器人116匹配,那么在方框720处,主机器人114可以将输入话语路由到认为该输入特征向量匹配的技能机器人116。但是,如果在判定方框715处认为输入特征向量不匹配任何技能机器人116,那么在方框725处,主机器人114可以指示话语不能被任何技能机器人116处理。这个指示可以被传递到数字助理,数字助理可以向用户提供指示用户输入110不能被数字助理处理或处置的输出。
图8是根据本文描述的一些实施例的使用主机器人114的分类器模型324来确定作为用户输入110提供的输入话语303是否与和主机器人114相关联的任何可用技能机器人116不相关的方法800的另一个示例的图。该方法800或类似方法可以在分类器模型324的初始化之后并且进一步对于接收到的每个输入话语303执行。例如,该方法800或类似方法可以在用于配置和使用主机器人114路由输入话语303的方法200的方框215处执行。类似于图7的方法700,图8的方法800是通用方法800,其中某些方法方框的更详细的实例参考图16和图21被示出和描述。但是,与图7的方法700相比,该方法800在判定方框810和方框815处例示了初步过滤活动,其可以被用于确保类似于训练话语615的某些输入话语303不被分类为属于空类316。换句话说,该方法800包括过滤器,该过滤器从空类考虑过滤任何被认为与训练话语615足够相似的输入话语303,从而确保将此类输入话语303路由到技能机器人116。
图8中描绘的方法800以及本文描述的其它方法可以在由一个或多个处理单元(例如,处理器或处理器核心)执行的软件(例如,作为代码、指令或程序)、硬件或其组合中实现。软件可以存储在非暂态存储介质上,诸如存储器设备上。该方法800旨在是说明性而非限制性的。虽然图8描绘了以特定顺序或次序发生的各种活动,但这不旨在是限制性的。在某些实施例中,例如,可以以不同的次序执行活动,或者可以并行执行方法800的一个或多个活动。在某些实施例中,方法800可以由主机器人114执行。
在方法800的方框805处,主机器人114访问已经作为用户输入110提供的输入话语303。例如,在一些实施例中,用户可以以言语输入的形式提供用户输入110,并且数字助理106可以将那个用户输入110转换成文本输入话语303以供主机器人114使用。
在判定方框810处,主机器人114可以使分类器模型324确定在方框805处访问的输入话语303中的所有词或预定百分比的词是否在训练话语615中找到。例如,在一些实施例中,分类器模型324利用基于训练话语615的词的Bloom过滤器并将这个Bloom过滤器应用于输入话语303。
如果在判定方框810处输入话语303仅包括在训练话语615中找到的词,那么主机器人114可以确定输入话语与至少一个技能机器人116相关,因此不属于空类316。在那种情况下,在方框815处,主机器人114可以将输入话语303路由到与输入话语303最匹配的技能机器人116。例如,如上所述,分类器模型324可以被配置为针对输入话语向每个技能机器人116指派置信度分数(例如,使用逻辑回归模型)。主机器人114可以选择具有最高置信度分数的技能机器人116并且可以将输入话语303路由到那个技能机器人116。
但是,如果在判定方框810处输入话语303包括不在训练话语615中的任何词,或者包括大于阈值的百分比的词,那么方法800前进到方框820。在方框820处,主机器人114可以从在方框805处访问的输入话语303生成输入特征向量。输入特征向量可以描述和表示输入话语303。用于将诸如输入话语之类的词序列转换成特征向量的各种技术是已知的,并且可以使用此类技术中的一种或多种。例如,训练系统350可以但不一定使用one-hot编码或某种其它编码来将每个训练话语615编码为对应的训练特征向量620。但是,主机器人114的实施例使用与用于从训练话语生成训练特征向量620相同的技术。
在判定方框825处,主机器人114可以使分类器模型324将在方框820处生成的输入特征向量与在用于初始化分类器模型324的方法500的方框515处确定的集合表示进行比较,因此,主机器人114可以确定输入特征向量是否与主机器人114可用的任何技能机器人116匹配。用于比较和匹配的特定技术可以取决于集合表示的性质。例如,如下所述,如果集合表示是训练特征向量620的集群,那么分类器模型324可以将输入特征向量(即,表示输入特征向量的点)与集群进行比较以确定输入特征向量是否落入任何集群内并因此与至少一个技能机器人116匹配;或者如果集合表示是训练特征向量的复合向量,那么分类器模型324可以将输入特征向量与复合特征向量进行比较以确定输入特征向量是否与任何这样的复合特征向量足够相似并因此与至少一个技能机器人116匹配。各种实现方式是可能的并且在本公开的范围内。
如果在判定方框825处认为输入特征向量与至少一个技能机器人116匹配,那么在方框830处,主机器人114可以将输入话语路由到认为该输入特征向量匹配的技能机器人116。但是,如果在判定方框825处认为输入特征向量不与任何技能机器人116匹配,那么在方框835处,主机器人114可以指示话语不能被任何技能机器人116处理。这个指示可以被传递给数字助理,数字助理可以向用户提供指示用户输入110不能被数字助理处理或处置的输出。
分类器模型可使用的集群类型的示例
如上面所提到的,分类器模型324可以使用的集合表示的示例类型是训练特征向量620的集群。一般而言,可以假设,可以被可用技能机器人116处置并因此与可用技能机器人116相关的输入话语与用于那些技能机器人116的训练话语615具有一些语义相似性。因此,与可用技能机器人116相关的输入话语303可能可以被表示为与特征空间630中的一个或多个训练话语615接近的输入特征向量。
鉴于语义相似话语的特征向量的接近性,可以定义边界来划分绘制成点并具有共同意图的特征向量,或分离具有不同意图的特征向量。在二维空间中,边界可以是线或圆圆,使得落入诸如线一侧的点属于第一意图类(即,与具有第一意图的话语对应),而落入线的另一侧的点属于第二意图类。在三个维度中,边界可以被表示为平面或球面。更一般而言,在各种维度中,边界可以是超平面、超球面或超体积。边界可以具有各种形状并且不一定是完全球形或对称的。
图9图示了根据本文描述的一些实施例的特征空间630的示例,其包括表示示例话语的特征向量的点。在这个示例中,示例话语中的一些属于余额类并代表与账户余额信息的请求相关的第一意图,而示例话语的其余部分属于交易类并代表与有关交易的信息的请求相关的第二意图。在图9中,余额类中的示例话语用b标记,而交易类中的示例话语用t标记。例如,可以为与财务相关的技能机器人116定义这些意图类。
例如,下表中的示例话语可以在第一列中属于余额类并且在第二列中属于交易类:
余额类 | 交易类 |
我的当前储蓄账户值是多少? | 示出我上周末的交易。 |
我的cc上的当前余额是多少? | 给我看我上个月寄出的所有支票。 |
我有足够的钱吗? | 示出我最近的五张支票。 |
我欠什么? | 给我看我从1月到5月的支票账户交易。 |
我的所有账户里有多少钱? | 给我看我最近的十笔储蓄账户交易。 |
我的支票有多少钱? | 示出我五月份最大的一笔交易。 |
告诉我我的余额。 | 上周我付给Andy多少钱? |
我所有的信用卡都欠多少钱? | 我四月份存了多少钱? |
我的余额是多少? | |
目前的余额是多少? | |
去年我存了多少钱? | |
我有多少钱可用? | |
我的卡上有哪些可用额度? |
图10图示了根据本文描述的一些实施例的图9的特征空间630在示例话语的特征向量的意图类之间具有类边界1010的示例。具体而言,如图10中所示,为了将余额类中的点(即,示例话语的特征向量)与交易类中的点分开,可以绘制一条线作为类边界1010。这个类边界1010是两个意图类之间划分的粗略近似。在意图类之间创建更精确的边界1010可以涉及提供定义特征向量的集群的圆圈或其它几何体积,使得每个集群仅包括单个对应的意图类内的特征向量(即,具有与那个意图类相关联的意图)。
图11图示了根据本文描述的一些实施例的图9的特征空间630具有将与共同意图相关联的特征向量分离(具体而言是隔离)到相应集群中的类边界1010的示例。在这个示例中,如在一些实施例中,并非意图类的所有特征向量都在单个集群内,但是没有集群包括来自多于单个意图类的特征向量。具体而言,在所示示例中,由第一类边界1010定义的第一集群1110a仅包括余额类中的特征向量,而由第二类边界1010定义的第二集群1110b仅包括交易类中的特征向量。如下文详细描述的,本文描述的一些实施例可以形成类边界1010以创建诸如图11中所示的集群。
图12图示了根据本文描述的一些实施例的图9的特征空间630具有将与共同意图相关联的特征向量分离(具体而言是隔离)到相应集群中的类边界1010的另一个示例。在这个示例中,如在一些实施例中,并非意图类的所有特征向量都在单个集群内,但是没有集群包括来自多于单个意图类的特征向量。具体而言,在所示示例中,由第一类边界1010定义的第一集群1110c仅包括余额类中的特征向量,而第二类边界1010定义的第二集群1110d仅包括交易类中的特征向量。但是,与图11的示例相反,类边界1010以及因此集群是重叠的。本文描述的一些实施例支持重叠集群,如图12中所示。如下文详细描述的,本文描述的一些实施例可以形成类边界1010以创建诸如图12中所示的集群。
图13图示了根据本文描述的一些实施例的图9的特征空间630具有将特征向量分离到集群中的类边界1010的另一个示例。在这个示例中,如在一些实施例中,并非意图类的所有特征向量都在单个集群内,并且另外,集群可以通过包括具有不同意图的特征向量来表示各种意图。具体而言,在所示示例中,由第一类边界1010定义的第一集群1110e仅包括余额类中的特征向量,而由第二类边界1010定义的第二集群1110f包括余额类中的一些特征向量(即,具有与余额相关的意图)和交易类中的一些特征向量(即,具有与交易相关的意图)。本文描述的一些实施例支持具有不同意图的集群,如图13中所示。如下文详细描述的,本文描述的一些实施例可以形成类边界1010以创建诸如图13中所示的集群。
聚类(clustering)以识别不相关的输入话语
图14是根据本文描述的一些实施例的初始化主机器人114的分类器模型324以利用训练特征向量的集群来确定输入话语是否与可用技能机器人116不相关或相关的方法1400的示意图。该方法1400或类似方法可以用在用于配置和使用主机器人114将输入话语303指引到技能机器人116的上述方法200的方框205处,另外,图14的方法1400是图5的方法500的更具体的变体。在该方法的一些实施例中,如下所述,k-均值聚类被执行以配置分类器模型324。虽然与其它聚类技术(例如,k-最近邻)相比,k-均值聚类可以允许更准确的集群形成,但是可以使用各种聚类技术来代替k-均值聚类或作为其补充。
图14中描绘的方法1400以及本文描述的其它方法可以在由一个或多个处理单元(例如,处理器或处理器核心)执行的软件(例如,作为代码、指令或程序)、硬件或其组合中实现。软件可以存储在非暂态存储介质上,诸如存储器设备上。该方法1400旨在是说明性而非限制性的。虽然图14描绘了以特定顺序或次序发生的各种活动,但这不旨在是限制性的。在某些实施例中,例如,可以以不同的次序执行活动,或者可以并行执行方法1400的一个或多个活动。在某些实施例中,方法1400可以由训练系统350执行,训练系统350可以是DABP102的一部分。
在方法1400的方框1405处,训练系统350访问用于与主机器人114相关联的各种技能机器人116的训练话语615,也被称为示例话语。例如,训练话语615可以作为技能机器人数据存储在训练系统350可访问的训练数据354中。在一些实施例中,主机器人114可用的每个技能机器人116可以与训练话语615的子集相关联,并且训练话语615的每个这样的子集可以包括针对技能机器人116被配置用于的每个意图的训练话语615。因此,训练话语615的整个集合可以包括针对每个技能机器人116的每个意图的训练话语615,使得表示每个技能机器人116的每个意图。
图15图示了根据本文描述的一些实施例的图14的方法1400的各方面的执行的示例。如图15中所示,训练系统350可以访问训练数据354,训练数据354可以包括与主机器人114(其分类器模型324正在被训练)可用的技能机器人116相关的技能机器人数据。在这个示例中,训练系统350访问的训练数据354可以包括来自第一技能机器人数据358d、第二技能机器人数据358e和第三技能机器人数据358f的训练话语615,第一技能机器人数据358d、第二技能机器人数据358e和第三技能机器人数据358f中的每一个可以包括代表主机器人114可用的相应技能机器人116。另外,对于给定的技能机器人数据的集合,如图15中对于第一技能机器人数据358d所示,每个训练话语615可以与相关联的技能机器人116被配置为评估和处理的意图相关联。
在图14的方框1410处,训练系统350从在方框1405处被访问的训练话语615生成训练特征向量620。如上所述,训练话语615可以包括与每个技能机器人116相关联的子集,并且还可以包括针对每个技能机器人116的每个意图的训练话语615。因此,在一些实施例中,训练特征向量620可以包括用于每个技能机器人116的相应子集,并且还可以包括用于每个技能机器人的每个意图的相应特征向量。如上所述,训练系统350可以生成训练特征向量620以描述和表示每个相应的训练话语615。用于将诸如训练话语615之类的词序列转换成诸如训练特征向量620之类的特征向量的各种技术是已知的,并且可以使用此类技术中的一种或多种。例如,训练系统350可以但不一定使用one-hot编码或某种其它编码来将每个训练话语615编码为对应的训练特征向量620。
如图15中所示,例如,来自各种技能机器人数据358的每个训练话语615可以被转换成相应的训练特征向量620。在一些实施例中,由此产生的训练特征向量620可以代表为其提供了训练话语615的所有技能机器人116以及为其提供了训练话语615的所有意图。
在图14的方框1415处,训练系统350可以设置(即,初始化)计数,该计数是要生成的集群的数量。在一些实施例中,例如,计数最初可以被设置为数量n,其中n是主机器人114可用的各种技能机器人116上的意图的总数。但是,可以使用各种其它量作为计数的初始值。
在一些实施例中,训练系统350执行一轮、两轮或更多轮迭代地确定训练特征向量620的一组集群。虽然该方法1400利用两轮确定集群,但在一些实施例中可以使用单轮或更多轮。在方框1420处,训练系统350开始第一轮确定集群。第一轮利用迭代循环,其中训练系统350生成训练特征向量620的集群,然后确定此类集群的充分性。如下所述,当集群被认为足够时,训练系统350然后可以终止第一轮中的迭代。
在一些实施例中,方框1425是用于确定集群的第一轮的迭代循环的开始。具体而言,在方框1425处,训练系统3509可以确定要在这个迭代中生成的各个集群的相应质心位置(即,每个质心的相应位置);质心位置的数量等于在方框1415处确定的计数。在一些实施例中,在这个循环的第一次迭代中,训练系统350可以在训练话语615落入的特征空间630内选择一组随机选择的质心位置,其数量等于该计数。更具体而言,例如,训练系统350可以为与训练特征向量620对应的点确定边界框,诸如最小边界框。训练系统350然后可以在那个边界框内随机选择质心位置的集合,其中选择的位置的数量等于为集群确定的计数。在除第一次以外的迭代期间,计数自前一次迭代以来增加,因此,在一些实施例中,仅随机确定新添加的质心的质心位置。在前一次迭代中带来的质心可以保留它们的位置。对应集群的相应质心可以定位在每个质心位置处。
在方框1430处,训练系统350可以通过将每个训练特征向量620指派给其位置在方框1425处被确定的各个质心中的相应最接近的质心来确定集群。例如,对于每个训练特征向量620,训练系统350可以计算到每个质心位置的距离并且可以将那个训练特征向量620指派给具有最小这种距离的质心。指派给共同质心的训练特征向量620的集合可以一起形成与该质心相关联的集群;因此,集群的数量可以等于质心的数量,这是计数的值。
在图15的示例中,仅示出了特征空间630的一部分,并且第一质心1510a和第二质心1510b在那个部分内是可见的。在所示的三个训练特征向量620中,训练系统350确定两个最接近第一质心1510a并且一个最接近第二质心1510b。在这个示例中,最接近第一质心1510a的两个训练特征向量620组成第一集群1110g,并且最接近第二质心1510b的一个训练特征向量620组成第二集群1110h。
在图14的方框1435处,对于在方框1430处确定的集群,训练系统350重新计算每个集群的质心的位置。例如,在一些实施例中,每个集群的质心被计算为指派给那个质心并因此指派给那个集群的训练特征向量620的平均(例如,算术平均值)。
在判定方框1440处,训练系统350可以确定是否满足停止条件。在一些实施例中,训练系统350可以利用该方法1400或类似方法重复地增加质心的数量(即,增加计数)并将训练特征向量620指派给它们最接近的相应质心,直到发生收敛,使得在聚类中没有可能出现显著改善。在一些实施例中,停止条件定义足够的收敛水平。
在一些实施例中,如果以下条件中的一个或两个为真,那么可以满足停止条件:(1)平均集群成本满足第一阈值,诸如平均集群成本小于1.5或某个其它预定值;或者(2)离群者比率满足第二阈值,诸如离群者比率小于等于0.25或其它预定值。特定集群的集群成本可以被定义为(a)在方框1435中重新计算的集群的质心与指派给那个质心的每个训练特征向量620之间的平方距离之和(b)除以指派给那个质心的训练特征向量620的数量。因此,平均集群成本可以是各种质心的各种集群成本的平均。离群者比率可以被定义为集群当中离群者的总数除以集群的数量(即,计数)。存在用于定义离群者的各种技术,并且训练系统350可以使用此类技术中的一种或多种。在一些实施例中,当且仅当(1)平均集群成本满足第一阈值(例如,低于1.5)并且(2)离群者比率满足第二阈值(例如,不高于0.25)时才满足停止条件。
一般而言,平均集群成本会随着k(即,计数)的值增加而降低,而离群者比率则随着k的增加而增加。在一些实施例中,当应用考虑这两个因素的上述停止条件时,满足集群计数和离群者比率两者的相应阈值的最大k值是分类器模型324的最终k值。
如果在判定方框1440处不满足停止条件,那么方法1400可以前进到方框1445。在方框1445处,训练系统增加下一轮聚类的计数。在一些实施例中,计数可以递增地增加使得在不大于循环的某个迭代次数之后可能会满足停止条件的量。例如,在一些实施例中,计数可以增加等于的步长值,其中n是所有可用技能机器人116上的意图的总数并且u是所有可用技能机器人116上的训练话语615的总数。这个步长将确保最终满足停止条件。具体而言,使用这个步长,从等于n的计数开始,第二十次迭代的计数将不小于u,即,话语的数量。当计数不小于u时,每个话语可能都有自己的集群,或者如果不是这种情况,那么平均集群成本仍然可能小于1.5并且离群者比率将小于或等于0.25,这满足示例停止条件。更一般而言,可以选择步长以确保迭代不会因循环不合理的时间量而浪费计算资源。在方框1445处更新计数之后,方法1400然后返回到方框1425以执行另一个循环迭代。
但是,如果在判定方框1440处满足停止条件,那么方法1400可以退出当前迭代循环并且可以向前跳到方框1450。在方框1450处,训练系统350开始第二轮聚类,其中可以基于第一轮中完成的工作进一步定义机器。
在一些实施例中,方框1455是用于确定集群的第二轮的迭代循环的开始。具体而言,在方框1455处,训练系统3509可以确定要在这次迭代中生成的各个集群的相应质心位置(即,每个质心的相应位置);质心位置的数量等于计数的当前值。在一些实施例中,在这个循环的第一次迭代中,训练系统350使用在第一轮结束之前在方框1435处重新计算的质心位置。在第一次以外的迭代中,计数自上一次迭代以来有所增加。在那种情况下,来自前一次迭代的质心可以保留它们的质心位置,并且在一些实施例中,可以随机地确定由于计数的增加而新添加的质心的质心位置。对应集群的相应质心可以定位在每个质心位置处。
在方框1460处,训练系统350可以通过将每个训练特征向量620指派给各个质心当中它最接近的相应质心(质心的位置在方框1455处确定)来确定集群。例如,对于每个训练特征向量620,训练系统350可以计算到每个质心位置的距离并且可以将那个训练特征向量620指派给具有最小这种距离的质心。指派给共用质心的训练特征向量620的集合可以一起形成与那个质心相关联的集群;因此,集群的数量可以等于质心的数量,这是计数的值。
在方框1465处,对于在方框1460处确定的集群,训练系统350重新计算每个集群的质心的位置。例如,在一些实施例中,每个集群的质心被计算为指派给那个质心并因此指派给那个集群的训练特征向量620的平均(例如,算术平均值)。
在判定方框1470处,训练系统350可以确定是否满足停止条件。在一些实施例中,训练系统350可以利用该方法1400或类似方法来重复地增加质心的数量(即,增加计数)并将训练特征向量620指派给它们最接近的相应质心,直到发生收敛,使得在聚类中没有可能出现显著改进。在一些实施例中,停止条件定义足够的收敛水平。
在一些实施例中,如果以下条件中的一个或两个为真,那么可以满足停止条件:(1)平均集群成本满足第一阈值,诸如平均集群成本小于1.5或某个其它预定值;或者(2)离群者比率满足第二阈值,诸如离群者比率小于等于0.25或其它预定值。特定集群的集群成本可以被定义为(a)在方框1465中重新计算的集群的质心与指派给那个质心的每个训练特征向量620之间的平方距离之和(b)除以指派给那个质心的训练特征向量620的数量。因此,平均集群成本可以是各个质心的各种集群成本的平均。离群者比率可以被定义为集群当中离群者的总数除以集群的数量(即,计数)。存在用于定义离群者的各种技术,并且训练系统350可以使用此类技术中的一种或多种。在一些实施例中,当且仅当(1)平均集群成本满足第一阈值(例如,低于1.5)并且(2)离群者比率满足第二阈值(例如,不高于0.25)时才满足停止条件。
如果在判定方框1470处不满足停止条件,那么方法1400可以前进到方框1475。在方框1475处,训练系统增加下一轮聚类的计数。在一些实施例中,计数可以递增地增加使得在不大于循环的特定次数迭代之后可能会满足停止条件的量。例如,在一些实施例中,计数可以增加等于的步长值。这个步长确保最终会满足停止条件。具体而言,使用这个步长,在第五次迭代结束时可能会满足停止条件。更一般而言,可以选择步长以确保迭代不会因循环不合理的时间量而浪费计算资源。在方框1475处更新计数之后,方法1400然后返回到方框1455以执行另一个循环迭代。
但是,如果在判定方框1470处满足停止条件,那么方法1400可以退出当前迭代循环并且可以向前跳到方框1480。在方框1480处,训练系统350为上面确定的每个集群确定相应的边界1010。在一些实施例中,集群的边界1010被定义为以集群的质心为中心并且包括指派给集群的所有训练特征向量620。在一些实施例中,例如,集群的边界1010是其中心在质心处的超球面(例如,圆形或球面)。在一些实施例中,边界1010的半径可以是余量值(即,填充量)加上以下中的较大者:(1)在那个集群中从中心到距离质心最远的训练特征向量620的最大距离,或(2)从集群中的训练特征向量620到质心的相应距离的平均值加上这些距离的标准差的三倍。换句话说,半径可以被设置为:半径=margin+max(max(distances),mean(distances)+3σ(distances)),其中distances是从集群的训练特征向量到集群的质心的相应距离的集合,并且其中max(distances)是那个集合的最大值,mean(distances)是那个集合的平均值,并且σ(distances)是那个集合的标准差。另外,余量值margin可以是误差的余量并且可以具有大于或等于零的值。
在一些实施例中,余量可以被用于定义边界1010,该边界1010涵盖比其它方式更大的覆盖范围,以减少相关输入话语303落入所有集群之外并因此被标记为空类316的成员的机会。换句话说,余量可以填充边界1010。例如,余量可以具有值margin=10u,其中u是正被使用的训练话语615的总数。余量可以解释这样一种情况,其中潜在地因为训练话语的数量太低(例如,二十到三十),训练特征向量620没有覆盖特征空间630的重要部分,使得集群否则可能太小而无法捕获相关的输入话语303。
返回到图15的示例,训练系统350为基于训练特征向量620的指派确定的每个集群确定相应的边界。具体而言,在这个示例中,为包括两个训练特征向量620的第一集群1110g确定第一边界1010a,并且为包括一个训练特征向量620的第二集群1110h确定第二边界1010b。训练特征向量的数量可以小,如在这个示例中,或者可以很多,诸如每个集群数百个训练特征向量620。应该理解的是,这个简单的示例是非限制性的并且仅为了说明目的而提供。
如图14中所示,在方框1485处,训练系统350可以配置主机器人114的分类器模型324以利用在方框1480处确定的边界1010,也被称为集群边界。例如,训练系统350可以将集群边界的指示存储在分类器模型可访问的存储设备中(例如,在数字助理106上)。分类器模型324可以被配置为将输入话语与充当训练特征向量620的集合表示的此类集群边界1010进行比较。
各种修改可以发生在上述方法1400上并且在本公开的范围内。例如,训练系统350的一些示例仅执行单轮的精炼集群。在那种情况下,可以跳过方框1445到方框1475的活动,使得当在判定方框1440满足停止条件时,方法1400前进到方框1480。训练系统350的一些其它示例执行多于两轮的精炼集群。在这种情况下,可以在第二轮之后的每一轮中重复方框1445到方框1475的活动。这些和其它实现方式在本公开的范围内。
在一些实施例中,在上述方法1400中确定的k值(即,计数的值,并因此是聚类的数量)取决于训练话语615的总数以及训练特征向量620在整个特征空间630中的分布。因此,取决于可用的技能机器人116和可用于表示那些技能机器人116的意图的训练话语615,k值可以因主机器人114而异。最优k值是达到平衡的值,使得每个集群足够大,从而与那个集群相关的输入话语303将落入集群的边界1010内,不相关的话语落入边界1010之外。如果集群太大,那么错误匹配的风险增加。如果集群太小(例如,由单个训练话语615组成),那么分类器模型324可能过拟合,并且此类集群的有用性受到限制。
在方法1400的上述示例中,训练特征向量620不是基于意图划分或分组的,因此集群可以包括代表各种技能机器人116或一个或多个技能机器人116的各种意图的训练特征向量620。附加地或可替代地,训练系统350的实施例可以确保每个集群仅包括代表单个技能机器人116、单个意图或单个子机器人的训练特征向量620,其中子机器人与代表单个技能机器人116的训练话语的子集相关联。可以使用各种技术以这种方式限制集群。例如,可以基于意图、子机器人或技能机器人116将训练话语分离成组,并且可以对每个组执行上述方法1400的相应实例。以这种方式,在方法1400的一个实例期间为对应的组确定的集群(例如,代表特定技能机器人116的训练话语615)可以仅包括来自那个对应的组的训练特征向量620,那个对应的组可以限于单个意图、子机器人或技能机器人116的训练话语。各种其它实现方式是可能的并且在本公开的范围内。
图16是根据本文描述的一些实施例的使用主机器人114的分类器模型324来确定作为用户输入110提供的输入话语303是否与和主机器人114相关联的任何可用技能机器人116不相关的方法1600的图。该方法1600或类似方法可以在配置和使用主机器人114将输入话语303指引到技能机器人116的上述方法200的方框215处使用。图16的方法1600是图7的方法700的更具体的变体,并且与图7的方法700类似,图16的方法1600可以与关于图8的方法800描述的初步过滤活动一起使用。更具体而言,如下所述,主机器人114的分类器模型324可以利用训练特征向量620的集群来确定输入话语303是否属于空类316(即,与可用技能机器人116不相关)。
图16中描绘的方法1600以及本文描述的其它方法可以在由一个或多个处理单元(例如,处理器或处理器核心)执行的软件(例如,作为代码、指令或程序)、硬件或其组合中实现。软件可以存储在非暂态存储介质上,诸如存储器设备上。该方法1600旨在是说明性而非限制性的。虽然图16描绘了以特定顺序或次序发生的各种活动,但这不旨在是限制性的。在某些实施例中,例如,可以以不同的次序执行活动,或者可以并行执行方法1600的一个或多个活动。在某些实施例中,方法1600可以由与可用技能机器人116的集合相关联的主机器人114执行。
在方法1600的方框1605处,主机器人114访问已经作为用户输入110提供的输入话语303。例如,在一些实施例中,用户可以以言语输入的形式提供用户输入110,并且数字助理106可以将那个用户输入110转换成文本输入话语303以供主机器人114使用。
在方框1610处,主机器人114可以从在方框1605处被访问的输入话语303生成输入特征向量。更具体而言,在一些实施例中,主机器人114使主机器人114的分类器模型324从输入话语303生成输入特征向量。输入特征向量可以描述和表示输入话语303。用于将诸如输入话语之类的词序列转换成特征向量的各种技术是已知的,并且可以使用此类技术中的一种或多种。例如,训练系统350可以但不一定使用one-hot编码或某种其它编码来将输入话语303编码为对应的输入特征向量。但是,主机器人114的实施例使用与在训练分类器模型324时用于从训练话语615生成训练特征向量620相同的技术。
在判定方框1615处,主机器人114将在方框1610处生成的输入特征向量与集群进行比较。更具体而言,在一些实施例中,主机器人114使分类器模型324将在方框1610处生成的输入特征向量与在训练期间确定的集群(具体而言是集群的边界)进行比较。如上面所讨论的,每个集群可以包括一组训练特征向量620并且可以包括基于那个集群的训练特征向量620的边界1010;例如,边界1010包括指派给集群的所有训练特征向量620以及可能在那些训练特征向量620之外的一些附加空间。具体而言,在一些实施例中,分类器模型324确定输入特征向量(即,与输入特征向量对应的点)是否落入训练特征向量620的任何集群的任何边界1010内。本领域中存在用于确定点是否落入边界内的各种技术,并且可以使用此类技术中的一种或多种来确定输入特征向量是否落入集群的任何边界1010内。
在判定方框1620处,分类器模型324基于将输入特征向量与集群边界进行比较来做出判定。如果输入特征向量没有落入任何集群边界内并因此落入所有集群边界1010之外,那么方法1600前进到方框1625。
图17图示了根据本文描述的一些实施例在输入特征向量1710落入所有集群边界之外的情况下执行该方法1600的示例。在一些实施例中,主机器人114向分类器模型324提供输入话语303,从而使分类器模型324将输入话语303转换成输入特征向量1710,并将输入特征向量与聚类边界1010进行比较。在图17的示例中,在特征空间630中示出了五个集群1110;但是,可以使用更多或更少数量的集群1110。在这个示例中,输入特征向量1710落入所有集群边界1010之外,因此,分类器模型324向主机器人114输出输入话语303属于空类316的指示。
返回到图16,在方框1625处,主机器人114基于分类器模型324指示输入特征向量落入所有集群边界1010之外来指示输入话语303不能被处理(即,不能被进一步处理)。例如,数字助理106可以响应用户以请求澄清或报告用户输入110与数字助理的技能不相关。
但是,如果输入特征向量落入一个或多个集群边界1010内,那么方法1600向前跳到方框1630。在方框1630处,主机器人114通过从可用的技能机器人116中选择技能机器人116之一来确定用于处置输入话语303(即,进一步处理并确定对其的响应435)的技能机器人116。可以以各种方式执行确定技能机器人116,并且所使用的技术可以取决于输入特征向量落入的一个或多个集群边界1010的构成。
为了为输入话语303选择技能机器人116,主机器人114可以考虑由与输入特征向量1710共享集群的训练特征向量620(即,作为输入特征向量1710落入其边界1010的集群1110的成员的训练特征向量)表示的各种训练话语。例如,如果训练特征向量620落入两个或更多个重叠的集群1110,那么可以考虑在这两个或更多个集群1110的任何一个中具有对应训练特征向量1710的训练话语615。类似地,如果训练特征向量620仅落入单个集群1110,那么考虑在那个集群1110中具有对应训练特征向量620的训练话语615。如果正在考虑的所有训练话语615都代表单个技能机器人116,例如,如果输入特征向量1710落入包括仅与单个技能机器人116相关联的训练特征向量620的集群1110的情况,那么可以是这种情况,则主机器人114可以选择那个技能机器人116来处置输入话语303。
在一些实施例中,分类器模型324可以能够识别特定技能机器人116用于处置输入话语的特定意图。例如,如果训练特征向量620落入的一个或多个集群1110仅包括代表单个技能机器人116的单个意图的训练话语615的训练特征向量620,那么分类器模型324可以识别那个特定的意图适用于输入话语303。如果分类器模型324能够识别特定技能机器人116的特定意图,那么主机器人114可以将输入话语303路由到那个技能机器人116并且可以向技能机器人116指示该意图。因此,技能机器人116可以跳过其自己对输入话语303的分类的执行以推断意图,而是可以推断由主机器人114指示的意图。
但是,如果正在考虑的训练话语615代表多个技能机器人116,例如如果输入特征向量1710落入由代表多个技能机器人116的训练特征向量620组成的集群1110或者如果输入特征向量1710落入多个重叠的集群1110,那么可以是这种情况,则主机器人114可能需要进一步对输入话语303进行分类以选择技能机器人116。可以使用各种技术来进一步对输入话语303进行分类。在一些实施例中,分类器模型324实现机器学习模式,以对于具有输入特征向量1710落入的一个或多个集群1110中的相关联的训练特征向量620的每个技能机器人116,计算关于输入话语303的置信度分数(例如,使用逻辑回归模型)。例如,机器学习模型可以用复合特征向量进行训练。主机器人114然后可以选择具有最高置信度分数的技能机器人116来处置输入话语303。与常规使用置信度分数来识别相关技能机器人116相比,在一些实施例中,已经确定输入话语303与技能机器人116相关;因此,减少或消除了将输入话语303路由到不相关的技能机器人116的风险。
在附加或替代实施例中,分类器模型324可以利用k-最近邻技术从两个或更多个技能机器人116中选择其相关联的训练特征向量620与输入特征向量1710共享一个或多个集群1110的技能机器人116。例如,分类器模型324可以选择k的值并且可以从落入输入特征向量1710的一个或多个集群1110的训练特征向量620当中识别输入特征向量1710的k个最近的训练特征向量620。分类器模型324可以识别在那组k个最近的训练特征向量620中具有最大数量的相关联训练特征向量620的技能机器人116,并且主机器人114可以选择那个技能机器人116来处理输入话语。用于选择技能机器人116的各种其它实现方式是可能的并且在本公开的范围内。
在方框1635处,主机器人114可以将输入话语303转发到在方框1630处选择的技能机器人。技能机器人116然后可以处理输入话语303以响应用户输入110。
使用复合向量来识别不相关的输入话语
如上面所讨论的,一般而言,本文描述的一些实施例利用训练特征向量620的集合表示来确定输入话语303是否与可用技能机器人116的集合相关。同样如上面所讨论的,集合表示可以是集群1110。但是,附加地或可替代地,集合表示可以是更高级别的特征向量,在本文中被称为复合特征向量。
图18是根据本文描述的一些实施例的初始化主机器人114的分类器模型324以利用复合特征向量来确定输入话语303是否与可用技能机器人116不相关或相关的方法1800的图。该方法1800或类似方法可以在配置和使用主机器人114将输入话语303指引到技能机器人116的上述方法200的方框205处使用,另外,图18的方法1800是图5的方法500的更具体的变体。
图18中描绘的方法1800以及本文描述的其它方法可以在由一个或多个处理单元(例如,处理器或处理器核心)执行的软件(例如,作为代码、指令或程序)、硬件或其组合中实现。软件可以存储在非暂态存储介质上,诸如存储器设备上。该方法1800旨在是说明性而非限制性的。虽然图18描绘了以特定顺序或次序发生的各种活动,但这不旨在是限制性的。在某些实施例中,例如,可以以不同的次序执行活动,或者可以并行执行方法1800的一个或多个活动。在某些实施例中,方法1800可以由训练系统350执行,训练系统350可以是DABP102的一部分。
在方法1800的方框1805处,训练系统350访问与主机器人114相关联的各种技能机器人116的训练话语615,也被称为示例话语。例如,训练话语615可以作为技能机器人数据存储在训练系统350可访问的训练数据354中。在一些实施例中,主机器人114可用的每个技能机器人116可以与训练话语615的子集相关联,并且训练话语615的每个这样的子集可以包括针对技能机器人116被配置用于的每个意图的训练话语615。因此,训练话语615的这个集合可以包括针对每个技能机器人116的每个意图的训练话语615,使得表示每个技能机器人116的每个意图。
在方框1810处,训练系统350从在方框1805处访问的训练话语615生成训练特征向量620。如上所述,训练话语615可以包括与每个技能机器人116相关联的子集,并且还可以包括针对每个技能机器人116的每个意图的训练话语615。因此,在一些实施例中,训练特征向量620可以包括用于每个技能机器人116的相应子集,并且还可以包括针对每个技能机器人的每个意图的相应特征向量。如上所述,训练系统350可以生成训练特征向量620来描述和表示每个相应的训练话语615。用于将诸如训练话语615之类的词序列转换成诸如训练特征向量620之类的特征向量的各种技术是已知的,并且可以使用此类技术中的一种或多种。例如,训练系统350可以但不一定使用one-hot编码或某种其它编码来将每个训练话语615编码为对应的训练特征向量620。
在方框1815处,训练系统350将训练特征向量620以及对应的训练话语615划分为交谈类别。例如,可以基于意图、子机器人或技能机器人116来定义交谈类别。在一些实施例中,如果交谈类别基于意图,那么每个交谈类别包括代表技能机器人116被配置用于的单个对应意图的训练特征向量620;在那种情况下,交谈类别的数量可以等于主机器人114可用的各种技能机器人116的意图的数量。在一些实施例中,如果交谈类别基于技能机器人116,那么每个交谈类别包括代表单个对应技能机器人116的训练特征向量620;在那种情况下,交谈类别的数量可以等于主机器人114可用的技能机器人116的数量。在一些实施例中,如果交谈类别基于子机器人,那么每个交谈类别包括代表单个对应技能机器人116的训练特征向量620的子集;在那种情况下,交谈类别的数量可以不少于主机器人114可用的技能机器人116的数量。
在方框1820处,训练系统350从训练特征向量620生成复合特征向量,使得交谈类别中的相应训练特征向量620被聚合成复合特征向量,该复合特征向量代表并对应于那个交谈类别。换句话说,对于在方框1815处指派了训练特征向量620的每个交谈类别,训练系统350可以将相应的训练特征向量620组合成用于该交谈类别的复合特征向量。可以使用各种技术进行聚合;例如,复合特征向量可以是相应类别中的训练特征向量620的平均(例如,算术平均值)。取决于交谈类别的基础,根据交谈类别是分别基于意图、子机器人还是技能机器人116来定义的,复合特征向量可以是意图向量和子机器人向量,或者机器人向量。
虽然可以将复合特征向量生成为训练特征向量620的算术平均值,但是可以附加地或可替代地使用其它数学函数(包括其它类型的线性组合)来生成复合特征向量。例如,在一些实施例中,复合特征向量可以是交谈类别中的训练特征向量620的加权平均。加权可以基于各种因素,诸如某些关键词在对应训练话语615中的优先级,使得具有特定关键词的训练话语615被赋予更大的权重。在生成子机器人向量或机器人向量的情况下,可以将训练特征向量620聚合为加权平均,使得与某些意图对应的训练特征向量620被赋予比其它训练特征向量620更大的权重。例如,相比于与具有较少数量的代表性训练话语615的意图对应的训练特征向量620,与具有更多数量的代表性训练话语615的意图对应的训练特征向量620可以被赋予更大的总体权重。各种实现方式是可能的并且在本公开的范围内。
图19和图20图示了复合特征向量的概念。具体而言,图19图示了根据本文描述的一些实施例的使用基于意图的交谈类别的复合特征向量的生成。因此,图19中所示的复合特征向量处于意图级别,因此是意图向量。在图19的示例中,至少两个技能机器人116可用于主机器人114。第一技能机器人116与第一技能机器人数据358g相关联,第一技能机器人数据358g包括代表第一意图(意图A)的训练话语615和代表第二意图(意图B)的其它训练话语615。因此第一技能机器人116被配置为处置与意图A或意图B相关联的输入话语。第二技能机器人116与第二技能机器人数据358h相关联,第二技能机器人数据358h包括代表第三意图(意图C)的训练话语615。因此,第二技能机器人116被配置为处置与意图C相关的输入话语。
在图19的示例中,训练系统350将用于技能机器人116的所有训练话语615转换成相应的特征向量620。训练系统350将训练特征向量分组为基于意图的交谈类别。因此,与用于意图A的训练话语615对应的训练特征向量620形成第一交谈类别,与用于意图B的训练话语615对应的训练特征向量620形成第二交谈类别,并且与用于意图C的训练话语615对应的训练特征向量620形成第三交谈类别。在这个示例中,如上所述,给定的基于意图的交谈类别的训练特征向量620被聚合(例如,求平均)成用于交谈类别并因此用于相关联的意图的复合特征向量。具体而言,训练系统350将与用于意图A的训练话语615对应的训练特征向量620聚合成第一复合特征向量1910a,训练系统350将与用于意图B的训练话语615对应的训练特征向量620聚合成第二复合特征向量1910b,并且训练系统350将与用于意图C的训练话语615对应的训练特征向量620聚合成第三复合特征向量1910c。因此,在这个示例中,每个复合特征向量代表技能机器人116的相应意图。
图20图示了根据本文描述的一些实施例的使用基于技能的机器人的(也被称为基于机器人的)交谈类别的复合特征向量的生成。因此,图20中所示的复合特征向量处于技能机器人级别,因此是机器人向量。在图20的示例中,至少两个技能机器人116可用于主机器人114。第一技能机器人116与第一技能机器人数据358g相关联,第一技能机器人数据358g包括代表第一意图(意图A)的训练话语615和代表第二意图(意图B)的其它训练话语615。因此第一技能机器人116被配置为处置与意图A或意图B相关联的输入话语。第二技能机器人116与第二技能机器人数据358h相关联,第二技能机器人数据358h包括代表第三意图(意图C)的训练话语615。因此,第二技能机器人116被配置为处置与意图C相关的输入话语。
在图20的示例中,训练系统350将用于技能机器人116的所有训练话语615转换成相应的特征向量620。训练系统350将训练特征向量分组为基于技能机器人的交谈类别。因此,与用于意图A的训练话语615对应的训练特征向量620连同与用于意图B的训练话语615对应的训练特征向量620形成第一交谈类别,并且与用于意图C的训练话语615对应的训练特征向量620形成第二交谈类别。在这个示例中,如上所述,给定的基于技能机器人的交谈类别的训练特征向量620被聚合(例如,求平均)成用于该交谈类别并因此用于相关联的技能机器人116的复合特征向量。具体而言,训练系统350将与用于意图A的训练话语615对应的训练特征向量620和与用于意图B的训练话语615对应的训练特征向量620聚合成第一复合特征向量1910d,并且训练系统350将与用于意图C的训练话语615对应的训练特征向量620聚合成第二复合特征向量1910e。因此,在这个示例中,每个复合特征向量代表相应的技能机器人116。
在一些实施例中,训练系统350不限于仅生成一种类型的复合特征向量。例如,训练系统350可以生成意图向量、子机器人向量和技能机器人向量,或者训练系统350可以生成这些或其它类型的复合特征向量的某种其它组合。
返回到图18,在方框1825处,训练系统350可以配置主机器人114的分类器模型324以利用在方框1820处确定的复合特征向量。例如,训练系统350可以将复合特征向量的指示存储在分类器模型324可访问的存储设备中(例如,在数字助理106上)。分类器模型324可以被配置为将输入话语与此类复合特征向量进行比较,这些复合特征向量充当训练特征向量620的集合表示。
图21是根据本文描述的一些实施例的使用主机器人114的分类器模型324来确定作为用户输入110提供的输入话语303是否与和主机器人114相关联的任何可用技能机器人116不相关的方法2100的图。该方法2100或类似方法可以在配置和使用主机器人114将输入话语303指引技能机器人116的上述方法200的方框215处使用。图21的方法2100是图7的方法700的更具体的变体,并且与图7的方法700类似,图21的方法2100可以与关于图8的方法800描述的初步过滤活动一起使用。更具体而言,如下所述,主机器人114的分类器模型324可以利用复合特征向量来确定输入话语303是否属于空类316(即,与可用技能机器人116不相关)。
图21中描绘的方法2100以及本文描述的其它方法可以在由一个或多个处理单元(例如,处理器或处理器核心)执行的软件(例如,作为代码、指令或程序)、硬件或其组合中实现。软件可以存储在非暂态存储介质上,诸如存储器设备上。该方法2100旨在是说明性而非限制性的。虽然图21描绘了以特定顺序或次序发生的各种活动,但这不旨在是限制性的。在某些实施例中,例如,可以以不同的次序执行活动,或者可以并行执行方法2100的一个或多个活动。在某些实施例中,方法2100可以由与可用技能机器人116的集合相关联的主机器人114执行。
在方法2100的方框2105处,主机器人114访问已经作为用户输入110提供的输入话语303。例如,在一些实施例中,用户可以以语音输入的形式提供用户输入110,并且数字助理106可以将该用户输入110转换成文本输入话语303以供主机器人114使用。
在方框2110处,主机器人114可以从在方框2105处访问的输入话语303生成输入特征向量1710。更具体而言,在一些实施例中,主机器人114使主机器人114的分类器模型324从输入话语303生成输入特征向量1710。输入特征向量1710可以描述和表示输入话语303。用于将诸如输入话语303之类的词序列转换成特征向量的各种技术是已知的,并且可以使用此类技术中的一种或多种。例如,训练系统350可以但不一定使用one-hot编码或某种其它编码来将输入话语303编码为对应的输入特征向量1710。但是,主机器人114的实施例使用与在训练分类器模型324时用于从训练话语615生成训练特征向量620相同的技术。
在方框2115处,主机器人114将在方框2110处生成的输入特征向量1710与复合特征向量进行比较。更具体而言,在一些实施例中,主机器人114使分类器模型324将在方框2110处确定的输入特征向量1710与可以如上文关于图18所述的那样确定的复合特征向量进行比较。在将输入特征向量1710与复合特征向量进行比较时,分类器模型324可以确定输入特征向量1710与先前为分类器模型324构造的每个复合特征向量之间的相似性或距离。
输入特征向量1710与另一个特征向量(具体而言,复合特征向量)之间的相似性或距离可以以各种方式计算。例如,为了确定相似性,分类器模型324可以通过从一个中减去另一个并取绝对值来计算复合特征向量与输入特征向量1710之间的算术差的绝对值(即,欧几里得距离)。又例如,分类器模型324可以将输入特征向量1710与复合特征向量相乘;例如,如果对输入特征向量1710和复合特征向量使用one-hot编码,那么每个向量条目(即,每个维度)将具有1或0的值,其中1的值可以表示某个特征的存在。如果输入特征向量1710和复合特征向量具有大部分相同的特征,那么向量-向量相乘的结果将是具有与被相乘的两个向量中的任一个近似相同数量的1值的向量。否则,所得到的向量将大部分为0。再举一个示例,可以使用余弦相似性;例如,输入特征向量1710与复合特征向量之间的余弦相似性可以被计算为两个向量的点积除以两个向量的欧几里得范数的乘积。用于测量相似性的各种其它技术是可能的并且在本公开的范围内。
在判定方框2120处,主机器人114的分类器模型324确定输入特征向量1710是否与任何复合特征向量足够相似。分类器模型324可以使用预定阈值,使得如果相似性满足阈值则认为相似性足够。如果在两个向量相似时所使用的相似性度量提供小的值,如在距离度量的情况下,那么阈值可以是上限阈值,使得例如,如果相似性不大于阈值,那么输入特征向量1710足够接近复合特征向量。但是,如果在两个向量相似时所使用的相似性度量提供大的值,那么阈值可以是下限阈值,使得例如,如果相似性不小于阈值,那么输入特征向量1710足够接近复合特征向量。
在一些实施例中,可以使用复合特征向量的层次来确定足够相似性的确定。例如,输入特征向量1710可以与机器人向量进行比较,然后,如果需要,与子机器人向量进行比较,然后,如果需要,与意图向量进行比较,直到找到足够的相似性或直到确定输入特征向量1710与任何这样的复合特征向量都不足够相似。因为机器人向量比意图向量少,意图向量比子机器人向量少,所以确定与机器人向量的相似性所需的计算资源可以少于确定与子机器人向量的相似性所需的计算资源,确定与子机器人向量的相似性所需的计算资源可以少于确定与意图向量的相似性所需的计算资源。因此,通过将输入特征向量1710与不同级别的复合特征向量进行比较,从可用的最高级别(例如,技能机器人级别)开始,分类器模型324可以确定哪个技能机器人116(如果有的话)最适合处置输入话语303,同时在诉诸计算密集度较高的处理之前使用计算密集度较低的处理。
在一些实施例中,如果输入特征向量1710距每个机器人向量足够远(例如,超过被认为过大的预定距离),那么可以认为输入话语303与任何可用技能机器人116不相关。但是,在附加或替代实施例中,输入话语303仅基于与机器人向量的不相似性不被视为不相关。例如,如果输入特征向量1710与所有机器人向量都不相似(即,不足够相似),这不一定是输入话语303属于空类316的决定性指示。可以存在输入特征向量1710远离(即,不相似于)任何机器人向量但仍接近于意图向量的情况,这是由于对应的意图与技能机器人116被配置用于的其它意图不同。在一些实施例中,将输入特征向量1710与机器人向量和意图向量进行比较通常足以识别不相关的输入话语303。因此,如果输入特征向量1710与所有机器人向量不相似并且与所有意图向量不相似,那么可以认为输入话语303与可用技能机器人116不相关。在一些实施例中,输入特征向量1710可以附加地或可替代地与子机器人向量或其它复合特征向量进行比较,作为确定输入话语303是否是空类的成员的一部分。各种实现方式是可能的并且在本公开的范围内。
如果基于所执行的任何比较,分类器模型324在判定方框2120处确定输入特征向量1710与任何复合特征向量不足够相似,那么方法2100前进到方框2125。在方框2125处,主机器人114确定输入话语与任何可用的技能机器人116不相关,因此,主机器人114可以指示输入话语303不能被处理。因此,例如,数字助理可以要求用户澄清用户输入110。
但是,如果分类器模型324在判定方框2120处确定输入特征向量1710与一个或多个复合特征向量足够相似,那么方法2100向前跳到方框2130。在方框2130处,基于与复合特征向量的比较,主机器人114确定(即,选择)技能机器人116来处置输入话语303。例如,主机器人114可以选择与被认为与输入特征向量1710最相似的复合特征向量相关的技能机器人116。例如,如果最相似的复合特征向量是意图向量,那么主机器人114可以选择被配置为处置与该意图向量对应的意图的技能机器人116;并且如果最相似的复合特征向量是子机器人向量或机器人向量,那么主机器人114可以选择子机器人向量或机器人向量所对应的技能机器人116。对于另一个示例,主机器人114可以使用k-最近邻技术来选择技能机器人116,如下面将进一步描述的。
在方框2135处,主机器人114可以将输入话语路由到在方框2130处选择的技能机器人116。在一些实施例中,如果主机器人114识别出输入话语的特定意图(例如,如果输入特征向量1710被认为足够接近单个意图向量),那么主机器人114可以向技能机器人指示那个意图116,从而使得技能机器人116能够跳过推断意图的过程。技能机器人116然后可以处理输入话语303以响应用户输入110。
图22是根据本文描述的一些实施例的选择技能机器人116来处置输入话语的方法2200的图。在确定输入话语303与至少一个可用技能机器人116相关之后,可以在上述方法2100的方框2130处使用该方法2200或类似方法。该方法2200提供k-最近邻方法来选择技能机器人116,但是可以附加地或可替代地使用其它技术来替代该方法。具体而言,该方法2200利用输入特征向量1710的k-最近的训练特征向量620来确定选择哪个技能机器人116。
图22中描绘的方法2200以及本文描述的其它方法可以在由一个或多个处理单元(例如,处理器或处理器核心)执行的软件(例如,作为代码、指令或程序)、硬件或其组合中实现。软件可以存储在非暂态存储介质上,诸如存储器设备上。该方法2200旨在是说明性而非限制性的。虽然图22描绘了以特定顺序或次序发生的各种活动,但这不旨在是限制性的。在某些实施例中,例如,可以以不同的次序执行活动,或者可以并行执行方法2200的一个或多个活动。在某些实施例中,方法2200可以由主机器人114执行。
如图22中所示,在方框2205处,主机器人114确定k的值,其中k是将被考虑的邻居的数量。在一些实施例中,k的值可以是训练特征向量620的总数(即,训练话语615的总数)的因子。
在方框2210处,使用在方框2205处确定的k的值,主机器人114确定与输入特征向量1710最接近(即,最相似)的k个训练特征向量620的集合。当确定输入特征向量1710是否与任何复合特征向量足够相似时,主机器人114可以使用与上面使用的相似性度量相同或不同的相似性度量。例如,使用的相似性度量可以是欧几里得距离、向量乘法或余弦相似性。
在方框2215处,主机器人114选择具有在方框2210处确定的集合中的最多训练特征向量620的技能机器人116。在一些实施例中,技能机器人116的训练特征向量620不必构成该集合的大部分,而只是在该集合中没有其它技能机器人116具有更多数量的训练特征向量620。如上所述,在选择这个技能机器人116之后,主机器人114可以将输入话语303路由到所选择的技能机器人116以进行处理。
作为考虑与输入特征向量1710最近的训练特征向量620的附加或替代,主机器人114的一些实施例还可以考虑最近的复合特征向量,诸如最近的意图向量。图23是根据本文描述的一些实施例的选择技能机器人116来处置输入话语的另一个示例方法2300的图。在确定输入话语303与至少一个可用技能机器人116相关之后,可以在上述方法2100的方框2130处使用该方法2300或类似方法。该方法2300提供k-最近邻方法来选择技能机器人116,但是可以附加地或可替代地使用其它技术来替代这种方法。具体而言,与图22的方法2200相比,该方法2300利用输入特征向量1710的k-最近意图向量来确定选择哪个技能机器人116。
图23中描绘的方法2300以及本文描述的其它方法可以在由一个或多个处理单元(例如,处理器或处理器核心)执行的软件(例如,作为代码、指令或程序)、硬件或其组合中实现。软件可以存储在非暂态存储介质上,诸如存储器设备上。该方法2300旨在是说明性而非限制性的。虽然图23描绘了以特定顺序或次序发生的各种活动,但这不旨在是限制性的。在某些实施例中,例如,可以以不同的次序执行活动,或者可以并行执行方法2300的一个或多个活动。在某些实施例中,方法2300可以由主机器人114执行。
如图23中所示,在方框2305处,主机器人114确定k的值,其中k是将被考虑的邻居的数量。在一些实施例中,k的值可以是意图向量的总数的因子。意图向量的总数可以等于训练话语615中表示的意图的总数并且可以等于可用技能机器人116被配置为处置的意图的总数,并且k的值可以被选择为那个数量的因子。
在方框2310处,使用在方框2305处确定的k值,主机器人114确定与输入特征向量1710最接近(即,最相似)的k个意图向量的集合。当确定输入特征向量1710是否与上述方法2100中的任何复合特征向量足够相似时,主机器人114可以使用与上面使用的相似性度量相同或不同的相似性度量。例如,使用的相似性度量可以是欧几里得距离、向量乘法或余弦相似性。
在方框2315处,主机器人114选择具有在方框2310处确定的集合中的最多意图向量的技能机器人116。在一些实施例中,技能机器人116的意图向量不必构成该集合的大部分,而只是在该集合中没有其它技能机器人116具有更大数量的意图向量。如上所述,在选择这个技能机器人116之后,主机器人114可以将输入话语303路由到所选择的技能机器人116以进行处理。
示例实现方式
图24描绘了用于实现实施例的分布式系统2400的简化图。在所示实施例中,分布式系统2400包括一个或多个客户端计算设备2402、2404、2406和2408,它们经由一个或多个通信网络2410耦合到服务器2412。客户端计算设备2402、2404、2406和2408可以被配置为执行一个或多个应用。
在各种实施例中,服务器2412可以适于运行一个或多个服务或软件应用,这些服务或软件应用支持本公开中描述的处理。
在某些实施例中,服务器2412还可以提供可以包括非虚拟和虚拟环境的其它服务或软件应用。在一些实施例中,这些服务可以作为基于web的或云的服务(诸如在软件即服务(SaaS)模型下)提供给客户端计算设备2402、2404、2406和/或2408的用户。操作客户端计算设备2402、2404、2406和/或2408的用户进而可以利用一个或多个客户端应用与服务器2412交互以利用由这些组件提供的服务。
在图24中描绘的配置中,服务器2412可以包括一个或多个组件2418、2420和2422,它们实现由服务器2412执行的功能。这些组件可以包括可以由一个或多个处理器执行的软件组件、硬件组件或其组合。应当认识到的是,各种不同的系统配置是可能的,它们可以不同于分布式系统2400。因此,图24中所示的实施例是用于实现实施例系统的分布式系统的一个示例并且不旨在进行限制。
根据本公开的教导,用户可以使用客户端计算设备2402、2404、2406和/或2408来与服务器2412交互。客户端设备可以提供使得客户端设备的用户能够与客户端设备交互的接口。客户端设备也可以经由这个接口向用户输出信息。虽然图24仅描绘了四个客户端计算设备,但可以支持任意数量的客户端计算设备。
客户端设备可以包括各种类型的计算系统,诸如便携式手持式设备、通用计算机(诸如个人计算机和膝上型计算机)、工作站计算机、可穿戴设备、游戏系统、瘦客户端、各种消息传送设备、传感器和其它感测设备等。这些计算设备可以运行各种类型和版本的软件应用和操作系统(例如,MicrosoftApple或类UNIX操作系统、Linux或类Linux操作系统,诸如Google ChromeTM TMOS),包括各种移动操作系统(例如,Microsoft WindowsWindowsAndroidTM、Palm)。便携式手持式设备可以包括蜂窝电话、智能电话(例如,)、平板电脑(例如,)、个人数字助理(PDA)等。可穿戴设备可以包括Google头戴式显示器和其它设备。游戏系统可以包括各种手持式游戏设备、具有互联网功能的游戏设备(例如,具有或不具有手势输入设备的Microsoft游戏机、Sony系统、由提供的各种游戏系统以及其它)等。客户端设备可以能够执行各种不同的应用,诸如各种与互联网相关的应用、通信应用(例如,电子邮件应用、短消息服务(SMS)应用),并且可以使用各种通信协议。
(一个或多个)网络2410可以是本领域技术人员熟悉的任何类型的网络,其可以使用多种可用协议中的任何一种来支持数据通信,包括但不限于TCP/IP(传输控制协议/互联网协议)、SNA(系统网络体系架构)、IPX(互联网分组交换)、等。仅仅作为示例,(一个或多个)网络2410可以是局域网(LAN)、基于以太网的网络、令牌环、广域网(WAN)、互联网、虚拟网络、虚拟专用网(VPN)、内联网、外联网、公共电话交换网(PSTN)、红外网络、无线网络(例如,在任何电气和电子协会(IEEE)802.11协议套件、和/或任何其它无线协议下操作的网络)和/或这些和/或其它网络的任意组合。
服务器2412可以由一个或多个通用计算机、专用服务器计算机(作为示例,包括PC(个人计算机)服务器、服务器、中档服务器、大型计算机、机架安装的服务器等)、服务器农场、服务器集群或任何其它适当的布置和/或组合组成。服务器2412可以包括运行虚拟操作系统的一个或多个虚拟机,或者涉及虚拟化的其它计算体系架构,诸如可以被虚拟化以维护服务器的虚拟存储设备的逻辑存储设备的一个或多个灵活的池。在各种实施例中,服务器2412可以适于运行提供前述公开中描述的功能的一个或多个服务或软件应用。
服务器2412中的计算系统可以运行一个或多个操作系统,包括以上讨论的任何操作系统以及任何商用的服务器操作系统。服务器2412还可以运行各种附加服务器应用和/或中间层应用中的任何一种,包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(通用网关接口)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于可从 (国际商业机器)等商购获得的数据库服务器。
在一些实现方式中,服务器2412可以包括一个或多个应用以分析和整合从客户端计算设备2402、2404、2406和2408的用户接收到的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于从一个或多个第三方信息源和连续数据流接收到的馈送、更新或实时更新,其可以包括与传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视等相关的实时事件。服务器2412还可以包括经由客户端计算设备2402、2404、2406和2408的一个或多个显示设备显示数据馈送和/或实时事件的一个或多个应用。
分布式系统2400还可以包括一个或多个数据储存库2414、2416。在某些实施例中,这些数据储存库可以用于存储数据和其它信息。例如,数据储存库2414、2416中的一个或多个可以被用于存储由本文描述的处理生成的数据或信息和/或用于本文描述的处理的数据或信息。数据储存库2414、2416可以驻留在各种位置。例如,由服务器2412使用的数据储存库可以在服务器2412本地或者可以远离服务器2412并且经由基于网络的或专用连接与服务器2412通信。数据储存库2414、2416可以是不同类型的。在某些实施例中,由服务器2412使用的数据储存库可以是数据库,例如关系数据库,诸如由Oracle和其它供应商提供的数据库。这些数据库中的一个或多个可以适于响应于SQL格式的命令来实现数据库中的数据的存储、更新和检索。
在某些实施例中,数据储存库2414、2416中的一个或多个也可以由应用用来存储应用数据。由应用使用的数据储存库可以是不同类型的,诸如例如键-值存储储存库、对象存储储存库或由文件系统支持的通用存储储存库。
在某些实施例中,本公开中描述的功能可以经由云环境作为服务提供。图25是根据某些实施例的基于云的系统环境的简化框图,其中本文描述的功能可以作为云服务提供。在图25中所示的实施例中,云基础设施系统2502可以提供一个或多个云服务,用户可以使用一个或多个客户端计算设备2504、2506和2508请求云服务。云基础设施系统2502可以包括一个或多个计算机和/或服务器,这些计算机和/或服务器可以包括以上针对服务器2412所描述的那些。云基础设施系统2502中的计算机可以被组织为通用计算机、专用服务器计算机、服务器农场、服务器集群或任何其它适当的布置和/或组合。
(一个或多个)网络2510可以促进客户端2504、2506和2508与云基础设施系统2502之间的通信和数据交换。(一个或多个)网络2510可以包括一个或多个网络。网络可以是相同的或不同的类型。(一个或多个)网络2510可以支持一种或多种通信协议,包括有线和/或无线协议,以促进通信。
图25中描绘的实施例仅仅是云基础设施系统的一个示例,并且不旨在进行限制。应当认识到的是,在一些其它实施例中,云基础设施系统2502可以具有比图25所示的组件更多或更少的组件、可以组合两个或更多个组件,或者可以具有不同的组件配置或布置。例如,虽然图25描绘了三个客户端计算设备,但是在替代实施例中可以支持任何数量的客户端计算设备。
术语“云服务”通常用于指由服务提供商的系统(例如,云基础设施系统2502)根据需要并且经由诸如互联网之类的通信网络使用户可使用的服务。典型地,在公共云环境中,组成云服务提供商系统的服务器和系统与客户自己的内部服务器和系统不同。云服务提供商的系统由云服务提供商管理。客户因此可以利用由云服务提供商提供的云服务,而不必为服务购买单独的许可证、支持或硬件和软件资源。例如,云服务提供商的系统可以托管应用,并且用户可以经由互联网按需订购和使用应用,而用户不必购买用于执行应用的基础设施资源。云服务旨在提供对应用、资源和服务的轻松、可扩展的访问。几个提供商提供云服务。例如,由加利福尼亚州Redwood Shores的公司提供了几种云服务,诸如中间件服务、数据库服务、Java云服务等。
在某些实施例中,云基础设施系统2502可以使用诸如软件即服务(SaaS)模型、平台即服务(PaaS)模型、基础设施即服务(IaaS)模型以及包括混合服务模型的其它模型之类的不同模型提供一个或多个云服务。云基础设施系统2502可以包括一套应用、中间件、数据库以及使得能够供给各种云服务的其它资源。
SaaS模型使得应用或软件能够作为服务通过如互联网的通信网络交付给客户,而客户不必为底层应用购买硬件或软件。例如,SaaS模型可以用于为客户提供对由云基础设施系统2502托管的按需应用的访问。由公司提供的SaaS服务的示例包括但不限于用于人力资源/资本管理、客户关系管理(CRM)、企业资源计划(ERP)、供应链管理(SCM)、企业绩效管理(EPM)、分析服务、社交应用及其它的各种服务。
PaaS模型通常用于提供平台和环境资源作为服务,其使得客户能够开发、运行和管理应用和服务,而客户不必采购、构建或维护此类资源。由公司提供的PaaS服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)、数据管理云服务、各种应用开发解决方案服务,以及其它服务。
云服务通常基于按需自助服务、基于订阅、弹性可缩放、可靠、高度可用和安全的方式提供。例如,客户可以经由订阅订单订购由云基础设施系统2502提供的一个或多个服务。然后,云基础设施系统2502执行处理,以提供客户的订阅订单中所请求的服务。例如,在某些实施例中,本文描述的与聊天机器人相关的功能可以作为由用户/订户订阅的云服务来提供。云基础设施系统2502可以被配置为提供一种或甚至多种云服务。
云基础设施系统2502可以经由不同的部署模型来提供云服务。在公共云模型中,云基础设施系统2502可以由第三方云服务提供商拥有,并且云服务被提供给任何普通公众客户,其中客户可以是个人或企业。在某些其它实施例中,在私有云模型下,可以在组织内(例如,在企业组织内)运营云基础设施系统2502,并向组织内的客户提供服务。例如,客户可以是企业的各个部门,诸如人力资源部门、工资部门等,甚至是企业内的个人。在某些其它实施例中,在社区云模型下,云基础设施系统2502和所提供的服务可以由相关社区中的几个组织共享。也可以使用各种其它模型,诸如上面提到的模型的混合。
客户端计算设备2504、2506和2508可以是不同类型的(诸如图24中描绘的设备2402、2404、2406和2408)并且可以能够操作一个或多个客户端应用。用户可以使用客户端设备与云基础设施系统2502交互,诸如请求由云基础设施系统2502提供的服务。例如,用户可以使用客户端设备来请求本公开中描述的聊天机器人相关的服务。
在一些实施例中,由云基础设施系统2502执行的处理可以涉及大数据分析。这种分析可能涉及使用、分析和操纵大型数据集来检测和可视化数据内的各种趋势、行为、关系等。这种分析可以由一个或多个处理器执行、可能并行处理数据、使用数据执行仿真等。用于这种分析的数据可以包括结构化数据(例如,存储在数据库中或根据结构化模型结构化的数据)和/或非结构化数据(例如,数据Blob(二进制大对象))。
如图25中的实施例所描绘的,云基础设施系统2502可以包括基础设施资源2530,其被用于促进云基础设施系统2502提供的各种云服务的供应。基础设施资源2530可以包括例如处理资源、存储或存储器资源、联网资源等。
在某些实施例中,为了促进这些资源的高效供给以支持由云基础设施系统2502为不同客户提供的各种云服务,可以将资源捆绑成资源或资源模块的集合(也称为“群聚(pod)”)。每个资源模块或群聚可以包括一种或多种类型的资源的预先集成和优化的组合。在某些实施例中,可以为不同类型的云服务预先供给不同的群聚。例如,可以为数据库服务供给第一组群聚,可以为Java服务供给第二组群聚,其中第二组群聚可以包括与第一组群聚中的群聚不同的资源组合。对于一些服务,可以在服务之间共享为供给服务而分配的资源。
云基础设施系统2502本身可以内部使用服务2532,服务2532由云基础设施系统2502的不同组件共享并且促进云基础设施系统2502的服务供给。这些内部共享的服务可以包括但不限于安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、用于启用云支持的服务、电子邮件服务、通知服务、文件传输服务等。
云基础设施系统2502可以包括多个子系统。这些子系统可以用软件或硬件或其组合来实现。如图25所示,子系统可以包括用户接口子系统2512,该用户接口子系统2512使得云基础设施系统2502的用户或客户能够与云基础设施系统2502交互。用户接口子系统2512可以包括各种不同的界面,诸如web界面2514、在线商店界面2516(其中由云基础设施系统2502提供的云服务被广告并且可由消费者购买)和其它界面2518。例如,客户可以使用客户端设备,使用接口2514、2516和2518中的一个或多个来请求(服务请求2534)由云基础设施系统2502提供的一个或多个服务。例如,客户可以访问在线商店、浏览由云基础设施系统2502提供的云服务,并且为客户希望订阅的由云基础设施系统2502提供的一个或多个服务下订单。服务请求可以包括标识客户和客户期望订阅的一个或多个服务的信息。
在某些实施例中,诸如图25中描绘的实施例,云基础设施系统2502可以包括被配置为处理新订单的订单管理子系统(OMS)2520。作为该处理的一部分,OMS 2520可以被配置为:为客户创建账户(如果尚未创建);接收来自客户的账单和/或会计信息,该账单和/或账单信息将用于针对向客户提供所请求的服务向客户计费;验证客户信息;在验证后,为客户预订订单;已经编排各种工作流程以准备用于供给的订单。
一旦被正确地验证,OMS 2520就可以调用订单供给子系统(OPS)2524,其被配置为针对订单供给资源,包括处理资源、存储器资源和联网资源。供给可以包括为订单分配资源以及配置资源以促进由客户订单所请求的服务。为订单供给资源的方式和供给资源的类型可以取决于客户已订购的云服务的类型。例如,根据一个工作流程,OPS 2524可以被配置为确定所请求的特定云服务,并且识别可能已经针对该特定云服务而被预先配置的多个群聚。为订单分配的群聚的数量可以取决于所请求的服务的大小/数量/级别/范围。例如,可以基于服务所支持的用户的数量、正在请求的服务的持续时间等来确定要分配的群聚的数量。然后,可以针对特定的请求客户定制所分配的群聚,以提供所请求的服务。
云基础设施系统2502可以向发出请求的客户发送响应或通知2544,以指示请求的服务现在何时准备好使用。在一些情况下,可以将信息(例如,链接)发送给客户,这使得客户能够开始使用和利用所请求的服务的好处。
云基础设施系统2502可以向多个客户提供服务。对于每个客户,云基础设施系统2502负责管理与从客户接收到的一个或多个订阅订单相关的信息、维护与订单相关的客户数据,以及向客户提供所请求的服务。云基础设施系统2502还可以收集关于客户使用已订阅的服务的使用统计信息。例如,可以针对使用的存储量、传输的数据量、用户的数量以及系统正常运行时间和系统停机时间量等收集统计信息。该使用信息可以用于向客户计费。计费可以例如按月周期进行。
云基础设施系统2502可以并行地向多个客户提供服务。云基础设施系统2502可以存储这些客户的信息,包括可能的专有信息。在某些实施例中,云基础设施系统2502包括身份管理子系统(IMS)2528,其被配置为管理客户信息并提供所管理的信息的分离,使得与一个客户相关的信息不可被另一个客户访问。IMS 2528可以被配置为提供各种与安全相关的服务,诸如身份服务,诸如信息访问管理、认证和授权服务、用于管理客户身份和角色及相关能力的服务,等等。
图26图示了可以被用于实现某些实施例的示例性计算机系统2600。例如,在一些实施例中,计算机系统2600可以被用于实现聊天机器人系统的任何系统和子系统,以及上述各种服务器和计算机系统。如图26中所示,计算机系统2600包括各种子系统,包括经由总线子系统2602与多个其它子系统通信的处理子系统2604。这些其它子系统可以包括处理加速单元2606、I/O子系统2608、存储子系统2618和通信子系统2624。存储子系统2618可以包括非暂态计算机可读存储介质,其包括存储介质2622和系统存储器2610。
总线子系统2602提供用于使计算机系统2600的各种组件和子系统按照期望彼此通信的机制。虽然总线子系统2602被示意性地示为单条总线,但是总线子系统的替代实施例可以利用多条总线。总线子系统2602可以是几种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、使用任何各种总线体系架构的局部总线等。例如,此类体系架构可以包括工业标准体系架构(ISA)总线、微通道体系架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围组件互连(PCI)总线,其可以实现为根据IEEE P1386.1标准制造的夹层(Mezzanine)总线,等等。
处理子系统2604控制计算机系统2600的操作,并且可以包括一个或多个处理器、专用集成电路(ASIC)或现场可编程门阵列(FPGA)。处理器可以包括单核或多核处理器。可以将计算机系统2600的处理资源组织成一个或多个处理单元2632、2634等。处理单元可以包括一个或多个处理器、来自相同或不同处理器的一个或多个核心、核心和处理器的组合、或核心和处理器的其它组合。在一些实施例中,处理子系统2604可以包括一个或多个专用协处理器,诸如图形处理器、数字信号处理器(DSP)等。在一些实施例中,处理子系统2604的一些或全部可以使用定制电路来实现,诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)。
在一些实施例中,处理子系统2604中的处理单元可以执行存储在系统存储器2610中或计算机可读存储介质2622上的指令。在各个实施例中,处理单元可以执行各种程序或代码指令,并且可以维护多个并发执行的程序或进程。在任何给定的时间,要执行的程序代码中的一些或全部可以驻留在系统存储器2610中和/或计算机可读存储介质2622上,包括可能在一个或多个存储设备上。通过适当的编程,处理子系统2604可以提供上述各种功能。在计算机系统2600正在执行一个或多个虚拟机的情况下,可以将一个或多个处理单元分配给每个虚拟机。
在某些实施例中,可以可选地提供处理加速单元2606,以用于执行定制的处理或用于卸载由处理子系统2604执行的一些处理,从而加速由计算机系统2600执行的整体处理。
I/O子系统2608可以包括用于向计算机系统2600输入信息和/或用于从或经由计算机系统2600输出信息的设备和机制。一般而言,术语“输入设备”的使用旨在包括用于向计算机系统2600输入信息的所有可能类型的设备和机制。用户接口输入设备可以包括,例如,键盘、诸如鼠标或轨迹球之类的指向设备、并入到显示器中的触摸板或触摸屏、滚轮、点击轮、拨盘、按钮、开关、小键盘、带有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备还可以包括使用户能够控制输入设备并与之交互的诸如Microsoft运动传感器的运动感测和/或姿势识别设备、Microsoft360游戏控制器、提供用于接收使用姿势和口语命令的输入的界面的设备。用户接口输入设备还可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍摄图片和/或进行菜单选择时的“眨眼”)并将眼睛姿势转换为到输入设备(例如,Google)的输入的Google眨眼检测器。此外,用户接口输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,导航器)交互的语音识别感测设备。
用户接口输入设备的其它示例包括但不限于,三维(3D)鼠标、操纵杆或指示杆、游戏板和图形平板、以及音频/视频设备,诸如扬声器、数字相机、数字摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3D扫描仪、3D打印机、激光测距仪、以及眼睛注视跟踪设备。此外,用户接口输入设备可以包括,例如,医疗成像输入设备,诸如计算机断层摄影、磁共振成像、位置发射断层摄影、以及医疗超声检查设备。用户接口输入设备也可以包括,例如,音频输入设备,诸如MIDI键盘、数字乐器等。
一般而言,术语“输出设备”的使用旨在包括所有可能类型的设备和用于从计算机系统2600向用户或其它计算机输出信息的机制。用户接口输出设备可以包括显示子系统、指示器灯或诸如音频输出设备的非可视显示器等。显示子系统可以是阴极射线管(CRT)、诸如利用液晶显示器(LCD)或等离子体显示器的平板设备、投影设备、触摸屏等。例如,用户接口输出设备可以包括但不限于,可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备和调制解调器。
存储子系统2618提供用于存储由计算机系统2600使用的信息和数据的储存库或数据存储库。存储子系统2618提供了用于存储提供一些实施例的功能的基本编程和数据构造的有形非暂态计算机可读存储介质。存储子系统2618可以存储软件(例如,程序、代码模块、指令),该软件在由处理子系统2604执行时提供上述功能。软件可以由处理子系统2604的一个或多个处理单元执行。存储子系统2618还可以提供根据本公开的教导使用的用于存储数据的储存库。
存储子系统2618可以包括一个或多个非暂态存储器设备,包括易失性和非易失性存储器设备。如图26所示,存储子系统2618包括系统存储器2610和计算机可读存储介质2622。系统存储器2610可以包括多个存储器,包括用于在程序执行期间存储指令和数据的易失性主随机存取存储器(RAM)以及其中存储有固定指令的非易失性只读存储器(ROM)或闪存。在一些实现中,基本输入/输出系统(BIOS)可以典型地存储在ROM中,该基本输入/输出系统(BIOS)包含有助于例如在启动期间在计算机系统2600内的元件之间传递信息的基本例程。RAM通常包含当前由处理子系统2604操作和执行的数据和/或程序模块。在一些实现中,系统存储器2610可以包括多种不同类型的存储器,诸如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
作为示例而非限制,如图26所示,系统存储器2610可以加载正在被执行的可以包括各种应用(诸如Web浏览器、中间层应用、关系型数据库管理系统(RDBMS)等)的应用程序2612、程序数据2614和操作系统2616。作为示例,操作系统2616可以包括各种版本的MicrosoftApple和/或Linux操作系统、各种商用或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、GoogleOS等)和/或移动操作系统,诸如iOS、Phone、OS、OS、OS操作系统,以及其它操作系统。
计算机可读存储介质2622可以存储提供一些实施例的功能的编程和数据构造。计算机可读介质2622可以为计算机系统2600提供计算机可读指令、数据结构、程序模块和其它数据的存储。当由处理子系统2604执行时,提供上述功能的软件(程序、代码模块、指令)可以存储在存储子系统2618中。作为示例,计算机可读存储介质2622可以包括非易失性存储器,诸如硬盘驱动器、磁盘驱动器、诸如CD ROM、DVD、Blu-(蓝光)盘或其它光学介质的光盘驱动器。计算机可读存储介质2622可以包括但不限于,驱动器、闪存存储器卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字视频带等。计算机可读存储介质2622也可以包括基于非易失性存储器的固态驱动器(SSD)(诸如基于闪存存储器的SSD、企业闪存驱动器、固态ROM等)、基于易失性存储器的SSD(诸如基于固态RAM、动态RAM、静态RAM、DRAM的SSD、磁阻RAM(MRAM)SSD),以及使用基于DRAM和基于闪存存储器的SSD的组合的混合SSD。
在某些实施例中,存储子系统2618还可以包括计算机可读存储介质读取器2620,其还可以连接到计算机可读存储介质2622。读取器2620可以接收并且被配置为从诸如盘、闪存驱动器等的存储器设备读取数据。
在某些实施例中,计算机系统2600可以支持虚拟化技术,包括但不限于处理和存储器资源的虚拟化。例如,计算机系统2600可以提供用于执行一个或多个虚拟机的支持。在某些实施例中,计算机系统2600可以执行诸如促进虚拟机的配置和管理的管理程序之类的程序。可以为每个虚拟机分配存储器、计算(例如,处理器、核心)、I/O和联网资源。每个虚拟机通常独立于其它虚拟机运行。虚拟机通常运行其自己的操作系统,该操作系统可以与由计算机系统2600执行的其它虚拟机执行的操作系统相同或不同。因此,计算机系统2600可以潜在地同时运行多个操作系统。
通信子系统2624提供到其它计算机系统和网络的接口。通信子系统2624用作用于从计算机系统2600接收数据以及向其它系统传输数据的接口。例如,通信子系统2624可以使得计算机系统2600能够经由互联网建立到一个或多个客户端设备的通信信道,以用于从客户端设备接收信息以及向客户端设备发送信息。
通信子系统2624可以支持有线和/或无线通信协议两者。例如,在某些实施例中,通信子系统2624可以包括用于(例如,使用蜂窝电话技术、高级数据网络技术(诸如3G、4G或EDGE(全球演进的增强数据速率)、WiFi(IEEE 802.XX族标准)、或其它移动通信技术、或其任意组合)接入无线语音和/或数据网络的射频(RF)收发器组件、全球定位系统(GPS)接收器组件和/或其它组件。在一些实施例中,作为无线接口的附加或替代,通信子系统2624可以提供有线网络连接(例如,以太网)。
通信子系统2624可以以各种形式接收和传输数据。例如,在一些实施例中,除了其它形式之外,通信子系统2624还可以以结构化和/或非结构化的数据馈送2626、事件流2628、事件更新2630等形式接收输入通信。例如,通信子系统2624可以被配置为实时地从社交媒体网络的用户和/或诸如馈送、更新、诸如丰富站点摘要(RSS)馈送的web馈送的其它通信服务接收(或发送)数据馈送2626,和/或来自一个或多个第三方信息源的实时更新。
在某些实施例中,通信子系统2624可以被配置为以连续数据流的形式接收本质上可能是连续的或无界的没有明确结束的数据,其中连续数据流可以包括实时事件的事件流2628和/或事件更新2630。生成连续数据的应用的示例可以包括例如传感器数据应用、金融报价机、网络性能测量工具(例如网络监视和流量管理应用)、点击流分析工具、汽车流量监视等。
通信子系统2624也可以被配置为将数据从计算机系统2600传送到其它计算机系统或网络。数据可以以各种不同的形式传送给一个或多个数据库,诸如结构化和/或非结构化数据馈送2626、事件流2628、事件更新2630等,该一个或多个数据库可以与耦合到计算机系统2600的一个或多个流传输数据源进行通信。
计算机系统2600可以是各种类型中的一种,包括手持便携式设备(例如,蜂窝电话、计算平板、PDA)、可穿戴设备(例如,Google头戴式显示器)、个人计算机、工作站、大型机、信息站、服务器机架或任何其它数据处理系统。由于计算机和网络不断变化的性质,对图26中绘出的计算机系统2600的描述旨在仅仅作为具体示例。具有比图26中所绘出的系统更多或更少组件的许多其它配置是可能的。基于本文提供的公开和教导,本领域普通技术人员将认识到实现各种实施例的其它方式和/或方法。
虽然已经描述了特定的实施例,但是各种修改、变更、替代构造以及等同物都是可能的。实施例不限于在某些特定数据处理环境内的操作,而是可以在多个数据处理环境内自由操作。此外,虽然已经使用一系列特定的事务和步骤描述了某些实施例,但是对于本领域技术人员来说显而易见的是,这并不旨在进行限制。虽然一些流程图将操作描述为顺序处理,但是许多操作可以并行或同时执行。此外,操作的次序可以被重新布置。处理可能具有图中未包括的其它步骤。上述实施例的各种特征和方面可以被单独使用或联合使用。
另外,虽然已经使用硬件和软件的特定组合描述了某些实施例,但是应该认识到的是,硬件和软件的其它组合也是可能的。某些实施例可以仅用硬件或仅用软件或其组合来实现。本文描述的各种处理可以以任何组合在相同的处理器或不同的处理器上实现。
在将设备、系统、组件或模块描述为被配置为执行某些操作或功能的情况下,这样的配置可以通过以下方式来实现,例如,通过设计电子电路来执行操作、通过对可编程电子电路(诸如微处理器)进行编程来执行操作,诸如通过执行计算机指令或代码,或处理器或核心被编程为执行存储在非暂态存储介质上的代码或指令,或其任意组合来执行操作。进程可以使用各种技术进行通信,包括但不限于用于进程间通信的常规技术,并且不同对的进程可以使用不同的技术,或者同一对进程可以在不同时间使用不同的技术。
在本公开中给出了具体细节以提供对实施例的透彻理解。但是,可以在没有这些具体细节的情况下实践实施例。例如,已经示出了众所周知的电路、处理、算法、结构和技术,而没有不必要的细节,以避免使实施例模糊。本描述仅提供示例性实施例,并且不旨在限制其它实施例的范围、适用性或配置。更确切地说,实施例的先前描述将为本领域技术人员提供用于实现各种实施例的使能描述。可以对元件的功能和布置进行各种改变。
因此,说明书和附图应被认为是说明性的而不是限制性的。但是,将显而易见的是,在不脱离权利要求书所阐述的更广泛的精神和范围的情况下,可以对其进行添加、减少、删除以及其它修改和改变。因此,虽然已经描述了具体的实施例,但是这些实施例并不旨在进行限制。各种修改和等价物,以及所公开特征的任何相关组合,都在所附权利要求的范围内。
Claims (35)
1.一种系统,包括:
训练系统,被配置为训练分类器模型,其中训练分类器模型包括:
访问与技能机器人相关联的训练话语,训练话语包括与技能机器人中的每个技能机器人相关联的相应训练话语,其中技能机器人中的每个技能机器人被配置为提供与用户的对话;
从训练话语生成训练特征向量,训练特征向量包括与技能机器人中的每个技能机器人相关联的相应训练特征向量;
生成训练特征向量的多个集合表示,其中所述多个集合表示中的每个集合表示与训练特征向量的子集对应;以及
配置分类器模型以将输入特征向量与训练特征向量的所述多个集合表示进行比较;以及
主机器人,被配置为执行包括以下的操作:
访问作为用户输入的输入话语;
从输入话语生成输入特征向量;
使用分类器模型将输入特征向量与训练特征向量的所述多个集合表示进行比较;
基于输入特征向量落入所述多个集合表示之外,输出用户输入不能被技能机器人处置的指示。
2.如权利要求1所述的系统,其中:
生成训练特征向量的所述多个集合表示包括生成集群,训练特征向量被指派给所述集群;以及
将输入特征向量与所述多个集合表示进行比较包括确定输入特征向量不落入集群的边界内。
3.如权利要求2所述的系统,其中生成集群包括:
确定特征空间中初始集群的相应质心位置;
将每个训练特征向量指派给初始集群中具有该训练特征向量最接近的相应质心位置的初始集群;
确定初始聚类的边界,初始集群中的每个初始集群包括对应的被指派的训练特征向量;以及
响应于确定尚未满足停止条件,更新初始集群,其中更新初始集群包括:
确定增加的集群计数,使得增加的集群计数大于初始集群的初始计数;
确定特征空间中集群的相应质心位置;
将每个训练特征向量指派给集群中具有该训练特征向量最接近的相应质心位置的集群;以及
确定集群的边界,集群中的每个集群包括对应的被指派的训练特征向量。
4.如权利要求2所述的系统,其中主机器人的操作还包括:
访问作为第二用户输入的第二输入话语;
从第二输入话语生成第二输入特征向量;
确定第二输入特征向量落入所述集群中的集群的边界内;以及
基于第二输入特征向量落入集群的边界内,将第二输入话语转发到与该集群相关联的技能机器人进行处理。
5.如权利要求4所述的系统,还包括技能机器人,其中技能机器人被配置为处理输入话语以响应于用户输入而执行动作。
6.如权利要求1所述的系统,其中生成训练特征向量的所述多个集合表示包括:
将训练话语划分为交谈类别;以及
生成与交谈类别对应的复合特征向量,其中生成复合特征向量包括:对于交谈类别中的每个交谈类别,将相应的复合特征向量生成为该交谈类别中的训练话语的相应训练特征向量的聚合。
7.如权利要求6所述的系统,其中对于交谈类别中的每个交谈类别,将复合特征向量生成为该交谈类别中的训练话语的相应训练特征向量的聚合包括对该交谈类别中的训练话语的相应训练特征向量求平均。
8.如权利要求6所述的系统,其中交谈类别是基于为其配置技能机器人的意图而定义的,使得每个交谈类别与相应的技能机器人意图对应并且包括代表相应技能机器人意图的训练话语。
9.如权利要求6所述的系统,其中交谈类别中的每个交谈类别与技能机器人中的相应技能机器人对应并且包括代表相应技能机器人的训练话语。
10.如权利要求6所述的系统,其中将输入特征向量与训练特征向量的所述多个集合表示进行比较包括确定输入特征向量与复合特征向量中的任何一个都不足够相似。
11.如权利要求1至10中的任一项所述的系统,其中主机器人的操作还包括:
访问作为第二用户输入的第二输入话语;
从第二输入话语生成第二输入特征向量;
确定第二输入特征向量与复合特征向量中的复合特征向量足够相似;以及
基于第二输入特征向量与复合特征向量足够相似,将第二输入话语转发到与复合特征向量相关联的技能机器人以进行处理。
12.如权利要求11所述的系统,还包括技能机器人,其中技能机器人被配置为处理输入话语以响应于用户输入而执行动作。
13.一种方法,包括:
由计算机系统访问与技能机器人相关联的训练话语,训练话语包括用于技能机器人中的每个技能机器人的训练话语的相应子集,其中技能机器人中的每个技能机器人被配置为提供与用户的对话;
从训练话语生成训练特征向量,训练特征向量包括用于训练话语中的每个训练话语的相应训练特征向量;
确定特征空间中集群的质心位置;
将训练特征向量中的每个训练特征向量指派给所述集群中具有所述集群当中该训练特征向量最接近的相应质心位置的相应集群;
重复地修改集群,直到满足停止条件,其中修改集群包括:
将集群的计数增加到更新计数;
确定数量等于更新计数的集群的新质心位置;以及
基于与新质心位置的接近度,将训练特征向量重新指派给集群;
确定集群的边界,所述边界包括集群中的每个集群的相应边界;访问输入话语;
将输入话语转换成输入特征向量;
通过将输入特征向量与集群的边界进行比较,确定输入特征向量落入集群的边界之外;以及
基于输入特征向量落入特征空间中的集群之外,输出输入话语不能被技能机器人处置的指示。
14.如权利要求13所述的方法,还包括:
访问作为第二用户输入的第二输入话语;
从第二输入话语生成第二输入特征向量;
确定第二输入特征向量落入集群中的一个或多个集群内;以及
基于第二输入特征向量落入所述一个或多个集群内,将第二输入话语转发到与所述一个或多个集群相关联的技能机器人进行处理。
15.如权利要求14所述的方法,其中所述一个或多个集群包括所述技能机器人的相应训练话语和第二技能机器人的相应训练话语,并且所述方法还包括:
基于为所述技能机器人和第二技能机器人计算的相应置信度分数,从所述技能机器人和第二技能机器人之间选择所述技能机器人以处理输入话语。
16.如权利要求14所述的方法,其中所述一个或多个集群包括所述技能机器人的相应训练话语和第二技能机器人的相应训练话语,并且所述方法还包括:
基于对所述技能机器人的相应训练话语和第二技能机器人的相应训练话语应用k-最近邻技术,从所述技能机器人和第二技能机器人之间选择所述技能机器人以处理输入话语。
17.一种方法,包括:
由计算机系统访问与技能机器人相关联的训练话语,训练话语包括用于技能机器人中的每个技能机器人的训练话语的相应子集,其中技能机器人中的每个技能机器人被配置为提供与用户的对话;
从训练话语生成训练特征向量,训练特征向量包括用于训练话语中的每个训练话语的相应训练特征向量;
将训练话语划分为交谈类别;以及
生成与交谈类别对应的复合特征向量,其中生成复合特征向量包括:对于交谈类别中的每个交谈类别,将相应的复合特征向量生成为该交谈类别中的训练话语的相应训练特征向量的聚合;
访问输入话语;
将输入话语转换成输入特征向量;
通过将输入特征向量与复合特征向量进行比较来确定输入特征向量与复合特征向量不足够相似;以及
基于输入特征向量与复合特征向量不足够相似,输出输入话语不能被技能机器人处置的指示。
18.如权利要求17所述的方法,还包括:
访问第二输入话语;
将第二输入话语转换成第二输入特征向量;
通过将第二输入特征向量与复合特征向量进行比较,确定第二输入特征向量与复合特征向量的复合特征向量足够相似;以及
基于第二输入特征向量与复合特征向量足够相似,将第二输入话语转发到与复合特征向量相关联的技能机器人进行处理。
19.如权利要求18所述的方法,其中:
基于技能机器人被配置为处置的意图来定义交谈类别,使得每个交谈类别与相应的一个或多个技能机器人意图对应并且包括代表所述相应的一个或多个技能机器人意图的训练话语;以及
复合特征向量与技能机器人被配置为处置的技能机器人意图对应。
20.如权利要求19所述的方法,其中通过将第二输入特征向量与复合特征向量进行比较来确定第二输入特征向量与复合特征向量足够相似包括:
确定第二输入特征向量与和技能机器人的一个或多个附加技能机器人意图对应的一个或多个附加复合特征向量足够相似;
执行k-最近邻分析,包括:
识别预定义数量的近邻复合特征向量,其中近邻复合特征向量最接近输入特征向量;
确定近邻复合特征向量中的大多数与技能机器人被配置为处置的技能机器人意图对应;以及
基于与技能机器人被配置为处置的技能机器人意图对应的大多数近邻复合特征向量来选择技能机器人。
21.一种被配置为执行权利要求13至20中的任一项所述的方法的计算机。
22.一种方法,包括:
访问作为用户输入的输入话语;
从输入话语生成输入特征向量;
使用分类器模型将输入特征向量与训练特征向量的多个集合表示进行比较;
基于输入特征向量落入所述多个集合表示之外,输出用户输入不能被技能机器人处置的指示,其中技能机器人中的每个技能机器人被配置为提供与用户的对话。
23.如权利要求22所述的方法,还包括训练分类器模型,其中训练分类器模型包括:
访问与技能机器人相关联的训练话语,训练话语包括与技能机器人中的每个技能机器人相关联的相应训练话语;
从训练话语生成训练特征向量,训练特征向量包括与技能机器人中的每个技能机器人相关联的相应训练特征向量;
生成训练特征向量的多个集合表示,其中所述多个集合表示中的每个集合表示与训练特征向量的子集对应;以及
配置分类器模型以将输入特征向量与训练特征向量的所述多个集合表示进行比较。
24.如权利要求23所述的方法,其中:
生成训练特征向量的所述多个集合表示包括生成集群,训练特征向量被指派给所述集群;以及
将输入特征向量与所述多个集合表示进行比较包括确定输入特征向量不落入集群的边界内。
25.如权利要求24所述的方法,其中生成集群包括:
确定特征空间中初始聚类的相应质心位置;
将每个训练特征向量指派给初始集群中具有该训练特征向量最接近的相应质心位置的初始集群;
确定初始集群的边界,初始集群中的每个初始集群包括对应的被指派的训练特征向量;以及
响应于确定尚未满足停止条件,更新初始集群,其中更新初始集群包括:
确定增加的集群计数,使得增加的集群计数大于初始集群的初始计数;
确定特征空间中集群的相应质心位置;
将每个训练特征向量指派给集群中具有该训练特征向量最接近的相应质心位置的集群;以及
确定集群的边界,集群中的每个集群包括对应的被指派的训练特征向量。
26.如权利要求25所述的方法,还包括:
访问作为第二用户输入的第二输入话语;
从第二输入话语生成第二输入特征向量;
确定第二输入特征向量落入所述集群中的集群的边界内;以及
基于第二输入特征向量落入集群的边界内,将第二输入话语转发到与集群相关联的技能机器人进行处理。
27.如权利要求26所述的方法,还包括将技能机器人配置为处理输入话语以响应于用户输入而执行动作。
28.如权利要求23所述的方法,其中生成训练特征向量的所述多个集合表示包括:
将训练话语划分为交谈类别;以及
生成与交谈类别对应的复合特征向量,其中生成复合特征向量包括:对于交谈类别中的每个交谈类别,将相应的复合特征向量生成为该交谈类别中的训练话语的相应训练特征向量的聚合。
29.如权利要求28所述的方法,其中,对于交谈类别中的每个交谈类别,将复合特征向量生成为该交谈类别中的训练话语的相应训练特征向量的聚合包括对该交谈类别中的训练话语的相应训练特征向量求平均。
30.如权利要求28所述的方法,其中交谈类别是基于为其配置技能机器人的意图而定义的,使得每个交谈类别与相应的技能机器人意图对应并且包括代表相应技能机器人意图的训练话语。
31.如权利要求28所述的方法,其中交谈类别中的每个交谈类别与技能机器人中的相应技能机器人对应并且包括代表相应技能机器人的训练话语。
32.如权利要求28所述的方法,其中将输入特征向量与训练特征向量的所述多个集合表示进行比较包括确定输入特征向量与复合特征向量中的任何一个都不足够相似。
33.如权利要求28所述的方法,其中主机器人的操作还包括:
访问作为第二用户输入的第二输入话语;
从第二输入话语生成第二输入特征向量;
确定第二输入特征向量与复合特征向量中的复合特征向量足够相似;以及
基于第二输入特征向量与复合特征向量足够相似,将第二输入话语转发到与复合特征向量相关联的技能机器人进行处理。
34.如权利要求33所述的方法,还包括将技能机器人配置为处理输入话语以响应于用户输入而执行动作。
35.一种对话系统,包括用于执行如权利要求22-34中的任一项所述的方法的部件。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962899700P | 2019-09-12 | 2019-09-12 | |
US62/899,700 | 2019-09-12 | ||
US17/017,076 US11928430B2 (en) | 2019-09-12 | 2020-09-10 | Detecting unrelated utterances in a chatbot system |
US17/017,076 | 2020-09-10 | ||
PCT/US2020/050429 WO2021050891A1 (en) | 2019-09-12 | 2020-09-11 | Detecting unrelated utterances in a chatbot system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114365119A true CN114365119A (zh) | 2022-04-15 |
Family
ID=73014584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080063757.9A Pending CN114365119A (zh) | 2019-09-12 | 2020-09-11 | 在聊天机器人系统中检测不相关的话语 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11928430B2 (zh) |
EP (1) | EP4028931A1 (zh) |
JP (1) | JP2022547596A (zh) |
CN (1) | CN114365119A (zh) |
WO (1) | WO2021050891A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11928430B2 (en) * | 2019-09-12 | 2024-03-12 | Oracle International Corporation | Detecting unrelated utterances in a chatbot system |
US11711323B2 (en) * | 2019-11-20 | 2023-07-25 | Medallia, Inc. | Systems and methods for managing bot-generated interactions |
US11487948B2 (en) * | 2020-02-19 | 2022-11-01 | Conduent Business Services, Llc | Method and system for automated autonomous intent mining |
US20220230000A1 (en) * | 2021-01-20 | 2022-07-21 | Oracle International Corporation | Multi-factor modelling for natural language processing |
US11715469B2 (en) * | 2021-02-26 | 2023-08-01 | Walmart Apollo, Llc | Methods and apparatus for improving search retrieval using inter-utterance context |
US20230004587A1 (en) * | 2021-06-30 | 2023-01-05 | Allstate Insurance Company | Bot for query analysis and interface generation |
US20230008868A1 (en) * | 2021-07-08 | 2023-01-12 | Nippon Telegraph And Telephone Corporation | User authentication device, user authentication method, and user authentication computer program |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58223193A (ja) * | 1982-06-19 | 1983-12-24 | 富士通株式会社 | 多数単語音声認識方式 |
US5276766A (en) * | 1991-07-16 | 1994-01-04 | International Business Machines Corporation | Fast algorithm for deriving acoustic prototypes for automatic speech recognition |
US5692100A (en) * | 1994-02-02 | 1997-11-25 | Matsushita Electric Industrial Co., Ltd. | Vector quantizer |
US6393460B1 (en) * | 1998-08-28 | 2002-05-21 | International Business Machines Corporation | Method and system for informing users of subjects of discussion in on-line chats |
JP3892173B2 (ja) * | 1999-06-03 | 2007-03-14 | 三菱電機株式会社 | 音声認識装置及び音声認識方法、並びに音声モデル作成装置及び音声モデル作成方法 |
US20050044487A1 (en) * | 2003-08-21 | 2005-02-24 | Apple Computer, Inc. | Method and apparatus for automatic file clustering into a data-driven, user-specific taxonomy |
US7333985B2 (en) * | 2003-12-15 | 2008-02-19 | Microsoft Corporation | Dynamic content clustering |
US7542903B2 (en) * | 2004-02-18 | 2009-06-02 | Fuji Xerox Co., Ltd. | Systems and methods for determining predictive models of discourse functions |
US8972312B2 (en) * | 2012-05-29 | 2015-03-03 | Nuance Communications, Inc. | Methods and apparatus for performing transformation techniques for data clustering and/or classification |
US9563688B2 (en) * | 2014-05-01 | 2017-02-07 | International Business Machines Corporation | Categorizing users based on similarity of posed questions, answers and supporting evidence |
US9647968B2 (en) * | 2015-03-25 | 2017-05-09 | Pypestream Inc | Systems and methods for invoking chatbots in a channel based communication system |
CN106910513A (zh) * | 2015-12-22 | 2017-06-30 | 微软技术许可有限责任公司 | 情绪智能聊天引擎 |
US10204152B2 (en) * | 2016-07-21 | 2019-02-12 | Conduent Business Services, Llc | Method and system for detecting personal life events of users |
CN107977952A (zh) * | 2016-10-21 | 2018-05-01 | 冯原 | 医学图像分割方法及装置 |
US10909980B2 (en) * | 2017-02-27 | 2021-02-02 | SKAEL, Inc. | Machine-learning digital assistants |
US10950228B1 (en) * | 2017-06-28 | 2021-03-16 | Amazon Technologies, Inc. | Interactive voice controlled entertainment |
JP7095254B2 (ja) * | 2017-10-10 | 2022-07-05 | トヨタ自動車株式会社 | 対話システムおよびドメイン決定方法 |
US10616148B2 (en) * | 2017-11-13 | 2020-04-07 | International Business Machines Corporation | Progressively extending conversation scope in multi-user messaging platform |
US10715470B1 (en) * | 2017-12-14 | 2020-07-14 | Amazon Technologies, Inc. | Communication account contact ingestion and aggregation |
US10812424B1 (en) * | 2018-02-05 | 2020-10-20 | Beacon Tech Inc. | System and method for quantifying mental health within a group chat application |
US11018885B2 (en) * | 2018-04-19 | 2021-05-25 | Sri International | Summarization system |
RU2711153C2 (ru) * | 2018-05-23 | 2020-01-15 | Общество С Ограниченной Ответственностью "Яндекс" | Способы и электронные устройства для определения намерения, связанного с произнесенным высказыванием пользователя |
CN108960402A (zh) * | 2018-06-11 | 2018-12-07 | 上海乐言信息科技有限公司 | 一种面向聊天机器人的混合策略式情感安抚系统 |
US10762896B1 (en) * | 2018-06-25 | 2020-09-01 | Amazon Technologies, Inc. | Wakeword detection |
KR20200000604A (ko) * | 2018-06-25 | 2020-01-03 | 현대자동차주식회사 | 대화 시스템 및 대화 처리 방법 |
US10726830B1 (en) * | 2018-09-27 | 2020-07-28 | Amazon Technologies, Inc. | Deep multi-channel acoustic modeling |
US10861439B2 (en) * | 2018-10-22 | 2020-12-08 | Ca, Inc. | Machine learning model for identifying offensive, computer-generated natural-language text or speech |
US11004454B1 (en) * | 2018-11-06 | 2021-05-11 | Amazon Technologies, Inc. | Voice profile updating |
EP3895178A4 (en) * | 2018-12-11 | 2022-09-14 | K Health Inc. | HEALTH INFORMATION DELIVERY SYSTEM AND PROCEDURES |
US20200259891A1 (en) * | 2019-02-07 | 2020-08-13 | Microsoft Technology Licensing, Llc | Facilitating Interaction with Plural BOTs Using a Master BOT Framework |
US20200395008A1 (en) * | 2019-06-15 | 2020-12-17 | Very Important Puppets Inc. | Personality-Based Conversational Agents and Pragmatic Model, and Related Interfaces and Commercial Models |
US11928430B2 (en) * | 2019-09-12 | 2024-03-12 | Oracle International Corporation | Detecting unrelated utterances in a chatbot system |
US11657076B2 (en) * | 2020-04-07 | 2023-05-23 | American Express Travel Related Services Company, Inc. | System for uniform structured summarization of customer chats |
US11449683B2 (en) * | 2020-11-24 | 2022-09-20 | International Business Machines Corporation | Disentanglement of chat utterances |
-
2020
- 2020-09-10 US US17/017,076 patent/US11928430B2/en active Active
- 2020-09-11 WO PCT/US2020/050429 patent/WO2021050891A1/en unknown
- 2020-09-11 JP JP2022516179A patent/JP2022547596A/ja active Pending
- 2020-09-11 EP EP20797238.1A patent/EP4028931A1/en active Pending
- 2020-09-11 CN CN202080063757.9A patent/CN114365119A/zh active Pending
-
2024
- 2024-01-31 US US18/428,817 patent/US20240169153A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240169153A1 (en) | 2024-05-23 |
US11928430B2 (en) | 2024-03-12 |
WO2021050891A1 (en) | 2021-03-18 |
EP4028931A1 (en) | 2022-07-20 |
JP2022547596A (ja) | 2022-11-14 |
US20210083994A1 (en) | 2021-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12014146B2 (en) | Techniques for out-of-domain (OOD) detection | |
CN114424185A (zh) | 用于自然语言处理的停用词数据扩充 | |
US11928430B2 (en) | Detecting unrelated utterances in a chatbot system | |
US11694032B2 (en) | Template-based intent classification for chatbots | |
CN115485690A (zh) | 用于处置聊天机器人的不平衡训练数据的分批技术 | |
US11868727B2 (en) | Context tag integration with named entity recognition models | |
CN115917553A (zh) | 在聊天机器人中实现稳健命名实体识别的实体级数据扩充 | |
CN115398436A (zh) | 用于自然语言处理的噪声数据扩充 | |
CN116802629A (zh) | 用于自然语言处理的多因素建模 | |
JP2023551859A (ja) | 自然言語処理のための強化されたロジット | |
JP2023538923A (ja) | テキスト分類についての説明を与えるための技術 | |
CN116583837A (zh) | 用于自然语言处理的基于距离的logit值 | |
CN116490879A (zh) | 用于神经网络中过度预测的方法和系统 | |
CN116615727A (zh) | 用于自然语言处理的关键词数据扩充工具 | |
EP4334832A1 (en) | Variant inconsistency attack (via) as a simple and effective adversarial attack method | |
CN118140230A (zh) | 对经预训练的语言模型的单个转换器层的多头网络进行微调 | |
CN118202344A (zh) | 用于从文档中提取嵌入式数据的深度学习技术 | |
US20230161963A1 (en) | System and techniques for handling long text for pre-trained language models | |
US20240062112A1 (en) | Adaptive training data augmentation to facilitate training named entity recognition models | |
US20240232541A1 (en) | Enhanced logits for natural language processing | |
US20230154455A1 (en) | Path dropout for natural language processing | |
CN118265981A (zh) | 用于为预训练的语言模型处置长文本的系统和技术 | |
WO2023091436A1 (en) | System and techniques for handling long text for pre-trained language models | |
KR20240089615A (ko) | 사전-트레이닝된 언어 모델의 단일 트랜스포머 계층으로부터의 다중-헤드 네트워크의 미세-튜닝 | |
WO2024044491A1 (en) | Adaptive training data augmentation to facilitate training named entity recognition models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |