一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用可生性对抗网络训练对话系统的语义解析器的制作方法

2022-04-16 19:44:15 来源:中国专利 TAG:

使用可生性对抗网络训练对话系统的语义解析器
1.相关申请的交叉引用
2.本公开要求于2019年9月11日提交的标题为“utilizing a generative adversarial network to train a semantic parser”的美国临时申请序列no.62/898,682的优先权,该申请通过引用整体并入本文。
技术领域
3.本公开涉及对话系统,并且更具体地涉及用于使用可生性对抗网络来训练语义解析器以在对话系统中使用的技术,使得语义解析器可以有效地学习基于可生性对抗网络的对抗上下文生成逻辑形式。


背景技术:

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


技术实现要素:

5.对话系统是一种启用语音的系统,该系统能够与用户进行对话,诸如经由言语输入和音频输出。通常,对话系统包括一个或多个机器学习(ml)模型,诸如语义解析器。本公开涉及用于使用可生性对抗网络(gan)来训练对话系统的语义解析器的技术。例如,在一些实施例中,gan包括语义解析器作为其生成器,并且还包括鉴别器和误差最小化模块。在一些实施例中,语义解析器和鉴别器是作为对手被训练的ml模型,使得两个ml模型共同改进。
6.在一些实施例中,种子数据被用作gan的训练输入。种子数据可以包括种子元组的集合,每个种子元组包括话语和与话语对应的逻辑形式。本文描述的实施例联合训练语义解析器和鉴别器,通过首先固定语义解析器,同时基于语义解析器输出来训练鉴别器,然后固定鉴别器,同时基于鉴别器输出来训练语义解析器,并重复直到种子数据被用光。
7.虽然语义解析器是固定的并且因此是静态的,但语义解析器可以基于随机选择的话语生成逻辑形式。每对随机选择的话语和由语义解析器生成的对应的逻辑形式一起可以形成生成的元组。鉴别器可以接收生成的元组以及种子元组作为输入。对于每个这样的元组,鉴别器可以输出(即,预测)元组是真实的概率,或者换句话说,元组是种子元组的概率。与指示元组是否真实的准确分布(即,准确的值序列)相比,误差最小化模块可以基于鉴别器的预测的分歧(divergence)来生成训练信号以训练鉴别器。
8.当鉴别器是固定的并且因此是静态的时,语义解析器可以基于从种子数据的种子元组中选择的话语来生成逻辑形式。每对来自种子数据的话语和由语义解析器生成的对应逻辑形式一起可以形成元组。鉴别器可以接收这样的元组作为输入,并且对于每个元组,可
以预测元组是真实的概率。误差最小化模块可以基于鉴别器的真实性的实际预测与其中所有生成的逻辑形式都被预测为真实的期望预测集的分歧来生成训练信号以训练语义解析器。换句话说,语义解析器的训练目的是欺骗鉴别器,使其认为所有生成的逻辑形式都是真实的。
9.因此,语义解析器和鉴别器可以作为gan的成员被联合训练,语义解析器学习生成逻辑形式并且鉴别器学习识别逻辑形式。最终,随着鉴别器改进并因此使得语义解析器改进,语义解析器可以变得非常擅长生成逻辑形式,使得生成的逻辑形式与属于种子数据的逻辑形式无法区分。以这种方式,语义解析器被训练为基于话语生成逻辑形式。
10.在其它实施例中,对话系统可以包括用于接收言语输入的言语输入模块、用于向用户输出言语输出的言语输出模块,以及用于基于对言语输入的解释并准备对用户的适当响应执行一个或多个动作或使得一个或多个动作被执行的对话处理模块。对话处理模块可以利用通过使用上面提到的用于使用gan训练对话系统的语义解析器的技术获得的语义解析器。
11.在参考以下说明书、权利要求和附图时,前述内容以及其它特征和实施例将变得更加清楚。
附图说明
12.图1是根据本文描述的某些实施例的结合在可生性对抗网络中进行训练的语义解析器的对话系统的图。
13.图2是根据本文描述的某些实施例的被配置为训练可生性对抗网络中的语义解析器和鉴别器的训练系统的图。
14.图3是根据本文描述的某些实施例的在可生性对抗网络中与鉴别器联合地训练语义解析器的方法的图。
15.图4是根据本文描述的某些实施例的作为图3的方法中的一轮训练的一部分来训练鉴别器的方法的图。
16.图5是根据本文描述的某些实施例的作为图3的方法中的一轮训练的一部分来训练语义解析器的方法的图。
17.图6是用于实现本文描述的某些实施例的分布式系统的图。
18.图7是根据本文描述的某些实施例的基于云的系统环境的框图,其中训练可生性对抗网络中的语义解析器可以至少部分地作为云服务提供。
19.图8是可以被用于实现本文描述的某些实施例的示例计算机系统的框图。
具体实施方式
20.在以下描述中,出于解释的目的,阐述了具体细节以便提供对某些实施例的透彻理解。但是,显然可以在没有这些具体细节的情况下实践各种实施例。各图和描述并非旨在限制。词语“示例性”在本文用于表示“用作示例、实例或图示”。本文描述为“示例性”或“示例”的任何实施例或设计不一定被解释为优选或优于其它实施例或设计。
21.能够经由言语输入和音频输出(也称为语音输出)与用户进行对话的启用语音的系统可以有多种形式。例如,这种系统可以作为独立设备、作为数字或虚拟助理、作为语音
服务等提供。在这些形式的每一种当中,系统都能够接收言语输入,理解言语输入,响应于言语输入而生成响应或采取动作,并使用音频输出输出响应。在某些实施例中,这种启用语音的系统中的对话功能性由对话系统或基础设施(“对话系统”)提供。对话系统被配置为接收言语输入、解释言语输入、维持对话、可能基于言语输入的解释来执行一个或多个动作或使得一个或多个动作被执行、准备适当的响应,并使用音频输出向用户输出响应。
22.按照惯例,对话系统包括各种机器学习(ml)模型,并需要大量的训练数据来训练对话系统的各种机器学习模型。此类ml模型之一是语义解析器子系统,也称为语义解析器。一般而言,语义解析器接收表示由用户提供的言语输入的话语,其中话语是自然语言的文本表示。语义解析器将话语映射到逻辑形式,该逻辑形式是将话语翻译成符合既定语法的基于逻辑的语言的表示,因此可由对话系统的对话管理器子系统解析。对话管理子系统然后解析和处理逻辑形式以确定如何响应。
23.为了训练语义解析器子系统,与对话系统相关联的训练系统通常要求大量的元组,每个元组包括话语(例如,自然语言的文本表示)和对应的逻辑形式。当使用的训练数据量不足时,语义解析器可能不如预期有效,并且可能将错误引入逻辑形式,从而引入对话系统的工作流程。由于在逻辑形式中引入了错误,因此对话管理器子系统可能无法向用户生成适当的响应。
24.可生性对抗网络(gan)是一种以对抗方式训练生成器和鉴别器的体系架构。gan通常用于图像分析,特别是机器视觉领域。在示例常规gan中,图像生成器生成旨在属于特定类别的图像(例如,面部的图像),并且鉴别器确定生成的图像是否确实属于那个类别。通过将图像生成器和鉴别器的输出与输出的准确分布进行比较,gan向图像生成器和鉴别器提供训练信号,以训练图像生成器和鉴别器。当可用的训练数据小于个体训练的理想数据时,gan特别有用,因为对抗性质可以用相对小的训练数据集进行有效的训练。
25.在本文描述的训练系统的一些实施例中,对话系统的语义解析器在gan中被训练。具体而言,语义解析器可以充当gan的生成器,因此可以学习生成逻辑形式,而鉴别器可以学习区分真实与不真实的逻辑形式。误差最小化模块可以应用一个或多个目标函数来提供训练信号以训练语义解析器和鉴别器。在训练之后,语义解析器可以被用于将话语映射到逻辑形式,作为对话系统的一部分。由于gan中训练的对抗性质,这种训练语义解析器的方式可以比基于个体训练语义解析器的传统技术更有效。
26.图1是根据本文描述的某些实施例的对话系统100的示例的图,其利用在gan 155中训练的语义解析器114。对话系统100被配置为诸如通过言语输入模块从用户102接收言语输入104,也称为语音输入。例如,言语输入模块接收来自麦克风或可以获得言语或语音的另一个设备的言语输入。然后对话系统100可以解释言语输入104。对话系统100可以维持与用户102的对话并且可以基于例如通过使用利用语义解析器114的对话处理模块对言语输入104的解释来执行一个或多个动作或使得一个或多个被执行。对话系统100可以准备适当的响应,诸如通过使用对话处理模块,并且可以使用语音或言语输出(也称为音频输出),诸如通过言语输出模块,向用户输出响应。例如,言语输出模块可以是扬声器或可以输出语音或言语的另一个设备。对话系统100是可以被用于潜在地使用大量计算机处理周期来处理大量数据的专用计算系统。图1中描绘的设备的数量仅供说明之用。可以使用不同数量的设备。例如,虽然图1中的每个设备、服务器和系统都被示为单个设备,但也可以使用多个设
备。
27.在某些实施例中,由对话系统100执行的处理由组件或子系统的管线实现,包括言语输入组件105;唤醒词检测(wd)子系统106;自动言语识别(asr)子系统108;自然语言理解(nlu)子系统110,其包括命名实体识别器(ner)子系统112和语义解析器子系统114;对话管理器(dm)子系统116;自然语言生成器(nlg)子系统118;文本到言语(tts)子系统120;以及言语输出组件124。上面列出的子系统可以仅用软件(例如,使用可由一个或多个处理器或内核执行的代码、程序或指令)、用硬件或用硬件和软件的组合来实现。在某些实施方式中,子系统中的一个或多个子系统可以组合成单个子系统。附加地或替代地,在一些实施方式中,本文描述的由特定子系统执行的功能可以由多个子系统实现。
28.言语输入组件105包括被配置为接收言语输入104的硬件和软件。在一些情况下,言语输入组件105可以是对话系统100的一部分。在一些其它实例中,言语输入组件105可以与对话系统100分离并且可通信地耦合到对话系统100。例如,言语输入组件105可以包括耦合到软件的麦克风,该软件被配置为将言语输入104数字化并将其传输到唤醒词检测子系统106。
29.唤醒词检测(wd)子系统106被配置为针对与特殊声音或词或词集合(被称为唤醒词)对应的输入来监听和监视音频输入流。在检测到针对对话系统100的唤醒词后,wd子系统106被配置为激活asr子系统108。在某些实施方式中,可以向用户提供激活或停用wd子系统106(例如,通过按下按钮)以使wd子系统106监听或停止监听唤醒词的能力。当被激活或在活动模式下操作时,wd子系统106被配置为连续接收音频输入流,并处理音频输入流以识别与唤醒词对应的音频输入,诸如言语输入104。当检测到与唤醒词对应的音频输入时,wd子系统106激活asr子系统108。
30.如上所述,wd子系统106激活asr子系统108。在对话系统100的一些实施方式中,可以使用唤醒词检测以外的机制来触发或激活asr子系统108。例如,在一些实施方式中,设备上的按钮可以用于触发asr子系统108而无需唤醒词。在这样的实施方式中,不需要提供wd子系统106。当按下或激活按钮时,在按钮激活之后接收到的言语输入104被提供给asr子系统108进行处理。此外或可替代地,在一些实施方式中,asr子系统108可以在接收到要处理的输入时被激活。
31.asr子系统108被配置为在触发或唤醒信号之后接收和监视言语输入104(例如,唤醒信号可以由wd子系统106在检测到言语输入104中的唤醒词后被发送,或者唤醒信号可以在按钮激活后被接收)并将言语输入104转换成文本。作为其处理的一部分,asr子系统108执行言语到文本转换。言语输入104可以是自然语言形式,并且asr子系统108被配置为以言语输入104的语言生成对应的自然语言文本。这种对应的自然语言文本在本文中被称为话语。例如,由asr子系统108接收的言语输入104可以包括一个或多个单词、短语、从句、句子、问题等。asr子系统108被配置为为每个说出的从句生成话语并将话语馈送到nlu子系统110以供进一步处理。
32.nlu子系统110接收由asr子系统108生成的话语。由nlu子系统110从asr子系统108接收的话语可以包括与说出的单词、短语、从句等对应的文本话语。nlu子系统110将每个话语或一系列话语翻译成对应的逻辑形式。
33.在某些实施方式中,nlu子系统110包括命名实体识别器(ner)子系统112和语义解
析器子系统114。ner子系统112接收话语作为输入,识别话语中的命名实体,并用与识别出的命名实体相关的信息来标记话语。被标记的话语然后被馈送到语义解析器子系统114,其被配置为为每个标记的话语或一系列标记的话语生成逻辑形式。为话语生成的逻辑形式可以识别与话语对应的一个或多个意图。话语的意图识别话语的目标。意图的示例包括“订披萨”和“查找方向”。例如,意图可以识别被请求执行的动作。除了意图之外,为话语生成的逻辑形式还可以为识别出的意图识别槽,也称为参数或自变量。例如,对于言语输入“我想订一个带有蘑菇和橄榄的大意大利辣香肠披萨”,nlu子系统110可以识别订披萨的意图。nlu子系统还可以识别和填充槽,例如,pizza_size(填充大)和pizza_toppings(填充蘑菇和橄榄)。nlu子系统110可以使用基于机器学习的技术、可以是特定于领域的规则,或机器学习技术和规则的组合来生成逻辑形式。由nlu子系统110生成的逻辑形式随后被馈送到dm子系统116以供进一步处理。
34.如图1中所示,在一些实施例中,本文描述的训练系统150训练语义解析器子系统114,在本文中也称为语义解析器114,作为可生性对抗网络155的一部分,以使语义解析器114为它在对话系统100中的操作准备好。例如,训练系统150利用gan 155来训练语义解析器114以执行上述基于一个或多个话语来确定逻辑形式的任务。在一些实施例中,对话系统100通过使用这种训练语义解析器114的对抗性技术而比常规对话系统得到改进。
35.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进行进一步处理。
36.nlg子系统118被配置为生成与由dm子系统116生成的响应对应的自然语言文本。文本可以以使得它们能够被tts子系统120转换成言语的形式生成。tts子系统120从nlg子系统118接收文本并将它们中的每一个转换成言语或语音音频,然后该言语或语音音频可以经由对话系统的音频或言语输出组件124(例如,扬声器、或耦合到外部扬声器的通信通道)作为音频输出给用户。在一些情况下,言语输出组件124可以是对话系统100的一部分。在一些其它情况下,言语输出组件124可以与对话系统100分离并且可通信地耦合到对话系统100。
37.如上所述,对话系统100的协作工作的各种子系统提供使对话系统100能够接收言语输入104并使用言语输出122进行响应并由此使用自然语言言语与用户维持对话的功能。上述各种子系统可以使用单个计算机系统或使用协作工作的多个计算机系统来实现。例如,对于实现启用语音的系统的设备,上述对话系统100的子系统可以完全在用户与之交互的设备上实现。在一些其它实施方式中,对话系统100的一些组件或子系统可以在用户与之
交互的设备上实现,而其它组件可以在远离设备的地方实现,可能在一些其它计算设备、平台或服务器上。
38.图2是根据本文描述的某些实施例的被配置为通过使用可生性对抗网络155来训练对话系统100的语义解析器114的训练系统150的图。更具体而言,在一些实施例中,语义解析器114充当gan 155的生成器,并且训练系统150与gan 155中的鉴别器250联合地训练语义解析器114。gan 155中的误差最小化模块260可以将一个或多个训练信号提供回语义解析器114和鉴别器250以训练语义解析器114和鉴别器250,更具体而言,使用反向传播来训练语义解析器114。训练系统150的数据输入子系统240可以向语义解析器114、鉴别器250和误差最小化模块260提供输入,诸如基于种子数据210的输入,以使语义解析器114、鉴别器250和误差最小化模块260能够执行本文描述的任务。在训练之后,语义解析器114可以被用作对话系统100的一部分,诸如图1中所示。
39.在一些实施例中,训练系统150被实现为计算设备或其一部分,诸如服务器。训练系统150可以被实现为专用硬件设备或程序代码,或两者的组合。例如,本文描述为由训练系统150执行的操作可以实施在实现训练系统150的程序代码中,其中这样的程序代码可由一个或多个处理单元执行。例如,语义解析器114、鉴别器250、误差最小化模块260以及gan 155的其它方面可以各自被实现为一个或多个软件功能或专用硬件设备,并且可以一起操作以实现训练系统150,如本文所述。语义解析器114和鉴别器250可以各自被实现为相应的机器学习模型,诸如神经网络。
40.如图2中所示,训练系统150可以包括gan 155,其包括被联合训练的生成器和鉴别器250。具体而言,生成器可以是对话系统100的语义解析器114,因此,语义解析器114在被集成到对话系统100中之前或同时在gan 155内被训练。具体而言,训练系统150可以训练语义解析器114以将话语220映射到逻辑形式230,并且训练系统150可以训练鉴别器250以确定逻辑形式230是否是真实的(即,与种子数据的集合210中其对应的话语220共享种子元组)。另外,误差最小化模块260更新语义解析器114和鉴别器250以最小化在gan 155中做出的预期预测与实际预测之间的误差。在一些实施例中,作为gan 155的一部分,语义解析器114和鉴别器250被联合训练以使语义解析器114和鉴别器250中的每一个随着另一个改进而改进。因此,语义解析器114学习将诸如由ner子系统112标记的话语220之类的话语220映射到dm子系统116可使用的逻辑形式230。
41.在一些实施例中,语义解析器114是神经网络,诸如序列到序列(seq2seq)模型,用于基于话语220确定逻辑形式230。按照惯例,用包括元组的集合的训练数据来训练语义解析器,每个元组具有话语和对应的逻辑形式。但是,如本文所述,在一些实施例中,语义解析器114作为gan 155的一部分被训练。如本文进一步描述的,训练利用包括种子元组的种子数据210,每个种子元组包括话语220和对应的逻辑形式230。但是,训练也结合来自鉴别器250的输出。
42.鉴别器250可以是将元组映射到类的二元分类器;例如,鉴别器250可以被实现为神经网络。鉴别器250可以接收包括话语220和逻辑形式136的元组作为输入,并且鉴别器250可以输出逻辑形式230是否是话语220的真实表示的指示符。例如,鉴别器250可以输出逻辑形式230是真实的(即,与种子数据210中的话语220配对)并且因此是准确的概率。在一些实施例中,为了实现这一点,鉴别器250可以与如本文所述的gan 155中的语义解析器114
被联合训练。
43.误差最小化模块260可以提供训练信号以通过反向传播来训练鉴别器250并训练语义解析器114。例如,为了训练鉴别器250,误差最小化模块260可以利用第一目标函数265来比较鉴别器250的输出(其是接收到的逻辑形式230是否真实的指示)与那些逻辑形式230的真实性的指示的准确分布。误差最小化模块260可以使用第一目标函数265的结果来训练鉴别器250以更好地预测真实性。
44.为了训练语义解析器114,误差最小化模块260可以利用可以与第一目标函数265相同的第二目标函数265来比较来自鉴别器250的输出(指示语义解析器114的逻辑形式230输出的真实性的预测)与那些逻辑形式230的真实性的指示的选择的分布(即,期望的分布)。该选择的分布可以是指示由语义解析器114输出的所有逻辑形式230都是真实的分布。这是因为,在一些实施例中,训练系统150寻求提供其输出总被认为是真实的语义解析器114。本领域技术人员将理解如何构造此类目标函数265。在一些实施例中,虽然语义解析器114和鉴别器250在gan 155内被联合训练,但是在给定时间,基于来自误差最小化模块260的训练信号,不超过语义解析器114和生成器之一被联合训练。
45.图3是根据本文描述的某些实施例的在gan 155中与鉴别器250联合训练语义解析器114的方法300的图。在一些实施例中,这种方法300或类似方法在语义解析器114被用在对话系统100之前被执行。通过本文描述的训练,语义解析器114可以学习将话语220翻译(即,映射)成表示此类话语220的逻辑形式230,这是由语义解析器114作为对话系统100的一部分执行的任务。
46.图3中描绘的方法300以及本文描述的其它方法可以以由一个或多个处理单元(例如,处理器或处理器核心)执行的软件(例如,作为代码、指令或程序)、硬件或以它们的组合实现。软件可以存储在非暂态存储介质上,诸如在存储器设备上。这种方法300旨在是说明性而非限制性的。虽然图3描绘了以特定顺序或次序发生的各种活动,但这并非旨在进行限制。在某些实施例中,例如,可以以不同的次序执行活动,或者可以并行执行方法300的一个或多个活动。在某些实施例中,方法300可以由训练系统150执行。
47.如图3中所示,在方框305处,训练系统150的数据输入子系统240获得种子数据210。种子数据210可以包括种子元组的集合,其中每个种子元组包括话语220和对应的逻辑形式230。在每个种子元组中,逻辑形式230是话语220的准确和真实的表示或翻译。将理解的是,存在用于获得种子数据210的各种技术。例如,种子数据210可以被手动确定,诸如通过众包,然后存储在数据输入子系统240可访问的存储器设备中。
48.在方框310处,训练系统150开始新一轮的训练。方框310是迭代循环的开始。在一些实施例中,在循环的每次迭代期间,训练系统150进行一轮训练。每轮训练可以包括在该轮的一部分期间训练鉴别器250并且在该轮的另一部分期间训练语义解析器114。虽然该轮的这两个部分可以并行执行,但是在一些实施例中这两个部分顺序执行以使得第二部分中的语义解析器114的训练能够受益于第一部分中的鉴别器250的训练。另外,对于训练鉴别器250和语义解析器114的每一轮,并且因此,对于循环的每次迭代,训练系统150可以利用种子数据210的不同子集。
49.在方框315处,训练系统150基于在方框305处获得的种子数据210的第一部分进行鉴别器250的训练。在一些实施例中,种子数据210的这个第一部分尚未用于前一轮的训练。
在鉴别器250的这个训练期间,语义解析器114可以被固定以使得能够基于鉴别器关于来自语义解析器114的输出的真实性的预测来更新鉴别器250,而不改变语义解析器114如何确定该输出。下面参考图4更详细地描述在一轮训练期间训练鉴别器250所涉及的活动。
50.在方框320处,训练系统150基于在方框305处获得的种子数据210的第二部分来进行语义解析器114的训练。在一些实施例中,种子数据210的这个第二部分不同于在方框310处使用的第一部分(例如,在种子元组中没有重叠)并且尚未用于前一轮的训练。在语义解析器114的这个训练期间,鉴别器250可以被固定以使得能够基于鉴别器关于语义解析器114的输出的真实性的预测来更新语义解析器114,而不改变鉴别器250如何确定真实性。下面参考图5更详细地描述在一轮训练期间训练语义解析器114所涉及的活动。
51.在决定方框325处,训练系统150确定在方框305处获得的所有种子数据210是否都已被选择并用于如上所述的某一轮训练(即,循环的某一次迭代)。如果还没有使用所有种子数据210,那么方法300可以返回到方框310,在此开始另一轮训练。但是,如果在训练中已经使用了所有种子数据210,那么方法300可以在方框330处结束,此时语义解析器114已经被训练并且可以准备好在对话系统100中使用。
52.图4是根据本文描述的某些实施例的作为gan 155中的一轮训练的一部分来训练鉴别器250的方法400的图。具体而言,训练系统150可以在上述方法300的方框315处执行这种方法400或类似方法,以在单轮训练中训练鉴别器250。因此,根据一些实施例,可以每次迭代执行这种方法400或类似方法一次。
53.图4中描绘的方法400以及本文描述的其它方法可以以由一个或多个处理单元(例如,处理器或处理器核心)执行的软件(例如,作为代码、指令或程序)、硬件执行或它们的组合实现。软件可以存储在非暂态存储介质上,诸如在存储器设备上。这种方法400旨在是说明性而非限制性的。虽然图4描绘了以特定顺序或次序发生的各种活动,但这并非旨在进行限制。在某些实施例中,例如,可以以不同的次序执行活动,或者可以并行执行方法400的一个或多个活动。在某些实施例中,方法400可以由训练系统150执行。
54.在方框405处,训练系统150的数据输入子系统240选择种子数据210的第一部分,其中第一部分没有在先前的训练轮次中使用。在一些实施例中,种子数据210的这个第一部分是种子数据210中的种子元组的子集;例如,种子数据210的第一部分可以是种子数据210中的种子元组的真子集,使得并非种子数据210的所有种子元组都包括在第一部分中。
55.在方框410处,语义解析器114被固定,而鉴别器250打开以供更新。换句话说,在一些实施例中,语义解析器114将暂时保持静态以使得鉴别器250能够基于语义解析器114的当前状态进行训练。
56.在一些实施例中,方框415和方框420并行执行。在方框415处,训练系统150的数据输入子系统240将话语220的流输入到语义解析器114,语义解析器114基于输入到语义解析器114的话语220的流生成逻辑形式230。话语220的流中的话语220可以是不是来自种子数据210而是例如由数据输入子系统240或某个其它组件随机生成或随机选择的话语220。例如,但不作为限制,话语220可以选自以自然语言编写的语料库(例如,一本或多本书或文章)。对于接收到的每个这样的话语220,语义解析器114可以生成逻辑形式230。在训练中的早期,语义解析器的逻辑形式230的输出可以差。例如,生成的逻辑形式230可以是随机的(例如,单词和符号的随机排列)。但是,随着训练在整个一轮或多轮中进行,语义解析器114
可以改进。
57.在可以与方框415并行执行的方框420处,训练系统150的数据输入子系统240可以向鉴别器250输入元组的流,并且鉴别器250可以为那些元组生成真实性的预测。元组的流中的每个元组可以包括话语220和逻辑形式230。数据输入子系统240可以提供这个元组的流作为(1)来自在方框405处选择的种子数据210的第一部分的种子元组和(2)具有已由语义解析器114在方框415处生成的逻辑形式230的元组的组合(例如,随机或任意组合)。基于元组的流,鉴别器250可以输出与元组对应的真实性的预测。换句话说,给定元组,鉴别器250可以预测元组中的逻辑形式230是否是元组中的话语220的真实表示,或者换句话说,鉴别器250可以猜测元组是否是种子数据而不是已经由语义解析器114生成的逻辑形式230的一部分。鉴别器250接收的元组可以包括种子元组和生成的元组,种子元组在种子数据210的第一部分中,而每个生成的元组包括语义解析器114接收到的话语220和由语义解析器114在方框415处生成的对应逻辑形式230。
58.在一些实施例中,不通知鉴别器250哪些元组来自种子数据210并且因此是真实的,以及哪些元组来自语义解析器114并且因此是生成的。对于每个元组,鉴别器250可以基于认定的真实性对元组进行分类。为此,鉴别器250可以输出指示其确定(即,预测)逻辑形式230是元组中对应话语220的真实表示的可能性的分数;例如,分数是逻辑形式230是元组中对应话语220的真实表示,因此元组来自种子数据210,的概率。理想地,鉴别器250为真实元组(即,种子元组)输出高概率,诸如1,并为生成的元组输出低概率,诸如0。在训练中早期,鉴别器的输出可以差。例如,概率输出可以是固定范围内的随机数(例如,在0和1之间,包括端点)。但是,随着训练在整轮或多轮中进行,鉴别器250可以改进。
59.在方框425处,训练系统150的误差最小化模块260基于(如在方框415和方框420处确定的)语义解析器114和鉴别器250的输出生成训练信号以训练鉴别器250。在一些实施例中,训练系统150的数据输入子系统240将在方框405处访问的种子数据210的第一部分提供给误差最小化模块260,以使误差最小化模块260能够确定训练信号。
60.例如,误差最小化模块260可以应用第一目标函数265,其将预测的准确分布(即,值的准确序列)与来自鉴别器250的预测的实际分布(即,值的实际序列)进行比较,以便确定那两个分布之间的分歧或差异程度。误差最小化模块260可以访问种子数据210的第一部分并且因此可以知道鉴别器250接收到的哪些元组是真实的以及生成了哪些元组。因此,误差最小化模块260知道准确分布将值1(即,百分之一百的概率)指派给种子元组并且将值0(即,百分之零的概率)指派给不是真实的生成的元组。因此,误差最小化模块260可以使用第一目标函数265将这个准确分布与鉴别器250的实际输出进行比较,从而向鉴别器250提供训练信号。训练信号表示由鉴别器250做出的预测中的错误。基于训练信号,训练系统150可以更新鉴别器250以减少准确分布与实际分布之间的误差。例如,充当鉴别器250的神经网络的节点可以基于训练信号来更新。
61.在一些实施例中,如图4中所示,在方框415和方框420之后执行方框425。在那种情况下,误差最小化模块260可以仅在鉴别器250已经接收到在这一轮训练中用于训练鉴别器250的所有元组之后才提供训练信号。因此,鉴别器250可以基于上述包括种子数据210的整个第一部分和生成的元组的批次更新一次。但是,可替代地,方框425可以与方框415和方框420并行执行,使得在鉴别器250评估输入的同时将训练信号发送回鉴别器250,使得鉴别器
250在种子数据210的第一部分和生成的元组仍被提供的同时被更新。
62.在方框430处,训练系统150结束当前一轮训练中的鉴别器250的训练。因此,在方框410处固定的语义解析器114被解锁并且不需要随着训练的进行而保持固定。
63.图5是根据本文描述的某些实施例的作为gan 155中的一轮训练的一部分来训练语义解析器的方法的图。具体而言,训练系统150可以在上述方法300的方框320处执行这种方法500或类似方法,以在单轮训练中训练语义解析器114。因此,根据一些实施例,这种方法500或类似方法可以每次迭代执行一次。
64.图5中描绘的方法500以及本文描述的其它方法可以以由一个或多个处理单元(例如,处理器或处理器核心)执行的软件(例如,作为代码、指令或程序)、硬件执行或它们的组合实现。软件可以存储在非暂态存储介质上,诸如在存储器设备上。这种方法500旨在是说明性而非限制性的。虽然图5描绘了以特定顺序或次序发生的各种活动,但这并非旨在进行限制。在某些实施例中,例如,可以以不同的次序执行活动,或者可以并行执行方法500的一个或多个活动。在某些实施例中,方法500可以由训练系统150执行。
65.在方框505处,训练系统150的数据输入子系统240选择种子数据210的第二部分,其中第二部分还没有在先前的训练轮次中使用。在一些实施例中,种子数据210的这个第二部分是种子数据210中的种子元组的子集;例如,种子数据210的第二部分可以是种子数据210中的种子元组的真子集,使得并非种子数据210的所有种子元组都包括在第二部分中。此外,在一些实施例中,种子数据210的第二部分与第一部分不同;但是,可替代地,第二部分可以与种子数据210的第一部分相同。在任一情况下,第一部分和第二部分之外的种子数据210的剩余部分都可以在整个训练方法300的后续迭代中使用。
66.在方框510处,鉴别器250被固定,而语义解析器114打开以供更新。换句话说,在一些实施例中,鉴别器250将暂时保持静态,以使得语义解析器114能够基于鉴别器250的当前状态进行训练。
67.在一些实施例中,方框515和方框520并行执行。在方框515处,训练系统150的数据输入子系统240将来自在方框505处选择的种子数据210的第二部分的话语220输入到语义解析器114,并且语义解析器114基于这样的话语220生成逻辑形式230。在训练中的早期,语义解析器的逻辑形式230的输出可以差。例如,生成的逻辑形式230可以是随机的(例如,单词和符号的随机排列)。但是,随着训练在整轮训练或多轮训练中进行,语义解析器114可以改进。
68.在可以与方框515并行执行的方框520处,训练系统150的数据输入子系统240可以向鉴别器250输入元组的流,并且鉴别器250可以对流中的每个元组的真实性进行预测。元组的流中的每个元组可以包括话语220和对应的逻辑形式230。更具体而言,接收到的每个元组可以包括来自从种子数据210的第二部分选择的(如在方框505处选择的)相应种子元组的话语220,以及在方框515处由语义解析器114基于作为输入提供给语义解析器114的话语220输出的生成的逻辑形式230。对于接收到的每个元组,鉴别器250可以基于认定的真实性对元组进行分类。具体而言,鉴别器250可以输出指示真实性的可能性的分数;例如,由鉴别器250为元组确定的分数可以是逻辑形式230是元组中对应话语220的真实且因此准确的表示的概率,或者换句话说,元组是来自种子数据210的种子元组的概率。此时,鉴别器250已经接受了一些训练,如参考图4所描述的,因此虽然它的输出可能仍需要改进,但鉴别器
250可以在随后的训练轮次中继续改进。
69.在方框525处,训练系统150的误差最小化模块260基于语义解析器114和鉴别器250的输出(如在方框515和方框520处确定的)生成训练信号以经由反向传播来训练语义解析器114。为此,例如,误差最小化模块260应用第二目标函数265,该第二目标函数265确定来自鉴别器250的预测的选择的分布与来自鉴别器250的预测的实际分布之间的分歧。第二目标函数265可以但不需要与在训练鉴别器250中使用的第一目标函数265相同。在一些实施例中,因为训练系统150寻求改进语义解析器114以使语义解析器114能够欺骗鉴别器250以预测语义解析器114的输出都是真实的,所以预测的选择的分布是一系列分布。在一些实施例中,预测的这种分布将指示由语义解析器114生成的所有逻辑形式230都是真实的。因此,第二目标函数265可以在方框520处将这个选择的分布(例如,一系列分布)与来自鉴别器250的输出的实际分布进行比较以确定这些分布之间的差异程度。
70.误差最小化模块260可以使用第二目标函数265将这个选择的分布与鉴别器250的实际预测进行比较,以便向语义解析器114提供训练信号。与选择的(即,期望的)分布相比,训练信号表示做出的预测中的错误。基于训练信号,可以更新语义解析器114以减少选择的分布与实际分布之间的误差。例如,充当语义解析器114的神经网络的节点可以基于训练信号被更新。
71.在一些实施例中,如图5中所示,在方框515和方框520之后执行方框525。在这种情况下,误差最小化模块260可以仅在语义解析器114已经接收到种子数据210的第二部分中的所有话语220之后才提供训练信号。因此,语义解析器114基于包括种子数据210的整个第二部分的批次被更新。但是,可替代地,方框525可以与方框515和方框520并行执行,使得在语义解析器114评估输入时将训练信号发送回语义解析器114,使得语义解析器114在被提供来自种子数据210的第二部分的话语220时被更新。
72.因此,如上所述,gan 155可以被用于训练语义解析器114以在对话系统100中使用。可以对上述技术进行各种修改,并且这些修改在本公开的范围内。例如,半监督gan(sgan)可以被用作gan 155来联合训练被监督的鉴别器、无监督的鉴别器和语义解析器114。如果即使对于gan训练,种子数据210也是相对小的集合,那么sgan可以特别有用。附加地或可替代地,鉴别器250可以结合关于逻辑形式230必须遵守的语法的信息。通过参考这个语法,鉴别器250可以更准确地确定逻辑形式230是否真实,这可以鼓励语义解析器114更快地改进。
73.图6是用于实现某些实施例的分布式系统600的简化图。在所示的实施例中,分布式系统600包括经由一个或多个通信网络610耦合到服务器612的一个或多个客户端计算设备602、604、606和608。客户端计算设备602、604、606和608可以被配置为执行一个或多个应用。
74.在各种实施例中,服务器612可以适于运行一个或多个服务或软件应用,这些服务或软件应用使得能够在gan 155中使用反向传播来训练如本文所述的对话系统100的语义解析器114。例如,服务器612可以执行训练系统150的一些或所有方面或对话系统100的一些或所有方面。
75.在某些实施例中,服务器612还可以提供可以包括非虚拟和虚拟环境的其它服务或软件应用。在一些实施例中,这些服务可以作为基于web的服务或云服务,诸如在软件即
服务(saas)模型下,提供给客户端计算设备602、604、606和/或608的用户。操作客户端计算设备602、604、606和/或608的用户可以依次利用一个或多个客户端应用与服务器612交互以利用由这些组件提供的服务。更具体而言,例如,客户端计算设备602、604、606和/或608中的每一个可以是被配置为执行对话系统100并且进一步被配置为与服务器612通信以使服务器612能够通过如本文所述的gan 155中的反向传播来训练对话系统100的语义解析器114。
76.在图6所描绘的配置中,服务器612可以包括实现由服务器612执行的功能的一个或多个组件618、620和622。这些组件可以包括可以由一个或多个处理器执行的软件组件、硬件组件或其组合。应当认识到的是,各种不同的系统配置是可能的,其可以与分布式系统600不同。因此,图6中所示的实施例是用于实现实施例系统的分布式系统的一个示例,并且不旨在进行限制。
77.根据本公开的教导,用户可以使用客户端计算设备602、604、606和/或608与由服务器612提供的对话系统100的各个方面进行交互。客户端设备可以提供使客户端设备的用户能够与客户端设备交互的接口(例如,言语接口)。客户端设备还可以经由该接口向用户输出信息。虽然图6仅描绘了四个客户端计算设备,但可以支持任何数量的客户端计算设备。
78.客户端设备可以包括各种类型的计算系统,诸如pa设备、便携式手持式设备、通用计算机(诸如个人计算机和膝上型计算机)、工作站计算机、可穿戴设备、游戏系统、瘦客户端、各种消息传送设备、传感器和其它感测设备等。这些计算设备可以运行各种类型和版本的软件应用和操作系统(例如,microsoftapple或类unix操作系统、linux或类linux操作系统,诸如google chrome
tm os),包括各种移动操作系统(例如,microsoft windowswindowsandroid
tm
、palm)。便携式手持式设备可以包括蜂窝电话、智能电话(例如,)、平板电脑(例如,)、个人数字助理(pda)等。可穿戴设备可以包括google头戴式显示器和其它设备。游戏系统可以包括各种手持式游戏设备、具有互联网功能的游戏设备(例如,具有或不具有手势输入设备的microsoft游戏机、sony系统、由提供的各种游戏系统以及其它)等。客户端设备可以能够执行各种不同的应用,诸如各种与互联网相关的应用、通信应用(例如,电子邮件应用、短消息服务(sms)应用),并且可以使用各种通信协议。
79.(一个或多个)网络610可以是本领域技术人员熟悉的任何类型的网络,其可以使用多种可用协议中的任何一种来支持数据通信,包括但不限于tcp/ip(传输控制协议/互联网协议)、sna(系统网络体系架构)、ipx(互联网分组交换)、等。仅仅作为示例,(一个或多个)网络610可以是局域网(lan)、基于以太网的网络、令牌环、广域网(wan)、互联网、虚拟网络、虚拟专用网(vpn)、内联网、外联网、公共电话交换网(pstn)、红外网络、无线网络(例如,在任何电气和电子协会(ieee)802.11协议套件、和/或任何其它无线协议下操作的网络)和/或这些和/或其它网络的任意组合。
80.服务器612可以由一个或多个通用计算机、专用服务器计算机(作为示例,包括pc(个人计算机)服务器、服务器、中档服务器、大型计算机、机架安装的服务器等)、服务器场、服务器集群或任何其它适当的布置和/或组合组成。服务器612可以包括运行虚拟操作系统的一个或多个虚拟机,或者涉及虚拟化的其它计算体系架构,诸如可以被虚拟化以维护服务器的虚拟存储设备的逻辑存储设备的一个或多个灵活的池。在各种实施例中,服务器612可以适于运行提供前述公开中描述的功能的一个或多个服务或软件应用。
81.服务器612中的计算系统可以运行一个或多个操作系统,包括以上讨论的任何操作系统以及任何商用的服务器操作系统。服务器612还可以运行各种附加服务器应用和/或中间层应用中的任何一种,包括http(超文本传输协议)服务器、ftp(文件传输协议)服务器、cgi(通用网关接口)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于可从括但不限于可从(国际商业机器)等商购获得的数据库服务器。
82.在一些实施方式中,服务器612可以包括一个或多个应用以分析和整合从客户端计算设备602、604、606和608的用户接收到的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于从一个或多个第三方信息源和连续数据流接收到的馈送、更新或实时更新,其可以包括与传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视等相关的实时事件。服务器612还可以包括经由客户端计算设备602、604、606和608的一个或多个显示设备显示数据馈送和/或实时事件的一个或多个应用。
83.分布式系统600还可以包括一个或多个数据储存库614、616。在某些实施例中,这些数据储存库可以被用于存储数据210和其它信息。例如,数据储存库614、616中的一个或多个可以被用于存储种子数据210或通过本文所述的gan 155中的反向传播来训练对话系统100的语义解析器114所需的其它数据。数据储存库614、616可以驻留在各种位置。例如,由服务器612使用的数据储存库可以在服务器612本地,或者可以远离服务器612并经由基于网络或专用的连接与服务器612通信。数据储存库614、616可以是不同的类型。在某些实施例中,由服务器612使用的数据储存库可以是数据库,例如关系数据库,诸如由公司和其它供应商提供的数据库。这些数据库中的一个或多个可以适于响应于sql格式的命令来实现数据库中数据的存储、更新和检索。
84.在某些实施例中,应用还可以使用数据储存库614、616中的一个或多个来存储应用数据。由应用使用的数据储存库可以具有不同的类型,诸如,例如,键-值储存库、对象储存库或由文件系统支持的通用储存库。
85.在某些实施例中,如本文所述,通过在gan 155中的反向传播训练对话系统100的语义解析器114的全部或部分可以经由云环境作为服务提供。图7是根据某些实施例的基于云的系统环境的框图,在该环境中训练如本文所述的语义解析器114可以至少部分地作为云服务来提供。在图7中所示的实施例中,云基础设施系统702可以提供可以由用户使用一个或多个客户端设备704、706和708请求的一个或多个云服务。云基础设施系统702可以包括一个或多个计算机和/或服务器,其可以包括以上针对服务器712描述的那些计算机和/或服务器。云基础设施系统702中的计算机可以被组织为通用计算机、专用服务器计算机、
服务器场、服务器集群或任何其它适当的布置和/或组合。
86.(一个或多个)网络710可以促进客户端计算设备704、706和708与云基础设施系统702之间的通信和数据交换。(一个或多个)网络710可以包括一个或多个网络。网络可以是相同的或不同的类型。(一个或多个)网络710可以支持一种或多种通信协议,包括有线和/或无线协议,以促进通信。
87.图7中描绘的实施例仅仅是云基础设施系统的一个示例,并且不旨在进行限制。应该认识到的是,在一些其它实施例中,云基础设施系统702可以具有比图7所示的组件更多或更少的组件、可以组合两个或更多个组件,或者可以具有不同的组件配置或布置。例如,虽然图7描绘了三个客户端计算设备,但是在替代实施例中可以支持任何数量的客户端计算设备。
88.术语“云服务”通常用于指由服务提供商的系统(例如,云基础设施系统702)根据需要并且经由诸如互联网之类的通信网络使用户可使用的服务。典型地,在公共云环境中,组成云服务提供商系统的服务器和系统与客户自己的内部服务器和系统不同。云服务提供商的系统由云服务提供商管理。客户因此可以利用由云服务提供商提供的云服务,而不必为服务购买单独的许可证、支持或硬件和软件资源。例如,云服务提供商的系统可以托管应用,并且用户可以经由互联网按需订购和使用应用,而用户不必购买用于执行应用的基础设施资源。云服务旨在提供对应用、资源和服务的轻松、可扩展的访问。几个提供商提供云服务。例如,由加利福尼亚州redwood shores的公司提供了几种云服务,诸如中间件服务、数据库服务、java云服务等。
89.在某些实施例中,云基础设施系统702可以使用诸如软件即服务(saas)模型、平台即服务(paas)模型、基础设施即服务(iaas)模型以及包括混合服务模型的其它模型之类的不同模型提供一个或多个云服务。云基础设施系统702可以包括一套应用、中间件、数据库以及使得能够供给各种云服务的其它资源。
90.saas模型使得应用或软件能够作为服务通过如互联网的通信网络交付给客户,而客户不必为底层应用购买硬件或软件。例如,saas模型可以用于为客户提供对由云基础设施系统702托管的按需应用的访问。由公司提供的saas服务的示例包括但不限于用于人力资源/资本管理、客户关系管理(crm)、企业资源计划(erp)、供应链管理(scm)、企业绩效管理(epm)、分析服务、社交应用及其它的各种服务。
91.iaas模型通常用于向客户提供基础设施资源(例如,服务器、存储装置、硬件和联网资源)作为云服务,以提供弹性计算和存储能力。公司提供了各种iaas服务。
92.paas模型通常用于提供平台和环境资源作为服务,其使得客户能够开发、运行和管理应用和服务,而客户不必采购、构建或维护此类资源。由公司提供的paas服务的示例包括但不限于oracle java云服务(jcs)、oracle数据库云服务(dbcs)、数据管理云服务、各种应用开发解决方案服务,以及其它服务。
93.云服务通常基于按需自助服务、基于订阅、弹性可缩放、可靠、高度可用和安全的方式提供。例如,客户可以经由订阅订单订购由云基础设施系统702提供的一个或多个服务。云基础设施系统702然后执行处理以提供客户的订阅订单中所请求的服务。例如,客户可以订阅由对话系统100以交谈形式提供的信息服务或其它服务。云基础设施系统702可以
被配置为提供一种或甚至多种云服务。
94.云基础设施系统702可以经由不同的部署模型来提供云服务。在公共云模型中,云基础设施系统702可以由第三方云服务提供商拥有,并且云服务被提供给任何普通公众客户,其中客户可以是个人或企业。在某些其它实施例中,在私有云模型下,可以在组织内(例如,在企业组织内)操作云基础设施系统702,并向组织内的客户提供服务。例如,客户可以是企业的各个部门,诸如人力资源部门、工资部门等,甚至是企业内的个人。在某些其它实施例中,在社区云模型下,云基础设施系统702和所提供的服务可以由相关社区中的几个组织共享。也可以使用各种其它模型,诸如上面提到的模型的混合。
95.客户端计算设备704、706和708可以是不同类型的(诸如图6中描绘的客户端计算设备602、604、606和608)并且可以能够操作一个或多个客户端应用。用户可以使用客户端计算设备与云基础设施系统702交互,诸如请求由云基础设施系统702提供的服务。攻击者可能使用客户端设备发送恶意请求。
96.在一些实施例中,由云基础设施系统702执行的处理可以涉及大数据分析。这种分析可能涉及使用、分析和操纵大型数据集,以检测和可视化数据内的各种趋势、行为、关系等。这种分析可以由一个或多个处理器执行、可能并行处理数据、使用数据执行仿真等。例如,大数据分析可以由云基础设施系统702执行,以通过如本文所述的gan 155中的反向传播来提供语义解析器114的训练。用于这种分析的数据可以包括结构化数据(例如,存储在数据库中或根据结构化模型结构化的数据)和/或非结构化数据(例如,数据blob(二进制大对象))。
97.如在图7的实施例中所描绘的,云基础设施系统702可以包括基础设施资源730,其用于促进由云基础设施系统702提供的各种云服务的供给。基础设施资源730可以包括例如处理资源、存储或存储器资源、联网资源等。
98.在某些实施例中,为了促进这些资源的高效供给以支持由云基础设施系统702为不同客户提供的各种云服务,可以将基础设施资源730捆绑成资源或资源模块的集合(也称为“群聚(pod)”)。每个资源模块或群聚可以包括一种或多种类型的资源的预先集成和优化的组合。在某些实施例中,可以为不同类型的云服务预先供给不同的群聚。例如,可以为数据库服务供给第一组群聚,可以为java服务供给第二组群聚,其中第二组群聚可以包括与第一组群聚中的群聚不同的资源组合。对于一些服务,可以在服务之间共享为供给服务而分配的资源。
99.云基础设施系统702本身可以内部使用服务732,服务732由云基础设施系统702的不同组件共享并且促进云基础设施系统702的服务供给。这些内部共享的服务可以包括但不限于安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、用于启用云支持的服务、电子邮件服务、通知服务、文件传输服务等。
100.云基础设施系统702可以包括多个子系统。这些子系统可以用软件或硬件或其组合来实现。如图7所示,子系统可以包括用户接口子系统712,该用户接口子系统712使得云基础设施系统702的用户或客户能够与云基础设施系统702交互。用户接口子系统712可以包括各种不同的界面,诸如web界面714、在线商店界面716(其中由云基础设施系统702提供的云服务被广告并且可由消费者购买)和其它界面718。例如,客户可以使用客户端设备使
用接口714、716和718中的一个或多个来请求(服务请求734)由云基础设施系统702提供的一个或多个服务。例如,客户可以访问在线商店、浏览由云基础设施系统702提供的云服务,以及对由客户希望订阅的由云基础设施系统702提供的一项或多项服务下订单。服务请求可以包括识别客户的信息以及客户期望订阅的一项或多项服务。
101.在某些实施例中,诸如图7所示的实施例,云基础设施系统702可以包括被配置为处理新订单的订单管理子系统(oms)720。作为这个处理的一部分,oms 720可以被配置为:为客户创建账户(如果尚未创建);接收来自客户的账单和/或会计信息,该账单和/或账单信息将用于针对向客户提供所请求的服务向客户计费;验证客户信息;在验证后,为客户预订订单;已经编排各种工作流程以准备用于供给的订单。
102.一旦被正确地验证,oms 720就可以调用订单供给子系统(ops)724,其被配置为为订单供给资源,包括处理资源、存储器资源和联网资源。供给可以包括为订单分配资源,以及配置资源以促进由客户订单所请求的服务。为订单供给资源的方式和供给资源的类型可以取决于客户已订购的云服务的类型。例如,根据一个工作流程,ops724可以被配置为确定所请求的特定云服务,并且识别可能已经针对该特定云服务而被预先配置的多个群聚。为订单分配的群聚的数量可以取决于所请求的服务的大小/数量/级别/范围。例如,可以基于服务所支持的用户的数量、正在请求的服务的持续时间等来确定要分配的群聚的数量。然后,可以针对特定的请求客户定制所分配的群聚,以提供所请求的服务。
103.云基础设施系统702可以向请求客户发送响应或通知744,以指示所请求的服务何时准备就绪。在一些情况下,可以将信息(例如,链接)发送给客户,使得客户能够开始使用和利用所请求的服务的益处。
104.云基础设施系统702可以向多个客户提供服务。对于每个客户,云基础设施系统702负责管理与从客户接收到的一个或多个订阅订单相关的信息、维护与订单相关的客户数据,以及向客户提供所请求的服务。云基础设施系统702还可以收集关于客户对已订阅的服务的使用的使用统计信息。例如,可以针对使用的存储量、传输的数据量、用户的数量以及系统正常运行时间和系统停机时间量等收集统计信息。该使用信息可以用于向客户计费。计费可以例如按月周期进行。
105.云基础设施系统702可以并行地向多个客户提供服务。云基础设施系统702可以存储这些客户的信息,包括可能的专有信息。在某些实施例中,云基础设施系统702包括身份管理子系统(ims)728,其被配置为管理客户的信息并提供所管理的信息的分离,使得与一个客户相关的信息不可被另一个客户访问。ims 728可以被配置为提供各种与安全相关的服务,诸如身份服务,诸如信息访问管理、认证和授权服务、用于管理客户身份和角色及相关能力的服务,等等。
106.图8是可以被用于实现某些实施例的示例计算机系统800的框图。例如,在一些实施例中,计算机系统800可以被用于实现本文描述的任何系统、子系统和组件。例如,如本文所述,多个主机机器可以在gan 155中提供和实现对话系统100的语义解析器114的训练。诸如计算机系统800之类的计算机系统可以被用作主机。如图8中所示,计算机系统800包括各种子系统,包括经由总线子系统802与多个其它子系统通信的处理子系统804。这些其它子系统可以包括处理加速单元806、i/o子系统808、存储子系统818和通信子系统824。存储子系统818可以包括非暂态计算机可读存储介质,其包括存储介质822和系统存储器810。
107.总线子系统802提供用于使计算机系统800的各种组件和子系统按照期望彼此通信的机制。虽然总线子系统802被示意性地示为单条总线,但是总线子系统的替代实施例可以利用多条总线。总线子系统802可以是几种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、使用任何各种总线体系架构的局部总线等。例如,此类体系架构可以包括工业标准体系架构(isa)总线、微通道体系架构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)局部总线和外围组件互连(pci)总线,其可以实现为根据ieee p1386.1标准制造的夹层(mezzanine)总线,等等。
108.处理子系统804控制计算机系统800的操作,并且可以包括一个或多个处理器、专用集成电路(asic)或现场可编程门阵列(fpga)。处理器可以包括单核或多核处理器。可以将计算机系统800的处理资源组织成一个或多个处理单元832、834等。处理单元可以包括一个或多个处理器、来自相同或不同处理器的一个或多个核心、核心和处理器的组合、或核心和处理器的其它组合。在一些实施例中,处理子系统804可以包括一个或多个专用协处理器,诸如图形处理器、数字信号处理器(dsp)等。在一些实施例中,处理子系统804的一些或全部可以使用定制电路来实现,诸如专用集成电路(asic)或现场可编程门阵列(fpga)。
109.在一些实施例中,处理子系统804中的处理单元可以执行存储在系统存储器810中或计算机可读存储介质822上的指令。在各个实施例中,处理单元可以执行各种程序或代码指令,并且可以维护多个并发执行的程序或进程。在任何给定的时间,要执行的程序代码中的一些或全部可以驻留在系统存储器810中和/或计算机可读存储介质822上,包括可能在一个或多个存储设备上。通过适当的编程,处理子系统804可以提供上述各种功能。在计算机系统800正在执行一个或多个虚拟机的情况下,可以将一个或多个处理单元分配给每个虚拟机。
110.在某些实施例中,可以可选地提供处理加速单元806,以用于执行定制的处理或用于卸载由处理子系统804执行的一些处理,从而加速由计算机系统800执行的整体处理。
111.i/o子系统808可以包括用于向计算机系统800输入信息和/或用于从或经由计算机系统800输出信息的设备和机制。一般而言,术语“输入设备”的使用旨在包括用于向计算机系统800输入信息的所有可能类型的设备和机制。用户接口输入设备可以包括,例如,键盘、诸如鼠标或轨迹球之类的指向设备、并入到显示器中的触摸板或触摸屏、滚轮、点击轮、拨盘、按钮、开关、小键盘、带有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备还可以包括使用户能够控制输入设备并与之交互的诸如microsoft运动传感器的运动感测和/或姿势识别设备、microsoft360游戏控制器、提供用于接收使用姿势和口语命令的输入的界面的设备。用户接口输入设备还可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍摄图片和/或进行菜单选择时的“眨眼”)并将眼睛姿势转换为到输入设备(例如,google)的输入的眨眼检测器。此外,用户接口输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,导航器)交互的语音识别感测设备。
112.用户接口输入设备的其它示例包括但不限于,三维(3d)鼠标、操纵杆或指示杆、游戏板和图形平板、以及音频/视频设备,诸如扬声器、数字相机、数字摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3d扫描仪、3d打印机、激光测距
仪、以及眼睛注视跟踪设备。此外,用户接口输入设备可以包括,例如,医疗成像输入设备,诸如计算机断层摄影、磁共振成像、位置发射断层摄影、以及医疗超声检查设备。用户接口输入设备也可以包括,例如,音频输入设备,诸如midi键盘、数字乐器等。
113.一般而言,术语“输出设备”的使用旨在包括所有可能类型的设备和用于从计算机系统800向用户或其它计算机输出信息的机制。用户接口输出设备可以包括显示子系统、指示器灯或诸如音频输出设备的非可视显示器等。显示子系统可以是阴极射线管(crt)、诸如利用液晶显示器(lcd)或等离子体显示器的平板设备、投影设备、触摸屏等。例如,用户接口输出设备可以包括但不限于,可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备和调制解调器。
114.存储子系统818提供用于存储由计算机系统800使用的信息和数据的储存库或数据存储库。存储子系统818提供了用于存储提供某些实施例的功能的基本编程和数据构造的有形非暂态计算机可读存储介质。存储子系统818可以存储软件(例如,程序、代码模块、指令),该软件在由处理子系统804执行时提供上述功能。软件可以由处理子系统804的一个或多个处理单元执行。存储子系统818还可以提供用于存储根据本公开的教导使用的数据的储存库。
115.存储子系统818可以包括一个或多个非暂态存储器设备,包括易失性和非易失性存储器设备。如图8所示,存储子系统818包括系统存储器810和计算机可读存储介质822。系统存储器810可以包括多个存储器,包括用于在程序执行期间存储指令和数据的易失性主随机存取存储器(ram)以及其中存储有固定指令的非易失性只读存储器(rom)或闪存。在一些实施方式中,基本输入/输出系统(bios)可以典型地存储在rom中,该基本输入/输出系统(bios)包含有助于例如在启动期间在计算机系统800内的元件之间传递信息的基本例程。ram通常包含当前由处理子系统804操作和执行的数据和/或程序模块。在一些实施方式中,系统存储器810可以包括多种不同类型的存储器,诸如静态随机存取存储器(sram)、动态随机存取存储器(dram)等。
116.作为示例而非限制,如图8所示,系统存储器810可以加载正在被执行的可以包括各种应用(诸如web浏览器、中间层应用、关系型数据库管理系统(rdbms)等)的应用程序812、程序数据814和操作系统816。作为示例,操作系统816可以包括各种版本的microsoftapple和/或linux操作系统、各种商用或类unix操作系统(包括但不限于各种gnu/linux操作系统、googleos等)和/或移动操作系统,诸如ios、phone、os、os、os操作系统,以及其它操作系统。
117.在某些实施例中,如本文所述,在gan 155中实现对话系统100的语义解析器114的训练的软件指令或代码可以在系统存储器810中执行。
118.计算机可读存储介质822可以存储提供一些实施例的功能的编程和数据构造。计算机可读存储介质822可以为计算机系统800提供计算机可读指令、数据结构、程序模块和其它数据的存储。当由处理子系统804执行时,提供上述功能的软件(程序、代码模块、指令)可以存储在存储子系统818中。作为示例,计算机可读存储介质822可以包括非易失性存储器,诸如硬盘驱动器、磁盘驱动器、诸如cd rom、dvd、(蓝光)盘或其它光学介
质的光盘驱动器。计算机可读存储介质822可以包括但不限于,驱动器、闪存存储器卡、通用串行总线(usb)闪存驱动器、安全数字(sd)卡、dvd盘、数字视频带等。计算机可读存储介质822也可以包括基于非易失性存储器的固态驱动器(ssd)(诸如基于闪存存储器的ssd、企业闪存驱动器、固态rom等)、基于易失性存储器的ssd(诸如基于固态ram、动态ram、静态ram、dram的ssd、磁阻ram(mram)ssd),以及使用基于dram和基于闪存存储器的ssd的组合的混合ssd。
119.在某些实施例中,存储子系统818还可以包括计算机可读存储介质读取器820,该计算机可读存储介质读取器820还可以连接到计算机可读存储介质822。读取器820可以接收并被配置为从诸如盘、闪存驱动器等存储器设备中读取数据。
120.在某些实施例中,计算机系统800可以支持虚拟化技术,包括但不限于处理和存储器资源的虚拟化。例如,计算机系统800可以提供用于执行一个或多个虚拟机的支持。在某些实施例中,计算机系统800可以执行诸如促进虚拟机的配置和管理的管理程序之类的程序。可以为每个虚拟机分配存储器、计算(例如,处理器、核心)、i/o和联网资源。每个虚拟机通常独立于其它虚拟机运行。虚拟机通常运行其自己的操作系统,该操作系统可以与由计算机系统800执行的其它虚拟机执行的操作系统相同或不同。因此,计算机系统800可以潜在地同时运行多个操作系统。
121.通信子系统824提供到其它计算机系统和网络的接口。通信子系统824用作用于从计算机系统800接收数据以及向其它系统传输数据的接口。例如,通信子系统824可以使得计算机系统800能够经由互联网建立到一个或多个客户端设备的通信信道,以用于从客户端设备接收信息以及向客户端设备发送信息。
122.通信子系统824可以支持有线和/或无线通信协议两者。例如,在某些实施例中,通信子系统824可以包括用于(例如,使用蜂窝电话技术、高级数据网络技术(诸如3g、4g或edge(全球演进的增强数据速率)、wifi(ieee 802.xx族标准)、或其它移动通信技术、或其任意组合)接入无线语音和/或数据网络的射频(rf)收发器组件、全球定位系统(gps)接收器组件和/或其它组件。在一些实施例中,作为无线接口的附加或替代,通信子系统824可以提供有线网络连接(例如,以太网)。
123.通信子系统824可以以各种形式接收和传输数据。例如,在一些实施例中,除了其它形式之外,通信子系统824还可以以结构化和/或非结构化的数据馈送826、事件流828、事件更新830等形式接收输入通信。例如,通信子系统824可以被配置为实时地从社交媒体网络的用户和/或诸如馈送、更新、诸如丰富站点摘要(rss)馈送的web馈送的其它通信服务接收(或发送)数据馈送826,和/或来自一个或多个第三方信息源的实时更新。
124.在某些实施例中,通信子系统824可以被配置为以连续数据流的形式接收本质上可能是连续的或无界的没有明确结束的数据,其中连续数据流可以包括实时事件的事件流828和/或事件更新830。生成连续数据的应用的示例可以包括例如传感器数据应用、金融报价机、网络性能测量工具(例如网络监视和流量管理应用)、点击流分析工具、汽车流量监视等。
125.通信子系统824也可以被配置为将数据从计算机系统800传送到其它计算机系统
或网络。数据可以以各种不同的形式传送给一个或多个数据库,诸如结构化和/或非结构化数据馈送826、事件流828、事件更新830等,该一个或多个数据库可以与耦合到计算机系统800的一个或多个流传输数据源进行通信。
126.计算机系统800可以是各种类型中的一种,包括手持便携式设备(例如,蜂窝电话、计算平板、pda)、可穿戴设备(例如,google头戴式显示器)、个人计算机、工作站、大型机、信息站、服务器机架或任何其它数据处理系统。由于计算机和网络不断变化的性质,对图8中绘出的计算机系统800的描述旨在仅仅作为具体示例。具有比图8中所绘出的系统更多或更少组件的许多其它配置是可能的。基于本文所提供的公开内容和教导,本领域普通技术人员将理解实现各种实施例的其它方式和/或方法。
127.虽然已经描述了特定的实施例,但是各种修改、变更、替代构造以及等同物都是可能的。实施例不限于在某些特定数据处理环境内的操作,而是可以在多个数据处理环境内自由操作。此外,虽然已经使用一系列特定的事务和步骤描述了某些实施例,但是对于本领域技术人员来说显而易见的是,这并不旨在进行限制。虽然一些流程图将操作描述为顺序处理,但是许多操作可以并行或同时执行。此外,操作的次序可以被重新布置。处理可能具有图中未包括的其它步骤。上述实施例的各种特征和方面可以被单独使用或联合使用。
128.另外,虽然已经使用硬件和软件的特定组合描述了某些实施例,但是应该认识到的是,硬件和软件的其它组合也是可能的。某些实施例可以仅用硬件或仅用软件或其组合来实现。本文描述的各种处理可以以任何组合在相同的处理器或不同的处理器上实现。
129.在将设备、系统、组件或模块描述为被配置为执行某些操作或功能的情况下,这样的配置可以通过以下方式来实现,例如,通过设计电子电路来执行操作、通过对可编程电子电路(诸如微处理器)进行编程来执行操作,诸如通过执行计算机指令或代码,或处理器或核心被编程为执行存储在非暂态存储介质上的代码或指令,或其任意组合来执行操作。进程可以使用各种技术进行通信,包括但不限于用于进程间通信的常规技术,并且不同对的进程可以使用不同的技术,或者同一对进程可以在不同时间使用不同的技术。
130.在本公开中给出了具体细节以提供对实施例的透彻理解。但是,可以在没有这些具体细节的情况下实践实施例。例如,已经示出了众所周知的电路、处理、算法、结构和技术,而没有不必要的细节,以避免使实施例模糊。本描述仅提供示例实施例,并且不旨在限制其它实施例的范围、适用性或配置。相反,实施例的先前描述将为本领域技术人员提供用于实现各种实施例的使能描述。可以对元件的功能和布置进行各种改变。
131.因此,说明书和附图应被认为是说明性的而不是限制性的。但是,将显而易见的是,在不脱离权利要求书所阐述的更广泛的精神和范围的情况下,可以对其进行添加、减少、删除以及其它修改和改变。因此,虽然已经描述了具体的实施例,但是这些实施例并不旨在进行限制。各种修改和等同形式均在所附权利要求的范围内。修改和/或变化包括所公开特征的任何相关组合。
132.根据实施例,所公开的特征总结如下:
133.示例1.提供了一种用于训练对话系统的语义解析器的方法,该方法包括:访问包括种子元组的种子数据,种子数据的每个种子元组包括相应的种子话语和与相应的种子话语对应的相应的种子逻辑形式;以及在可生性对抗网络(gan)中训练语义解析器和鉴别器,其中,在gan中,语义解析器进行学习以将话语映射到逻辑形式并且鉴别器进行学习以识别
真实的逻辑形式,其中语义解析器可用作对话系统的一部分。
134.示例2.示例1的方法,其中在gan中训练语义解析器和鉴别器包括:向语义解析器输入随机话语;由语义解析器基于随机话语确定生成的逻辑形式;向鉴别器输入包括生成的元组和从种子数据中选择的种子元组的子集的元组,其中生成的元组包括随机话语和生成的逻辑形式;以及由鉴别器确定元组的预测的真实性。
135.示例3.示例2的方法,其中在gan中训练语义解析器和鉴别器还包括:将元组的预测的真实性与实际真实性进行比较;以及基于将元组的预测的真实性与实际真实性进行比较来更新鉴别器。
136.示例4.示例3的方法,其中元组中一元组的实际真实性基于该元组是种子数据中的种子元组。
137.示例5.示例3的方法,其中在gan中训练语义解析器和鉴别器还包括:将种子话语输入到语义解析器,其中种子话语选自种子元组;由语义解析器确定基于种子话语的附加生成的逻辑形式;向鉴别器输入附加生成的元组,包括来自种子数据的种子话语和附加生成的逻辑形式;以及由鉴别器确定附加生成的元组的附加预测的真实性。
138.示例6.示例5的方法,其中在gan中训练语义解析器和鉴别器还包括:将附加生成的元组的附加预测的真实性与选择的真实性进行比较;以及基于将附加生成的元组的附加预测的真实性与选择的真实性进行比较来更新语义解析器。
139.示例7.示例6的方法,其中附加生成的元组的选择的真实性指示附加生成的元组是真实的。
140.示例8.示例1的方法,其中在gan中训练语义解析器和鉴别器包括:在语义解析器是静态的时,基于来自语义解析器的输出用种子数据的第一部分训练鉴别器,以确定更新后的鉴别器;以及在更新后的鉴别器是静态的时,基于来自更新后的鉴别器的输出用种子数据的第二部分训练语义解析器,以确定更新后的语义解析器。
141.示例9.示例8的方法,其中语义解析器是序列到序列神经网络,并且鉴别器是二元分类器。
142.示例10.示例1的方法,还包括:由对话系统接收言语输入;将自动言语识别子系统应用于言语输入以确定话语;将语义解析器应用于话语以确定逻辑形式;分析逻辑形式以生成响应于言语输入的响应文本;以及将文本到言语子系统应用于对文本的响应以确定用于对话系统的音频输出。
143.示例11.一种训练系统,包括:数据输入子系统,被配置为访问包括种子元组的种子数据,种子数据的每个种子元组包括相应的种子话语和与相应的种子话语对应的相应的种子逻辑形式;以及可生性对抗网络(gan),包括:鉴别器,被配置为进行学习以识别真实的逻辑形式;以及语义解析器,被配置为进行学习以将话语映射到逻辑形式;误差最小化模块,被配置为基于来自鉴别器的输出来训练语义解析器,该鉴别器对语义解析器的输出的真实性进行分类,其中语义解析器可用作对话系统的一部分。
144.示例12.示例11的训练系统,其中:数据输入子系统被配置为向语义解析器输入随机话语;语义解析器被配置为基于随机话语生成逻辑形式;数据输入子系统被配置为向鉴别器输入元组,该元组包括生成的元组和从种子数据中选择的种子元组的子集,其中生成的元组包括随机话语和生成的逻辑形式;并且鉴别器被配置为预测元组的真实性。
145.示例13.示例12的训练系统,其中误差最小化模块还被配置为:将元组的预测的真实性与实际真实性进行比较;以及基于将元组的预测的真实性与实际真实性进行比较来更新鉴别器。
146.示例14.示例13的方法,其中元组中一元组的实际真实性基于该元组是种子数据中的种子元组。
147.示例15.示例13的训练系统,其中:数据输入子系统还被配置为将种子话语输入到语义解析器,其中种子话语选自种子元组;语义解析器被配置为基于种子话语确定附加生成的逻辑形式;数据输入子系统被配置为向鉴别器输入附加生成的元组,包括来自种子数据的种子话语和附加生成的逻辑形式;并且鉴别器被配置为确定附加生成的元组的附加预测的真实性。
148.示例16.示例15的训练系统,其中误差最小化模块还被配置为:将附加生成的元组的附加预测的真实性与选择的真实性进行比较;以及基于将附加生成的元组的附加预测的真实性与选择的真实性进行比较来更新语义解析器。
149.示例17.示例16的训练系统,其中附加生成的元组的选择的真实性指示附加生成的元组是真实的。
150.示例18.示例11的训练系统,其中语义解析器是序列到序列神经网络,并且鉴别器是二元分类器。
151.示例19.一种用于训练对话系统的语义解析器的计算机程序产品,该计算机程序产品包括其上实施有程序指令的计算机可读存储介质,该程序指令可由一个或多个处理器执行以使一个或多个处理器执行一种方法,包括:访问包括种子元组的种子数据,种子数据的每个种子元组包括相应的种子话语和与相应的种子话语对应的相应的种子逻辑形式;基于可生性对抗网络(gan)的语义解析器训练gan的鉴别器,其中训练鉴别器包括:向语义解析器输入随机话语;由语义解析器基于随机话语确定生成的逻辑形式;向鉴别器输入包括生成的元组和从种子数据中选择的种子元组的子集的元组,其中生成的元组包括随机话语和生成的逻辑形式;由鉴别器确定元组的预测的真实性;将元组的预测的真实性与实际真实性进行比较;以及基于将元组的预测的真实性与实际真实性进行比较来更新鉴别器;以及基于gan的鉴别器来训练gan的语义解析器,其中训练语义解析器包括:向语义解析器输入种子话语,其中种子话语选自种子元组;由语义解析器确定基于种子话语的附加生成的逻辑形式;向鉴别器输入附加生成的元组,包括来自种子数据的种子话语和附加生成的逻辑形式;由鉴别器确定附加生成的元组的附加预测的真实性;将附加生成的元组的附加预测的真实性与选择的真实性进行比较;以及基于将附加生成的元组的附加预测的真实性与选择的真实性进行比较来更新语义解析器,其中语义解析器可被于将话语映射到对话系统中的逻辑形式。
152.示例20.示例19的计算机程序产品,其中:元组中一元组的实际真实性基于该元组是种子数据中的种子元组;并且附加生成的元组的选择的真实性指示附加生成的元组是真实的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献