Using Generative Adversarial Networks to Train Semantic Parsers in Dialogue Systems

JP7909571B2Active Publication Date: 2026-08-21ORACLE INT CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2024205998
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-09-11
Filing Date
2024-11-27
Publication Date
2026-08-21
Estimated Expiration
2040-08-13

Smart Images

  • Figure 0007909571000001
    Figure 0007909571000001
  • Figure 0007909571000002
    Figure 0007909571000002
  • Figure 0007909571000003
    Figure 0007909571000003
Patent Text Reader

Abstract

To provide a method for using a generative adversarial network (GAN) to train a semantic parser of a dialog system, a training system, a dialog system, and a program.SOLUTION: The method includes: accessing seed data including seed tuples, each of the seed tuples including a respective seed utterance and a respective seed logical form corresponding to the respective seed utterance; and training a semantic parser and a discriminator in a GAN. The semantic parser learns to map utterances to logical forms based on output from the discriminator, and the discriminator learns to recognize authentic logical forms based on output from the semantic parser. The semantic parser may then be integrated into a dialog system.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Cross - Reference to Related Applications This disclosure claims priority to U.S. Provisional Application Serial No. 62 / 898,682, filed on September 11, 2019, for "Utilizing a Generative Adversarial Network to Train a Semantic Parser". The provisional application is hereby incorporated by reference in its entirety.

[0002] Technical Field This disclosure relates to dialogue systems, and more particularly, to a method for using a generative adversarial network to train a semantic parser for use in a dialogue system such that the semantic parser effectively learns to generate a logical form based on the adversarial situation of the generative adversarial network.

Background Art

[0003] An increasing number of devices now enable a user to interact directly with the device using voice or spoken language. For example, a user can speak to such a device in natural language, and in doing so, the user can ask a question or make a statement requesting that an action be performed. In response, the device uses acoustic output to perform the requested action or answer the user's question. Since interacting directly using voice is a more natural and intuitive way for a person to communicate with their surroundings, the popularity of such voice - based systems is growing at an astronomical rate.

Summary of the Invention

[0004] A dialogue system is a voice-enabled system that can interact with a user via voice input and sound output, etc. Typically, a dialogue system includes one or more machine learning (ML) models, such as a semantic parser. This disclosure relates to a method for using a generative adversarial network (GAN) to train a semantic parser in a dialogue system. For example, in some embodiments, the GAN includes a semantic parser as its generator, and further includes a discriminator and an error minimization module. In some embodiments, the semantic parser and the discriminator are ML models that are trained adversarially so that both ML models are improved together.

[0005] In some embodiments, seed data is used as training input to the GAN. The seed data may contain a set of seed tuples, each seed tuple containing an utterance and a logical form corresponding to the utterance. One embodiment described herein trains both the semantic parser and the classifier by first fixing the semantic parser while training the classifier based on the semantic parser output, then fixing the classifier while training the semantic parser based on the classifier output, and repeating this until the seed data is exhausted.

[0006] While the semantic parser is fixed and therefore static, it may generate logical forms based on randomly selected utterances. Each pair of randomly selected utterances and the corresponding logical form, such as that generated by the semantic parser, may together form a generated tuple. The discriminator takes the generated tuple as input. The classifier may receive the tuple along with a seed tuple. For each such tuple, the classifier may output (i.e. predict) the probability that the tuple is genuine, or in other words, the probability that the tuple is the seed tuple. The error minimization module may generate a training signal to train the classifier based on the difference between the classifier's prediction and an exact distribution (i.e., an exact sequence of values) indicating whether the tuple is genuine.

[0007] If the classifier is fixed and therefore static, the semantic parser may generate logical forms based on utterances selected from seed tuples of seed data. Each pair of utterances from the seed data and a corresponding logical form, such as one generated by the semantic parser, may together form a tuple. The classifier may receive such tuples as input and, for each tuple, may predict the probability that the tuple is authentic. An error minimization module may generate a training signal to train the semantic parser based on the difference between the classifier's actual prediction of authenticity and a desired set of predictions in which all generated logical forms are predicted to be authentic. In other words, the semantic parser is trained to trick the classifier into believing that all generated logical forms are authentic.

[0008] As a result, the semantic parser and the classifier may be trained together as components of the GAN, with the semantic parser learning to generate logical forms and the classifier learning to recognize logical forms. Eventually, the classifier improves, and therefore the semantic parser improves, until the semantic parser becomes so good at generating logical forms that the generated logical forms become indistinguishable from those belonging to the seed data. In this way, the semantic parser is trained to generate logical forms based on utterances.

[0009] In other embodiments, the dialogue system may include a voice input module for receiving voice input, a voice output module for outputting voice output to the user, and a dialogue processing module for performing or causing to perform one or more actions based on the interpretation of the voice input and preparing an appropriate response to the user. The dialogue processing module may utilize a semantic parser obtained by using the above-described method for using a GAN to train the semantic parser of the dialogue system.

[0010] The matters described above, along with other features and embodiments, will become clearer with reference to the following specification, claims, and accompanying drawings. [Brief explanation of the drawing]

[0011] [Figure 1] This is a diagram of a dialogue system incorporating a semantic parser trained in a generative adversarial network, according to one embodiment described herein. [Figure 2] This is a diagram of a training system configured to train a semantic parser and a discriminator in a generative adversarial network, according to one embodiment described herein. [Figure 3] This diagram illustrates a method for training a semantic parser along with a discriminator in a generative adversarial network, according to one embodiment described herein. [Figure 4] This figure illustrates a method for training a classifier as part of a training round in the method of Figure 3, according to one embodiment described herein. [Figure 5] This figure illustrates a method for training a semantic parser as part of a training round in the method shown in Figure 3, according to one embodiment described herein. [Figure 6] This is a diagram of a distributed system for realizing one embodiment described here. [Figure 7]This is a block diagram of a cloud-based system environment in which training a semantic parser in a generative adversarial network can be provided at least partially as a cloud service, according to one embodiment described herein. [Figure 8] This is a block diagram of an exemplary computer system that may be used to implement one embodiment described herein. [Modes for carrying out the invention]

[0012] In the following description, specific details are given for illustrative purposes to provide a complete understanding of a particular embodiment. However, it will be apparent that various embodiments can be practiced without these specific details. The drawings and description are not intended to be limiting. The word “exemplary” is used herein to mean “serving as an example, case, or illustration.” No embodiment or design described herein as “exemplary” or “example” should be construed as being preferable or advantageous over other embodiments or designs.

[0013] Voice-enabled systems, which can interact with a user via voice input and acoustic output, also known as voice output, can take on various forms. For example, such systems may be offered as standalone devices, digital or virtual assistants, voice-enabled services, and so on. In each of these forms, the system can receive voice input, understand the voice input, generate a response or take an action in response to the voice input, and output the response using the acoustic output. In some embodiments, the conversational functionality in such a voice-enabled system is provided by a conversational system or infrastructure ("conversational system"). The conversational system is configured to receive voice input, interpret the voice input, maintain the conversation, possibly take or cause to take one or more actions based on the interpretation of the voice input, prepare an appropriate response, and output the response to the user using the acoustic output.

[0014] Traditionally, dialogue systems have included various machine learning (ML) models, and large amounts of training data are required to train these various ML models within the dialogue system. One such ML model is the semantic parser subsystem, also known as the semantic parser. Generally, the semantic parser receives utterances representing speech input provided by the user, where the utterances are textual representations of natural language. The semantic parser maps these utterances to logical forms, which are representations of the utterances that are converted into a logical language conforming to an established grammar and are therefore parsable by the dialogue manager subsystem of the dialogue system. The dialogue manager subsystem then parses and processes the logical forms to determine how to respond.

[0015] To train a semantic parser subsystem, the training system associated with the dialogue system typically requires a large number of tuples, each containing an utterance (e.g., a textual representation of natural language) and its corresponding logical form. If an insufficient amount of training data is used, the semantic parser may not be as effective as desired, potentially leading to errors in the logical form and, consequently, in the dialogue system's workflow. As a result of these errors in the logical form, the dialogue manager subsystem may be unable to generate appropriate responses to the user.

[0016] A Generative Adversarial Network (GAN) is an architecture that trains generators and classifiers in an adversarial manner. GANs are typically used in image analysis, particularly in the field of machine vision. In an exemplary conventional GAN, an image generator produces images (e.g., images of faces) that are intended to belong to a particular class, and a classifier determines whether the generated image truly belongs to that class. By comparing the outputs of the image generator and classifier to the exact distribution of the outputs, the GAN provides the image generator and classifier with training signals to train them. The GAN assumes that the available training data is for each individual training This is particularly useful when the data set is smaller than ideal, because adversarial properties can lead to effective training using a relatively small set of training data.

[0017] In some embodiments of the training systems described herein, the semantic parser of the dialogue system is trained in a GAN. Specifically, the semantic parser may behave as a generator in the GAN and thus learn to generate logical forms, and the discriminator may learn to distinguish between genuine and non-genuine logical forms. An error minimization module may apply one or more objective functions to provide training signals for training the semantic parser and the discriminator. After training, the semantic parser may be used as part of the dialogue system to map utterances to logical forms. This embodiment of training the semantic parser may be more effective than conventional methods of training the semantic parser individually due to the adversarial nature of training in a GAN.

[0018] Figure 1 shows an example of a dialogue system 100 according to one embodiment described herein, utilizing a semantic parser 114 trained in GAN155. The dialogue system 100 is configured to receive a voice input 104, also called a voice input, from a user 102, through a voice input module or the like. For example, the voice input module receives a voice input from a microphone or other device capable of acquiring voice or speech. The dialogue system 100 may then interpret the voice input 104. The dialogue system 100 may maintain a dialogue with the user 102 and may take or cause to take one or more actions based on the interpretation of the voice input 104, perhaps by using a dialogue processing module that utilizes the semantic parser 114. The dialogue system 100 may prepare an appropriate response, perhaps by using a dialogue processing module, and may output the response to the user through a voice output module or the like using a voice or speech output, also called an acoustic output. For example, the voice output module may be a speaker or other device capable of outputting voice or speech. The interactive system 100 is a dedicated computing system that may be used to process large amounts of data using a large number of computer processing cycles. The number of devices shown in Figure 1 is provided for illustrative purposes only. Different numbers of devices may be used. For example, each device, server, and system in Figure 1 is shown as a single device, but multiple devices may be used instead.

[0019] In one embodiment, the processing performed by the dialogue system 100 includes a voice input component 105 and a wake-word detection (WD) subsystem 106. , an automatic speech recognition (ASR) subsystem 108, a named entity recognizer (NER) subsystem 112 and semantic processing A natural language understanding (NLU) subsystem 110 including a sub-subsystem 114, a dialog manager (DM) subsystem 116, a natural language generator (NLG) subsystem 118, a text-to-speech (TTS) subsystem 120, and an audio output component 124 is realized by a pipeline of components or subsystems. The subsystems listed above may be realized only in software (using, for example, code, programs, or instructions executable by one or more processors or cores), only in hardware, or in a combination of hardware and software. In one implementation example, one or more of the subsystems may be combined to form a single subsystem. In addition or alternatively, in some implementation examples, the functions described herein as being performed by a particular subsystem may be realized by multiple subsystems.

[0020] The audio input component 105 includes hardware and software configured to receive an audio input 104. In some cases, the audio input component 105 may be part of the dialogue system 100. In some other cases, the audio input component 105 may be separated from the dialogue system 100 and communicatively coupled to the dialogue system 100. The audio input component 105 may include, for example, a microphone coupled to software configured to digitize the audio input 104 and transmit it to the wake word detection subsystem 106.

[0021] The wake word detection (WD) subsystem 106 is configured to listen for a stream of acoustic input for an input corresponding to a special sound or word or set of words called a wake word. When the WD subsystem 106 detects a wake word for the dialogue system 100, it is configured to activate the ASR subsystem 108. In one implementation, the user may be given the ability to activate or stop the WD subsystem 106 (e.g., by pressing a button) to have the WD subsystem 106 listen for or stop listening for a wake word. When activated, or when operating in an active mode, the WD subsystem 106 is configured to continuously receive an acoustic input stream and process the acoustic input stream to identify acoustic input such as the voice input 104 corresponding to the wake word. When an acoustic input corresponding to the wake word is detected, the WD subsystem 106 activates the ASR subsystem 108.

[0022] As described above, the WD subsystem 106 activates the ASR subsystem 108. In some implementations of the dialogue system 100, other mechanisms may be used to trigger or activate the ASR subsystem 108 in addition to wake word detection. For example, in some implementations, a push button on the device may be used to trigger the ASR subsystem 108 without requiring a wake word. In such an implementation, there is no need to provide the WD subsystem 106. When the push button is pressed or activated, the voice input 104 received after the button activation is provided to the ASR subsystem 108 for processing. In addition to or instead of this, in some implementations, the ASR subsystem 108 may be activated when an input to be processed is received.

[0023] The ASR subsystem 108 is configured to receive and monitor the voice input 104 after a trigger or wake-up signal (for example, a wake-up signal may be sent by the WD subsystem 106 when a wake word is detected in the voice input 104, or a wake-up signal may be received when a button is activated) and to convert the voice input 104 to text. As part of this process, the ASR subsystem 108 performs speech-to-text conversion. The voice input 104 may be in natural language form, and the ASR subsystem 108 is configured to generate corresponding natural language text in the language of the voice input 104. This corresponding natural language text is hereby referred to as an utterance. For example, the voice input 104 received by the ASR subsystem 108 may contain one or more words, phrases, clauses, sentences, questions, etc. The ASR subsystem 108 is configured to generate an utterance for each clause spoken and to supply the utterances to the NLU subsystem 110 for further processing.

[0024] The NLU subsystem 110 receives utterances generated by the ASR subsystem 108. The utterances received by the NLU subsystem 110 from the ASR subsystem 108 may include text utterances corresponding to spoken words, phrases, clauses, etc. The NLU subsystem 110 converts each utterance or set of utterances into the corresponding logical form.

[0025] In one implementation example, the NLU subsystem 110 includes a named entity recognition (NER) subsystem 112 and a semantic parser subsystem 114. NER subsystem 1 12 receives an utterance as input, identifies named entities in the utterance, and tags the utterance with information related to the identified named entities. The tagged utterance is then fed to the semantic parser subsystem 114, which is configured to generate a logical form for each tagged utterance, or for a set of tagged utterances. The logical form generated for an utterance may identify one or more intentions corresponding to the utterance. An intention about an utterance identifies the purpose of the utterance. Examples of intentions include "order a pizza" and "find directions." An intention may also identify an action that is requested to be performed. In addition to intentions, the logical form generated for an utterance may also identify slots, also called parameters or arguments, for the intention being identified. For example, for the voice input "I would like to order a large pepperoni pizza with mushrooms and olives," the NLU subsystem 110 can identify the intention to order a pizza. The NLU subsystem can also identify and fill slots (for example, pizza_size (filled with L) and pizza_toppings (filled with mushrooms and olives)). The NLU subsystem 110 may generate logical forms using machine learning-based methods, rules, or combinations of machine learning methods and rules, which may be domain-specific. The logical forms generated by the NLU subsystem 110 are then fed to the DM subsystem 116 for further processing.

[0026] As shown in Figure 1, in some embodiments, the training system 150 described herein trains a semantic parser subsystem 114, also known herein as a semantic parser 114, as part of a generative adversarial network 155 to prepare the semantic parser subsystem 114 for its operation in the dialogue system 100. For example, the training system 150 utilizes a GAN 155 to train the semantic parser 114 to perform the aforementioned task of determining a logical form based on one or more utterances. In some embodiments, the use of this adversarial technique to train the semantic parser 114 makes the dialogue system 100 an improvement over conventional dialogue systems.

[0027] The DM subsystem 116 is configured to manage user interaction based on logical format received from the NLU subsystem 110. As part of interaction management, the DM subsystem 116 is configured to track interaction states and determine whether to initiate the execution of one or more actions or tasks, or to perform one or more actions or tasks itself and how to interact with the user. These actions may include, for example, querying one or more databases, generating execution results, or other actions. For example, the DM subsystem 116 is configured to interpret intent identified in the logical format received from the NLU subsystem 110. Based on the interpretation, the DM subsystem 116 may initiate one or more actions that it interprets as being requested by the voice input 104 provided by the user. In one embodiment, the DM subsystem 116 performs interaction state tracking based on current and past voice inputs 104, as well as a set of rules (e.g., interaction policies) configured for the DM subsystem 116. These rules may specify different interaction states, conditions for transitions between states, actions to be taken when a particular state is in place, and so on. These rules may be domain-specific. The DM subsystem 116 also generates responses to be communicated to the users involved in the interaction. These responses may be based on actions initiated by the DM subsystem 116 and their results. The responses generated by the DM subsystem 116 are supplied to the NLG subsystem 118 for further processing.

[0028] The NLG subsystem 118 is configured to generate natural language text corresponding to the response generated by the DM subsystem 116. These texts may also be generated in a format that allows them to be converted into speech by the TTS subsystem 120. The TTS subsystem 120 receives text from the NLG subsystem 118, converts each of them into speech or voice, which may then be output to the user as sound via the dialogue system's voice or voice output component 124 (e.g., a speaker, or a communication channel coupled to an external speaker). In some cases, the voice output component 124 may be part of the dialogue system 100. In some other cases, the voice output component 124 may be separate from the dialogue system 100 and communicatively coupled to the dialogue system 100.

[0029] As described above, the various subsystems of the collaboratively operating dialogue system 100 provide functionality that enables the dialogue system 100 to receive voice input 104, respond using voice output 122, and thereby maintain interaction with the user using natural language speech. The various subsystems described above may be implemented using a single computer system or using multiple collaboratively operating computer systems. For example, for a device implementing a voice-enabled system, the subsystems of the dialogue system 100 described above may be implemented entirely on the user-interacting device. In some other implementations, some components or subsystems of the dialogue system 100 may be implemented on the user-interacting device, while other components may be implemented remotely from the device, possibly on some other computing device, platform, or server.

[0030] Figure 2 shows a training system 150 configured to train a semantic parser 114 of a dialogue system 100 through the use of a generative adversarial network 155, according to one embodiment described herein. More specifically, in some embodiments, the semantic parser 114 acts as a generator of a GAN 155, and the training system 150 trains the semantic parser 114 together with a discriminator 250 in the GAN 155. An error minimization module 260 in the GAN 155 may provide one or more training signals to the semantic parser 114 and the discriminator 250 to train them, and more specifically, backpropagation may be used to train the semantic parser 114. The data input subsystem 240 of the training system 150 may provide inputs to the semantic parser 114, the classifier 250, and the error minimization module 260, such as inputs based on seed data 210, so that the semantic parser 114, the classifier 250, and the error minimization module 260 can perform the tasks described herein. After training, the semantic parser 114 may be used as part of the interaction system 100 as shown in Figure 1.

[0031] In some embodiments, the training system 150 is implemented as a computing device or part thereof, for example, as a server. The training system 150 may be implemented as a dedicated hardware device, as program code, or a combination of both. For example, the operations described herein as being performed by the training system 150 may be embodied in program code that implements the training system 150, where such program code is executable by one or more processing units. For example, the semantic parser 114, classifier 250, error minimization module 260, and other aspects of the GAN 155 may each be implemented as one or more software functions or dedicated hardware devices, and may work together to implement the training system 150 as described herein. The semantic parser 114 and classifier 250 may each be implemented as their respective machine learning models, such as neural networks.

[0032] As shown in Figure 2, the training system 150 may include a GAN 155, which includes a generator and a discriminator 250 that are trained together. Specifically, the generator is a conversational system The semantic parser 114 may be a module 100, and for this reason, the semantic parser 114 is trained within the GAN 155 before or during integration with the dialogue system 100. Specifically, the training system 150 may train the semantic parser 114 to map utterances 220 to logical forms 230, and the training system 150 may train the classifier 250 to determine whether the logical form 230 is authentic (i.e., in a set of seed data 210, the seed tuple is shared with its corresponding utterance 220). The error minimization module 260 updates the semantic parser 114 and the classifier 250 to minimize the error between the expected prediction and the actual prediction made in the GAN 155. In some embodiments, as part of the GAN155, the semantic parser 114 and the discriminator 250 are trained together such that when one of them improves, the other improves as well. As a result, the semantic parser 114 learns to map utterances 220, such as utterances 220 tagged by the NER subsystem 112, to logical forms 230 available to the DM subsystem 116.

[0033] In some embodiments, the semantic parser 114 uses a sequence-to-sequence (seq2seq) model to determine the logical form 230 based on the utterance 220. These are neural networks. Traditionally, a semantic parser is trained using training data containing a set of tuples, each tuple containing an utterance and a corresponding logical form. However, as described here, in some embodiments, the semantic parser 114 is trained as part of a GAN 155. As further described here, the training utilizes seed data 210 containing seed tuples, each seed tuple containing an utterance 220 and a corresponding logical form 230. However, the training also incorporates the output from a classifier 250.

[0034] The classifier 250 may be a binary classifier that maps tuples to classes, and for example, the classifier 250 may be implemented as a neural network. The classifier 250 may receive a tuple containing an utterance 220 and a logical form 136 as input, and the classifier 250 may output an index of whether the logical form 230 is an authentic representation of the utterance 220. For example, the classifier 250 may output the probability that the logical form 230 is authentic (i.e., paired with the utterance 220 in the seed data 210) and therefore accurate. In some embodiments, to achieve this, the classifier 250 may be trained with a semantic parser 114 in a GAN 155 as described herein.

[0035] The error minimization module 260 may provide training signals to train the classifier 250 and to train the semantic parser 114 by backpropagation. For example, to train the classifier 250, the error minimization module 260 may utilize a first objective function 265 to compare the output from the classifier 250, which is an indicator of whether the received logic forms 230 are authentic, with an accurate distribution of the authenticity indicators for those logic forms 230. The error minimization module 260 may use the results of the first objective function 265 to train the classifier 250 to make better predictions of authenticity.

[0036] To train the semantic parser 114, the error minimization module 260 may utilize a second objective function 265, which may be the same as the first objective function 265, to compare the output from the discriminator 250, which shows a prediction of the authenticity of the logical forms 230 output by the semantic parser 114, with a selected distribution of signs of authenticity for those logical forms 230 (i.e., a desired distribution). The selected distribution may be a distribution that indicates that all logical forms 230 output by the semantic parser 114 are authentic. In some embodiments, the training system 150 is assumed to always have authentic outputs. The aim is to provide a semantic parser 114. Those skilled in the art will understand how to construct such an objective function 265. In some embodiments, the semantic parser 114 and the discriminator 250 are trained together within the GAN 155, but only the semantic parser 114 and one of the generators are actively updated at a given time based on training signals from the error minimization module 260.

[0037] Figure 3 is a diagram of a method 300 for training a semantic parser 114 together with a discriminator 250 in a GAN 155, according to one embodiment described herein. In some embodiments, this method 300 or a similar method is performed before the semantic parser 114 is used in a dialogue system 100. Through the training described herein, the semantic parser 114 may also learn to translate (i.e., map) utterances 220 to logical forms 230 that represent such utterances 220, which is a task performed by the semantic parser 114 as part of the dialogue system 100.

[0038] Method 300, as shown in Figure 3, and other methods described herein, may be implemented in software (e.g., as code, instructions, or programs) executed by one or more processing units (e.g., a processor or processor core), in hardware, or in a combination thereof. The software may be stored on a non-temporary storage medium, for example, on a memory device. Method 300 is intended to be illustrative and non-limiting. Figure 3 shows various activities occurring in a particular sequence or order, but this is not intended to be limiting. In some embodiments, for example, these activities may occur in a different order, or one or more activities of Method 300 may occur in parallel. In some embodiments, Method 300 may be performed by a training system 150.

[0039] As shown in Figure 3, in block 305, the data input subsystem 240 of the training system 150 acquires seed data 210. The seed data 210 may contain a set of seed tuples, each seed tuple containing an utterance 220 and a corresponding logical form 230. In each seed tuple, the logical form 230 is an accurate and authentic representation or transformation of the utterance 220. It will be understood that various methods exist for acquiring the seed data 210. For example, the seed data 210 may be determined manually, such as through crowdsourcing, and then stored in a memory device accessible by the data input subsystem 240.

[0040] In block 310, the training system 150 starts a new round of training. Block 310 is the beginning of an iterative loop. In some embodiments, during each iteration of the loop, the training system 150 performs a round of training. Each round of training may include training a classifier 250 in part of the round and training a semantic parser 114 in another part of the round. These two parts of a round may be performed in parallel, but in some embodiments, these two parts are performed sequentially so that the training of the semantic parser 114 in the second part benefits from the training of the classifier 250 in the first part. The training system 150 may also use a different subset of the seed data 210 for each round in which it trains the classifier 250 and the semantic parser 114, and thus for each iteration of the loop.

[0041] In block 315, the training system 150 trains the classifier 250 based on a first portion of the seed data 210 acquired in block 305. In some embodiments, this first portion of the seed data 210 has not yet been used for training in a previous round. During this training of the classifier 250, the semantic parser 114 updates the classifier 250 based on the classifier's predictions regarding the authenticity of the output from the semantic parser 114. This may be fixed so as not to change how the semantic parser 114 determines its output. The activities involved in training the discriminator 250 during the training rounds are described in more detail below with reference to Figure 4.

[0042] In block 320, the training system 150 trains the semantic parser 114 based on a second portion of the seed data 210 acquired in block 305. In some embodiments, this second portion of the seed data 210 is different from the first portion used in block 310 (for example, there is no overlap in the seed tuple) and has not yet been used for training in a previous round. During this training of the semantic parser 114, the discriminator 250 may be fixed so as to allow updates of the semantic parser 114 based on the discriminator's predictions regarding the authenticity of the output from the semantic parser 114 without changing how the discriminator 250 determines its authenticity. The activities involved in training the semantic parser 114 during the training rounds are described in more detail below with reference to Figure 5.

[0043] In decision block 325, the training system 150 determines whether all of the seed data 210 obtained in block 305 has been selected and used for some round of training as described above (i.e., some iteration of the loop). If not all of the seed data 210 has been used, method 300 may return to block 310, where another round of training begins. However, if all of the seed data 210 has been used in training, method 300 may terminate in block 330, at which point the semantic parser 114 may already be trained and ready for use in the dialogue system 100.

[0044] Figure 4 shows a method 400 for training the classifier 250 as part of a training round in GAN155, according to one embodiment described herein. Specifically, the training system 150 may perform this method 400 or a similar method in block 315 of the method 300 described above to train the classifier 250 within a single training round. For this reason, according to some embodiments, this method 400 or a similar method may be performed once per iteration.

[0045] Method 400, shown in Figure 4, and other methods described herein, may be implemented in software (e.g., as code, instructions, or programs) executed by one or more processing units (e.g., a processor or processor core), in hardware, or in a combination thereof. The software may be stored on a non-temporary storage medium, for example, on a memory device. Method 400 is intended to be illustrative and non-limiting. Figure 4 shows various activities occurring in a particular sequence or order, but this is not intended to be limiting. In some embodiments, for example, these activities may occur in a different order, or one or more activities of Method 400 may occur in parallel. In some embodiments, Method 400 may be performed by a training system 150.

[0046] In block 405, the data input subsystem 240 of the training system 150 selects a first portion of the seed data 210, where the first portion has not yet been used in previous rounds of training. In some embodiments, this first portion of the seed data 210 is a subset of the seed tuples in the seed data 210. For example, the first portion of the seed data 210 may be a proper subset of the seed tuples in the seed data 210, such that not all of the seed tuples in the seed data 210 are included in the first portion.

[0047] In block 410, the semantic parser 114 is fixed while the discriminator 250 is open for updating. In other words, in some embodiments, the semantic parser 114 will remain static for a while so that the discriminator 250 can be trained based on the current state of the semantic parser 114.

[0048] In some embodiments, blocks 415 and 420 are performed in parallel. In block 415, the data input subsystem 240 of the training system 150 inputs a stream of utterances 220 to the semantic parser 114, which generates a logical form 230 based on the stream of utterances 220 input to the semantic parser 114. The utterances 220 in the stream of utterances 220 may not be from seed data 210, but may be utterances 220 that are randomly generated or randomly selected, for example, by the data input subsystem 240 or by some other component. For illustrative purposes rather than limitation, the utterances 220 may be selected from a corpus written in natural language (e.g., one or more books or articles). For each such utterance 220 received, the semantic parser 114 may generate a logical form 230. In the early stages of training, the output of the logical form 230 from the semantic parser may be poor. For example, the generated logical form 230 may be random (e.g., a random arrangement of words and symbols). However, as training progresses throughout the round or across multiple rounds, the semantic parser 114 can be improved.

[0049] In block 420, which may occur in parallel with block 415, the data input subsystem 240 of the training system 150 may input a stream of tuples to the classifier 250, which may generate authenticity predictions for those tuples. Each tuple in the stream of tuples may contain an utterance 220 and a logical form 230. The data input subsystem 240 may provide this stream of tuples as a combination (for example, a random combination or any combination) of (1) seed tuples from a first portion of seed data 210 selected in block 405 and (2) tuples having logical forms 230 generated by the semantic parser 114 in block 415. Based on the stream of tuples, the classifier 250 may output authenticity predictions corresponding to the tuples. In other words, given a tuple, the discriminator 250 may predict whether the logical form 230 in the tuple is an authentic representation of the utterance 220 in the tuple, or, in other words, the discriminator 250 may infer whether the tuple is part of seed data 210 and not a logical form 230 generated by the semantic parser 114. The tuple received by the discriminator 250 may include both a seed tuple in the first part of seed data 210 and a generated tuple containing the utterance 220 received by the semantic parser 114 and the corresponding logical form 230 generated by the semantic parser 114 in block 415.

[0050] In some embodiments, the classifier 250 is not informed which tuples are from the seed data 210 and therefore authentic, and which tuples are from the semantic parser 114 and therefore generated. For each tuple, the classifier 250 may classify the tuple based on its possible authenticity. For this purpose, the classifier 250 may output a score indicating its judgment (i.e., prediction) of the likelihood that the logical form 230 is an authentic representation of the corresponding utterance 220 in the tuple. For example, the score is the probability that the logical form 230 is an authentic representation of the corresponding utterance 220 in the tuple and therefore the tuple is from the seed data 210. Ideally, the classifier 250 would output a high probability, such as 1, for authentic tuples (i.e., seed tuples) and a low probability, such as 0, for generated tuples. In the early stages of training, the classifier's output may be poor. For example, the output probabilities may be within a certain range (e.g., 0 to 1 (0 and 1 and 1)). It may also be a random number within (including). However, the classifier 250 can be improved as training progresses throughout the round or over multiple rounds.

[0051] In block 425, the error minimization module 260 of the training system 150 generates a training signal for training the classifier 250 based on the outputs of the semantic parser 114 and the classifier 250, as determined in blocks 415 and 420. In some embodiments, the data input subsystem 240 of the training system 150 provides the error minimization module 260 with a first portion of seed data 210, as accessed in block 405, so that the error minimization module 260 can determine the training signal.

[0052] For example, the error minimization module 260 may apply a first objective function 265 to compare the exact distribution of predictions (i.e., the exact sequence of values) with the actual distribution of predictions from the classifier 250 (i.e., the actual sequence of values) and determine the difference, i.e., the degree of difference, between the two distributions. The error minimization module 260 may have access to a first portion of the seed data 210 and therefore may know which tuples received by the classifier 250 are genuine and which tuples are generated. Thus, the error minimization module 260 knows that the exact distribution assigns a value of 1 (i.e., 100 percent probability) to the seed tuple and a value of 0 (i.e., 0 percent probability) to the non-genuine generated tuple. For this reason, the error minimization module 260 may use the first objective function 265 to compare this exact distribution with the actual output of the classifier 250 so that it provides the classifier 250 with a training signal. The training signal represents the error in the predictions made by the classifier 250. Based on the training signal, the training system 150 may update the classifier 250 to reduce the error between the accurate distribution and the actual distribution. For example, the nodes of the neural network acting as classifier 250 may be updated based on the training signal.

[0053] In some embodiments, block 425 is performed following blocks 415 and 420, as shown in Figure 4. In this case, the error minimization module 260 may provide the training signal only after the classifier 250 has received all the tuples used to train the classifier 250 in this round of training. Thus, the classifier 250 may be updated once based on a batch containing the entire first portion of the seed data 210 and the generated tuples described above. However, instead, block 425 may be performed in parallel with blocks 415 and 420 so that the classifier 250 is updated while the first portion of the seed data 210 and the generated tuples are still being provided, so that the training signal is sent back to the classifier 250 while the classifier 250 is evaluating the input.

[0054] In block 430, the training system 150 completes the training of the discriminator 250 for the current round of training. Therefore, the semantic parser 114, which was locked in block 410, is unlocked as training progresses and does not need to remain locked.

[0055] Figure 5 illustrates a method for training a semantic parser in GAN155 as part of a training round, according to one embodiment described herein. Specifically, the training system 150 may perform this method 500 or a similar method in block 320 of the method 300 described above to train the semantic parser 114 within a single training round. Thus, according to some embodiments, this method 500 or a similar method may be performed once per iteration.

[0056] Method 500 shown in Figure 5, and other methods described herein, involve one or more processes. This may be implemented in software (e.g., as code, instructions, or a program) executed by a unit (e.g., a processor or processor core), in hardware, or in a combination thereof. The software may be stored on a non-temporary storage medium, for example, on a memory device. This method 500 is intended to be illustrative and non-limiting. Figure 5 shows various activities occurring in a particular sequence or order, but this is not intended to be limiting. In some embodiments, for example, these activities may occur in a different order, or one or more activities of method 500 may occur in parallel. In some embodiments, method 500 may be performed by a training system 150.

[0057] In block 505, the data input subsystem 240 of the training system 150 selects a second portion of the seed data 210, which has not yet been used in a previous round of training. In some embodiments, this second portion of the seed data 210 is a subset of the seed tuples in the seed data 210. For example, the second portion of the seed data 210 may be a proper subset of the seed tuples in the seed data 210, such that not all of the seed tuples in the seed data 210 are included in the second portion. In addition, in some embodiments, the second portion of the seed data 210 is different from the first portion. However, instead, the second portion may be the same as the first portion of the seed data 210. In any case, the remainder of the seed data 210, other than the first and second portions, may be used in subsequent iterations of the entire training method 300.

[0058] In block 510, the classifier 250 is fixed while the semantic parser 114 is open for updating. In other words, in some embodiments, the classifier 250 will remain static for a while so that the semantic parser 114 can be trained based on the current state of the classifier 250.

[0059] In some embodiments, blocks 515 and 520 are performed in parallel. In block 515, the data input subsystem 240 of the training system 150 inputs utterances 220 from a second portion of seed data 210 selected in block 505 to the semantic parser 114, which generates a logical form 230 based on such utterances 220. In the early stages of training, the output of the logical form 230 from the semantic parser may be poor. For example, the generated logical form 230 may be random (e.g., a random arrangement of words and symbols). However, as training progresses throughout the round or over multiple rounds, the semantic parser 114 can be improved.

[0060] In block 520, which may be performed in parallel with block 515, the data input subsystem 240 of the training system 150 may input a stream of tuples to a classifier 250, which may make a prediction of authenticity for each tuple in the stream. Each tuple in the stream of tuples may contain an utterance 220 and a corresponding logical form 230. More specifically, each received tuple may contain an utterance 220 from a seed tuple selected from a second part of seed data 210, such as that selected in block 505, along with a generated logical form 230 output by the semantic parser 114 based on that utterance 220, which is provided as input to the semantic parser 114 in block 515. For each received tuple, the classifier 250 may classify the tuple based on its possible authenticity. Specifically, the classifier 250 may output a score indicating the likelihood of authenticity. For example, the score determined by the classifier 250 for a tuple may be the probability that the logical form 230 is an authentic, and therefore accurate, representation of the corresponding utterance 220 in the tuple, or in other words, the tuple is This could also be the probability that it is a seed tuple from seed data 210. In this regard, since the classifier 250 has already undergone some training as described with reference to Figure 4, the classifier 250 can continue to be improved during subsequent rounds of training, while its output still needs improvement.

[0061] In block 525, the error minimization module 260 of the training system 150 generates a training signal for training the semantic parser 114 via backpropagation, based on the outputs of the semantic parser 114 and classifier 250 as determined in blocks 515 and 520. For this purpose, for example, the error minimization module 260 applies a second objective function 265 that determines the difference between a selected distribution of predictions from the classifier 250 and the actual distribution of predictions from the classifier 250. The second objective function 265 may be, but does not have to be, the same as the first objective function 265 used when training the classifier 250. In some embodiments, the training system 150 attempts to improve the semantic parser 114 so that it can trick the classifier 250 into predicting that all of the outputs of the semantic parser 114 are true, so the selected distribution of predictions is a set of predictions. In some embodiments, such a distribution of predictions would indicate that all logical forms 230 generated by the semantic parser 114 are genuine. For this reason, the second objective function 265 may compare this selected distribution (for example, of a set of predictions) with the actual distribution of the output from the discriminator 250 in block 520 to determine the degree of difference between these distributions.

[0062] The error minimization module 260 may use a second objective function 265 to compare this selected distribution with the actual predictions of the classifier 250, so that it provides a training signal to the semantic parser 114. The training signal represents the error in the predictions made compared to the selected (i.e., desired) distribution. Based on the training signal, the semantic parser 114 may be updated to reduce the error between the selected distribution and the actual distribution. For example, the nodes of the neural network acting as the semantic parser 114 may be updated based on the training signal.

[0063] In some embodiments, block 525 is performed following blocks 515 and 520, as shown in Figure 5. In this case, the error minimization module 260 may provide the training signal only after the semantic parser 114 has received all of the utterances 220 from the second portion of the seed data 210. Thus, the semantic parser 114 is updated based on a batch containing the entire second portion of the seed data 210. However, instead, block 525 may be performed in parallel with blocks 515 and 520 so that the semantic parser 114 is updated while the utterances 220 from the second portion of the seed data 210 are provided, so that the training signal is sent back to the semantic parser 114 while the semantic parser 114 is evaluating the input.

[0064] Therefore, as described above, GAN155 can be used to train a semantic parser 114 for use in the dialogue system 100. Various modifications may be made to the above-described method, and such modifications are within the scope of this disclosure. For example, a semi-supervised GAN (SGAN) may be used as GAN155 to train a supervised classifier, an unsupervised classifier, and a semantic parser 114 together. Even for GAN training, SGAN can be particularly useful when the seed data 210 is a relatively small set. In addition, or instead, the classifier 250 may incorporate information about the grammar that the logical form 230 must conform to. By referring to this grammar, the classifier 250 may determine more accurately whether the logical form 230 is authentic, which may prompt the semantic parser 114 to be improved more quickly.

[0065] Figure 6 shows a distributed system 600 for realizing one embodiment. In the illustrated embodiment, the distributed system 600 includes one or more client computing devices 602, 604, 606, and 608 connected to a server 612 via one or more communication networks 610. The client computing devices 602, 604, 606, and 608 may be configured to run one or more applications.

[0066] In various embodiments, the server 612 may be adapted to run one or more services or software applications that enable the use of backpropagation in the GAN 155 to train the semantic parser 114 of the dialogue system 100, as described herein. For example, the server 612 may run some or all of the training system 150, or some or all of the dialogue system 100.

[0067] In some embodiments, the server 612 may also provide other services or software applications that may include non-virtual and virtual environments. In some embodiments, these services are Software as a Service. The client computing devices 602, 604, 606, and / or 608 may be provided to users of the client computing devices 602, 604, 606, and / or 608 as a web-based service or cloud service, such as under a SaaS (Software as a Service) model. Users operating the client computing devices 602, 604, 606, and / or 608 may then interact with the server 612 using one or more client applications and utilize the services provided by these components. More specifically, each of the client computing devices 602, 604, 606, and / or 608 may be an embedded device configured to run the conversational system 100 and further configured to communicate with the server 612 to enable the server 612 to train the semantic parser 114 of the conversational system 100 through backpropagation in the GAN 155 as described herein.

[0068] In the configuration shown in Figure 6, server 612 may include one or more components 618, 620, and 622 that perform the functions performed by server 612. These components may include software components, hardware components, or a combination thereof, which can be executed by one or more processors. It should be understood that a variety of different system configurations are possible, which may differ from the distributed system 600. The embodiment shown in Figure 6 is therefore just one example of a distributed system for realizing the system of the embodiment and is not intended to be limiting.

[0069] A user may use client computing devices 602, 604, 606, and / or 608 to interact with aspects of the interaction system 100 provided by server 612 in accordance with the teachings of this disclosure. A client device may provide an interface (e.g., a voice interface) that allows a user of the client device to interact with the client device. Although Figure 6 shows only four client computing devices, any number of client computing devices may be supported.

[0070] Client devices include a variety of types such as PA devices, portable handheld devices, general-purpose computers such as personal computers and laptops, workstation computers, wearable devices, gaming systems, thin clients, various messaging devices, sensors or other sensing devices, etc. Computing systems may be included. These computing devices may run various types and versions of software applications and operating systems (e.g., Microsoft Windows®, Apple Macintosh®, UNIX® or UNIX-like operating systems, Linux® or Linux-like operating systems, e.g., Google Chrome® OS), which include various mobile operating systems (e.g., Microsoft Windows Mobile®, iOS®, Windows Phone®, Android®, BlackBerry®, Palm OS®). Portable handheld devices may include mobile phones, smartphones (e.g., iPhone®), tablets (e.g., iPad®), personal digital assistants (PDAs), etc. Wearable devices may include Google Glass® head-mounted displays and other devices. The gaming system may include various portable gaming devices, internet-enabled gaming devices (for example, Microsoft Xbox® gaming consoles, Sony PlayStation® systems, various gaming systems offered by Nintendo®, etc., with or without Kinect® gesture input devices). The client device may include various internet-related applications, communication applications (for example, email applications, short message service (SMS) applications). It may be capable of running various different applications, such as (applications), and may use various communication protocols.

[0071] Network 610 supports TCP / IP (Transmission Control Protocol / Internet Protocol), SNA (Systems Network Architecture), IPX (Internet Packet Exchange), AppleTalk (registered trademark), etc., without limitation. Network 610 may be any type of network well known to those skilled in the art, capable of supporting data communication using any of the various available protocols, without exception. For example, network 610 could be a local area network (LAN), a network based on Ethernet® or Token Ring, a wide-area network (WAN), the Internet, or a virtual network. Network, virtual private network (VPN), Intranet, extranet, public switched telephone network (PSTN), infrared network, wireless network (for example, the American Electrical and Electronics Engineers Association) The Institute of Electrical and Electronics (IEEE) 802.11 protocol Of the following: LeSuite, Bluetooth®, and / or any other radio protocols Networks operating under any of the above, and / or any combination of these and / or other networks.

[0072] Server 612 may consist of one or more general-purpose computers, dedicated server computers (including, for example, PC (personal computer) servers, UNIX® servers, midrange servers, mainframe computers, rack-mount servers, etc.), server farms, server clusters, or any other suitable configuration and / or combination. Server 612 may include one or more virtual machines running a virtual operating system, or other computing architectures involved in virtualization, such as one or more flexible pools of logical storage devices that can be virtualized to maintain virtual memory devices for the server. In various embodiments, Server 612 may be adapted to run one or more services or software applications that provide the functionality described in the above disclosure.

[0073] The computing system in Server 612 may run one or more operating systems, including any of those described above, and any commercially available server operating system. Server 612 may also run any of a variety of additional server applications and / or middle-tier applications, including HTTP (hypertext transport protocol) servers, FTP (file transfer protocol) servers, CGI (common gateway interface) servers, JAVA® servers, database servers, etc. Illustrative database servers include Oracle®, Microsoft®, Sybase®, and IBM (International Business Machines). This includes, without limitation, anything commercially available from sources such as Machines.

[0074] In some implementations, server 612 may include one or more applications for analyzing and integrating data feeds and / or event updates received from users of client computing devices 602, 604, 606, and 608. For example, data feeds and / or event updates may include, but are not limited to, Twitter® feeds, Facebook® updates, or real-time updates received from one or more third-party sources and continuous data streams, which may include real-time events related to sensor data applications, financial tickers, network performance measurement tools (e.g., network monitoring and traffic management applications), clickstream analysis tools, automotive traffic monitoring, etc. Server 612 may also include one or more applications for displaying data feeds and / or real-time events via one or more display devices of client computing devices 602, 604, 606, and 608.

[0075] The distributed system 600 may also include one or more data repositories 614, 616. In some embodiments, these data repositories may be used to store data and other information. For example, one or more of the data repositories 614, 616 may be used to store seed data 210 or other data required to train the semantic parser 114 of the interaction system 100 by backpropagation in the GAN 155 as described herein. The data repositories 614, 616 may reside in various locations. For example, a data repository used by server 612 may be local to server 612, or it may be remote from server 612 and communicate with server 612 via a network-based connection or a dedicated connection. The data repositories 614, 616 may be of different types. In some embodiments, a data repository used by server 612 may be a database, such as a relational database, such as a database provided by Oracle Corporation® and other vendors. One or more of these databases may be adapted to allow data to be stored, updated, and retrieved from the database in response to commands in SQL format.

[0076] In one embodiment, one or more of the data repositories 614, 616 may also be used by the application to store application data. The data repositories used by the application may be of different types, such as a key-value store repository, an object store repository, or a general storage repository supported by the file system.

[0077] In one embodiment, all or part of training the semantic parser 114 of the conversational system 100 in the GAN 155 by backpropagation as described herein may be provided as a service via a cloud environment. Figure 7 is a block diagram of a cloud-based system environment according to one embodiment described herein, in which training the semantic parser 114 as described herein may be provided at least in part as a cloud service. In the embodiment shown in Figure 7, the cloud infrastructure system 702 may provide one or more cloud services that may be requested by users using one or more client computing devices 704, 706, and 708. The cloud infrastructure system 702 may include one or more computers and / or servers, which may include those described above for server 612. The computers in the cloud infrastructure system 702 may be organized as general-purpose computers, dedicated server computers, server farms, server clusters, or any other suitable configuration and / or combination.

[0078] Network 710 may facilitate the communication and exchange of data between client computing devices 704, 706, and 708 and the cloud infrastructure system 702. Network 710 may include one or more networks. These networks may be of the same type or different types. Network 710 may support one or more communication protocols, including wired and / or wireless protocols, to facilitate communication.

[0079] The embodiment shown in Figure 7 is merely one example of a cloud infrastructure system and is not intended to be limiting. It should be understood that in some other embodiments, the cloud infrastructure system 702 may have more or fewer components than those shown in Figure 7, may be a combination of two or more components, or may have components in different configurations or arrangements. For example, while Figure 7 shows three client computing devices, alternative embodiments may support any number of client computing devices.

[0080] The term "cloud service" is generally used to refer to services that are made available to users on demand via a communication network such as the Internet, through a service provider's system (e.g., cloud infrastructure system 702). Typically, in a public cloud environment, the servers and systems that make up the cloud service provider's system are different from the customer's own on-premises servers and systems. The cloud service provider's system is managed by the cloud service provider. For this reason, customers can use the cloud services provided by the cloud service provider without having to purchase separate licenses, support, or hardware and software resources for those services. For example, the cloud service provider's system may host applications, and users can order and use those applications on demand via the Internet without having to purchase the infrastructure resources for running those applications. Cloud services are designed to provide easy and scalable access to applications, resources, and services. Several providers offer cloud services. For example, some cloud services, such as middleware services, database services, and Java cloud services, are offered by Oracle Corporation® in Redwood Shores, California.

[0081] In one embodiment, the cloud infrastructure system 702 is a hybrid This includes service models such as Software-as-a-Service (SaaS) models, Platform-as-a-Service (PaaS) models, and infrastructure. Infrastructure as a Service (IaaS) model One or more cloud services may be offered using different models, such as those described below. The cloud infrastructure system 702 may include a set of applications, middleware, databases, and other resources that enable the provision of various cloud services.

[0082] The SaaS model allows applications or software to be delivered to customers as a service over a communication network such as the internet, without the customer needing to purchase hardware or software for the underlying application. For example, the SaaS model may be used to provide customers with access to on-demand applications hosted by a cloud infrastructure system 702. Examples of SaaS services offered by Oracle Corporation® include, but are not limited to, a variety of services for human resources / capital management, customer relationship management (CRM), enterprise resource planning (ERP), supply chain management (SCM), enterprise performance management (EPM), analytics services, and social applications.

[0083] The IaaS model is generally used to provide customers with resilient computing and storage capabilities by offering infrastructure resources (e.g., servers, storage, hardware, and networking resources) as cloud services. Various IaaS services are offered by Oracle Corporation®.

[0084] The PaaS model is generally used to provide customers with platform and environment resources as a service, enabling them to develop, run, and manage applications and services without the need for them to acquire, build, or maintain such resources. Examples of PaaS services offered by Oracle Corporation® include, but are not limited to, Oracle Java Cloud Service (JCS), Oracle Database Cloud Service (DBCS), Data Management Cloud Services, and various application development solution services.

[0085] Cloud services are generally provided in an on-demand, self-service, subscription-based, resilient, scalable, reliable, highly available, and secure manner. For example, a customer may order one or more services provided by the cloud infrastructure system 702 through a subscription order. The cloud infrastructure system 702 then processes the services requested in the customer's subscription order. For example, a customer may subscribe to information services or other services provided in a conversational format by the dialogue system 100. The cloud infrastructure system 702 may be configured to provide one or more cloud services.

[0086] The cloud infrastructure system 702 may provide cloud services through different deployment models. In a public cloud model, the cloud infrastructure system 702 may be owned by a third-party cloud service provider, and the cloud services are provided to any general public customer, where the customer may be an individual or a company. In another embodiment, under a private cloud model, the cloud infrastructure system 702 operates within an organization (for example, within a corporate organization). The services may be provided for customers within the organization. For example, customers may be various departments within the company, such as the human resources department or the payroll department, or they may be individuals within the company. In another embodiment, under a community cloud model, the cloud infrastructure system 702 and the services provided may be shared by several organizations in the relevant community. Various other models, such as hybrids of the models described above, may also be used.

[0087] The client computing devices 704, 706, and 708 may be of different types (such as the client computing devices 602, 604, 606, and 608 shown in Figure 6) and may be capable of running one or more client applications. Users may use the client computing devices to interact with the cloud infrastructure system 702, for example, to request services provided by the cloud infrastructure system 702. An attacker may use the client devices to send malicious requests.

[0088] In some embodiments, the processing performed by the cloud infrastructure system 702 may require big data analysis. This analysis may require using, analyzing, and manipulating large datasets to detect and visualize various trends, behaviors, relationships, etc., within the data. This analysis may be performed by one or more processors, possibly processing the data in parallel, and performing simulations using the data. For example, big data analysis may be performed by the cloud infrastructure system 702 to provide training for the semantic parser 114 by backpropagation in a GAN 155 as described herein. The data used for this analysis may include structured data (e.g., data stored in a database or data structured according to a structured model) and / or unstructured data (e.g., data blobs (binary large objects)). stomach.

[0089] As shown in the embodiment of Figure 7, the cloud infrastructure system 702 may include infrastructure resources 730 that are used to facilitate the provision of various cloud services offered by the cloud infrastructure system 702. The infrastructure resources 730 may include, for example, processing resources, storage or memory resources, networking resources, and so on.

[0090] In one embodiment, to facilitate the efficient provisioning of these resources to support various cloud services provided to different customers by the cloud infrastructure system 702, the infrastructure resources 730 may be bundled into multiple sets of resources or resource modules (also called “pods”). Each resource module or pod may contain a pre-integrated and optimized combination of one or more types of resources. In one embodiment, different pods may be pre-provisioned for different types of cloud services. For example, a first set of pods may be provisioned for a database service, and a second set of pods, which may contain a different combination of resources than the pods in the first set of pods, may be provisioned for a Java service, and so on. For some services, the resources allocated to provisioning those services may be shared among those services.

[0091] Cloud infrastructure system 702 itself is cloud infrastructure Services 732 may be used internally, shared by different components of System 702 to facilitate the provisioning of services by the cloud infrastructure system 702. These internally shared services may include, but are not limited to, security and identity services, integration services, enterprise repository services, enterprise manager services, virus scanning and whitelisting services, high availability, backup and recovery services, services to enable cloud support, email services, notification services, file transfer services, and the like.

[0092] The cloud infrastructure system 702 may include multiple subsystems. These subsystems may be implemented in software, hardware, or a combination thereof. As shown in Figure 7, the subsystem may include a user interface subsystem 712 that enables users or customers of the cloud infrastructure system 702 to interact with the cloud infrastructure system 702. The user interface subsystem 712 may include various different interfaces, such as a web interface 714, an online store interface 716 where cloud services provided by the cloud infrastructure system 702 are advertised and available for purchase by consumers, and other interfaces 718. For example, a customer may use one or more of the interfaces 714, 716, and 718 to request one or more services provided by the cloud infrastructure system 702 using a client device (service request 734). For example, a customer may access the online store, browse the cloud services provided by the cloud infrastructure system 702, and place a subscription order for one or more services provided by the cloud infrastructure system 702 that the customer wishes to subscribe to. The service request may include information identifying the customer and the one or more services that the customer wishes to subscribe to.

[0093] In some embodiments, such as the embodiment shown in Figure 7, the cloud infrastructure system 702 may include an order management subsystem (OMS) 720 configured to process new orders. As part of this process, the OMS 720 may be configured to create an account for the customer if one does not already exist, receive billing and / or charge information from the customer to be used to charge the customer for providing the requested services, verify the customer information, reserve an order for the customer upon verification, and orchestrate various workflows to prepare the order for provisioning.

[0094] Once properly validated, the OMS720 may then invoke an order provisioning subsystem (OPS)724 configured to provision resources for the order, including processing, memory, and networking resources. Provisioning may include allocating resources for the order and configuring the resources to facilitate the services requested by the customer order. The manner in which resources are provisioned for an order and the type of resources provided may depend on the type of cloud service ordered by the customer. For example, according to one workflow, the OPS724 may be configured to determine the specific cloud service being requested and identify the number of pods that would have been pre-configured for that specific cloud service. The number of pods allocated for an order may depend on the size / volume / level / scope of the requested service. For example, the number of pods allocated may be determined based on the number of users supported by the service, the duration for which the service is requested, etc. The allocated pods then configure the resources for the specific customer making the request in order to provide the requested service. It may be toasted.

[0095] The cloud infrastructure system 702 may send a response or notification 744 to the requesting customer to indicate when the requested service will be available. In some cases, information (e.g., a link) that enables the customer to start using the requested service and taking advantage of its benefits may also be sent to the customer.

[0096] The cloud infrastructure system 702 may provide services to multiple customers. For each customer, the cloud infrastructure system 702 is responsible for managing information related to one or more subscription orders received from the customer, maintaining customer data related to the orders, and providing the requested services to the customer. The cloud infrastructure system 702 may also collect usage statistics about the customer's use of the subscribed services. For example, statistics may be collected about the amount of storage used, the amount of data transferred, the number of users, and the amount of system uptime and system downtime. This usage information may be used to bill the customer. Billing may be done, for example, on a monthly basis.

[0097] The cloud infrastructure system 702 may provide services to multiple customers in parallel. The cloud infrastructure system 702 may store information for these customers, possibly including sensitive information. In one embodiment, the cloud infrastructure system 702 has an identity management subsystem (IMS) 728 configured to manage customer information and provide managed information isolation so that information related to one customer cannot be accessed by another customer. This includes the following. IMS728 may be configured to provide a variety of security-related services, such as identity services, such as information access management, authentication and authorization services, and services for managing customer identity and roles and associated capabilities.

[0098] Figure 8 is a block diagram of an exemplary computer system 800 that may be used to implement one embodiment. For example, in some embodiments, the computer system 800 may be used to implement any of the systems, subsystems, and components described herein. For example, multiple host machines may provide and implement the training of the semantic parser 114 of the interactive system 100 in the GAN 155 as described herein. A computer system such as computer system 800 may be used as a host machine. As shown in Figure 8, the computer system 800 includes various subsystems, including a processing subsystem 804 that communicates with many other subsystems via a bus subsystem 802. These other subsystems may include a processing acceleration unit 806, an I / O subsystem 808, a storage subsystem 818, and a communication subsystem 824. The storage subsystem 818 may include a non-temporary computer-readable storage medium including a storage medium 822 and system memory 810.

[0099] The bus subsystem 802 provides a mechanism for various components and subsystems of the computer system 800 to communicate with each other as intended. Although the bus subsystem 802 is schematically shown as a single bus, alternative embodiments of the bus subsystem may utilize multiple buses. The bus subsystem 802 may be one of several types of bus structures, including a memory bus or memory controller, peripheral bus, and local bus, using one of various bus architectures. For example, such architectures include the Industry Standard Architecture (ISA) bus and the Microchannel Architecture. Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) Law Calbus and Peripheral Component Interconnect: It may also include a PCI bus, which can be implemented as a mezzanine bus manufactured according to the IEEE P1386.1 standard.

[0100] The processing subsystem 804 controls the operation of the computer system 800 and includes one or more processors and application-specific integrated circuits (ASIs). C), or field programmable gate array These processors may include FPGAs. These processors may include single-core or multi-core processors. The processing resources of the computer system 800 may be organized into one or more processing units 832, 834, etc. A processing unit may include one or more processors, one or more cores from the same or different processors, a combination of cores and processors, or other combinations of cores and processors. In some embodiments, the processing subsystem 804 may include one or more special-purpose coprocessors, such as a graphics processor or a digital signal processor (DSP). In some embodiments, some or all of the processing units of the processing subsystem 804 may be implemented using customized circuitry, such as an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA).

[0101] In some embodiments, the processing units in the processing subsystem 804 can execute instructions stored in system memory 810 or on the computer-readable storage medium 822. In various embodiments, the processing units can execute various program or code instructions and can maintain multiple programs or processes running concurrently. At any given time, some or all of the program code to be executed may reside in system memory 810 and / or on the computer-readable storage medium 822, possibly on one or more storage devices. Through suitable programming, the processing subsystem 804 can provide the various functionalities described above. In cases where the computer system 800 is running one or more virtual machines, one or more processing units may be assigned to each virtual machine.

[0102] In one embodiment, the processing acceleration unit 806 may be optionally provided to perform customized processing to accelerate the entire processing performed by the computer system 800, or to reduce the burden of some of the processing performed by the processing subsystem 804.

[0103] The I / O subsystem 808 may include devices and mechanisms for inputting information into the computer system 800 and / or outputting information from or through the computer system 800. Generally, the use of the term "input device" is intended to include all possible types of devices and mechanisms for inputting information into the computer system 800. User interface input devices may include pointing devices such as keyboards, mice or trackballs, touchpads or touchscreens integrated into displays, scroll wheels, click wheels, dials, buttons, switches, keypads, voice input devices with voice command recognition systems, microphones, and other types of input devices. User interface input devices may also include motion sensing and / or gesture recognition devices, such as Microsoft Kinect® motion sensors, Microsoft Xbox® 360 game controllers, and devices that provide interfaces for receiving input using gestures and spoken commands, enabling users to control and interact with the input devices. The user interface input device may also include an eye gesture recognition device, such as the Google Glass® Blink Detector, which detects eye activity from the user (e.g., blinking while taking a photo and / or selecting a menu) and translates the eye gestures into input to an input device (e.g., Google Glass®). In addition, the user interface input device may include a voice recognition sensing device that allows the user to interact with a voice recognition system (e.g., Siri® Navigator) through voice commands.

[0104] Other examples of user interface input devices include, but are not limited to, three-dimensional (3D) mice, joysticks or pointing sticks, gamepads and graphic tablets, as well as audio / visual devices such as speakers, digital cameras, digital video cameras, portable media players, webcams, image scanners, fingerprint scanners, barcode readers, 3D scanners, 3D printers, laser rangefinders, and eye-tracking devices. In addition, user interface input devices may also include medical imaging input devices such as computed tomography scanners, magnetic resonance imaging scanners, positron emission tomography scanners, and medical ultrasound machines. User interface input devices may also include audio input devices such as MIDI keyboards and digital musical instruments.

[0105] Generally, the use of the term "output device" is intended to include all possible types of devices and mechanisms for outputting information from the computer system 800 to a user or another computer. User interface output devices may include non-visual displays such as display subsystems, indicator lights, or audio output devices. Display subsystems may include flat panel devices such as those using cathode ray tubes (CRTs), liquid crystal displays (LCDs), or plasma displays, projection devices, touchscreens, etc. For example, user interface output devices may include, without limitation, a variety of display devices that visually convey text, graphics, and audio / video information, such as monitors, printers, speakers, headphones, car navigation systems, plotters, audio output devices, and modems.

[0106] The storage subsystem 818 provides a repository or data store for storing information and data used by the computer system 800. The storage subsystem 818 provides a tangible, non-temporary, computer-readable storage medium for storing data structures and basic programming that provide the functionality of several embodiments. The storage subsystem 818 may store software (e.g., programs, code modules, instructions) that, when executed by the processing subsystem 804, provides the functionality described above. The software may be executed by one or more processing units of the processing subsystem 804. The storage subsystem 818 may also provide a repository for storing data used in accordance with the teachings of this disclosure.

[0107] The storage subsystem 818 may include one or more non-temporary memory devices, including volatile and non-volatile memory devices. As shown in Figure 8, the storage subsystem 818 includes system memory 810 and computer-readable storage medium 822. The system memory 810 may include multiple memories, including volatile main random access memory (RAM) for storing instructions and data during program execution, and non-volatile read-only memory (ROM) or flash memory for storing fixed instructions. In some implementations, a basic input / output system (BIOS) containing basic routines that help transfer information between elements within the computer system 800 during startup, etc., is typically stored in ROM. RAM may contain data and / or program modules currently being operated and executed by the processing subsystem 804. In some implementations, system memory 810 may contain several different types of memory, such as static random access memory (SRAM) and dynamic random access memory (DRAM). .

[0108] As an example, not for the sake of limitation, as shown in Figure 8, system memory 810 is used for various applications such as web browsers, middle-tier applications, and relational database management systems (RDBMS). The system may load a running application program 812, which may include a translation, program data 814, and an operating system 816. For example, the operating system 816 may include various versions of Microsoft Windows®, Apple Macintosh®, and / or Linux operating systems, various commercially available UNIX® or UNIX-like operating systems (including, but not limited to, various GNU / Linux operating systems, Google Chrome® OS, etc.), and / or mobile operating systems such as iOS, Windows® Phone, Android® OS, BlackBerry® OS, Palm® OS, etc.

[0109] In one embodiment, software instructions or code that train the semantic parser 114 of the dialogue system 100 in the GAN155 as described herein may be executed in system memory 810.

[0110] The computer-readable storage medium 822 may store programming and data structures that provide functionality in several embodiments. The computer-readable storage medium 822 may also provide storage for computer-readable instructions, data structures, program modules, and other data for the computer system 800. Software (programs, code modules, instructions) that, when executed by the processing subsystem 804, provides the functionality described above may be stored in the storage subsystem 818. As an example, the computer-readable storage medium 822 may include non-volatile memory such as a hard disk drive, magnetic disk drive, CD-ROM, DVD, Blu-Ray® disc, or other optical media. The computer-readable storage medium 822 may include, but is not limited to, a Zip® drive, flash memory card, universal serial bus (USB) flash drive, secure digital (SD) card, DVD disc, digital videotape, etc. The computer-readable storage medium 822 may also include flash memory-based solid-state drives (SSDs), enterprise flash drives, etc. This may include SSDs based on non-volatile memory such as flash drives and solid-state ROM, SSDs based on volatile memory such as solid-state RAM, dynamic RAM, static RAM, DRAM-based SSDs, and magnetoresistive RAM (MRAM) SSDs, and hybrid SSDs that use a combination of DRAM-based SSDs and flash memory-based SSDs.

[0111] In one embodiment, the storage subsystem 818 may also include a computer-readable storage medium reader 820 which may be further connected to a computer-readable storage medium 822. The reader 820 may be configured to receive and read data from a memory device such as a disk or flash drive.

[0112] In some embodiments, the computer system 800 may support virtualization techniques, including but not limited to virtualization of processing and memory resources. For example, the computer system 800 may provide support for running one or more virtual machines. In some embodiments, the computer system 800 may run a program, such as a hypervisor, that facilitates the configuration and management of virtual machines. Each virtual machine may be allocated memory, computing (e.g., processors, cores), I / O, and networking resources. Each virtual machine generally operates independently of other virtual machines. A virtual machine typically runs its own operating system, which may be the same as or different from the operating systems run by other virtual machines run by the computer system 800. Thus, multiple operating systems may run by the computer system 800, possibly simultaneously.

[0113] The communication subsystem 824 provides interfaces to other computer systems and networks. It functions as an interface for receiving data from systems other than computer system 800 and transmitting data to other systems. For example, the communication subsystem 824 may enable computer system 800 to establish communication channels to client devices via the internet in order to receive and transmit information to and from one or more client devices.

[0114] The communication subsystem 824 may support both wired and / or wireless communication protocols. For example, in one embodiment, the communication subsystem 824 may use radio frequency (RF) transceivers to access wireless voice and / or data networks (e.g., using cellular technology, advanced data network technology (3G, 4G, or EDGE (enhanced data rates for global evolution), WiFi (IEEE 802.XX family standards)), or other mobile communication technologies, or any combination thereof) Components, Global Positioning System (GPS) receiver component It may include a network and / or other components. In some embodiments, the communication subsystem 824 can provide a wired network connection (e.g., Ethernet) in addition to, or instead of, a wireless interface.

[0115] The communication subsystem 824 can receive and transmit data in various formats. For example, in some embodiments, in addition to other formats, the communication subsystem 824 may receive input communications in the form of structured and / or unstructured data feeds 826, event streams 828, event updates 830, etc. For example, the communication subsystem 824 may receive web feeds such as Twitter® feeds, Facebook® updates, Rich Site Summary (RSS) feeds, and It may be configured to receive (or transmit) data feeds 826 in real time from users of social networks and / or other communication services, such as real-time updates from and / or one or more third-party sources.

[0116] In one embodiment, the communication subsystem 824 may be configured to receive data in the form of a continuous data stream that may have no definite end and may be inherently continuous or infinite, which may include an event stream 828 and / or event updates 830 of real-time events. Examples of applications that generate continuous data may include, for example, sensor data applications, financial tickers, network performance measurement tools (e.g., network monitoring and traffic management applications), clickstream analysis tools, and automotive traffic monitoring.

[0117] The communication subsystem 824 may also be configured to communicate data from the computer system 800 to other computer systems or networks. The data may be communicated to one or more databases that can communicate with one or more streaming data source computers coupled to the computer system 800, in various different formats such as structured and / or unstructured data feeds 826, event streams 828, event updates 830, etc.

[0118] Computer system 800 can be one of a variety of types, including handheld mobile devices (e.g., iPhone® mobile phones, iPad® computing tablets, PDAs), wearable devices (e.g., Google Glass® head-mounted displays), personal computers, workstations, mainframes, kiosks, server racks, or any other data processing systems. Due to the ever-changing nature of computers and networks, the description of computer system 800 shown in Figure 8 is intended to be merely an example. Many other configurations are possible, having more or fewer components than the system shown in Figure 8. Based on the disclosures and teachings provided herein, those skilled in the art will understand other ways and / or methods for realizing various embodiments.

[0119] While specific embodiments have been described, various modifications, changes, alternative structures, and equivalents are possible. The embodiments are not limited to operation within a particular data processing environment, but are free to operate within multiple data processing environments. Furthermore, while certain embodiments have been described using a specific set of transactions and steps, it should be apparent to those skilled in the art that this is not intended to be limiting. While some flowcharts describe operations as sequential processes, many operations can occur in parallel or simultaneously. Additionally, the order of operations may be rearranged. Processes may have additional steps not shown in the diagrams. The various features and aspects of the embodiments described above may be used individually or together.

[0120] Furthermore, while certain embodiments have been described using specific combinations of hardware and software, it should be recognized that other combinations of hardware and software are also possible. Some embodiments may be implemented using hardware alone, software alone, or a combination thereof. The various processes described herein may be implemented on the same processor or on different processors in any combination.

[0121] Where a device, system, component, or module is described as being configured to perform a certain operation or function, such configuration can be achieved, for example, by designing electronic circuits to perform an operation; by programming programmable electronic circuits (such as a microprocessor) to perform an operation; by executing, for example, computer instructions or code, or a processor or core programmed to execute code or instructions stored on a non-temporary storage medium, or any combination thereof. Processes can communicate using a variety of methods, including but not limited to conventional methods for inter-process communication, and different pairs of processes may use different methods, or the same pair of processes may use different methods at different times.

[0122] This disclosure provides specific details to give a complete understanding of the embodiments. However, embodiments can be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been shown without unnecessary details so as not to obscure the embodiments. This description provides exemplary embodiments. This is merely a description of the embodiments and is not intended to limit the scope, availability, or configuration of other embodiments. Rather, the above description of embodiments will provide a practical description for realizing various embodiments for those skilled in the art. Various modifications may be made to the function and configuration of the elements.

[0123] The specification and drawings should therefore be considered illustrative rather than restrictive. However, it will be apparent that additions, deletions, and other modifications and alterations may be made to them without departing from the broader spirit and scope set forth in the claims. For this reason, specific embodiments have been described, but these are not intended to be restrictive. A variety of modifications and equivalents are within the scope of the claims. Modifications and / or alterations include any relevant combination of the disclosed features.

[0124] According to one embodiment, the disclosed features are outlined as follows: Example 1: A method is provided for training a semantic parser for a dialogue system, the method comprising the step of accessing seed data containing seed tuples, each seed tuple in the seed data containing a seed utterance and a seed logical form corresponding to the seed utterance, the method further comprising the step of training a semantic parser and a classifier in a generative adversarial network (GAN), in which the semantic parser learns to map utterances to logical forms, the classifier learns to recognize authentic logical forms, and the semantic parser is available for use as part of the dialogue system.

[0125] Example 2: The method as in Example 1, wherein the steps for training a semantic parser and a classifier in a GAN include inputting a random utterance into the semantic parser, the semantic parser determining a generated logical form based on the random utterance, and inputting a tuple into the classifier that includes the generated tuple and a subset of seed tuples selected from seed data, the generated tuple includes the random utterance and the generated logical form, and the steps for training a semantic parser and a classifier in a GAN further include the step of the classifier determining the predicted authenticity of the tuple.

[0126] Example 3: The method of Example 2, wherein the steps for training the semantic parser and classifier in the GAN further include the steps of comparing the predicted authenticity with the actual authenticity of the tuple and updating the classifier based on the step of comparing the predicted authenticity with the actual authenticity of the tuple.

[0127] Example 4: The actual authenticity of one tuple in a tuple is based on the method in Example 3, where one tuple is one seed tuple in the seed data.

[0128] Example 5: The method of Example 3, wherein the steps for training the semantic parser and classifier in the GAN further include inputting a seed utterance into the semantic parser, the seed utterance being selected from a seed tuple, and the steps for training the semantic parser and classifier in the GAN further include the semantic parser determining an additional generated logical form based on the seed utterance, inputting an additional generated tuple containing the seed utterance and the additional generated logical form into the classifier, and the classifier determining an additional predicted authenticity of the additional generated tuple.

[0129] Example 6: The steps for training the semantic parser and discriminator in the GAN further include the steps of comparing additional predicted authenticity to the selected authenticity of additional generated tuples, and updating the semantic parser based on the step of comparing additional predicted authenticity to the selected authenticity of additional generated tuples, as described in Example 5. The method.

[0130] Example 7: The selected authenticity of an additional generated tuple is determined by the method in Example 6, which indicates that the additional generated tuple is authentic.

[0131] Example 8: The method according to Example 1, wherein the steps for training a semantic parser and a classifier in a GAN include: training a classifier using a first portion of seed data based on the output from the semantic parser while the semantic parser is static, in order to determine an updated classifier; and training a semantic parser using a second portion of seed data based on the output from the updated classifier while the updated classifier is static, in order to determine an updated semantic parser.

[0132] Example 9: The semantic parser is an inter-sequence neural network and the discriminator is a binary classifier, as described in Example 8.

[0133] Example 10: The method according to Example 1, further comprising the steps of: a dialogue system receiving voice input; applying an automatic speech recognition subsystem to the voice input to determine an utterance; applying a semantic parser to the utterance to determine a logical form; analyzing the logical form to generate a response text in response to the voice input; and applying a text-to-speech subsystem to the response text to determine an acoustic output for the dialogue system.

[0134] Example 11: A training system comprising a data input subsystem configured to access seed data comprising seed tuples, each seed tuple of the seed data comprising a seed utterance and a seed logical form corresponding to the seed utterance, the training system further comprising a generative adversarial network (GAN), the GAN comprising a classifier configured to learn to recognize authentic logical forms, a semantic parser configured to learn to map utterances to logical forms, and an error minimization module configured to train the semantic parser based on the output from the classifier which classifies the authenticity of the output of the semantic parser, the training system which is available as part of a dialogue system.

[0135] Example 12: The training system described in Example 11, wherein the data input subsystem is configured to input random utterances to a semantic parser, the semantic parser is configured to generate logical forms based on the random utterances, the data input subsystem is configured to input a tuple containing the generated tuple and a subset of seed tuples selected from seed data to a classifier, the generated tuple containing the random utterance and the generated logical form, and the classifier is configured to predict the authenticity of the tuple.

[0136] Example 13: The training system described in Example 12, wherein the error minimization module is further configured to update the classifier based on comparing the predicted authenticity with the actual authenticity of the tuple.

[0137] Example 14: The actual authenticity of one tuple in a tuple is based on the fact that one tuple is one seed tuple in the seed data, as described in Example 13.

[0138] Example 15: The data input subsystem is further configured to input a seed utterance to a semantic parser, the seed utterance being selected from a seed tuple, the semantic parser being configured to determine an additional generated logical form based on the seed utterance, and the data input subsystem includes the seed utterance from the seed data and the additional generated logical form. The training system described in Example 13 is configured to input additional generated tuples into a classifier, which is configured to determine the additional predicted authenticity of the additional generated tuples.

[0139] Example 16: The training system described in Example 15, wherein the error minimization module is further configured to update the semantic parser based on comparing additional predicted authenticity to the selected authenticity of additional generated tuples.

[0140] Example 17: The selected authenticity of an additional generated tuple is the training system described in Example 16, which indicates that the additional generated tuple is authentic.

[0141] Example 18: The training system described in Example 11, where the semantic parser is an inter-sequence neural network and the discriminator is a binary classifier.

[0142] Example 19: A computer program product for training a semantic parser of a dialogue system, the computer program product includes a computer-readable storage medium in which program instructions are embodied, the program instructions are executable by one or more processors to cause one or more processors to perform a method, the method including a step of accessing seed data including seed tuples, each seed tuple of the seed data including a respective seed utterance and a respective seed logical form corresponding to the respective seed utterance, the method further including a step of training a classifier of a generative adversarial network (GAN) based on a semantic parser of the GAN, the step of training the classifier including inputting a random utterance into the semantic parser, the step of the semantic parser determining a generated logical form based on the random utterance, and the step of inputting a tuple into the classifier including the generated tuple and a subset of seed tuples selected from the seed data, the generated tuple including a random utterance and a generated logical form, the step of training the classifier further includes the classifier The method further includes the steps of determining the predicted authenticity of a tuple, comparing the predicted authenticity to the actual authenticity of the tuple, updating the classifier based on the step of comparing the predicted authenticity to the actual authenticity of the tuple, the method further includes the step of training a semantic parser of a GAN based on a classifier of a GAN, the step of training the semantic parser includes inputting a seed utterance into the semantic parser, the seed utterance being selected from a seed tuple, the step of training the semantic parser further includes the step of the semantic parser determining an additional generated logical form based on the seed utterance, inputting an additional generated tuple into the classifier including the seed utterance from seed data and the additional generated logical form, the classifier updating the semantic parser based on the step of determining an additional predicted authenticity of the additional generated tuple, comparing the additional predicted authenticity to the selected authenticity of the additional generated tuple,A semantic parser is a computer program product that can be used in dialogue systems to map utterances into logical forms.

[0143] Example 20: The actual authenticity of one tuple in a tuple is based on the fact that one tuple is one seed tuple in the seed data, and the selected authenticity of an additional generated tuple indicates that the additional generated tuple is authentic, as described in Example 19 of the computer program product.

Claims

1. A method for training a semantic parser of a dialogue system, wherein the method is: Steps to access seed data, including seed tuples, The steps include: training a classifier in a generative adversarial network (GAN) using a first portion, which is a subset of seed tuples from a plurality of seed tuples included in the seed data, in order to determine the updated classifier; The process includes the step of training the semantic parser using a second portion of the seed data that is different from the first portion, in order to determine the updated semantic parser. The classifier is configured to classify the input tuple into either a tuple from the seed data or a tuple from the semantic parser. The step of training the semantic parser and the discriminator in the GAN is: The steps include inputting random utterances into the semantic parser, The semantic parser determines the generated logical form based on the random utterance, A method comprising the steps of inputting a tuple into the classifier, the tuple comprising a generated tuple and a subset of seed tuples selected from the seed data, wherein the generated tuple comprises the random utterance and the generated logical form.

2. The step of training the semantic parser and the classifier in the GAN further includes: The classifier performs the step of determining the predicted authenticity of the tuple input to the classifier, The steps include comparing the predicted authenticity with the actual authenticity of the tuple input to the classifier, The step of updating the classifier to reduce the error between the predicted authenticity and the actual authenticity based on the results of the comparison, The method according to claim 1, wherein the actual authenticity of one tuple in the tuple input to the classifier indicates whether the one tuple is one seed tuple in the seed data or one tuple in the generated tuple.

3. The step of training the semantic parser and the discriminator in the GAN further includes: The method according to claim 2, comprising the step of comparing the predicted authenticity with the actual authenticity of the tuple.

4. The method according to any one of claims 1 to 3, wherein the semantic parser is not trained and remains static during the step of training the classifier.

5. The method according to claim 4, wherein the semantic parser is a sequence-to-sequence neural network and the classifier is a binary classifier.

6. The dialogue system receives voice input, The steps include applying an automatic speech recognition subsystem to the speech input in order to determine the utterance, The steps include applying the semantic parser to the utterance to determine its logical form, The steps include analyzing the logical format in order to generate response text in response to the voice input, The method according to any one of claims 1 to 5, further comprising the step of applying a text-to-speech subsystem to the response text in order to determine an acoustic output for the dialogue system.

7. It is a training system, A data input subsystem configured to access seed data, including seed tuples, This includes a Generative Adversarial Network (GAN), wherein the GAN is Identifier and, Semantic parser and, The system includes an error minimization module configured to train the classifier using a first portion, which is a subset of seed tuples from a plurality of seed tuples contained in the seed data, based on the output from the semantic parser, in order to determine an updated classifier, and to train the semantic parser using a second portion, which is different from the first portion, of the seed data, based on the output from the updated classifier, in order to determine an updated semantic parser. The classifier is configured to classify the input tuple into either a tuple from the seed data or a tuple from the semantic parser. The data input subsystem is configured to input random utterances to the semantic parser. The semantic parser is configured to generate a logical form based on the random utterances. The data input subsystem is configured to input a tuple to the classifier, the tuple comprising a generated tuple and a subset of seed tuples selected from the seed data, wherein the generated tuple comprises the random utterance and the generated logical form, in a training system.

8. The classifier is configured to predict the authenticity of the tuple input to the classifier, The error minimization module compares the predicted authenticity with the actual authenticity of the tuple input to the classifier. Based on the results of the comparison, the classifier is configured to update in order to reduce the error between the predicted authenticity and the actual authenticity. The training system according to claim 7, wherein the actual authenticity of one tuple in the tuple input to the classifier indicates whether the one tuple is a seed tuple in the seed data or a tuple in the generated tuple.

9. The error minimization module further, The training system according to claim 8, configured to compare the predicted authenticity with the actual authenticity of the tuple.

10. The training system according to any one of claims 7 to 9, wherein the semantic parser is a sequence-to-sequence neural network and the classifier is a binary classifier.

11. A program for causing one or more processors to perform the method according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Voice synthesis learning device, method, and program

    JP2018036413A

  • Device, method, and program for processing information

    JP2019125317A

  • System and method for learning sentences

    US20190013012A1

  • Intent Based Dynamic Generation of Personalized Content from Dynamic Sources

    US20190163691A1