Semantic parser for training dialog systems using survivability adversarial network
By using Genetically Adversarial Network (GAN) to jointly train the semantic parser and discriminator, the problem of poor semantic parser performance when the training data is insufficient is solved, and more efficient semantic parsing and dialogue system response quality are achieved.
Patent Information
- Application Number
- CN202411731914.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2019-09-11
- Filing Date
- 2020-08-13
- Publication Date
- 2025-03-21
AI Technical Summary
When training semantic parsers, existing dialogue systems require a large amount of tuple data, each tuple includes verbal and corresponding logical form. When the amount of training data is insufficient, the semantic parser may not be effective enough, resulting in logical form errors and affecting the response quality of the dialogue system.
The semantic parser is trained using a generic adversarial network (GAN), and the semantic parser and discriminator are trained jointly, so that it can generate logical forms and deceive the discriminator into thinking that the logical form it generates is real.
Through GAN training, semantic parsers can effectively learn in adversarial contexts, and generate logical forms are difficult to distinguish from real data, thereby improving the response quality of the dialogue system and the semantic parsing ability of the dialogue system.
Smart Images

Figure CN119670726A_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application with application number 202080063344.0, filed on August 13, 2020, and invention name “Semantic parser for training dialogue systems using generative adversarial networks”. Technical Field
[0002] The present disclosure relates to a dialogue system, and more particularly to a technique for training a semantic parser for use in a dialogue system using a generative adversarial network, so that the semantic parser can effectively learn an adversarial context-generating logical form based on the generative adversarial network. Background Art
[0003] An increasing number of devices now enable users 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 questions or make statements requesting that an action be performed. In response, the device performs the requested action or responds to the user's question using audio output. Since interacting directly using voice is a more natural and intuitive way for humans to communicate with their surroundings, the popularity of such speech-based systems is growing at an astronomical rate. Summary of the invention
[0004] A dialog system is a speech-enabled system that is capable of engaging in a dialog with a user, such as via speech input and audio output. Typically, a dialog system includes one or more machine learning (ML) models, such as a semantic parser. The present disclosure relates to techniques for training a semantic parser for a dialog system using a generative adversarial network (GAN). For example, in some embodiments, the GAN includes a semantic parser as its generator, and also includes a discriminator and an error minimization module. In some embodiments, the semantic parser and the discriminator are ML models trained as opponents, such that the two ML models are improved together.
[0005] In some embodiments, seed data is used as training input for the GAN. The seed data may include a set of seed tuples, each seed tuple including an utterance and a logical form corresponding to the utterance. The embodiments described herein jointly train a semantic parser and a discriminator by first fixing the semantic parser while training the discriminator based on the semantic parser output, then fixing the discriminator while training the semantic parser based on the discriminator output, and repeating until the seed data is exhausted.
[0006] While the semantic parser is fixed and therefore static, the semantic parser can generate logical forms based on randomly selected utterances. Each pair of randomly selected utterances and the corresponding logical forms generated by the semantic parser can form a generated tuple together. The discriminator can receive the generated tuples as well as the seed tuple as input. For each such tuple, the discriminator can output (i.e., predict) the probability that the tuple is true, or in other words, the probability that the tuple is a seed tuple. The error minimization module can generate a training signal to train the discriminator based on the divergence of the discriminator's predictions compared to the accurate distribution (i.e., the exact sequence of values) indicating whether the tuple is true.
[0007] When the discriminator is fixed and therefore static, the semantic parser may generate logical forms based on utterances selected from the seed tuples of the seed data. Each pair of utterances from the seed data and the corresponding logical forms generated by the semantic parser together may form a tuple. The discriminator may receive such tuples as input, and for each tuple, may predict the probability that the tuple is true. The error minimization module may generate a training signal to train the semantic parser based on the divergence of the discriminator's actual predictions of truthfulness from the expected set of predictions in which all generated logical forms are predicted to be true. In other words, the semantic parser is trained with the goal of fooling the discriminator into thinking that all generated logical forms are true.
[0008] Thus, the semantic parser and discriminator can be jointly trained as members of the GAN, with the semantic parser learning to generate logical forms and the discriminator learning to recognize logical forms. Eventually, as the discriminator improves and thus the semantic parser improves, the semantic parser can become so good at generating logical forms that the generated logical forms are indistinguishable from logical forms belonging to the seed data. In this way, the semantic parser is trained to generate logical forms based on the utterance.
[0009] In other embodiments, the dialog system may include a speech input module for receiving speech input, a speech output module for outputting speech output to a user, and a dialog processing module for performing one or more actions or causing one or more actions to be performed based on the interpretation of the speech input and preparing an appropriate response to the user. The dialog processing module may utilize a semantic parser obtained by using the above-mentioned technique for training a semantic parser for a dialog system using a GAN.
[0010] The foregoing as well as other features and embodiments will become more fully apparent upon reference to the following description, claims and accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] Figure 1is a diagram of a dialog system incorporating a semantic parser trained in a generative adversarial network according to certain embodiments described herein.
[0012] Figure 2 is a diagram of a training system configured to train a semantic parser and a discriminator in a generative adversarial network according to certain embodiments described herein.
[0013] Figure 3 is a diagram of a method for training a semantic parser jointly with a discriminator in a generative adversarial network according to certain embodiments described herein.
[0014] Figure 4 According to some embodiments described herein, Figure 3 Diagram of the method for training the discriminator as part of a training round in the method.
[0015] Figure 5 According to some embodiments described herein, Figure 3 Diagram of a method for training a semantic parser as part of a training round in the method.
[0016] Figure 6 is a diagram of a distributed system for implementing certain embodiments described herein.
[0017] Figure 7 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 in part as a cloud service according to certain embodiments described herein.
[0018] Figure 8 is a block diagram of an example computer system that can be used to implement certain embodiments described herein. DETAILED DESCRIPTION
[0019] In the following description, for the purpose of explanation, specific details are set forth in order to provide a thorough understanding of certain embodiments. However, it is apparent that various embodiments can be practiced without these specific details. The figures and descriptions are not intended to be limiting. The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment or design described herein as "exemplary" or "example" is not necessarily to be construed as preferred or superior to other embodiments or designs.
[0020] A speech-enabled system capable of engaging in a conversation with a user via speech input and audio output (also referred to as voice output) can come in a variety of forms. For example, such a system can be provided as a standalone device, as a digital or virtual assistant, as a voice service, and the like. In each of these forms, the system is capable of receiving speech input, understanding the speech input, generating a response or taking an action in response to the speech input, and outputting the response using an audio output. In some embodiments, the conversation functionality in such a speech-enabled system is provided by a conversation system or infrastructure ("conversation system"). The conversation system is configured to receive speech input, interpret the speech input, maintain a conversation, possibly perform or cause one or more actions to be performed based on the interpretation of the speech input, prepare an appropriate response, and output the response to the user using an audio output.
[0021] Conventionally, a dialog system includes various machine learning (ML) models, and a large amount of training data is required to train the various machine learning models of the dialog system. One of such ML models is a semantic parser subsystem, also referred to as a semantic parser. In general, a semantic parser receives an utterance representing a speech input provided by a user, where an utterance is a textual representation of a natural language. The semantic parser maps the utterance to a logical form, which is a representation of a logic-based language that translates the utterance into a given grammar, and can therefore be parsed by the dialog manager subsystem of the dialog system. The dialog management subsystem then parses and processes the logical form to determine how to respond.
[0022] In order to train the semantic parser subsystem, the training system associated with the dialogue system typically requires a large number of tuples, each of which includes an utterance (e.g., a textual representation of a natural language) and a corresponding logical form. When an insufficient amount of training data is used, the semantic parser may not be as effective as expected and may introduce errors into the logical form and thus into the workflow of the dialogue system. Due to the errors introduced in the logical form, the dialogue manager subsystem may not be able to generate an appropriate response to the user.
[0023] Generative adversarial networks (GANs) are an architecture for training generators and discriminators in an adversarial manner. GANs are commonly used in image analysis, particularly in the field of machine vision. In an example conventional GAN, an image generator generates images that are intended to belong to a specific category (e.g., images of faces), and the discriminator determines whether the generated image actually belongs to that category. By comparing the outputs of the image generator and the discriminator with the accurate distribution of the outputs, the GAN provides a training signal to the image generator and the discriminator to train the image generator and the discriminator. GANs are particularly useful when the available training data is less than the ideal data for individual training, because the adversarial nature allows for effective training with relatively small training data sets.
[0024] In some embodiments of the training system described herein, a semantic parser for a dialog system is trained in a GAN. Specifically, the semantic parser can act as a generator for the GAN and can therefore learn to generate logical forms, while the discriminator can learn to distinguish between true and untrue logical forms. The error minimization module can apply one or more objective functions to provide training signals to train the semantic parser and the discriminator. After training, the semantic parser can be used to map utterances to logical forms as part of a dialog system. Due to the adversarial nature of training in a GAN, this way of training a semantic parser can be more effective than traditional techniques based on individual training of semantic parsers.
[0025] Figure 1 1 is a diagram of an example of a dialog system 100 according to some embodiments described herein, which utilizes a semantic parser 114 trained in a GAN 155. The dialog system 100 is configured to receive a speech input 104, also referred to as a voice input, from a user 102, such as through a speech input module. For example, the speech input module receives speech input from a microphone or another device that can obtain speech or voice. The dialog system 100 can then interpret the speech input 104. The dialog system 100 can maintain a dialog with the user 102 and can perform one or more actions or cause one or more to be performed based on, for example, the interpretation of the speech input 104 by a dialog processing module that utilizes the semantic parser 114. The dialog system 100 can prepare an appropriate response, such as by using a dialog processing module, and can output a response to the user using a speech or voice output (also referred to as an audio output), such as through a speech output module. For example, the speech output module can be a speaker or another device that can output speech or voice. The dialog system 100 is a special-purpose computing system that can be used to process large amounts of data, potentially using a large number of computer processing cycles. Figure 1 The number of devices depicted is for illustration purposes only. A different number of devices may be used. For example, although Figure 1 Each device, server, and system in is shown as a single device, but multiple devices may be used.
[0026] In some embodiments, the processing performed by the dialog system 100 is implemented by a pipeline of components or subsystems, including a speech input component 105; a wake word detection (WD) subsystem 106; an automatic speech recognition (ASR) subsystem 108; a natural language understanding (NLU) subsystem 110, which includes a named entity recognizer (NER) subsystem 112 and a semantic parser subsystem 114; a dialog manager (DM) subsystem 116; a natural language generator (NLG) subsystem 118; a text-to-speech (TTS) subsystem 120; and a speech output component 124. The subsystems listed above can be implemented in software only (e.g., using code, programs, or instructions that can be executed by one or more processors or cores), in hardware, or in a combination of hardware and software. In some embodiments, one or more of the subsystems can be combined into a single subsystem. Additionally or alternatively, in some embodiments, the functions performed by a particular subsystem described herein can be implemented by multiple subsystems.
[0027] The speech input component 105 includes hardware and software configured to receive the speech input 104. In some cases, the speech input component 105 can be part of the dialogue system 100. In some other instances, the speech input component 105 can be separate from the dialogue system 100 and communicatively coupled to the dialogue system 100. For example, the speech input component 105 can include a microphone coupled to software configured to digitize the speech input 104 and transmit it to the wake-up word detection subsystem 106.
[0028] The wake-up word detection (WD) subsystem 106 is configured to listen and monitor the audio input stream for input corresponding to a special sound or word or set of words (referred to as a wake-up word). Upon detecting a wake-up word for the dialog system 100, the WD subsystem 106 is configured to activate the ASR subsystem 108. In some embodiments, the user may be provided with the ability to activate or deactivate the WD subsystem 106 (e.g., by pressing a button) so that the WD subsystem 106 listens for or stops listening for the wake-up word. When activated or operating in active mode, the WD subsystem 106 is configured to continuously receive an audio input stream and process the audio input stream to identify audio input corresponding to a wake-up word, such as speech input 104. When an audio input corresponding to a wake-up word is detected, the WD subsystem 106 activates the ASR subsystem 108.
[0029] As described above, the WD subsystem 106 activates the ASR subsystem 108. In some embodiments of the dialog system 100, mechanisms other than wake-up word detection may be used to trigger or activate the ASR subsystem 108. For example, in some embodiments, a button on the device may be used to trigger the ASR subsystem 108 without a wake-up word. In such embodiments, the WD subsystem 106 does not need to be provided. When the button is pressed or activated, the speech input 104 received after the button activation is provided to the ASR subsystem 108 for processing. In addition or alternatively, in some embodiments, the ASR subsystem 108 may be activated when input to be processed is received.
[0030] The ASR subsystem 108 is configured to receive and monitor speech input 104 after a trigger or wake-up signal (for example, the wake-up signal can be sent by the WD subsystem 106 after detecting a wake-up word in the speech input 104, or the wake-up signal can be received after a button activation) and convert the speech input 104 into text. As part of its processing, the ASR subsystem 108 performs speech-to-text conversion. The speech input 104 can be in a natural language form, and the ASR subsystem 108 is configured to generate corresponding natural language text in the language of the speech input 104. Such corresponding natural language text is referred to herein as an utterance. For example, the speech input 104 received by the ASR subsystem 108 may include one or more words, phrases, clauses, sentences, questions, etc. The ASR subsystem 108 is configured to generate an utterance for each spoken clause and feed the utterance to the NLU subsystem 110 for further processing.
[0031] 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 translates each utterance or series of utterances into a corresponding logical form.
[0032] In some embodiments, the NLU subsystem 110 includes a named entity recognizer (NER) subsystem 112 and a semantic parser subsystem 114. The NER subsystem 112 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 utterances are then fed to the semantic parser subsystem 114, which is configured to generate a logical form for each tagged utterance or a series of tagged utterances. The logical form generated for the utterance can identify one or more intents corresponding to the utterance. The intent of the utterance identifies the target of the utterance. Examples of intents include "order a pizza" and "find directions." For example, an intent can identify an action that is requested to be performed. In addition to the intent, the logical form generated for the utterance can also identify slots, also known as parameters or arguments, for the identified intent. For example, for the utterance input "I want to order a large pepperoni pizza with mushrooms and olives," the NLU subsystem 110 can identify the intent of ordering pizza. The NLU subsystem can also identify and fill slots, such as pizza_size (filled with large) and pizza_toppings (filled with mushrooms and olives). The NLU subsystem 110 may generate logical forms using machine learning based techniques, rules that may be domain specific, or a combination of machine learning techniques and rules. The logical forms generated by the NLU subsystem 110 are then fed to the DM subsystem 116 for further processing.
[0033] like Figure 1 As shown in , in some embodiments, the training system 150 described herein trains the semantic parser subsystem 114, also referred to herein as the semantic parser 114, as part of the generative adversarial network 155 to prepare the semantic parser 114 for its operation in the dialogue system 100. For example, the training system 150 utilizes the GAN 155 to train the semantic parser 114 to perform the above-described task of determining the logical form based on one or more utterances. In some embodiments, the dialogue system 100 is improved over conventional dialogue systems by using such adversarial techniques for training the semantic parser 114.
[0034] The DM subsystem 116 is configured to manage a dialogue with a user based on the logical form received from the NLU subsystem 110. As part of dialogue management, the DM subsystem 116 is configured to track the state of the dialogue, initiate the execution of one of a plurality of actions or tasks or perform itself, and determine 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 the intent identified in the logical form received from the NLU subsystem 110. Based on these interpretations, the DM subsystem 116 may initiate one or more actions that it interprets as being requested by the speech input 104 provided by the user. In some embodiments, the DM subsystem 116 performs dialogue state tracking based on current and past speech input 104 and based on a set of rules (e.g., dialogue policies) configured for the DM subsystem 116. These rules may specify different dialogue states, conditions for transitions between states, actions to be performed in specific states, etc. These rules may be domain-specific. The DM subsystem 116 also generates responses to be transmitted back to the users involved in the dialogue. These responses may be based on the actions initiated by the DM subsystem 116 and their results. The responses generated by the DM subsystem 116 are fed to the NLG subsystem 118 for further processing.
[0035] The NLG subsystem 118 is configured to generate natural language text corresponding to the response generated by the DM subsystem 116. The texts may be generated in a form that enables them to be converted into speech by the TTS subsystem 120. The TTS subsystem 120 receives the texts from the NLG subsystem 118 and converts each of them into speech or voice audio, which may then be output as audio to the user via an audio or speech output component 124 of the dialog system (e.g., a speaker, or a communication channel coupled to an external speaker). In some cases, the speech output component 124 may be part of the dialog system 100. In some other cases, the speech output component 124 may be separate from the dialog system 100 and communicatively coupled to the dialog system 100.
[0036] As described above, the various subsystems of the dialog system 100 working in cooperation provide functionality that enables the dialog system 100 to receive speech input 104 and respond using speech output 122 and thereby maintain a dialog with a user using natural language speech. The various subsystems described above may be implemented using a single computer system or using multiple computer systems working in cooperation. For example, for a device implementing a speech-enabled system, the subsystems of the dialog system 100 described above may be implemented entirely on the device with which the user interacts. In some other implementations, some components or subsystems of the dialog system 100 may be implemented on the device with which the user interacts, while other components may be implemented remotely from the device, perhaps on some other computing device, platform, or server.
[0037] Figure 2 1 is a diagram of a training system 150 configured to train a semantic parser 114 of a dialog system 100 by using a generative adversarial network 155 according to certain embodiments 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 jointly with a discriminator 250 in the GAN 155. An error minimization module 260 in the GAN 155 may provide one or more training signals back to the semantic parser 114 and the discriminator 250 to train the semantic parser 114 and the discriminator 250, more specifically, to train the semantic parser 114 using back propagation. A data input subsystem 240 of the training system 150 may provide inputs, such as inputs based on the seed data 210, to the semantic parser 114, the discriminator 250, and the error minimization module 260 to enable the semantic parser 114, the discriminator 250, and the error minimization module 260 to perform the tasks described herein. After training, semantic parser 114 can be used as part of dialog system 100, such as Figure 1 as shown in .
[0038] In some embodiments, the training system 150 is implemented as a computing device or a portion thereof, such as a server. The training system 150 can be implemented as a dedicated hardware device or program code, or a combination of both. For example, the operations described herein as being performed by the training system 150 can be implemented in a program code that implements the training system 150, wherein such program code can be executed by one or more processing units. For example, the semantic parser 114, the discriminator 250, the error minimization module 260, and other aspects of the GAN 155 can each be implemented as one or more software functions or dedicated hardware devices, and can operate together to implement the training system 150, as described herein. The semantic parser 114 and the discriminator 250 can each be implemented as a corresponding machine learning model, such as a neural network.
[0039] like Figure 2As shown in , the training system 150 may include a GAN 155, which includes a generator and a discriminator 250 that are jointly trained. Specifically, the generator may be the semantic parser 114 of the dialogue system 100, and thus, the semantic parser 114 is trained within the GAN 155 before or simultaneously being integrated into the dialogue system 100. Specifically, the training system 150 may train the semantic parser 114 to map the utterance 220 to the logical form 230, and the training system 150 may train the discriminator 250 to determine whether the logical form 230 is true (i.e., shares a seed tuple with its corresponding utterance 220 in the set 210 of seed data). In addition, the error minimization module 260 updates the semantic parser 114 and the discriminator 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 GAN 155, the semantic parser 114 and the discriminator 250 are jointly trained so that each of the semantic parser 114 and the discriminator 250 improves as the other improves. Thus, the semantic parser 114 learns to map an utterance 220 , such as an utterance 220 tagged by the NER subsystem 112 , to a logical form 230 that can be used by the DM subsystem 116 .
[0040] In some embodiments, the semantic parser 114 is a neural network, such as a sequence-to-sequence (seq2seq) model, for determining the logical form 230 based on the utterance 220. Conventionally, the semantic parser is trained with training data comprising a collection of tuples, each tuple having an utterance and a corresponding logical form. However, as described herein, in some embodiments, the semantic parser 114 is trained as part of the GAN 155. As further described herein, the training utilizes seed data 210 comprising seed tuples, each seed tuple comprising an utterance 220 and a corresponding logical form 230. However, the training also incorporates the output from the discriminator 250.
[0041] The discriminator 250 may be a binary classifier that maps a tuple to a class; for example, the discriminator 250 may be implemented as a neural network. The discriminator 250 may receive as input a tuple including an utterance 220 and a logical form 136, and the discriminator 250 may output an indicator of whether the logical form 230 is a true representation of the utterance 220. For example, the discriminator 250 may output a probability that the logical form 230 is true (i.e., paired with the utterance 220 in the seed data 210) and is therefore accurate. In some embodiments, to achieve this, the discriminator 250 may be jointly trained with the semantic parser 114 in the GAN 155 as described herein.
[0042] The error minimization module 260 may provide a training signal to train the discriminator 250 and train the semantic parser 114 via back propagation. For example, to train the discriminator 250, the error minimization module 260 may utilize the first objective function 265 to compare the output of the discriminator 250 (which is an indication of whether the received logical form 230 is real) with an accurate distribution of indications of the truth of those logical forms 230. The error minimization module 260 may use the results of the first objective function 265 to train the discriminator 250 to better predict truth.
[0043] To train the semantic parser 114, the error minimization module 260 may compare the output from the discriminator 250 (predictions of the truth of the logical forms 230 output by the semantic parser 114) with a selected distribution (i.e., an expected distribution) of indications of the truth of those logical forms 230 using a second objective function 265, which may be the same as the first objective function 265. The selected distribution may be a distribution indicating that all logical forms 230 output by the semantic parser 114 are true. This is because, in some embodiments, the training system 150 seeks to provide a semantic parser 114 whose output is always considered to be true. Those skilled in the art will understand how to construct such an objective function 265. In some embodiments, while the semantic parser 114 and the discriminator 250 are jointly trained within the GAN 155, at a given time, no more than one of the semantic parser 114 and the generator is jointly trained based on the training signal from the error minimization module 260.
[0044] Figure 3 is a diagram of a method 300 for jointly training a semantic parser 114 with a discriminator 250 in a GAN 155 according to certain embodiments described herein. In some embodiments, this method 300 or a similar method is performed before the semantic parser 114 is used in a dialog system 100. Through the training described herein, the semantic parser 114 can learn to translate (i.e., map) utterances 220 into logical forms 230 representing such utterances 220, which is a task performed by the semantic parser 114 as part of the dialog system 100.
[0045] Figure 3 The method 300 depicted in 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., processors or processor cores), hardware, or a combination thereof. The software may be stored on a non-transitory storage medium, such as on a memory device. This method 300 is intended to be illustrative and not limiting. Although Figure 3Various activities are depicted as occurring in a particular order or sequence, but this is not intended to be limiting. In some embodiments, for example, the activities may be performed in a different order, or one or more activities of method 300 may be performed in parallel. In some embodiments, method 300 may be performed by training system 150.
[0046] like Figure 3 As shown in , at block 305, the data input subsystem 240 of the training system 150 obtains seed data 210. The seed data 210 may include a collection of seed tuples, where each seed tuple includes an utterance 220 and a corresponding logical form 230. In each seed tuple, the logical form 230 is an accurate and authentic representation or translation of the utterance 220. It will be appreciated that there are various techniques for obtaining the seed data 210. For example, the seed data 210 may be manually determined, such as through crowdsourcing, and then stored in a memory device accessible to the data input subsystem 240.
[0047] At block 310, the training system 150 begins 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 the discriminator 250 during a portion of the round and training the semantic parser 114 during another portion of the round. Although the two portions of the round may be performed in parallel, in some embodiments the two portions are performed sequentially so that the training of the semantic parser 114 in the second portion can benefit from the training of the discriminator 250 in the first portion. In addition, for each round of training the discriminator 250 and the semantic parser 114, and therefore, for each iteration of the loop, the training system 150 may utilize a different subset of the seed data 210.
[0048] At block 315, the training system 150 trains the discriminator 250 based on the first portion of the seed data 210 obtained at block 305. In some embodiments, this first portion of the seed data 210 has not been used for a previous round of training. During this training of the discriminator 250, the semantic parser 114 may be fixed so that the discriminator 250 can be updated based on the discriminator's prediction of the truthfulness of the output from the semantic parser 114 without changing how the semantic parser 114 determines the output. Figure 4 The activities involved in training the discriminator 250 during a training round are described in more detail.
[0049] At block 320, the training system 150 performs training of the semantic parser 114 based on the second portion of the seed data 210 obtained at block 305. In some embodiments, this second portion of the seed data 210 is different from the first portion used at block 310 (e.g., there is no overlap in seed tuples) and has not been used in a previous round of training. During this training of the semantic parser 114, the discriminator 250 can be fixed so that the semantic parser 114 can be updated based on the discriminator's prediction of the authenticity of the output of the semantic parser 114 without changing how the discriminator 250 determines authenticity. Figure 5 The activities involved in training the semantic parser 114 during a training round are described in more detail.
[0050] At decision block 325, the training system 150 determines whether all of the seed data 210 obtained at block 305 have been selected and used for a round of training (i.e., a certain iteration of the loop) as described above. If all of the seed data 210 have not been used, the method 300 can return to block 310 to begin another round of training. However, if all of the seed data 210 have been used in training, the method 300 can end at block 330, at which point the semantic parser 114 has been trained and is ready for use in the dialog system 100.
[0051] Figure 4 is a diagram of a method 400 for training the discriminator 250 as part of a round of training in the GAN 155 according to certain embodiments described herein. Specifically, the training system 150 may perform this method 400 or a similar method at block 315 of the method 300 described above to train the discriminator 250 in a single round of training. Thus, according to some embodiments, this method 400 or a similar method may be performed once per iteration.
[0052] Figure 4 The method 400 depicted in 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., processors or processor cores), hardware execution, or a combination thereof. The software may be stored on a non-transitory storage medium, such as on a memory device. This method 400 is intended to be illustrative and not limiting. Although Figure 4 Various activities are depicted as occurring in a particular order or sequence, but this is not intended to be limiting. In some embodiments, for example, the activities may be performed in a different order, or one or more activities of method 400 may be performed in parallel. In some embodiments, method 400 may be performed by training system 150.
[0053] At block 405, the data input subsystem 240 of the training system 150 selects a first portion of the seed data 210, wherein the first portion has not been used in a previous training round. 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 seed tuples of the seed data 210 are included in the first portion.
[0054] At block 410 , the semantic parser 114 is fixed, while the discriminator 250 is opened for updating. In other words, in some embodiments, the semantic parser 114 will temporarily remain static to enable the discriminator 250 to be trained based on the current state of the semantic parser 114 .
[0055] In some embodiments, block 415 and block 420 are performed in parallel. At block 415, the data input subsystem 240 of the training system 150 inputs the stream of utterances 220 to the semantic parser 114, and the semantic parser 114 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 be utterances 220 that are not from the seed data 210 but are randomly generated or randomly selected by, for example, the data input subsystem 240 or some other component. For example, but not by way of limitation, the utterances 220 may be selected from a corpus written in a 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. Early in the training, the output of the logical form 230 of 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 the training proceeds throughout one or more rounds, the semantic parser 114 may improve.
[0056] At block 420, which may be performed in parallel with block 415, the data input subsystem 240 of the training system 150 may input a stream of tuples to the discriminator 250, and the discriminator 250 may generate predictions of authenticity for those tuples. Each tuple in the stream of tuples may include an utterance 220 and a logical form 230. The data input subsystem 240 may provide this stream of tuples as a combination (e.g., a random or arbitrary combination) of (1) seed tuples from the first portion of the seed data 210 selected at block 405 and (2) tuples having a logical form 230 that has been generated by the semantic parser 114 at block 415. Based on the stream of tuples, the discriminator 250 may output a prediction of authenticity corresponding to the tuple. In other words, given a tuple, the discriminator 250 may predict whether the logical form 230 in the tuple is a true representation of the utterance 220 in the tuple, or in other words, the discriminator 250 may guess whether the tuple is part of the seed data rather than a logical form 230 that has been generated by the semantic parser 114. The tuples received by the discriminator 250 may include a seed tuple in the first portion of the seed data 210 and generated tuples, each of which includes an utterance 220 received by the semantic parser 114 and a corresponding logical form 230 generated by the semantic parser 114 at block 415 .
[0057] In some embodiments, the discriminator 250 is not informed which tuples are from the seed data 210 and are therefore authentic, and which tuples are from the semantic parser 114 and are therefore generated. For each tuple, the discriminator 250 can classify the tuple based on the perceived authenticity. To this end, the discriminator 250 can output a score indicating the likelihood that it determines (i.e., predicts) that the logical form 230 is a true representation of the corresponding utterance 220 in the tuple; for example, the score is the probability that the logical form 230 is a true representation of the corresponding utterance 220 in the tuple, and therefore the tuple is from the seed data 210. Ideally, the discriminator 250 outputs a high probability, such as 1, for the authentic tuple (i.e., the seed tuple), and outputs a low probability, such as 0, for the generated tuple. Early in training, the output of the discriminator can be poor. For example, the probability output can be a random number within a fixed range (e.g., between 0 and 1, including the endpoints). However, as training proceeds through a full round or multiple rounds, the discriminator 250 can improve.
[0058] At block 425, the error minimization module 260 of the training system 150 generates a training signal based on the outputs of the semantic parser 114 and the discriminator 250 (as determined at blocks 415 and 420) to train the discriminator 250. In some embodiments, the data input subsystem 240 of the training system 150 provides the first portion of the seed data 210 accessed at block 405 to the error minimization module 260 to enable the error minimization module 260 to determine the training signal.
[0059] For example, the error minimization module 260 can apply a first objective function 265 that compares the predicted accurate distribution (i.e., the accurate sequence of values) with the predicted actual distribution (i.e., the actual sequence of values) from the discriminator 250 to determine the degree of divergence or difference between those two distributions. The error minimization module 260 can access the first portion of the seed data 210 and can therefore know which tuples received by the discriminator 250 are real and which tuples are generated. Therefore, the error minimization module 260 knows that the accurate distribution assigns a value of 1 (i.e., a hundred percent probability) to the seed tuple and assigns a value of 0 (i.e., a zero percent probability) to the generated tuple that is not real. Therefore, the error minimization module 260 can compare this accurate distribution with the actual output of the discriminator 250 using the first objective function 265, thereby providing a training signal to the discriminator 250. The training signal represents the error in the prediction made by the discriminator 250. Based on the training signal, the training system 150 can update the discriminator 250 to reduce the error between the accurate distribution and the actual distribution. For example, nodes of a neural network acting as the discriminator 250 may be updated based on a training signal.
[0060] In some embodiments, Figure 4 As shown in , block 425 is performed after blocks 415 and 420. In that case, the error minimization module 260 may provide a training signal only after the discriminator 250 has received all tuples used to train the discriminator 250 in this round of training. Therefore, the discriminator 250 may be updated once based on the batch including the entire first portion of the seed data 210 and the generated tuples as described above. However, alternatively, block 425 may be performed in parallel with blocks 415 and 420, such that the training signal is sent back to the discriminator 250 while the discriminator 250 is evaluating the input, so that the discriminator 250 is updated while the first portion of the seed data 210 and the generated tuples are still being provided.
[0061] At block 430 , the training system 150 ends the training of the discriminator 250 in the current round of training. Thus, the semantic parser 114 that was fixed at block 410 is unlocked and does not need to remain fixed as training proceeds.
[0062] Figure 5 is a diagram of a method for training a semantic parser as part of a round of training in a GAN 155 according to some embodiments described herein. Specifically, the training system 150 may perform this method 500 or a similar method at block 320 of the above method 300 to train the semantic parser 114 in a single round of training. Thus, according to some embodiments, this method 500 or a similar method may be performed once per iteration.
[0063] Figure 5 The method 500 depicted in 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., processors or processor cores), hardware execution, or a combination thereof. The software may be stored on a non-transitory storage medium, such as on a memory device. This method 500 is intended to be illustrative and not limiting. Although Figure 5 Various activities are depicted as occurring in a particular order or sequence, but this is not intended to be limiting. In some embodiments, for example, the activities may be performed in a different order, or one or more activities of method 500 may be performed in parallel. In some embodiments, method 500 may be performed by training system 150.
[0064] At block 505, the data input subsystem 240 of the training system 150 selects a second portion of the seed data 210, wherein the second portion has not been used in a previous training round. 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 of the seed data 210 are included in the second portion. Furthermore, in some embodiments, the second portion of the seed data 210 is different from the first portion; however, alternatively, the second portion may be the same as the first portion of the seed data 210. In either case, the remainder of the seed data 210 outside of the first portion and the second portion may be used in subsequent iterations of the overall training method 300.
[0065] At block 510 , the discriminator 250 is fixed, while the semantic parser 114 is opened for updating. In other words, in some embodiments, the discriminator 250 will remain static for the time being, so that the semantic parser 114 can be trained based on the current state of the discriminator 250 .
[0066] In some embodiments, blocks 515 and 520 are performed in parallel. At block 515, the data input subsystem 240 of the training system 150 inputs the utterances 220 from the second portion of the seed data 210 selected at block 505 to the semantic parser 114, and the semantic parser 114 generates the logical form 230 based on such utterances 220. Early in the training, the output of the logical form 230 of 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 the training proceeds throughout the round or multiple rounds of training, the semantic parser 114 may improve.
[0067] At 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 the discriminator 250, and the discriminator 250 may make a prediction about the truth of each tuple in the stream. Each tuple in the stream of tuples may include an utterance 220 and a corresponding logical form 230. More specifically, each tuple received may include an utterance 220 from a corresponding seed tuple selected from the second portion of the seed data 210 (as selected at block 505), and a generated logical form 230 output by the semantic parser 114 at block 515 based on the utterance 220 provided as input to the semantic parser 114. For each tuple received, the discriminator 250 may classify the tuple based on the asserted truth. Specifically, the discriminator 250 can output a score indicating the likelihood of authenticity; for example, the score determined by the discriminator 250 for the tuple can be the probability that the logical form 230 is a true and therefore accurate representation of the corresponding utterance 220 in the tuple, or in other words, the probability that the tuple is a seed tuple from the seed data 210. At this point, the discriminator 250 has already received some training, such as reference Figure 4 As described, the discriminator 250 can therefore continue to improve in subsequent training rounds, although its output may still need improvement.
[0068] At block 525, the error minimization module 260 of the training system 150 generates a training signal based on the outputs of the semantic parser 114 and the discriminator 250 (as determined at blocks 515 and 520) to train the semantic parser 114 via back propagation. To this end, for example, the error minimization module 260 applies a second objective function 265 that determines the divergence between the predicted selected distribution from the discriminator 250 and the predicted actual distribution from the discriminator 250. The second objective function 265 can, but need not be, the same as the first objective function 265 used in training the discriminator 250. In some embodiments, because the training system 150 seeks to improve the semantic parser 114 so that the semantic parser 114 can fool the discriminator 250 into predicting that the outputs of the semantic parser 114 are all true, the predicted selected distribution is a range of distributions. In some embodiments, such a predicted distribution will indicate that all logical forms 230 generated by the semantic parser 114 are true. Thus, the second objective function 265 may compare this selected distribution (eg, a range of distributions) to the actual distribution of outputs from the discriminator 250 at block 520 to determine the degree of difference between the distributions.
[0069] The error minimization module 260 can compare this selected distribution with the actual predictions of the discriminator 250 using a second objective function 265 to provide a training signal to the semantic parser 114. The training signal represents an error in the predictions made compared to the selected (i.e., desired) distribution. Based on the training signal, the semantic parser 114 can be updated to reduce the error between the selected distribution and the actual distribution. For example, nodes of a neural network acting as the semantic parser 114 can be updated based on the training signal.
[0070] In some embodiments, Figure 5 As shown in , block 525 is performed after blocks 515 and 520. 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 in the second portion of the seed data 210. Thus, the semantic parser 114 is updated based on a batch that includes the entire second portion of the seed data 210. However, alternatively, block 525 may be performed in parallel with blocks 515 and 520, such that the training signal is sent back to the semantic parser 114 as the semantic parser 114 evaluates the input, such that the semantic parser 114 is updated when provided with utterances 220 from the second portion of the seed data 210.
[0071] Thus, as described above, GAN 155 can be used to train semantic parser 114 for use in dialogue system 100. Various modifications may be made to the above techniques, and such modifications are within the scope of the present disclosure. For example, a semi-supervised GAN (SGAN) may be used as GAN 155 to jointly train a supervised discriminator, an unsupervised discriminator, and a semantic parser 114. SGAN may be particularly useful if seed data 210 is a relatively small set even for GAN training. Additionally or alternatively, discriminator 250 may incorporate information about the grammar that logical form 230 must adhere to. By referring to this grammar, discriminator 250 may more accurately determine whether logical form 230 is true, which may encourage semantic parser 114 to improve more quickly.
[0072] Figure 6 6 is a simplified diagram of a distributed system 600 for implementing certain embodiments. In the illustrated embodiment, the distributed system 600 includes one or more client computing devices 602, 604, 606, and 608 coupled to a server 612 via one or more communication networks 610. The client computing devices 602, 604, 606, and 608 may be configured to execute one or more applications.
[0073] In various embodiments, the server 612 may be adapted to run one or more services or software applications that enable the use of back-propagation in the GAN 155 to train the semantic parser 114 of the dialog system 100 as described herein. For example, the server 612 may perform some or all aspects of the training system 150 or some or all aspects of the dialog system 100.
[0074] 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 may be provided to users of client computing devices 602, 604, 606, and / or 608 as web-based services or cloud services, such as under a software as a service (SaaS) model. Users operating client computing devices 602, 604, 606, and / or 608 may in turn interact with the server 612 using one or more client applications to utilize the services provided by these components. More specifically, for example, each of the client computing devices 602, 604, 606, and / or 608 may be configured to execute the dialog system 100 and further configured to communicate with the server 612 to enable the server 612 to train the semantic parser 114 of the dialog system 100 by back propagation in the GAN 155 as described herein.
[0075] exist Figure 6 In the depicted configuration, the server 612 may include one or more components 618, 620, and 622 that implement the functions performed by the server 612. These components may include software components, hardware components, or a combination thereof that may be executed by one or more processors. It should be appreciated that a variety of different system configurations are possible that may differ from the distributed system 600. Thus, Figure 6 The embodiment shown in is one example of a distributed system for implementing an embodiment system and is not intended to be limiting.
[0076] According to the teachings of the present disclosure, a user can use client computing devices 602, 604, 606, and / or 608 to interact with various aspects of the dialog system 100 provided by server 612. The client device may provide an interface (e.g., a speech interface) that enables a user of the client device to interact with the client device. The client device may also output information to the user via the interface. Although Figure 6 Only four client computing devices are depicted, but any number of client computing devices may be supported.
[0077] Client devices may include various types of computing systems, 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 and other sensing devices, etc. These computing devices may run various types and versions of software applications and operating systems (e.g., Microsoft Apple or UNIX-like operating systems, Linux or Linux-like operating systems, such as Google Chrome TM OS), including various mobile operating systems (e.g., Microsoft Windows Windows Android TM , Palm Portable handheld devices may include cellular phones, smart phones (e.g., ), tablets (e.g. ), personal digital assistants (PDAs), etc. Wearable devices can include Google Head-mounted displays and other devices. Gaming systems can include various handheld gaming devices, Internet-enabled gaming devices (e.g., with or without Gesture Input Devices Microsoft Game consoles, Sony System, by Various game systems provided by and others), etc. The client device may be able to execute a variety of different applications, such as various Internet-related applications, communication applications (e.g., email applications, short message service (SMS) applications), and may use various communication protocols.
[0078] The network(s) 610 may be any type of network familiar to those skilled in the art, and may support data communications using any of a variety of available protocols, including but not limited to TCP / IP (Transmission Control Protocol / Internet Protocol), SNA (Systems Network Architecture), IPX (Internetwork Packet Exchange), The network(s) 610 may be, by way of example only, a local area network (LAN), an Ethernet-based network, a token ring, a wide area network (WAN), the Internet, a virtual network, a virtual private network (VPN), an intranet, an extranet, a public switched telephone network (PSTN), an infrared network, a wireless network (e.g., in any of the Institute of Electrical and Electronics Engineers (IEEE) 802.11 protocol suites, and / or any other wireless protocol operating under the network) and / or any combination of these and / or other networks.
[0079] The server 612 may be composed of one or more general-purpose computers, dedicated server computers (including, for example, PC (personal computer) servers, The server 612 may be a server, a mid-range server, a mainframe computer, a rack-mounted server, etc.), a server farm, a server cluster, or any other suitable arrangement and / or combination. The server 612 may include one or more virtual machines running a virtual operating system, or other computing architectures involving virtualization, such as one or more flexible pools of logical storage devices that can be virtualized to maintain a virtual storage device of the server. In various embodiments, the server 612 may be adapted to run one or more services or software applications that provide the functionality described in the foregoing disclosure.
[0080] The computing system in server 612 may run one or more operating systems, including any of the operating systems discussed above as well as 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 Transfer Protocol) servers, FTP (File Transfer Protocol) servers, CGI (Common Gateway Interface) servers, Servers, database servers, etc. Exemplary database servers include but are not limited to (International Business Machines) and other commercially available database servers.
[0081] In some implementations, server 612 may include one or more applications to analyze and integrate data feeds and / or event updates received from users of client computing devices 602, 604, 606, and 608. As examples, data feeds and / or event updates may include, but are not limited to, data received from one or more third-party information sources and continuous data streams. feed, Updates or real-time updates, which may include real-time events related to sensor data applications, financial quote machines, network performance measurement tools (e.g., network monitoring and traffic management applications), clickstream analysis tools, automobile traffic monitoring, etc. Server 612 may also include one or more applications that display data feeds and / or real-time events via one or more display devices of client computing devices 602, 604, 606, and 608.
[0082] 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 210 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 dialogue system 100 through back-propagation in the GAN 155 described herein. The data repositories 614, 616 may reside in a variety of locations. For example, the data repository used by the server 612 may be local to the server 612, or may be remote from the server 612 and communicate with the server 612 via a network-based or dedicated connection. The data repositories 614, 616 may be of different types. In some embodiments, the data repository used by the server 612 may be a database, such as a relational database, such as a Databases provided by companies and other suppliers. One or more of these databases may be adapted to respond to SQL format commands to implement storage, updating, and retrieval of data in the database.
[0083] In some embodiments, the application may also use one or more of the data repositories 614, 616 to store application data. The data repositories used by the application may be of different types, such as, for example, a key-value store, an object store, or a general purpose store backed by a file system.
[0084] In certain embodiments, as described herein, all or part of the semantic parser 114 of the dialog system 100 trained by back-propagation in the GAN 155 may be provided as a service via a cloud environment. Figure 7 is a block diagram of a cloud-based system environment in which training a semantic parser 114 as described herein may be provided at least in part as a cloud service, according to certain embodiments. Figure 7 In the embodiment shown in , cloud infrastructure system 702 may provide one or more cloud services that may be requested by a user using one or more client devices 704, 706, and 708. Cloud infrastructure system 702 may include one or more computers and / or servers, which may include those described above with respect to server 712. The computers in cloud infrastructure system 702 may be organized as general-purpose computers, dedicated server computers, server farms, server clusters, or any other suitable arrangement and / or combination.
[0085] The network(s) 710 may facilitate communication and data exchange between the client computing devices 704, 706, and 708 and the cloud infrastructure system 702. The network(s) 710 may include one or more networks. The networks may be of the same or different types. The network(s) 710 may support one or more communication protocols, including wired and / or wireless protocols, to facilitate communication.
[0086] Figure 7 The embodiment depicted in FIG. 7 is merely one example of a cloud infrastructure system and is not intended to be limiting. It should be appreciated that in some other embodiments, the cloud infrastructure system 702 may have more Figure 7 The components shown may be more or fewer components, may be combined with two or more components, or may have a different configuration or arrangement of components. Figure 7 Three client computing devices are depicted, but any number of client computing devices may be supported in alternative embodiments.
[0087] The term "cloud service" is generally used to refer to services that are made available to users on demand by a service provider's system (e.g., cloud infrastructure system 702) and via a communications network such as the Internet. 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 internal servers and systems. The cloud service provider's system is managed by the cloud service provider. Customers can therefore take advantage of cloud services provided by the cloud service provider without having to purchase separate licenses, support, or hardware and software resources for the services. For example, the cloud service provider's system can host applications, and users can order and use the applications on demand via the Internet without having to purchase infrastructure resources for executing the applications. Cloud services are designed to provide easy, scalable access to applications, resources, and services. Several providers offer cloud services. For example, Cloud Infrastructure Systems, Inc. of Redwood Shores, California, offers cloud services. The company provides several cloud services such as middleware services, database services, Java cloud services, etc.
[0088] In some embodiments, the cloud infrastructure system 702 may provide one or more cloud services using different models such as a software as a service (SaaS) model, a platform as a service (PaaS) model, an infrastructure as a service (IaaS) model, and other models including hybrid service models. The cloud infrastructure system 702 may include a set of applications, middleware, databases, and other resources that enable the provision of various cloud services.
[0089] The SaaS model enables applications or software to be delivered to customers as a service over a communication network such as the Internet, without the customer having to purchase hardware or software for the underlying application. For example, the SaaS model can be used to provide customers with access to on-demand applications hosted by the cloud infrastructure system 702. Examples of SaaS services provided by the Company include, but are not limited to, services for human resources / capital management, customer relationship management (CRM), enterprise resource planning (ERP), supply chain management (SCM), enterprise performance management (EPM), analytical services, social applications, and others.
[0090] The IaaS model is often used to provide infrastructure resources (eg, servers, storage devices, hardware, and networking resources) to customers as cloud services to provide elastic computing and storage capabilities. The company provides a variety of IaaS services.
[0091] The PaaS model is typically used to provide platform and environment resources as a service, which enables customers to develop, run, and manage applications and services without having to purchase, build, or maintain such resources. Examples of PaaS services provided by the Company include, but are not limited to, Oracle Java Cloud Service (JCS), Oracle Database Cloud Service (DBCS), Data Management Cloud Service, various application development solution services, and other services.
[0092] Cloud services are typically provided on an on-demand self-service, subscription-based, elastically scalable, reliable, highly available, and secure basis. For example, a customer may order one or more services provided by the cloud infrastructure system 702 via a subscription order. The cloud infrastructure system 702 then performs processing to provide the services requested in the customer's subscription order. For example, a customer may subscribe to information services or other services provided by the dialog system 100 in a conversational format. The cloud infrastructure system 702 may be configured to provide one or even multiple cloud services.
[0093] The cloud infrastructure system 702 can provide cloud services via different deployment models. In a public cloud model, the cloud infrastructure system 702 can be owned by a third-party cloud service provider, and cloud services are provided to any general public customer, where the customer can be an individual or an enterprise. In certain other embodiments, under a private cloud model, the cloud infrastructure system 702 can be operated within an organization (e.g., within an enterprise organization) and provide services to customers within the organization. For example, customers can be various departments of an enterprise, such as a human resources department, a payroll department, etc., or even individuals within an enterprise. In certain other embodiments, under a community cloud model, the cloud infrastructure system 702 and the services provided can be shared by several organizations in a related community. Various other models can also be used, such as a hybrid of the models mentioned above.
[0094] Client computing devices 704, 706, and 708 may be of different types (such as Figure 6 702) and may be capable of operating one or more client applications. A user may use a client computing device to interact with the cloud infrastructure system 702, such as requesting services provided by the cloud infrastructure system 702. An attacker may use a client device to send malicious requests.
[0095] In some embodiments, the processing performed by the cloud infrastructure system 702 may involve big data analysis. Such analysis may involve using, analyzing, and manipulating large data sets to detect and visualize various trends, behaviors, relationships, etc. within the data. Such analysis may be performed by one or more processors, may process data in parallel, perform simulations using the data, etc. For example, big data analysis may be performed by the cloud infrastructure system 702 to provide training of the semantic parser 114 through back propagation in the GAN 155 as described herein. The data used for such analysis may include structured data (e.g., data stored in a database or structured according to a structured model) and / or unstructured data (e.g., data blobs (binary large objects)).
[0096] As in Figure 7 As depicted in the embodiment of FIG. 7 , cloud infrastructure system 702 may include infrastructure resources 730 for facilitating the provision of various cloud services provided by cloud infrastructure system 702. Infrastructure resources 730 may include, for example, processing resources, storage or memory resources, networking resources, and the like.
[0097] In some embodiments, to facilitate efficient provisioning of these resources to support the various cloud services provided by the cloud infrastructure system 702 for different customers, the infrastructure resources 730 may be bundled into a collection of resources or resource modules (also referred to as a "pod"). Each resource module or cluster may include a pre-integrated and optimized combination of one or more types of resources. In some embodiments, different clusters may be pre-provisioned for different types of cloud services. For example, a first set of clusters may be provisioned for database services, and a second set of clusters may be provisioned for Java services, where the second set of clusters may include a different combination of resources than the pods in the first set of clusters. For some services, resources allocated to provision the service may be shared between services.
[0098] The cloud infrastructure system 702 itself may internally use services 732 that are shared by different components of the cloud infrastructure system 702 and facilitate the service provisioning of 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 for enabling cloud support, email services, notification services, file transfer services, and the like.
[0099] The cloud infrastructure system 702 may include multiple subsystems. These subsystems may be implemented in software or hardware or a combination thereof. Figure 7 As shown, the subsystems 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 a variety of 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 a client device to request (service request 734) one or more services provided by the cloud infrastructure system 702 using one or more of the interfaces 714, 716, and 718. For example, a customer may access an online store, browse cloud services provided by the cloud infrastructure system 702, and place an order for one or more services provided by the cloud infrastructure system 702 to which the customer wishes to subscribe. The service request may include information identifying the customer and the one or more services to which the customer wishes to subscribe.
[0100] In some embodiments, such as Figure 7In the illustrated embodiment, cloud infrastructure system 702 may include an order management subsystem (OMS) 720 configured to process new orders. As part of this process, OMS 720 may be configured to: create an account for the customer (if not already created); receive billing and / or accounting information from the customer, which will be used to bill the customer for providing the requested service to the customer; verify the customer information; after verification, book the order for the customer; and orchestrate various workflows to prepare the order for supply.
[0101] Once properly authenticated, the OMS 720 may call an order provisioning subsystem (OPS) 724, which is configured to provision resources for the order, including processing resources, memory resources, and networking resources. Provisioning may include allocating resources to the order, and configuring resources to facilitate the services requested by the customer order. The manner in which resources are provisioned for the order and the type of resources provisioned may depend on the type of cloud service that the customer has ordered. For example, according to a workflow, the OPS 724 may be configured to determine the specific cloud service requested, and identify multiple clusters that may have been pre-configured for the specific cloud service. The number of clusters allocated for the order may depend on the size / quantity / level / scope of the requested service. For example, the number of clusters to be allocated may be determined based on the number of users supported by the service, the duration of the service being requested, and the like. The allocated clusters may then be customized for the specific requesting customer to provide the requested service.
[0102] Cloud infrastructure system 702 can send a response or notification 744 to the requesting client to indicate when the requested service is ready. In some cases, information (e.g., a link) can be sent to the client so that the client can begin to use and utilize the benefits of the requested service.
[0103] The cloud infrastructure system 702 can 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 order, and providing the requested services to the customer. The cloud infrastructure system 702 can also collect usage statistics about the customer's use of the subscribed services. For example, statistics can be collected for 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 can be used to bill the customer. Billing can be performed, for example, on a monthly cycle.
[0104] The cloud infrastructure system 702 may provide services to multiple customers in parallel. The cloud infrastructure system 702 may store information of these customers, including potentially proprietary information. In certain embodiments, the cloud infrastructure system 702 includes an identity management subsystem (IMS) 728 that is configured to manage the information of the customers and provide separation of the managed information so that information associated with one customer is not accessible to another customer. The IMS 728 may be configured to provide various security-related services, such as identity services, such as information access management, authentication and authorization services, services for managing customer identities and roles and related capabilities, and the like.
[0105] Figure 8 800 can be used to implement certain embodiments. For example, in some embodiments, computer system 800 can be used to implement any of the systems, subsystems, and components described herein. For example, as described herein, multiple host machines can provide and implement the training of semantic parser 114 of dialog system 100 in GAN 155. A computer system such as computer system 800 can be used as a host. Figure 8 As shown in , computer system 800 includes various subsystems, including a processing subsystem 804 that communicates with multiple 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 non-transitory computer-readable storage media, including storage media 822 and system memory 810.
[0106] The bus subsystem 802 provides a mechanism for enabling the various components and subsystems of the computer system 800 to communicate with each other as desired. Although the bus subsystem 802 is schematically shown as a single bus, alternative embodiments of the bus subsystem can utilize multiple buses. The bus subsystem 802 can be any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, a local bus using any of a variety of bus architectures, etc. For example, such architectures can include an industry standard architecture (ISA) bus, a microchannel architecture (MCA) bus, an enhanced ISA (EISA) bus, a video electronics standard association (VESA) local bus, and a peripheral component interconnect (PCI) bus, which can be implemented as a mezzanine bus manufactured according to the IEEE P1386.1 standard, etc.
[0107] The processing subsystem 804 controls the operation of the computer system 800 and may include one or more processors, application specific integrated circuits (ASICs), or field programmable gate arrays (FPGAs). The processor may include a single-core or multi-core processor. 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 dedicated coprocessors, such as a graphics processor, a digital signal processor (DSP), etc. In some embodiments, some or all of the processing subsystem 804 may be implemented using custom circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs).
[0108] In some embodiments, the processing unit in the processing subsystem 804 can execute instructions stored in the system memory 810 or on the computer-readable storage medium 822. In various embodiments, the processing unit can execute various programs or code instructions, and can maintain multiple concurrently executed programs or processes. At any given time, some or all of the program code to be executed may reside in the system memory 810 and / or on the computer-readable storage medium 822, including possibly on one or more storage devices. Through appropriate programming, the processing subsystem 804 can provide the various functions described above. In the case where the computer system 800 is executing one or more virtual machines, one or more processing units can be assigned to each virtual machine.
[0109] In certain embodiments, a processing acceleration unit 806 may optionally be provided for performing customized processing or for offloading some of the processing performed by the processing subsystem 804 , thereby speeding up the overall processing performed by the computer system 800 .
[0110] The I / O subsystem 808 may include devices and mechanisms for inputting information to the computer system 800 and / or for outputting information from or via the computer system 800. In general, the use of the term "input device" is intended to include all possible types of devices and mechanisms for inputting information to the computer system 800. User interface input devices may include, for example, keyboards, pointing devices such as a mouse or trackball, touch pads or touch screens incorporated into a display, scroll wheels, click wheels, dials, buttons, switches, keypads, audio input devices with voice command recognition systems, microphones, and other types of input devices. User interface input devices may also include software such as Microsoft Windows that enables a user to control and interact with input devices. Motion sensing and / or gesture recognition devices, Microsoft 360 game controllers, devices that provide an interface for receiving input using gestures and spoken commands. User interface input devices may also include eye gesture recognition devices, such as detecting eye activity from a user (e.g., a "wink" when taking a picture and / or making a menu selection) and translating eye gestures to input devices (e.g., Google ) In addition, the user interface input device may include a user interface that enables the user to communicate with the voice recognition system (e.g., Navigator) interactive voice recognition sensing device.
[0111] Other examples of user interface input devices include, but are not limited to, three-dimensional (3D) mouse, joystick or indicator rod, game board and graphic tablet, and audio / video equipment, such as loudspeaker, digital camera, digital video camera, portable media player, webcam, image scanner, fingerprint scanner, bar code reader 3D scanner, 3D printer, laser rangefinder, and eye tracking device. In addition, user interface input devices can include, for example, medical imaging input devices, such as computed tomography, magnetic resonance imaging, position emission tomography, and medical ultrasound examination equipment. User interface input devices can also include, for example, audio input devices, such as MIDI keyboard, digital musical instrument, etc.
[0112] In general, 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 other computers. User interface output devices may include display subsystems, indicator lights, or non-visual displays such as audio output devices, etc. The display subsystem may be a cathode ray tube (CRT), a flat panel device such as one utilizing a liquid crystal display (LCD) or plasma display, a projection device, a touch screen, etc. For example, user interface output devices may include, but are not limited to, various display devices that visually convey text, graphics, and audio / video information, such as monitors, printers, speakers, headphones, car navigation systems, plotters, voice output devices, and modems.
[0113] The storage subsystem 818 provides a repository or data repository for storing information and data used by the computer system 800. The storage subsystem 818 provides a tangible, non-transitory computer-readable storage medium for storing basic programming and data constructs that provide the functionality of certain embodiments. The storage subsystem 818 can store software (e.g., programs, code modules, instructions) that, when executed by the processing subsystem 804, provide the functionality described above. The software can be executed by one or more processing units of the processing subsystem 804. The storage subsystem 818 can also provide a repository for storing data used in accordance with the teachings of the present disclosure.
[0114] The storage subsystem 818 may include one or more non-transitory memory devices, including volatile and non-volatile memory devices. Figure 8 As shown, the storage subsystem 818 includes a system memory 810 and a computer-readable storage medium 822. The system memory 810 may include multiple memories, including a volatile main random access memory (RAM) for storing instructions and data during program execution and a non-volatile read-only memory (ROM) or flash memory in which fixed instructions are stored. In some embodiments, a basic input / output system (BIOS) may typically be stored in ROM, which contains basic routines that help to transfer information between elements within the computer system 800, such as during startup. RAM typically contains data and / or program modules currently operated and executed by the processing subsystem 804. In some embodiments, the system memory 810 may include multiple different types of memory, such as static random access memory (SRAM), dynamic random access memory (DRAM), etc.
[0115] By way of example and not limitation, Figure 8 As shown, system memory 810 may load application programs 812 being executed, which may include various applications (such as a web browser, a middle-tier application, a relational database management system (RDBMS)), program data 814, and an operating system 816. As an example, operating system 816 may include various versions of Microsoft Apple and / or Linux operating system, various commercial or UNIX-like operating systems (including but not limited to various GNU / Linux operating systems, Google OS, etc.) and / or mobile operating systems such as iOS, Phone, OS, OS, OS operating system, and other operating systems.
[0116] In certain embodiments, software instructions or code implementing training of the semantic parser 114 of the dialog system 100 in the GAN 155 , as described herein, may be executed in the system memory 810 .
[0117] Computer-readable storage media 822 may store programming and data structures that provide the functionality of some embodiments. Computer-readable storage media 822 may provide storage for computer-readable instructions, data structures, program modules, and other data for computer system 800. When executed by processing subsystem 804, software (programs, code modules, instructions) that provide the functionality described above may be stored in storage subsystem 818. As an example, computer-readable storage media 822 may include non-volatile memory such as a hard drive, a disk drive, a hard drive such as a CD ROM, a DVD, (Blu-ray) disk or other optical media. Computer readable storage media 822 may include, but are not limited to, The computer-readable storage medium 822 may include a solid-state drive (SSD) based on a nonvolatile memory (such as a flash memory-based SSD, an enterprise flash drive, a solid-state ROM, etc.), a volatile memory-based SSD (such as a solid-state RAM, dynamic RAM, static RAM, DRAM-based SSD, a magnetoresistive RAM (MRAM) SSD), and a hybrid SSD using a combination of a DRAM-based and a flash memory-based SSD.
[0118] In certain embodiments, storage subsystem 818 may also include a computer-readable storage medium reader 820, which may also be connected to computer-readable storage medium 822. Reader 820 may receive and be configured to read data from a memory device such as a disk, flash drive, or the like.
[0119] In certain embodiments, computer system 800 can support virtualization technology, including but not limited to virtualization of processing and memory resources. For example, computer system 800 can provide support for executing one or more virtual machines. In certain embodiments, computer system 800 can execute programs such as hypervisors that promote the configuration and management of virtual machines. Memory, computing (e.g., processors, cores), I / O and networking resources can be allocated to each virtual machine. Each virtual machine is usually independent of other virtual machine operations. Virtual machines usually run their own operating system, which can be the same or different from the operating system executed by other virtual machines executed by computer system 800. Therefore, computer system 800 can potentially run multiple operating systems simultaneously.
[0120] The communication subsystem 824 provides an interface to other computer systems and networks. The communication subsystem 824 serves as an interface for receiving data from the computer system 800 and transmitting data to other systems. For example, the communication subsystem 824 can enable the computer system 800 to establish a communication channel to one or more client devices via the Internet for receiving information from the client devices and sending information to the client devices.
[0121] The communication subsystem 824 can support both wired and / or wireless communication protocols. For example, in some embodiments, the communication subsystem 824 may include a radio frequency (RF) transceiver component, a global positioning system (GPS) receiver component, and / or other components for accessing a wireless voice and / or data network (e.g., using cellular telephone technology, advanced data network technology (such as 3G, 4G or EDGE (Enhanced Data Rates for Global Evolution), WiFi (IEEE 802.XX family of standards), or other mobile communication technologies, or any combination thereof). In some embodiments, the communication subsystem 824 may provide a wired network connection (e.g., Ethernet) in addition to or in lieu of a wireless interface.
[0122] The communication subsystem 824 may receive and transmit data in a variety of forms. For example, in some embodiments, the communication subsystem 824 may receive incoming communications in the form of structured and / or unstructured data feeds 826, event streams 828, event updates 830, etc., among other forms. For example, the communication subsystem 824 may be configured to receive, in real time, incoming communications from users of a social media network and / or a user of a website such as a feed, The data feed 826 is received (or sent) by other communication services such as web feeds, updates, Rich Site Summary (RSS) feeds, and / or real-time updates from one or more third-party information sources.
[0123] In certain embodiments, the communication subsystem 824 may be configured to receive data in the form of a continuous data stream that may be continuous or unbounded in nature and has no clear end, wherein the continuous data stream may include an event stream 828 of real-time events and / or event updates 830. Examples of applications that generate continuous data may include, for example, sensor data applications, financial quote machines, network performance measurement tools (e.g., network monitoring and traffic management applications), clickstream analysis tools, automobile traffic monitoring, etc.
[0124] The communication subsystem 824 may also be configured to transmit data from the computer system 800 to other computer systems or networks. The data may be transmitted in a variety of different forms, such as structured and / or unstructured data feeds 826, event streams 828, event updates 830, etc. to one or more databases that may communicate with one or more streaming data sources coupled to the computer system 800.
[0125] Computer system 800 may be one of various types, including a handheld portable device (e.g., Cellular phone, computing tablets, PDAs), wearable devices (e.g., Google head mounted display), personal computer, workstation, mainframe, kiosk, server rack, or any other data processing system. Due to the ever-changing nature of computers and networks, Figure 8 The description of the computer system 800 depicted in FIG. 8 is intended to be a specific example only. Figure 8 Many other configurations of more or fewer components of the system depicted are possible. Based on the disclosure and teachings provided herein, a person of ordinary skill in the art will understand other ways and / or methods to implement the various embodiments.
[0126] Although specific embodiments have been described, various modifications, changes, alternative constructions, and equivalents are possible. Embodiments are not limited to operations within certain specific data processing environments, but can be freely operated within multiple data processing environments. In addition, although certain embodiments have been described using a series of specific transactions and steps, it is obvious to those skilled in the art that this is not intended to be limiting. Although some flow charts describe operations as sequential processing, many operations can be performed in parallel or simultaneously. In addition, the order of operations can be rearranged. Processing may have other steps not included in the figure. The various features and aspects of the above-described embodiments can be used alone or in combination.
[0127] In addition, although certain embodiments have been described using a particular combination of hardware and software, it should be appreciated that other combinations of hardware and software are also possible. Certain embodiments may be implemented using only hardware or only software or a combination thereof. The various processes described herein may be implemented on the same processor or on different processors in any combination.
[0128] Where a device, system, component or module is described as being configured to perform certain operations or functions, such configuration may be achieved, for example, by designing electronic circuits to perform the operations, by programming programmable electronic circuits (such as microprocessors) to perform the operations, such as by executing computer instructions or code, or a processor or core is programmed to execute code or instructions stored on a non-transitory storage medium, or any combination thereof to perform the operations. Processes may communicate using a variety of techniques, including but not limited to conventional techniques for inter-process communication, and different pairs of processes may use different techniques, or the same pair of processes may use different techniques at different times.
[0129] Specific details are given in this disclosure to provide a thorough understanding of the embodiments. However, embodiments may be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been shown without unnecessary details to avoid obscuring the embodiments. This description provides only example embodiments and is not intended to limit the scope, applicability, or configuration of other embodiments. On the contrary, the previous description of the embodiments will provide an enabling description for implementing various embodiments for those skilled in the art. Various changes may be made to the functions and arrangements of the elements.
[0130] Therefore, the description and drawings should be regarded as illustrative rather than restrictive. However, it will be apparent that additions, subtractions, deletions and other modifications and changes may be made thereto without departing from the broader spirit and scope set forth in the claims. Therefore, although specific embodiments have been described, these embodiments are not intended to be limiting. Various modifications and equivalents are within the scope of the appended claims. Modifications and / or variations include any relevant combination of the disclosed features.
[0131] According to the embodiments, the disclosed features are summarized as follows:
[0132] Example 1. A method for training a semantic parser for a dialogue system is provided, the method comprising: accessing seed data including seed tuples, each seed tuple of the seed data including a corresponding seed utterance and a corresponding seed logical form corresponding to the corresponding seed utterance; and training a semantic parser and a discriminator in a generative adversarial network (GAN), wherein, in the GAN, the semantic parser learns to map utterances to logical forms and the discriminator learns to recognize true logical forms, wherein the semantic parser can be used as part of the dialogue system.
[0133] Example 2. The method of Example 1, wherein training a semantic parser and a discriminator in a GAN comprises: inputting a random utterance into the semantic parser; determining, by the semantic parser, a generated logical form based on the random utterance; inputting, by the discriminator, a tuple comprising a generated tuple and a subset of seed tuples selected from seed data, wherein the generated tuple comprises the random utterance and the generated logical form; and determining, by the discriminator, the authenticity of the prediction of the tuple.
[0134] Example 3. The method of Example 2, wherein training the semantic parser and the discriminator in the GAN further comprises: comparing the predicted authenticity of the tuple with the actual authenticity; and updating the discriminator based on comparing the predicted authenticity of the tuple with the actual authenticity.
[0135] Example 4. The method of Example 3, wherein the actual authenticity of a tuple in the tuples is based on the tuple being a seed tuple in the seed data.
[0136] Example 5. The method of Example 3, wherein training a semantic parser and a discriminator in a GAN further comprises: inputting a seed utterance into the semantic parser, wherein the seed utterance is selected from a seed tuple; determining, by the semantic parser, an additional generated logical form based on the seed utterance; inputting the additional generated tuple into the discriminator, comprising the seed utterance from the seed data and the additional generated logical form; and determining, by the discriminator, the authenticity of the additional predictions of the additional generated tuple.
[0137] Example 6. The method of Example 5, wherein training the semantic parser and the discriminator in the GAN further comprises: comparing the authenticity of the additional predictions of the additional generated tuples with the selected authenticity; and updating the semantic parser based on comparing the authenticity of the additional predictions of the additional generated tuples with the selected authenticity.
[0138] Example 7. The method of Example 6, wherein the truth of the selection of the additional generated tuple indicates that the additional generated tuple is true.
[0139] Example 8. The method of Example 1, wherein training a semantic parser and a discriminator in a GAN includes: when the semantic parser is static, training the discriminator with a first portion of seed data based on an output from the semantic parser to determine an updated discriminator; and when the updated discriminator is static, training the semantic parser with a second portion of seed data based on an output from the updated discriminator to determine an updated semantic parser.
[0140] Example 9. The method of Example 8, wherein the semantic parser is a sequence-to-sequence neural network and the discriminator is a binary classifier.
[0141] Example 10. The method of Example 1 also includes: receiving speech input by a dialogue system; applying an automatic speech recognition subsystem to the speech input to determine an utterance; applying a semantic parser to the utterance to determine a logical form; analyzing the logical form to generate response text in response to the speech input; and applying a text-to-speech subsystem to the response to the text to determine an audio output for the dialogue system.
[0142] Example 11. A training system comprising: a data input subsystem configured to access seed data including seed tuples, each seed tuple of the seed data including a corresponding seed utterance and a corresponding seed logical form corresponding to the corresponding seed utterance; and a generative adversarial network (GAN), comprising: a discriminator configured to learn to identify true logical forms; and a semantic parser configured to learn to map utterances to logical forms; an error minimization module configured to train the semantic parser based on an output from the discriminator, the discriminator classifying the authenticity of the output of the semantic parser, wherein the semantic parser can be used as part of a dialogue system.
[0143] Example 12. The training system of Example 11, wherein: the data input subsystem is configured to input random utterances to the semantic parser; the semantic parser is configured to generate logical forms based on the random utterances; the data input subsystem is configured to input tuples to the discriminator, the tuples comprising the generated tuples and a subset of seed tuples selected from seed data, wherein the generated tuples comprise the random utterances and the generated logical forms; and the discriminator is configured to predict the authenticity of the tuples.
[0144] Example 13. The training system of Example 12, wherein the error minimization module is further configured to: compare the predicted authenticity of the tuple with the actual authenticity; and update the discriminator based on comparing the predicted authenticity of the tuple with the actual authenticity.
[0145] Example 14. The method of Example 13, wherein the actual authenticity of a tuple in the tuples is based on the tuple being a seed tuple in the seed data.
[0146] Example 15. The training system of Example 13, wherein: the data input subsystem is further configured to input a seed utterance to a semantic parser, wherein the seed utterance is selected from a seed tuple; the semantic parser is configured to determine an additional generated logical form based on the seed utterance; the data input subsystem is configured to input the additional generated tuple to the discriminator, including the seed utterance from the seed data and the additional generated logical form; and the discriminator is configured to determine the authenticity of the additional predictions of the additional generated tuple.
[0147] Example 16. The training system of Example 15, wherein the error minimization module is further configured to: compare the truth of the additional predictions of the additional generated tuples with the truth of the selection; and update the semantic parser based on comparing the truth of the additional predictions of the additional generated tuples with the truth of the selection.
[0148] Example 17. The training system of Example 16, wherein the truthfulness of the selection of the additional generated tuple indicates that the additional generated tuple is true.
[0149] Example 18. The training system of Example 11, wherein the semantic parser is a sequence-to-sequence neural network and the discriminator is a binary classifier.
[0150] Example 19. A computer program product for training a semantic parser for a dialogue system, the computer program product comprising a computer-readable storage medium having program instructions implemented thereon, the program instructions being executable by one or more processors to cause the one or more processors to perform a method comprising: accessing seed data comprising seed tuples, each seed tuple of the seed data comprising a corresponding seed utterance and a corresponding seed logical form corresponding to the corresponding seed utterance; training a discriminator of a generative adversarial network (GAN) based on a semantic parser of the GAN, wherein training the discriminator comprises: inputting a random utterance into the semantic parser; determining, by the semantic parser, a generated logical form based on the random utterance; inputting, by the discriminator, a tuple comprising a generated tuple and a subset of the seed tuples selected from the seed data, wherein the generated tuple comprises the random utterance and the generated logical form; determining, by the discriminator, a predicted true The invention relates to a method for detecting a GAN based on a discriminator of a GAN, wherein the discriminator is used to detect the authenticity of a tuple; comparing the predicted authenticity of the tuple with the actual authenticity; and updating the discriminator based on the comparison of the predicted authenticity of the tuple with the actual authenticity; and training a semantic parser of the GAN based on the discriminator of the GAN, wherein the training of the semantic parser comprises: inputting a seed utterance into the semantic parser, wherein the seed utterance is selected from the seed tuple; determining, by the semantic parser, an additionally generated logical form based on the seed utterance; inputting an additionally generated tuple into the discriminator, including the seed utterance from the seed data and the additionally generated logical form; determining, by the discriminator, the authenticity of the additional predictions of the additionally generated tuple; comparing the authenticity of the additional predictions of the additionally generated tuple with the selected authenticity; and updating the semantic parser based on the comparison of the authenticity of the additional predictions of the additionally generated tuple with the selected authenticity, wherein the semantic parser can be used to map utterances to logical forms in a dialogue system.
[0151] Example 20. The computer program product of Example 19, wherein: the actual authenticity of a tuple in the tuples is based on the tuple being a seed tuple in the seed data; and the selected authenticity of the additionally generated tuple indicates that the additionally generated tuple is authentic.
[0152] CROSS-REFERENCE TO RELATED APPLICATIONS
[0153] The present disclosure claims priority to U.S. Provisional Application Serial No. 62 / 898,682, filed on September 11, 2019, entitled “Utilizing aGenerativeAdversarial Network to Train a Semantic Parser,” which is incorporated herein by reference in its entirety.
Claims
1. A method for training a semantic parser of a dialogue system, the method comprising: accessing seed data including seed tuples; Train the discriminator in a generative adversarial network (GAN) using the first portion of the seed data to determine an updated discriminator; as well as The semantic parser is trained using the second portion of the seed data to determine an updated semantic parser.
2. The method of claim 1, wherein training a semantic parser and a discriminator in a GAN comprises: Feed a random utterance into the semantic parser; The generated logical form is determined by a semantic parser based on random utterances; inputting tuples to the discriminator, the tuples comprising a generated tuple and a subset of seed tuples selected from the seed data, wherein the generated tuple comprises a random utterance and a generated logical form; as well as The authenticity of the prediction of the tuple is determined by a discriminator.
3. The method of claim 2, wherein training a semantic parser and a discriminator in a GAN further comprises: The predicted truth of the tuple is compared with the actual truth.
4. The method of claim 3, wherein the actual authenticity of a tuple in the tuples is based on the tuple being a seed tuple in the seed data.
5. The method of claim 3, wherein training a semantic parser and a discriminator in a GAN further comprises: inputting a seed utterance into a semantic parser, wherein the seed utterance is selected from a seed tuple; The semantic parser determines the logical form of the additional generation based on the seed utterance; inputting to the discriminator an additional generated tuple, the additional generated tuple comprising a seed utterance from the seed data and the additional generated logical form; as well as The authenticity of the additional predictions of the additionally generated tuples is determined by the discriminator.
6. The method of claim 5, wherein training a semantic parser and a discriminator in a GAN further comprises: The truth of the additional predictions of the additionally generated tuples is compared with the truth of the selection.
7. The method of claim 6, wherein the authenticity of the selection of the additionally generated tuple indicates that the additionally generated tuple is authentic.
8. The method of claim 1, wherein during the training, the semantic parser and the updated discriminator are static.
9. The method of claim 8, wherein the semantic parser is a sequence-to-sequence neural network and the discriminator is a binary classifier.
10. The method of claim 1, further comprising: Receiving speech input from the dialogue system; applying an automatic speech recognition subsystem to the speech input to determine the utterance; Applying semantic parsers to utterances to determine logical form; Analyze logical form to generate response text in response to verbal input; as well as A text-to-speech subsystem is applied to the text response to determine an audio output for the dialog system.
11. A training system comprising: a data input subsystem configured to access seed data including seed tuples; as well as Generative Adversarial Networks (GANs), including: Discriminator; semantic parser; and An error minimization module is configured to train a discriminator with a first portion of the seed data based on output from the semantic parser to determine an updated discriminator, and to train the semantic parser with a second portion of the seed data based on output from the updated discriminator to determine an updated semantic parser.
12. The training system of claim 11, wherein: The data input subsystem is configured to input random utterances to the semantic parser; The semantic parser is configured to generate logical forms based on random utterances; The data input subsystem is configured to input tuples to the discriminator, the tuples comprising generated tuples and a subset of seed tuples selected from the seed data, wherein the generated tuples include the random utterance and the generated logical form; as well as The discriminator is configured to predict the authenticity of the tuple.
13. The training system of claim 12, wherein the error minimization module is further configured to: The predicted truth of the tuple is compared with the actual truth.
14. A training system as described in claim 13, wherein the actual authenticity of a tuple in the tuples is based on the tuple being a seed tuple in the seed data.
15. The training system of claim 13, wherein: The data input subsystem is further configured to input a seed utterance into the semantic parser, wherein the seed utterance is selected from the seed tuple; The semantic parser is configured to determine the logical form of the additional generation based on the seed utterance; The data input subsystem is configured to input an additional generated tuple to the discriminator, the additional generated tuple comprising a seed utterance from the seed data and the additional generated logical form; as well as The discriminator is configured to determine the authenticity of additional predictions of the additional generated tuples.
16. The training system of claim 15, wherein the error minimization module is further configured to: The truth of the additional predictions of the additionally generated tuples is compared with the truth of the selection.
17. The training system of claim 16, wherein the truth of the selection of the additionally generated tuple indicates that the additionally generated tuple is true.
18. The training system of claim 11, wherein the semantic parser is a sequence-to-sequence neural network and the discriminator is a binary classifier.
19. A computer program product for training a semantic parser of a dialog system, the computer program product comprising a computer-readable storage medium having program instructions contained thereon, the program instructions being executable by one or more processors to cause the one or more processors to perform a method as described in any one of claims 1-10.