掌桥专利:专业的专利平台
掌桥专利
首页

计算机实施的方法、训练系统和计算机程序产品

文献发布时间:2024-04-18 19:57:11


计算机实施的方法、训练系统和计算机程序产品

本申请是申请日为2020年9月10日、申请号为202010947755.8、发明名称为“计算机实施的方法、训练系统和计算机程序产品”的中国专利申请的分案申请,该中国专利申请要求2019年9月11日提交的美国临时申请62/898,680号、以及2020年8月25日提交的美国申请17/002,229号的权益。

技术领域

本公开涉及对话系统,特别涉及使用反向传播来训练对话系统的技术,并且更具体地,涉及用于使用反向传播来训练对话系统的机器学习模型的技术,例如,该训练基于由所述对话系统的工作流程流水线中的机器学习模型做出的实际预测,使得所述机器学习模型学习隐式地校正所述对话系统内出现的偏差(error)。

背景技术

现在,越来越多的设备使得用户能够直接使用话音或口述语音与设备进行交互。例如,用户可以用自然语言对这种设备说话,并且这样做时,用户可以询问问题或进行请求执行动作的陈述。作为响应,设备执行所请求的动作或使用音频输出来对用户的问题作出响应。由于直接使用话音进行交互是人类与其周围环境进行交流的更自然且更直观的方式,因此这种基于语音的系统的普及正以天文数字的速率增长。

发明内容

本公开涉及用于使用反向传播(即,偏差的后向传播)训练对话系统的一个或多个机器学习模型的技术。具体地,这种机器学习模型(本文也称为模型)可以包括文本到语音(TTS)子系统、自动语音识别(ASR)子系统和语义解析器子系统中的一个或多个。这种训练的结果是,所述模型可以被调整成在对话系统的流水线内有效地工作。

根据一些实施例的训练系统利用种子数据作为训练对话系统中的各种模型的基础。在一些实施例中,种子数据包括一组元组(tuple),每个元组包括原始话语和表示所述原始话语的对应的原始逻辑形式。在一些实施例中,训练系统包括转换子系统,所述转换子系统结合了从对话系统选择的一个或多个模型。转换子系统执行一系列的一个、两个或更多个转换。针对种子数据中的每个元组,训练系统的转换子系统将所述元组转换为转换后的元组,并且然后训练系统可以将每个转换后的元组与来自所述种子数据的对应元组进行比较,以确定如何更新参与转换子系统的机器学习模型,从而提高转换的准确性。

具体地,转换子系统的一些实施例利用并且因此包括从对话系统选择的TTS子系统、ASR子系统和语义解析器子系统。转换子系统还可以利用并且因此包括逆序列到序列(seq2seq)模型,所述逆序列到序列模型是语义解析器子系统的逆。针对种子数据中的每个元组,转换子系统将逆序列到序列(seq2seq)模型应用于所述元组的原始逻辑形式,以使得逆seq2seq模型确定第二话语。转换子系统将TTS子系统应用于所述第二话语,以使得TTS子系统确定音频数据。转换子系统将ASR子系统应用于所述音频数据,以使得ASR子系统确定第三话语。转换子系统将语义解析器子系统应用于所述第三话语,以使得语义解析器子系统确定转换后的逻辑形式。

在一些实施例中,针对训练数据的每个元组,训练系统应用目标函数以确定所述转换后的逻辑形式与来自所述元组的原始逻辑形式之间的差异程度,理想地,这两种逻辑形式是相同的。训练系统可以使用目标函数的结果通过反向传播来训练逆seq2seq模型、TTS子系统、ASR子系统和语义解析器子系统。结果是,TTS子系统、ASR子系统和语义解析器子系统可以被调整成在对话系统内更有效地一起工作。

在参考以下说明书、权利要求和附图之后,前述内容以及其他特征和实施例将变得更加显而易见。

附图说明

图1是根据本文所述的某些实施例的利用通过反向传播来训练的自动语音识别子系统、语义解析器和文本到语音子系统的对话系统100的示例的图。

图2是根据本文所述的某些实施例的用于训练对话系统的一个或多个机器学习模型的训练系统的示例的图。

图3是根据本文所述的某些实施例的使用反向传播来训练对话系统的一个或多个机器学习模型的方法的示例的图。

图4是根据本文所述的某些实施例的用于训练对话系统的一个或多个机器学习模型的训练系统的另一示例的图。

图5是根据本文所述的某些实施例的使用反向传播来训练对话系统的一个或多个机器学习模型的方法的另一示例的图。

图6是用于实施本文所述的某些实施例的分布式系统的图。

图7是根据本文所述的某些实施例的基于云的系统环境的图,其中,训练对话系统的机器学习模型可以至少部分地作为云服务来提供。

图8是可以用于实施本文所述的某些实施例的计算机系统的示例的图。

具体实施方式

在以下描述中,出于解释的目的,阐述了具体细节以便提供对某些实施例的透彻理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实践各个实施例。附图和描述不旨在是限制性的。词语“示例性”在本文中用来意指“用作示例、实例或说明”。在本文中被描述为“示例性”或作为“示例”的任何实施例或设计不必被解释为比其他实施例或设计更优选或有利。

能够经由语音输入和音频输出(也被称为话音输出)与用户进行对话的支持话音的系统可以以各种形式出现。例如,这种系统可以被提供为独立式设备、数字助理或虚拟助理、具有话音功能的服务等。在这些形式中的每一种形式中,系统能够接收语音输入、理解语音输入、生成响应或者响应于语音输入而采取动作、以及使用音频输出来输出响应。在某些实施例中,在这种支持话音的系统中的对话功能由对话系统或基础设施(“对话系统”)来提供。对话系统被配置成接收语音输入,解释语音输入,维持对话,可能基于语音输入的解释来执行一个或多个动作或使一个或多个动作被执行,准备适当的响应,并且使用音频输出将响应输出给用户。

传统上,对话系统包括各种机器学习(ML)模型,如自动语音识别(ASR)子系统、语义解析器子系统和文本到语音(TTS)子系统。这些ML模型通常用干净数据(即,不是对话系统的不同部件的输出的数据)进行训练。结果是,ML模型学习处理干净数据,而不是已经被处理并且很可能已经引入了偏差的数据。例如,如果ASR子系统在将语音输入转译为文本时产生偏差,则该偏差将以不准确话语的形式传递给语义解析器。然后语义解析器子系统产生基于不准确话语的逻辑形式。类似地,如果语义解析器子系统产生偏差,则该偏差将传递给对话管理器子系统,所述对话管理器子系统基于整个对话系统的流水线中的偏差传播生成响应文本作为对原始语音输入的回复。然后TTS子系统基于响应文本并且因此间接地基于对话系统中的一个或多个偏差生成语音输出。当用户试图与对话系统进行对话时,这种偏差可能极大地降低用户体验。

本文所述的实施例提供了用于训练对话系统的一个或多个ML模型的改进技术。在一些实施例中,本文所述的训练系统利用反向传播(即,偏差的后向传播)来训练这种ML模型。例如,本文所述的训练系统利用包括各种训练元组的一组种子数据,其中,每个训练元组包括相应的话语和对应的逻辑形式。训练系统使用对话系统的一个或多个ML模型将种子数据的某一训练元组转换为一种或多种其他格式,使得所述ML模型一起确定转换后的训练元组。因此,转换后的训练元组是在应用对话系统的ML模型之后的训练元组的表示。理想地,因为ML模型将数据从一种格式转译为另一种格式(例如,从话语转译为表示所述话语的逻辑形式),所以转换后的训练元组应当与所述训练元组匹配。例如,如果ML模型将训练元组的逻辑形式转换为话语、音频数据、第二话语、并且然后转换为第二逻辑形式,则第二逻辑形式理想地应当与来自种子数据的逻辑形式相同。在一些实施例中,训练系统将转换后的训练元组与所述训练元组进行比较,并且训练系统使用转换后的训练元组与所述训练元组之间的偏差作为训练信号,使用所述训练信号经由反向传播来训练在转换中使用的ML模型。

因此,通过反向传播,如本文所述的训练的每个ML模型可以被调整成与对话系统的其他ML模型一起工作。结果是对话系统的ML模型基于对话系统的流水线内预期的偏差进行调整,以减少操作期间整个对话系统的流水线上的这种偏差。

图1是根据本文所述的某些实施例的利用通过反向传播来训练的ASR子系统108、语义解析器114和TTS子系统120的对话系统100的示例的图。对话系统100被配置成从用户102接收语音输入104(也被称为话音输入)。对话系统100然后可以解释语音输入104。对话系统100可以维持与用户102的对话并且可以基于对语音输入104的解释来执行一个或多个动作或使一个或多个动作被执行。对话系统100可以准备适当的响应,并且可以使用话音输出或语音输出(也被称为音频输出)将响应输出给用户。对话系统100是可以用于潜在地使用大量计算机处理周期来处理大量数据的专用计算系统。出于说明性目的,提供了在图1中描绘的多个设备。可以使用不同数量的设备。例如,尽管图1中的每个设备、服务器和系统都被示出为单个设备,但也可以替代地使用多个设备。

在某些实施例中,对话系统100所执行的处理由部件或子系统的流水线来实施,所述部件或子系统包括语音输入部件105;唤醒词检测(WD)子系统106;ASR子系统108(也被称为ASR 108);自然语言理解(NLU)子系统110(所述自然语言理解子系统包括命名实体识别器(NER)子系统112和语义解析器子系统114);对话管理器(DM)子系统116;自然语言生成器(NLG)子系统118;TTS子系统120;以及语音输出部件124。以上列出的子系统可以仅以软件(例如,使用可由一个或多个处理器或核执行的代码、程序或指令)、硬件或硬件与软件的组合实施。在某些实施方式中,一个或多个子系统可以被组合成单个子系统。另外地或可替代地,在一些实施方式中,可以由多个子系统来实施本文所描述的、如由特定子系统执行的功能。

语音输入部件105包括被配置成接收语音输入104的硬件和软件。在一些实例中,语音输入部件105可以是对话系统100的一部分。在一些其他实例中,语音输入部件105可以与对话系统100分离并且通信地耦接至所述对话系统。语音输入部件105可以例如包括耦接至软件的麦克风,所述软件被配置成对语音输入104进行数字化并将其传输到唤醒词检测子系统106。

唤醒词检测(WD)子系统106被配置成监听并监测音频输入流,以获得与特殊声音或单词(word)或一组单词(被称为唤醒词)相对应的输入。在检测用于对话系统100的唤醒词时,WD子系统106被配置成激活ASR子系统108。在某些实施方式中,可以为用户提供激活或去激活WD子系统106(例如,通过按下按钮)的能力,以使得WD子系统106监听或停止监听唤醒词。当被激活或在激活模式下操作时,WD子系统106被配置成连续地接收音频输入流,并且对所述音频输入流进行处理以识别出与唤醒词相对应的音频输入(如语音输入104)。当检测到与唤醒词相对应的音频输入时,WD子系统106激活ASR子系统108。

如上所述,WD子系统106激活ASR子系统108。在对话系统100的一些实施方式中,可以使用唤醒词检测以外的机制来触发或激活ASR子系统108。例如,在一些实施方式中,可以使用设备上的按钮来触发ASR子系统108而无需唤醒词。在这种实施方式中,不必提供WD子系统106。当按钮被按下或激活时,在按钮激活后接收到的语音输入104被提供给ASR子系统108以进行处理。另外地或可替代地,在一些实施方式中,ASR子系统108可以在接收到要处理的输入时被激活。

ASR子系统108被配置成在触发信号或唤醒信号(例如,可以在检测到语音输入104中的唤醒词时由WD子系统106发送唤醒信号,或者可以在激活按钮时接收唤醒信号)之后接收和监测语音输入104,并且将语音输入104转换为文本。作为其处理的一部分,ASR子系统108执行语音到文本的转换。语音输入104可以是自然语言的形式,并且ASR子系统108被配置成用语音输入104的语言生成对应的自然语言文本。该对应的自然语言文本在本文中被称为话语。例如,由ASR子系统108接收的语音输入104可以包括一个或多个单词、短语、从句、句子、问题等。ASR子系统108被配置成针对每个口述从句生成话语,并将所述话语馈送到NLU子系统110,以进行进一步处理。

NLU子系统110接收由ASR子系统108生成的话语。由NLU子系统110从ASR子系统108接收的话语可以包括与口述单词、短语、从句等相对应的文本话语。NLU子系统110将每个话语或一系列话语转译为对应的逻辑形式。

在某些实施方式中,NLU子系统110包括命名实体识别器(NER)子系统112和语义解析器子系统114。NER子系统112接收话语作为输入、识别话语中的命名实体、并且利用与所识别出的命名实体相关的信息来标记话语。然后将经标记的话语馈送到语义解析器子系统114,所述语义解析器子系统被配置成针对每个经标记的话语或针对一系列经标记的话语生成逻辑形式。针对话语生成的逻辑形式可以识别与话语相对应的一个或多个意图。话语的意图标识话语的目的。意图的示例包括“order pizza(订购披萨)”和“find directions(查找方向)”。意图可以例如标识被请求执行的动作。除了意图之外,针对话语生成的逻辑形式还可以识别所识别出的意图的槽位(slot)(也被称为参数或自变量)。例如,对于语音输入“I’d like to order a large pepperoni pizza with mushrooms and olives(我想要订购带有蘑菇和橄榄的大份意大利辣香肠披萨)”,NLU子系统110可以识别出意图“订购披萨”。NLU子系统还可以识别并填充槽位,例如,披萨_尺寸(用大份来填充)和披萨_浇头(用蘑菇和橄榄来填充)。NLU子系统110可以使用基于机器学习的技术、规则(其可能是领域特定的)、或机器学习技术和规则的组合来生成逻辑形式。然后将由NLU子系统110生成的逻辑形式馈送到DM子系统116,以进行进一步处理。

如图1所示,在一些实施例中,本文所描述的训练系统150训练对话系统100的一个或多个ML模型,如ASR子系统108、语义解析器子系统114和TTS子系统200。在一些实施例中,如以下详细地描述的,训练系统150将一个或多个ML模型合并到转换子系统中,所述转换子系统将种子数据转换为转换后的种子数据。训练系统150确定转换后的种子数据与所述种子数据之间的偏差,并且训练系统150利用该偏差经由反向传播来训练一个或多个ML模型。结果是,一个或多个ML模型被调整成一起工作以减少通过对话系统100的偏差传播。

DM子系统116被配置成基于从NLU子系统110接收的逻辑形式来管理与用户的对话。作为对话管理的一部分,DM子系统116被配置成跟踪对话状态、发起对多个动作或任务中的一个动作或任务的执行或自身执行多个动作或任务中的一个动作或任务、并且确定如何与用户进行交互。这些动作可以包括例如查询一个或多个数据库、产生执行结果或其他动作。例如,DM子系统116被配置成对在从NLU子系统110接收的逻辑形式中识别出的意图进行解释。基于这些解释,DM子系统116可以发起其解释为通过由用户提供的语音输入104所请求的一个或多个动作。在某些实施例中,DM子系统116基于当前的和过去的语音输入104并基于为DM子系统116配置的一组规则(例如,对话策略)来执行对话状态跟踪。这些规则可以指定不同的对话状态、状态之间转变的条件、处于特定状态时要执行的动作等。这些规则可以是领域特定的。DM子系统116还生成要被传送回对话中所涉及的用户的响应。这些响应可以基于由DM子系统116发起的动作以及这些动作的结果。将由DM子系统116生成的响应馈送到NLG子系统118,以进行进一步处理。

NLG子系统118被配置成生成与由DM子系统116生成的响应相对应的自然语言文本。所述文本可以以使得所述文本能够由TTS子系统120转换为语音的形式生成。TTS子系统120从NLG子系统118接收文本,并将这些文本中的每个文本转换为语音或话音音频,然后可以经由对话系统的音频或语音输出部件124(例如,扬声器或耦接至外部扬声器的通信信道)将所述语音或话音音频作为音频输出给用户。在一些实例中,语音输出部件124可以是对话系统100的一部分。在一些其他实例中,语音输出部件124可以与对话系统100分离并且通信地耦接至所述对话系统。

如上所述,对话系统100的各个子系统协作地工作提供了以下功能:使得对话系统100能够接收语音输入104;并使用语音输出122作出响应;并且因此使用自然语言语音来维持与用户的对话。可以使用单个计算机系统或使用协作地工作的多个计算机系统来实施上述各个子系统。例如,对于实施支持话音的系统的设备,可以完全在用户与之交互的设备上实施上述对话系统100的子系统。在一些其他实施方式中,对话系统100的一些部件或子系统可以在用户与之交互的设备上实施,而其他部件可以远离设备实施、可能在一些其他计算设备、平台或服务器上实施。

图2是根据本文所述的某些实施例的被配置成训练对话系统100的一个或多个ML模型的训练系统150的示例的图。在一些实施例中,训练系统150被实施为计算设备或其一部分,如服务器。训练系统150可以被实施为硬件、软件或这两者的组合。例如,训练系统150可以是专用硬件设备或程序代码或这两者的组合。例如,在本文中被描述为由训练系统150执行的操作可以在实施训练系统150的程序代码中体现,其中,这种程序代码可以由一个或多个处理单元执行。

如上所述,对话系统100包括其流水线或工作流程中的各种ML模型。更具体地,除了潜在的其他模型之外,这些模型还可以包括ASR 108、语义解析器子系统114和TTS子系统120。如图2所示,训练系统150可以被配置成训练从对话系统100选择的并且被合并到训练系统150的转换子系统240的这种ML模型中的一个或多个。

如上所述,对话系统100的各种ML模型被配置成将数据从一种格式转译或转换为另一种格式。例如,用户如通过说话将语音输入104提供给对话系统100。在对话系统100的一些实施例中,ASR 108将语音输入104转译为话语225,语义解析器子系统114将所述话语转译为逻辑形式235,对话管理器子系统116对所述逻辑形式进行处理以确定响应,TTS子系统120将所述响应转译为语音输出122以对语音输入104作出响应。通过训练系统150的转换子系统240,使用这些ML模型中的一个或多个将种子数据210转译一次或多次。训练系统150可以将由转换子系统240执行的这种转译的结果与原始种子数据210进行比较,以训练参与转换子系统240的ML模型。

如图2所示,训练系统150可以访问一组种子数据210(也被称为训练数据),该组种子数据可以包括一组元组。种子数据210中的每个元组可以包括话语225和对应的逻辑形式235(即,逻辑形式的语言的话语表达)。通常,给定元组中的逻辑形式235可以是该给定元组中的对应话语225的结构化转译。种子数据210可以适合于训练语义解析器子系统114;在对话系统100的操作期间,语义解析器子系统114(也被称为语义解析器114)将话语225作为输入并且确定逻辑形式235。然而,在一些实施例中,种子数据210不必但是可以用于直接训练语义解析器114。

转换子系统240可以包括对话系统100的一个或多个ML模型,并且可以启用训练系统150来训练这种ML模型中的每一个,以使得这些ML模型能够在对话系统100中更有效地操作。例如,如以下详细地描述的,转换子系统240可以包括对话系统100的ASR 108、语义解析器114和TTS子系统120,并且在这种情况下,训练系统150可以训练如本文所述的ASR 108、语义解析器114和TTS子系统120中的每一个。

在转换子系统240中,对话系统100的一个或多个ML模型将种子数据210转译为种子数据210的转换后的版本,并且训练系统150利用目标函数250将所述转换后的版本与原始种子数据210进行比较。更具体地,在一些实施例中,转换子系统240将来自种子数据210的原始逻辑形式235a作为输入,并且通过将原始逻辑形式235a转译为一种或多种不同的格式(例如,话语225或语音)并且然后返回到逻辑形式235来生成转换后的逻辑形式235b。可以通过对话系统100的一个或多个ML模型来进行转译。这样,转换后的逻辑形式235b表示可能具有通过对话系统100中的ML模型进行处理而引入的偏差的原始逻辑形式235a。转换子系统240可以对种子数据210中的每个原始逻辑形式235a进行操作,从而使得训练系统150能够基于所得到的转换后的逻辑形式235b来训练转换子系统240中的ML模型。

理想地,因为转换后的逻辑形式235b是转译,所以每个转换后的逻辑形式235b应当与来自种子数据210的对应原始逻辑形式235a相同。然而,由于转换子系统240中的ML模型引入了偏差,因此可能不是这种情况。在一些实施例中,训练系统150利用原始逻辑形式235a与转换后的逻辑形式235b之间的差异来训练ML模型,以在对话系统100的流水线的背景下更好地表现。具体地,训练系统150可以将目标函数250(即,损失函数)应用于每个转换后的逻辑形式235b及其对应的原始逻辑形式235a,以确定训练值。基于对来自种子数据210的各种原始逻辑形式235a执行上述操作而确定的训练值的流或集合一起形成训练信号。在一些实施例中,训练系统150利用训练信号来训练参与转换子系统240的ML模型。

图3是根据某些实施例的使用反向传播来训练对话系统100的一个或多个ML模型的方法300的流程图。在一些实施例中,在执行该方法300之前,训练系统150的转换子系统240要使用的每个ML模型为了在对话系统100中使用可能已经(但是不必)被单独地训练。例如,如果转换子系统240包括TTS子系统120,则已经如通过使用包括话语225及其对应的音频数据455的训练数据训练了TTS子系统120,以将话语225映射到音频数据455;如果转换子系统240包括ASR 108,则已经如通过使用包括音频数据455(例如,语音输入104)及对应的话语225的训练数据训练了ASR 108,以将语音输入104映射到话语225;并且如果转换子系统240包括语义解析器114,则已经如通过使用包括话语225及对应的逻辑形式235的训练数据训练了语义解析器114,以将话语225映射到逻辑形式。可替代地,可以使用由本文所述的训练系统150执行的经由反向传播的训练来代替单独训练每个模型。

图3中描绘的方法300以及本文所描述的其他方法可以由一个或多个处理单元(例如,处理器或处理器核)执行的软件(例如,代码、指令或程序)、硬件或其组合实施。软件可以存储在非暂态存储介质(如存储器设备)上。该方法300旨在是说明性且非限制性的。尽管图3描绘了以特定次序或顺序发生的各种活动,但这并不旨在是限制性的。例如,在某些实施例中,所述活动可以以不同的顺序执行,或者方法300的一个或多个活动可以并行执行。在某些实施例中,方法300可以由训练系统150执行。

如图3所示,在框305处,训练系统150访问用于在训练系统150中使用的种子数据210。种子数据210可以包括一组元组,每个元组包括原始话语225以及与原始话语225相对应的原始逻辑形式235a。将理解的是,可以使用各种技术来收集种子数据210,并且这种技术可以是手动的、自动的或这两者的组合。

在一些实施例中,种子数据210的收集可以至少部分是手动过程。例如,种子数据210可以是众包的。在一些实施例中,一个或多个个人的团队手动编写语法来描述逻辑形式235的结构。团队可以生成要包括在种子数据210中的一组原始逻辑形式235a,并且可以将这种原始逻辑形式235a提供给人群中的一个或多个个人,要求人群将每个原始逻辑形式235a转换为对应的原始话语225。进一步地,团队可以提供中间形式来表示每个这种原始逻辑形式235a,其中,所述中间形式是自然语言的突然变化或断断续续的变化,这种中间形式相对简单地由团队产生并且相对简单地被人群理解。中间形式可以帮助人群转换,因为中间形式的使用意味着人群不必学习逻辑形式235的语言。因此,为了将原始逻辑形式转换为自然语言(即,对应的原始话语225),人群可以将对应的中间形式转换为自然语言。将理解的是,多个话语225可以等同于通用逻辑形式235,并且因此,人群可以基于原始逻辑形式235a生成一个或多个原始话语225,并且每个这种原始话语225可以被组合成具有原始逻辑形式235a的相应元组。

在另一实施例中,提供一组原始话语225,并且一个或多个个人确定每个这种原始话语225的逻辑形式235。然而,由于与以不太熟悉的语言生成逻辑形式235相比,个人可能更熟悉自然语言并且因此可以更快地完成以自然语言生成话语225的工作,因此从逻辑形式235开始可以提供更高的效率。

框310开始迭代循环,其中依次考虑种子数据210的每个元组。训练系统150可以遍历种子数据210中的元组进行迭代。对于每次迭代,可以进一步调整转换子系统240中包括的对话系统100的一个或多个ML模型,以提供准确的输出。如上所述且如以下进一步描述的,针对种子数据210的每个元组,训练系统150的实施例利用转换子系统240将元组转译为转换后的元组。例如,这可以包括将元组的话语225转换为转换后的话语225,或者将元组的原始逻辑形式235a转换为转换后的逻辑形式235b,如图2的示例。训练系统150然后将转换后的元组与原始元组进行比较,以训练转换子系统240中的ML模型。具体地,在框310处,训练系统150从种子数据210选择尚未考虑的元组来执行这些活动。

在框315处,训练系统150的转换子系统240将转换子系统240的一个或多个ML模型应用于在框310处选择的所选元组,以将所选元组转译为转换后的元组。如上所述,转换子系统240所使用的每个ML模型可以执行一种类型的转译。因此,理想地,转换后的元组等于所选元组。

在框320处,训练系统150将在框315处确定的转换后的元组与在框310处确定的所选元组进行比较。例如,训练系统150可以应用目标函数250来进行该比较。在一些实施例中,利用目标函数250或另一种技术,训练系统150确定转换后的元组与所选元组之间的偏差程度,其中,所选元组是由转换子系统240执行的转换的期望结果。

在框325处,训练系统150基于在框320处进行的比较的结果使用反向传播来训练转换子系统240所使用的ML模型或这些ML模型的子集。例如,针对被实施为神经网络的ML模型,训练系统150基于以上确定的偏差程度更新这种ML模型的节点的权重。

在决策框330处,训练系统150确定种子数据210中是否还有要考虑的任何元组。如果还有一个或多个元组尚未考虑,则方法300返回到框310以选择另一元组。然而,如果已经考虑了所有这种元组,则方法300在框335处结束,并且对话系统100的ML模型已经被训练并且可以在对话系统100中使用。

图4是根据某些实施例的被配置成训练对话系统100的一个或多个ML模型的训练系统150的另一示例的图。在一些实施例中,训练系统150被实施为计算设备或其一部分,如服务器。训练系统150可以被实施为专用硬件设备或程序代码或这两者的组合。例如,在本文中被描述为由训练系统150执行的操作可以在实施训练系统150的程序代码中体现,其中,这种程序代码可以由一个或多个处理单元执行。

如上所述,训练系统150的转换子系统240包括从对话系统100选择的一个或多个ML模型,从而使得训练系统150能够基于这些ML模型的输出(即,转换后的逻辑形式235b)与预期输出(即,来自种子数据210的原始逻辑形式235a)的比较使用训练信号来训练这些ML模型。如以下进一步描述的,转换子系统240将每个这种ML模型应用于种子数据210的元组以确定训练信号。具体地,在图4的示例中,转换子系统240包括对话系统100的ASR 108、语义解析器114和TTS子系统120。在一些实施例中,可以从利用该特定的ASR 108、语义解析器114和TTS子系统120的单个对话系统100选择ASR 108、语义解析器114和TTS子系统120。本文所描述的由训练系统150执行的训练可以作为传统训练的补充或替代传统训练,在传统训练中,可以单独地训练参与转换子系统240的每个这种ML模型。

如图4所示,训练系统150可以访问一组种子数据210,该组种子数据可以包括一组元组,每个元组包括话语225和对应的原始逻辑形式235a。逻辑形式235(如原始逻辑形式235a)可以是符合预定义语法的句法表达,所述预定义语法可以由对话系统100的对话管理器子系统116解析。因此,某一元组中的原始逻辑形式235a可以是所述元组中的对应话语225的结构化转译。种子数据210可能适合于训练语义解析器114,所述语义解析器在对话系统100的操作期间将话语225作为输入并且确定逻辑形式235。然而,在一些实施例中,种子数据210不必但是可以用于直接训练语义解析器114。如以下描述的,转换子系统240可以将参与转换子系统240的一个或多个ML模型应用于种子数据210的元组,以转换这些元组从而确定训练信号。

在一些实施例中,如在该示例中,训练系统150的转换子系统240可以将逆seq2seq模型410应用于种子数据210中的每个元组的原始逻辑形式235a,以使得逆seq2seq模型410确定与原始逻辑形式235a相对应的第二话语225。第二话语225因此可以是从种子数据210的元组选择的逻辑形式235的转译。在一些实施例中,逆seq2seq模型410与语义解析器114并行地训练,如本文所述,使得所述逆seq2seq模型成为语义解析器114的逆,所述语义解析器可以是seq2seq模型。例如,语义解析器114输入话语225并且输出逻辑形式235,而逆seq2seq模型410输入逻辑形式235并且因此输出话语225。更具体地,如本文所训练的,当被提供由语义解析器114基于特定话语225输出的逻辑形式235时,逆seq2seq模型410将输出相同的特定话语225。第二话语225可以是原始逻辑形式235a的文本转译,但是可能包括基于逆seq2seq模型410中的潜在不准确性并且因此基于语义解析器114中的潜在不准确性的偏差。

在一些实施例中,训练系统150的转换子系统240将TTS子系统120应用于由逆seq2seq模型410确定的第二话语225,以使得TTS子系统120确定与第二话语225并且因此与原始逻辑形式235a相对应的音频数据455。音频数据455因此可以是原始逻辑形式235a的音频转译;然而,音频数据455可能包含由逆seq2seq模型410或TTS子系统120引入的偏差。这些偏差与将在对话系统100的操作期间引入的偏差具有相同的类型,因为TTS子系统120是对话系统100的一部分,并且因为逆seq2seq模型410是语义解析器114的表示,所述语义解析器也是对话系统100的一部分。

在一些实施例中,训练系统150的转换子系统将ASR 108应用于音频数据455,以使得ASR 108确定与音频数据455、第二话语225和原始逻辑形式235a相对应的第三话语225。第三话语225因此可以是原始逻辑形式235a的文本转译;然而,第三话语225可能包含由逆seq2seq模型410、TTS子系统120或ASR 108引入的偏差。这些偏差与将在对话系统100的操作期间引入的偏差具有相同的类型,因为TTS子系统120和ASR108是对话系统100的一部分,并且因为逆seq2seq模型410是语义解析器114的表示,所述语义解析器也是对话系统100的一部分。

在一些实施例中,训练系统150的转换子系统240将语义解析器114应用于第三话语225,以使得语义解析器114确定转换后的逻辑形式235b。转换后的逻辑形式235b因此可以是原始逻辑形式235a的转译;然而,转换后的逻辑形式235b可能包含由逆seq2seq模型410、TTS子系统120、ASR 108或语义解析器114引入的偏差。这些偏差与将在对话系统100的操作期间引入的偏差具有相同的类型,因为TTS子系统120、ASR 108和语义解析器114是对话系统100的一部分,并且因为逆seq2seq模型410是语义解析器114的表示,所述语义解析器是对话系统100的一部分。

理想地,因为逆seq2seq模型410、TTS子系统120、ASR 108和语义解析器114中的每一个是学习将数据从一种形式转译为另一种形式的ML模型,因此转换后的逻辑形式235b应当与从种子数据210选择的对应原始逻辑形式235a相同。然而,由于逆seq2seq模型410、TTS子系统120、ASR 108和语义解析器114引入了偏差,因此可能不是这种情况。在一些实施例中,训练系统150利用转换后的逻辑形式235b与对应的原始逻辑形式235a之间的差异来训练TTS子系统120、ASR 108和语义解析器114,以在对话系统100的流水线的背景下更好地表现。换句话说,训练系统150可以教导TTS子系统120、ASR 108和语义解析器114生成更准确的转换后的逻辑形式235b,从而调整TTS子系统120、ASR 108和语义解析器114以一起操作并减少偏差。

为了训练TTS子系统120、ASR 108和语义解析器,训练系统150可以将目标函数250(即,损失函数)应用于转换后的逻辑形式235b和对应的原始逻辑形式235a以确定训练值。基于种子数据210中的各种原始逻辑形式235a确定的训练值的流或集合一起形成训练信号。在一些实施例中,训练系统150利用训练信号来训练逆seq2seq模型410、TTS子系统120、ASR 108和语义解析器114中的一个或多个(例如,每一个)。结果是,TTS子系统120、ASR 108和语义解析器114学习在对话系统100的流水线内操作,并且因此可以更有效地一起工作。

图5是根据某些实施例的使用反向传播来训练对话系统100的一个或多个ML模型的方法500的另一示例的图。具体地,在该示例中,转换子系统240应用ASR 108、语义解析器114和TTS子系统120,并且训练系统150使用反向传播来训练ASR 108、语义解析器114和TTS子系统120。

在一些实施例中,在执行该方法500之前,这些ML模型中的每一个可能已经但是不必被单独地训练。例如,给定图4的示例中的转换子系统240,已经如通过使用包括逻辑形式235及其对应的话语225的训练数据单独地训练了逆seq2seq模型410以将逻辑形式235映射到话语225,其中,逻辑形式235被用作训练输入,并且对应的话语是训练的预期输出;已经如通过使用包括话语225及其对应的音频数据455的训练数据训练了TTS子系统120,以将话语225映射到音频数据455;已经如通过使用包括音频数据455(例如,语音输入104)和对应的话语225的训练数据训练了ASR 108,以将语音输入104映射到话语225;并且已经如通过使用用于训练逆seq2seq模型410的相同训练数据、但是将话语225作为训练输入并且将逻辑形式235作为训练的预期输出训练了语义解析器114,以将话语225映射到逻辑形式。可替代地,可以使用由本文所述的训练系统150执行的经由反向传播的训练来代替单独训练每个模型。

图5中描绘的方法500以及本文所描述的其他方法可以由一个或多个处理单元(例如,处理器或处理器核)执行的软件(例如,代码、指令或程序)、硬件或其组合实施。软件可以存储在非暂态存储介质(如存储器设备)上。该方法500旨在是说明性且非限制性的。尽管图5描绘了以特定次序或顺序发生的各种活动,但这并不旨在是限制性的。例如,在某些实施例中,所述活动可以以不同的顺序执行,或者方法500的一个或多个活动可以并行执行。在某些实施例中,方法500可以由训练系统150执行。

如图5所示,在框505处,训练系统150访问用于在训练系统150中使用的种子数据210。种子数据210可以包括一组元组,每个元组包括原始话语225以及与原始话语225相对应的原始逻辑形式235a。将理解的是,可以使用各种技术来收集种子数据210,并且这种技术可以是手动的、自动的或这两者的组合。

在一些实施例中,种子数据210的收集可以至少部分是手动过程。例如,种子数据210可以是众包的。在一些实施例中,一个或多个个人的团队手动编写语法来描述逻辑形式235的结构。团队可以生成要包括在种子数据210中的一组原始逻辑形式235a,并且可以将这种原始逻辑形式235a提供给人群中的一个或多个个人,要求人群将每个原始逻辑形式235a转换为对应的原始话语225。进一步地,团队可以提供中间形式来表示每个这种原始逻辑形式235a,其中,所述中间形式是自然语言的突然变化或断断续续的变化,这种中间形式相对简单地由团队产生并且相对简单地被人群理解。中间形式可以帮助人群转换,因为中间形式的使用意味着人群不必学习逻辑形式235的语言。因此,为了将原始逻辑形式转换为自然语言(即,对应的原始话语225),人群可以将对应的中间形式转换为自然语言。将理解的是,多个话语225可以等同于通用逻辑形式235,并且因此,人群可以基于原始逻辑形式235a生成一个或多个原始话语225,并且每个这种原始话语225可以被组合成具有原始逻辑形式235a的相应元组。

在另一实施例中,提供一组原始话语225,并且一个或多个个人确定每个这种原始话语225的逻辑形式235。然而,由于与以不太熟悉的语言生成逻辑形式235相比,个人可能更熟悉自然语言并且因此可以更快地完成以自然语言生成话语225的工作,因此从逻辑形式235开始可以提供更高的效率。

框510开始迭代循环,其中依次考虑种子数据210的每个元组。训练系统150可以遍历种子数据210中的元组进行迭代。对于每次迭代,可以进一步调整对话系统100的一个或多个ML模型,以提供准确的输出。如上所述且如以下进一步描述,针对种子数据210的每个元组,训练系统150的实施例利用转换子系统240将元组(具体地,所述元祖的原始逻辑形式235a)转译为转换后的元组(具体地,转换后的逻辑形式235b)。训练系统150然后将转换后的元组与原始元组进行比较,以训练转换子系统240中的ML模型。具体地,在框510处,训练系统150从种子数据210选择尚未考虑的元组来执行这些活动。

在框515处,训练系统150从所选元组选择原始逻辑形式235a。如上所述,每个元组可以包括原始逻辑形式235a和对应的话语225,并且训练系统150可以从中选择原始逻辑形式235a。

在框520处,训练系统150将逆seq2seq模型410应用于原始逻辑形式235a,以使得逆seq2seq模型确定第二话语225。理想地,第二话语225与种子数据210中与原始逻辑形式235a相对应的原始话语225相同。然而,由于可能的预测偏差,因此可能不是这种情况。在循环的早期迭代中,逆seq2seq模型410可能表现较差,例如,在第一迭代中输出随机话语225(例如,单词或字母的随机布置)。在一些实施例中,随着训练进行了多次迭代,逆seq2seq模型410得以改进。

在框525处,训练系统150将TTS子系统120应用于第二话语225,以使得所述TTS子系统120确定音频数据455。例如,音频数据455可以体现在声音文件中,如wav文件。理想地,音频数据455是第二话语225并且因此是原始逻辑形式235a的完美转译。然而,由于可能的预测偏差,因此可能不是这种情况。在一些实施例中,TTS子系统120在早期迭代中可能表现较差,例如,在第一迭代中输出随机音频(例如,声音或单词的随机布置)。进一步地,由TTS子系统120接收的第二话语225可能包含由逆seq2seq模型410引入的偏差,并且在一些实施例中,TTS子系统120的输出基于逆seq2seq模型410的输出。因此,TTS子系统120的输出不仅受到其自身的学习历史的影响,而且还受到逆seq2seq模型410的历史的影响。在一些实施例中,随着训练进行了多次迭代,逆seq2seq模型410和TTS子系统120得以改进。

在框530处,训练系统150将ASR 108应用于音频数据455,以使得所述ASR 108确定第三话语225。理想地,第三话语225与种子数据210中与原始逻辑形式235a相对应的原始话语225相同。然而,由于可能的预测偏差,因此可能不是这种情况。在该方法500的早期迭代中,ASR 108可能表现较差,例如,在第一迭代中输出随机话语225(例如,单词或字母的随机布置)。进一步地,由ASR 108接收的音频数据455可能包含由逆seq2seq模型410或TTS子系统120引入的偏差,并且在一些实施例中,ASR 108的输出基于TTS子系统120的输出。因此,ASR 108的输出不仅受到其自身的学习历史的影响,而且还受到逆seq2seq模型410和TTS子系统120的历史的影响。在一些实施例中,随着训练进行了多次迭代,逆seq2seq模型410、TTS子系统120和ASR 108得以改进。

在框535处,训练系统150将语义解析器114应用于第三话语225,以使得语义解析器114确定转换后的逻辑形式235b。理想地,转换后的逻辑形式235b与从种子数据210选择的原始逻辑形式235a相同。然而,由于可能的预测偏差,因此可能不是这种情况。在该方法500的早期迭代中,ASR 108可能表现较差,例如,在第一迭代中输出随机逻辑形式235(例如,单词或符号的随机布置)。进一步地,由语义解析器114接收的第三话语225可能包含由逆seq2seq模型410、TTS子系统120或ASR 108引入的偏差,并且在一些实施例中,语义解析器114的输出基于ASR 108的输出。因此,语义解析器114的输出不仅受到其自身的学习历史的影响,而且还受到逆seq2seq模型410、TTS子系统120和ASR 108的历史的影响。在一些实施例中,随着训练进行了多次迭代,逆seq2seq模型410、TTS子系统120、ASR 108和语义解析器114得以改进。

在框540处,将目标函数250应用于转换后的逻辑形式235b以及从种子数据210中的所选元组中选择的原始逻辑形式235a。目标函数250可以将其输入进行比较,以计算这些输入之间的差异程度,在这种情况下,这些输入是转换后的逻辑形式235b和原始逻辑形式235a。存在用于构建用于比较逻辑形式235的适当目标函数250的各种技术,并且可以使用这种技术中的一种或多种技术来开发由训练系统150使用的目标函数250。

在框545处,训练系统150基于目标函数250的结果使用反向传播来训练逆seq2seq模型410、TTS子系统120、ASR 108和语义解析器114或这些模型的子集。在一些实施例中,例如,TTS子系统120被实施为神经网络,并且训练系统150基于训练信号更新TTS子系统120的节点的权重。另外地或可替代地,ASR 108被实施为神经网络,并且训练系统150基于训练信号更新ASR 108的节点的权重。另外地或可替代地,语义解析器114被实施为神经网络,并且训练系统150基于训练信号更新语义解析器114的节点的权重。

在决策框550处,训练系统150确定种子数据210中是否还有要考虑的任何元组。如果还有一个或多个元组尚未考虑,则方法500返回到框510以选择另一元组。然而,如果已经考虑了所有这种元组,则方法500在框555处结束,并且对话系统100的ML模型已经被训练并且可以在对话系统100中使用。

在一些实施例中,可以跳过上述方法500的一些操作,以向从对话系统100选择包括在转换子系统240中的ML模型的适当子集提供反向传播。例如,在转换子系统240中的逆seq2seq模型410、TTS子系统120、ASR 108和语义解析器114中,训练系统150可以仅训练逆seq2seq模型410和语义解析器114,或者仅训练TTS子系统120和ASR 108。

进一步地,转换子系统240不限于包括逆seq2seq模型410、TTS子系统120、ASR 108和语义解析器114的示例。又例如,转换子系统240可以仅包括TTS子系统120和ASR 108,在这种情况下,训练系统150可以利用转换子系统240将原始话语225转换为音频数据455,并且然后转换为转换后的话语225,使得将原始话语225与对应的转换后的话语之间的比较用于训练TTS子系统120和ASR中的一者或两者。各种实施方式在本公开的范围内。

图6是用于实施某些实施例的分布式系统600的图。在图示的实施例中,分布式系统600包括经由一个或多个通信网络610耦接至服务器612的一个或多个客户端计算设备602、604、606和608。客户端计算设备602、604、606和608可以被配置成执行一个或多个应用程序。

在各个实施例中,服务器612可以被适配成运行使得能够如本文所述使用反向传播来训练对话系统100的ML模型的一个或多个服务或软件应用程序。例如,服务器612可以执行训练系统150的一些或全部方面或对话系统100的一些或全部方面。

在某些实施例中,服务器612还可以提供可以包括非虚拟环境和虚拟环境的其他服务或软件应用程序。在一些实施例中,这些服务可以作为基于web的服务或云服务(如在软件即服务(SaaS)模型下)提供给客户端计算设备602、604、606和/或608的用户。操作客户端计算设备602、604、606和/或608的用户进而可以利用一个或多个客户端应用程序来与服务器612交互以利用这些部件所提供的服务。更具体地,例如,客户端计算设备602、604、606和/或608中的每一个可以是嵌入式设备,所述嵌入式设备被配置成执行对话系统100并且进一步被配置成与服务器612通信以使得服务器612能够如本文所述通过反向传播来训练对话系统100的ML模型。

在图6所描绘的配置中,服务器612可以包括实施由服务器612执行的功能的一个或多个部件618、620和622。这些部件可以包括可以由一个或多个处理器、硬件部件或其组合执行的软件部件。应了解,可以与分布式系统600不同的各种不同的系统配置是可能的。因此,图6所示的实施例是用于实施实施例系统的分布式系统的一个示例并且不旨在是限制性的。

根据本公开的教导,用户可以使用客户端计算设备602、604、606和/或608来与服务器612提供的对话系统100的各方面交互。客户端设备可以提供使得客户端设备的用户能够与客户端设备交互的接口(例如,语音接口)。客户端设备还可以经由该接口向用户输出信息。尽管图6描绘了仅四个客户端计算设备,但是可以支持任何数量的客户端计算设备。

客户端设备可以包括各种类型的计算系统,如PA设备、便携式手持设备、如个人计算机和膝上型计算机等通用计算机、工作站计算机、可穿戴设备、游戏系统、瘦客户端、各种消息传递设备、传感器或其他感测设备等。这些计算设备可以运行各种类型和版本的软件应用程序和操作系统(例如,Microsoft

(多个)网络610可以是本领域技术人员所熟悉的可以使用各种可用协议中的任何一种支持数据通信的任何类型的网络,所述可用协议包括但不限于TCP/IP(传输控制协议/因特网协议)、SNA(系统网络架构)、IPX(因特网分组交换)、

服务器612可以由以下各项构成:一个或多个通用计算机、专用服务器计算机(通过示例的方式包括PC(个人计算机)服务器、

服务器612中的计算系统可以运行一个或多个操作系统,所述一个或多个操作系统包括以上所讨论的那些操作系统中的任何一个操作系统以及任何可商购获得的服务器操作系统。服务器612也可以运行各种附加服务器应用程序和/或中间层应用程序中的任何一种应用程序,包括HTTP(超文本运输协议)服务器、FTP(文件传送协议)服务器、CGI(通用网关接口)服务器、

在一些实施方式中,服务器612可以包括一个或多个应用程序以分析并合并从客户端计算设备602、604、606和608的用户接收的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于

分布式系统600还可以包括一个或多个数据储存库614、616。在某些实施例中,这些数据储存库可以用于存储数据和其他信息。例如,数据储存库614、616中的一个或多个可以用于存储如本文所述通过反向传播来训练对话系统100的ML模型所需的种子数据210或其他数据。数据储存库614、616可以驻留在各种位置。例如,服务器612所使用的数据储存库可以在服务器612本地或者可以远离服务器612并经由基于网络的或专用的连接与服务器612通信。数据储存库614、616可以是不同类型。在某些实施例中,服务器612所使用的数据储存库可以是数据库,例如关系数据库,如由Oracle

在某些实施例中,数据储存库614、616中的一个或多个数据储存库还可以被应用程序用来存储应用程序数据。应用程序所使用的数据储存库可以是不同类型,如例如键值存储储存库、对象存储储存库或由文件系统支持的通用存储储存库。

在某些实施例中,可以经由云环境将如本文所述通过反向传播来训练对话系统100的ML模型的全部或一部分作为服务提供。图7是根据某些实施例的基于云的系统环境的图,其中,如本文所述的通过反向传播来训练对话系统100的ML模型可以至少部分地作为云服务来提供。在图7所描绘的实施例中,云基础设施系统702可以提供可以由用户使用一个或多个客户端计算设备704、706和708请求的一个或多个云服务。云基础设施系统702可以包括一个或多个计算机和/或服务器,所述一个或多个计算机和/或服务器可以包括以上针对服务器612所描述的那些计算机和/或服务器。云基础设施系统702中的计算机可以被组织成通用计算机、专用服务器计算机、服务器群、服务器集群或任何其他适当的布置和/或组合。

(多个)网络710可以促进客户端计算设备704、706和708与云基础设施系统702之间的数据通信和交换。(多个)网络710可以包括一个或多个网络。网络可以是相同或不同的类型。(多个)网络710可以支持一个或多个通信协议(包括有线和/或无线协议)以促进通信。

图7所描绘的实施例仅是云基础设施系统的一个示例并且不旨在是限制性的。应了解,在一些其他实施例中,云基础设施系统702可以具有比图7所描绘的那些部件更多或更少的部件、可以组合两个或更多个部件或可以具有不同的部件配置或布置。例如,尽管图7描绘了三个客户端计算设备,但是在替代性实施例中,可以支持任何数量的客户端计算设备。

术语云服务通常用于指代通过服务提供商的系统(例如,云基础设施系统702)按需且经由如因特网等通信网络变得可用于用户的服务。通常,在公共云环境中,构成云服务提供商的系统的服务器和系统不同于客户自己的室内服务器和系统。云服务提供商的系统由云服务提供商管理。因此,客户可以使自身利用由云服务提供商提供的云服务,而不必针对服务购买单独的许可证、支持或硬件和软件资源。例如,云服务提供商的系统可以托管应用程序,并且用户可以经由因特网按需订购并使用应用程序,而用户不必购买用于执行应用程序的基础设施资源。云服务被设计成提供对应用程序、资源和服务的容易的、可伸缩的访问。几个提供商提供云服务。例如,由加利福尼亚州红木海岸(Redwood Shores,California)的Oracle

在某些实施例中,云基础设施系统702可以使用不同的模型(如在软件即服务(SaaS)模型、平台即服务(PaaS)模型、基础设施即服务(IaaS)模型和其他模型(包括混合服务模型)下)提供一个或多个云服务。云基础设施系统702可以包括实现对各种云服务的供给的一套应用程序、中间件、数据库和其他资源。

SaaS模型使应用程序或软件能够作为服务通过如因特网等通信网络输送给客户,而客户不必购买底层应用程序的硬件或软件。例如,可以使用SaaS模型为客户提供对由云基础设施系统702托管的按需应用程序的访问。Oracle

IaaS模型通常用于将基础设施资源(例如,服务器、存储、硬件和联网资源)作为云服务提供给客户以提供弹性计算和存储能力。由Oracle

PaaS模型通常用于提供使客户能够开发、运行并管理应用程序和服务而客户不必采购、构建或维护这种资源的平台和环境资源作为服务。由Oracle

云服务通常是以按需自助服务基础、基于订阅、可弹性伸缩、可靠、高度可用且安全的方式提供的。例如,客户可以经由订阅订单来订购由云基础设施系统702提供的一个或多个服务。然后,云基础设施系统702执行处理以提供客户的订阅订单中请求的服务。例如,客户可以以会话形式订阅对话系统100提供的信息服务或其他服务。云基础设施系统702可以被配置成提供一个或甚至多个云服务。

云基础设施系统702可以经由不同的部署模型提供云服务。在公共云模型中,云基础设施系统702可以由第三方云服务提供商拥有,并且云服务被提供给任何一般的公众客户,其中,所述客户可以是个人或企业。在某些其他实施例中,在私有云模型下,云基础设施系统702可以在组织内(例如,在企业组织内)操作并且服务被提供给所述组织内的客户。例如,客户可以是如人力资源部门、薪资部门等企业的各个部门或甚至是企业内的个人。在某些其他实施例中,在社区云模型下,云基础设施系统702和所提供的服务可以由相关的社区中的几个组织共享。也可以使用如以上所提到的模型的混合等各种其他模型。

客户端计算设备704、706和708可以是不同类型的(如图6所描绘的客户端计算设备602、604、606和608)并且可以能够操作一个或多个客户端应用程序。用户可以使用客户端计算设备与云基础设施系统702交互,如请求由云基础设施系统702提供的服务。攻击者可能使用客户端设备来发送恶意请求。

在一些实施例中,由云基础设施系统702执行的处理可以涉及大数据分析。该分析可以涉及使用、分析并操纵大数据集以检测并可视化数据中的各种趋势、行为、关系等。该分析可以由一个或多个处理器执行,从而可能并行地处理数据、使用数据执行模拟等。例如,大数据分析可以由云基础设施系统702执行,以提供如本文所述通过反向传播来训练ML模型。用于该分析的数据可以包括结构化数据(例如,存储在数据库中或根据结构化模型结构化的数据)和/或非结构化数据(例如,数据块(二进制大对象))。

如图7中的实施例所描绘的,云基础设施系统702可以包括被用于促进供给由云基础设施系统702提供的各种云服务的基础设施资源730。基础设施资源730可以包括例如处理资源、存储或存储器资源、联网资源等。

在某些实施例中,为了促进对这些资源的高效供给以用于支持由云基础设施系统702为不同客户提供的各种云服务,基础设施资源730可以被捆绑成资源组或资源模块(也被称为“群(pod)”)。每个资源模块或群可以包括一种或多种类型的资源的预先集成且优化的组合。在某些实施例中,可以针对不同类型的云服务预先供给不同的群。例如,可以针对数据库服务供给第一组群、可以针对Java服务供给第二组群(所述第二组群可以包括与第一组群中的群不同的资源组合)等。对于一些服务,被分配用于供给服务的资源可以在服务之间共享。

云基础设施系统702本身可以在内部使用由云基础设施系统702的不同部件共享并且促进云基础设施系统702供给服务的服务732。这些内部共享服务可以包括但不限于安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高度可用性、备份和恢复服务、用于实现云支持的服务、电子邮件服务、通知服务、文件传送服务等。

云基础设施系统702可以包括多个子系统。这些子系统可以在软件或硬件或其组合中实施。如图7所描绘的,子系统可以包括使得云基础设施系统702的用户或客户能够与云基础设施系统702交互的用户接口子系统712。用户接口子系统712可以包括各种不同的接口,如web接口714、在线商店接口716(其中,广告并且客户可购买由云基础设施系统702提供的云服务)和其他接口718。例如,客户可以使用客户端设备请求(服务请求734)由云基础设施系统702使用接口714、716和718中的一个或多个接口提供的一个或多个服务。例如,客户可以访问在线商店、浏览由云基础设施系统702提供的云服务并且针对客户希望订阅的由云基础设施系统702提供的一个或多个服务下订阅订单。服务请求可以包括标识客户和客户期望订阅的一个或多个服务的信息。

在某些实施例(如图7所描绘的实施例)中,云基础设施系统702可以包括被配置成处理新订单的订单管理子系统(OMS)720。作为此处理的一部分,OMS 720可以被配置成:为客户创建账户(如果尚未创建的话);从客户接收要用于向客户开具账单以向客户提供所请求的服务的账单和/或计费信息;验证客户信息;在验证之后,为客户预订订单;以及策划各种工作流程来准备订单以进行供给。

一旦被正确地验证,那么,OMS 720就可以调用被配置成为订单供给资源(包括处理资源、存储器资源和联网资源)的订单供给子系统(OPS)724。供给可以包括为订单分配资源并配置资源以促进客户订单所请求的服务。为订单供给资源的方式和所供给的资源的类型可以取决于客户已经订购的云服务的类型。例如,根据一个工作流程,OPS 724可以被配置成确定正在请求的特定云服务并且识别可能已经为所述特定云服务预先配置的群的数量。为订单分配的群的数量可以取决于所请求服务的大小/量/层级/范围。例如,要分配的群的数量可以基于服务所要支持的用户的数量、正在请求的服务的持续时间等来确定。然后,可以为特定的请求客户定制分配的群以用于提供所请求服务。

云基础设施系统702可以向请求客户发送响应或通知744,以指示何时所请求服务现在已准备好使用。在一些实例中,可以向客户发送使客户能够开始使用和利用所请求服务的益处的信息(例如,链接)。

云基础设施系统702可以向多个客户提供服务。对于每个客户,云基础设施系统702负责管理与从客户接收的一个或多个订阅订单有关的信息、维护与订单相关的客户数据并且向客户提供所请求服务。云基础设施系统702还可以收集关于客户使用所订阅服务的使用情况统计数据。例如,可以收集所使用的存储量、所传送的数据量、用户的数量以及系统开机时间量和系统停机时间量等的统计数据。可以使用此使用情况信息向客户开具账单。可以例如以月为周期完成开具账单。

云基础设施系统702可以并行地向多个客户提供服务。云基础设施系统702可以存储这些客户的信息(可能包括专有信息)。在某些实施例中,云基础设施系统702包括被配置成管理客户信息并提供对所管理信息的分离使得与一个客户相关的信息不能够被另一个客户访问的身份管理子系统(IMS)728。IMS 728可以被配置成提供如身份服务等各种安全有关服务,如信息访问管理、认证和授权服务、用于管理客户身份和角色以及相关功能的服务等。

图8是可以用于实施某些实施例的示例计算机系统800的图。例如,在一些实施例中,计算机系统800可以用于实施本文所描述的系统、子系统和部件中的任何一个。例如,多个主机可以提供并且实施如本文所述通过反向传播对对话系统100的ML模型的训练。计算机系统(如计算机系统800)可以用作主机。如图8所示,计算机系统800包括各种子系统,包括经由总线子系统802与多个其他子系统通信的处理子系统804。这些其他子系统可以包括处理加速单元806、I/O子系统808、存储子系统818和通信子系统824。存储子系统818可以包括非暂态计算机可读存储介质,包括存储介质822和系统存储器810。

总线子系统802提供用于使计算机系统800的各个部件和子系统按预期彼此通信的机构。虽然总线子系统802被示意性地示出为单个总线,但是总线子系统的替代性实施例可以利用多个总线。总线子系统802可以是包括存储器总线或存储器控制器、外围总线、使用各种总线架构中的任何一种的局部总线等的若干种类型的总线结构中的任何一种。例如,这种架构可以包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线以及外围部件互连(PCI)总线(所述PCI总线可以被实施为被制造成IEEE P1386.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

用户接口输入设备的其他示例包括但不限于三维(3D)鼠标、操纵杆或指向杆、游戏手柄和图形板、以及音频/视觉设备(如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3D扫描仪、3D打印机、激光测距仪、眼睛注视跟踪设备)。另外,用户接口输入设备可以包括例如医学成像输入设备,如计算机断层扫描、磁共振成像、正电子发射断层扫描和医学超声检查设备。用户接口输入设备还可以包括例如音频输入设备,如MIDI键盘、数码乐器等。

通常,使用术语输出设备旨在包括用于从计算机系统800向用户或其他计算机输出信息的所有可能类型的设备和机构。用户接口输出设备可以包括显示子系统、指示灯或如音频输出设备等非视觉显示器。显示子系统可以是阴极射线管(CRT)、平板设备(如使用液晶显示器(LCD)或等离子显示器的平板设备)、投影设备、触摸屏等。例如,用户接口输出设备可以包括但不限于在视觉上传达文本、图形和音频/视频信息的各种显示设备,如监视器、打印机、扬声器、头戴式耳机、汽车导航系统、绘图仪、话音输出设备和调制解调器。

存储子系统818提供用于存储计算机系统800所使用的信息和数据的储存库或数据存储设备。存储子系统818提供用于存储提供一些实施例的功能的基本编程和数据构造的有形非暂态计算机可读存储介质。存储子系统818可以存储当由处理子系统804执行时提供以上所描述的功能的软件(例如,程序、代码模块、指令)。软件可以由处理子系统804的一个或多个处理单元执行。存储子系统818还可以根据本公开的教导提供用于存储所使用的数据的储存库。

存储子系统818可以包括一个或多个非暂态存储器设备,所述一个或多个非暂态存储器设备包括易失性存储器设备和非易失性存储器设备。如图8所示,存储子系统818包括系统存储器810和计算机可读存储介质822。系统存储器810可以包括多个存储器,包括用于在程序执行期间存储指令和数据的易失性主随机存取存储器(RAM)和其中存储有固定指令的非易失性只读存储器(ROM)或闪速存储器。在一些实施方式中,包含如在启动期间帮助在计算机系统800内的元件之间传送信息的基本例程的基本输入/输出系统(BIOS)通常可以存储在ROM中。RAM通常包含目前由处理子系统804操作并执行的数据和/或程序模块。在一些实施方式中,系统存储器810可以包括如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等多种不同类型的存储器。

通过示例而非限制的方式,如图8所描绘的,系统存储器810可以加载正在执行的应用程序812(所述应用程序可以包括如web浏览器、中间层应用程序、关系数据库管理系统(RDBMS)等各种应用程序)、程序数据814和操作系统816。通过示例的方式,操作系统816可以包括各种版本的Microsoft

在某些实施例中,可以在系统存储器810中执行实施如本文所述的通过反向传播来训练对话系统100的ML模型的软件指令或代码。

计算机可读存储介质822可以存储提供一些实施例的功能的编程和数据构造。计算机可读存储介质822可以为计算机系统800提供对计算机可读指令、数据结构、程序模块和其他数据的存储。当由处理子系统804执行时提供以上所描述的功能的软件(程序、代码模块、指令)可以存储在存储子系统818中。通过示例的方式,计算机可读存储介质822可以包括如硬盘驱动器、磁盘驱动器、光盘驱动器(如CD ROM、DVD、

在某些实施例中,存储子系统818还可以包括可以进一步连接到计算机可读存储介质822的计算机可读存储介质读取器820。读取器820可以从如盘、闪速存储器驱动器等存储器设备接收数据并且被配置成从所述存储器设备读取数据。

在某些实施例中,计算机系统800可以支持虚拟化技术,包括但不限于对处理和存储器资源的虚拟化。例如,计算机系统800可以提供对执行一个或多个虚拟机的支持。在某些实施例中,计算机系统800可以执行如促进对虚拟机的配置和管理的管理程序等程序。每个虚拟机可以分配有存储器、计算(例如,处理器、核)、I/O和联网资源。每个虚拟机通常独立于其他虚拟机运行。虚拟机通常运行其自身的操作系统,所述操作系统可以与由计算机系统800所执行的其他虚拟机执行的操作系统相同或不同。因此,多个操作系统可以潜在地由计算机系统800同时运行。

通信子系统824提供到其他计算机系统和网络的接口。通信子系统824用作用于从其他系统接收数据并从计算机系统800向其他系统发射数据的接口。例如,通信子系统824可以使得计算机系统800能够经由因特网构建到一个或多个客户端设备的通信通道以用于从客户端设备接收信息并向客户端设备发送信息。

通信子系统824可以支持有线通信协议和/或无线通信协议两者。例如,在某些实施例中,通信子系统824可以包括用于访问无线话音和/或数据网络的射频(RF)收发器部件(例如,使用蜂窝电话技术、如3G、4G或EDGE(全球演进增强型数据速率)等先进的数据网络技术、WiFi(IEEE 802.XX家庭标准、或其他移动通信技术、或其任何组合)、全球定位系统(GPS)接收器部件和/或其他部件。在一些实施例中,除了无线接口之外或替代无线接口,通信子系统824可以提供有线网络连接性(例如,以太网)。

通信子系统824可以接收并发射各种形式的数据。例如,在一些实施例中,除了其他形式之外,通信子系统824还可以接收结构化和/或非结构化数据馈送826、事件流828、事件更新830等形式的输入通信。例如,通信子系统824可以被配置成从社交媒体网络和/或其他通信服务的用户实时地接收(或发送)数据馈送826,如

在某些实施例中,通信子系统824可以被配置成接收连续数据流形式的数据,所述连续数据流可以包括(可以没有显式结束的本质上连续的或无界的)实时事件的事件流828和/或事件更新830。生成连续数据的应用程序的示例可以包括例如传感器数据应用程序、财务收报机、网络性能测量工具(例如,网络监测和流量管理应用程序)、点击流分析工具、汽车交通监测等。

通信子系统824还可以被配置成将数据从计算机系统800传达到其他计算机系统或网络。可以将数据以如结构化和/或非结构化数据馈送826、事件流828、事件更新830等各种不同的形式传达到可以与耦接至计算机系统800的一个或多个流数据源计算机通信的一个或多个数据库。

计算机系统800可以是各种类型中的一种,包括手持便携式设备(例如,

虽然已经描述了具体实施例,但是各种修改、更改、替代性构造和等同物是可能的。实施例不局限于在某些具体数据处理环境中的操作,而是自由地在多个数据处理环境中操作。另外,尽管已经使用特定系列的事务和步骤描述了某些实施例,但是对于本领域技术人员而言应当显而易见的是,这不旨在是限制性的。虽然一些流程图将操作描述为顺序过程,但是许多操作可以并行地或同时地执行。另外,可以重新布置操作的顺序。过程可以具有图中未包括的另外的步骤。可以单独地或联合地使用以上所述的实施例的各种特征和方面。

进一步地,虽然已经使用硬件和软件的特定组合描述了某些实施例,但是应当认识到,硬件和软件的其他组合也是可能的。某些实施例可以仅在硬件中或仅在软件中或使用其组合实施。本文所描述的各种过程可以在相同处理器或不同处理器上以任何组合实施。

在将设备、系统、部件或模块描述为被配置成执行某些操作或功能的情况下,这种配置可以例如通过将电子电路设计成执行操作、通过对可编程电子电路(如微处理器)进行编程以执行操作(如通过执行计算机指令或代码)或通过被编程成执行存储在非暂态存储器介质上的代码或指令的处理器或核或其任何组合来完成。过程可以使用包括但不限于用于过程间通信的传统技术的各种技术进行通信,并且不同的过程对可以使用不同的技术,或者相同的过程对可以在不同的时间使用不同的技术。

本公开中给出了具体细节以提供对实施例的透彻理解。然而,可以在没有这些具体细节的情况下实践实施例。例如,已经示出了公知的电路、过程、算法、结构和技术,而没有不必要的细节,以避免模糊实施例。此描述仅提供了示例实施例并且不旨在限制其他实施例的范围、适用性或配置。而是,先前对实施例的描述将为本领域技术人员提供用于实施各个实施例的使能描述。可以对元件的功能和布置作出各种改变。

因此,应当从说明性而非限制性意义上看待说明书和附图。然而,将明显的是,在不脱离权利要求中阐述的更广泛的精神和范围的情况下,可以对其作出添加、减少、删除以及其他修改和改变。因此,虽然已经描述了具体实施例,但是这些示例不旨在是限制性的。各种修改和等同物均在以下权利要求的范围内。

相关技术
  • 行人再识别方法和装置、电子设备、存储介质、程序产品
  • 语音类别的识别方法、装置、计算机设备和存储介质
  • 实时语音识别方法、装置、设备及存储介质
  • 语音识别方法、装置、计算机设备及存储介质
  • 语音识别方法、装置、计算机设备及存储介质
  • 语音识别方法、装置、设备、存储介质和程序产品
  • 语音识别方法、装置、设备、存储介质及程序产品
技术分类

06120116452229