CN116490879A - 用于神经网络中过度预测的方法和系统 - Google Patents
用于神经网络中过度预测的方法和系统 Download PDFInfo
- Publication number
- CN116490879A CN116490879A CN202180077947.0A CN202180077947A CN116490879A CN 116490879 A CN116490879 A CN 116490879A CN 202180077947 A CN202180077947 A CN 202180077947A CN 116490879 A CN116490879 A CN 116490879A
- Authority
- CN
- China
- Prior art keywords
- machine learning
- layer
- learning model
- prediction
- layers
- 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
- 238000000034 method Methods 0.000 title claims abstract description 112
- 238000013528 artificial neural network Methods 0.000 title description 46
- 238000010801 machine learning Methods 0.000 claims abstract description 86
- 238000009826 distribution Methods 0.000 claims abstract description 57
- 238000012545 processing Methods 0.000 claims description 89
- 230000015654 memory Effects 0.000 claims description 29
- 238000003062 neural network model Methods 0.000 claims description 22
- 235000013550 pizza Nutrition 0.000 description 60
- 230000008569 process Effects 0.000 description 45
- 238000012549 training Methods 0.000 description 35
- 238000004891 communication Methods 0.000 description 30
- 230000006870 function Effects 0.000 description 24
- 230000004044 response Effects 0.000 description 22
- 230000010354 integration Effects 0.000 description 16
- 230000009471 action Effects 0.000 description 14
- 238000007726 management method Methods 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 10
- 230000007704 transition Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 210000002569 neuron Anatomy 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 230000006855 networking Effects 0.000 description 5
- 230000004913 activation Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000012384 transportation and delivery Methods 0.000 description 4
- 206010068829 Overconfidence Diseases 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 235000013305 food Nutrition 0.000 description 3
- 238000003058 natural language processing Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 230000009118 appropriate response Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010367 cloning Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000003993 interaction Effects 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
- 238000007670 refining Methods 0.000 description 2
- 235000013580 sausages Nutrition 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013068 supply chain management Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 240000005020 Acaciella glauca Species 0.000 description 1
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 241000238558 Eucarida Species 0.000 description 1
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000003491 array Methods 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
- 238000004364 calculation method Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 238000002591 computed tomography Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- REQPQFUJGGOFQL-UHFFFAOYSA-N dimethylcarbamothioyl n,n-dimethylcarbamodithioate Chemical compound CN(C)C(=S)SC(=S)N(C)C REQPQFUJGGOFQL-UHFFFAOYSA-N 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000002595 magnetic resonance imaging Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000037211 monthly cycles Effects 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 235000003499 redwood Nutrition 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 238000003325 tomography Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Classifications
-
- 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
-
- 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
-
- 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/045—Combinations of networks
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本文公开了用于解决与聊天机器人系统中的机器学习模型相关联的过度自信问题的技术。对于机器学习模型的多个层中的每个层,关于输入的话语,为多个预测生成置信度分数的分布。基于为层生成的置信度分数的分布来确定要指派给机器学习模型的每个层的预测。基于这些预测,确定机器学习模型的总体预测。所述多个层的子集被迭代处理以识别其指派的预测满足准则的层。与机器学习模型的该层的被指派的预测相关联的置信度分数被指派为要与机器学习模型的总体预测相关联的总体置信度分数。
Description
相关申请的交叉引用
本申请是于2020年11月30日提交的美国临时申请No.63/119,566和于2021年11月16日提交的美国非临时申请No.17/455,181的非临时申请,并根据35USC 119(e)要求其权益和优先权。上面提到的申请的全部内容通过引用整体并入本文,用于所有目的。
技术领域
本公开一般而言涉及聊天机器人(chatbot)系统,并且更具体地涉及用于解决与机器学习模型(例如,在聊天机器人系统中用于分类目的的神经网络)相关联的过度自信(overconfidence)问题的技术。
背景技术
世界各地的许多用户都在即时消息传递或聊天平台上以便获得即时反应。组织经常使用这些即时消息传递或聊天平台与客户(或最终用户)进行实时交谈。然而,组织雇用服务人员来与客户或最终用户进行实时交谈的成本可能非常高。已经开始开发聊天机器人或机器人来模拟与最终用户的交谈,尤其是通过互联网进行交谈。最终用户可以通过最终用户已经安装和使用的消息传递应用来与机器人通信。通常由人工智能(AI)提供支持的智能机器人可以在实时交谈中更智能地进行上下文交流,因此可以允许机器人与最终用户之间进行更自然的交谈,以改善交谈体验。与最终用户学习机器人知道如何进行响应的关键字或命令的固定集合不同,智能机器人可以能够基于用户的自然语言话语(utterance)来理解最终用户的意图并相应地做出响应。
然而,聊天机器人难以构建,因为这些自动化解决方案要求特定领域的特定知识和特定技术的应用,而这些可能仅在专业开发人员的能力范围内。作为构建此类聊天机器人的一部分,开发人员可以首先了解企业和最终用户的需求。然后,开发人员可以分析并做出与例如以下项相关的决定:选择要用于分析的数据集、准备输入数据集以进行分析(例如,在分析之前清理数据、提取、格式化和/或变换数据、执行数据特征工程设计等)、识别用于执行该分析的适当的(一种或多种)机器学习(ML)技术或(一个或多个)模型,并基于反馈来改进技术或模型以改进结果/成果。识别适当模型的任务可以包括开发多个模型,这些模型可能是并行的,在识别特定的一个(或多个)模型供使用之前对这些模型进行迭代测试和试验。另外,基于有监督学习的解决方案通常涉及训练阶段,然后是应用(即,推理)阶段,以及训练阶段和应用阶段之间的迭代循环。开发人员可以负责仔细实现和监视这些阶段以获得最优解决方案。
通常,各个机器人采用机器学习模型(例如神经网络),该模型被训练为分类器并被配置为针对给定输入从目标类或类别的集合中预测或推断用于该输入的类或类别。较深的神经网络(即,具有许多层的神经网络模型,例如,四层或更多层)一般比较浅的神经网络(即,具有较少层的神经网络模型)在其输出预测方面更准确。然而,深度神经网络存在(置信度分数的)过度自信的问题,其中,神经网络为某个类生成的置信度分数可能变得与真实置信度分数解相关(de-correlated)。
因而,虽然深度神经网络因其提高的准确性而对于使用是期望的,但必须处理与深度神经网络相关联的过度自信问题以避免神经网络的性能问题。本文描述的实施例单独地和共同地解决了这些问题以及其它问题。
发明内容
公开了用于解决与在聊天机器人系统中用于分类目的的机器学习模型(例如,神经网络)相关联的过度自信问题的技术(例如,方法、系统、存储可由一个或多个处理器执行的代码或指令的非暂态计算机可读介质)。本文描述了各种实施例,包括方法、系统、存储可由一个或多个处理器执行的程序、代码或指令等的非暂态计算机可读存储介质。
本公开的一方面提供了一种方法,该方法包括:针对机器学习模型的多个层中的每个层,为关于输入的话语的多个预测生成置信度分数的分布;基于为机器学习模型的每个层生成的置信度分数的分布,确定要指派给该层的预测;基于所述确定,生成机器学习模型的总体预测;迭代地处理机器学习模型的该多个层的子集以识别机器学习模型中的被指派的预测满足一准则的层;以及将与机器学习模型的该层的被指派的预测相关联的置信度分数指派作为要与机器学习模型的总体预测相关联的总体置信度分数。
根据一个实施例,提供了一种计算设备,包括:处理器;包括指令的存储器,这些指令在由处理器执行时使计算设备至少执行以下操作:针对机器学习模型的多个层中的每个层,为关于输入的话语的多个预测生成置信度分数的分布;基于为机器学习模型的每个层生成的置信度分数的分布,确定要指派给该层的预测;基于所述确定,生成机器学习模型的总体预测;迭代地处理机器学习模型的该多个层的子集以识别机器学习模型中的被指派的预测满足一准则的层;以及将与机器学习模型的该层的被指派的预测相关联的置信度分数指派作为要与机器学习模型的总体预测相关联的总体置信度分数。
本公开的一个方面提供了一种方法,包括:针对机器学习模型的多个层中的每个层,为关于输入的话语的多个预测生成置信度分数的分布;针对该多个预测中的每个预测,基于机器学习模型的该多个层的置信度分数的分布来计算分数;确定该多个预测中的一个预测以与机器学习模型的总体预测对应;以及将与该多个预测中的该一个预测相关联的分数指派作为与机器学习模型的总体预测相关联的总体置信度分数。
在参考以下说明书、权利要求和附图时,前述内容以及其它特征和实施例将变得更加清楚。
附图说明
图1是结合示例性实施例的分布式环境的简化框图。
图2描绘了根据各种实施例的示例性神经网络模型。
图3图示了根据各种实施例的由神经网络模型执行的示例分类。
图4图示了根据各种实施例的由神经网络模型执行的另一个示例分类。
图5A描绘了根据各种实施例的由神经网络执行的过程的流程图。
图5B描绘了根据各种实施例的由神经网络模型执行的过程的流程图。
图6描绘了用于实现各种实施例的分布式系统的简化图。
图7是根据各种实施例的系统环境的一个或多个组件的简化框图,通过该系统环境可以将实施例系统的一个或多个组件提供的服务提供为云服务。
图8图示了可以用于实现各种实施例的示例计算机系统。
具体实施方式
在以下描述中,将描述各种实施例。出于解释的目的,阐述具体配置和细节以便提供对实施例的透彻理解。然而,对于本领域技术人员来说也将清楚的是,可以在没有具体细节的情况下实践这些实施例。此外,可以省略或简化众所周知的特征以便不混淆所描述的实施例。
虽然已经描述了具体实施例,但是各种修改、变更、替代构造和等同物是可能的。实施例不限于某些特定数据处理环境中的操作,而是可以自由地在多个数据处理环境中操作。此外,虽然已经使用特定系列的事务和步骤描述了某些实施例,但是对于本领域技术人员来说清楚的是,这并不旨在进行限制。虽然一些流程图将操作描述为顺序过程,但许多操作可以并行或并发地执行。此外,可以重新布置操作的次序。过程可以有图中未包括的附加步骤。可以单独或联合地使用上述实施例的各种特征和方面。“示例性”一词在本文用于表示“用作示例、实例或说明”。本文描述为“示例性”的任何实施例或设计不一定被解释为优于或有利于其它实施例或设计。
另外,虽然已经使用硬件和软件的特定组合描述了某些实施例,但是应当认识到硬件和软件的其它组合也是可能的。某些实施例可以仅以硬件、或仅以软件、或使用它们的组合来实现。本文描述的各种过程可以在同一个处理器或任何组合的不同处理器上实现。
在设备、系统、组件或模块被描述为被配置为执行某些操作或功能的情况下,此类配置可以例如通过设计电子电路以执行操作、通过对可编程电子电路(诸如微处理器)进行编程以执行操作(诸如通过执行计算机指令或代码)、或被编程为执行存储在非暂态存储器介质上的代码或指令的处理器或核心或其任何组合来实现。过程可以使用多种技术进行通信,包括但不限于用于过程间通信的常规技术,并且不同的过程对可以使用不同的技术,或者同一对过程可以在不同的时间使用不同的技术。
引言
作为分类器被训练的机器学习模型(例如神经网络)被配置为针对给定输入从目标类或类别的集合中预测或推断用于该输入的类或类别。这种分类器神经网络模型通常被训练以生成用于目标类的集合的概率分布,由神经网络为集合中的每个目标类生成一概率并且所生成的概率总和为1(或100%,如果表达为百分比)。在这种神经网络分类器中,神经网络的输出层可以使用softmax函数作为其激活函数来产生用于类的集合的概率分数的分布。这些概率也被称为置信度分数。具有最高相关联置信度分数的类可以被输出作为对输入的答案。
例如,在聊天机器人领域,聊天机器人可以使用神经网络模型,该神经网络模型被训练为将话语作为输入并针对该话语预测神经网络被训练为针对的类的集合的概率分布或置信度分数。例如,类的集合可以包括表示话语背后的意图的意图类。神经网络被配置为为每个意图类生成置信度分数,并且可以选择具有最高置信度分数的意图类作为输入的话语的最相关意图类。在一些实施例中,最高置信度分数也必须高于预先配置的阈值(例如,70%置信度)才能将其选择为针对输入的话语的相关意图类。
意图类的集合可以包括一个或多个域内(in-domain)类和一个域外(OOD)类。域内类是表示特定聊天机器人可以处置的意图的类。OOD类通常是表示聊天机器人未被配置来处置的未解析意图(即,无法被解析为域内类之一)的类。
例如,考虑用于订购披萨的聊天机器人(“披萨机器人”)。用户可以与披萨机器人交互以订购和/或取消披萨订单。披萨机器人可以被训练为获取输入的话语并将该话语分类到意图类的集合,该集合包括一个或多个域内类和OOD类。例如,域内类可以包括“订购披萨”意图类和“取消披萨订单”意图类,而域外类可以是“未解析”类。因此,如果输入的话语与订购披萨有关,那么经过恰当训练的神经网络将为“订购披萨”类生成最高的置信度分数。同样,如果输入的话语与取消披萨订单有关,那么经过恰当训练的神经网络将为“取消披萨订单”类生成最高的置信度分数。如果话语与订购披萨或取消披萨订单无关,那么经过恰当训练的神经网络可以为OOD“未解析”类生成最高的置信度分数。披萨机器人响应于输入的话语而执行的进一步处理可以取决于针对该话语哪个类接收到最高置信度分数。因而,针对给定的话语为类的集合指派适当的置信度分数对于披萨机器人的性能是重要的。
神经网络通常在它能够被用于推理或做出预测之前必须经过训练。可以使用训练数据(有时称为经标注的数据)执行训练,其中输入和与这些输入相关联的标签(真实事实)是已知的。例如,训练数据可以包括输入x(i),以及对于每个输入x(i),包括用于该输入的目标值或正确答案(也称为真实事实)y(i)。一对(x(i),y(i))被称为训练样本,并且训练数据可以包括许多此类训练样本。例如,用于训练用于聊天机器人的神经网络模型的训练数据可以包括话语的集合,以及对于该集合中的每个话语,包括用于该话语的已知(真实事实)类。作为示例,对于上述的披萨机器人,训练数据可以包括具有相关联的标签“订购披萨”类的话语的集合、具有相关联的标签“取消披萨订单”类的话语的集合,以及具有相关联的标签“未解析”OOD类的话语的集合。
训练数据中所有输入x(i)的空间可以用X表示,并且所有对应目标y(i)的空间可以用Y表示。训练神经网络的目标是学习得到假设函数“h()”,该函数将训练输入空间X映射到目标值空间Y,使得h(x)是用于y的对应值的良好预测器。在一些实施方式中,作为推导假设函数的一部分,定义诸如损失函数之类的目标函数,该函数对针对输入的真实事实值与由神经网络为该输入预测的值之间的差异进行度量。作为训练的一部分,这个目标函数被优化,即,最小化或最大化。可以使用训练技术(诸如反向传播训练技术),其迭代地修改/操纵与神经网络中感知器(perceptron)的输入相关联的权重,目标是最小化或最大化与神经网络提供的(一个或多个)输出相关联的目标函数。
神经网络模型的深度由神经网络模型中的层数来度量。神经网络通常具有接收提供给神经网络的输入的输入层、输出针对输入的结果的输出层,以及输入层与输出层之间的一个或多个隐藏层。较深的神经网络(即,层数较多的神经网络模型)一般比较浅的神经网络模型(即,层数较少的神经网络模型)在其输出预测方面更准确。然而,深度神经网络存在(置信度分数的)过度自信的问题,其中神经网络为某个类生成的置信度分数可能变得与真实置信度分数解相关。当实际输入不能由曾被用于训练神经网络模型的训练数据很好地表示时,深度神经网络模型甚至会产生高度自信的错误分类预测,即,实际样本是从训练期间观察到的分布之外抽取的,即,该模型没有被很好地校准。这种过度自信使得难以对模型输出进行后处理(设置关于预测的阈值等),这意味着它需要通过体系架构(通常被用于任意不确定性)和/或训练(例如,通常被用于认知不确定性)来处理。
因而,虽然诸如深度神经网络之类的深度机器学习模型因其提高的准确性而对于使用是期望的,但必须处理与深度机器学习模型相关联的过度自信问题以避免神经网络的性能问题。
机器人系统
机器人(也称为技能(skill)、聊天机器人、聊天者机器人或谈话机器人)是可以与最终用户执行交谈的计算机程序。机器人通常可以通过使用自然语言消息的消息传递应用来对自然语言消息(例如,问题或评论)进行响应。企业可以使用一个或多个机器人系统通过消息传递应用与最终用户通信。可以被称为通道(channel)的消息传递应用可以是最终用户已经安装并熟悉的、最终用户优选的消息传递应用。因此,最终用户无需为了与机器人系统聊天而下载和安装新应用。消息传递应用可以包括例如上层(OTT)消息传递通道(诸如Facebook Messenger、Facebook WhatsApp、WeChat、Line、Kik、Telegram、Talk、Skype、Slack或SMS)、虚拟私人助理(诸如Amazon Dot、Echo或Show、Google Home、Apple HomePod等)、扩展了具有聊天能力的本地或混合/响应移动应用或web应用的移动和web应用扩展,或基于语音的输入(诸如具有使用Siri、Cortana、Google Voice或其它言语输入进行交互的界面的设备或应用)。
图1是结合根据某些实施例的聊天机器人系统的环境100的简化框图。环境100包括数字助理构建器平台(DABP)102,其使DABP 102的用户能够创建和部署数字助理或聊天机器人系统。DABP 102可以被用于创建一个或多个数字助理(或DA)或聊天机器人系统。例如,如图1中所示,表示特定企业的用户104可以使用DABP 102为该特定企业的用户创建和部署数字助理106。例如,DABP 102可以被银行用来创建一个或多个数字助理以供银行的客户使用。同一DABP 102平台可以被多个企业用来创建数字助理。作为另一个示例,餐馆(例如,披萨店)的所有者可以使用DABP 102来创建和部署使餐馆的客户能够订购食物(例如,订购披萨)的数字助理。
图1是结合根据某些实施例的聊天机器人系统的环境100的简化框图。环境100包括数字助理构建器平台(DABP)102,其使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可以是音频(audio)输入或言语(speech)形式,诸如当用户说出或讲出作为输入提供给数字助理106的某些内容时。话语通常是用户108所说的语言。例如,话语可以是英语,或某种其它语言。当话语是言语形式时,该言语输入被转换成该特定语言的文本形式话语,然后由数字助理106处理该文本话语。可以使用各种言语到文本处理技术来将言语或音频输入转换成文本话语,该文本话语然后由数字助理106处理。在一些实施例中,言语到文本的转换可以由数字助理106自身完成。
话语(其可以是文本话语或言语话语)可以是片段、句子、多个句子、一个或多个词语、一个或多个问题、上面提到的类型的组合等。数字助理106被配置为将自然语言理解(NLU)技术应用于话语以理解用户输入的含义。作为针对话语的NLU处理的一部分,数字助理106被配置为执行处理以理解话语的含义,这涉及识别与话语对应的一个或多个意图和一个或多个实体。在理解话语的含义后,数字助理106可以响应于所理解的含义或意图来执行一个或多个动作或操作。出于本公开的目的,假设话语是由数字助理106的用户108直接提供的文本话语或者是输入的言语话语到文本形式的转换的结果。然而,这并不旨在以任何方式进行限制或限定。
例如,用户输入108可以通过提供诸如“我想订购披萨”的话语来请求订购披萨。在接收到这种话语后,数字助理106被配置为理解话语的含义并采取适当的动作。适当的动作可以涉及,例如,用请求用户输入关于用户想要订购的披萨的类型、披萨的尺寸、披萨的任何配料等的问题来对用户进行响应。由数字助理提供的响应106也可以是自然语言形式并且通常是与输入的话语相同的语言。作为生成这些响应的一部分,数字助理106可以执行自然语言生成(NLG)。对于订购披萨的用户,经由用户和数字助理106之间的交谈,数字助理可以指导用户提供用于披萨订购所需的所有信息,然后在交谈话结束时使披萨被订购。数字助理106可以通过向用户输出指示披萨已被订购的信息来结束交谈。
在概念层面,数字助理106响应于从用户接收到的话语执行各种处理。在一些实施例中,这个处理涉及处理步骤的序列或流水线,包括例如(使用NLU)理解输入的话语的含义、确定响应于话语而要执行的动作、在适当的情况下使动作被执行、响应于用户话语而生成要向用户输出的响应、向用户输出响应等。NLU处理可以包括解析接收到的输入的话语以理解话语的结构和含义、精炼(refine)和重构话语以便为话语构建更易于理解的形式(例如,逻辑形式)或结构。生成响应可以包括使用自然语言生成(NLG)技术。因此,由数字助理执行的自然语言处理(NLP)可以包括NLU和NLG处理的组合。由数字助理(诸如数字助理106)执行的NLU处理可以包括各种NLU相关处理,诸如句子解析(例如,令牌化、词形还原、识别句子的词性标签、识别句子中的命名实体、生成依赖树来表示句子结构、将句子拆分为子句、分析单个子句、解析照应,执行分块等)。在某些实施例中,NLU处理或其部分由数字助理106自身执行。在一些其它实施例中,数字助理106可以使用其它资源来执行NLU处理的部分。例如,可以通过使用解析器、词性标注器和/或命名实体识别器处理输入的话语句子来识别该句子的句法和结构。在一种实施方式中,对于英语,使用诸如由斯坦福NLP组提供的解析器、词性标注器和命名实体识别器来分析句子结构和句法。这些是作为斯坦福CoreNLP工具包的一部分提供的。
虽然本公开中提供的各种示例显示了英语语言的话语,但这仅意味着作为示例。在某些实施例中,数字助理106还能够处理英语以外的语言的话语。数字助理106可以提供被配置用于对不同语言执行处理的子系统(例如,实现NLU功能的组件)。这些子系统可以被实现为可插拔单元,可以使用来自NLU核心服务器的服务调用来调用这些单元。这使得NLU处理对于每种语言具有灵活性和可扩展性,包括允许不同的处理顺序。可以为各种语言提供语言包,其中语言包可以注册能够从NLU核心服务器提供服务的子系统的列表。
数字助理(诸如图1中描绘的数字助理106)可以通过各种不同的通道(诸如但不限于经由某些应用、经由社交媒体平台、经由各种消息服务和应用(例如,即时消息传递应用)以及其它应用或通道)对其用户108可用或可访问。单个数字助理可以具有为其配置的几个通道,使得它可以在不同的服务上同时运行和被访问。
数字助理或聊天机器人系统一般包含一个或多个技能或与一个或多个技能相关联。在某些实施例中,这些技能是单独的聊天机器人(称为技能机器人),它们被配置为与用户交互并完成特定类型的任务,诸如跟踪库存、提交工时卡、创建费用报告、订购食物、检查银行账户、进行预订、购买小工具等。例如,对于图1中描绘的实施例,数字助理或聊天机器人系统106包括技能116-1、116-2等。出于本公开的目的,术语“技能(skill)”和“多个技能(skills)”分别与术语“技能机器人(skillbot)”和“多个技能机器人(skillbots)”同义使用。
与数字助理相关联的每个技能通过与用户的交谈来帮助数字助理的用户完成任务,其中交谈可以包括由用户提供的文本或音频输入以及由技能机器人提供的响应的组合。这些响应可以是给用户的文本或音频消息的形式和/或使用呈现给用户以供用户进行选择的简单用户接口元素(例如,选择列表)来提供。
技能或技能机器人可以通过多种方式关联或添加到数字助理。在一些情况下,技能机器人可以由企业开发,然后使用DABP 102添加到数字助理,例如,通过由DABP 102提供的用于向数字助理注册技能机器人的用户界面。在其它情况下,可以使用DABP 102开发和创建技能机器人,然后将其添加到使用DABP 102创建的数字助理中。在还有其它情况下,DABP 102提供在线数字商店(称为“技能商店”),其提供针对一系列任务的多种技能。通过技能商店提供的技能也可以暴露各种云服务。为了将技能添加到正在使用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中的实施例示出了包括主机器人114和技能机器人116-1、116-2和116-3的数字助理106,但这并不旨在进行限制。数字助理可以包括提供数字助理功能的各种其它组件(例如,其它系统和子系统)。这些系统和子系统可以仅以软件(例如,存储在计算机可读介质上并且可由一个或多个处理器执行的代码、指令)、仅以硬件、或以使用软件和硬件的组合的实施方式来实现。
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意图,示例话语可以包括“我的储蓄账户余额是多少?”、“我的支票账户中有多少钱?”、“我的账户中有多少钱”等。因而,典型用户话语的各种排列可以被指定为意图的示例话语。
意图及其相关联的示例话语被用作训练数据来训练技能机器人。可以使用各种不同的训练技术。作为这种训练的结果,生成预测模型,该预测模型被配置为将话语作为输入并输出由预测模型为该话语推断的意图。在一些情况下,输入的话语被提供给意图分析引擎(例如,由技能机器人执行的基于规则或基于机器学习的分类器),该引擎被配置为使用经训练的模型来预测或推断输入的话语的意图。然后,技能机器人可以基于所推断的意图采取一个或多个动作。
(3)为技能机器人的一个或多个意图配置实体——在一些情况下,可能需要附加的上下文来使技能机器人能够正确地对用户请求进行响应。例如,可能存在用户输入的话语在技能机器人中解析为相同意图的情况。例如,在上面的示例中,话语“我的储蓄账户余额是多少?”和“我的支票账户里有多少钱?”两者都解析为相同的CheckBalance意图,但这些话语是询问不同事情的不同请求。为了澄清此类请求,一个或多个实体可以被添加到意图中。使用银行技能机器人示例,定义了称为“支票”和“储蓄”的值的称为AccountType(账户类型)的实体可以使技能机器人能够解析用户请求并做出适当的响应。在上面的示例中,虽然话语被解析为相同的意图,但对于这两个话语,与AccountType实体相关联的值是不同的。这使得技能机器人能够为这两个话语执行可能不同的动作,即使它们解析为相同的意图。可以为技能机器人配置的某些意图指定一个或多个实体。因此,实体被用于向意图自身添加上下文。实体有助于更完整地描述意图并使技能机器人能够完成用户请求。
在某些实施例中,存在两种类型的实体:(a)由DABP 102提供的内置实体,以及(2)可以由技能机器人设计者指定的自定义实体。内置实体是可以用于各种的机器人的通用实体。内置实体的示例包括但不限于与时间、日期、地址、数字、电子邮件地址、持续时间、重复时间段、货币、电话号码、URL等相关的实体。自定义实体被用于更加定制化的应用。例如,对于银行技能,AccountType实体可以由技能机器人设计者定义,其使得能够通过检查用户输入的关键字(如支票、储蓄和信用卡等)来进行各种银行交易。
(4)训练技能机器人——技能机器人被配置为以话语的形式接收用户输入,解析或以其它方式处理接收到的输入,并识别或选择与接收到的用户输入相关的意图。如上面所指示的,必须为此训练技能机器人。在某些实施例中,基于为技能机器人配置的意图和与这些意图相关联的示例话语(统称为训练数据)来训练技能机器人,使得技能机器人可以将用户输入的话语解析为该机器人配置的意图之一。在某些实施例中,技能机器人使用预测模型,该模型使用训练数据进行训练并允许技能机器人辨别用户说了什么(或在一些情况下,试图说什么)。DABP 102提供可以被技能机器人设计者用来训练技能机器人的各种不同的训练技术,包括各种基于机器学习的训练技术、基于规则的训练技术和/或它们的组合。在某些实施例中,训练数据的一部分(例如,80%)被用于训练技能机器人模型,而另一个部分(例如,剩余的20%)被用于测试或验证该模型。一旦经过训练,经训练的模型(有时也称为经训练的技能机器人)就可以被用于处置和响应用户话语。在某些情况下,用户的话语可以是只要求单个答案而不要求进一步交谈的问题。为了处置此类情况,可以为技能机器人定义Q&A(问答)意图。Q&A意图以与常规意图相似的方式被创建。用于Q&A意图的对话流可以与用于常规意图的对话流不同。例如,与常规意图不同,用于Q&A意图的对话流可以不涉及用于向用户征求附加的信息(例如,用于特定实体的值)的提示。
(5)为技能机器人创建对话流——为技能机器人指定的对话流描述了当响应于接收到的用户输入而解析出针对技能机器人的不同意图时技能机器人如何反应。对话流定义技能机器人将采取的操作或动作(例如,技能机器人如何对用户话语进行响应、技能机器人如何提示用户进行输入,以及技能机器人如何返回数据)。对话流就像技能机器人所遵循的流程图。技能机器人设计者使用诸如标记(markdown)语言之类的语言来指定对话流。在某些实施例中,称为OBotML的YAML版本可以被用于指定技能机器人的对话流。用于技能机器人的对话流定义充当交谈自身的模型,即,让技能机器人设计师编排技能机器人与技能机器人所服务的用户之间的交互的模型。
在某些实施例中,用于技能机器人的对话流定义包含三个部分:
(a)上下文部分
(b)默认过渡部分
(c)状态部分
上下文部分——技能机器人设计者可以定义在上下文部分中的交谈流中使用的变量。可以在上下文部分中命名的其它变量包括但不限于:用于错误处理的变量、用于内置实体或自定义实体的变量、使技能机器人能够识别和保留用户首选项的用户变量等。
默认过渡部分——可以在对话流状态部分或在默认过渡部分中定义技能机器人的过渡。默认过渡部分中定义的过渡充当回退,并在状态内没有定义适用的过渡或者无法满足触发状态过渡所需的条件时被触发。默认过渡部分可以被用于定义允许技能机器人优雅地处置意外用户动作的路线。
状态部分——对话流及其相关操作被定义为一系列过渡状态,这些状态管理对话流内的逻辑。对话流定义内的每个状态节点都命名提供对话中该点处所需功能的组件。因此,状态是围绕组件而构建的。状态包含特定于组件的特性,并对在该组件执行之后被触发的到其它状态的过渡进行定义。
可以使用状态部分来处理特殊情况场景。例如,有时可能希望为用户提供暂时离开他们互动的第一技能以便在数字助理内的第二技能中做一些事情的选项。例如,如果用户正在与购物技能进行交谈(例如,用户已进行了一些购买选择),那么用户可能想要跳转到银行技能(例如,用户可能想要确保他/她有足够的钱用于购买),然后返回购物技能以完成用户的订单。为了解决这个问题,可以将第一技能的对话流定义中的状态部分配置为发起与同一数字助理中的不同第二技能的交互,然后返回原始对话流。
(6)向技能机器人添加自定义组件——如上所述,在技能机器人的对话流中指定的状态命名提供对应于该状态所需的功能的组件。组件使技能机器人能够执行功能。在某些实施例中,DABP 102提供用于执行广泛功能的预配置的组件的集合。技能机器人设计者可以选择这些预配置的组件中的一个或多个,并将它们与技能机器人的对话流中的状态相关联。技能机器人设计者还可以使用由DABP 102提供的工具来创建自定义或新组件,并将自定义组件与技能机器人的对话流中的一个或多个状态相关联。
(7)测试和部署技能机器人——DABP 102提供使技能机器人设计者能够测试正在开发的技能机器人的几个特征。然后可以部署技能机器人并将其包括在数字助理中。
虽然上面的描述描述了如何创建技能机器人,但类似的技术也可以被用于创建数字助理(或主机器人)。在主机器人或数字助理级别,可以为数字助理配置内置系统意图。这些内置系统意图被用于识别数字助理自身(即,主机器人)可以处理而无需调用与该数字助理相关联的技能机器人的一般任务。为主机器人定义的系统意图的示例包括:(1)退出:当用户发信号通知期望退出数字助理中的当前交谈或上下文时适用;(2)帮助:当用户请求帮助或指导时适用;以及(3)未解决的意图:适用于与退出和帮助意图不能很好匹配的用户输入。数字助理还存储关于与数字助理相关联的一个或多个技能机器人的信息。此信息使主机器人能够选择特定技能机器人来处置话语。
在主机器人或数字助理级别,当用户向数字助理输入短语或话语时,数字助理被配置为执行处理以确定如何路由该话语和相关交谈。数字助理使用路由模型来确定这一点,该模型可以是基于规则的、基于AI的、或其组合。数字助理使用路由模型来确定与用户输入的话语对应的交谈是要路由到特定技能进行处理、是由数字助理或主机器人自身根据内置系统意图进行处理,还是在当前交谈流中作为不同的状态进行处置。
在某些实施例中,作为此处理的一部分,数字助理确定用户输入的话语是否显式地使用其调用名称来识别技能机器人。如果用户输入中存在调用名称,那么将它视为对与该调用名称对应的技能机器人的显式调用。在这种场景中,数字助理可以将用户输入路由到被显式调用的技能机器人以进行进一步处置。如果没有特定或显式调用,那么在某些实施例中,数字助理评估接收到的用户输入的话语并计算与数字助理相关联的系统意图和技能机器人的置信度分数。为技能机器人或系统意图计算的分数表示用户输入代表该技能机器人被配置为执行的任务或代表该系统意图的可能性。任何具有超过阈值(例如,置信阈值路由参数)的相关联计算置信度分数的系统意图或技能机器人都将被选择作为用于进一步评估的候选。然后,数字助理从识别出的候选中选择特定的系统意图或技能机器人以进一步处置用户输入话语。在某些实施例中,在一个或多个技能机器人被识别为候选之后,与这些候选技能相关联的意图被评估(使用针对每个技能的经训练的模型)并且确定每个意图的置信度分数。一般而言,具有超过阈值(例如,70%)的置信度分数的任何意图都被视为候选意图。如果选择了特定技能机器人,那么用户话语被路由到该技能机器人以进行进一步处理。如果选择了系统意图,那么根据所选择的系统意图由主机器人自身执行一个或多个动作。
用于解决过度自信问题的技术
根据一些实施例,聊天机器人使用神经网络模型,该神经网络模型被训练为将话语作为输入并针对该话语预测神经网络被训练为针对的类的集合的概率分布或置信度分数。例如,类的集合可以包括表示话语背后的意图的意图类。神经网络被配置为为每个意图类生成置信度分数,并且可以选择具有最高置信度分数的意图类作为输入的话语的最相关意图类。在一些实施例中,最高置信度分数还必须高于预先配置的阈值(例如,70%置信度)才能将其选为输入的话语的相关意图类。
图2描绘了根据各种实施例的示例性机器学习模型。图2中描绘的机器学习模型是深度神经网络(DNN)210,其包括编码器220、多个层230A、230B…和230N、多个预测模块240A、240B…和240N,以及置信度分数处理单元250。每个层与对应的预测模块相关联。例如,分别地,层1 230A与预测模块240A相关联,层2 230B与预测模块240B相关联,以及层3230N与预测模块240N相关联。
话语被输入到编码器220,该编码器生成话语的嵌入(embedding)。在一些情况下,编码器220可以是多语言通用句子编码器(MUSE),它将自然语言元素(例如,句子、词语、n元体(即,n个词语或字母的集合))映射到数字的数组(即,嵌入)。深度神经网络210的层230A、230B和230N中的每个层顺序地处理该嵌入。具体而言,与第一层(即,层230A)相关联的预测模块240A基于该嵌入而生成与第一层相关联的置信度分数的分布,而与第二层(即,层230B)相关联的预测模块240B基于由第一层处理的嵌入而生成与第二层相关联的置信度分数的分布。此后的每个层利用其对应的预测模块,基于由前一层执行的处理而生成与该层相关联的分布。DNN 210的每个层被配置为生成类的集合(例如,表示话语背后的意图的意图类)的概率分布(即,置信度分数)。更具体而言,在每个层处,对应的预测模块为意图类的该集合生成置信度分数的分布。DNN的输出是总体预测/分类和要指派给该总体预测的总体置信度分数。
可以认识到的是,DNN的每个层都包括一个或多个神经元(即,处理实体)。特定层的神经元连接到后续层的神经元。神经元之间的每个连接与权重相关联,其中权重指示该神经元的(一个或多个)输入值的重要性。另外,每个神经元与激活函数相关联,该函数处理给该神经元的相应输入。可以认识到的是,可以为DNN的每个神经元或层指派不同的激活函数。以这种方式,每个层以独特的方式(即,基于激活函数和权重)来处理输入,并且每个层的相关联的预测模块基于由每个层执行的处理而生成用于意图类的集合的置信度分数的分布。
通常,神经网络模型将最后一层(即,层N)中具有最高置信度分数的意图指定为模型的总体预测。附加地,(在最后一层中,例如,作为DNN的输出层的层230N中)与这种意图相关联的置信度分数被指派为模型的总体置信度分数。在这样做时,神经网络模型可能会遇到过度自信问题,即,由神经网络生成的置信度分数变得与真实置信度分数解相关。为了解决过度自信问题,深度神经网络210经由置信度分数处理单元250以与由典型神经网络执行的处理不同的方式来确定总体预测和要与总体预测相关联的总体置信度分数。具体而言,下面描述的是用于确定总体预测和要与DNN的总体预测相关联的总体置信度分数的技术(在本文中称为迭代技术和集成技术)。
置信度分数处理单元250获得由对应的预测模块为每个层计算的置信度分数的分布。具体而言,每个预测模块被训练为基于由DNN 210的对应层执行的处理而生成置信度分数的分布。例如,层1 230A处理由编码器220生成的嵌入。预测模块240A基于由层1 230A处理的嵌入而生成(与不同的意图相关联的)置信度分数的分布。随后,层2 230B接收来自层1230A的经处理的嵌入作为输入,并对该嵌入执行进一步处理。与层2 230B相关联的预测模块240B被训练为基于由层2 230B执行的处理而生成(针对不同的意图的)置信度分数的分布。
根据一个实施例,置信度分数处理单元250确定要被指派给DNN 210的每个层的预测。对于DNN 210的每个层,置信度分数处理单元250(从由该层的相关联的预测模块生成的置信度分数的对应分布中)确定具有最高置信度分数的预测作为要指派给该层的预测。另外,置信度分数处理单元250将模型的总体预测选择为对应于DNN 210的最后一层(即,输出层,层N 240N)的被指派的预测。
为了将总体置信度分数指派给总体预测,在迭代技术方法中,置信度分数处理单元250在层i=1至N-1上迭代,并将层i的被指派的预测与总体预测(即,最后一层的被指派的预测)进行比较。当找到匹配时,置信度分数处理单元250停止进一步处理,并将与第i层(即,其预测与总体预测相匹配的层)的被指派的预测相关联的置信度分数指派为将与DNN210的总体预测相关联的总体置信度。换句话说,DNN模型使用最后一层的预测(以考虑高准确性)和第i层的置信度分数(以帮助减轻过度自信问题)。
可以认识到的是,术语“最后一层”与DNN中最后对输入的话语进行处理的层(例如,图2的层230N)对应。例如,由于图2中描绘的层以水平方式布置(即,从左到右),因此层230N被认为是处理输入的话语的最后一层。然而,注意DNN可以不同方式布置,例如,以金字塔结构,即,自上而下(或自下而上)的方式。同样在这种情况下,最后一层可以是金字塔结构的底层(或顶层)并且与最后处理来自用户的输入的话语的层对应。
转向图3,描绘了根据本公开的各种实施例的由图2的DNN 210执行的示例性分类。为了说明起见,考虑披萨机器人包括意图类的集合310、输入的话语320和具有N=4个层的DNN模型。此外,为了简单起见,假设意图类的集合310包括三个意图:意图1-“订购披萨”、意图2-“取消披萨”和意图3-“送披萨”。输入的话语320被假设为“我想要意大利辣香肠披萨”。而且,应当理解的是,深度神经网络通常会实现多于四个层。然而,为了简单起见,这个示例只使用四个层。
在图3中,表330描述了为DNN的四个层中的每个层指派的预测。应该认识到的是,在四个层中的每个层处,被指派的预测与具有最高置信度分数的预测对应。例如,层1的预测是“送披萨”(意图3),置信度为70%;层2的预测是“取消披萨”(意图2),置信度为50%;层3的预测是“订购披萨”(意图1),置信度为70%;并且层4的预测是“订购披萨”(意图1),置信度为90%。
根据一些实施例,该模型的总体预测被确定为DNN的最后一层的被指派的预测。例如,参考图3,DNN模型的总体预测是意图1,即,层4的在该最后一层中具有最高置信度分数的被指派的意图。为了给该总体预测指派总体置信度分数,DNN的置信度分数处理单元在层i=1至N-1上迭代,并将层i的预测与总体预测(即,最后一层的预测)进行比较。当找到匹配时,停止进一步的处理并将层i(即,其预测与总体预测匹配的层)的置信度分数指派为将与总体预测相关联的总体置信度。例如,参考图3,层3 340的置信度分数(即,70%)被确定为DNN模型的总体置信度分数。可以认识到的是,层3是(在从层1到层3的范围内)其预测与模型的总体预测(即,最后一层(即,层4)的预测)相匹配的第一个层。因此,DNN模型使用最后一层的预测(以考虑高准确性)和第i层的置信度分数(以帮助减轻过度自信问题)。
返回到图2,根据一些实施例,在确定总体预测和要与DNN的总体预测相关联的总体置信度分数的集成机制中,DNN 210的置信度分数处理单元250基于为DNN 210的每个层生成的置信度分数的分布来计算针对每个意图类的集成分数(即,平均分数)。具体而言,置信度分数处理单元250计算:probability(intent_i|x)=avg(probability_layer_k(intent_i|x)),其中k在范围1→N上迭代。关于集成计算的细节将在接下来参考图4描述。
图4图示了根据各种实施例的由图2的DNN模型210执行的示例分类。为了说明起见,披萨机器人被认为包括意图类的集合410、输入的话语420和具有N=4个层的DNN模型。此外,为了简单起见,假设意图类的集合410包括三个意图:意图1-“订购披萨”、意图2-“取消披萨”和意图3-“送披萨”。输入的话语420被假设为“我想要意大利辣香肠披萨”。而且,应当理解的是,深度神经网络通常会实现多于四个层。然而,为了简单起见,这个示例只使用四个层。
在图4中,表430描绘了针对DNN 210的四个层中的每个层的预测。例如,每个层处的预测分布如下:
o层1
·意图1:订购披萨,20%
·意图2:取消披萨,10%
·意图3:送披萨,70%
o层2
·意图1:订购披萨,40%
·意图2:取消披萨,50%
·意图3:送披萨,10%
o层3
·意图1:订购披萨,70%
·意图2:取消披萨,10%
·意图3:送披萨,20%
o层4
·意图1:订购披萨,90%
·意图2:取消披萨,5%
·意图3:送披萨,5%
在确定总体预测和与DNN的总体预测相关联的总体置信度分数的集成机制中,以类似于迭代方法的方式来计算每个层的预测分布。此外,与迭代方法类似,DNN模型210确定模型的总体预测与DNN的最后一层的具有最高集成分数的预测对应。然而,在集成方法中,总体置信度分数的生成与迭代方法不同,如下文所述。
置信度分数处理单元250将每个层的预测模块所做的预测作为输入,并如下计算针对每个意图类的集成分数(例如,平均分数):
o集成分数:
·意图1:订购披萨(0.2+0.4+0.7+0.9)/4=55%
·意图2:取消披萨(0.1+0.5+0.1+0.05)/4=18.75%
·意图3:送披萨(0.7+0.1+0.2+0.05)/4=26.25%
具体而言,置信度分数处理单元250基于DNN模型210的每个层的置信度分数的分布将每个意图的集成分数计算为与意图的平均置信度分数对应。例如,参考图4,DNN模型的总体预测被确定为意图1,即,最后一层(即,层4)的具有最高置信度分数(即,90%)的意图。另外,DNN模型将(与所确定的总体意图(即,意图1)对应的)集成分数指派为模型的总体置信度分数。即,在图4中所示的示例中,DNN模型将55%的分数指派为模型的总体置信度分数。
图5A描绘了图示根据各种实施例的由深度神经网络(DNN)模型执行的过程的流程图。具体而言,图5A描绘了图示用于确定DNN的总体预测和总体置信度分数的迭代技术的流程图。图5A中描绘的处理可以在由相应系统、硬件或其组合的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)中实现。软件可以存储在非暂态存储介质上(例如,存储器设备上)。图5A中呈现并在下文描述的方法旨在是说明性而非限制性的。虽然图5A描绘了以特定顺序或次序发生的各种处理步骤,但这并不是限制性的。在某些替代实施例中,可以以某种不同的次序执行步骤,或者也可以并行地执行一些步骤。在某些实施例中,图5A中描绘的处理可以由关于图2和图3讨论的置信度分数处理单元250执行。
该过程在步骤510中开始,其中,关于输入的话语,为DNN模型的每个层生成置信度分数的分布。例如,与DNN模型的每个层相关联的预测模块生成与该层相关联的置信度分数的分布。在步骤515中,基于所生成的分布为DNN模型的每个层确定预测。具体而言,置信度分数处理单元250将(与该层相关联的置信度分数的对应分布中)具有最高置信度分数的预测确定为针对该层的预测,并且然后将所确定的预测指派给该层。例如,参考图4,指派给层1的预测是意图3,因为意图3在与层1相关联的置信度分数的分布中具有最高的置信度分数,即,意图1(20%)、意图2(10%)和意图3(70%)。
该过程然后移至步骤520,其中,DNN模型确定模型的总体预测。在一些实施例中,总体预测是指派给DNN模型的最后一层(即,层N)的预测。应该认识到的是,指派给最后一层的预测对应于来自与最后一层相关联的预测分数的分布中的具有最高置信度分数的预测。
在步骤525处,计数器(C)的值被初始化为1。计数器C被用于在DNN的多个层的子集上迭代。例如,对于包括k=N个层的DNN模型,计数器C的值可以从层k=1迭代到层k=N-1。此后该过程移至步骤530,其中执行查询以确定DNN模型的层(C)的被指派的预测是否与模型的总体预测相同。如果对查询的响应是肯定的,那么该过程移至步骤540,否则,如果对查询的响应是否定的,那么该过程移至步骤535。在步骤535中,计数器(C)的值递增1,并且该过程循环回到步骤530以评估下一个层的被指派的预测。
在成功识别DNN中的其指派的预测与模型的总体预测相同的层后,在步骤540中,与识别出的层相关联的置信度分数被指派为将与DNN模型210的总体预测相关联的总体置信度分数。
图5B描绘了图示根据各种实施例的由深度神经网络(DNN)模型执行的另一过程的流程图。具体而言,图5B描绘了图示用于确定DNN的总体预测和总体置信度分数的集成技术的流程图。图5B中描绘的处理可以在由相应系统、硬件或其组合的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)中实现。软件可以存储在非暂态存储介质上(例如,存储器设备上)。图5B中呈现并在下文描述的方法旨在是说明性而非限制性的。虽然图5B描绘了以特定顺序或次序发生的各种处理步骤,但这并不是限制性的。在某些替代实施例中,可以以某种不同的次序执行步骤,或者也可以并行地执行一些步骤。在某些实施例中,图5B中描绘的处理可以由关于图2和4讨论的置信度分数处理单元250执行。
该过程在步骤555中开始,其中,关于输入的话语,为DNN模型的每个层生成置信度分数的分布。例如,与DNN模型的每个层相关联的预测模块生成与该层相关联的置信度分数的分布。该过程在步骤560中基于所生成的置信度分数的分布为每个预测计算集成分数。例如,置信度分数处理单元将每个预测(即,意图)的集成分数计算为与DNN的不同层相关联的预测对应的置信度分数的平均值(或均值)。例如,参考图4,意图1在第一层中具有20%的置信度分数,在第二层中具有40%的置信度分数,在第三层中具有70%的置信度分数,并且在第四层中具有90%的置信度分数。因此,与意图1对应的集成分数为:(0.2+0.4+0.7+0.9)/4=55%,即,意图1在不同层中的相应置信度分数的平均值。
该过程然后移至步骤565,其中,模型的总体预测被确定为模型的最后一层的具有最高置信度分数的预测。例如,参考图4,看到最后一层(层4)具有与意图1相关联的90%置信度分数、与意图2相关联的5%置信度分数以及与意图3相关联的5%置信度分数。因而,意图1被确定为与模型的总体预测对应。在步骤570中,该过程基于计算出的集成分数将总体置信度分数指派给总体预测。例如,DNN模型将与总体预测对应的集成分数指派为模型的总体置信度分数。例如,参考图4,意图1(即,被确定为模型的总体意图的意图)的集成分数是55%。因此,55%的分数(而不是在第四层中与意图1相关联的90%分数)被指派为与模型的总体预测相关联的总体置信度分数。
根据一些实施例,在200个数据集上评估了用于确定DNN的总体预测和总体置信度分数的上述技术(即,迭代技术和集成技术)的性能。这些评估是在两种不同场景下执行的:a)经超参数调谐的DNN模型,和b)没有超参数调谐的DNN模型。可以认识到的是,超参数调谐是为DNN模型选择最优超参数的集合的过程,其中超参数是其值被用于控制DNN模型的学习过程的参数。
下面的表1中描绘了用于这两种情况的性能结果。观察到,与简单地将模型的最后一层的置信度分数指派为置信度分数的标准技术相比,DNN模型在指派适当的置信度分数(即,模型的总体置信度分数)方面产生了(在200个数据集上)改进的平均性能。
n=1 | n=2 | n=3 | |
没有超参数调谐 | 3% | 2% | 1% |
有超参数调谐 | 11% | 10% | 8% |
表1:在200个数据集上评估的DNN模型的平均性能改进。
应该认识到的是,虽然在上述实施例中,预测模块与DNN的每个层相关联,但是预测模块也可以与MUSE层(即,编码器层)相关联。另外,虽然本公开的实施例是在聊天机器人设置中使用的DNN模型的上下文中描述的,但是可以认识到的是,可以以类似的方式将本文中描述的解决过度自信问题的技术应用于不同设置中的任何神经网络。
说明性系统
图6描绘了分布式系统600的简化图。在所示示例中,分布式系统600包括经由一个或多个通信网络610耦合到服务器612的一个或多个客户端计算设备602、604、606和608。客户端计算设备602、604、606和608可以被配置为执行一个或多个应用。
在各种示例中,服务器612可以适于运行一个或多个服务或软件应用,该服务或软件应用使得能够实现本公开中描述的一个或多个实施例。在某些示例中,服务器612还可以提供可以包括非虚拟和虚拟环境的其它服务或软件应用。在一些示例中,这些服务可以作为基于web的服务或云服务,诸如在软件即服务(SaaS)模型下,提供给客户端计算设备602、604、606和/或608的用户。操作客户端计算设备602、604、606和/或608的用户进而可以利用一个或多个客户端应用与服务器612交互以利用由这些组件提供的服务。
在图6所描绘的配置中,服务器612可以包括实现由服务器612执行的功能的一个或多个组件618、620和622。这些组件可以包括可以由一个或多个处理器执行的软件组件、硬件组件或其组合。应该认识到的是,各种不同的系统配置是可能的,其可以与分布式系统600不同。因此,图6中所示的示例是用于实现示例系统的分布式系统的一个示例并且不旨在进行限制。
用户可以使用客户端计算设备602、604、606和/或608来执行一个或多个应用、模型或聊天机器人,这些应用、模型或聊天机器人可以生成一个或多个事件或模型,然后可以根据本公开的教导来实现或服务这些事件或模型。客户端设备可以提供使客户端设备的用户能够与客户端设备交互的接口。客户端设备也可以经由该接口向用户输出信息。虽然图6仅描绘了四个客户端计算设备,但可以支持任意数量的客户端计算设备。
客户端设备可以包括各种类型的计算系统,诸如便携式手持式设备、通用计算机,诸如个人计算机和膝上型计算机、工作站计算机、可穿戴设备、游戏系统、瘦客户端、各种消息传送设备、传感器和其它感测设备等。这些计算设备可以运行各种类型和版本的软件应用和操作系统(例如,Microsoft、Apple/>或类UNIX操作系统、Linux或类Linux操作系统,诸如Google ChromeTMTMOS),包括各种移动操作系统(例如,Microsoft Windows/>、Windows/>、AndroidTM、/>,Palm)。便携式手持式设备可以包括蜂窝电话、智能电话(例如,/>)、平板电脑(例如,)、个人数字助理(PDA)等。可穿戴设备可以包括Google/>头戴式显示器和其它设备。游戏系统可以包括各种手持式游戏设备、具有互联网功能的游戏设备(例如,具有或不具有/>手势输入设备的Microsoft/>游戏机、Sony/>系统、由提供的各种游戏系统以及其它)等。客户端设备可以能够执行各种不同的应用,诸如各种与互联网相关的应用、通信应用(例如,电子邮件应用、短消息服务(SMS)应用),并且可以使用各种通信协议。/>
(一个或多个)网络610可以是本领域技术人员熟悉的任何类型的网络,其可以使用多种可用协议中的任何一种来支持数据通信,包括但不限于TCP/IP(传输控制协议/互联网协议)、SNA(系统网络体系架构)、IPX(互联网分组交换)、等。仅仅作为示例,(一个或多个)网络610可以是局域网(LAN)、基于以太网的网络、令牌环、广域网(WAN)、互联网、虚拟网络、虚拟专用网(VPN)、内联网、外联网、公共电话交换网(PSTN)、红外网络、无线网络(例如,在任何电气和电子协会(IEEE)1002.11协议套件、/>和/或任何其它无线协议下操作的网络)和/或这些和/或其它网络的任意组合。
服务器612可以由一个或多个通用计算机、专用服务器计算机(作为示例,包括PC(个人计算机)服务器、服务器、中档服务器、大型计算机、机架安装的服务器等)、服务器场、服务器集群或任何其它适当的布置和/或组合组成。服务器612可以包括运行虚拟操作系统的一个或多个虚拟机,或者涉及虚拟化的其它计算体系架构,诸如可以被虚拟化以维护服务器的虚拟存储设备的逻辑存储设备的一个或多个灵活的池。在各种示例中,服务器612可以适于运行提供前述公开中描述的功能的一个或多个服务或软件应用。
服务器612中的计算系统可以运行一个或多个操作系统,包括以上讨论的任何操作系统以及任何商用的服务器操作系统。服务器612还可以运行各种附加服务器应用和/或中间层应用中的任何一种,包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(通用网关接口)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于可从/> (国际商业机器)等商购获得的数据库服务器。
在一些实施方式中,服务器612可以包括一个或多个应用以分析和整合从客户端计算设备602、604、606和608的用户接收到的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于从一个或多个第三方信息源和连续数据流接收到的馈送、/>更新或实时更新,其可以包括与传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视等相关的实时事件。服务器612还可以包括经由客户端计算设备602、604、606和608的一个或多个显示设备显示数据馈送和/或实时事件的一个或多个应用。
分布式系统600还可以包括一个或多个数据储存库614、616。在某些示例中,这些数据储存库可以被用于存储数据和其它信息。例如,数据储存库614、616中的一个或多个可以被用于存储信息,诸如与聊天机器人性能或生成的模型相关的信息,以供服务器612在根据各种实施例执行各种功能时使用的聊天机器人使用。数据储存库614、616可以驻留在各种位置。例如,服务器612使用的数据储存库可以在服务器612本地或可以远离服务器612并且经由基于网络的连接或专用连接与服务器612通信。数据储存库614、616可以是不同类型的。在某些示例中,服务器612使用的数据储存库可以是数据库,例如关系数据库,诸如由Oracle和其它供应商提供的数据库。这些数据库中的一个或多个可以适于响应于SQL格式的命令来事项数据库中数据的存储、更新和检索。
在某些示例中,应用还可以使用数据储存库614、616中的一个或多个来存储应用数据。应用使用的数据储存库可以是不同类型的,诸如,例如键-值存储储存库、对象存储储存库或文件系统支持的通用存储储存库。
在某些示例中,本公开中描述的功能可以经由云环境作为服务来提供。图7是根据某些示例的其中各种服务可以被提供为云服务的基于云的系统环境的简化框图。在图7中描绘的示例中,云基础设施系统702可以提供一个或多个云服务,这些服务可以由使用一个或多个客户端计算设备704、706和708的用户请求。云基础设施系统702可以包括一个或多个计算机和/或服务器,这些计算机和/或服务器可以包括上面针对服务器612描述的这些。云基础设施系统702中的计算机可以被组织为通用计算机、专用服务器计算机、服务器场、服务器集群或任何其它适当的布置和/或组合。
(一个或多个)网络710可以促进客户端704、706和708与云基础设施系统702之间的通信和数据交换。(一个或多个)网络710可以包括一个或多个网络。网络可以是相同的或不同的类型。(一个或多个)网络710可以支持一种或多种通信协议,包括有线和/或无线协议,以促进通信。
图7中描绘的示例仅仅是云基础设施系统的一个示例,并且不旨在进行限制。应该认识到的是,在一些其它示例中,云基础设施系统702可以具有比图7所示的组件更多或更少的组件、可以组合两个或更多个组件,或者可以具有不同的组件配置或布置。例如,虽然图7描绘了三个客户端计算设备,但是在替代示例中可以支持任何数量的客户端计算设备。
术语“云服务”通常用于指由服务提供商的系统(例如,云基础设施系统702)根据需要并且经由诸如互联网之类的通信网络使用户可使用的服务。典型地,在公共云环境中,组成云服务提供商系统的服务器和系统与客户自己的内部服务器和系统不同。云服务提供商的系统由云服务提供商管理。客户因此可以利用由云服务提供商提供的云服务,而不必为服务购买单独的许可证、支持或硬件和软件资源。例如,云服务提供商的系统可以托管应用,并且用户可以经由互联网按需订购和使用应用,而用户不必购买用于执行应用的基础设施资源。云服务旨在提供对应用、资源和服务的轻松、可扩展的访问。几个提供商提供云服务。例如,由加利福尼亚州Redwood Shores的公司提供了几种云服务,诸如中间件服务、数据库服务、Java云服务等。
在某些示例中,云基础设施系统702可以使用诸如软件即服务(SaaS)模型、平台即服务(PaaS)模型、基础设施即服务(IaaS)模型以及包括混合服务模型的其它模型之类的不同模型提供一个或多个云服务。云基础设施系统702可以包括一套应用、中间件、数据库以及使得能够供给各种云服务的其它资源。
SaaS模型使得应用或软件能够作为服务通过如互联网的通信网络交付给客户,而客户不必为底层应用购买硬件或软件。例如,SaaS模型可以被用于为客户提供对由云基础设施系统702托管的按需应用的访问。由公司提供的SaaS服务的示例包括但不限于用于人力资源/资本管理、客户关系管理(CRM)、企业资源计划(ERP)、供应链管理(SCM)、企业绩效管理(EPM)、分析服务、社交应用及其它的各种服务。
IaaS模型通常用于向客户提供基础设施资源(例如,服务器、存储装置、硬件和联网资源)作为云服务,以提供弹性计算和存储能力。公司提供了各种IaaS服务。
PaaS模型通常用于提供平台和环境资源作为服务,其使得客户能够开发、运行和管理应用和服务,而客户不必采购、构建或维护此类资源。由公司提供的PaaS服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)、数据管理云服务、各种应用开发解决方案服务,以及其它服务。/>
云服务通常基于按需自助服务、基于订阅、弹性可缩放、可靠、高度可用和安全的方式提供。例如,客户可以经由订阅订单订购由云基础设施系统702提供的一个或多个服务。然后,云基础设施系统702执行处理,以提供客户的订阅订单中所请求的服务。例如,用户可以使用话语来请求云基础设施系统采取某个动作(例如,意图),如上所述,和/或为本文描述的聊天机器人系统提供服务。云基础设施系统702可以被配置为提供一种或甚至多种云服务。
云基础设施系统702可以经由不同的部署模型来提供云服务。在公共云模型中,云基础设施系统702可以由第三方云服务提供商拥有,并且云服务被提供给任何普通公众客户,其中客户可以是个人或企业。在某些其它示例中,在私有云模型下,可以在组织内(例如,在企业组织内)操作云基础设施系统702,并向组织内的客户提供服务。例如,客户可以是企业的各个部门,诸如人力资源部门、工资部门等,甚至是企业内的个人。在某些其它示例中,在社区云模型下,云基础设施系统702和所提供的服务可以由相关社区中的几个组织共享。也可以使用各种其它模型,诸如上面提到的模型的混合。
客户端计算设备704、706和708可以是不同类型的(诸如图6中描绘的客户端计算设备604、606和608),并且可以能够操作一个或多个客户端应用。用户可以使用客户端设备与云基础设施系统702交互,诸如请求由云基础设施系统702提供的服务。例如,用户可以使用客户端设备来从聊天机器人请求信息或动作,如本公开中描述的。
在一些示例中,由云基础设施系统702执行的用于提供服务的处理可以涉及模型训练和部署。这种分析可以涉及使用、分析和操纵数据集来训练和部署一个或多个模型。这种分析可以由一个或多个处理器执行,可能并行地处理数据,使用数据来执行模拟等。例如,大数据分析可以由云基础设施系统702执行,用于生成和训练用于聊天机器人系统的一个或多个模型。用于这种分析的数据可以包括结构化数据(例如,存储在数据库中或根据结构化模型结构化的数据)和/或非结构化数据(例如,数据Blob(二进制大对象))。
如在图7的示例中所描绘的,云基础设施系统702可以包括基础设施资源730,其用于促进由云基础设施系统702提供的各种云服务的供给。基础设施资源730可以包括例如处理资源、存储或存储器资源、联网资源等。在某些示例中,可用于服务从应用请求的存储的存储虚拟机可以是云基础设施系统702的一部分。在其它示例中,存储虚拟机可以是不同系统的一部分。
在某些示例中,为了促进这些资源的高效供给以支持由云基础设施系统702为不同客户提供的各种云服务,可以将资源捆绑成资源或资源模块的集合(也称为“群聚(pod)”)。每个资源模块或群聚可以包括一种或多种类型的资源的预先集成和优化的组合。在某些示例中,可以为不同类型的云服务预先供给不同的群聚。例如,可以为数据库服务供给第一群聚集合,可以为Java服务供给第二群聚集合,其中第二群聚集合可以包括与第一群聚集合中的群聚不同的资源组合。对于一些服务,可以在服务之间共享为供给服务而分配的资源。
云基础设施系统702自身可以内部使用服务732,服务732由云基础设施系统702的不同组件共享并且促进云基础设施系统702的服务供给。这些内部共享的服务可以包括但不限于安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、用于启用云支持的服务、电子邮件服务、通知服务、文件传输服务等。
云基础设施系统702可以包括多个子系统。这些子系统可以用软件或硬件或其组合来实现。如图7所示,子系统可以包括用户接口子系统712,该用户接口子系统712使得云基础设施系统702的用户或客户能够与云基础设施系统702交互。用户接口子系统712可以包括各种不同的接口,诸如web接口714、在线商店接口716(其中由云基础设施系统702提供的云服务被广告并且可由消费者购买)和其它接口718。例如,客户可以使用客户端设备,使用接口714、716和718中的一个或多个来请求(服务请求734)由云基础设施系统702提供的一个或多个服务。例如,客户可以访问在线商店、浏览由云基础设施系统702提供的云服务,并且为客户希望订阅的由云基础设施系统702提供的一个或多个服务下订单。服务请求可以包括识别客户和客户期望订阅的一个或多个服务的信息。例如,客户可以为云基础设施系统702提供的服务下订单。作为订单的一部分,客户可以提供识别要为其提供服务的聊天机器人系统的信息以及可选的用于聊天机器人系统的一个或多个凭证。
在某些示例中,诸如图7中描绘的示例,云基础设施系统702可以包括被配置为处理新订单的订单管理子系统(OMS)720。作为该处理的一部分,OMS 720可以被配置为:为客户创建账户(如果尚未创建);接收来自客户的账单和/或会计信息,该账单和/或账单信息将用于针对向客户提供所请求的服务向客户计费;验证客户信息;在验证后,为客户预订订单;已经编排各种工作流程以准备用于供给的订单。
一旦被正确地验证,OMS 720就可以调用订单供给子系统(OPS)724,其被配置为为订单供给资源,包括处理资源、存储器资源和联网资源。供给可以包括为订单分配资源,以及配置资源以促进由客户订单所请求的服务。为订单供给资源的方式和供给资源的类型可以取决于客户已订购的云服务的类型。例如,根据一个工作流程,OPS 724可以被配置为确定所请求的特定云服务,并且识别可能已经针对该特定云服务而被预先配置的多个群聚。为订单分配的群聚的数量可以取决于所请求的服务的大小/数量/级别/范围。例如,可以基于服务所支持的用户的数量、正在请求的服务的持续时间等来确定要分配的群聚的数量。然后,可以针对特定的请求客户定制所分配的群聚,以提供所请求的服务。
在某些示例中,如上所述的设置阶段处理可以由云基础设施系统702作为供应处理的一部分来执行。云基础设施系统702可以生成应用ID并从云基础设施系统702自身提供的存储虚拟机中或从除云基础设施系统702以外的其它系统提供的存储虚拟机中为应用选择存储虚拟机。
云基础设施系统702可以向发出请求的客户发送响应或通知744以在所请求的服务现在准备好使用时进行指示。在一些情况下,可以将信息(例如,链接)发送给客户,使客户能够开始使用和利用所请求服务的益处。在某些示例中,对于请求服务的客户,响应可以包括由云基础设施系统702生成的聊天机器人系统ID和识别由云基础设施系统702为与聊天机器人系统ID对应的聊天机器人系统选择的聊天机器人系统的信息。
云基础设施系统702可以向多个客户提供服务。对于每个客户,云基础设施系统702负责管理与从客户接收到的一个或多个订阅订单相关的信息、维护与订单相关的客户数据,以及向客户提供所请求的服务。云基础设施系统702还可以收集关于客户对已订阅的服务的使用的使用统计信息。例如,可以针对使用的存储量、传输的数据量、用户的数量以及系统正常运行时间和系统停机时间量等收集统计信息。该使用信息可以被用于向客户计费。计费可以例如按月周期进行。
云基础设施系统702可以并行地向多个客户提供服务。云基础设施系统702可以存储这些客户的信息,包括可能的专有信息。在某些示例中,云基础设施系统702包括身份管理子系统(IMS)728,其被配置为管理客户信息并提供所管理的信息的分离,使得与一个客户相关的信息不可被另一个客户访问。IMS 728可以被配置为提供各种与安全相关的服务,诸如身份服务,诸如信息访问管理、认证和授权服务、用于管理客户身份和角色及相关能力的服务,等等。
图8图示了计算机系统800的示例。在一些示例中,计算机系统800可以被用于在分布式环境以及上述各种服务器和计算机系统内实现任何数字助理或聊天机器人系统。如图8所示,计算机系统800包括各种子系统,包括经由总线子系统802与多个其它子系统通信的处理子系统804。这些其它子系统可以包括处理加速单元806、I/O子系统808、存储子系统818和通信子系统824。存储子系统818可以包括非暂态计算机可读存储介质,其包括存储介质822和系统存储器810。
总线子系统802提供用于使计算机系统800的各种组件和子系统按照期望彼此通信的机制。虽然总线子系统802被示意性地示为单条总线,但是总线子系统的替代示例可以利用多条总线。总线子系统802可以是几种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、使用任何各种总线体系架构的局部总线等。例如,此类体系架构可以包括工业标准体系架构(ISA)总线、微通道体系架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围组件互连(PCI)总线,其可以实现为根据IEEEP1386.1标准制造的夹层(Mezzanine)总线,等等。
处理子系统804控制计算机系统800的操作,并且可以包括一个或多个处理器、专用集成电路(ASIC)或现场可编程门阵列(FPGA)。处理器可以包括单核或多核处理器。可以将计算机系统800的处理资源组织成一个或多个处理单元832、834等。处理单元可以包括一个或多个处理器、来自相同或不同处理器的一个或多个核心、核心和处理器的组合、或核心和处理器的其它组合。在一些示例中,处理子系统804可以包括一个或多个专用协处理器,诸如图形处理器、数字信号处理器(DSP)等。在一些示例中,处理子系统804的一些或全部可以使用定制电路来实现,诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)。
在一些示例中,处理子系统804中的处理单元可以执行存储在系统存储器810中或计算机可读存储介质822上的指令。在各个示例中,处理单元可以执行各种程序或代码指令,并且可以维护多个并发执行的程序或进程。在任何给定的时间,要执行的程序代码中的一些或全部可以驻留在系统存储器810中和/或计算机可读存储介质822上,包括可能在一个或多个存储设备上。通过适当的编程,处理子系统804可以提供上述各种功能。在计算机系统800正在执行一个或多个虚拟机的情况下,可以将一个或多个处理单元分配给每个虚拟机。
在某些示例中,可以可选地提供处理加速单元806,以用于执行定制的处理或用于卸载由处理子系统804执行的一些处理,从而加速由计算机系统800执行的整体处理。
I/O子系统808可以包括用于向计算机系统800输入信息和/或用于从或经由计算机系统800输出信息的设备和机制。一般而言,术语“输入设备”的使用旨在包括用于向计算机系统800输入信息的所有可能类型的设备和机制。用户接口输入设备可以包括,例如,键盘、诸如鼠标或轨迹球之类的指向设备、并入到显示器中的触摸板或触摸屏、滚轮、点击轮、拨盘、按钮、开关、小键盘、带有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备还可以包括使用户能够控制输入设备并与之交互的诸如Microsoft运动传感器的运动感测和/或姿势识别设备、Microsoft/>360游戏控制器、提供用于接收使用姿势和口语命令的输入的界面的设备。用户接口输入设备还可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍摄图片和/或进行菜单选择时的“眨眼”)并将眼睛姿势转换为到输入设备(例如,Google/>)的输入的Google眨眼检测器。此外,用户接口输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,/>导航器)交互的语音识别感测设备。
用户接口输入设备的其它示例包括但不限于,三维(3D)鼠标、操纵杆或指示杆、游戏板和图形平板、以及音频/视频设备,诸如扬声器、数字相机、数字摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3D扫描仪、3D打印机、激光测距仪、以及眼睛注视跟踪设备。此外,用户接口输入设备可以包括,例如,医疗成像输入设备,诸如计算机断层摄影、磁共振成像、位置发射断层摄影、以及医疗超声检查设备。用户接口输入设备也可以包括,例如,音频输入设备,诸如MIDI键盘、数字乐器等。
一般而言,术语“输出设备”的使用旨在包括所有可能类型的设备和用于从计算机系统800向用户或其它计算机输出信息的机制。用户接口输出设备可以包括显示子系统、指示器灯或诸如音频输出设备的非可视显示器等。显示子系统可以是阴极射线管(CRT)、诸如利用液晶显示器(LCD)或等离子体显示器的平板设备、投影设备、触摸屏等。例如,用户接口输出设备可以包括但不限于,可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备和调制解调器。
存储子系统818提供用于存储由计算机系统800使用的信息和数据的储存库或数据存储库。存储子系统818提供了用于存储提供一些示例的功能的基本编程和数据构造的有形非暂态计算机可读存储介质。存储子系统818可以存储软件(例如,程序、代码模块、指令),该软件在由处理子系统804执行时提供上述功能。软件可以由处理子系统804的一个或多个处理单元执行。存储子系统818还可以提供根据本公开的教导的认证。
存储子系统818可以包括一个或多个非暂态存储器设备,包括易失性和非易失性存储器设备。如图8所示,存储子系统818包括系统存储器810和计算机可读存储介质822。系统存储器810可以包括多个存储器,包括用于在程序执行期间存储指令和数据的易失性主随机存取存储器(RAM)以及其中存储有固定指令的非易失性只读存储器(ROM)或闪存。在一些实施方式中,基本输入/输出系统(BIOS)可以典型地存储在ROM中,该基本输入/输出系统(BIOS)包含有助于例如在启动期间在计算机系统800内的元件之间传递信息的基本例程。RAM通常包含当前由处理子系统804操作和执行的数据和/或程序模块。在一些实施方式中,系统存储器810可以包括多种不同类型的存储器,诸如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
举例来说而非限制,如图8所示,系统存储器810可以加载正在被执行的可以包括各种应用(诸如Web浏览器、中间层应用、关系型数据库管理系统(RDBMS)等)的应用程序812、程序数据814和操作系统816。作为示例,操作系统816可以包括各种版本的Microsoft、Apple/>和/或Linux操作系统、各种商用/>或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、Google/>OS等)和/或移动操作系统,诸如iOS、/>Phone、/>OS、/>OS、/>OS操作系统,以及其它操作系统。
计算机可读存储介质822可以存储提供一些示例的功能的编程和数据构造。计算机可读介质822可以为计算机系统800提供计算机可读指令、数据结构、程序模块和其它数据的存储。当由处理子系统804执行时,提供上述功能的软件(程序、代码模块、指令)可以存储在存储子系统818中。作为示例,计算机可读存储介质822可以包括非易失性存储器,诸如硬盘驱动器、磁盘驱动器、诸如CD ROM、DVD、Blu-(蓝光)盘或其它光学介质的光盘驱动器。计算机可读存储介质822可以包括但不限于,/>驱动器、闪存存储器卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字视频带等。计算机可读存储介质822也可以包括基于非易失性存储器的固态驱动器(SSD)(诸如基于闪存存储器的SSD、企业闪存驱动器、固态ROM等)、基于易失性存储器的SSD(诸如基于固态RAM、动态RAM、静态RAM、DRAM的SSD、磁阻RAM(MRAM)SSD),以及使用基于DRAM和基于闪存存储器的SSD的组合的混合SSD。
在某些示例中,存储子系统818还可以包括计算机可读存储介质读取器820,其还可以连接到计算机可读存储介质822。读取器820可以接收并且被配置为从诸如盘、闪存驱动器等的存储器设备读取数据。
在某些示例中,计算机系统800可以支持虚拟化技术,包括但不限于处理和存储器资源的虚拟化。例如,计算机系统800可以提供用于执行一个或多个虚拟机的支持。在某些示例中,计算机系统800可以执行诸如促进虚拟机的配置和管理的管理程序之类的程序。可以为每个虚拟机分配存储器、计算(例如,处理器、核心)、I/O和联网资源。每个虚拟机通常独立于其它虚拟机运行。虚拟机通常运行其自己的操作系统,该操作系统可以与由计算机系统800执行的其它虚拟机执行的操作系统相同或不同。因而,计算机系统800可以潜在地同时运行多个操作系统。
通信子系统824提供到其它计算机系统和网络的接口。通信子系统824用作用于从计算机系统800接收数据以及向其它系统传输数据的接口。例如,通信子系统824可以使得计算机系统800能够经由互联网建立到一个或多个客户端设备的通信信道,以用于从客户端设备接收信息以及向客户端设备发送信息。例如,当计算机系统800被用于实现图1中描绘的机器人系统120时,通信子系统可以被用于与为应用选择的聊天机器人系统进行通信。
通信子系统824可以支持有线和/或无线通信协议两者。在某些示例中,通信子系统824可以包括用于(例如,使用蜂窝电话技术、高级数据网络技术(诸如3G、4G或EDGE(全球演进的增强数据速率)、WiFi(IEEE 802.XX族标准)、或其它移动通信技术、或其任意组合)接入无线语音和/或数据网络的射频(RF)收发器组件、全球定位系统(GPS)接收器组件和/或其它组件。在一些示例中,作为无线接口的附加或替代,通信子系统824可以提供有线网络连接(例如,以太网)。
通信子系统824可以以各种形式接收和传输数据。在一些示例中,除了其它形式之外,通信子系统824还可以以结构化和/或非结构化的数据馈送826、事件流828、事件更新830等形式接收输入通信。例如,通信子系统824可以被配置为实时地从社交媒体网络的用户和/或诸如馈送、/>更新、诸如丰富站点摘要(RSS)馈送的web馈送的其它通信服务接收(或发送)数据馈送826,和/或来自一个或多个第三方信息源的实时更新。
在某些示例中,通信子系统824可以被配置为以连续数据流的形式接收本质上可能是连续的或无界的没有明确结束的数据,其中连续数据流可以包括实时事件的事件流828和/或事件更新830。生成连续数据的应用的示例可以包括例如传感器数据应用、金融报价机、网络性能测量工具(例如网络监视和流量管理应用)、点击流分析工具、汽车流量监视等。
通信子系统824也可以被配置为将数据从计算机系统800传送到其它计算机系统或网络。数据可以以各种不同的形式传送给一个或多个数据库,诸如结构化和/或非结构化数据馈送826、事件流828、事件更新830等,该一个或多个数据库可以与耦合到计算机系统800的一个或多个流传输数据源进行通信。
计算机系统800可以是各种类型中的一种,包括手持便携式设备(例如,蜂窝电话、/>计算平板、PDA)、可穿戴设备(例如,Google/>头戴式显示器)、个人计算机、工作站、大型机、信息站、服务器机架或任何其它数据处理系统。由于计算机和网络不断变化的性质,对图8中绘出的计算机系统800的描述旨在仅仅作为具体示例。具有比图8中所绘出的系统更多或更少组件的许多其它配置是可能的。基于本文所提供的公开内容和教导,应当认识到的是,存在实现各种示例的其它方式和/或方法。
虽然已经描述了特定的示例,但是各种修改、变更、替代构造以及等同物都是可能的。示例不限于在某些特定数据处理环境内的操作,而是可以在多个数据处理环境内自由操作。此外,虽然已经使用一系列特定的事务和步骤描述了某些示例,但是对于本领域技术人员来说清楚的是,这并不旨在进行限制。虽然一些流程图将操作描述为顺序处理,但是许多操作可以并行或同时执行。此外,操作的次序可以被重新布置。处理可能具有图中未包括的其它步骤。上述示例的各种特征和方面可以被单独使用或联合使用。
另外,虽然已经使用硬件和软件的特定组合描述了某些示例,但是应该认识到的是,硬件和软件的其它组合也是可能的。某些示例可以仅用硬件或仅用软件或其组合来实现。本文描述的各种处理可以以任何组合在相同的处理器或不同的处理器上实现。
在将设备、系统、组件或模块描述为被配置为执行某些操作或功能的情况下,这样的配置可以通过以下方式来实现,例如,通过设计电子电路来执行操作、通过对可编程电子电路(诸如微处理器)进行编程来执行操作,诸如通过执行计算机指令或代码,或处理器或核心被编程为执行存储在非暂态存储介质上的代码或指令,或其任意组合来执行操作。进程可以使用各种技术进行通信,包括但不限于用于进程间通信的常规技术,并且不同对的进程可以使用不同的技术,或者同一对进程可以在不同时间使用不同的技术。
在本公开中给出了具体细节以提供对示例的透彻理解。然而,可以在没有这些具体细节的情况下实践示例。例如,已经示出了众所周知的电路、处理、算法、结构和技术,而没有不必要的细节,以避免使示例模糊。本描述仅提供示例性示例,并且不旨在限制其它示例的范围、适用性或配置。相反,示例的先前描述将为本领域技术人员提供用于实现各种示例的使能描述。可以对元件的功能和布置进行各种改变。
因而,说明书和附图应被认为是说明性的而不是限制性的。然而,将清楚的是,在不脱离权利要求书所阐述的更广泛的精神和范围的情况下,可以对其进行添加、减少、删除以及其它修改和改变。因此,虽然已经描述了具体的示例,但是这些示例并不旨在进行限制。各种修改和等同形式均在所附权利要求的范围内。
在前述说明书中,参考其具体示例描述了本公开的方面,但是本领域技术人员将认识到本公开不限于此。上述公开的各种特征和方面可以被单独或联合使用。此外,在不脱离本说明书的更广泛的精神和范围的情况下,可以在超出本文描述的环境和应用的任何数量的环境和应用中利用示例。因而,本说明书和附图被认为是说明性的而不是限制性的。
在前面的描述中,为了说明的目的,以特定顺序描述了方法。应该认识到的是,在替代示例中,可以以与所描述的顺序不同的顺序来执行这些方法。还应该认识到的是,上述方法可以由硬件组件执行或可以实施在机器可执行指令的序列中,这些指令可以被用于使机器,诸如通用或专用处理器或用指令编程的逻辑电路执行方法。这些机器可执行指令可以存储在一个或多个机器可读介质上,诸如CD-ROM或其它类型的光盘、软盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡,闪存,或适合存储电子指令的其它类型的机器可读介质。替代地,这些方法可以通过硬件和软件的组合来执行。
在组件被描述为被配置为执行某些操作的情况下,这种配置可以通过例如设计电子电路或其它硬件来执行操作、通过对可编程电子电路(例如,微处理器或其它合适的电子电路)进行编程来执行操作,或其任意组合来完成。
虽然本文已经详细描述了本申请的说明性示例,但是应该理解的是,本发明构思可以以其它方式被不同地实施和采用,并且所附权利要求旨在被解释为包括这样的变型,除了受现有技术的限制。
Claims (20)
1.一种方法,包括:
针对机器学习模型的多个层中的每个层,关于输入的话语,为多个预测生成置信度分数的分布;
基于为所述机器学习模型的每个层生成的置信度分数的分布,确定要指派给该层的预测;
基于所述确定,生成所述机器学习模型的总体预测;
迭代地处理所述机器学习模型的所述多个层的子集,以识别所述机器学习模型的其被指派的预测满足准则的层;以及
将与所述机器学习模型的所述层的被指派的预测相关联的置信度分数指派为要与所述机器学习模型的所述总体预测相关联的总体置信度分数。
2.如权利要求1所述的方法,其中,确定要指派给所述机器学习模型的每个层的预测还包括:
将所述多个预测中在为该层生成的置信度分数的分布中具有最高置信度分数的预测指派为用于该层的预测。
3.如权利要求1所述的方法,其中,生成所述机器学习模型的所述总体预测还包括:
将所述机器学习模型的最后一层的在与所述最后一层相关联的置信度分数的分布中具有最高置信度分数的预测指派为所述机器学习模型的所述总体预测,所述最后一层是所述机器学习模型的输出层。
4.如权利要求1所述的方法,其中,所述准则与以下内容对应:所述层的被指派的预测与所述机器学习模型的所述总体预测是相同的。
5.如权利要求1所述的方法,其中,所述机器学习模型的所述多个层包括N个层,并且所述多个层的所述子集与所述机器学习模型的前N-1个层对应,并且其中所述机器学习模型是深度神经网络模型。
6.如权利要求1所述的方法,其中,所述机器学习模型包括被配置为接收所述输入的话语并生成嵌入的编码器,并且所述机器学习模型的多个层中的每个层包括被配置为生成与该层相关联的置信度分数的分布的预测模块。
7.如权利要求6所述的方法,其中,与所述机器学习模型的第一层相关联的第一预测模块基于由所述编码器生成的嵌入而生成与所述第一层相关联的置信度分数的第一分布,并且所述机器学习模型的第二层基于由所述第一层处理的嵌入而生成与所述第二层相关联的置信度分数的第二分布。
8.一种计算设备,包括:
处理器;以及
包括指令的存储器,所述指令在由所述处理器执行时,使所述计算设备至少执行以下操作:
针对机器学习模型的多个层中的每个层,关于输入的话语,为多个预测生成置信度分数的分布;
基于为所述机器学习模型的每个层生成的置信度分数的分布,确定要指派给该层的预测;
基于所述确定,生成所述机器学习模型的总体预测;
迭代地处理所述机器学习模型的所述多个层的子集,以识别所述机器学习模型的其被指派的预测满足准则的层;以及
将与所述机器学习模型的所述层的被指派的预测相关联的置信度分数指派为要与所述机器学习模型的所述总体预测相关联的总体置信度分数。
9.如权利要求8所述的计算装置,其中,所述处理器还被配置为:将所述多个预测中在为每个层生成的置信度分数的分布中具有最高置信度分数的预测指派为用于该层的预测。
10.如权利要求8所述的计算设备,其中,所述处理器还被配置为:通过将所述机器学习模型的最后一层的在与所述最后一层相关联的置信度分数的分布中具有最高置信度分数的预测指派为对应于所述总体预测来生成所述机器学习模型的所述总体预测,所述最后一层是所述机器学习模型的输出层。
11.如权利要求8所述的计算设备,其中,所述准则与以下内容对应:所述层的被指派的预测与所述机器学习模型的所述总体预测是相同的。
12.如权利要求8所述的计算设备,其中,所述机器学习模型的所述多个层包括N个层,并且所述多个层的所述子集与所述机器学习模型的前N-1个层对应,并且其中所述机器学习模型是深度神经网络模型。
13.如权利要求8所述的计算设备,其中,所述机器学习模型包括被配置为接收所述输入的话语并生成嵌入的编码器,并且所述机器学习模型的多个层中的每个层包括被配置为生成与该层相关联的置信度分数的分布的预测模块。
14.如权利要求13所述的计算设备,其中,与所述机器学习模型的第一层相关联的第一预测模块基于由所述编码器生成的嵌入而生成与所述第一层相关联的置信度分数的第一分布,并且所述机器学习模型的第二层基于由所述第一层处理的嵌入而生成与所述第二层相关联的置信度分数的第二分布。
15.一种方法,包括:
针对机器学习模型的多个层中的每个层,关于输入的话语,为多个预测生成置信度分数的分布;
基于所述机器学习模型的所述多个层的置信度分数的分布,计算所述多个预测中的每个预测的分数;
确定所述多个预测中的与所述机器学习模型的总体预测对应的预测;以及
指派与所述多个预测中的所述预测相关联的分数作为要与所述机器学习模型的总体预测相关联的总体置信度分数。
16.如权利要求15所述的方法,其中,所述多个预测中的与所述总体预测对应的预测是所述机器学习模型的最后一层的如下预测,该预测在与所述最后一层相关联的置信度分数的分布中具有最高置信度分数,所述最后一层是所述机器学习模型的输出层。
17.如权利要求16所述的方法,其中,用于所述预测的所述分数是所述预测关于所述机器学习模型的所述多个层的置信度分数的平均值。
18.如权利要求15所述的方法,其中,所述机器学习模型是深度神经网络模型。
19.如权利要求15所述的方法,其中,所述机器学习模型包括被配置为接收所述输入的话语并生成嵌入的编码器,并且所述机器学习模型的多个层中的每个层包括被配置为生成与该层相关联的置信度分数的分布的预测模块。
20.如权利要求19所述的方法,其中,与所述机器学习模型的第一层相关联的第一预测模块基于由所述编码器生成的嵌入而生成与所述第一层相关联的置信度分数的第一分布,并且所述机器学习模型的第二层基于由所述第一层处理的嵌入而生成与所述第二层相关联的置信度分数的第二分布。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063119566P | 2020-11-30 | 2020-11-30 | |
US63/119,566 | 2020-11-30 | ||
US17/455,181 | 2021-11-16 | ||
US17/455,181 US20220172021A1 (en) | 2020-11-30 | 2021-11-16 | Method and system for over-prediction in neural networks |
PCT/US2021/059686 WO2022115291A1 (en) | 2020-11-30 | 2021-11-17 | Method and system for over-prediction in neural networks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116490879A true CN116490879A (zh) | 2023-07-25 |
Family
ID=81751544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180077947.0A Pending CN116490879A (zh) | 2020-11-30 | 2021-11-17 | 用于神经网络中过度预测的方法和系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220172021A1 (zh) |
EP (1) | EP4252149A1 (zh) |
JP (1) | JP2023551325A (zh) |
CN (1) | CN116490879A (zh) |
WO (1) | WO2022115291A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11842737B2 (en) * | 2021-03-24 | 2023-12-12 | Google Llc | Automated assistant interaction prediction using fusion of visual and audio input |
US20230237589A1 (en) * | 2022-01-21 | 2023-07-27 | Intuit Inc. | Model output calibration |
US20240062021A1 (en) * | 2022-08-22 | 2024-02-22 | Oracle International Corporation | Calibrating confidence scores of a machine learning model trained as a natural language interface |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11657797B2 (en) * | 2019-04-26 | 2023-05-23 | Oracle International Corporation | Routing for chatbots |
-
2021
- 2021-11-16 US US17/455,181 patent/US20220172021A1/en active Pending
- 2021-11-17 CN CN202180077947.0A patent/CN116490879A/zh active Pending
- 2021-11-17 JP JP2023532791A patent/JP2023551325A/ja active Pending
- 2021-11-17 WO PCT/US2021/059686 patent/WO2022115291A1/en active Application Filing
- 2021-11-17 EP EP21824219.6A patent/EP4252149A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220172021A1 (en) | 2022-06-02 |
WO2022115291A1 (en) | 2022-06-02 |
EP4252149A1 (en) | 2023-10-04 |
JP2023551325A (ja) | 2023-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111860753B (zh) | 用于训练模型的基于有向无环图的框架 | |
US12014146B2 (en) | Techniques for out-of-domain (OOD) detection | |
US20210304075A1 (en) | Batching techniques for handling unbalanced training data for a chatbot | |
CN114424185A (zh) | 用于自然语言处理的停用词数据扩充 | |
US11868727B2 (en) | Context tag integration with named entity recognition models | |
CN115398419A (zh) | 用于基于目标的超参数调优的方法和系统 | |
US11989523B2 (en) | Composite entity for rule driven acquisition of input data to chatbots | |
JP2023530423A (ja) | 堅牢な固有表現認識のためのチャットボットにおけるエンティティレベルデータ拡張 | |
US20220172021A1 (en) | Method and system for over-prediction in neural networks | |
US20220058347A1 (en) | Techniques for providing explanations for text classification | |
CN116802629A (zh) | 用于自然语言处理的多因素建模 | |
CN116583837A (zh) | 用于自然语言处理的基于距离的logit值 | |
CN116547676A (zh) | 用于自然语言处理的增强型logit | |
CN116235164A (zh) | 聊天机器人的范围外自动转变 | |
US20230098783A1 (en) | Framework for focused training of language models and techniques for end-to-end hypertuning of the framework | |
CN118140230A (zh) | 对经预训练的语言模型的单个转换器层的多头网络进行微调 | |
CN118202344A (zh) | 用于从文档中提取嵌入式数据的深度学习技术 | |
WO2022159544A1 (en) | Multi-feature balancing for natural language processors | |
US20230136965A1 (en) | Prohibiting inconsistent named entity recognition tag sequences | |
KR20240089615A (ko) | 사전-트레이닝된 언어 모델의 단일 트랜스포머 계층으로부터의 다중-헤드 네트워크의 미세-튜닝 | |
CN118235143A (zh) | 自然语言处理的路径失活 | |
CN118265981A (zh) | 用于为预训练的语言模型处置长文本的系统和技术 | |
CN118251668A (zh) | 用于从数据中提取问题答案对的基于规则的技术 |
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 |