CN116547676A - 用于自然语言处理的增强型logit - Google Patents
用于自然语言处理的增强型logit Download PDFInfo
- Publication number
- CN116547676A CN116547676A CN202180080034.4A CN202180080034A CN116547676A CN 116547676 A CN116547676 A CN 116547676A CN 202180080034 A CN202180080034 A CN 202180080034A CN 116547676 A CN116547676 A CN 116547676A
- Authority
- CN
- China
- Prior art keywords
- value
- training
- logic
- resolvable
- probability
- 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
- 238000003058 natural language processing Methods 0.000 title abstract description 18
- 238000010801 machine learning Methods 0.000 claims abstract description 282
- 230000006870 function Effects 0.000 claims abstract description 233
- 238000000034 method Methods 0.000 claims abstract description 173
- 238000012549 training Methods 0.000 claims description 376
- 238000009826 distribution Methods 0.000 claims description 54
- 238000003860 storage Methods 0.000 claims description 49
- 238000004590 computer program Methods 0.000 claims description 25
- 238000005457 optimization Methods 0.000 claims description 23
- 238000013507 mapping Methods 0.000 claims description 18
- 230000003190 augmentative effect Effects 0.000 claims description 9
- 230000001131 transforming effect Effects 0.000 claims description 9
- 239000003550 marker Substances 0.000 claims description 4
- 238000006467 substitution reaction Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 84
- 230000008569 process Effects 0.000 description 76
- 235000013550 pizza Nutrition 0.000 description 56
- 238000013528 artificial neural network Methods 0.000 description 42
- 238000004891 communication Methods 0.000 description 32
- 230000015654 memory Effects 0.000 description 27
- 230000004044 response Effects 0.000 description 26
- 230000009471 action Effects 0.000 description 25
- 238000013527 convolutional neural network Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 19
- 238000004458 analytical method Methods 0.000 description 16
- 230000004913 activation Effects 0.000 description 13
- 238000007726 management method Methods 0.000 description 12
- 230000003993 interaction Effects 0.000 description 11
- 238000012360 testing method Methods 0.000 description 11
- 239000013598 vector Substances 0.000 description 11
- 230000007704 transition Effects 0.000 description 9
- 238000007781 pre-processing Methods 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 235000013305 food Nutrition 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000003062 neural network model Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 238000007637 random forest analysis Methods 0.000 description 5
- 230000000306 recurrent effect Effects 0.000 description 5
- 230000006403 short-term memory Effects 0.000 description 5
- 238000012706 support-vector machine Methods 0.000 description 5
- 238000010224 classification analysis Methods 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000010367 cloning Methods 0.000 description 3
- 238000002790 cross-validation Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000001976 improved effect Effects 0.000 description 3
- 238000007477 logistic regression Methods 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000009118 appropriate response Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000011049 filling Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 238000013068 supply chain management Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 240000005020 Acaciella glauca Species 0.000 description 1
- 241000238558 Eucarida Species 0.000 description 1
- 241001020574 Gigantactis ios Species 0.000 description 1
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 241001122315 Polites Species 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000005352 clarification Methods 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000002591 computed tomography Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013434 data augmentation Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 238000002595 magnetic resonance imaging Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000037211 monthly cycles Effects 0.000 description 1
- 238000002600 positron emission tomography Methods 0.000 description 1
- 235000003499 redwood Nutrition 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- 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
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/253—Grammatical analysis; Style critique
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Machine Translation (AREA)
- Image Analysis (AREA)
Abstract
用于在自然语言处理中使用增强型logit值对输入到聊天机器人系统的话语和消息进行分类的技术。一种方法可以包括聊天机器人系统接收由与该聊天机器人系统交互的用户生成的话语以及将该话语输入到包括一系列网络层的机器学习模型中。该一系列网络层中的最终网络层可以包括logit函数。机器学习模型可以使用logit函数将可解析分类的第一概率映射到第一logit值。机器学习模型可以将不可解析分类的第二概率映射到增强型logit值。该方法还可以包括聊天机器人系统基于第一logit值和增强型logit值将该话语分类为可解析分类或不可解析分类。
Description
相关申请的交叉引用
本申请要求于2020年11月30日提交的美国临时申请号63/119,449以及于2021年11月29日提交的美国非临时申请号17/456,687的权益。出于所有目的,以上引用的申请中的每一个通过引用以其全文并入本文。
技术领域
本公开总体上涉及聊天机器人系统,并且更具体地涉及用于在自然语言处理中使用增强型logit值对输入到聊天机器人系统的话语和消息进行分类的技术。
背景技术
为了获得即时反应,世界各地的许多用户使用即时消息传递或聊天平台。组织经常使用这些即时消息传递或聊天平台与客户(或最终用户)进行实时会话。然而,雇用服务人员与客户或最终用户进行实时交流对于组织来说可能是非常昂贵的。已经开始开发聊天机器人或机器人来模拟与最终用户的会话,尤其是通过因特网。最终用户可以通过最终用户已经安装并使用的消息传递应用程序与机器人交流。智能机器人(通常通过人工智能(AI)提供动力)可以在实时会话中更智能地且根据上下文进行交流,并且因此可以允许机器人与最终用户之间更加自然的会话以改善会话体验。不是最终用户学习机器人知道的如何作出响应的固定的一组关键词或命令,而是智能机器人可以能够基于自然语言的用户话语理解最终用户的意图并且相应地作出响应。
发明内容
提供了用于在自然语言处理中使用增强型logit值对输入到聊天机器人系统的话语和消息进行分类的技术。一种方法可以包括聊天机器人系统接收由与该聊天机器人系统交互的用户生成的话语以及将该话语输入到包括一系列网络层的机器学习模型中。话语可以包括从由用户输入的语音转换的文本数据。该一系列网络层中的最终网络层可以包括logit函数,logit函数将可解析分类的第一概率变换为表示第一logit值的第一实数并且将不可解析分类的第二概率变换为表示第二logit值的第二实数。
该方法还可以包括机器学习模型确定可解析分类的第一概率和不可解析分类的第二概率。机器学习模型可以使用logit函数将可解析分类的第一概率映射到第一logit值。用于映射第一概率的logit函数可以是与可解析分类的第一概率相对应的几率的对数,该几率的对数由与可解析分类相关联的分布的质心加权。
该方法还可以包括机器学习模型将不可解析分类的第二概率映射到增强型logit值。增强型logit值可以是独立于用于映射第一概率的logit函数而确定的第三实数。增强型logit值可以包括:(i)基于从训练数据集生成的一组logit值确定的统计值;(ii)选自由与不可解析分类的第二概率相对应的几率的第一对数所定义的值范围的有界值,该几率的第一对数由限界函数约束到值范围并且由与不可解析分类相关联的分布的质心加权;(iii)由与不可解析分类的第二概率相对应的几率的第二对数生成的加权值,该几率的第二对数由限界函数约束到该值范围、由缩放因子缩放、并且由与不可解析分类相关联的分布的质心加权;(iv)基于对机器学习模型的超参数调谐而生成的超参数优化值;或(v)在对机器学习模型的训练期间调整的学习值。该方法还可以包括聊天机器人系统基于第一logit值和增强型logit值将话语分类为可解析分类或不可解析分类。
还提供了用于训练使用增强型logit值来对话语和消息进行分类的机器学习模型的技术。一种方法可以包括训练子系统接收训练数据集。该训练数据集可以包括由与聊天机器人系统交互的用户生成的多个话语。该多个话语中的至少一个话语可以包括从用户的语音输入转换的文本数据。该方法还可以包括训练子系统访问包括一系列网络层的机器学习模型。该一系列网络层中的最终网络层包括logit函数,该logit函数将可解析分类的第一概率变换为表示第一logit值的第一实数并且将不可解析分类的第二概率变换为表示第二logit值的第二实数。
该方法还可以包括训练子系统利用训练数据集来训练机器学习模型,使得机器学习模型:(i)确定可解析分类的第一概率和不可解析分类的第二概率;以及(ii)使用logit函数将可解析分类的第一概率映射到第一logit值。用于映射第一概率的logit函数可以是与可解析分类的第一概率相对应的几率的对数,该几率的对数由与可解析分类相关联的分布的质心加权。
该方法还可以包括训练子系统利用增强型logit值替换logit函数,使得不可解析分类的第二概率被映射到增强型logit值。增强型logit值可以是独立于用于映射第一概率的logit函数而确定的第三实数。增强型logit值还可以包括:(i)基于从训练数据集生成的一组logit值确定的统计值;(ii)选自由与不可解析分类的第二概率相对应的几率的第一对数所定义的值范围的有界值,该几率的第一对数由限界函数约束到值范围并且由与不可解析分类相关联的分布的质心加权;(iii)由与不可解析分类的第二概率相对应的几率的第二对数生成的加权值,该几率的第二对数由限界函数约束到该值范围、由缩放因子缩放、并且由与不可解析分类相关联的分布的质心加权;(iv)基于对机器学习模型的超参数调谐生成的超参数优化值;或(v)在对机器学习模型的训练期间调整的学习值。该方法还可以包括训练子系统部署利用增强型logit值的经训练的机器学习模型。
在各种实施例中,提供了一种系统,该系统包括一个或多个数据处理器和包含指令的非暂态计算机可读存储介质,该指令在所述一个或多个数据处理器上执行时使该一个或多个数据处理器执行本文所公开的一种或多种方法的部分或全部。
在各种实施例中,提供了一种计算机程序产品,该计算机程序产品有形地体现在非暂态机器可读存储介质中并且包括被配置为使一个或多个数据处理器执行本文所公开的一种或多种方法的部分或全部的指令。
可以用多种方式并且在多种上下文中实施上文和下文所描述的技术。如下文更详细地描述的,参考以下附图提供了多种示例实施方式和上下文。然而,以下实施方式和上下文仅是许多实施方式和上下文中的一些。
附图说明
图1是并入了示例性实施例的分布式环境的简化框图。
图2是根据一些实施例的实施主机器人的计算系统的简化框图。
图3是根据一些实施例的实施技能机器人的计算系统的简化框图。
图4是根据各种实施例的聊天机器人训练和部署系统的简化框图。
图5图示了根据一些实施例的示例神经网络的示意图。
图6示出了图示根据一些实施例的用于确定统计值的示例过程的流程图,该统计值表示用于预测话语是否与不可解析分类相对应的增强型logit值。
图7示出了图示根据一些实施例的用于修改logit函数以确定指定范围内用于预测话语是否与不可解析分类相对应的增强型logit值的示例过程的流程图。
图8示出了图示根据一些实施例的用于向logit函数添加缩放因子以确定用于预测话语是否与不可解析分类相对应的增强型logit值的示例过程的流程图。
图9示出了图示根据一些实施例的用于使用超参数调谐来确定用于预测话语是否与不可解析分类相对应的增强型logit值的示例过程的流程图。
图10示出了图示根据一些实施例的使用学习值作为用于预测话语是否与不可解析分类相对应的增强型logit值的示例过程的流程图。
图11是图示了根据一些实施例的用于训练针对不可解析分类实施增强型logit值的机器学习模型的过程的流程图。
图12是图示了根据一些实施例的用于使用增强型logit值将话语分类为不可解析分类的过程的流程图。
图13描绘了用于实施各种实施例的分布式系统的简化图。
图14是根据各种实施例的系统环境的一个或多个部件的简化框图,通过该系统环境,由实施例系统的一个或多个部件提供的服务可以作为云服务被提供。
图15图示了可以用于实施各种实施例的示例计算机系统。
具体实施方式
在以下描述中,出于解释的目的,阐述了具体细节以便提供对一些实施例的透彻理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实践各个实施例。附图和描述不旨在是限制性的。词语“示例性”在本文中用来意指“用作示例、实例或说明”。在本文中被描述为“示例性”的任何实施例或设计不必被解释为比其他实施例或设计更优选或有利。
A.概述
1.意图
数字助理是帮助用户在自然语言会话中完成各种任务的人工智能驱动接口。针对每个数字助理,客户可以组装一个或多个技能。技能(在本文中也描述为聊天机器人、机器人或技能机器人)是聚焦于如跟踪库存、提交时间卡和创建费用报告等特定类型的任务的单独机器人。当最终用户与数字助理接洽时,数字助理评估最终用户输入并且将会话路由到适当的聊天机器人并从适当的聊天机器人路由会话。可以通过如Messenger(即时通)、SKYPEmessenger或短消息服务(SMS)等各种通道使数字助理对最终用户可用。通道将聊天在各种消息传递平台上的最终用户与数字助理及其各中聊天机器人之间来回地传送。通道还可以支持用户代理升级、事件发起的会话和测试。
意图允许聊天机器人理解用户想要聊天机器人做什么。意图包括典型的用户请求和陈述的排列,这也称为话语(例如,获得账户余额、进行购物等)。如本文所使用的,话语或消息可以指代在与聊天机器人的会话期间交换的一组词(例如,一个或多个句子)。话语可以是从用户经由用户接口输入的语音输入转换而来的文本。可以通过提供说明某个用户行动的名称(例如,订购披萨)并编译通常与触发行动相关联的一组现实生活用户陈述或话语来创建意图。因为聊天机器人的认知是源自这些意图,所以每个意图可以从稳健的数据集(一至两打话语)创建并且变化,使得聊天机器人可以解释不明确的用户输入。一组丰富的话语使聊天机器人能够理解在其接收到如“Forget this order!(忽略此订单!)”或“Cancel delivery!(取消派送!)”等消息(意指相同的事情但以不同的方式表达的消息)时用户想要什么。总之,意图和属于意图的话语构成聊天机器人的训练语料库。通过利用语料库训练模型,客户基本上可以将该模型变成用于将最终用户输入解析成单个意图的参考工具。客户可以通过多轮意图测试和意图训练来提高聊天机器人的认知的敏锐度。
然而,构建可以基于用户话语确定最终用户的意图的聊天机器人是有挑战性的任务,这部分地是由于自然语言的微妙性和不明确性以及输入空间的维度(例如,可能的用户话语)和输出空间的大小(意图的数目)。这种困难的说明性示例来自自然语言的特性,比如采用委婉语、同义词或不合语法的言语来表达意图。例如,话语可能表达了订购披萨的意图,而没有明确提及披萨、订购或派送。例如,在某些地区方言中,“披萨(pizza)”被称为“派(pie)”。自然语言中的这些趋势(比如不精确或可变性)会产生不确定性,并引入置信度作为意图预测参数,而不是例如通过包括关键词来明确指示意图。这样,为了改善聊天机器人的性能和与聊天机器人的用户体验,可能需要训练、监测、调试和再训练聊天机器人。在传统系统中,提供了训练系统以用于在口语理解(SLU)和自然语言处理(NLP)中训练和再训练数字助理或聊天机器人的机器学习模型。
2.使用机器学习模型确定意图
在一个或多个点,聊天机器人系统可以提供话语作为神经网络模型的输入,该神经网络模型使用逻辑回归函数将输出映射到概率分布。例如,对于分类来说,在概率分布中对一组输出进行排序允许预测话语中调用的意图。准确的预测又让聊天机器人能够准确地与最终用户交互。在这个意义上,准确度至少部分地取决于将神经网络分类器的输出映射到概率分布。
为了将神经网络机器学习模型的输出映射到概率分布中,基于输入确定logit值。logit值(也被称为“logit”)是由机器学习模型的网络层的logit函数输出的值。logit值可以表示话语与特定分类相对应的几率。logit函数是特定分类(例如,订购_披萨意图分类、不可解析分类)的几率的对数并且将机器学习模型的输出变换为拟合到概率分布内的对应的logit值。Logit值的范围在(-∞,+∞)之间。然后,可以将logit值作为输入提供给激活函数(例如,softmax函数)以生成输入(例如,话语)是否与一组分类中的特定分类相对应的预测的可能性,其中,该预测的可能性在该组分类的概率分布内。预测的可能性的范围可以在[0,1]之间。例如,通过处理通过多项式机器学习模型的一个或多个中间层的输入话语(例如,“I want to grab a pie(我想吃派)”)来生成与特定分类(例如,订购_披萨)相对应的数值输出。输出可以由特定分类的logit函数处理以生成logit值9.4。然后,可以将激活函数应用于logit值以确定范围在0和1之间的概率值(例如,0.974),其指示输入话语与订购_披萨分类相对应。不调用意图分类器被训练来识别的任何意图的话语将与范围外或域外话语相对应。例如,话语“how is the weather today?(今天天气怎么样?)”对于被训练来预测该话语是否指定特定食品的订单的分类器来说,可以被认为是范围外的。
可以通过对logit函数的一个或多个参数进行加权来进一步提高分类准确度。例如,每个意图分类可以与可以由意图分类的质心加权的logit函数相关联。如本文所使用的,术语“质心”是指用于对话语进行分类的聚类的中心位置的定位,其中,聚类识别与特定最终用户意图分类相对应的数据。在一些实例中,使用来自对应的话语数据集(例如,训练数据集)的数据来确定质心。通过分布的质心对logit函数进行加权允许logit函数更准确地预测给定话语的分类,尤其是当该话语是域内或范围内的时(例如,系统已经被训练来识别的话语)。
3.确定范围外话语的意图
神经网络存在过度自信的问题。可能由于正由经训练的神经网络(例如,经训练的NLP算法)为分类生成的置信度得分可能变得与真实的置信度得分不相关而发生过渡自信。该问题通常可能发生在较深的神经网络(即,具有较高层数的神经网络模型)中。尽管深度神经网络模型的输出预测通常比较浅的神经网络模型更准确,但是深度神经网络模型可能在实际输入没有被用于训练神经网络模型的训练数据很好地表示时产生高度自信的错误分类预测。因此,虽然深度神经网络由于其增加的准确度而被期望使用,但是必须处理与深度神经网络相关联的过度自信问题以避免神经网络的性能问题。
涉及使用质心加权的logit函数的传统技术不能有效地解决过度自信问题。通常,对于域外或范围外话语,使用质心加权的logit函数可以说是将分类器视为确定话语是否符合未解析话语的聚类。然而,未解析话语的聚类可能是不准确的,因为域外或范围外话语由于它们不同的自然语言定义和语法而可能是分散的,而不是聚集的。换句话说,对范围外话语使用质心加权的logit函数将意味着应用基于高度分散的聚类的质心。应用这种质心会给话语分类带来不准确性,例如,通过低估意图在聊天机器人的领域之外的概率。
4.用于将话语分类为具有未解析意图的增强型logit
为了克服以上缺陷,本技术包括用于在机器学习模型中使用增强型logit以准确地预测范围外话语与不可解析分类相对应的系统和方法。这可以提高话语分类器的准确度,例如,提供改进的话语分类器,该改进的话语分类器能够更准确地识别分类器不能可靠分类的域外或范围外话语。这种识别域外/范围外话语的能力的提高可以减少分类器试图对没有训练分类器对其进行分类的话语进行分类的频率,从而减少可能由于试图对落在分类器的能力之外的话语进行分类而产生的不可预测或不正确的分类结果的数量,并且因此总体上改善话语分类。本技术可以包括机器学习模型(例如,神经网络),该机器学习模型被训练来预测话语或消息表示可解析分类(例如,技能机器人被配置为执行的任务类型、与技能机器人相关联的意图)还是不可解析分类。机器学习模型可以被配置为应用logit函数以生成预测话语是否与意图的可解析分类相对应的第一logit值,并且使用预测话语是否与意图的不可解析分类相对应的增强型logit值。在一些实例中,增强型logit值替换logit函数或者独立于logit函数来确定。
在一些实例中,用于不可解析分类的增强型logit值包括以下之一:(i)基于从训练数据集生成的一组logit值确定的统计值;(ii)选自由与不可解析分类的概率相对应的几率的第一对数所定义的值范围的有界值,该几率的第一对数由限界函数约束到值范围并且由与不可解析分类相关联的分布的质心加权;以及(iii)由与不可解析分类的概率相对应的几率的第二对数生成的加权值,该几率的第二对数由缩放因子缩放、由限界函数限界、并且由与不可解析分类相关联的分布的质心加权,(iv)基于对机器学习模型的超参数调谐生成的超参数优化值,或(v)在对机器学习模型的训练期间动态调整的学习值。
B.机器人和分析系统
机器人(也称为技能、聊天机器人、交谈机器人或谈话机器人)是可以执行与最终用户的会话的计算机程序。机器人通常可以通过使用自然语言消息的消息传递应用程序对自然语言消息(例如,问题或评论)作出响应。企业可以使用一个或多个机器人系统通过消息传递应用程序与最终用户交流。消息传递应用程序(可以被称为通道)可以是最终用户已经安装并且熟悉的最终用户优选的消息传递应用程序。因此,最终用户不需要为了与机器人系统聊天而下载并安装新的应用程序。消息传递应用程序可以包括例如过顶(OTT)消息传递通道(如Facebook Messenger、Facebook WhatsApp、微信、Line、Kik、Telegram、Talk、Skype、Slack或SMS)、虚拟私人助理(如Amazon Dot、Echo或Show、Google Home、AppleHomePod等)、本地或混合扩展的移动和web应用程序扩展/具有聊天功能的响应式移动应用程序或web应用程序、或基于话音的输入(如具有使用Siri、微软小娜(Cortana)、谷歌之音(Google Voice)或用于交互的其他语音输入的接口的设备或应用程序)。
在一些示例中,机器人系统可以与统一资源标识符(URI)相关联。URI可以使用一串字符来标识机器人系统。URI可以用作一个或多个消息传递应用程序系统的webhook(网络挂接)。URI可以包括例如统一资源定位符(URL)或统一资源名称(URN)。机器人系统可以被设计成从消息传递应用程序系统接收消息(例如,超文本传送协议(HTTP)post调用消息)。HTTP post调用消息可以指向来自消息传递应用程序系统的URI。在一些实施例中,消息可以不同于HTTP post调用消息。例如,机器人系统可以从短消息服务(SMS)接收消息。虽然本文的讨论可以将机器人系统接收到的通信称作消息,但是应理解,消息可以是HTTPpost调用消息、SMS消息或两个系统之间的任何其他类型的通信。
最终用户可以通过会话式交互(有时称为会话式用户接口(UI))与机器人系统交互,正如人之间的交互那样。在一些情况下,交互可以包括最终用户对机器人说“Hello(你好)”以及机器人用“Hi(嗨)”来响应并询问最终用户机器人可以如何提供帮助。在一些情况下,交互还可以是与例如银行业机器人的交易式交互,例如将钱从一个账户转移到另一个账户;与例如HR机器人的信息式交互,例如查询假期结余;或与例如零售机器人的交互,例如讨论退回已购商品或寻求技术支持。
在一些实施例中,机器人系统可以在没有与机器人系统的管理员或开发人员交互的情况下智能地处理最终用户交互。例如,最终用户可以向机器人系统发送一个或多个消息以便实现期望的目标。消息可以包括某种内容,如文本、表情符号、音频、图像、视频或传达消息的其他方法。在一些实施例中,机器人系统可以将内容转换成标准化形式(例如,利用适当的参数针对企业服务的表述性状态转移(REST)调用)并且生成自然语言响应。机器人系统还可以针对另外的输入参数提示最终用户或请求其他另外的信息。在一些实施例中,机器人系统还可以发起与最终用户的交流,而不是被动地响应最终用户话语。本文所描述的是用于识别机器人系统的显式调用并确定被调用的机器人系统的输入的各种技术。在一些实施例中,显式调用分析由主机器人基于检测到话语中的调用名称而执行。响应于检测到调用名称,话语可以被细化以供输入到与调用名称相关联的技能机器人。
与机器人的会话可以遵循包括多个状态的特定会话流。该流可以基于输入来定义接下来将发生什么。在一些实施例中,可以使用包括用户定义的状态(例如,最终用户意图)和在状态中或状态之间要采取的动作的状态机来实施机器人系统。会话可以基于最终用户输入来采用不同的路径,这可能会影响机器人针对该流作出的决定。例如,在每个状态下,基于最终用户输入或话语,机器人可以确定最终用户的意图以便确定要采取的下一个适当动作。如本文所使用的且在话语的上下文中,术语“意图”是指提供话语的用户的意图。例如,用户可以打算让机器人参与用于订购披萨的会话,使得用户的意图可以通过话语“Order pizza(订购披萨)”来表示。用户意图可以指向用户希望聊天机器人代表用户执行的特定任务。因此,话语可以表达为反映用户的意图的问题、命令、请求等。意图可以包括最终用户想要完成的目标。
在聊天机器人的配置的上下文中,本文所使用的术语“意图”是指用于将用户的话语映射到聊天机器人可以执行的特定任务/动作或特定种类的任务/动作的配置信息。为了区分话语的意图(即,用户意图)与聊天机器人的意图,本文中有时将后者称为“机器人意图”。机器人意图可以包括与意图相关联的一组一个或多个话语。例如,订购披萨的意图可以具有表达下订单购买披萨的期望的话语的各种排列。这些相关联的话语可以用于训练聊天机器人的意图分类器以使意图分类器能够随后确定来自用户的输入话语是否与订购披萨意图相匹配。机器人意图可以与用于启动与用户的会话并且在某个状态下的一个或多个对话流相关联。例如,针对订购披萨意图的第一消息可以是问题“What kind of pizzawould you like?(你想要哪种披萨?)”。除了相关联的话语之外,机器人意图可以进一步包括与意图有关的命名实体。例如,订购披萨意图可以包括用于执行订购披萨的任务的变量或参数,例如馅料1、馅料2、披萨类型、披萨大小、披萨数量等。实体的值通常是通过与用户交谈获得的。
在一些实例中,分析话语以确定该话语是否包含技能机器人的调用名称。如果没有找到调用名称,则该话语被认为是非显式调用的,并且该过程利用意图分类器(如经训练的模型)继续进行。如果确定存在调用名称,则该话语被视为显式调用,并且该过程继续确定该话语的哪些部分与该调用名称相关联。在调用经训练的模型的实例中,将已接收到的整个话语作为输入提供给意图分类器。
接收话语的意图分类器可以是主机器人的意图分类器(例如,图2中的意图分类器242)。意图分类器可以是基于机器学习或基于规则的分类器,该分类器利用关键词扩充的数据来训练以确定话语的意图是否与系统意图(例如,退出、帮助)或特定技能机器人相匹配。如本文所解释的,由主机器人执行的意图分析可以限于匹配到特定技能机器人,而不确定该特定技能机器人内的哪个意图是对话语的最佳匹配。因此,接收话语的意图分类器可以识别要调用的特定技能机器人。可替代地,如果话语表示特定的系统意图(例如,话语包含词“退出”或“帮助”),则接收话语的意图分类器可以识别该特定系统意图,以基于为该特定系统意图配置的对话流来触发主机器人与用户之间的会话。
在存在调用名称的实例中,应用一个或多个显式调用规则来确定话语的哪些部分与调用名称相关联。该确定可以基于使用POS标签、依存信息和/或与话语一起接收的其他提取的信息对话语的句子结构的分析。例如,与调用名称相关联的部分可以是包括调用名称的名词短语或与调用名称相对应的介词宾语。如基于处理确定的与调用名称相关联的任何部分都将被移除。也可以移除话语的传达话语的含义所不需要的其他部分(例如,介词)。移除话语的某些部分为与调用名称相关联的技能机器人产生输入。如果在移除之后仍然剩余接收到的话语的任何部分,则剩余部分形成新的话语以输入到技能机器人,例如,作为文本字符串。否则,如果接收到的话语被完全移除,则输入可以是空字符串。此后,调用与调用名称相关联的技能机器人,并向技能机器人提供所产生的输入。
在接收到所产生的输入时,被调用的技能机器人将处理输入,例如,通过使用技能机器人的意图分类器来执行意图分析,该意图分类器已被训练用于识别与输入中表示的用户意图相匹配的机器人意图。对匹配的机器人意图的识别可以导致技能机器人根据与匹配的机器人意图相关联的对话流来执行特定动作或开始与用户的会话。例如,如果输入是空字符串,则可以在为对话流定义的默认状态下开始会话,例如欢迎消息。可替代地,如果输入不是空字符串,则会话可以在某个中间状态下开始,例如,因为输入包含实体的值或一些其他信息,技能机器人由于已接收到该信息作为输入的一部分而不再需要向用户询问这些其他信息。作为另一个示例,技能机器人可能决定它不能处理输入(例如,由于为技能机器人配置的每个机器人意图的置信度得分都低于某个阈值)。在这种情况下,技能机器人可以将输入返回给主机器人进行处理(例如,使用主机器人的意图分类器进行意图分析),或者技能机器人可以提示用户进行澄清。
1.总体环境
图1是根据一些实施例的并入聊天机器人系统的环境100的简化框图。环境100包括数字助理构建器平台(DABP)102,所述DABP使得DABP 102的用户能够创建并部署数字助理或聊天机器人系统。DABP 102可以用于创建一个或多个数字助理(或DA)或聊天机器人系统。例如,如图1所示,表示特定企业的用户104可以使用DABP 102来创建并部署用于特定企业的用户的数字助理106。例如,DABP 102可以被银行用来创建供银行的客户使用的一个或多个数字助理。多个企业可以使用同一个DABP 102平台来创建数字助理。作为另一示例,餐馆(例如,披萨店)的所有者可以使用DABP 102来创建并部署使餐馆的客户能够订购食物(例如,订购披萨)的数字助理。
出于本公开的目的,“数字助理”是通过自然语言会话帮助数字助理的用户完成各种任务的实体。可以仅使用软件(例如,数字助理是使用可由一个或多个处理器执行的程序、代码或指令实施的数字实体)、使用硬件、或使用硬件和软件的组合来实施数字助理。数字助理可以在如计算机、移动电话、手表、器具、车辆等各种物理系统或设备中体现或实施。数字助理有时也称为聊天机器人系统。因此,出于本公开的目的,术语数字助理和聊天机器人系统是可互换的。
数字助理(如使用DABP 102构建的数字助理106)可以用于经由数字助理与其用户108之间基于自然语言的会话来执行各种任务。作为会话的一部分,用户可以向数字助理106提供一个或多个用户输入110并从数字助理106获得返回的响应112。会话可以包括输入110和响应112中的一个或多个。经由这些会话,用户可以请求将由数字助理执行的一个或多个任务,并且作为响应,数字助理被配置为执行用户请求的任务并以适当的响应来响应用户。
用户输入110通常呈自然语言的形式并且被称为话语。用户话语110可以是文本形式,如当用户键入句子、问题、文本片段或甚至单个词并将其作为输入提供给数字助理106时。在一些实施例中,用户话语110可以是音频输入或语音的形式,如当用户讲出或说出作为输入提供给数字助理106的某些内容时。话语通常呈用户108说出的语言的形式。例如,话语可以是英语或某种其他语言。当话语呈语音形式时,将语音输入转换成该特定语言的文本形式的话语,并且然后由数字助理106来处理文本话语。可以使用各种语音到文本处理技术将语音或音频输入转换成文本话语,然后由数字助理106来处理该文本话语。在一些实施例中,语音到文本的转换可以由数字助理106自身完成。
话语(其可以是文本话语或语音话语)可以是片段、一个句子、多个句子、一个或多个词、一个或多个问题、上述类型的组合等。数字助理106被配置为将自然语言理解(NLU)技术应用于话语以理解用户输入的含义。作为针对话语的NLU处理的一部分,数字助理106被配置为执行用于理解话语的含义的处理,该处理涉及识别对应于话语的一个或多个意图和一个或多个实体。在理解话语的含义后,数字助理106可以响应于理解的含义或意图来执行一个或多个动作或操作。出于本公开的目的,假设这些话语是已经由数字助理106的用户108直接提供的文本话语,或者是将输入话语转换为文本形式的结果。然而,这并不旨在以任何方式进行限制或约束。
例如,用户108的输入可以通过提供如“I want to order a pizza(我想要订购披萨)”的话语来请求订购披萨。在接收到这种话语之后,数字助理106被配置为理解话语的含义并采取适当的动作。适当的动作可以涉及例如以请求关于用户期望订购的披萨的类型、披萨的大小、披萨的任何浇头的用户输入的问题来响应用户。由数字助理106提供的响应也可以是自然语言形式,并且通常以与输入话语相同的语言。作为生成这些响应的一部分,数字助理106可以执行自然语言生成(NLG)。为了用户经由用户与数字助理106之间的会话来订购披萨,数字助理可以引导用户提供用于披萨订购的所有必要信息,并且然后在会话结束时使披萨被订购。数字助理106可以通过向用户输出指示已经订购披萨的信息来结束会话。
在概念层级上,数字助理106响应于从用户接收的话语执行各种处理。在一些实施例中,该处理涉及一系列处理步骤或处理步骤流水线,包括例如理解输入话语的含义(有时称为自然语言理解(NLU)、确定响应于话语而要执行的动作、在适当的情况下使动作被执行、响应于用户话语生成要输出到用户的响应、向用户输出响应等。NLU处理可以包括对所接收的输入话语进行语法分析以理解话语的结构和含义、细化并重新形成该话语以开发出针对该话语的更好的可理解形式(例如,逻辑形式)或结构。生成响应可以包括使用NLG技术。
数字助理(如数字助理106)执行的NLU处理可以包括如句子语法分析(例如,标记化、按屈折变化形式进行归类、识别句子的词性标签、识别句子中的命名实体、生成依存树来表示句子结构、将句子分成子句、分析单独的子句、解析指代、执行组块等)等各种NLP有关处理。在一些实施例中,NLU处理或其部分是由数字助理106自身执行的。在一些其他实施例中,数字助理106可以使用其他资源来执行NLU处理的部分。例如,可以通过使用语法分析器、词性标记器和/或命名实体识别器处理句子来识别输入话语句子的句法和结构。在一种实施方式中,针对英语语言,使用如由斯坦福自然语言处理(NLP)小组提供的语法分析器、词性标记器和命名实体识别器来分析句子结构和句法。这些是作为斯坦福CoreNLP工具包的一部分被提供的。
虽然本公开中提供的各个示例示出了英语语言的话语,但是这仅意味着作为示例。在一些实施例中,数字助理106还能够处理除英语以外的语言的话语。数字助理106可以提供被配置用于针对不同语言执行处理的子系统(例如,实施NLU功能的部件)。这些子系统可以实施为可以使用服务调用从NLU核心服务器调用的可插单元。这使NLU处理对于每种语言而言是灵活且可扩展的,包括允许不同的处理顺序。可以为单独的语言提供语言包,其中,语言包可以登记可以从NLU核心服务器提供服务的子系统的列表。
可以通过各种不同的通道(例如但不限于经由某些应用程序、经由社交媒体平台、经由各种消息传递服务和应用程序、以及其他应用程序或通道)使数字助理(如图1中描绘的数字助理106)对其用户108而言是可用的或可访问的。单个数字助理可以为自身配置多个通道,使得单个数字助理可以同时在不同的服务上运行并通过不同的服务进行访问。
数字助理或聊天机器人系统通常包含一个或多个技能或与一个或多个技能相关联。在一些实施例中,这些技能是被配置为与用户交互并完成特定类型的任务(如跟踪库存、提交时间卡、创建费用报告、订购食物、查询银行账户、进行预约、购买小部件等)的单独的聊天机器人(称为技能机器人)。例如,针对图1所描绘的实施例,数字助理或聊天机器人系统106包括技能116-1、116-2等。出于本公开的目的,术语“一个技能”和“多个技能”分别与术语“一个技能机器人”和“多个技能机器人”同义地使用。
与数字助理相关联的每个技能通过与用户的会话帮助数字助理的用户完成任务,其中,会话可以包括由用户提供的文本或音频输入与由技能机器人提供的响应的组合。这些响应可以呈以下形式:给用户的文本或音频消息和/或使用呈现给用户以供用户进行选择的简单的用户界面元素(例如,选择列表)。
存在各种方法可以将技能或技能机器人与数字助理相关联或将其添加到数字助理。在一些实例中,可以由企业开发技能机器人,并且然后将其添加到使用DABP 102的数字助理。在其他实例中,可以使用DABP 102开发并创建技能机器人,并且然后将其添加到使用DABP 102创建的数字助理。在又一些其他实例中,DABP 102提供在线数字商店(称为“技能商店”),该在线数字商店提供指向各种各样的任务的多个技能。通过技能商店提供的技能还可以公开(expose)各种云服务。为了将技能添加到正使用DABP 102生成的数字助理,DABP 102的用户可以经由DABP 102访问技能商店、选择所需的技能、并指示将所选技能添加到使用DABP 102创建的数字助理。来自技能商店的技能可以按原样或以修改的形式添加到数字助理(例如,DABP 102的用户可以选择并复制技能商店提供的特定技能机器人、对所选技能机器人进行定制或修改并且然后将修改后的技能机器人添加到使用DABP 102创建的数字助理)。
可以使用各种不同的架构来实施数字助理或聊天机器人系统。例如,在一些实施例中,使用DABP 102创建并部署的数字助理可以使用主机器人/次(或子)机器人范式或架构来实施。根据该范式,数字助理被实施为与作为技能机器人的一个或多个次机器人交互的主机器人。例如,在图1所描绘的实施例中,数字助理106包括主机器人114和作为主机器人114的次机器人的技能机器人116-1、116-2等。在一些实施例中,数字助理106自身被认为充当主机器人。
根据主-次机器人架构实施的数字助理使得数字助理的用户能够通过统一用户接口(即,经由主机器人)与多个技能交互。当用户与数字助理接洽时,主机器人接收到用户输入。然后,主机器人执行用于确定用户输入话语的含义的处理。然后,主机器人确定用户在话语中所请求的任务是否可以由主机器人自身处理,否则主机器人选择适当的技能机器人来处理用户请求并将会话路由到所选择的技能机器人。这使得用户能够通过公共的单个接口与数字助理进行会话,并且仍然提供使用被配置为执行特定任务的多个技能机器人的能力。例如,针对为企业开发的数字助理,数字助理的主机器人可以与具有特定功能的技能机器人接口连接,例如,用于执行与客户关系管理(CRM)有关的功能的CRM机器人、用于执行与企业资源规划(ERP)有关的功能的ERP机器人、用于执行与人力资本管理(HCM)有关的功能的HCM机器人等。这样,数字助理的最终用户或消费者只需要知道如何通过公共的主机器人接口访问数字助理,并且在后台提供了多个技能机器人来处理用户请求。
在一些实施例中,在主机器人/次机器人基础设施中,主机器人被配置为了解可用的技能机器人的列表。主机器人可以访问识别各种可用技能机器人的元数据,并且对于每个技能机器人,访问包括可以由技能机器人执行的任务的技能机器人的能力。在接收到话语形式的用户请求时,主机器人被配置为从多个可用技能机器人中识别或预测可以最好地服务或处理用户请求的特定技能机器人。然后,主机器人将话语(或话语的一部分)路由到该特定技能机器人以进行进一步的处理。因此,控制从主机器人流动到技能机器人。主机器人可以支持多个输入通道和输出通道。
虽然图1的实施例示出了数字助理106包括主机器人114以及技能机器人116-1、116-2和116-3,但这并不旨在是限制性的。数字助理可以包括提供数字助理的功能的各种其他部件(例如,其他系统和子系统)。这些系统和子系统可以仅以软件(例如,存储在计算机可读介质上并且可由一个或多个处理器执行的代码、指令)、仅以硬件或在使用软件和硬件的组合的实施方式中实施。
DABP 102提供了使DABP 102的用户能够创建数字助理(包括与数字助理相关联的一个或多个技能机器人)的基础设施以及各种服务和特征。在一些实例中,可以通过克隆现有技能机器人来创建技能机器人,例如,克隆由技能商店提供的技能机器人。如前所述,DABP 102提供技能商店或技能目录,该技能商店或技能目录提供用于执行各种任务的多个技能机器人。DABP 102的用户可以从技能商店克隆技能机器人。根据需要,可以对克隆技能机器人进行修改或定制。在一些其他实例中,DABP 102的用户使用由DABP 102提供的工具和服务从头开始创建技能机器人。如前所述,DABP 102所提供的技能商店或技能目录可以提供用于执行各种任务的多个技能机器人。
在一些实施例中,在高层级上,创建或定制技能机器人涉及以下步骤:
(1)为新技能机器人配置设置
(2)为技能机器人配置一个或多个意图
(3)针对一个或多个意图配置一个或多个实体
(4)训练技能机器人
(5)为技能机器人创建对话流
(6)根据需要将自定义部件添加到技能机器人
(7)测试并部署技能机器人
下文简要描述了上述每个步骤。
(1)为新技能机器人配置设置——可以为技能机器人配置各种设置。例如,技能机器人设计者可以为正在创建的技能机器人指定一个或多个调用名称。然后,这些调用名称可以被数字助理的用户用来显式调用技能机器人。例如,用户可以在用户话语中输入调用名称,以显式调用对应的技能机器人。
(2)为技能机器人配置一个或多个意图和相关联的示例话语——技能机器人设计者为正在创建的技能机器人指定一个或多个意图(也称为机器人意图)。然后基于这些指定的意图来训练技能机器人。这些意图表示技能机器人被训练为针对输入话语推断出的类别或分类。在接收到话语时,经训练的技能机器人推断该话语的意图,其中,所推断出的意图是从用于训练技能机器人的预定义意图集中选择的。然后,技能机器人基于为话语推断的意图来采取对该话语做出响应的适当动作。在一些实例中,技能机器人的意图表示技能机器人可以为数字助理的用户执行的任务。每个意图被赋予意图标识符或意图名称。例如,对于针对银行训练的技能机器人,为该技能机器人指定的意图可以包括“CheckBalance(查询余额)”、“TransferMoney(转账)”、“DepositCheck(存款查询)”等。
对于为技能机器人定义的每个意图,技能机器人设计者还可以提供表示并说明意图的一个或多个示例话语。这些示例话语旨在表示用户可以针对该意图向技能机器人输入的话语。例如,针对CheckBalance意图,示例话语可以包括“What's my savings accountbalance?(我的储蓄账户余额是多少?)”、“How much is in my checking account?(我的活期存款账户里有多少钱?)”、“How much money do I have in my account(我的账户里有多少钱)”等。因此,可以将典型的用户话语的各种排列指定为针对意图的示例话语。
这些意图及其相关联的示例话语用作用于训练技能机器人的训练数据。可以使用各种不同的训练技术。作为该训练的结果,生成机器学习模型,该机器学习模型被配置为将话语作为输入并输出由机器学习模型针对该话语推断出的意图。在一些实例中,将输入话语提供给意图分析引擎,该意图分析引擎被配置为使用经训练的模型来预测或推断输入话语的意图。然后,技能机器人可以基于推断出的意图采取一个或多个动作。
(3)针对技能机器人的一个或多个意图配置实体——在一些实例中,可能需要另外的上下文来使技能机器人能够适当地响应用户话语。例如,可能存在其中用户输入话语解析成技能机器人中的相同意图的情况。例如,在以上示例中,话语“What’s my savingsaccount balance?”和“How much is in my checking account?”均解析成相同的CheckBalance意图,但是这些话语是请求不同事情的不同请求。为了阐明这种请求,将一个或多个实体添加到意图。使用银行业技能机器人的示例,被称为账户类型(AccountType)的实体(该实体定义了被称为“checking(活期存款)”和“saving(储蓄)”的值)可以使技能机器人能够对用户请求进行语法分析并适当地作出响应。在上面的示例中,虽然这些话语解析为相同的意图,但是这两个话语的与AccountType实体相关联的值是不同的。这使技能机器人能够针对这两个话语执行可能不同的动作,尽管这两个话语解析为相同的意图。可以针对为技能机器人配置的某些意图指定一个或多个实体。因此,实体用于向意图本身添加上下文。实体帮助更充分地描述意图并使技能机器人能够完成用户请求。
在一些实施例中,有两种类型的实体:(a)DABP 102提供的内置实体;以及(2)可以由技能机器人设计者指定的自定义实体。内置实体是可以与各种机器人一起使用的通用实体。内置实体的示例包括但不限于与时间、日期、地址、数字、电子邮件地址、持续时间、循环时间段、货币、电话号码、URL等有关的实体。自定义实体用于更多定制的应用程序。例如,针对银行业技能,AccountType实体可以被技能机器人设计者定义为通过检查用户对关键词(如活期存款、储蓄、信用卡等)的输入来实现各种银行业交易。
(4)训练技能机器人——技能机器人被配置为接收呈话语形式的用户输入,语法分析或以其他方式处理接收到的输入并且识别或选择与接收到的用户输入相关的意图。如上文所指示的,必须为此对技能机器人进行训练。在一些实施例中,基于为技能机器人配置的意图和与意图相关联的示例话语(统称为训练数据)来训练技能机器人,使得技能机器人可以将用户输入话语解析成其所配置的意图中的一个意图。在一些实施例中,技能机器人使用机器学习模型,该机器学习模型是使用训练数据训练的并且允许技能机器人辨别用户说出(或者在一些情况下,正试图说出)的内容。DABP 102提供可以被技能机器人设计者用于训练技能机器人的各种不同的训练技术,包括各种基于机器学习的训练技术、基于规则的训练技术和/或其组合。在一些实施例中,训练数据的一部分(例如,80%)用于训练技能机器人模型并且另一部分(例如,其余20%)用于测试或验证模型。一旦被训练,经训练的模型(有时也称为经训练的技能机器人)便可以用于处理用户的话语并对用户的话语作出响应。在某些情况下,用户的话语可以是仅需要单一的回答并且无需另外的会话的问题。为了处理这种情况,可以为技能机器人定义Q&A(问与答)意图。这使技能机器人能够在不必更新对话定义的情况下输出对用户请求的回复。以与常规意图类似的方式创建Q&A意图。用于Q&A意图的对话流可以与用于常规意图的对话流不同。
(5)为技能机器人创建对话流——为技能机器人指定的对话流描述了在响应于接收到的用户输入来解析技能机器人的不同意图时,技能机器人如何反应。对话流定义了技能机器人将采取的操作或动作,例如,技能机器人如何响应用户话语、技能机器人如何提示用户进行输入、技能机器人如何返回数据。对话流像技能机器人所遵循的流程图。技能机器人设计者使用一种语言(如markdown语言)指定对话流。在一些实施例中,可以使用被称为OBotML的YAML版本来指定技能机器人的对话流。用于技能机器人的对话流定义充当会话本身的模型,该模型是使技能机器人设计者编排技能机器人与技能机器人所服务的用户之间的交互的模型。
在一些实施例中,技能机器人的对话流定义包含三个部分:
(a)上下文部分
(b)默认转变部分
(c)状态部分
上下文部分——技能机器人设计者可以在上下文部分中定义会话流中使用的变量。可以在上下文部分中命名的其他变量包括但不限于:针对错误处理的变量、针对内置实体或自定义实体的变量、使技能机器人能够识别并保存用户偏好的用户变量等。
默认转变部分——技能机器人的转变可以在对话流状态部分中或在默认转变部分中定义。在默认转变部分中定义的转变充当后备,并且当状态内没有定义适用的转变或触发状态转变所需的条件无法得到满足时被触发。默认转变部分可以用于定义允许技能机器人得体地处理非预期用户动作的路由。
状态部分——对话流及其有关操作被定义为管理对话流内的逻辑的暂时状态的序列。对话流定义内的每个状态节点都命名提供对话中该点处所需的功能的部件。因此,状态是围绕部件构建的。状态包含特定于部件的性质并且定义了在部件执行之后被触发的向其他状态的转变。
可以使用状态部分来处理特殊情况场景。例如,您有时可能想要为用户提供用于暂时让用户与其接洽的第一技能进行数字助理内的第二技能中的事情的选项。例如,如果用户忙于与购物技能进行会话(例如,用户已做出针对购买的一些选择),则用户可能想要跳转至银行业技能(例如,用户可能想要确保他/她有足够的钱用于购买)并且然后返回到购物技能以完成用户的订单。为了解决这一点,第一技能中的动作可以被配置为发起与相同数字助理中的不同的第二技能的交互并且然后返回到原始流。
(6)将自定义部件添加到技能机器人——如上文所描述的,技能机器人的对话流中指定的状态对对应于状态提供所需的功能的部件进行了命名。部件使技能机器人能够执行功能。在一些实施例中,DABP 102提供用于执行各种各样的功能的一组预先配置的部件。技能机器人设计者可以选择这些预配置的部件中的一个或多个并且将它们与技能机器人的对话流中的状态相关联。技能机器人设计者还可以使用DABP 102提供的工具创建定制的或新的部件并且将定制部件与技能机器人的对话流中的一个或多个状态相关联。
(7)测试并部署技能机器人——DABP 102提供使技能机器人设计者能够测试正在开发的技能机器人的几个特征。然后,可以将技能机器人部署并包括在数字助理中。
虽然以上描述描述了如何创建技能机器人,但是还可以使用类似的技术来创建数字助理(或主机器人)。在主机器人或数字助理水平,可以为数字助理配置内置系统意图。这些内置系统意图用于识别在不调用与数字助理相关联的技能机器人的情况下数字助理自身(即,主机器人)可以处理的一般任务。针对主机器人定义的系统意图的示例包括:(1)Exit(退出):当用户发出期望退出数字助理中的当前会话或上下文的信号时适用;(2)Help(帮助):当用户请求帮助或定向时适用;以及(3)UnresolvedIntent(未解析意图):适用于与退出意图和帮助意图不太匹配的用户输入。数字助理还存储关于与数字助理相关联的一个或多个技能机器人的信息。该信息使主机器人能够选择用于处理话语的特定技能机器人。
在主机器人或数字助理水平,当用户向数字助理输入短语或话语时,数字助理被配置为执行处理以确定如何路由话语和相关会话。数字助理使用路由模型来确定这一点,该路由模型可以是基于规则的、基于AI的或其组合。数字助理使用路由模型来确定对应于用户输入话语的会话是要被路由到特定技能以进行处理、要由数字助理或主机器人自身按照内置系统意图进行处理、还是要被处理为当前会话流中的不同状态。
在一些实施例中,作为此处理的一部分,数字助理确定用户输入话语是否使用其调用名称显式地识别技能机器人。如果调用名称存在于用户输入中,则调用名称被视为对应于调用名称的对技能机器人的显式调用。在这种场景下,数字助理可以将用户输入路由到显式调用的技能机器人以进行进一步处理。在一些实施例中,如果不存在特定调用或显式调用,则数字助理评估接收到的用户输入话语并针对与数字助理相关联的系统意图和技能机器人计算置信度得分。针对技能机器人或系统意图计算的得分表示用户输入表示技能机器人被配置为执行的任务或表示系统意图的可能性有多大。选择相关联的计算的置信度得分超过阈值(例如,置信度阈值路由参数)的任何系统意图或技能机器人作为候选以进行进一步的评估。然后,数字助理从所识别的候选中选择特定的系统意图或技能机器人用于对用户输入话语的进一步处理。在一些实施例中,在一个或多个技能机器人被识别为候选之后,对与那些候选技能相关联的意图进行评估(根据针对每个技能的意图模型),并且确定针对每个意图的置信度得分。通常,置信度得分超过阈值(例如,70%)的任何意图被视为候选意图。如果选择了特定技能机器人,则将用户话语路由到该技能机器人以进行进一步处理。如果选择了系统意图,则由主机器人自身根据所选的系统意图执行一个或多个动作。
2.主机器人系统的部件
图2是根据一些实施例的主机器人(MB)系统200的简化框图。MB系统200可以仅以软件、仅以硬件、或以硬件和软件的组合实施。MB系统200包括预处理子系统210、多个意图子系统(MIS)220、显式调用子系统(EIS)230、技能机器人调用器240和数据存储250。图2中描绘的MB系统200仅仅是主机器人中的部件布置的示例。本领域技术人员将认识到许多可能的变化、替代方案和修改。例如,在一些实施方式中,MB系统200可以具有比图2所示的那些系统或部件更多或更少的系统或部件,可以组合两个或更多个子系统,或者可以具有不同的子系统配置或布置。
预处理子系统210从用户接收话语“A”202,并通过语言检测器212和语言语法分析器214来处理话语。如上文所指示的,可以以包括音频或文本的各种方式来提供话语。话语202可以是句子片段、完整句子、多个句子等。话语202可以包括标点符号。例如,如果话语202作为音频提供,则预处理子系统210可以使用将标点符号(例如,逗号、分号、句号等)插入到结果文本中的语音文本转换器(未示出)来将音频转换为文本。
语言检测器212基于话语202的文本来检测话语202的语言。处理话语202的方式取决于语言,因为每种语言都有其自己的语法和语义。在分析话语的句法和结构时,会考虑语言之间的差异。
语言语法分析器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。
如以上所指示的,话语202可以包括多于一个句子。出于检测多个意图和显式调用的目的,话语202可以被视为单个单元,即使它包括多个句子。然而,在一些实施例中,预处理可以例如由预处理子系统210执行,以识别多个句子中的单个句子以用于多个意图分析和显式调用分析。通常,无论话语202是在单个句子的水平上处理还是作为包括多个句子的单个单元处理,MIS 220和EIS 230产生的结果都基本相同。
MIS 220确定话语202是否表示多个意图。尽管MIS 220可以检测到话语202中存在的多个意图,但由MIS 220执行的处理不涉及确定话语202的意图是否与已为机器人配置的任何意图相匹配。替代地,确定话语202的意图是否与机器人意图相匹配的处理可以由MB系统200的意图分类器242或由技能机器人的意图分类器(例如,如图3的实施例所示出的)执行。MIS 220执行的处理假设存在可以处理话语202的机器人(例如,特定技能机器人或主机器人本身)。因此,由MIS 220执行的处理不需要知道聊天机器人系统中有哪些机器人(例如,与主机器人注册的技能机器人的身份),也不需要知道已经为特定机器人配置了什么意图。
为了确定话语202包括多个意图,MIS 220应用数据存储250中的一组规则252中的一个或多个规则。应用于话语202的规则取决于话语202的语言并且可以包括指示存在多个意图的句子模式。例如,句子模式可以包括连接句子的两个部分(例如,连词)的并列连接词,其中,这两个部分对应于不同的意图。如果话语202与句子模式相匹配,则可以推断出话语202表示多个意图。应该注意的是,具有多个意图的话语不一定具有不同的意图(例如,指向不同机器人或指向同一机器人内的不同意图的意图)。相反,话语可以有相同意图的不同实例,例如“Place a pizza order using payment account X,then place a pizzaorder using payment account Y(使用支付账户X下披萨订单,然后使用支付账户Y下披萨订单)”。
作为确定话语202表示多个意图的一部分,MIS 220还确定话语202的哪部分与每个意图相关联。MIS 220为包含多个意图的话语中所表示的每个意图构建用于单独处理的新话语来代替原始话语(例如,话语“B”206和话语“C”208,如图2描绘的)。因此,原始话语202可以被拆分成一次处理一个的两个或更多个单独话语。MIS 220使用提取的信息205和/或根据对话语202本身的分析来确定应该首先处理两个或更多个话语中的哪一个。例如,MIS 220可以确定话语202包含指示应该首先处理特定意图的标记词。与该特定意图相对应的新形成的话语(例如,话语206或话语208中的一个)将首先被发送以供EIS 230进一步处理。在由第一个话语触发的会话已经结束(或已被暂时暂停)之后,然后可以将下一个最高优先级的话语(例如,话语206或话语208中的另一个话语)发送到EIS 230进行处理。
EIS 230确定其接收的话语(例如,话语206或话语208)是否包含技能机器人的调用名称。在一些实施例中,聊天机器人系统中的每个技能机器人被指派有将该技能机器人与聊天机器人系统中的其他技能机器人区分开的唯一调用名称。调用名称列表可以作为技能机器人信息254的一部分保存在数据存储250中。当话语包含与调用名称相匹配的词时,话语被视为显式调用。如果机器人未被显式调用,则EIS 230接收到的话语被视为是非显式调用话语234并且被输入到主机器人的意图分类器(例如,意图分类器242)以确定使用哪个机器人来处理话语。在一些实例中,意图分类器342将确定主机器人应该处理非显式调用话语。在其他实例中,意图分类器242将确定将话语路由到其以进行处理的技能机器人。
EIS 230所提供的显式调用功能具有多个优点。它可以减少主机器人必须执行的处理量。例如,当存在显式调用时,主机器人可以不必(例如,使用意图分类器242)进行任何意图分类分析,或者可以不得不进行简化的意图分类分析以选择技能机器人。因此,显式调用分析可以使得能够选择特定技能机器人而无需求助于意图分类分析。
而且,可能存在多个技能机器人之间的功能重叠的情况。例如,如果两个技能机器人处理的意图重叠或彼此非常接近,则可能会发生这种情况。在这种情况下,主机器人可能难以仅基于意图分类分析来识别要选择多个技能机器人中的哪一个。在这种场景下,显式调用使得对于要使用的特定技能机器人没有歧义。
除了确定话语是显式调用之外,EIS 230还负责确定是否应该将话语的任何部分用作对被显式调用的技能机器人的输入。具体地,EIS 230可以确定话语的一部分是否与调用无关。EIS 230可以通过分析话语和/或分析提取的信息205来执行该确定。EIS 230可以将话语的与调用无关的部分发送到被调用的技能机器人,而不是发送EIS 230接收到的整个话语。在一些实例中,被调用的技能机器人的输入简单地通过删除话语的与调用相关联的任何部分来形成。例如,“I want to order pizza using Pizza Bot(我想要使用披萨机器人订购披萨)”可以缩短为“I want to order pizza(我想要订购披萨)”,因为“usingPizza Bot(使用披萨机器人)”与调用披萨机器人有关,但与要由披萨机器人执行的任何处理无关。在一些实例中,EIS 230可以重新格式化要发送给被调用的机器人的部分,例如,以形成完整的句子。因此,EIS 230不仅确定存在显式调用,而且当存在显式调用时确定要向技能机器人发送什么。在一些实例中,可能没有任何文本要输入到被调用的机器人。例如,如果话语是“Pizza Bot(披萨机器人)”,则EIS 230可以确定披萨机器人正在被调用,但没有文本要由披萨机器人处理。在这样的场景中,EIS 230可以向技能机器人调用器240指示没有要发送的内容。
技能机器人调用器240以各种方式调用技能机器人。例如,技能机器人调用器240可以响应于接收到作为显式调用的结果已经选择特定技能机器人的指示235来调用机器人。指示235可以由EIS 230连同显式调用的技能机器人的输入一起发送。在这种场景下,技能机器人调用器240将对会话的控制交给显式调用的技能机器人。显式调用的技能机器人将通过将输入视为独立话语来确定对来自EIS 230的输入的适当响应。例如,响应可以是执行特定动作或在特定状态下开始新会话,其中新会话的初始状态取决于从EIS 230发送的输入。
技能机器人调用器240可以调用技能机器人的另一种方式是通过使用意图分类器242进行隐式调用。可以使用机器学习和/或基于规则的训练技术来训练意图分类器242,以确定话语表示特定技能机器人被配置为执行的任务的可能性。意图分类器242在不同类别上进行训练,每个技能机器人一个类别。例如,每当向主机器人注册新技能机器人时,与新技能机器人相关联的示例话语列表可以用于训练意图分类器242以确定特定话语表示新技能机器人可以执行的任务的可能性。作为该训练的结果产生的参数(例如,机器学习模型的一组参数值)可以存储为技能机器人信息254的一部分。
在一些实施例中,意图分类器242是使用机器学习模型实施的,如本文进一步详细描述的。对机器学习模型的训练可以涉及输入来自与各种技能机器人相关联的示例话语的至少一个话语子集,以生成关于哪个机器人是用于处理任何特定训练话语的正确机器人的推断作为机器学习模型的输出。对于每个训练话语,可以提供对用于训练话语的正确机器人的指示作为基本事实信息。然后可以适配机器学习模型的行为(例如,通过反向传播)以最小化所生成的推断与基本事实信息之间的差异。
在一些实施例中,意图分类器242对于向主机器人注册的每个技能机器人确定指示技能机器人可以处理话语(例如,从EIS 230接收的非显式调用话语234)的可能性的置信度得分。意图分类器242还可以确定已配置的每个系统水平意图(例如,帮助、退出)的置信度得分。如果特定置信度得分满足一个或多个条件,则技能机器人调用器240将调用与该特定置信度得分相关联的机器人。例如,可能需要满足阈值置信度得分值。因此,意图分类器242的输出245是对系统意图的识别或对特定技能机器人的识别。在一些实施例中,除了满足阈值置信度得分值之外,置信度得分必须超过下一个最高置信度得分一定的赢裕量。当多个技能机器人的置信度得分各自超过阈值置信度得分值时,施加这样的条件将能够路由到特定技能机器人。
在基于对置信度得分的评估来识别机器人之后,技能机器人调用器240将处理移交给所识别的机器人。在系统意图的情况下,所识别的机器人是主机器人。否则,所识别的机器人是技能机器人。进一步地,技能机器人调用器240将确定要提供什么作为所识别的机器人的输入247。如以上所指示的,在显式调用的情况下,输入247可以基于话语的不与调用相关联的一部分,或输入247可以是什么都没有(例如,空字符串)。在隐式调用的情况下,输入247可以是整个话语。
数据存储250包括一个或多个计算设备,该一个或多个计算设备存储由主机器人系统200的各种子系统使用的数据。如以上所解释的,数据存储250包括规则252和技能机器人信息254。规则252包括例如用于由MIS 220确定话语何时表示多个意图以及如何拆分表示多个意图的话语的规则。规则252进一步包括用于由EIS 230确定明确地调用技能机器人的话语的哪些部分要发送给技能机器人的规则。技能机器人信息254包括聊天机器人系统中的技能机器人的调用名称,例如,向特定主机器人注册的所有技能机器人的调用名称的列表。技能机器人信息254还可以包括由意图分类器242用于确定聊天机器人系统中的每个技能机器人的置信度得分的信息,例如,机器学习模型的参数。
3.技能机器人系统的部件
图3是根据一些实施例的技能机器人系统300的简化框图。技能机器人系统300是可以仅以软件实施、仅以硬件实施、或以硬件和软件的组合实施的计算系统。在如图1中所描绘的实施例的一些实施例中,技能机器人系统300可以用于在数字助理内实施一个或多个技能机器人。
技能机器人系统300包括MIS 310、意图分类器320和会话管理器330。MIS 310类似于图2中的MIS 220并提供类似的功能,包括可操作地使用数据存储350中的规则352来确定:(1)话语是否表示多个意图,并且如果是,则(2)如何将话语拆分成针对多个意图中的每个意图的单独话语。在一些实施例中,由MIS 310应用的用于检测多个意图和用于拆分话语的规则与MIS 220所应用的规则相同。MIS 310接收话语302和提取的信息304。提取的信息304类似于图2中的提取的信息205,并且可以使用语言语法分析器214或技能机器人系统300本地的语言语法分析器来生成。
意图分类器320可以以与以上结合图2的实施例所讨论的意图分类器242类似的方式被训练,并在此进一步详细描述。例如,在一些实施例中,意图分类器320是使用机器学习模型来实施的。针对特定技能机器人,使用与该特定技能机器人相关联的示例话语的至少一个子集作为训练话语来训练意图分类器320的机器学习模型。每个训练话语的基本事实将是与训练话语相关联的特定机器人意图。
话语302可以直接从用户接收或通过主机器人供应。当通过主机器人供应话语302时(例如,作为通过图2中描绘的实施例中的MIS 220和EIS 230处理的结果),可以绕过MIS310以避免重复已经由MIS 220执行的处理。然而,如果直接从用户接收话语302(例如,在路由到技能机器人之后发生的会话期间),则MIS 310可以处理话语302以确定话语302是否代表多个意图。如果是,则MIS 310应用一个或多个规则以将话语302拆分为针对每个意图的单独话语,例如话语“D”306和话语“E”308。如果话语302不表示多个意图,则MIS 310将话语302转发到意图分类器320以进行意图分类,而不拆分话语302。
意图分类器320被配置为将接收到的话语(例如,话语306或308)和与技能机器人系统300相关联的意图相匹配。如以上所解释的,技能机器人可以被配置有一个或多个意图,每个意图包括与该意图相关联并用于训练分类器的至少一个示例话语。在图2的实施例中,主机器人系统200的意图分类器242被训练来确定各个技能机器人的置信度得分和针对系统意图的置信度得分。类似地,可以训练意图分类器320来确定针对与技能机器人系统300相关联的每个意图的置信度得分。由意图分类器242执行的分类是在机器人水平,而由意图分类器320执行的分类是在意图水平并且因此更细粒度。意图分类器320可以访问意图信息354。对于与技能机器人系统300相关联的每个意图,意图信息354包括表示意图并说明意图的含义并且通常与可由该意图执行的任务相关联的话语列表。意图信息354可以进一步包括作为在该话语列表上进行训练的结果而产生的参数。
会话管理器330接收对特定意图的指示322作为意图分类器320的输出,该指示由意图分类器320识别为与输入到意图分类器320的话语最佳匹配。在一些实例中,意图分类器320不能确定任何匹配。例如,如果话语指向系统意图或不同技能机器人的意图,则由意图分类器320计算的置信度得分可能降到阈值置信度得分值以下。当发生这种情况时,技能机器人系统300可以将话语转交给主机器人进行处理,例如,路由到不同技能机器人。然而,如果意图分类器320在识别技能机器人内的意图方面是成功的,则会话管理器330将发起与用户的会话。
由会话管理器330发起的会话是特定于由意图分类器320识别的意图的会话。例如,会话管理器330可以使用被配置为针对所识别的意图执行对话流的状态机来实施。状态机可以包括默认起始状态(例如,当在没有任何附加输入的情况下调用意图时)和一个或多个附加状态,其中每个状态与将由技能机器人执行的动作(例如,执行购买交易)和/或要呈现给用户的对话(例如,问题、响应)相关联。因此,会话管理器330可以在接收到识别到意图的指示322时确定动作/对话335,并且可以响应于在会话期间接收到的后续话语来确定附加动作或对话。
数据存储350包括一个或多个计算设备,该一个或多个计算设备存储由技能机器人系统300的各种子系统使用的数据。如图3所描绘的,数据存储350可以包括规则352和意图信息354。在一些实施例中,数据存储350可以集成到主机器人或数字助理的数据存储中,例如图2中的数据存储250。
4.使用经训练的意图分类器对话语进行分类的方案
图4示出了图示被配置为基于文本数据405来训练和利用分类器(例如,关于图2和图3描述的意图分类器242或320)的聊天机器人系统400的各方面的框图。如图4所示,由该示例中的聊天机器人系统400执行的文本分类包括各个阶段:机器学习模型训练阶段410;技能机器人调用阶段415,以用于确定话语表示特定技能机器人被配置为执行的任务的可能性;以及意图预测阶段420,以用于将话语分类为一个或多个意图。机器学习模型训练阶段410建立和训练供其他阶段使用的一个或多个机器学习模型425a-425n(‘n’表示任何自然数)(该机器学习模型在本文中可以单独称为机器学习模型425或统称为机器学习模型425)。例如,机器学习模型425可以包括用于确定话语表示特定技能机器人被配置为执行的任务的可能性的模型、用于根据第一类型技能机器人的话语来预测意图的另一个模型、以及根据第二类型技能机器人的话语来预测意图的另一个模型。在根据本公开的其他示例中仍可以实施其他类型的机器学习模型。
机器学习模型425可以是机器学习(“ML”)模型,如卷积神经网络(“CNN”)(例如,初始神经网络、残差神经网络(“Resnet”));或递归神经网络,例如长短期记忆(“LSTM”)模型或门控递归单元(“GRU”)模型;深度神经网络(“DNN”)的其他变型(例如,用于单意图分类的多标签n二元DNN分类器或多类DNN分类器。机器学习模型425也可以是为自然语言处理而训练的任何其他合适的ML模型,如朴素贝叶斯分类器、线性分类器、支持向量机、诸如随机森林模型的装袋模型(Bagging Model)、提升模型(Boosting Model)、浅层神经网络、或这种技术中的一种或多种的组合——例如,CNN-HMM或MCNN(多尺度卷积神经网络)。聊天机器人系统400可以采用相同类型的机器学习模型或不同类型的机器学习模型来确定特定技能机器人被配置为执行的任务的可能性、根据第一类型技能机器人的话语来预测意图、以及根据第二类型技能机器人的话语来预测意图。在根据本公开的其他示例中仍可以实施其他类型的机器学习模型。
为了训练各种机器学习模型425,训练阶段410由三个主要部分构成:数据集准备430、特征工程435和模型训练440。数据集准备430包括加载数据资产445、将数据资产445拆分为训练集和验证集445a-n以使得系统可以训练和测试机器学习模型425、以及执行基本预处理的过程。数据资产445可以至少包括来自与各种技能机器人相关联的示例话语的话语子集。如上文所指示的,可以以包括音频或文本的各种方式来提供话语。话语可以是句子片段、完整句子、多个句子等。例如,如果话语作为音频提供,则数据准备430可以使用将标点符号(例如,逗号、分号、句号等)插入到结果文本中的语音文本转换器(未示出)来将音频转换为文本。在一些实例中,示例话语由客户端或客户提供。在其他实例中,示例话语是从先前的话语库中自动生成的(例如,从库中识别特定于聊天机器人要学习的技能的话语)。机器学习模型425的数据资产445可以包括输入文本或音频(或者文本或音频帧的输入特征)和与输入文本或音频(或输入特征)相对应的作为矩阵或值表的标签450。例如,对于每个训练话语,可以提供对用于训练话语的正确机器人的指示作为标签450的基本事实信息。然后可以适配机器学习模型425的行为(例如,通过反向传播)以最小化所生成的推断与基本事实信息之间的差异。可替代地,针对特定技能机器人,可以至少使用与该特定技能机器人相关联的示例话语的子集作为训练话语来训练机器学习模型425。针对每个训练话语的标签450的基本事实信息将是与训练话语相关联的特定机器人意图。
在各种实施例中,特征工程435包括将数据资产445变换成特征向量和/或使用数据资产445来创建新特征。特征向量可以包括计数向量作为特征,词频-逆文档频率(TF-IDF)向量作为特征(如词级别、n元级别或字符级别)、词嵌入作为特征、文本/NLP作为特征、主题模型作为特征、或其组合。计数向量是数据资产445的矩阵符号,其中,每一行表示一个话语,每一列表示来自话语的一个词,并且每个单元格表示特定词在话语中的频率计数。TF-IDF得分表示某个词在话语中的相对重要性。词嵌入是一种使用密集向量表示来表示词和话语的形式。向量空间内词的位置是从文本中学习的,并且基于使用该词时围绕该词的词。基于文本/NLP的特征可以包括话语中的词数、话语中的字符数、平均词密度、标点符号数、大写字母数、标题词数、词性标签(例如,名词和动词)的频率分布、或其任何组合。主题建模是一种从包含话语集合中的最佳信息的该话语集合中识别词组(称为主题)的技术。
在各种实施例中,模型训练440包括使用在特征工程435中创建的特征向量和/或新特征来训练分类器。在一些实例中,训练过程包括迭代操作以找到机器学习模型425的一组参数,该组参数使机器学习模型425的成本函数最小化或最大化(例如,使损失函数或误差函数最小化)。每次迭代可以涉及找到机器学习模型425的一组参数,使得使用该组参数的成本函数的值小于或大于在先前迭代中使用另一组参数的成本函数的值。可以构建成本函数以衡量使用机器学习模型425预测的输出与数据资产445中包含的标签450之间的差异。一旦识别出该组参数,机器学习模型425就已经被训练并且可以根据设计用于预测。
在各种实施例中,训练阶段410进一步包括logit确定455。logit确定455被配置为对话语与可解析分类相关联的概率应用logit函数。为了确定话语与不可解析分类相关联的概率,logit确定455可以使用增强型logit值而不是logit函数。可以对增强型logit值进行处理(例如,通过激活函数)以确定话语的分类,包括话语与具有未解析意图相对应的分类。logit确定455使用增强型logit值可以提高模型和聊天机器人的性能,特别是预测话语是否在范围外或域外。虽然logit确定455在图4中被示为训练阶段的子过程,但在一些实施例中,如当与不可解析分类相对应的增强型logit值是可以在对意图分类器的训练期间动态调整的学习值时,logit确定455可以形成模型训练440的一部分。另外和/或可替代地,可以通过意图分类器的超参数优化来调谐增强型logit值。下文进一步描述了logit确定455的实施细节。
除了数据资产445、标签450、特征向量和/或新特征之外,还可以采用其他技术和信息来细化机器学习模型425的训练过程。例如,可以将特征向量和/或新特征组合在一起以帮助提高分类器或模型的准确度。另外或可替代地,可以调整或优化超参数,例如,可以微调诸如树长度、叶、网络参数等多个参数以获得最佳拟合模型。尽管本文描述的训练机制主要集中于训练机器学习模型425。这些训练机制还可以用于微调从其他数据资产训练的现有机器学习模型425。例如,在一些情况下,可能已经使用特定于另一个技能机器人的话语对机器学习模型425进行了预训练。在这些情况下,可以使用数据资产445来再训练机器学习模型425,如本文所讨论的。
机器学习模型训练阶段410输出经训练的机器学习模型425,包括任务机器学习模型460和意图机器学习模型465。任务机器学习模型460可以在技能机器人调用阶段415中使用以确定话语表示特定技能机器人被配置为执行的任务470的可能性,并且意图机器学习模型465可以在意图预测阶段420中使用以将话语分类为一个或多个意图475。在一些实例中,技能机器人调用阶段415和意图预测阶段420可以在一些示例中利用单独的模型独立地进行。例如,经训练的意图机器学习模型465可以在意图预测阶段420中使用以预测技能机器人的意图,而无需首先在技能机器人调用阶段415中识别技能机器人。类似地,任务机器学习模型460可以在技能机器人调用阶段415中使用以预测要用于话语的任务或技能机器人,而无需在意图预测阶段420中识别话语的意图。
可替代地,技能机器人调用阶段415和意图预测阶段420可以顺序地进行,其中,一个阶段使用另一个阶段的输出作为输入,或者针对特定技能机器人,一个阶段基于另一个阶段的输出以特定方式被调用。例如,对于给定的文本数据405,技能机器人调用器可以使用技能机器人调用阶段415和任务机器学习模型460通过隐式调用来调用技能机器人。可以使用机器学习和/或基于规则的训练技术来训练任务机器学习模型460,以确定话语表示特定技能机器人470被配置为执行的任务的可能性。然后对于识别出或调用的技能机器人和给定文本数据405,意图预测阶段420和意图机器学习模型465可以用于将接收到的话语(例如,给定数据资产445内的话语)与和技能机器人相关联的意图475相匹配。如本文所解释的,技能机器人可以配置有一个或多个意图,每个意图包括与该意图相关联并用于训练分类器的至少一个示例话语。在一些实施例中,技能机器人调用阶段415和在主机器人系统中使用的任务机器学习模型460被训练用于确定各个技能机器人的置信度得分和系统意图的置信度得分。类似地,意图预测阶段420和意图机器学习模型465可以被训练用于确定与技能机器人系统相关联的每个意图的置信度得分。由技能机器人调用阶段415和任务机器学习模型460执行的分类是在机器人级别,而由意图预测阶段420和意图机器学习模型465执行的分类是在意图级别并且因此是更细粒度的。
C.Logit函数
图5图示了根据一些实施例的示例神经网络500的示意图。神经网络500可以是由训练系统训练并由聊天机器人系统实施的机器学习模型,其中,机器学习模型被训练成预测话语是否与特定意图分类相对应。在一些实例中,神经网络500包括输入层502、隐藏层504和输出层506。在一些实例中,神经网络500包括多个隐藏层,其中,隐藏层504与神经网络的最终隐藏层相对应。
输入层502可以接收输入数据或输入数据的表示(例如,表示话语的n维值阵列)并且将一个或多个学习的参数应用于输入数据以生成一组输出(例如,一组数值)。该组输出可以由隐藏层504进行处理。
隐藏层504可以包括一个或多个学习的参数,该一个或多个学习的参数将该组输出变换到不同的特征空间,在该特征空间中来自不同分类的输入数据点被更好地分离。
输出层506可以包括分类层,该分类层将来自隐藏层的输出映射到logit值,其中,每个值与一个特定分类(例如,可解析分类、不可解析分类)相对应。在一些实例中,输出层506包括用于将logit值约束为总和为1的一组概率值的激活函数。因此,由分类层(logit函数)为每个分类生成的logit值然后可以由输出层的激活函数(本文也称为“激活层”)处理以为话语预测分类。
作为从一组输出值预测单个意图的一部分,机器学习模型可以在神经网络500的网络层中采用logit函数(“逻辑回归函数”的缩写)。输出层506可以包括用于将中间输出(例如,预测话语是否与特定分类相对应的概率值)变换为logit值的logit函数。在某些实例中,logit函数是几率的对数,该logit函数对于特定分类而言接收与零和一之间的概率值相对应的输入并且输出负无穷大到正无穷大之间的无界范围内的logit值。logit函数可以用于使该组中间输出中的每个中间输出归一化,使得所得的一组logit值可以表达为预测输出分类上的对称单峰概率分布。在数学术语中,logit函数被定义为其中,p是输入与特定分类相对应的概率。概率p可以设置在(0,1)之间的范围内。输出logit可以与范围在(-∞,+∞)之间的logit值相对应。以这种方式,机器学习模型可以采用logit函数,使得随后的激活函数可以从分类器的其他不太可能的输出预测最可能的输出(例如,意图)。
作为训练机器学习模型(例如,图3的意图分类器320)的一部分,该模型可以学习每个分类的质心,其中,质心是logit函数的一部分。特别地,质心可以用于对logit函数进行加权,例如,用作对分类器输出进行过滤的一部分以从话语中分离可能的意图。在数学术语中,与logit函数相关的方程可以是:logiti=f(x)*Wi,其中,x是模型的输入,f(x)是一组变换(例如,公路网络函数),并且Wi是意图“i”的质心,用作该意图的模型输出的加权因子。因此,对于意图分类器已经被训练成识别的已识别的意图集,例如,通过使用质心作为用于测量相邻聚类之间的距离的位置,质心在将话语分类为属于一个特定意图而不属于其他意图方面发挥作用。
然后,可以通过激活函数来处理为预测输出分类中的每一个生成的logit值以将logit值所表示的几率映射到所有预测输出分类上的概率分布中。作为激活函数的一个示例,softmax函数可以用于使网络的输出(例如,与订购_披萨分类相对应的logit值)归一化为所有预测输出分类(例如,订购_披萨、未解析意图)上的概率分布。
在应用softmax之前,logit值可以是负的,或者大于一;并且可能不相加为1。在应用softmax的情况下,每个输出将在区间(0,1)中,并且输出将加起来为1。此外,较大的输入logit值将与较大的概率相对应。在函数术语中,softmax函数表示为:i=1:K并且z是一组K个实数(z1:zK)。在一些情况下,softmax函数可以由基本因子b加权,从而创建更集中于最大输入值的位置周围的概率分布。在这种情况下,softmax函数为其中,β为实数。在意图分类的情况下,zi可以被设置为f(x)*wi。
对于一组话语,已解析意图可以符合针对其可以训练意图分类器的已识别意图中的任何意图。根据定义,未解析意图可以描述分类器无法自信地将其置于任何意图类别中的那些话语。作为说明性示例,被训练成处理披萨订单的技能机器人可以被训练成将话语分类为三种意图之一:“order_pizza(订购_披萨)”、“cancel_pizza(取消_披萨)”和“unresolvedIntent(未解析意图)”。例如,打算订购新披萨或修改现有订单的话语可以被分类在“order_pizza”下。相比之下,打算取消现有订单的话语可以被分类在“cancel_pizza”下。最后,打算其他事情的话语可以被分类在“unresolvedIntent”下。例如,“whatis the weather tomorrow(明天天气如何)”与披萨订单无关并且应该被分类在“unresolvedIntent”下。因此,在该示例中,“unresolvedIntent”是相对于“order_pizza”和“cancel_pizza”在否定意义上定义的。不匹配后者的话语符合前者。
因此,未解析意图可以被定义为涵盖不符合已识别的意图集的话语。这样,对于不可解析分类,分类器输出可以是分散的,而不是聚集的。虽然本文所描述的示例集中于意图预测,但是应该理解,可以类似地处理其他分类任务。例如,聊天机器人系统可以包括分类器来解决其他层级(如技能机器人调用)的“未解析”话语。
D.用于使用增强型logit将话语分类为具有未解析意图的技术
在logit函数中应用质心概念作为加权因子在多个实例中可以是有效的。然而,对于“未解析意图”分类,使用质心的有效性大大降低。对于已定义的意图(如“order_pizza”),话语可以围绕质心聚集。而“unresolved_intent(未解析_意图)”被定义为一组分类之外的所有话语的否定分类,这种话语可能表现出相对缺乏聚集。因此,学习质心可能会通过不准确的加权因子而在逻辑回归中引入错误。
作为示例,对于上文所描述的披萨技能机器人,虽然具有订购意图或取消意图的话语可以围绕相应的质心聚集,但从天气到金融到询问特定人的话语可以落入“unresolved_intent”中。类似地,为了将询问指向特定的技能机器人,分类器可以输出话语调用特定技能机器人的概率或者话语不调用系统被训练成对其进行分类的技能机器人中的任何技能机器人的概率。在这些情况中的每一种情况下,不可解析分类的质心可能在很大程度上不表示群体特性,部分原因是“未解析”分类的定义包括没有映射到已学习的意图、技能、领域或范围的任何话语。
为了克服这个问题和其他问题,各种实施例指向用于对未解析意图使用增强型logit值的技术,以便改进将话语分类为未解析意图。例如,机器学习模型(例如,图3的意图分类器320)可以针对未解析意图分类实施增强型logit值。例如,代替使用质心作为加权因子来计算logit值,可以通过使用修改后的logit函数来确定用于不可解析分类的增强型logit值以包括可训练的缩放器参数。另外或可替代地,用于不可解析分类的增强型logit值可以经由对机器学习模型的超参数调谐来优化。在一些实例中,如果训练数据不足以指示可解析分类,则意图分类器将输出分类为不可解析分类。实际上,不是确定话语是否调用不可解析分类,而是意图分类器可以确定话语是否调用可解析分类。
凡是可能对话语进行分类(例如,意图、范围、技能等)的地方,都可以使用可以集成到聊天机器人系统中的自动过程来确定增强型logit值,如关于图1、图2和图3所描述的。有利的是,模型和聊天机器人在使用增强型logit值对范围外话语进行分类时表现更好,至少部分是因为增强型logit值不依赖于不可解析分类的质心,该不可解析分类的质心可能无法反映模型输出中的真实聚类。此外,因为扩充是自动应用的,所以客户或客户端从聊天机器人系统中经历更少的误导性询问。
如下文进一步解释的,用于将话语分类为不可解析分类的增强型logit值可以基于以下之一:(i)基于从训练数据集生成的一组logit值确定的统计值;(ii)选自由与不可解析分类的概率相对应的几率的第一对数所定义的值范围的有界值,该几率的第一对数由限界函数约束到该值范围并且由与不可解析分类相关联的分布的质心加权;(iii)由与不可解析分类的概率相对应的几率的第二对数生成的加权值,该几率的第二对数由缩放因子缩放、由限界函数限界、并且由与不可解析分类相关联的分布的质心加权;(iv)基于对机器学习模型的超参数调谐生成的超参数优化值;或(v)在对机器学习模型的训练期间动态调整的学习值。另外或可替代地,基于规则的方法可以被实施为确定增强型logit值的一部分。基于规则的方法可以包括为不可解析分类从一组增强型logit值中识别增强型logit值的逻辑运算符。例如,可以基于通过将一组规则应用于话语而生成的查询值来从数据库或查找表中取得增强型logit值。
1.统计值
在一些实施例中,增强型logit值是在确定话语是否与范围外或域外分类相对应时替换logit函数的统计值。logit值可以包括从值范围中选择的值。参考函数表达式logiti=f(x)*Wi,可以通过利用不可解析分类的预先确定的数字“A”替换函数f(x)*Wi来设置logiti(即,logiti=A)。这样的配置根据固定值提供概率函数:在一些实例中,统计值被设置为0.3、0.5、0.7、0.9、1.0或任何更高的数字。确定统计值,使得对应的概率值指示话语将被分类为未解析(例如,未解析技能或未解析意图)。
在一些实施例中,统计值是基于训练话语集中的域外或范围外话语映射到不可解析分类的概率。确定适当的统计值可以是图4中的训练阶段410的一部分,其中,该数字可以部分地取决于在训练阶段410中应用的训练数据集(例如,数据资产445)。
图6示出了图示根据一些实施例的用于确定统计值的示例过程600的流程图,该统计值表示用于预测话语是否与不可解析分类相对应的增强型logit值。图6所描绘的处理可以以由相应系统的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)、硬件或其组合实施。软件可以存储在非暂态存储介质上(例如,存储器设备上)。图6所呈现的且下文所描述的方法旨在是说明性的而非限制性的。尽管图6描绘了以特定序列或顺序发生的各个处理步骤,但这并不旨在是限制性的。在一些实施例中,步骤可以以某种不同的顺序执行或者一些步骤还可以并行地执行。在一些实施例中,如在图1至图4所描绘的实施例中,图6所描绘的处理可以由训练子系统执行以将与不可解析分类相对应的概率值映射到一个或多个机器学习模型(例如,意图分类器242或320)的增强型logit值。训练子系统可以是数据处理系统(例如,关于图4描述的聊天机器人系统400)的一部分,或者是被配置为训练和部署机器学习模型的另一系统的部件。
在605处,训练子系统接收训练数据集。训练数据集可以包括一组话语或消息。该组话语或消息中的每个话语与训练标签相关联,其中,训练标签识别话语的预测意图分类。训练数据集还可以包括对应的技能机器人或聊天机器人被配置为执行的特定任务范围外的话语或消息。例如,当技能机器人被配置为处理披萨餐馆的食品订单时,范围外话语可以是询问天气的消息。在一些实例中,训练数据集中的范围外话语或消息中的每一个与训练标签相关联,其中,训练标签将话语或消息识别为不可解析分类。
在610处,训练子系统使用训练数据集来训练机器学习模型以预测话语或消息是否表示技能机器人被配置为执行的任务或将话语或消息与和技能机器人相关联的意图相匹配。可以学习机器学习模型的一个或多个参数以使由机器学习模型生成的预测输出与由对应话语的训练标签指示的预期输出之间的损失最小化。可以执行对机器学习模型的训练,直到损失达到最小误差阈值。
在615处,训练子系统识别一组训练logit值。该组训练logit值中的每个训练logit值与训练数据集中的范围外话语相对应。可以基于向机器学习模型输入相应的范围外话语来生成每个训练logit值。为了获得训练logit值,可以利用一个或多个助手函数(例如,获取_层(get_layer)函数)来捕获从机器学习模型的一个或多个层生成的输出。
在620处,训练子系统确定表示该组训练logit值的统计值。例如,统计值可以是该组训练logit值的中值。可以响应于确定该组训练logit值的统计分布与偏斜分布相对应而使用中值。在一些实例中,为该组训练logit值确定平均值和中值。如果平均值与中值之间的差异在统计上是显著的,则中值被选择作为表示该组训练logit值的统计值。
在625处,训练子系统将统计值设置为用于预测话语是否与不可解析分类相对应的增强型logit值。增强型logit值可以替换机器学习模型的原本将用于预测话语与不可解析分类相对应的现有logit函数。在一些实例中,现有logit函数继续用于对与可解析分类(例如,order_pizza、cancel_pizza)之一相对应的话语的预测。
在630处,训练子系统将经训练的机器学习模型部署到聊天机器人系统(例如,作为技能机器人的一部分),其中,经训练的机器学习模型包括设置作为用于预测话语是否与不可解析分类相对应的增强型logit值的统计值。此后,过程600终止。
通过使用统计值并从不可解析分类移除质心的影响,关于准确预测话语调用可解析分类还是不可解析分类的机器学习模型性能可以得到显著提高。在说明性示例中,上文所描述的披萨技能包括三个意图:“order_pizza”、“cancel_pizza”和“unresolvedIntent”。话语“what is the weather tomorrow”具有基于质心加权因子wi(例如,logiti=F(x)*wi)针对三个意图计算出的logit值(0.3,0.01,0.01)。在这种情况下,使用质心加权关系来确定logit向量的三个值,并使用softmax函数将该logit向量的三个值转化为概率(0.4,0.3,0.3)。在该示例中,“order_pizza”是最有可能的结果,其中,置信度得分为40%。然而,应该清楚的是,关于天气的询问未表达订购披萨的意图。该示例中的分类是不适当的(正确的分类将是域外unresolvedIntent),部分原因是不可解析分类的logit值相对较低,等于0.01。
从该示例继续,增强型logit值可以是等于0.4的统计值。可以在保持用于可解析分类的质心加权logit值的同时应用统计值。因此,logit值可以重新定义为(0.3,0.01,0.4)。再次应用softmax函数,logit值被转化为概率(0.35,0.26,0.39)。在这种情况下,softmax函数的结果反映了置信度得分为39%的“unresolvedIntent”的准确分类。
2.有界值
确定用于不可解析分类的增强型logit值可能由于标准logit函数无界而变得复杂。如上文所描述的,logit函数输出范围在负无穷大和正无穷大之间的logit值。因此,无界范围会为确定增强型logit值带来复杂性。例如,范围在负无穷大和正无穷大之间的logit值可能导致logit值分散在非常宽的值范围内,这可能导致优化增强型logit值时的困难。
因此,增强型logit值可以是由修改后的logit函数指定的范围内的有界值。修改后的logit函数可以被修改为将logit值约束到包括下限和上限的范围。在一些实例中,修改后的logit函数包括限界函数。限界函数可以包括生成在负一和一之间的范围内的输出的三角函数,如正弦函数或余弦函数。例如,logit函数可以定义为logiti=cosine(f(x)*Wi),其中,最小值为-1,并且最大值为1。然后,可以从-1和1之间的有界范围中为不可解析分类选择增强型logit值。从该示例继续,用于order_pizza分类和cancel_pizza分类的logit函数可以使用logiti=cosine(f(x)*Wi),并且可以为unresolvedIntent分类选择有界值0.4。
图7示出了图示根据一些实施例的用于修改logit函数以确定指定范围内用于预测话语是否与不可解析分类相对应的增强型logit值的示例过程700的流程图。图7所描绘的处理可以以由相应系统的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)、硬件或其组合实施。软件可以存储在非暂态存储介质上(例如,存储器设备上)。图7所呈现的且下文所描述的方法旨在是说明性的而非限制性的。尽管图7描绘了以特定序列或顺序发生的各个处理步骤,但这并不旨在是限制性的。在一些实施例中,这些步骤由训练子系统执行以将与不可解析分类相对应的概率值映射到一个或多个机器学习模型(例如,意图分类器242或320)的增强型logit值。训练子系统可以是数据处理系统(例如,关于图4描述的聊天机器人系统400)的一部分,或者是被配置为训练和部署机器学习模型的另一系统的部件。
在705处,训练子系统将机器学习模型初始化。机器学习模型可以是卷积神经网络(“CNN”)(例如,初始神经网络、残差神经网络(“Resnet”));或递归神经网络(例如,长短期记忆(“LSTM”)模型或门控递归单元(“GRU”)模型);深度神经网络(“DNN”)的其他变型网络(例如,用于单意图分类的多标签n二元DNN分类器或多类DNN分类器。机器学习模型425也可以是为自然语言处理而训练的任何其他合适的ML模型,如朴素贝叶斯分类器、线性分类器、支持向量机、如随机森林模型等装袋模型、提升模型、浅层神经网络、或这种技术中的一种或多种的组合——例如,CNN-HMM或MCNN(多尺度卷积神经网络)。
对机器学习模型的初始化可以包括定义层数、每个层的类型(例如,全连接神经网络、卷积神经网络)以及每个层的激活函数的类型(例如,sigmoid、ReLU、softmax)。
在710处,训练子系统从机器学习模型的最终层取得logit函数。例如,训练系统可以从全连接神经网络中的一组层中选择最终层。然后可以访问最终层的logit函数以进行修改。
在715处,训练子系统通过添加限界函数来修改logit函数。限界函数可以包括生成在负一和一的范围内的输出的三角函数,如正弦函数或余弦函数。在一些实例中,限界函数选自以下公式之一:(i)sin(f(x));(ii)cos(f(x));(iii)tan-1(f(x));(iv)以及(v)其中,f(x)是logit函数。另外或可替代地,logit函数可以包括质心Wi,其中,i与相应的预测分类相对应。
在720处,训练子系统训练机器学习模型以基于由修改后的logit函数指定的范围来生成增强型logit值。因此,训练子系统可以训练机器学习模型,以通过从训练数据集中识别预测话语是否与不可解析分类(例如,未解析技能或未解析意图)相对应的统计值来生成增强型logit值。
在725处,训练子系统将经训练的机器学习模型部署到聊天机器人系统(例如,作为技能机器人的一部分),其中,经训练的机器学习模型包括修改后的logit函数。此后,过程700终止。
3.加权值
用于预测范围外话语的增强型logit值可以是由修改后的logit函数生成的加权值,该logit函数由缩放因子加权。在一些实例中,缩放因子(本文也称为“缩放器”)对于分类“i”可函数表达为logiti=缩放器*cosine(f(x)*Wi)。用于不可解析分类(例如,unresolvedIntent)的缩放因子的值(例如,2)可以不同于用于可解析分类(例如,order_pizza、cancel_pizza)的缩放因子的值(例如,1)。在logit函数中包括缩放因子可以扩大预测意图的概率与其他意图的概率之间的差距,从而允许不可解析分类的预测意图更好地与可解析分类的其他意图区分开。
图8示出了图示根据一些实施例的用于向logit函数添加缩放因子以确定用于预测话语是否与不可解析分类相对应的增强型logit值的示例过程的流程图800。图8所描绘的处理可以以由相应系统的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)、硬件或其组合实施。软件可以存储在非暂态存储介质上(例如,存储器设备上)。图8所呈现的且下文所描述的方法旨在是说明性的而非限制性的。尽管图8描绘了以特定序列或顺序发生的各个处理步骤,但这并不旨在是限制性的。在一些实施例中,这些步骤由训练子系统执行以将与不可解析分类相对应的概率值映射到一个或多个机器学习模型(例如,意图分类器242或320)的增强型logit值。训练子系统可以是数据处理系统(例如,关于图4描述的聊天机器人系统400)的一部分,或者是被配置为训练和部署机器学习模型的另一系统的部件。
在805处,训练子系统将机器学习模型初始化。机器学习模型可以是卷积神经网络(“CNN”)(例如,初始神经网络、残差神经网络(“Resnet”));或递归神经网络(例如,长短期记忆(“LSTM”)模型或门控递归单元(“GRU”)模型);深度神经网络(“DNN”)的其他变型网络(例如,用于单意图分类的多标签n二元DNN分类器或多类DNN分类器。机器学习模型425也可以是为自然语言处理而训练的任何其他合适的ML模型,如朴素贝叶斯分类器、线性分类器、支持向量机、如随机森林模型等装袋模型、提升模型、浅层神经网络、或这种技术中的一种或多种的组合——例如,CNN-HMM或MCNN(多尺度卷积神经网络)。
对机器学习模型的初始化可以包括定义层数、每个层的类型(例如,全连接神经网络、卷积神经网络)以及每个层的激活函数的类型(例如,sigmoid、ReLU、softmax)。
在810处,训练子系统从机器学习模型的最终层取得logit函数。例如,训练系统可以从全连接神经网络中的一组层中选择最终层。然后可以访问最终层的logit函数以进行修改。
在815处,训练子系统通过添加缩放因子来修改logit函数。在一些实例中,基于对应话语的预测分类来指派缩放因子的不同初始值。例如,用于不可解析分类(例如,unresolvedIntent)的缩放因子的值(例如,2)可以不同于用于可解析分类(例如,order_pizza、cancel_pizza)的缩放因子的值(例如,1)。生成指示话语是否与不可解析分类相对应的概率的logit函数的第一缩放因子被指派比生成指示话语是否与可解析分类之一相对应的概率的另一logit函数的第二缩放因子更大的值。另外或可替代地,可以通过向添加了缩放因子的logit函数添加限界函数(例如,余弦函数)来进一步修改logit函数。
在820处,训练子系统训练机器学习模型以基于指派给不可解析分类的缩放因子来生成增强型logit值。在一些实例中,不可解析分类的缩放因子是机器学习模型的学习参数。因此,训练子系统可以训练机器学习模型以调整与不可解析分类相对应的缩放因子。另外或可替代地,缩放因子可以是硬编码的数字,其可以在训练和部署机器学习模型中保持静态。
在825处,训练子系统将经训练的机器学习模型部署到聊天机器人系统(例如,作为技能机器人的一部分),其中,经训练的机器学习模型包括修改后的logit函数。此后,过程800终止。
4.超参数调谐
用于预测话语是否与不可解析分类相对应的增强型logit值可以是基于对机器学习模型的超参数调谐而确定的超参数优化值。在一些实施例中,超参数调谐允许对增强型logit值进行元训练,作为logit确定455的一部分。机器学习模型的可调谐超参数可以包括学习速率、时期(epoch)数、动量、正则化常数、机器学习模型的层数以及机器学习模型中的权重数。超参数调谐可以包括确定以上超参数的最佳组合的过程,该最佳组合允许意图分类器确定用于不可解析分类的增强型logit值。
图9示出了图示根据一些实施例的用于使用超参数调谐来确定用于预测话语是否与不可解析分类相对应的增强型logit值的示例过程的流程图900。图9所描绘的处理可以以由相应系统的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)、硬件或其组合实施。软件可以存储在非暂态存储介质上(例如,存储器设备上)。图9所呈现的且下文所描述的方法旨在是说明性的而非限制性的。尽管图9描绘了以特定序列或顺序发生的各个处理步骤,但这并不旨在是限制性的。在一些实施例中,步骤可以以某种不同的顺序执行或者一些步骤还可以并行地执行。在一些实施例中,如在图1至图4所描绘的实施例中,图9所描绘的处理可以由训练子系统执行以将与不可解析分类相对应的概率值映射到一个或多个机器学习模型(例如,意图分类器242或320)的增强型logit值。训练子系统可以是数据处理系统(例如,关于图4描述的聊天机器人系统400)的意图分类器,或者是被配置为训练和部署机器学习模型的另一系统的部件。
在905处,训练子系统接收训练数据集。训练数据集可以包括一组话语或消息。该组话语或消息中的每个话语与训练标签相关联,其中,该训练标签识别话语的预测意图分类。训练数据集还可以包括对应的技能机器人或聊天机器人被配置为执行的特定任务范围外的话语或消息。例如,当技能机器人被配置为处理披萨餐馆的食品订单时,范围外话语可以是询问天气的消息。在一些实例中,训练数据集的范围外话语或消息中的每一个与训练标签相关联,其中,该训练标签将话语或消息识别为不可解析分类。
在910处,训练子系统使用训练数据集训练机器学习模型以预测话语或消息是否表示技能机器人被配置为执行的任务或将话语或消息与和技能机器人相关联的意图相匹配。可以学习机器学习模型的一个或多个参数以使由机器学习模型生成的预测输出与由对应话语的训练标签指示的预期输出之间的损失最小化。可以执行对机器学习模型的训练,直到损失达到最小误差阈值。
在915处,训练子系统识别一组训练logit值。该组训练logit值中的每个训练logit值与训练数据集中的范围外话语相对应。可以基于向机器学习模型输入相应的范围外话语来生成每个训练logit值。为了获得训练logit值,可以利用一个或多个助手函数(例如,获取_层函数)来捕获从机器学习模型的一个或多个层生成的输出。
在920处,训练子系统确定表示该组训练logit值的统计值。例如,统计值可以是该组训练logit值的中值。可以响应于确定该组训练logit值的统计分布与偏斜分布相对应而使用中值。在一些实例中,为该组训练logit值确定平均值和中值。如果平均值与中值之间的差异在统计上是显著的,则中值被选择作为表示该组训练logit值的统计值。
在925处,训练子系统调整机器学习模型的一个或多个超参数以优化统计值。对机器学习模型的训练可以利用经调整的超参数进行迭代,在此可以选择为预测不可解析分类提供最佳性能的超参数组合。在一些实施例中,最佳性能与机器学习模型的模型配置相对应,该模型配置为训练数据集中的范围外话语产生由机器学习模型生成的预测输出与由对应的范围外话语的训练标签指示的预期输出之间的最小损失值。
可以使用各种超参数优化技术来优化统计值。在一些实例中,随机搜索技术被用于超参数调谐。随机搜索技术可以包括生成超参数的可能值的网格。每次搜索迭代可以从该网格选择超参数的随机组合,此时可以记录每次迭代的性能。另外或可替代地,网格搜索技术可以用于超参数调谐。网格搜索技术可以包括生成超参数的可能值的网格。每次搜索迭代可以选择特定顺序的超参数的组合。可以记录每次迭代的性能。可以选择提供最佳性能的超参数组合。
可以考虑用于超参数调谐的其他技术。这些技术包括但不限于贝叶斯(Bayesian)优化算法、基于树的Parzen估计器(TPE)、HyperBand、基于群体的训练(PBT)以及贝叶斯优化和HyperBand(BOHB)。
在930处,训练子系统将优化的统计值设置为用于不可解析分类的增强型logit值。增强型logit值可以替换机器学习模型的原本将用于预测话语与不可解析分类相对应的现有logit函数。在一些实例中,现有logit函数继续用于对与可解析分类(例如,order_pizza、cancel_pizza)之一相对应的话语的预测。在935处,训练子系统将经训练的机器学习模型部署到聊天机器人系统(例如,作为技能机器人的一部分),其中,经训练的机器学习模型包括设置作为用于预测话语是否与不可解析分类相对应的增强型logit值的统计值。此后,过程900终止。
5.学习值
用于预测话语是否与不可解析分类相对应的增强型logit值可以是可以在对机器学习模型的训练期间动态调整的学习值。可以在机器学习模型的训练阶段期间学习模型参数。实际上,当使用另外的训练数据(例如,范围外话语)训练时,增强型logit值可以被优化。
可以执行各种技术来生成和调整学习值。图10示出了图示根据一些实施例的使用学习值作为用于预测话语是否与不可解析分类相对应的增强型logit值的示例过程的流程图1000。图10所描绘的处理可以以由相应系统的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)、硬件或其组合实施。软件可以存储在非暂态存储介质上(例如,存储器设备上)。图10所呈现的且下文所描述的方法旨在是说明性的而非限制性的。尽管图10描绘了以特定序列或顺序发生的各个处理步骤,但这并不旨在是限制性的。在一些实施例中,这些步骤由训练子系统执行以将与不可解析分类相对应的概率值映射到一个或多个机器学习模型(例如,意图分类器242或320)的增强型logit值。训练子系统可以是数据处理系统(例如,关于图4描述的聊天机器人系统400)的一部分,或者是被配置为训练和部署机器学习模型的另一系统的部件。
在1005处,训练子系统接收训练数据集。训练数据集可以包括一组话语或消息。该组话语或消息中的每个话语与训练标签相关联,其中,该训练标签识别话语的预测意图分类。训练数据集还可以包括对应的技能机器人或聊天机器人被配置为执行的特定任务范围外的话语或消息。例如,当技能机器人被配置为处理披萨餐馆的食品订单时,范围外话语可以是询问天气的消息。在一些实例中,训练数据集的范围外话语或消息中的每一个与训练标签相关联,其中,该训练标签将话语或消息识别为不可解析分类。
在1010处,训练子系统执行训练数据集的批平衡以生成包括范围外话语的经扩充副本的经扩充的训练数据集。基于训练数据集中可用的范围外话语量,该步骤可以是可选的。例如,训练子系统可以生成与不可解析分类相对应的训练数据(例如,范围外话语)的复制品或经扩充副本。数据扩充技术可以包括对训练数据集中的话语进行回译、对话语的一个或多个标记进行同义词替换、将标记随机插入到话语中、交换话语的两个标记以及随机删除话语的一个或多个标记。
在1015处,训练子系统将机器学习模型初始化。机器学习模型可以是卷积神经网络(“CNN”)(例如,初始神经网络、残差神经网络(“Resnet”));或递归神经网络(例如,长短期记忆(“LSTM”)模型或门控递归单元(“GRU”)模型);深度神经网络(“DNN”)的其他变型网络(例如,用于单意图分类的多标签n二元DNN分类器或多类DNN分类器。机器学习模型425也可以是为自然语言处理而训练的任何其他合适的ML模型,如朴素贝叶斯分类器、线性分类器、支持向量机、如随机森林模型等装袋模型、提升模型、浅层神经网络、或这种技术中的一种或多种的组合——例如,CNN-HMM或MCNN(多尺度卷积神经网络)。
机器学习模型的初始化可以包括定义层数、每个层的类型(例如,全连接神经网络、卷积神经网络)以及每个层的激活函数的类型(例如,sigmoid、ReLU、softmax)。
在1020处,训练子系统使用训练数据集或经扩充的训练数据集来训练机器学习模型以预测话语或消息是否表示技能机器人被配置为执行的任务或将话语或消息与和技能机器人相关联的意图相匹配。可以学习机器学习模型的一个或多个参数以使由机器学习模型生成的预测输出与由对应话语的训练标签指示的预期输出之间的损失最小化。可以执行对机器学习模型的训练,直到损失达到最小误差阈值。特别地,可以使用经扩充的训练数据集来训练机器学习模型,使得该机器学习模型可以生成给定话语是否与不可解析意图相对应的概率。
在一些实例中,为了减少由于训练数据集或经扩充的训练数据集导致的机器学习模型的过拟合,训练子系统可以使用正则化来调整一个或多个参数权重。例如,对模型参数的正则化可以包括高斯/L2正则化,其中,在每个训练迭代处移除机器学习模型的一小部分权重。这样的方法可以以损失值增加相对较低的方式提高增强型logit值的准确度,从而减少过拟合问题。
在一些实例中,通过交叉验证来评估经训练的机器学习模型的性能。例如,可以使用k折交叉验证技术来评估经训练的机器学习模型,其中,k折交叉验证技术包括:(i)在经扩充的训练数据集中混洗训练数据(例如,话语);(ii)将训练数据集拆分成k个子集;(iii)使用(k-1)个子集中的每一个来训练相应的机器学习模型;(iv)使用保留的k1子集来评估经训练的机器学习模型;以及(v)使用不同的保留的ki子集重复步骤(iii)和(iv)。
在1025处,训练子系统将经训练的机器学习模型部署到聊天机器人系统(例如,作为技能机器人的一部分)以生成预测话语或消息是否与不可解析分类相对应的增强型logit值。因为机器学习模型是利用经扩充的训练数据集训练的,所以增强型logit值可以用于准确地确定预测范围外话语与不可解析分类相关联的概率值。此后,过程1000终止。
6.确定增强型logit值的示例
如上文所描述的,可以基于包括但不限于数据大小或意图数量的因子使用机器学习技术来动态地调整用于不可解析分类的增强型logit值。例如,缩放器可以按分类(例如,order_pizza、unresolvedIntent)变化,其中,增加权重衰减以限制缩放器值的假优化。在另一示例中,可以在预先确定的界限内动态地修改logit。对于未解析意图分类,可以作为机器学习模型训练的一部分来学习logit值,但是可以将logit值约束在范围内(例如,从0.0=>0.2)。
在对于不可解析的意图分类采用logit值的机器学习模型的说明性示例中,对不可解析分类应用固定的logit值并且针对两个标准的域外测试集对经训练的模型进行测试。下表1中呈现的这些数据示出了当应用logit值而不使用质心加权方法时域外分类的改进。例如,应用预先确定的logit值将经训练的分类器在识别域外话语方面的准确度提高了多达9%(比较第5行和第1行的isMatch值),并且将跨时期的召回率(recall)提高了多达8%(比较第5行和第1行的e2e_ood_召回率值)。
表1:经训练的机器学习模型的域外测试
另外,实验结果没有反映出在针对域内话语的准确分类的性能方面有相应的或同时的下降,如下表2所示。例如,与由其他意图分类的质心加权的余弦限界的softmax函数相比,域内测试没有显示出第3行与第5行(与应用预先确定的logit值0.5相对应)之间的准确度的显著下降。
表2:经训练的机器学习模型的域内测试
E.用于训练实施增强型logit值来进行范围外话语分类的机器学习模型的过程
图11是图示了根据一些实施例的用于训练针对不可解析分类实施增强型logit值的机器学习模型的过程1100的流程图。图11所描绘的处理可以以由相应系统的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)、硬件或其组合实施。软件可以存储在非暂态存储介质上(例如,存储器设备上)。图11所呈现的且下文所描述的方法旨在是说明性的而非限制性的。尽管图11描绘了以特定序列或顺序发生的各个处理步骤,但这并不旨在是限制性的。在一些实施例中,步骤可以以某种不同的顺序执行或者一些步骤还可以并行地执行。在一些实施例中,如在图1至图4所描绘的实施例中,图11所描绘的处理可以由训练子系统执行以将与不可解析分类相对应的概率值映射到一个或多个机器学习模型(例如,意图分类器242或320、或机器学习模型425)的增强型logit值。训练子系统可以是数据处理系统(例如,关于图4描述的聊天机器人系统400)的一部分,或者是被配置为训练和部署机器学习模型的另一系统的部件。
在1105处,训练子系统接收训练数据集。训练数据集可以包括一组话语或消息。该组话语或消息中的每个话语与训练标签相关联,其中,该训练标签识别话语的预测意图分类。在一些实例中,话语包括从语音输入(例如,语音话语)转换的文本数据,其中,语音输入可以被转换成该特定语言的文本形式的话语并且然后可以处理该文本话语。训练数据集还可以包括对应的技能机器人或聊天机器人被配置为执行的特定任务范围外的话语或消息。例如,当技能机器人被配置为处理披萨餐馆的食品订单时,范围外话语可以是询问天气的消息。在一些实例中,训练数据集的范围外话语或消息中的每一个与训练标签相关联,其中,该训练标签将话语或消息识别为不可解析分类。
在1110处,训练子系统将机器学习模型初始化。机器学习模型可以包括一系列网络层,其中,该一系列层中的最终网络层包括logit函数,该logit函数将可解析分类的第一概率变换为表示第一logit值的第一实数并且将不可解析分类的第二概率变换为表示第二logit值的第二实数。因此,logit函数可以是将相应分类的概率值变换为拟合到概率分布(例如,logit正态分布)内的实数的几率的对数。在一些实例中,logit函数由与相应分类相关联的分布的质心来加权。
机器学习模型可以是卷积神经网络(“CNN”)(例如,初始神经网络、残差神经网络(“Resnet”));或递归神经网络(例如,长短期记忆(“LSTM”)模型或门控递归单元(“GRU”)模型);深度神经网络(“DNN”)的其他变型网络(例如,用于单意图分类的多标签n二元DNN分类器或多类DNN分类器。机器学习模型425也可以是为自然语言处理而训练的任何其他合适的ML模型,如朴素贝叶斯分类器、线性分类器、支持向量机、如随机森林模型等装袋模型、提升模型、浅层神经网络、或这种技术中的一种或多种的组合——例如,CNN-HMM或MCNN(多尺度卷积神经网络)。
机器学习模型的初始化可以包括定义层数、每个层的类型(例如,全连接神经网络、卷积神经网络)以及每个层的激活函数的类型(例如,sigmoid、ReLU、softmax)。
在1115处,训练子系统使用训练数据集训练机器学习模型以预测话语或消息是否表示技能机器人被配置为执行的任务或将话语或消息与和技能机器人相关联的意图相匹配。在一些实例中,机器学习模型被训练成确定可解析分类的第一概率和不可解析分类的第二概率。可解析分类的第一概率可以由机器学习模型的最终网络层的第一输出通道生成。不可解析分类的第二概率可以由机器学习模型的最终网络层的第二输出通道生成。在一些实例中,机器学习模型确定两个或更多个可解析分类(例如,order_pizza、cancel_pizza)中的每一个的概率。
可以学习机器学习模型的一个或多个参数以使由机器学习模型生成的预测输出与由对应话语的训练标签指示的预期输出之间的损失最小化。可以执行对机器学习模型的训练,直到损失达到最小误差阈值。特别地,可以使用经扩充的训练数据集来训练机器学习模型,使得该机器学习模型可以生成给定话语是否与不可解析意图相对应的概率。
在1120处,训练子系统利用增强型logit值替换与不可解析分类相关联的logit函数。对于可解析分类,可以继续使用logit函数。因此,经训练的机器学习模型可以将logit函数应用于可解析分类的概率以生成对应的logit值。
对于不可解析分类,利用增强型logit值替换logit函数。在一些实例中,增强型logit值是独立于用于可解析分类的logit函数而确定的不同实数。增强型logit值可以包括以下之一:(i)基于从训练数据集生成的一组logit值确定的统计值,(ii)选自由与不可解析分类的概率相对应的几率的第一对数所定义的值范围的有界值,该几率的第一对数由限界函数约束到值范围并且由与不可解析分类相关联的分布的质心加权,(iii)由与不可解析分类的概率相对应的几率的第二对数生成的加权值,该几率的第二对数由限界函数约束到该值范围、由缩放因子缩放、并且由与不可解析分类相关联的分布的质心加权,(iv)基于对机器学习模型的超参数调谐生成的超参数优化值,或(v)在对机器学习模型的训练期间调整的学习值。
在1125处,具有增强型logit值的经训练的机器学习模型可以部署在聊天机器人系统内(例如,作为技能机器人的一部分),以预测话语或消息是否表示技能机器人被配置为执行的任务或将话语或消息与和技能机器人相关联的意图相匹配,或者预测话语或消息是否与不可解析分类相对应。此后,过程1100终止。
F.用于使用增强型logit值对范围外话语进行分类的过程
图12是图示了根据一些实施例的用于使用增强型logit值将话语分类为不可解析分类的过程1200的流程图。图12所描绘的处理可以以由相应系统的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)、硬件或其组合实施。软件可以存储在非暂态存储介质上(例如,存储器设备上)。图12所呈现的且下文所描述的方法旨在是说明性的而非限制性的。尽管图12描绘了以特定序列或顺序发生的各个处理步骤,但这并不旨在是限制性的。在一些实施例中,步骤可以以某种不同的顺序执行或者一些步骤还可以并行地执行。在一些实施例中,如在图1至图4所示的实施例中,图12所描绘的处理可以由聊天机器人或技能机器人系统来执行,该聊天机器人或技能机器人系统可以实施机器学习模型和增强型logit值来预测话语是否与不可解析分类相对应。在该特定示例过程中,聊天机器人系统执行分类。
在1205处,聊天机器人系统接收由与该聊天机器人系统交互的用户生成的话语。话语可以指代在与聊天机器人的会话期间交换的一组单词(例如,一个或多个句子)。在一些实例中,话语包括从语音输入(例如,语音话语)转换的文本数据,其中,语音输入可以被转换成该特定语言的文本形式的话语,并且然后可以处理该文本话语。
在1210处,聊天机器人系统将话语输入到机器学习模型中。机器学习模型可以包括一系列网络层,其中,该一系列层中的最终网络层包括logit函数,该logit函数将可解析分类的第一概率变换为表示第一logit值的第一实数并且将不可解析分类的第二概率变换为表示第二logit值的第二实数。
机器学习模型可以执行操作1215、1220和1225,以便预测话语是否与不可解析分类相对应。在1215处,机器学习模型确定可解析分类的第一概率和不可解析分类的第二概率。可解析分类的第一概率可以由机器学习模型的最终网络层的第一输出通道生成。不可解析分类的第二概率可以由机器学习模型的最终网络层的第二输出通道生成。在一些实例中,机器学习模型确定两个或更多个可解析分类(例如,order_pizza、cancel_pizza)中的每一个的概率。
在1220处,机器学习模型使用logit函数将可解析分类的第一概率映射到第一logit值。logit函数可以是与可解析分类的第一概率相对应的几率的对数。几率的第一对数可以通过与可解析分类相关联的分布的质心来加权。
在1225处,机器学习模型将不可解析分类的第二概率映射到第二logit值,其中,独立于用于可解析分类的logit函数来确定第二logit值。在一些实例中,第二logit值包括:(i)基于从训练数据集生成的一组logit值确定的统计值,(ii)选自由与不可解析分类的概率相对应的几率的第一对数所定义的值范围的有界值,该几率的第一对数由限界函数约束到值范围并且由与不可解析分类相关联的分布的质心加权,(iii)由与不可解析分类的概率相对应的几率的第二对数生成的加权值,该几率的第二对数由限界函数约束到该值范围、由缩放因子缩放、并且由与不可解析分类相关联的分布的质心加权,(iv)基于对机器学习模型的超参数调谐生成的超参数优化值,或(v)在对机器学习模型的训练期间调整的学习值。第一logit值和第二logit值被提供回聊天机器人系统以用于分类。
在1230处,聊天机器人系统基于第一logit值和第二logit值将话语分类为可解析分类或不可解析分类。在一些实例中,机器学习模型的激活函数(例如,softmax函数)被应用于:(i)第一logit值,以确定话语在多项式分布内与可解析分类相对应的概率;以及(ii)第二logit值,以确定话语在多项式分布内与不可解析分类相对应的概率。基于所确定的概率,聊天机器人系统可以对话语进行分类。此后,过程1200终止。
G.说明性系统
图13描绘了分布式系统1300的简化图。在图示的示例中,分布式系统1300包括经由一个或多个通信网络1310耦接到服务器1312的一个或多个客户端计算设备1302、1304、1306和1308。客户端计算设备1302、1304、1306和1308可以被配置为执行一个或多个应用程序。
在各种示例中,服务器1312可以被适配成运行实现本公开所描述的一个或多个实施例的一个或多个服务或软件应用程序。在某些示例中,服务器1312还可以提供可以包括非虚拟环境和虚拟环境的其他服务或软件应用程序。在一些示例中,这些服务可以作为基于web的服务或云服务(如在软件即服务(SaaS)模型下)提供给客户端计算设备1302、1304、1306和/或1308的用户。操作客户端计算设备1302、1304、1306和/或1308的用户进而可以利用一个或多个客户端应用程序来与服务器1312交互以利用这些部件所提供的服务。
在图13所描绘的配置中,服务器1312可以包括实施由服务器1312执行的功能的一个或多个部件1318、1320和1322。这些部件可以包括可以由一个或多个处理器、硬件部件或其组合执行的软件部件。应理解,可以与分布式系统1300不同的各种不同系统配置是可能的。因此,图13所示出的示例是用于实施示例系统的分布式系统的一个示例并且不旨在是限制性的。
用户可以使用客户端计算设备1302、1304、1306和/或1308来执行一个或多个应用程序、模型或聊天机器人,该一个或多个应用程序、模型或聊天机器人可以生成然后可以根据本公开的教导实施或服务的一个或多个事件或模型。客户端设备可以提供使客户端设备的用户能够与客户端设备交互的接口。客户端设备还可以经由该接口向用户输出信息。尽管图13描绘了仅四个客户端计算设备,但是可以支持任何数量的客户端计算设备。
客户端设备可以包括各种类型的计算系统,例如便携式手持设备、诸如个人计算机和膝上型计算机等通用计算机、工作站计算机、可穿戴设备、游戏系统、瘦客户端、各种消息传递设备、传感器或其他感测设备等。这些计算设备可以运行各种类型和版本的软件应用程序和操作系统(例如,MicrosoftApple或类UNIX操作系统、Linux或类Linux操作系统(如Google ChromeTMOS)),包括各种移动操作系统(例如,Microsoft WindowsWindowsAndroidTM、)。便携式手持设备可以包括蜂窝电话、智能电话(例如,)、平板计算机(例如,)、个人数字助理(PDA)等。可穿戴设备可以包括Google头戴式显示器以及其他设备。游戏系统可以包括各种手持游戏设备、支持因特网的游戏设备(例如,有或没有姿势输入设备的Microsoft游戏控制台、Sony系统、由提供的各种游戏系统以及其他)等。客户端设备可以能够执行各种不同的应用程序,如各种因特网相关应用程序、通信应用程序(例如,电子邮件应用程序、短消息服务(SMS)应用程序),并可以使用各种通信协议。
一个或多个网络1310可以是本领域技术人员所熟悉的可以使用各种可用协议中的任何一种支持数据通信的任何类型的网络,可用协议包括但不限于TCP/IP(传输控制协议/因特网协议)、SNA(系统网络架构)、IPX(因特网分组交换)、等。仅通过示例的方式,一个或多个网络1310可以是局域网(LAN)、基于以太网的网络、令牌环、广域网(WAN)、因特网、虚拟网络、虚拟私人网络(VPN)、内部网、外部网、公共交换电话网(PSTN)、红外线网、无线网(例如,根据电气与电子协会(IEEE)1002.11协议套件、和/或任何其他无线协议中的任一种协议操作的网络)和/或这些网络和/或其他网络的任何组合。
服务器1312可以由以下各项构成:一个或多个通用计算机、专用服务器计算机(通过示例的方式包括PC(个人计算机)服务器、服务器、中档服务器、大型计算机、机架式服务器等)、服务器群、服务器集群或任何其他适当的布置和/或组合。服务器1312可以包括运行虚拟操作系统的一个或多个虚拟机或涉及虚拟化的其他计算架构,例如逻辑存储设备的可以被虚拟化以维护服务器的虚拟存储设备的一个或多个灵活池。在各种示例中,服务器1312可以被适配成运行提供前述公开内容中所描述的功能的一个或多个服务或软件应用程序。
服务器1312中的计算系统可以运行一个或多个操作系统,该一个或多个操作系统包括以上所讨论的那些操作系统中的任何一个操作系统以及任何可商购获得的服务器操作系统。服务器1312还可以运行各种附加服务器应用程序和/或中间层应用程序中的任何一种应用程序,包括HTTP(超文本运输协议)服务器、FTP(文件传送协议)服务器、CGI(通用网关接口)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于可从(国际商业机器公司)等商购获得的那些数据库服务器。
在一些实施方式中,服务器1312可以包括一个或多个应用程序以分析并合并从客户端计算设备1302、1304、1306和1308的用户接收的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于馈送、更新或从一个或多个第三方信息源和连续数据流接收的实时更新,实时更新可以包括与传感器数据应用程序、财务收报机、网络性能测量工具(例如,网络监测和流量管理应用程序)、点击流分析工具、汽车交通监测等相关的实时事件。服务器1312还可以包括一个或多个应用程序以经由客户端计算设备1302、1304、1306和1308的一个或多个显示设备来显示数据馈送和/或实时事件。
分布式系统1300还可以包括一个或多个数据储存库1314、1316。在某些示例中,这些数据储存库可以用于存储数据和其他信息。例如,数据储存库1314、1316中的一个或多个可以用于存储信息(如与聊天机器人性能或生成的模型有关的信息)以供服务器1312在执行根据各种实施例的各种功能时使用的聊天机器人使用。数据储存库1314、1316可以驻留在各种位置中。例如,服务器1312所使用的数据储存库可以在服务器1312本地或者可以远离服务器1312并经由基于网络的或专用的连接与服务器1312通信。数据储存库1314、1316可以是不同类型。在某些示例中,服务器1312所使用的数据储存库可以是数据库,例如,诸如由Oracle和其他供应商提供的数据库等关系数据库。这些数据库中的一个或多个数据库可以被适配成响应于SQL格式的命令来实现数据到数据库的存储、更新和取得以及来自数据库的数据的存储、更新和取得。
在某些示例中,数据储存库1314、1316中的一个或多个数据储存库还可以被应用程序用来存储应用程序数据。应用程序所使用的数据储存库可以是不同类型,例如键值存储储存库、对象存储储存库或由文件系统支持的通用存储储存库。
在某些示例中,本公开所描述的功能可以经由云环境作为服务提供。图14是根据某些示例的各种服务在其中可以作为云服务被提供的基于云的系统环境的简化框图。在图14所描绘的示例中,云基础设施系统1402可以提供可以由用户使用一个或多个客户端计算设备1404、1406和1408请求的一个或多个云服务。云基础设施系统1402可以包括一个或多个计算机和/或服务器,该一个或多个计算机和/或服务器可以包括以上针对服务器1312所描述的那些计算机和/或服务器。云基础设施系统1402中的计算机可以被组织作为通用计算机、专用服务器计算机、服务器群、服务器集群或任何其他适当的布置和/或组合。
一个或多个网络1410可以促进客户端1404、1406和1408与云基础设施系统1402之间的数据通信和交换。一个或多个网络1410可以包括一个或多个网络。网络可以是相同或不同的类型。一个或多个网络1410可以支持一个或多个通信协议(包括有线和/或无线协议)以促进通信。
图14所描绘的示例仅是云基础设施系统的一个示例并且不旨在是限制性的。应理解,在一些其他示例中,云基础设施系统1402可以具有比图14中所描绘的那些部件更多或更少的部件、可以组合两个或更多个部件或者可以具有不同的部件配置或布置。例如,尽管图14描绘了三个客户端计算设备,但是在替代性示例中,可以支持任何数量的客户端计算设备。
术语云服务通常用于指代通过服务提供商的系统(例如,云基础设施系统1402)按需且经由如因特网等通信网络变得可用于用户的服务。通常,在公共云环境中,构成云服务提供商的系统的服务器和系统与客户自身的预置服务器和系统不同。云服务提供商的系统由云服务提供商管理。因此,客户可以使自身利用由云服务提供商提供的云服务,而不必针对服务购买单独的许可证、支持或硬件和软件资源。例如,云服务提供商的系统可以托管应用程序,并且用户可以经由因特网按需订购并使用应用程序,而用户不必购买用于执行应用程序的基础设施资源。云服务被设计成提供对应用程序、资源和服务容易的、可伸缩的访问。多个提供商提供云服务。例如,由加利福尼亚州红木海岸(Redwood Shores,California)的Oracle 提供如中间件服务、数据库服务、Java云服务以及其他服务等多种云服务。
在某些示例中,云基础设施系统1402可以使用不同模型(如在软件即服务(SaaS)模型、平台即服务(PaaS)模型、基础设施即服务(IaaS)模型和其他模型(包括混合服务模型)下)提供一个或多个云服务。云基础设施系统1402可以包括实现对各种云服务的供给的一套应用程序、中间件、数据库和其他资源。
SaaS模型使应用程序或软件能够作为服务通过如因特网等通信网络输送给客户,而客户不必购买针对底层应用程序的硬件或软件。例如,可以使用SaaS模型为客户提供对由云基础设施系统1402托管的按需应用程序的访问。Oracle提供的SaaS服务的示例包括但不限于用于人力资源/资本管理、客户关系管理(CRM)、企业资源规划(ERP)、供应链管理(SCM)、企业绩效管理(EPM)、分析服务、社交应用程序等的各种服务。
IaaS模型通常用于将基础设施资源(例如,服务器、存储、硬件和联网资源)作为云服务提供给客户以提供弹性计算和存储能力。由Oracle提供各种IaaS服务。
PaaS模型通常用于提供使客户能够开发、运行并管理应用程序和服务而客户不必采购、构建或维护这种资源的平台和环境资源作为服务。由Oracle提供的PaaS服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)、数据管理云服务、各种应用程序开发解决方案服务等。
云服务通常是以按需自助服务基础、基于订阅、可弹性伸缩、可靠、高度可用且安全的方式提供的。例如,客户可以经由订阅订单来订购由云基础设施系统1402提供的一个或多个服务。然后,云基础设施系统1402执行处理以提供客户的订阅订单中请求的服务。例如,用户可以使用话语来请求云基础设施系统采取如上文所描述的某个行动(例如,意图)和/或为如本文所描述的聊天机器人系统提供服务。云基础设施系统1402可以被配置为提供一个或甚至多个云服务。
云基础设施系统1402可以经由不同的部署模型提供云服务。在公共云模型中,云基础设施系统1402可以由第三方云服务提供商拥有,并且云服务被提供给任何一般的公众客户,其中,该客户可以是个人或企业。在某些其他示例中,在私有云模型下,云基础设施系统1402可以在组织内(例如,在企业组织内)操作并且服务被提供给组织内的客户。例如,客户可以是如人力资源部门、薪资部门等企业的各个部门或者甚至是企业内的个人。在某些其他示例中,在社区云模型下,云基础设施系统1402和所提供的服务可以由有关社区中的多个组织共享。也可以使用各种其他模型,例如以上所提到的模型的混合。
客户端计算设备1404、1406和1408可以是不同类型的(如图13中所描绘的客户端计算设备1302、1304、1306和1308)并且可以能够操作一个或多个客户端应用程序。用户可以使用客户端设备与云基础设施系统1402交互,如请求由云基础设施系统1402提供的服务。例如,用户可以使用客户端设备从如本公开所描述的聊天机器人请求信息或动作。
在一些示例中,由云基础设施系统1402执行的用于提供服务的处理可以涉及模型训练和部署。此分析可以涉及使用、分析并操纵数据集来训练并部署一个或多个模型。该分析可以由一个或多个处理器执行,从而可能并行地处理数据、使用数据执行模拟等。例如,大数据分析可以由云基础设施系统1402执行以用于针对聊天机器人系统生成并训练一个或多个模型。用于该分析的数据可以包括结构化数据(例如,存储在数据库中或根据结构化模型结构化的数据)和/或非结构化数据(例如,数据块(二进制大对象))。
如图14中的示例所描绘的,云基础设施系统1402可以包括被用于促进供给由云基础设施系统1402提供的各种云服务的基础设施资源1430。基础设施资源1430可以包括例如处理资源、存储或存储器资源、联网资源等。在某些示例中,可用于服务从应用程序请求的存储的存储虚拟机可以是云基础设施系统1402的一部分。在其他示例中,存储虚拟机可以是不同系统的一部分。
在某些示例中,为了促进这些资源的高效供给以支持由云基础设施系统1402为不同客户提供的各种云服务,可以将资源绑定到资源组或资源模块(也称为“群(pod)”)中。每个资源模块或群可以包括一种或多种类型的资源的预先集成且优化的组合。在某些示例中,可以针对不同类型的云服务预先供给不同的群。例如,可以针对数据库服务供给第一组群、可以针对Java服务供给第二组群(该第二组群可以包括与第一组群中的群不同的资源组合)等。对于一些服务,被分配用于供给服务的资源可以在服务之间共享。
云基础设施系统1402自身可以在内部使用由云基础设施系统1402的不同部件共享并且促进云基础设施系统1402供给服务的服务1432。这些内部共享服务可以包括但不限于安全和身份服务、整合服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高度可用性、备份和恢复服务、用于实现云支持的服务、电子邮件服务、通知服务、文件传送服务等。
云基础设施系统1402可以包括多个子系统。这些子系统可以以软件或硬件或其组合实施。如图14所描绘的,子系统可以包括使得云基础设施系统1402的用户或客户能够与云基础设施系统1402交互的用户接口子系统1412。用户接口子系统1412可以包括各种不同的接口,如web接口1414、在线商店接口1416(其中,广告并且消费者可购买由云基础设施系统1402提供的云服务)和其他接口1418。例如,客户可以使用客户端设备请求(服务请求1434)由云基础设施系统1402使用接口1414、1416和1418中的一个或多个接口提供的一个或多个服务。例如,客户可以访问在线商店、浏览由云基础设施系统1402提供的云服务并且针对由云基础设施系统1402提供的、客户希望订阅的一个或多个服务下订阅订单。服务请求可以包括识别客户和客户期望订阅的一个或多个服务的信息。例如,客户可以针对由云基础设施系统1402提供的服务下订阅订单。作为订单的一部分,客户可以提供识别要针对其提供服务的聊天机器人系统的信息并且可选地提供针对聊天机器人系统的一个或多个凭证。
在某些示例(如图14所描绘的示例)中,云基础设施系统1402可以包括被配置成处理新订单的订单管理子系统(OMS)1420。作为该处理的一部分,OMS 1420可以被配置为:为客户创建账户(如果尚未创建的话);从客户接收要用于向客户开具账单的账单和/或计费信息以用于向客户提供所请求的服务;验证客户信息;在验证之后,为客户预订订单;并且策划各种工作流程来准备订单以进行供给。
一旦被正确地验证,那么,OMS 1420就可以调用被配置成为订单供给资源(包括处理资源、存储器资源和联网资源)的订单供给子系统(OPS)1424。供给可以包括为订单分配资源并配置资源以促进客户订单所请求的服务。为订单供给资源的方式和所供给的资源的类型可以取决于客户已经订购的云服务的类型。例如,根据一个工作流程,OPS 1424可以被配置为确定正被请求的特定云服务并且识别可能已经为该特定云服务预先配置的群的数量。为订单分配的群的数量可以取决于所请求服务的大小/量/层级/范围。例如,可以基于服务所支持的用户的数量、正在请求的服务的持续时间等来确定要分配的群的数量。然后,可以为特定的请求客户定制分配的群以用于提供所请求服务。
在某些示例中,如上文所描述的设置阶段处理可以作为供给过程的一部分由云基础设施系统1402来执行。云基础设施系统1402可以生成应用程序ID并从云基础设施系统1402自身提供的存储虚拟机中或从除云基础设施系统1402以外的其他系统提供的存储虚拟机中为应用程序选择存储虚拟机。
云基础设施系统1402可以向请求客户发送响应或通知1444,以指示何时所请求服务现在已准备好使用。在一些实例中,可以向客户发送使客户能够开始使用和利用所请求服务的益处的信息(例如,链接)。在某些示例中,对于请求服务的客户,响应可以包括由云基础设施系统1402生成的聊天机器人系统ID和识别由云基础设施系统1402为对应于聊天机器人系统ID的聊天机器人系统选择的聊天机器人系统的信息。
云基础设施系统1402可可以向多个客户提供服务。对于每个客户,云基础设施系统1402负责管理与从客户接收的一个或多个订阅订单有关的信息、维护与订单相关的客户数据并且向客户提供所请求服务。云基础设施系统1402还可以收集关于客户使用所订阅服务的使用统计数据。例如,可以收集针对所使用的存储量、所传送的数据量、用户的数量以及系统开机时间量和系统停机时间量等的统计数据。可以使用该使用信息向客户开具账单。可以例如以月为周期完成开具账单。
云基础设施系统1402可以并行地向多个客户提供服务。云基础设施系统1402可以存储针对这些客户的信息(可能包括专有信息)。在某些示例中,云基础设施系统1402包括被配置成管理客户信息并提供对所管理信息的分离使得与一个客户有关的信息不能被另一个客户访问的身份管理子系统(IMS)1428。IMS 1428可以被配置为提供如身份服务等各种安全有关服务,如信息访问管理、认证和授权服务、用于管理客户身份和角色以及相关功能的服务等。
图15图示了计算机系统1500的示例。在一些示例中,计算机系统1500可以用于实施分布式环境内的任何数字助理或聊天机器人系统以及上文所描述的各种服务器和计算机系统。如图15所示,计算机系统1500包括各种子系统,该子系统包括经由总线子系统1502与多个其他子系统通信的处理子系统1504。这些其他子系统可以包括处理加速单元1506、I/O子系统1508、存储子系统1518和通信子系统1524。存储子系统1518可以包括非暂态计算机可读存储介质,该非暂态计算机可读存储介质包括存储介质1522和系统存储器1510。
总线子系统1502提供用于使计算机系统1500的各个部件和子系统按预期彼此通信的机构。虽然总线子系统1502被示意性地示出为单个总线,但是总线子系统的替代性示例可以利用多个总线。总线子系统1502可以是包括存储器总线或存储器控制器、外围总线、使用各种总线架构中的任何一种的局部总线等的多种类型的总线结构中的任何一种。例如,这种架构可以包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线以及外围部件互连(PCI)总线(该PCI总线可以被实施为被制造成IEEE P1386.1标准的夹层(Mezzanine)总线)等。
处理子系统1504控制计算机系统1500的操作并且可以包括一个或多个处理器、专用集成电路(ASIC)或现场可编程门阵列(FPGA)。处理器可以包括单核处理器或多核处理器。计算机系统1500的处理资源可以被组织成一个或多个处理单元1532、1534等。处理单元可以包括一个或多个处理器、来自相同或不同处理器的一个或多个核、核与处理器的组合或核与处理器的其他组合。在一些示例中,处理子系统1504可以包括如图形处理器、数字信号处理器(DSP)等一个或多个专用协处理器。在一些示例中,处理子系统1504的处理单元中的一些或全部可以使用如专用集成电路(ASIC)或现场可编程门阵列(FPGA)等定制电路来实施。
在一些示例中,处理子系统1504中的处理单元可以执行存储在系统存储器1510中或存储在计算机可读存储介质1522上的指令。在各种示例中,处理单元可以执行各种程序或代码指令并且可以维护多个同时执行的程序或过程。在任何给定时间,要执行的程序代码中的一些或全部可以驻留在系统存储器1510中和/或计算机可读存储介质1522上(潜在地包括驻留在一个或多个存储设备上)。通过适合的编程,处理子系统1504可以提供上文所描述的各种功能。在计算机系统1500在执行一个或多个虚拟机的实例中,可以向每个虚拟机分配一个或多个处理单元。
在某些示例中,可以可选地提供处理加速单元1506以用于执行定制处理或用于卸载处理子系统1504所执行的处理中的一些处理,从而加速计算机系统1500所执行的总体处理。
I/O子系统1508可以包括用于向计算机系统1500输入信息和/或用于从或经由计算机系统1500输出信息的设备和机构。通常,使用术语输入设备旨在包括用于向计算机系统1500输入信息的所有可能类型的设备和机构。用户接口输入设备可以包括例如键盘、如鼠标或轨迹球等指向设备、合并到显示器中的触摸板或触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、具有话音命令识别系统的音频输入设备、麦克风以及其他类型的输入设备。用户接口输入设备还可以包括运动感测和/或姿势识别设备,如使得用户能够控制输入设备并与输入设备交互的Microsoft运动传感器、Microsoft360游戏控制器、提供用于使用姿势和口述命令接收输入的接口的设备。用户接口输入设备还可以包括眼部姿势识别设备,如检测来自用户的眼部活动(例如,在拍照和/或进行菜单选择时的“眨眼”)并将眼部姿势变换为到输入设备(如Google)的输入的Google眨眼检测器。另外,用户接口输入设备可以包括使得用户能够通过话音命令与话音识别系统(例如,导航器)交互的话音识别感测设备。
用户接口输入设备的其他示例包括但不限于三维(3D)鼠标、操纵杆或指向杆、游戏手柄和图形板、以及音频/视觉设备(如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3D扫描仪、3D打印机、激光测距仪、以及眼睛注视跟踪设备)。另外,用户接口输入设备可以包括例如医学成像输入设备,如计算机断层扫描、磁共振成像、正电子发射断层扫描和医学超声检查设备。用户接口输入设备还可以包括例如音频输入设备,如MIDI键盘、数码乐器等。
通常,使用术语输出设备旨在包括用于从计算机系统1500向用户或其他计算机输出信息的所有可能类型的设备和机构。用户接口输出设备可以包括显示子系统、指示灯或如音频输出设备等非视觉显示器。显示子系统可以是阴极射线管(CRT)、平板设备(如使用液晶显示器(LCD)或等离子显示器的平板设备)、投影设备、触摸屏等。例如,用户接口输出设备可以包括但不限于在视觉上传达文本、图形和音频/视频信息的各种显示设备,如监视器、打印机、扬声器、头戴式耳机、汽车导航系统、绘图仪、话音输出设备和调制解调器。
存储子系统1518提供用于存储计算机系统1500使用的信息和数据的储存库或数据存储。存储子系统1518提供用于存储提供一些示例的功能的基本编程和数据构造的有形非暂态计算机可读存储介质。存储子系统1518可以存储当由处理子系统1504执行时提供以上所描述的功能的软件(例如,程序、代码模块、指令)。软件可以由处理子系统1504的一个或多个处理单元执行。存储子系统1518还可以根据本公开的教导提供认证。
存储子系统1518可以包括一个或多个非暂态存储器设备,该一个或多个非暂态存储器设备包括易失性存储器设备和非易失性存储器设备。如图15所示,存储子系统1518包括系统存储器1510和计算机可读存储介质1522。系统存储器1510可以包括多个存储器,该多个存储器包括用于在程序执行期间存储指令和数据的易失性主随机存取存储器(RAM)和其中存储有固定指令的非易失性只读存储器(ROM)或闪速存储器。在一些实施方式中,包含诸如在启动期间帮助在计算机系统1500内的元件之间传送信息的基本例程的基本输入/输出系统(BIOS)通常可以存储在ROM中。RAM通常包含目前正由处理子系统1504操作并执行的数据和/或程序模块。在一些实施方式中,系统存储器1510可以包括如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等多种不同类型的存储器。
通过示例而非限制的方式,如图15所描绘的,系统存储器1510可以加载正在执行的应用程序1512(该应用程序可以包括如Web浏览器、中间层应用程序、关系数据库管理系统(RDBMS)等各种应用程序)、程序数据1514和操作系统1516。通过示例的方式,操作系统1516可以包括各种版本的MicrosoftApple和/或Linux操作系统、各种可商购获得的或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、GoogleOS等)和/或如iOS、电话、OS、OS、OS操作系统等移动操作系统等。
计算机可读存储介质1522可以存储提供一些示例的功能的编程和数据构造。计算机可读介质1522可以为计算机系统1500提供对计算机可读指令、数据结构、程序模块和其他数据的存储。当由处理子系统1504执行时提供以上所描述的功能的软件(程序、代码模块、指令)可以存储在存储子系统1518中。通过示例的方式,计算机可读存储介质1522可以包括如硬盘驱动器、磁盘驱动器、光盘驱动器(如CD ROM、DVD、Blu-盘或其他光学介质)等非易失性存储器。计算机可读存储介质1522可以包括但不限于驱动器、闪速存储器卡、通用串行总线(USB)闪速存储器驱动器、安全数字(SD)卡、DVD盘、数字录像带等。计算机可读存储介质1522还可以包括基于非易失性存储器的固态驱动器(SSD)(例如基于闪速存储器的SSD、企业级闪速存储器驱动器、固态ROM等)、基于如固态RAM、动态RAM、静态RAM等易失性存储器的SSD、基于DRAM的SSD、磁阻RAM(MRAM)SSD以及使用DRAM和基于闪速存储器的SSD的组合的混合SSD。
在某些示例中,存储子系统1518还可以包括可以进一步连接到计算机可读存储介质1522的计算机可读存储介质读取器1520。读取器1520可以从如盘、闪速存储器驱动器等存储器设备接收数据并且被配置为从该存储器设备读取数据。
在某些示例中,计算机系统1500可以支持虚拟化技术,包括但不限于对处理和存储器资源的虚拟化。例如,计算机系统1500可以提供对执行一个或多个虚拟机的支持。在某些示例中,计算机系统1500可以执行如促进对虚拟机的配置和管理的管理程序等程序。每个虚拟机可以分配有存储器、计算(例如,处理器、核)、I/O和联网资源。每个虚拟机通常独立于其他虚拟机运行。虚拟机通常运行其自身的操作系统,该操作系统可以与由计算机系统1500执行的其他虚拟机执行的操作系统相同或不同。因此,多个操作系统可以潜在地由计算机系统1500同时运行。
通信子系统1524提供到其他计算机系统和网络的接口。通信子系统1524用作用于从其他系统接收数据并且从计算机系统1500向其他系统传输数据的接口。例如,通信子系统1524可以使得计算机系统1500能够经由因特网构建到一个或多个客户端设备的通信通道以用于从客户端设备接收信息并向客户端设备发送信息。例如,当计算机系统1500用于实施图1所描绘的机器人系统120时,通信子系统可以用于与针对应用程序选择的聊天机器人系统通信。
通信子系统1524可以支持有线通信协议和/或无线通信协议两者。在某些示例中,通信子系统1524可以包括用于访问无线声音和/或数据网络的射频(RF)收发器部件(例如,使用蜂窝电话技术、如3G、4G或EDGE(全球演进增强型数据速率)等先进的数据网络技术、WiFi(IEEE 802.XX家庭标准)、或其他移动通信技术、或其任何组合)、全球定位系统(GPS)接收器部件和/或其他部件。在一些示例中,除了无线接口之外或替代无线接口,通信子系统1524可以提供有线网络连接性(例如,以太网)。
通信子系统1524可以接收并传输各种形式的数据。在一些示例中,除了其他形式之外,通信子系统1524可以接收结构化和/或非结构化数据馈送1526、事件流1528、事件更新1530等形式的输入通信。例如,通信子系统1524可以被配置为从社交媒体网络和/或其他通信服务的用户实时地接收(或发送)数据馈送1526,如馈送、更新、web馈送(如丰富站点摘要(RSS)馈送)和/或来自一个或多个第三方信息源的实时更新。
在某些示例中,通信子系统1524可以被配置成接收连续数据流形式的数据,该连续数据流可以包括(可以没有显式结束的本质上连续的或无界的)实时事件的事件流1528和/或事件更新1530。生成连续数据的应用程序的示例可以包括例如传感器数据应用程序、财务收报机、网络性能测量工具(例如,网络监测和流量管理应用程序)、点击流分析工具、汽车交通监测等。
通信子系统1524还可以被配置为将数据从计算机系统1500传送到其他计算机系统或网络。可以将数据以如结构化和/或非结构化数据馈送1526、事件流1528、事件更新1530等各种不同的形式传送到可以与耦接至计算机系统1500的一个或多个流数据源计算机通信的一个或多个数据库。
计算机系统1500可以是各种类型中的一种,包括手持便携式设备(例如,蜂窝电话、计算平板计算机、PDA)、可穿戴设备(例如,Google头戴式显示器)、个人计算机、工作站、主机、自助服务终端、服务器机架、或任何其他数据处理系统。由于计算机和网络的不断变化的性质,对图15所描绘的计算机系统1500的描述旨在仅作为特定示例。具有比图15所描绘的系统更多或更少的部件的许多其他配置是可能的。基于本公开和本文所提供的教导,应理解,有其他方式和/或方法来实施各种示例。
虽然已经描述了特定示例,但是各种修改、更改、替代性构造和等同物是可能的。示例不局限于在某些特定数据处理环境内的操作,而是自由地在多个数据处理环境内操作。另外,尽管已经使用特定系列的事务和步骤描述了某些示例,但是对于本领域技术人员而言应当显而易见的是,这不旨在是限制性的。虽然一些流程图将操作描述为顺序过程,但是许多操作可以并行地或同时地执行。另外,可以重新布置操作的顺序。过程可以具有图中未包括的另外的步骤。可以单独地或联合地使用上文所描述的示例的各种特征和方面。
进一步地,虽然已经使用硬件和软件的特定组合描述了某些示例,但是应当认识到,硬件和软件的其他组合也是可能的。某些示例可以仅以硬件或仅以软件或使用其组合实施。本文所描述的各种过程可以在相同处理器或不同处理器上以任何组合实施。
在将设备、系统、部件或模块描述为被配置成执行某些操作或功能的情况下,这种配置可以例如通过将电子电路设计成执行操作、通过对可编程电子电路(如微处理器)进行编程以执行操作(例如通过执行计算机指令或代码)或通过被编程为执行存储在非暂态存储器介质上的代码或指令的处理器或核或其任何组合来完成。过程可以使用包括但不限于用于过程间通信的传统技术的各种技术进行通信,并且不同的过程对可以使用不同的技术,或者相同的过程对可以在不同的时间使用不同的技术。
本公开中给出了具体细节以提供对示例的透彻理解。然而,可以在没有这些具体细节的情况下实践示例。例如,已经示出了公知的电路、过程、算法、结构和技术,而没有不必要的细节,以避免模糊示例。此描述仅提供了示例性示例并且不旨在限制其他示例的范围、适用性或配置。而是,先前对示例的描述将为本领域技术人员提供用于实施各种示例的使能描述。可以对元件的功能和布置作出各种改变。
因此,应当从说明性而非限制性意义上看待本说明书和附图。然而,将明显的是,在不脱离权利要求中阐述的更广泛的精神和范围的情况下,可以对其作出添加、减少、删除以及其他修改和改变。因此,虽然已经描述了具体示例,但是这些示例不旨在是限制性的。各种修改和等同物均在所附权利要求的范围内。
在前述说明书中,参考本公开的具体示例描述了本公开的各方面,但是本领域技术人员将认识到,本公开并不限于此。可以单独地或联合地使用上文所描述的公开的各种特征和方面。进一步地,在不脱离说明书的更广泛的精神和范围的情况下,可以在本文所描述的那些环境和应用程序之外的任何数量的环境和应用环境中利用示例。因此,说明书和附图被视为是说明性的而非限制性的。
在前述描述中,出于说明的目的,以特定顺序描述了方法。应当理解,在替代性示例中,可以以与所描述的顺序不同的顺序来执行方法。还应当理解,上文所描述的方法可以由硬件部件执行或者可以体现在机器可执行指令的序列中,该机器可执行指令可以用于使机器(例如,利用指令编程的通用或专用处理器或逻辑电路)执行该方法。这些机器可执行指令可以存储在一个或多个机器可读介质(例如CD-ROM或其他类型的光盘、软盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡、闪速存储器或适合于存储电子指令的其他类型的机器可读介质)上。可替代地,方法可以由硬件和软件的组合来执行。
在将部件描述为被配置成执行某些操作的情况下,这种配置可以例如通过设计用于执行该操作的电子电路或其他硬件、通过对用于执行该操作的可编程电子电路(例如,微处理器或其他适合的电子电路)进行编程或其任何组合来完成。
尽管本文已经详细描述了本申请的说明性示例,但是应当理解,可以以其他方式不同地体现并采用本发明概念,并且所附权利要求旨在被解释为包括这种变化,受现有技术限制的情况除外。
Claims (63)
1.一种方法,包括:
由聊天机器人系统接收由与所述聊天机器人系统交互的用户生成的话语,其中,所述话语包括从所述用户的语音输入转换的文本数据;
由所述聊天机器人系统将所述话语输入到包括一系列网络层的机器学习模型中,其中,所述一系列网络层中的最终网络层包括logit函数,所述logit函数将可解析分类的第一概率变换为表示第一logit值的第一实数并且将不可解析分类的第二概率变换为表示第二logit值的第二实数;
由所述机器学习模型确定所述可解析分类的所述第一概率和所述不可解析分类的所述第二概率;
由所述机器学习模型使用所述logit函数将所述可解析分类的所述第一概率映射到所述第一logit值,其中,用于映射所述第一概率的所述logit函数是与所述可解析分类的所述第一概率相对应的几率的对数,所述几率的对数由与所述可解析分类相关联的分布的质心加权;
由所述机器学习模型将所述不可解析分类的所述第二概率映射到增强型logit值,其中,所述增强型logit值是独立于用于映射所述第一概率的所述logit函数而确定的第三实数,其中,所述增强型logit值包括:(i)基于从训练数据集生成的一组logit值确定的统计值;(ii)选自由与所述不可解析分类的所述第二概率相对应的几率的第一对数所定义的值范围的有界值,所述几率的第一对数由限界函数约束到值范围并且由与所述不可解析分类相关联的分布的质心加权;(iii)由与所述不可解析分类的所述第二概率相对应的几率的第二对数生成的加权值,所述几率的第二对数由所述限界函数约束到所述值范围、由缩放因子缩放、并且由与所述不可解析分类相关联的所述分布的所述质心加权;(iv)基于对所述机器学习模型的超参数调谐生成的超参数优化值;或者(v)在对所述机器学习模型的训练期间调整的学习值;以及
由所述聊天机器人系统基于所述第一logit值和所述增强型logit值将所述话语分类为所述可解析分类或所述不可解析分类。
2.如权利要求1所述的方法,进一步包括:由所述聊天机器人系统基于将所述话语分类为所述可解析分类或所述不可解析分类来对所述用户进行响应。
3.如权利要求1或权利要求2所述的方法,其中,所述已解析分类是域内和范围内的技能或意图,并且所述未解析分类是域外或范围外的技能或意图。
4.如任一前述权利要求所述的方法,其中,所述增强型logit值是基于从所述训练数据集生成的所述一组logit值确定的所述统计值,并且其中,确定所述统计值包括:
访问所述训练数据集的子集,其中,所述训练数据集的所述子集包括话语子集,并且其中,所述话语子集中的每个话语与所述不可解析分类相关联;
生成一组训练logit值,其中,所述一组训练logit值中的每个训练logit值是通过将所述机器学习模型应用于所述话语子集中的相应话语生成的;
确定所述统计值,其中,所述统计值表示所述一组训练logit值;以及
将所述统计值设置为所述增强型logit值。
5.如权利要求4所述的方法,其中,所述统计值是所述一组训练logit值的中值。
6.如权利要求4所述的方法,其中,所述统计值是所述一组训练logit值的平均值。
7.如权利要求1至3中任一项所述的方法,其中,所述增强型logit值是所述有界值,并且其中,所述logit函数由所述限界函数约束到所述值范围。
8.如权利要求1至3中任一项所述的方法,其中,所述增强型logit值是所述加权值,并且其中,所述logit函数由所述限界函数约束到所述值范围并且由所述缩放因子缩放。
9.如权利要求8所述的方法,其中,第一值被指派给所述logit函数的所述缩放因子并且第二值被指派给与所述不可解析分类的所述第二概率相对应的所述几率的第二对数的所述缩放因子,并且其中,所述第二值大于所述第一值。
10.如权利要求1至3中任一项所述的方法,其中,所述增强型logit值是所述超参数优化值,并且其中,确定所述超参数优化值包括:
访问所述训练数据集的子集,其中,所述训练数据集的所述子集包括话语子集,并且其中,所述话语子集中的每个话语与所述不可解析分类相关联;
生成一组训练logit值,其中,所述一组训练logit值中的每个训练logit值是通过将所述机器学习模型应用于所述话语子集中的相应话语生成的;
确定所述统计值,其中,所述统计值表示所述一组训练logit值;
调整所述机器学习模型的一个或多个超参数以生成优化的统计值;以及
将所述优化的统计值设置为所述增强型logit值。
11.一种系统,包括:
一个或多个数据处理器;以及
包含指令的非暂态计算机可读存储介质,所述指令当在所述一个或多个数据处理器上执行时使所述一个或多个数据处理器执行包括以下的操作:
接收由与聊天机器人系统交互的用户生成的话语,其中,所述话语包括从所述用户的语音输入转换的文本数据;
将所述话语输入到包括一系列网络层的机器学习模型中,其中,所述一系列网络层中的最终网络层包括logit函数,所述logit函数将可解析分类的第一概率变换为表示第一logit值的第一实数并且将不可解析分类的第二概率变换为表示第二logit值的第二实数;
由所述机器学习模型确定所述可解析分类的所述第一概率和所述不可解析分类的所述第二概率;
由所述机器学习模型使用所述logit函数将所述可解析分类的所述第一概率映射到所述第一logit值,其中,用于映射所述第一概率的所述logit函数是与所述可解析分类的所述第一概率相对应的几率的对数,所述几率的对数由与所述可解析分类相关联的分布的质心加权;
由所述机器学习模型将所述不可解析分类的所述第二概率映射到增强型logit值,其中,所述增强型logit值是独立于用于映射所述第一概率的所述logit函数而确定的第三实数,其中,所述增强型logit值包括:(i)基于从训练数据集生成的一组logit值确定的统计值;(ii)选自由与所述不可解析分类的所述第二概率相对应的几率的第一对数所定义的值范围的有界值,所述几率的第一对数由限界函数约束到值范围并且由与所述不可解析分类相关联的分布的质心加权;(iii)由与所述不可解析分类的所述第二概率相对应的几率的第二对数生成的加权值,所述几率的第二对数由所述限界函数约束到所述值范围、由缩放因子缩放、并且由与所述不可解析分类相关联的所述分布的所述质心加权;(iv)基于对所述机器学习模型的超参数调谐生成的超参数优化值;或者(v)在对所述机器学习模型的训练期间调整的学习值;以及
基于所述第一logit值和所述增强型logit值将所述话语分类为所述可解析分类或所述不可解析分类。
12.如权利要求11所述的系统,其中,所述指令进一步使所述一个或多个数据处理器执行包括以下的操作:
基于将所述话语分类为所述可解析分类或所述不可解析分类来对所述用户进行响应。
13.如权利要求11或权利要求12所述的系统,其中,所述已解析分类是域内和范围内的技能或意图,并且所述未解析分类是域外或范围外的技能或意图。
14.如权利要求11至13中任一项所述的系统,其中,所述增强型logit值是基于从所述训练数据集生成的所述一组logit值确定的所述统计值,并且其中,确定所述统计值包括:
访问所述训练数据集的子集,其中,所述训练数据集的所述子集包括话语子集,并且其中,所述话语子集中的每个话语与所述不可解析分类相关联;
生成一组训练logit值,其中,所述一组训练logit值中的每个训练logit值是通过将所述机器学习模型应用于所述话语子集中的相应话语生成的;
确定所述统计值,其中,所述统计值表示所述一组训练logit值;以及
将所述统计值设置为所述增强型logit值。
15.如权利要求14所述的系统,其中,所述统计值是所述一组训练logit值的中值。
16.如权利要求14所述的系统,其中,所述统计值是所述一组训练logit值的平均值。
17.如权利要求11至13中任一项所述的系统,其中,所述增强型logit值是所述有界值,并且其中,所述logit函数由所述限界函数约束到所述值范围。
18.如权利要求11至13中任一项所述的系统,其中,所述增强型logit值是所述加权值,并且其中,所述logit函数由所述限界函数约束到所述值范围并且由所述缩放因子缩放。
19.如权利要求18所述的系统,其中,第一值被指派给所述logit函数的所述缩放因子并且第二值被指派给与所述不可解析分类的所述第二概率相对应的所述几率的第二对数的所述缩放因子,并且其中,所述第二值大于所述第一值。
20.如权利要求11至13中任一项所述的系统,其中,所述增强型logit值是所述超参数优化值,并且其中,确定所述超参数优化值包括:
访问所述训练数据集的子集,其中,所述训练数据集的所述子集包括话语子集,并且其中,所述话语子集中的每个话语与所述不可解析分类相关联;
生成一组训练logit值,其中,所述一组训练logit值中的每个训练logit值是通过将所述机器学习模型应用于所述话语子集中的相应话语生成的;
确定所述统计值,其中,所述统计值表示所述一组训练logit值;
调整所述机器学习模型的一个或多个超参数以生成优化的统计值;以及
将所述优化的统计值设置为所述增强型logit值。
21.一种有形地体现在非暂态机器可读存储介质中的计算机程序产品,所述计算机程序产品包括被配置为使一个或多个数据处理器执行包括以下的操作的指令:
接收由与聊天机器人系统交互的用户生成的话语,其中,所述话语包括从所述用户的语音输入转换的文本数据;
将所述话语输入到包括一系列网络层的机器学习模型中,其中,所述一系列网络层中的最终网络层包括logit函数,所述logit函数将可解析分类的第一概率变换为表示第一logit值的第一实数并且将不可解析分类的第二概率变换为表示第二logit值的第二实数;
由所述机器学习模型确定所述可解析分类的所述第一概率和所述不可解析分类的所述第二概率;
由所述机器学习模型使用所述logit函数将所述可解析分类的所述第一概率映射到所述第一logit值,其中,用于映射所述第一概率的所述logit函数是与所述可解析分类的所述第一概率相对应的几率的对数,所述几率的对数由与所述可解析分类相关联的分布的质心加权;
由所述机器学习模型将所述不可解析分类的所述第二概率映射到增强型logit值,其中,所述增强型logit值是独立于用于映射所述第一概率的所述logit函数而确定的第三实数,其中,所述增强型logit值包括:(i)基于从训练数据集生成的一组logit值确定的统计值;(ii)选自由与所述不可解析分类的所述第二概率相对应的几率的第一对数所定义的值范围的有界值,所述几率的第一对数由限界函数约束到值范围并且由与所述不可解析分类相关联的分布的质心加权;(iii)由与所述不可解析分类的所述第二概率相对应的几率的第二对数生成的加权值,所述几率的第二对数由所述限界函数约束到所述值范围、由缩放因子缩放、并且由与所述不可解析分类相关联的所述分布的所述质心加权;(iv)基于对所述机器学习模型的超参数调谐生成的超参数优化值;或者(v)在对所述机器学习模型的训练期间调整的学习值;以及
基于所述第一logit值和所述增强型logit值将所述话语分类为所述可解析分类或所述不可解析分类。
22.如权利要求21所述的计算机程序产品,其中,所述指令进一步使所述一个或多个数据处理器执行包括以下的操作:
基于将所述话语分类为所述可解析分类或所述不可解析分类来对所述用户进行响应。
23.如权利要求21或权利要求22所述的计算机程序产品,其中,所述已解析分类是域内和范围内的技能或意图,并且所述未解析分类是域外或范围外的技能或意图。
24.如权利要求21至23中任一项所述的计算机程序产品,其中,所述增强型logit值是基于从所述训练数据集生成的所述一组logit值确定的所述统计值,并且其中,确定所述统计值包括:
访问所述训练数据集的子集,其中,所述训练数据集的所述子集包括话语子集,并且其中,所述话语子集中的每个话语与所述不可解析分类相关联;
生成一组训练logit值,其中,所述一组训练logit值中的每个训练logit值是通过将所述机器学习模型应用于所述话语子集中的相应话语生成的;
确定所述统计值,其中,所述统计值表示所述一组训练logit值;以及
将所述统计值设置为所述增强型logit值。
25.如权利要求24所述的计算机程序产品,其中,所述统计值是所述一组训练logit值的中值。
26.如权利要求24所述的计算机程序产品,其中,所述统计值是所述一组训练logit值的平均值。
27.如权利要求21至23中任一项所述的计算机程序产品,其中,所述增强型logit值是所述有界值,并且其中,所述logit函数由所述限界函数约束到所述值范围。
28.如权利要求21至23中任一项所述的计算机程序产品,其中,所述增强型logit值是所述加权值,并且其中,所述logit函数由所述限界函数约束到所述值范围并且由所述缩放因子缩放。
29.如权利要求28所述的计算机程序产品,其中,第一值被指派给所述logit函数的所述缩放因子并且第二值被指派给与所述不可解析分类的所述第二概率相对应的所述几率的第二对数的所述缩放因子,并且其中,所述第二值大于所述第一值。
30.如权利要求21至23中任一项所述的计算机程序产品,其中,所述增强型logit值是所述超参数优化值,并且其中,确定所述超参数优化值包括:
访问所述训练数据集的子集,其中,所述训练数据集的所述子集包括话语子集,并且其中,所述话语子集中的每个话语与所述不可解析分类相关联;
生成一组训练logit值,其中,所述一组训练logit值中的每个训练logit值是通过将所述机器学习模型应用于所述话语子集中的相应话语生成的;
确定所述统计值,其中,所述统计值表示所述一组训练logit值;
调整所述机器学习模型的一个或多个超参数以生成优化的统计值;以及
将所述优化的统计值设置为所述增强型logit值。
31.一种方法,包括:
由训练子系统接收训练数据集,其中,所述训练数据集包括由与聊天机器人系统交互的用户生成的多个话语,其中,所述多个话语中的至少一个话语包括从所述用户的语音输入转换的文本数据;
由所述训练子系统访问机器学习模型,所述机器学习模型包括一系列网络层,其中,所述一系列网络层中的最终网络层包括logit函数,所述logit函数将可解析分类的第一概率变换为表示第一logit值的第一实数并且将不可解析分类的第二概率变换为表示第二logit值的第二实数;
由所述训练子系统利用所述训练数据集来训练所述机器学习模型,使得所述机器学习模型:
确定所述可解析分类的所述第一概率和所述不可解析分类的所述第二概率;并且
使用所述logit函数将所述可解析分类的所述第一概率映射到所述第一logit值,其中,用于映射所述第一概率的所述logit函数是与所述可解析分类的所述第一概率相对应的几率的对数,所述几率的对数由与所述可解析分类相关联的分布的质心加权;
由所述训练子系统将所述logit函数替换为增强型logit值,使得所述不可解析分类的所述第二概率被映射到所述增强型logit值,其中:
所述增强型logit值是独立于用于映射所述第一概率的所述logit函数而确定的第三实数;并且
所述增强型logit值包括:(i)基于从所述训练数据集生成的一组logit值确定的统计值;(ii)选自由与所述不可解析分类的所述第二概率相对应的几率的第一对数所定义的值范围的有界值,所述几率的第一对数由限界函数约束到值范围并且由与所述不可解析分类相关联的分布的质心加权;(iii)由与所述不可解析分类的所述第二概率相对应的几率的第二对数生成的加权值,所述几率的第二对数由所述限界函数约束到所述值范围、由缩放因子缩放、并且由与所述不可解析分类相关联的所述分布的所述质心加权;(iv)基于对所述机器学习模型的超参数调谐生成的超参数优化值;或者(v)在对所述机器学习模型的训练期间调整的学习值;以及
由所述训练子系统部署具有所述增强型logit值的经训练的所述机器学习模型。
32.如权利要求31所述的方法,进一步包括:
从所述训练数据集生成经扩充的训练数据集,其中,所述经扩充的训练数据集包括变换所述多个话语中的特定话语的一个或多个副本,其中,所述特定话语与将所述特定话语识别为与所述不可解析分类相关联的训练标签相关联;以及
使用所述经扩充的训练数据集来训练所述机器学习模型。
33.如权利要求32所述的方法,其中,变换所述特定话语的一个或多个副本包括执行以下中的一项或多项:(i)对所述特定话语的所述一个或多个副本进行回译;(ii)对所述特定话语的所述一个或多个副本的一个或多个标记进行同义词替换;(iii)将标记随机插入到所述特定话语的所述一个或多个副本中;(iv)在所述特定话语的所述一个或多个副本的两个标记之间进行交换;或者(v)随机删除所述特定话语的所述一个或多个副本的一个或多个标记。
34.如权利要求31至33中任一项所述的方法,其中,所述增强型logit值是基于从所述训练数据集生成的所述一组logit值确定的所述统计值,并且其中,训练所述机器学习模型进一步包括:
访问所述训练数据集的子集,其中,所述训练数据集的所述子集包括所述多个话语的子集,并且其中,所述话语子集中的每个话语与所述不可解析分类相关联;
生成一组训练logit值,其中,所述一组训练logit值中的每个训练logit值是通过将所述机器学习模型应用于所述话语子集种的相应话语生成的;
确定所述统计值,其中,所述统计值表示所述一组训练logit值;以及
将所述统计值设置为所述增强型logit值。
35.如权利要求34所述的方法,其中,所述统计值是所述一组训练logit值的中值。
36.如权利要求34所述的方法,其中,所述统计值是所述一组训练logit值的平均值。
37.如权利要求31至33中任一项所述的方法,其中,所述增强型logit值是所述有界值,并且其中,所述logit函数由所述限界函数约束到所述值范围。
38.如权利要求31至33中任一项所述的方法,其中,所述增强型logit值是所述加权值,并且其中,所述logit函数由所述限界函数约束到所述值范围并且由所述缩放因子缩放。
39.如权利要求38所述的方法,其中,第一值被指派给所述logit函数的所述缩放因子并且第二值被指派给与所述不可解析分类的所述第二概率相对应的所述几率的第二对数的所述缩放因子,并且其中,所述第二值大于所述第一值。
40.如权利要求38所述的方法,其中,训练所述机器学习模型进一步包括调整用于所述不可解析分类的所述缩放因子。
41.如权利要求31至33中任一项所述的方法,其中,所述增强型logit值是所述超参数优化值,并且其中,训练所述机器学习模型进一步包括:
访问所述训练数据集的子集,其中,所述训练数据集的所述子集包括话语子集,并且其中,所述话语子集中的每个话语与所述不可解析分类相关联;
生成一组训练logit值,其中,所述一组训练logit值中的每个训练logit值是通过将所述机器学习模型应用于所述话语子集中的相应话语生成的;
确定所述统计值,其中,所述统计值表示所述一组训练logit值;
调整所述机器学习模型的一个或多个超参数以生成优化的统计值;以及
将所述优化的统计值设置为所述增强型logit值。
42.一种系统,包括:
一个或多个数据处理器;以及
包含指令的非暂态计算机可读存储介质,所述指令当在所述一个或多个数据处理器上执行时使所述一个或多个数据处理器执行包括以下的操作:
接收训练数据集,其中,所述训练数据集包括由与聊天机器人系统交互的用户生成的多个话语,其中,所述多个话语中的至少一个话语包括从所述用户的语音输入转换的文本数据;
访问机器学习模型,所述机器学习模型包括一系列网络层,其中,所述一系列网络层中的最终网络层包括logit函数,所述logit函数将可解析分类的第一概率变换为表示第一logit值的第一实数并且将不可解析分类的第二概率变换为表示第二logit值的第二实数;
利用所述训练数据集来训练所述机器学习模型,使得所述机器学习模型:
确定所述可解析分类的所述第一概率和所述不可解析分类的所述第二概率;并且
使用所述logit函数将所述可解析分类的所述第一概率映射到所述第一logit值,其中,用于映射所述第一概率的所述logit函数是与所述可解析分类的所述第一概率相对应的几率的对数,所述几率的对数由与所述可解析分类相关联的分布的质心加权;
将所述logit函数替换为增强型logit值,使得所述不可解析分类的所述第二概率被映射到所述增强型logit值,其中:
所述增强型logit值是独立于用于映射所述第一概率的所述logit函数而确定的第三实数;并且
所述增强型logit值包括:(i)基于从所述训练数据集生成的一组logit值确定的统计值;(ii)选自由与所述不可解析分类的所述第二概率相对应的几率的第一对数所定义的值范围的有界值,所述几率的第一对数由限界函数约束到值范围并且由与所述不可解析分类相关联的分布的质心加权;(iii)由与所述不可解析分类的所述第二概率相对应的几率的第二对数生成的加权值,所述几率的第二对数由所述限界函数约束到所述值范围、由缩放因子缩放、并且由与所述不可解析分类相关联的所述分布的所述质心加权;(iv)基于对所述机器学习模型的超参数调谐生成的超参数优化值;或者(v)在对所述机器学习模型的训练期间调整的学习值;以及
部署具有所述增强型logit值的经训练的所述机器学习模型。
43.如权利要求42所述的系统,其中,所述指令进一步使所述一个或多个数据处理器执行包括以下的操作:
从所述训练数据集生成经扩充的训练数据集,其中,所述经扩充的训练数据集包括变换所述多个话语中的特定话语的一个或多个副本,其中,所述特定话语与将所述特定话语识别为与所述不可解析分类相关联的训练标签相关联;以及
使用所述经扩充的训练数据集来训练所述机器学习模型。
44.如权利要求43所述的系统,其中,变换所述特定话语的一个或多个副本包括执行以下中的一项或多项:(i)对所述特定话语的所述一个或多个副本进行回译;(ii)对所述特定话语的所述一个或多个副本的一个或多个标记进行同义词替换;(iii)将标记随机插入到所述特定话语的所述一个或多个副本中;(iv)在所述特定话语的所述一个或多个副本的两个标记之间进行交换;或者(v)随机删除所述特定话语的所述一个或多个副本的一个或多个标记。
45.如权利要求42至44中任一项所述的系统,其中,所述增强型logit值是基于从所述训练数据集生成的所述一组logit值确定的所述统计值,并且其中,训练所述机器学习模型进一步包括:
访问所述训练数据集的子集,其中,所述训练数据集的所述子集包括所述多个话语的子集,并且其中,所述话语子集中的每个话语与所述不可解析分类相关联;
生成一组训练logit值,其中,所述一组训练logit值中的每个训练logit值是通过将所述机器学习模型应用于所述话语子集种的相应话语生成的;
确定所述统计值,其中,所述统计值表示所述一组训练logit值;以及
将所述统计值设置为所述增强型logit值。
46.如权利要求45所述的系统,其中,所述统计值是所述一组训练logit值的中值。
47.如权利要求45所述的系统,其中,所述统计值是所述一组训练logit值的平均值。
48.如权利要求42至44中任一项所述的系统,其中,所述增强型logit值是所述有界值,并且其中,所述logit函数由所述限界函数约束到所述值范围。
49.如权利要求42至44中任一项所述的系统,其中,所述增强型logit值是所述加权值,并且其中,所述logit函数由所述限界函数约束到所述值范围并且由所述缩放因子缩放。
50.如权利要求49所述的系统,其中,第一值被指派给所述logit函数的所述缩放因子并且第二值被指派给与所述不可解析分类的所述第二概率相对应的所述几率的第二对数的所述缩放因子,并且其中,所述第二值大于所述第一值。
51.如权利要求49所述的系统,其中,训练所述机器学习模型进一步包括调整用于所述不可解析分类的所述缩放因子。
52.如权利要求42至44中任一项所述的系统,其中,所述增强型logit值是所述超参数优化值,并且其中,训练所述机器学习模型进一步包括:
访问所述训练数据集的子集,其中,所述训练数据集的所述子集包括话语子集,并且其中,所述话语子集中的每个话语与所述不可解析分类相关联;
生成一组训练logit值,其中,所述一组训练logit值中的每个训练logit值是通过将所述机器学习模型应用于所述话语子集中的相应话语生成的;
确定所述统计值,其中,所述统计值表示所述一组训练logit值;
调整所述机器学习模型的一个或多个超参数以生成优化的统计值;以及
将所述优化的统计值设置为所述增强型logit值。
53.一种有形地体现在非暂态机器可读存储介质中的计算机程序产品,所述计算机程序产品包括被配置为使一个或多个数据处理器执行包括以下的操作的指令:
接收训练数据集,其中,所述训练数据集包括由与聊天机器人系统交互的用户生成的多个话语,其中,所述多个话语中的至少一个话语包括从所述用户的语音输入转换的文本数据;
访问机器学习模型,所述机器学习模型包括一系列网络层,其中,所述一系列网络层中的最终网络层包括logit函数,所述logit函数将可解析分类的第一概率变换为表示第一logit值的第一实数并且将不可解析分类的第二概率变换为表示第二logit值的第二实数;
利用所述训练数据集来训练所述机器学习模型,使得所述机器学习模型:
确定所述可解析分类的所述第一概率和所述不可解析分类的所述第二概率;并且
使用所述logit函数将所述可解析分类的所述第一概率映射到所述第一logit值,其中,用于映射所述第一概率的所述logit函数是与所述可解析分类的所述第一概率相对应的几率的对数,所述几率的对数由与所述可解析分类相关联的分布的质心加权;
将所述logit函数替换为增强型logit值,使得所述不可解析分类的所述第二概率被映射到所述增强型logit值,其中:
所述增强型logit值是独立于用于映射所述第一概率的所述logit函数而确定的第三实数;并且
所述增强型logit值包括:(i)基于从所述训练数据集生成的一组logit值确定的统计值;(ii)选自由与所述不可解析分类的所述第二概率相对应的几率的第一对数所定义的值范围的有界值,所述几率的第一对数由限界函数约束到值范围并且由与所述不可解析分类相关联的分布的质心加权;(iii)由与所述不可解析分类的所述第二概率相对应的几率的第二对数生成的加权值,所述几率的第二对数由所述限界函数约束到所述值范围、由缩放因子缩放、并且由与所述不可解析分类相关联的所述分布的所述质心加权;(iv)基于对所述机器学习模型的超参数调谐生成的超参数优化值;或者(v)在对所述机器学习模型的训练期间调整的学习值;以及
部署具有所述增强型logit值的经训练的所述机器学习模型。
54.如权利要求53所述的计算机程序产品,其中,所述指令进一步使所述一个或多个数据处理器执行包括以下的操作:
从所述训练数据集生成经扩充的训练数据集,其中,所述经扩充的训练数据集包括变换所述多个话语中的特定话语的一个或多个副本,其中,所述特定话语与将所述特定话语识别为与所述不可解析分类相关联的训练标签相关联;以及
使用所述经扩充的训练数据集来训练所述机器学习模型。
55.如权利要求54所述的计算机程序产品,其中,变换所述特定话语的一个或多个副本包括执行以下中的一项或多项:(i)对所述特定话语的所述一个或多个副本进行回译;(ii)对所述特定话语的所述一个或多个副本的一个或多个标记进行同义词替换;(iii)将标记随机插入到所述特定话语的所述一个或多个副本中;(iv)在所述特定话语的所述一个或多个副本的两个标记之间进行交换;或者(v)随机删除所述特定话语的所述一个或多个副本的一个或多个标记。
56.如权利要求53至55中任一项所述的计算机程序产品,其中,所述增强型logit值是基于从所述训练数据集生成的所述一组logit值确定的所述统计值,并且其中,训练所述机器学习模型进一步包括:
访问所述训练数据集的子集,其中,所述训练数据集的所述子集包括所述多个话语的子集,并且其中,所述话语子集中的每个话语与所述不可解析分类相关联;
生成一组训练logit值,其中,所述一组训练logit值中的每个训练logit值是通过将所述机器学习模型应用于所述话语子集种的相应话语生成的;
确定所述统计值,其中,所述统计值表示所述一组训练logit值;以及
将所述统计值设置为所述增强型logit值。
57.如权利要求56所述的计算机程序产品,其中,所述统计值是所述一组训练logit值的中值。
58.如权利要求56所述的计算机程序产品,其中,所述统计值是所述一组训练logit值的平均值。
59.如权利要求53至55中任一项所述的计算机程序产品,其中,所述增强型logit值是所述有界值,并且其中,所述logit函数由所述限界函数约束到所述值范围。
60.如权利要求53至55中任一项所述的计算机程序产品,其中,所述增强型logit值是所述加权值,并且其中,所述logit函数由所述限界函数约束到所述值范围并且由所述缩放因子缩放。
61.如权利要求60所述的计算机程序产品,其中,第一值被指派给所述logit函数的所述缩放因子并且第二值被指派给与所述不可解析分类的所述第二概率相对应的所述几率的第二对数的所述缩放因子,并且其中,所述第二值大于所述第一值。
62.如权利要求60所述的计算机程序产品,其中,训练所述机器学习模型进一步包括调整用于所述不可解析分类的所述缩放因子。
63.如权利要求53至55中任一项所述的计算机程序产品,其中,所述增强型logit值是所述超参数优化值,并且其中,训练所述机器学习模型进一步包括:
访问所述训练数据集的子集,其中,所述训练数据集的所述子集包括话语子集,并且其中,所述话语子集中的每个话语与所述不可解析分类相关联;
生成一组训练logit值,其中,所述一组训练logit值中的每个训练logit值是通过将所述机器学习模型应用于所述话语子集中的相应话语生成的;
确定所述统计值,其中,所述统计值表示所述一组训练logit值;
调整所述机器学习模型的一个或多个超参数以生成优化的统计值;以及
将所述优化的统计值设置为所述增强型logit值。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063119449P | 2020-11-30 | 2020-11-30 | |
US63/119,449 | 2020-11-30 | ||
US17/456,687 US11972220B2 (en) | 2020-11-30 | 2021-11-29 | Enhanced logits for natural language processing |
US17/456,687 | 2021-11-29 | ||
PCT/US2021/061062 WO2022115727A1 (en) | 2020-11-30 | 2021-11-30 | Enhanced logits for natural language processing |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116547676A true CN116547676A (zh) | 2023-08-04 |
Family
ID=81752529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180080034.4A Pending CN116547676A (zh) | 2020-11-30 | 2021-11-30 | 用于自然语言处理的增强型logit |
Country Status (5)
Country | Link |
---|---|
US (2) | US11972220B2 (zh) |
EP (1) | EP4252142A1 (zh) |
JP (1) | JP2023551859A (zh) |
CN (1) | CN116547676A (zh) |
WO (1) | WO2022115727A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2569335B (en) * | 2017-12-13 | 2022-07-27 | Sage Global Services Ltd | Chatbot system |
US11729121B2 (en) * | 2021-04-29 | 2023-08-15 | Bank Of America Corporation | Executing a network of chatbots using a combination approach |
US12019984B2 (en) * | 2021-09-20 | 2024-06-25 | Salesforce, Inc. | Multi-lingual intent model with out-of-domain detection |
US20230376686A1 (en) * | 2022-05-17 | 2023-11-23 | Sap Se | Enhanced chatbot intelligence |
US20240061644A1 (en) * | 2022-08-17 | 2024-02-22 | Jpmorgan Chase Bank, N.A. | Method and system for facilitating workflows via voice communication |
US11961622B1 (en) * | 2022-10-21 | 2024-04-16 | Realyze Intelligence, Inc. | Application-specific processing of a disease-specific semantic model instance |
WO2024137062A1 (en) * | 2022-12-21 | 2024-06-27 | Dish Wireless L.L.C. | Service product provisioning |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9575963B2 (en) * | 2012-04-20 | 2017-02-21 | Maluuba Inc. | Conversational agent |
US9547471B2 (en) | 2014-07-03 | 2017-01-17 | Microsoft Technology Licensing, Llc | Generating computer responses to social conversational inputs |
US20160253597A1 (en) | 2015-02-27 | 2016-09-01 | Xerox Corporation | Content-aware domain adaptation for cross-domain classification |
US20190167179A1 (en) | 2016-08-07 | 2019-06-06 | Hadasit Medical Research Services And Development Ltd. | Methods and system for assessing a cognitive function |
US10796217B2 (en) | 2016-11-30 | 2020-10-06 | Microsoft Technology Licensing, Llc | Systems and methods for performing automated interviews |
US10685293B1 (en) | 2017-01-20 | 2020-06-16 | Cybraics, Inc. | Methods and systems for analyzing cybersecurity threats |
US10530795B2 (en) | 2017-03-17 | 2020-01-07 | Target Brands, Inc. | Word embeddings for anomaly classification from event logs |
US11373632B2 (en) * | 2017-05-10 | 2022-06-28 | Oracle International Corporation | Using communicative discourse trees to create a virtual persuasive dialogue |
US10817670B2 (en) * | 2017-05-10 | 2020-10-27 | Oracle International Corporation | Enabling chatbots by validating argumentation |
US11200506B2 (en) * | 2017-12-15 | 2021-12-14 | Microsoft Technology Licensing, Llc | Chatbot integrating derived user intent |
US20190205939A1 (en) | 2017-12-31 | 2019-07-04 | OneMarket Network LLC | Using Machine Learned Visitor Intent Propensity to Greet and Guide a Visitor at a Physical Venue |
US20190370695A1 (en) | 2018-05-31 | 2019-12-05 | Microsoft Technology Licensing, Llc | Enhanced pipeline for the generation, validation, and deployment of machine-based predictive models |
US11423330B2 (en) | 2018-07-16 | 2022-08-23 | Invoca, Inc. | Performance score determiner for binary signal classifiers |
US11625620B2 (en) * | 2018-08-16 | 2023-04-11 | Oracle International Corporation | Techniques for building a knowledge graph in limited knowledge domains |
US11257496B2 (en) | 2018-09-26 | 2022-02-22 | [24]7.ai, Inc. | Method and apparatus for facilitating persona-based agent interactions with online visitors |
US11574144B2 (en) | 2019-01-07 | 2023-02-07 | Microsoft Technology Licensing, Llc | Performance of a computer-implemented model that acts as a multi-class classifier |
US11763129B2 (en) | 2019-03-04 | 2023-09-19 | Royal Bank Of Canada | System and method for machine learning with long-range dependency |
US11195532B2 (en) * | 2019-04-26 | 2021-12-07 | Oracle International Corporation | Handling multiple intents in utterances |
US11206229B2 (en) * | 2019-04-26 | 2021-12-21 | Oracle International Corporation | Directed acyclic graph based framework for training models |
US11657797B2 (en) * | 2019-04-26 | 2023-05-23 | Oracle International Corporation | Routing for chatbots |
US11775770B2 (en) | 2019-05-23 | 2023-10-03 | Capital One Services, Llc | Adversarial bootstrapping for multi-turn dialogue model training |
US10825449B1 (en) | 2019-09-27 | 2020-11-03 | CrowdAround Inc. | Systems and methods for analyzing a characteristic of a communication using disjoint classification models for parsing and evaluation of the communication |
-
2021
- 2021-11-29 US US17/456,687 patent/US11972220B2/en active Active
- 2021-11-30 CN CN202180080034.4A patent/CN116547676A/zh active Pending
- 2021-11-30 JP JP2023532750A patent/JP2023551859A/ja active Pending
- 2021-11-30 EP EP21835470.2A patent/EP4252142A1/en active Pending
- 2021-11-30 WO PCT/US2021/061062 patent/WO2022115727A1/en active Application Filing
-
2024
- 2024-03-20 US US18/611,039 patent/US20240232541A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2023551859A (ja) | 2023-12-13 |
US20240232541A1 (en) | 2024-07-11 |
WO2022115727A1 (en) | 2022-06-02 |
EP4252142A1 (en) | 2023-10-04 |
US11972220B2 (en) | 2024-04-30 |
US20220171946A1 (en) | 2022-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12014146B2 (en) | Techniques for out-of-domain (OOD) detection | |
CN116724305B (zh) | 上下文标签与命名实体识别模型的集成 | |
CN114424185A (zh) | 用于自然语言处理的停用词数据扩充 | |
CN112487157A (zh) | 用于聊天机器人的基于模板的意图分类 | |
US11972220B2 (en) | Enhanced logits for natural language processing | |
JP2023530423A (ja) | 堅牢な固有表現認識のためのチャットボットにおけるエンティティレベルデータ拡張 | |
US12019994B2 (en) | Distance-based logit value for natural language processing | |
CN115398436A (zh) | 用于自然语言处理的噪声数据扩充 | |
US20240256777A1 (en) | Out-of-domain data augmentation for natural language processing | |
CN116615727A (zh) | 用于自然语言处理的关键词数据扩充工具 | |
CN116490879A (zh) | 用于神经网络中过度预测的方法和系统 | |
CN117296058A (zh) | 作为简单有效的对抗攻击方法的变体不一致攻击(via) | |
CN118140230A (zh) | 对经预训练的语言模型的单个转换器层的多头网络进行微调 | |
US20220229991A1 (en) | Multi-feature balancing for natural language processors | |
CN118202344A (zh) | 用于从文档中提取嵌入式数据的深度学习技术 | |
US20230376700A1 (en) | Training data generation to facilitate fine-tuning embedding models | |
CN118265981A (zh) | 用于为预训练的语言模型处置长文本的系统和技术 | |
CN116802629A (zh) | 用于自然语言处理的多因素建模 | |
US20240062112A1 (en) | Adaptive training data augmentation to facilitate training named entity recognition models | |
US20230153687A1 (en) | Named entity bias detection and mitigation techniques for sentence sentiment analysis | |
WO2024044491A1 (en) | Adaptive training data augmentation to facilitate training named entity recognition models | |
WO2023249684A1 (en) | Techniques for entity-aware data augmentation |
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 |