Patent Description:
Natural language generation ("NLG") by machines, at a near-human level, is a major goal for Artificial Intelligence. A goal of NLG is to convert computer-based data or representations into human-understandable speech or expression. There are various considerations when trying to make computer generated text sound more "natural" such as what type of text is sought to be generated (communicative goal), what entities, events and relationships will express the content of that text, and how to forge grammatical constructions with the content into "natural" sounding text.

Some spoken dialogue systems rely on template-based, hand-crafted rules for the NLG. However, in some instances, the required templates are cumbersome to maintain. Additionally, the overall approach of the template-based, hand-crafted rules does not scale well to complex domains and databases. Tsung-Hsien Wen et al. , (D1) discloses that Natural language generation (NLG) is acritical component of spoken dialogue and it has a significant impact both on usability and perceived quality. Most NLG systems in common use employ rules and heuristics and tend to generate rigid and stylised responses without the natural variation of human language. They are also not easily scaled to systems covering multiple domains and languages. This paper presents a statistical language generator based on a semantically controlled Long Short-term Memory (LSTM) structure. The LSTM generator can learn from unaligned data by jointly optimising sentence planning and surface realisation using a simple cross entropy training criterion, and language variation can be easily achieved by sampling from output candidates. With fewer heuristics, an objective evaluation in two differing test domains showed the proposed method improved performance compared to previous methods. Human judges scored the LSTM system higher on informativeness and naturalness and overall preferred it to the other systems. Tsung-Hsien Wen et al. , (D2) discloses that moving from limited-domain natural language generation (NLG) to open domain is difficult because the number of semantic input combinations grows exponentially with the number of domains. Therefore, it is important to leverage existing resources and exploit similarities between domains to facilitate domain adaptation. In this paper, we propose a procedure to train multi-domain, Recurrent Neural Network-based (RNN) language generators via multiple adaptation steps. In this procedure, a model is first trained on counterfeited data synthesised from an out-of-domain dataset, and then fine tuned on a small set of in-domain utterances with a discriminative objective function. Corpus-based evaluation results show that the proposed procedure can achieve competitive performance in terms of BLEU score and slot error rate while significantly reducing the data needed to train generators in new, unseen domains. In subjective testing, human judges confirm that the procedure greatly improves generator performance when only a small amount of data is available in the domain.

Aspects of the present invention are set out in the accompanying claims.

Aspects disclosed herein provide a natural language generator in a spoken dialogue system that considers both lexicalized and delexicalized dialogue act slot-value pairs when translating one or more dialogue act slot-value pairs into a natural language output. Each slot and value associated with the slot in a dialogue act are represented as (dialogue act + slot, value), where the first term (dialogue act + slot) is delexicalized and the second term (value) is lexicalized. Each dialogue act slot-value representation is processed to produce to produce at least one delexicalized sentence that represents the natural language output. A lexicalized sentence is produced from the delexicalized sentence(s) by replacing each delexicalized slot with the value associated with that delexicalized slot.

In one aspect, a spoken dialogue system includes first processing circuitry and second processing circuitry operably connected to the first processing circuitry. One or more storage devices store computer executable instructions that when executed by the first and the second processing circuitries, performs a method. The method includes processing, by the first processing circuitry, one or more dialogue act slot-value representations to produce a first representation of the one or more dialogue act slot-value representations, and processing, by the second processing circuitry, the first representation and a second representation to produce one or more delexicalized sentences as an output. Each dialogue act slot-value representation includes a delexicalized dialogue act and slot and a lexicalized value associated with the delexicalized slot. The second representation represents one or more delexicalized slots that are expected to be included in the natural language output.

In another aspect, a method of operating a spoken dialogue system includes receiving one or more dialogue act slot-value representations, processing the one or more dialogue act slot-value representations to produce a first representation of the one or more dialogue act slot-value representations, and processing the first representation and a second representation to produce one or more delexicalized sentences as an output. Each dialogue act slot-value representation includes a delexicalized dialogue act and slot and a lexicalized value associated with the delexicalized slot. The second representation represents one or more delexicalized slots expected to be included in the natural language output.

Non-limiting and non-exhaustive examples are described with reference to the following Figures. Identical reference numerals have been used, where possible, to designate identical features that are common to the figures.

In the following detailed description, references are made to the accompanying drawings that form a part hereof, and in which are shown by way of illustrations specific aspects or examples. These aspects may be combined, other aspects may be utilized, and structural changes may be made without departing from the present disclosure. Aspects may be practiced as methods, systems or devices. Accordingly, aspects may take the form of a hardware implementation, an entirely software implementation, or an implementation combining software and hardware aspects. The following detailed description is therefore not to be taken in a limiting sense, and the scope of the present disclosure is defined by the appended claims.

<FIG> illustrates a system that can include a spoken dialogue system. The system <NUM> generates and controls a machine response to a language input. The system <NUM> allows a user <NUM> to submit the language input through a client-computing device <NUM>. The client-computing device <NUM> may include, or be connected to, an input device <NUM> that receives the language input. The language input can be submitted as a textual input (e.g., written) or as a spoken (verbal) input that is converted to text (e.g., using a speech-to-text (STT) apparatus <NUM>). The input device <NUM> may be any suitable type of input device or devices configured to receive the language input. The input device <NUM> may be a keyboard (actual or virtual) and/or a microphone.

The client-computing device <NUM> is configured to access one or more server-computing devices (represented by server-computing device <NUM>) through one or more networks (represented by network <NUM>) to interact with a spoken dialogue system (SDS) <NUM> stored on one or more storage devices (represented by storage device <NUM>) and executed by the server-computing device <NUM>. As will be described in more detail later, the SDS <NUM> receives the language input and causes one or more machine actions to be performed in response to the language input. The machine response that is based on the machine action(s) can be provided to the user <NUM> through one or more output devices (represented by output device <NUM>) that is in, or connected to, the client-computing device <NUM>. The output device <NUM> is a display that displays the machine response and/or a speaker that "speaks" the machine response (e.g., using a text-to-speech (TTS) apparatus <NUM>).

In one or more aspects, the client-computing device <NUM> is a personal or handheld computing device having both the input and the output devices <NUM>, <NUM>. The client-computing device <NUM> may be one of: a mobile telephone; a smart phone; a tablet; a phablet; a smart watch; a wearable computer; a personal computer; a desktop computer; a laptop computer; a gaming device/computer (e.g., Xbox); a television; and the like. This list of example client-computing devices is for example purposes only and should not be considered as limiting. Any suitable client-computing device that provides and/or interacts with an SDS may be utilized.

As should be appreciated, <FIG> is described for purposes of illustrating the present methods and systems and is not intended to limit the disclosure to a particular sequence of steps or a particular combination of hardware or software components.

A dialogue between a machine and a user relies on turn-taking behavior. For example, a user can ask the machine to locate an Italian restaurant in downtown, which is a first turn in the dialogue. In response to the request, the machine may state it was unable to find an Italian restaurant in downtown, which is a machine response and a second turn in the dialogue. In task-oriented spoken dialogues, a user has a goal (or task) he or she wants to achieve in the dialogue. For example, a user may want to obtain the name of a restaurant. A spoken dialogue system obtains information about the user's goal based on the user turns in the dialogue. As the dialogue progresses, the spoken dialogue system is able to obtain the information needed to complete the user's goal.

A spoken dialogue system typically operates in a domain. The domain is related to the user's goal. For example, in the weather domain, a user may obtain information on the weather (e.g., temperature). Similarly, in the restaurant domain, a user can obtain the address of a restaurant that serves a particular type of food.

Each domain has slot types ("slots") that are associated with the domain. A slot is a variable, and a slot value ("value") is a value that fills the slot. For example, in the restaurant domain, a food type may be a slot and a type of food (e.g., "Italian") can be a value for that slot. Over the turns in the dialogue, the spoken dialogue system obtains information about the user's goal and the information needed to complete the user's goal.

A general and brief description of the components, operations, and/or functions of an SDS will now be described. <FIG> is a block diagram depicting a system that includes an SDS. An input device <NUM> receives a language input from a user. The input device <NUM> produces an output <NUM> that represents the language input. In some aspects, when the language input is a verbal input, the output <NUM> is received by the STT apparatus <NUM> that converts the verbal or audio input into one or more words (e.g., a sequence of words). One example of an STT apparatus <NUM> is an automatic speech recognition apparatus.

An SDS <NUM> receives the output <NUM> from the input device <NUM> or the representation <NUM> of the language input from the STT apparatus <NUM>. The SDS <NUM> includes a natural language understanding (NLU) apparatus <NUM>, a state tracker <NUM>, a dialogue manager <NUM>, a knowledge database <NUM>, and a natural language generator (NLG) <NUM>. The operations of the SDS <NUM> are performed by one or more computing devices, such as, one or more server computing devices. The one or more computing devices each include at least one memory that stores computer or processing unit executable instructions that, when executed by at least one processing unit in the computing device(s), perform the operations of the SDS <NUM>.

In one aspect, the NLU apparatus <NUM> converts the output <NUM> or the representation <NUM> of the output into an internal representation that is used to determine the user's goal based on the language input. The NLU apparatus <NUM> may also determine one or more slots and/or values for a given domain. For example, in the restaurant domain, a slot may be a food type and a value can be a type of food (e.g., Chinese or pizza). Additionally or alternatively, a slot may be a location and a value can be "downtown", "in the city", or "Montreal.

In some implementations, the state tracker <NUM> tracks what has happened in the dialogue, which is known as the state of the dialogue. The state of the dialogue includes (<NUM>) a current turn; and (<NUM>) all the turns that precede the current turn. Based on the dialogue state, the dialogue manager <NUM> determines a machine action to be performed (e.g., how the machine should respond to the user's turn in the dialogue).

Each sentence in the dialogue is decomposed into one or more dialogue acts. Table <NUM> contains an example list of dialogue acts for the restaurant domain. Other aspects can use a different list of dialogue acts.

Each of the dialogue acts includes one or more slots. As described earlier, a slot is a variable that may be filled by, or assigned, a particular value. For example, in the restaurant domain, a slot can be "pricerange" and a value for that particular slot may be "cheap.

In some aspects, the dialogue manager <NUM> can access a knowledge database <NUM>. The knowledge database <NUM> captures or defines information about words, word embeddings, slots, values, properties of entities that a dialogue system can talk about, and relationships between words, word embeddings, slots, values, and/or the properties of entities (e.g., files, look-up tables, databases, and the like). Non-limiting examples of a knowledge database include an ontology and/or a dictionary.

The NLG <NUM> receives the machine action (e.g., dialogue act, the slot(s), and the corresponding value(s)) from the dialogue manager <NUM> and generates the natural language output <NUM> for the machine response. An NLG <NUM> typically has to determine what should be said, how it should be said (e.g., syntax), and then produce the output text. As will be described in more detail later, the NLG <NUM> represents each slot and associated value in a dialogue act as (dialogue act + slot, value), where the first term (dialogue act + slot) is delexicalized and the second term (value) is lexicalized. This representation aligns each delexicalized dialogue act and slot with a corresponding lexicalized value to produce a dialogue act slot-value representation. Each dialogue act slot-value representation is processed to produce a first representation that represents all of the dialogue act slot-value representations. A second representation is provided that represents all of the delexicalized slots expected to be in the natural language output. The first and the second representations are processed to produce at least one delexicalized sentence as an output. A lexicalized sentence is then produced from the delexicalized sentence(s) by replacing each delexicalized slot with the value associated with the delexicalized slot.

As described earlier, the NLG <NUM> outputs the natural language output that will ultimately be provided to the user (e.g., via a client-computing device). When the natural language output <NUM> is to be provided to the user as a verbal output, a TTS apparatus <NUM> receives the natural language output <NUM> from the NLG <NUM> and synthesizes the corresponding verbal output <NUM>. The verbal output <NUM> is then provided to the user using an output device <NUM> (e.g., via a speaker). In some instances, the natural language output <NUM> will be presented to the user as a written output using the output device <NUM> (e.g., via a display), in which case the TTS apparatus <NUM> does not operate on the natural language output <NUM>.

The various components shown in <FIG> can be implemented in any suitable device in a system (e.g., client-computing device <NUM>, server-computing device <NUM>, and/or storage device <NUM> in <FIG>). For example, in one aspect, the STT apparatus <NUM>, the SDS <NUM>, and the TTS apparatus <NUM> are implemented in one or more server-computing devices (e.g., server-computing device <NUM>). In another aspect, the STT apparatus <NUM>, the SDS <NUM>, and the TTS apparatus <NUM> are distributed over one or more server-computing devices and one or more storage devices (e.g., storage device <NUM> in <FIG>). In another non-limiting example, the STT apparatus <NUM> and the TTS apparatus <NUM> are implemented in a client-computing device (e.g., client-computing device <NUM> and STT and TTS apparatuses <NUM> in <FIG>) and the SDS <NUM> is implemented in one or more server-computing devices.

Aspects described herein provide an NLG apparatus that considers both lexicalized and delexicalized dialogue act slot-value pairs when translating one or more dialogue act slot-value pairs into a natural language output. <FIG> is a block diagram illustrating a natural language generator that is suitable for use in the system shown in <FIG>. The representative NLG <NUM> includes alignment circuitry <NUM>, first processing circuitry <NUM> connected to an output of the alignment circuitry <NUM>, and second processing circuitry <NUM> connected to an output of the first processing circuitry <NUM>. Converter circuitry <NUM> is connected to the output of the second processing circuitry <NUM>. Slot processing circuitry <NUM> is connected between an input line <NUM> and the second processing circuitry <NUM>. The input line <NUM> is also connected to an input of the alignment circuitry <NUM> and to an input of the converter circuitry <NUM>.

At each time-step t, the alignment circuitry <NUM>, the slot processing circuitry <NUM>, and the converter circuitry <NUM> receive the dialogue act, the slot(s), and the corresponding value(s) from the dialogue manager (e.g., dialogue manager <NUM> in <FIG>) on the input line <NUM>. The alignment circuitry <NUM> forms a dialogue act slot-value representation for each dialogue act. As described earlier, the dialogue act slot-value representation includes the delexicalized dialogue + slot along with a corresponding lexicalized value for the delexicalized slot. Each value may include one or more words. For example, the delexicalized dialogue + slot can be "Inform-Area", where "Inform" is the dialogue act and "Area" the slot. The corresponding value for the delexicalized slot "Area" may be "near the plaza. " Thus, the dialogue act slot-value representation represents (Inform-Area, near the plaza). In this manner, the alignment circuitry <NUM> aligns the delexicalized dialogue + slot with the value associated with the delexicalized slot.

<FIG> depicts a process of producing a dialogue act slot-value representation. A dialogue act slot-value representation is generated for each dialogue act. According to the invention, each dialogue act slot-value representation is represented as a vector zt <NUM> that is formed by concatenating two vectors mt <NUM> and et <NUM>. The vector mt <NUM> represents the delexicalized dialogue act + slot and the vector et <NUM> represents the value associated with the delexicalized slot. According to the invention, the vector mt <NUM> is a one-hot vector of a dialogue act and a slot. The vector et <NUM> is formed by computing (using computing circuit <NUM>) a mean, of one or more word embeddings (WE) <NUM> (e.g., WE 420A, WE 420B, WE 420C) of all of the words corresponding to the value associated with the slot in the vector mt. For example, the vector mt may represent the (dialogue act + slot) of "Inform-Area". If the value associated with the slot "Area" is "near the plaza", a mean of the word embeddings for the words in the value (e.g., "near", "the", and "plaza") is generated by computing circuit <NUM> and that mean is represented by the vector et.

Returning to <FIG>, each turn of the dialogue is composed of one or more such dialogue act slot-value representations that, at each time-step t, are input to the first processing circuitry <NUM>. At each time-step t, the first processing circuitry <NUM> processes the dialogue act slot-value representation(s) (e.g., all vectors zt) to produce a first representation of the dialogue act slot-value representations. According to the invention, the first processing circuitry <NUM> includes a bi-directional long short-term memory (LSTM) recurrent neural network (RNN). The LSTM implementation can be defined by the equations: <MAT> <MAT> <MAT> <MAT> <MAT> <MAT> where it is the input gate at time-step t, ft is the forget gate at time-step t, ot is the output gate at time-step t, ct is the cell state at time-step t, ht is the hidden state at time-step t, zt is the input to the LSMT at time-step t, and ⊙ indicates element-wise product. In this example aspect, the first representation is produced by determining a mathematical value (e.g., mean) across all of the time-steps of the concatenated hidden states ht of the forward and backward LSTMs.

The slot processing circuitry <NUM> receives the dialogue act, the slot(s), and the corresponding value(s) from the dialogue manager on line <NUM> and produces a second representation that represents all of the slots (e.g., slot vectors mt) that are expected to be present in the natural language output. In one aspect, the second representation is a vector d<NUM> that has an initial value determined by the equation: <MAT> where M represents the number of time-steps t. The initial sum d<NUM> is expressed over all of the one-hot vectors mt associated with the slots that are expected to be in the natural language output. Accordingly, in this example aspect, d<NUM> is a binary vector over all of the slots that are expected to be present in the natural language output.

The second processing circuitry <NUM> receives and processes the first and the second representations to produce one or more delexicalized sentences. According to the invention, the second processing circuitry <NUM> includes a semantically controlled long short-term memory (sc-LSTM) recurrent neural network (RNN). The sc-LSTM implementation may be defined by Equations <NUM>-<NUM> and <NUM> by the additional equations: <MAT> <MAT> <MAT> where dt is the second representation at time-step t (defined by Equation <NUM>), rt is the reading gate at time-step t, and α is a scalar. In the sc-LSTM RNN, the mean hidden state (e.g., the concatenated hidden states ht of the forward and backward LSTMs) is used to initialize h<NUM> and c<NUM> in the second processing circuitry <NUM>. The initial values may be determined by the equations: <MAT> <MAT> The second representation in the sc-LSTM RNN functions similarly to a memory in that the second representation remembers which slots still need to be generated.

The one or more delexicalized sentences produced by the second processing circuitry <NUM> are received by the converter circuitry <NUM>. The converter circuitry <NUM> converts each delexicalized sentence into a lexicalized sentence by replacing each delexicalized slot with its associated value. The value is received by the converter circuitry <NUM> on signal line <NUM>. Each lexicalized sentence is then output on line <NUM>. The lexicalized sentence(s) represents the natural language output that is ultimately provided to a user.

<FIG> is a process flow diagram depicting the operation of the natural language generator shown in <FIG>. As described earlier, the first processing circuitry <NUM> can include a one-layer bi-directional LSTM RNN <NUM>. One or more dialogue act slot-value representations <NUM> (e.g., dialogue act slot-value representations 505A, 505B, 505C) are input into the LSTM RNN <NUM>. The first processing circuitry <NUM> learns or produces a first representation of all of the dialogue act slot-value representations (e.g., the zt vectors) on line <NUM>. In one implementation, the first representation is the mean across all of the time-steps of the concatenated hidden states ht of the forward and backward LSTMs. The mean may be generated by a computing circuit <NUM>.

The slot processing circuitry <NUM> receives the dialogue act, the slot(s), and the corresponding value(s) and produces a second representation on line <NUM>. The second representation represents all of the slots (e.g., all slot vectors mt) that are expected to be present in the natural language output. In one aspect, the second representation is the vector d<NUM> that has an initial value determined by Equation <NUM>.

The second processing circuitry <NUM> receives and processes the first and the second representations to produce one or more delexicalized sentences. As described earlier, in one aspect, the second processing circuitry <NUM> includes the sc-LSTM RNN <NUM>, which can include one or more layers. In the illustrated aspect, the sc-LSTM RNN <NUM> includes two sc-LSTM layers 530A, 530B and a softmax layer <NUM>. Although represented as distinct sc-LSTM and softmax blocks, the multiple layers 530A, 530B, <NUM> represent one sc-LSTM RNN <NUM> in one aspect.

The first and the second representations are both received by the sc-LSTM layers 530A, 530B. For the first time-step, a special symbol "BOS" <NUM> is used to signify the beginning of a sequence. The hidden states of the sc-LSTM layers 530A, 530B are passed to the softmax layer <NUM> to produce a word (e.g., delexicalized slot) at each time-step (e.g., word wi <NUM> at the first time-step). The word embedding (WE) <NUM> for the ground truth for the currently-generated word is then input into the sc-LSTM RNN <NUM> at the next time-step. The word embedding 550A for BOS <NUM> is input into the sc-LSTM RNN <NUM> at the first time-step and the word embedding 550B for the ground truth for the word wi <NUM> is input at the second time-step. This process repeats and the second processing circuitry <NUM> continues to output a word (e.g., w<NUM>, etc.) up to a predefined maximum length, or until the second processing circuitry <NUM> produces a special symbol "EOS" <NUM> (e.g., End Of Sequence).

In the sc-LSTM RNN <NUM>, the second representation functions like a memory that remembers which slots have yet to be generated. Each time a word (e.g., a delexicalized slot) is produced, that slot is removed from the second representation. For example, if wi is a slot, the slot associated with the word wi is removed from the second representation at the first time-step. Accordingly, when the EOS <NUM> is generated, the value of the second representation will be zero (or a sequence of zeros when the second representation is the vector d<NUM>) when all of the slots in the second representation have been output by the second processing circuitry <NUM>.

The converter circuitry <NUM> receives the one or more delexicalized sentences from the second processing circuitry <NUM>. The converter circuitry <NUM> produces a lexicalized sentence for each delexicalized sentence by replacing the delexicalized slot(s) in the delexicalized sentence with the value associated with each delexicalized slot. The lexicalized sentence(s) are then output on line <NUM>. As described earlier, the lexicalized sentence(s) represents the natural language output that is ultimately provided to the user.

<FIG> is a flowchart illustrating a method of operating a natural language generator. Initially, one or more dialogue act slot-value pairs are generated, the process of which is depicted in blocks <NUM> and <NUM>. As shown in block <NUM>, one or more word embeddings are obtained for each value. Each delexicalized dialogue act + slot is then aligned with the associated value(s) (e.g., mean of the word embedding(s)) to produce the one or more dialogue act slot-value representations at block <NUM>.

Next, as shown in block <NUM>, each dialogue act slot-value representation is processed by the first processing circuitry to produce the first representation. As described earlier, the first representation represents all of the received dialogue act slot-value representations (e.g., the zt vectors). In one aspect, the first representation is produced by determining a mean across all of the time-steps of the concatenated hidden states ht of the forward and backward LSTMs.

The second representation is then received at block <NUM>. The second representation represents all of the slots (e.g., slot vectors mt) that are expected to be present in the natural language output. As described earlier, in one aspect, the second representation is initially a sum of all of the slot vectors mt across all of the time-steps (see Equation <NUM>).

The first and the second representations are then processed by the second processing circuitry to produce one or more delexicalized sentences (block <NUM>). Thereafter, at block <NUM>, one or more lexicalized sentences are produced by replacing each delexicalized slot with its associated value. The lexicalized sentence(s) represents the natural language output that is ultimately provided to a user.

<FIG> is a flowchart depicting a method of training a natural language generator. Initially, the parameters in the first and the second processing circuitries are initialized at block <NUM>. Any suitable method or technique may be used to initialize the parameters. In some aspects, one or more parameters of the second processing circuitry (e.g., second processing circuitry <NUM>) can be initialized using a transfer learning process. Transfer learning can improve the performance of an SDS when the SDS is operating in a domain that does not have an available large annotated dataset(s).

With transfer learning, the parameters are initialized from a pre-trained sentence auto-encoder model that is trained on sentences about a topic and/or related to a domain. The auto-encoder model is trained to learn a representation of an input sentence and then decode that representation to generate the original sentence. In one implementation, the auto-encoder model includes first processing circuitry and second processing circuitry that are similar to the first processing circuitry and the second processing circuitry described herein (e.g., first processing circuitry <NUM> and second processing circuitry <NUM>). However, the first processing circuitry of the auto-encoder model receives only the word embeddings for the input sentence. Additionally, the second processing circuitry of the auto-encoder model uses LSTM units instead of sc-LSTM units. The internal LSTM-to-LSTM weights from the second processing circuitry in the auto-encoder model are used as the initial values of the corresponding weights of the internal sc-LSTM to sc-LSTM connections (Whi, Whf, Who, and Whg) in the second processing circuitry described herein (e.g., second processing circuitry <NUM>). The transferred weights of the internal sc-LSTM to sc-LSTM connections in the second processing circuitry <NUM> are then fine-tuned during training. In some implementations, the transferred weights are transferred from a different task (e.g., output original input sentence) and not from the same task (e.g., output natural language output of SDS for input dialogue acts) on a different domain.

After the parameters are initialized, one or more known dialogue acts, slots, and values are provided, input into, and processed by, the first and the second processing circuitries to produce a predicted delexicalized sentence (blocks <NUM> and <NUM>). Thereafter, a loss function over the predicted sentence is determined at block <NUM>. In one aspect, the loss value is determined by the function: <MAT> where yt is the ground truth word distribution, pt is the predicted word distribution, T is the number of time-steps in the first processing circuitry, and η and ξ are scalars set to given values. In one aspect, the given values for the scalars η and ξ are <NUM> and <NUM>, respectively. The term ∥dT∥ pushes the NLG to generate all the slots that should be generated so that at the last time-step there are no slots remaining. Because the output of the second processing circuitry is one delexicalized slot or a word at each time-step, the last term <MAT> encourages the second processing circuitry to not drop more than one slot in the second representation at once (e.g., vector d<NUM>).

Next, as shown in block <NUM>, one or more parameters of the NLG are adjusted based on the determined loss function. In one aspect, the Adaptive Moment Estimation (Adam) optimizer algorithm is used to determine each revised parameter. The operations of blocks <NUM>, <NUM>, and <NUM> repeat until the loss function converges on a substantially stable output (block <NUM>). The neural networks in the first and the second processing circuitries are considered trained when the loss function converges on a substantially stable output.

As should be appreciated, <FIG> are described for purposes of illustrating the present methods and systems and is not intended to limit the disclosure to a particular sequence of steps or a particular combination of hardware or software components. An LSTM RNN and/or an sc-LSTM RNN can each include one or more layers.

<FIG> is a block diagram illustrating physical components (e.g., hardware) of an electronic device <NUM> with which aspects of the disclosure may be practiced. The components described below may be suitable for the computing devices described above, including the client-computing device <NUM> and/or the server-computing device <NUM> in <FIG>.

In a basic configuration, the electronic device <NUM> includes at least one processing unit <NUM> and a system memory <NUM>. Depending on the configuration and type of the electronic device, the system memory <NUM> may comprise, but is not limited to, volatile storage (e.g., random access memory), non-volatile storage (e.g., read-only memory), flash memory, or any combination of such memories. The system memory <NUM> may include a number of program modules and data files, such as an operating system <NUM>, one or more program modules <NUM> suitable for parsing received input, determining subject matter of received input, determining actions associated with the input and so on, and a SDS program module <NUM>. While executing on the processing unit <NUM>, the SDS program module <NUM> may perform and/or cause to be performed processes including, but not limited to, the aspects as described herein.

The operating system <NUM>, for example, may be suitable for controlling the operation of the electronic device <NUM>. Furthermore, aspects of the disclosure may be practiced in conjunction with a graphics library, other operating systems, or any other application program and is not limited to any particular application or system. This basic configuration is illustrated in <FIG> by those components within a dashed line <NUM>.

The electronic device <NUM> may have additional features or functionality. For example, the electronic device <NUM> may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in <FIG> by a removable storage device <NUM> and a non-removable storage device <NUM>.

The electronic device <NUM> may also have one or more input device(s) <NUM> such as a keyboard, a trackpad, a mouse, a pen, a sound or voice input device, a touch, force and/or swipe input device, etc. The output device(s) <NUM> such as a display, speakers, a printer, etc. may also be included. The aforementioned devices are examples and others may be used. The electronic device <NUM> may include one or more communication devices <NUM> allowing communications with other electronic devices <NUM>. Examples of suitable communication devices <NUM> include, but are not limited to, radio frequency (RF) transmitter, receiver, and/or transceiver circuitry; universal serial bus (USB), parallel, and/or serial ports.

The term computer-readable media as used herein may include computer storage media.

The system memory <NUM>, the removable storage device <NUM>, and the non-removable storage device <NUM> are all computer storage media examples (e.g., memory storage or storage device). Computer storage media may include RAM, ROM, electrically erasable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other article of manufacture which can be used to store information and which can be accessed by the electronic device <NUM>. Any such computer storage media may be part of the electronic device <NUM>.

Furthermore, aspects of the disclosure may be practiced in an electrical circuit comprising discrete electronic elements, packaged or integrated electronic chips containing logic gates, a circuit utilizing a microprocessor, or on a single chip containing electronic elements or microprocessors. For example, aspects of the disclosure may be practiced via a system-on-a-chip (SOC) where each or many of the components illustrated in <FIG> may be integrated onto a single integrated circuit. Such an SOC device may include one or more processing units, graphics units, communications units, system virtualization units and various application functionality all of which are integrated (or "burned") onto the chip substrate as a single integrated circuit.

When operating via an SOC, the functionality, described herein, with respect to the capability of client to switch protocols may be operated via application-specific logic integrated with other components of the electronic device <NUM> on the single integrated circuit (chip). Aspects of the disclosure may also be practiced using other technologies capable of performing logical operations such as, for example, AND, OR, and NOT, including but not limited to mechanical, optical, fluidic, and quantum technologies. In addition, aspects of the disclosure may be practiced within a general purpose computer or in any other circuits or systems.

<FIG> is a block diagram illustrating a distributed system in which aspects of the disclosure may be practiced. The system <NUM> allows a user to submit a language input (e.g., verbally and/or written) through a general computing device <NUM> (e.g., a desktop computer), a tablet computing device <NUM>, and/or a mobile computing device <NUM>. The general computing device <NUM>, the tablet computing device <NUM>, and the mobile computing device <NUM> can each include the components, or be connected to the components, that are shown associated with the client-computing device <NUM> in <FIG>.

The general computing device <NUM>, the tablet computing device <NUM>, and the mobile computing device <NUM> are each configured to access one or more networks (represented by network <NUM>) to interact with the SDS <NUM> stored in one or more storage devices (represented by storage device <NUM>) and executed on one or more server-computing devices (represented by server-computing device <NUM>).

In some aspects, the server-computing device <NUM> can access and/or receive various types of documents and information transmitted from other sources, such as a directory service <NUM>, a web portal <NUM>, mailbox services <NUM>, instant messaging services <NUM>, and/or social networking services <NUM>. In some instances, these sources may provide robust reporting, analytics, data compilation and/or storage service, etc., whereas other services may provide search engines or other access to data and information, images, videos, document processing and the like.

Claim 1:
A spoken dialogue system (<NUM>), comprising:
a first processing circuitry (<NUM>);
a recurrent neural network (<NUM>) operably connected to the first processing circuitry; and
one or more storage devices (<NUM>, <NUM>, <NUM>) storing computer executable instructions that when executed by the first processing circuitry and the recurrent neural network (<NUM>) operably connected to the first processing circuitry, cause the first processing circuitry and the recurrent neural network to perform a method comprising:
processing (<NUM>), by the first processing circuitry (<NUM>), one or more dialogue act slot-value representations to produce a first representation of the one or more dialogue act slot-value representations, wherein each dialogue act slot-value representation comprises a first vector (<NUM>) representing a one-hot vector of a delexicalized dialogue act and a delexicalized slot and a second vector (<NUM>) comprising a mean of one or more word embeddings for all of the words corresponding to a lexicalized value associated with the delexicalized slot of the first vector; and
processing (<NUM>), by the recurrent neural network (<NUM>) operably connected to the first processing circuitry (<NUM>), the first representation and a second representation to produce one or more delexicalized sentences as an output, the second representation representing all of the delexicalized slots expected to be included in the natural language output;
wherein the first processing circuitry (<NUM>) comprises a bi-directional long short-term memory, LSTM, recurrent neural network (<NUM>) connected to a computing circuit (<NUM>); and
wherein the recurrent neural network (<NUM>) operably connected to the first processing circuitry (<NUM>) is a semantically controlled long short-term memory, sc-LSTM, recurrent neural network.