Domain knowledge guided fine-tuning of neural conversational models
By introducing natural language rules into the neural conversation model and utilizing the U-rule and S-rule bias model, the problem of poor generalization ability of the neural conversation model with limited data is solved, achieving efficient and low-cost domain knowledge integration and improving the accuracy and response quality of model training.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- MICROSOFT TECHNOLOGY LICENSING LLC
- Filing Date
- 2019-11-07
- Publication Date
- 2026-06-02
AI Technical Summary
Existing neural conversation models have poor generalization ability with limited data and tend to capture false features, while training with large amounts of data is expensive and time-consuming, and it is difficult to effectively integrate domain knowledge.
Domain knowledge is incorporated into the neural conversation model by using Natural Language Rules (NLR), and the number of dialogue examples is reduced by using u-rule and s-rule bias models, thus enabling the fine-grained transfer of domain knowledge.
It enables efficient training of neural conversation models with a limited number of dialogue examples, reduces the impact of spurious features, lowers costs and time, and provides more accurate responses.
Smart Images

Figure CN113302628B_ABST
Abstract
Description
Background Technology
[0001] Neural conversation models are attractive because one can train a conversational model directly on dialogue examples with minimal labeling. That is, neural conversation models learn how to handle conversational dialogue based on a small set of examples, providing systems that are easier to engage with, more intuitive, and faster to develop compared to other conversational models associated with web bots. In fact, no expert is required to train a neural conversation model; specifically, a neural conversation model representing a natural conversation with a user can be built using representative examples, and such examples can be provided in a representative manner. However, training a neural conversation model often requires more examples compared to other conversational techniques.
[0002] However, with limited data, such models often fail to generalize to test data because they tend to capture spurious features associated with specific dialogue examples rather than semantically meaningful domain knowledge. To address this poor generalization, previous techniques focused on providing larger sample sets, making spurious features less dominant during neural conversation model training. Therefore, training neural conversation models with a large number of dialogue examples typically allows them to understand semantic information, enabling them to provide more tailored responses in a way that is more consistent with human expectations. However, collecting large sets of domain-specific dialogue examples tends to be very expensive and also increases the training time associated with neural conversation models. Therefore, requiring users to provide thousands of dialogue examples during the neural conversation model development process is likely impractical.
[0003] The various aspects disclosed herein have been made with respect to these and other general considerations. Moreover, although relatively specific problems may be discussed, it should be understood that the examples should not be limited to solving specific problems identified in the background of this disclosure or elsewhere. Summary of the Invention
[0004] This disclosure describes systems and methods that provide the ability for any human instructor to transfer domain knowledge to a neural conversational model in the form of natural language rules. That is, the systems and methods described herein can incorporate domain knowledge into the neural conversational model, rather than asking for or requiring a large number of dialogue examples during the training process. Specifically, important semantic information can be collected from knowledge rules such that: based on the domain knowledge incorporated as natural language rules, the conversational model can be fine-tuned or otherwise biased in the direction of the provided domain knowledge. Thus, the neural conversational system can utilize small dialogue examples for initial model training to detect important features, while leveraging the incorporated natural language rules to minimize the impact of spurious features. Therefore, a minimal set of natural language can be provided, offering a less expensive model training process, a faster model training process, and a less complex system, avoiding the enormous difficulties associated with having to represent something (such as domain knowledge) in formal language, rather than using formal language to provide domain knowledge, which would require experts, increase costs, and potentially increase development time. As an example, a small number of simple rules (e.g., twenty rules or fewer) required for less than half an hour per domain can be implemented.
[0005] The present invention provides a simplified summary of some concepts, which will be further described in the following detailed description. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to assist in determining the scope of the claimed subject matter. Additional aspects, features, and advantages will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of this disclosure. Attached Figure Description
[0006] The following figures illustrate non-limiting and non-exhaustive examples.
[0007] Figure 1 The diagram illustrates a conversational system according to various aspects of this disclosure;
[0008] Figure 2 The diagram illustrates the components of a conversational system according to various aspects of this disclosure;
[0009] Figure 3 The illustration shows an example configuration of a natural language rules data table and / or data structure according to various aspects of this disclosure;
[0010] Figure 4 Additional details of a conversational system according to various aspects of this disclosure are illustrated.
[0011] Figure 5 Additional details of natural language rule reasoning based on various aspects of this disclosure are illustrated;
[0012] Figures 6A-6B The illustration shows a method according to various aspects of this disclosure for generating conversational output of a conversational system based on provided domain knowledge;
[0013] Figure 7 The illustration shows a method according to various aspects of this disclosure for generating output vectors from domain knowledge for use as biases in a conversational system;
[0014] Figure 8 This is a block diagram illustrating example physical components of a computing device that can be used to practice various aspects of this disclosure;
[0015] Figure 9A It is a simplified block diagram of a computing device that can be used to implement various aspects of this disclosure;
[0016] Figure 9B It is another simplified block diagram of a mobile computing device that can be used to implement various aspects of this disclosure;
[0017] Figure 10 It is a simplified block diagram of a distributed computing system that can be used to implement various aspects of this disclosure; and
[0018] Figure 11 The illustration depicts a tablet computing device for performing one or more aspects of this disclosure. Detailed Implementation
[0019] The foregoing description, examples, and data provide a complete description of the manufacture and use of the compositions of the present invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention is embodied in the appended claims.
[0020] Various aspects of this disclosure are described more fully below with reference to the accompanying drawings, which form part of this disclosure and illustrate specific example aspects. However, different aspects of this disclosure may be implemented in many different forms and should not be construed as limited to the aspects set forth herein; rather, these aspects are provided so that this disclosure will be thorough and complete and will fully communicate the scope of these aspects to those skilled in the art. These aspects may be practiced as methods, systems, or devices. Therefore, these aspects may take the form of hardware implementations, entirely software implementations, or implementations combining software and hardware aspects. Consequently, the following detailed description should not be construed as limiting.
[0021] According to embodiments of this disclosure, the problems of machine learning are overcome using natural language rules. In machine teaching, the role of the teacher is to transfer knowledge to the learning machine so that the learning machine can generate useful models. With the teacher's domain knowledge, the teacher can identify features that are immune to overfitting, as these features are created independently of the training data. For example, in Table 1, the learning machine can select previous system responses. That is, "I am processing" (I'm on it) This serves as a key feature for making predictions about the next response, as the response "I am processing" consistently appears in a limited set of dialogues. However, such spurious regularity does not last as more dialogues become available. Instead, any human instructor can discern that user input should take over as the key feature, regardless of how it is received. Therefore, if a simple way to transfer such knowledge exists, the model can be biased to rely more on semantically robust features.
[0022] According to embodiments of this disclosure, systems and methods are disclosed that receive one or more sets of rules, u-rules, and / or s-rules as input as part of a neural conversational model. Thus, using u-rules, one can suggest what the system should say in response to a particular user input, for example, “Actually, I want $flavored food” → “Okay, anything else that needs updating?”. That is, u-rules express a specific way of responding to utterances received from a user. U-rules include dialogue pairs, where the first part of the u-rule is an example user utterance, and the second part of the u-rule is the expected system response. Using s-rules, one can encourage the system to follow a typical sequence of system actions, for example, “What kind of food do you want?” → “What area of town should I search for?”. Like u-rules, s-rules include system response pairs, where the first part of the u-rule includes the previous system action, and the second part of the s-rule includes the next system action. Thus, for example, in the restaurant domain, the system might first ask for the type of food, and then, if a restaurant is available for that particular type of food, the system could ask for the number of people to book, the booking time, or similar items of interest. Therefore, the optimal ordering of system actions can be provided as an example dialogue in natural language rules. Returning to the example in Table 1, in response to the user saying "Actually, I want $flavored food", the system can respond with "What booking time is most convenient for you?" instead of "Okay, is there anything else that needs updating?", because based on the user-provided S-rule, the response "What booking time is most convenient for you?" is likely to be the next system action.
[0023] Table 1
[0024]
[0025] According to embodiments of this disclosure, a Natural Language Rule (NLR) inferencer can be provided; the NLR inferencer can receive one or more of s-rules and u-rules as input for a specific domain, or otherwise filter one or more provided s-rules and / or u-rules according to the specific domain. The NLR inferencer can then generate higher scores for more desired system actions based on the provided natural language rules. The implemented conversation model then takes this score as a feature and biases predictions to favor actions with higher scores.
[0026] The conversational model described in this disclosure is built on the hybrid code network proposed by Williams et al. (Jason D. Williams, Kavosh Asadih, and Geoffrey Zweig); Hybrid code networks: practical and efficient end-to-end dialog control with supervised and reinforcement learning; Above arXiv preprint arXiv:1702.03274;2017). Hybrid code networks serve as a key component for recent interactive robot development techniques, such as Conversation Learner and Rasa. At a high level, the conversational model includes, but is not limited to, five components: a sentence encoder; a contextual RNN; domain-specific software; domain-specific action templates; and a regular entity extraction module for identifying entities mentioned in the text. Domain-specific action templates can correspond to textual communicative actions or references to another function or action (such as API calls). Candidate action templates can be provided by the developer as part of the model development process and provide a framework for how the model should respond in a given domain. The trained sentence encoder can encode sentences using a 4-layer Long Short-Term Memory (LSTM) with 1000 hidden units per layer. The hidden states from the top layer at the end of the sentence are provided as a sentence representation.
[0027] Now for reference Figure 1 , Figure 1 A configuration of a conversational system 100 according to embodiments of the present disclosure is depicted. The conversational system 100 may include a computing device 104 executing an application 108, wherein the computing device 104 is connected to or otherwise communicates with a server 116, the server 116 executing a conversational dialogue service 120. The conversational dialogue service 120 may provide one or more functionalities based on a conversational model trained on dialogue examples with minimal labels. The computing device 104 may communicate with the server 116 via a network or cloud 112. The computing device 104 may be any type of computing device, such as computing device 800, computing device 900, computing device 902, etc., which may be combined with... Figures 8-11As described. As another non-limiting example, computing device 104 can be any device configured to allow a user to use application 108, such as, for example, a smartphone, tablet computer, desktop computer, laptop computer, gaming device, media device, smart TV, multimedia cable / TV box, smartphone accessory device, industrial machinery, home appliance, thermostat, tablet accessory device, personal digital assistant (PDA), or other Internet of Things (IoT) device.
[0028] Similarly, network 112 can be any kind of network interconnection, such as a local area network (LAN), a wide area network (WAN), a wireless LAN (WLAN), the Internet, one or more communication channels, etc., for example, as combined with Figure 10 The network described is 1015.
[0029] The conversational dialogue service 120 can be executed on server 116 or other types of computing devices (such as server 1002), as in combination with... Figure 10 As described, application 108 allows users to interact with server 116 and receive services, information, or other information from server 116, and / or interact with transactional robots provided by server 116 and / or conversational dialogue service 120. Users of computing device 104 can interact with server 116 via one or more channels. These one or more channels can be any type of communication channel carrying communication for the application, including Short Message Service (SMS), email service, messaging platforms such as conferencing platforms, social networking platforms, text messaging platforms, or any other type of application using text communication. Application 108 may also include any type of application using voice or spoken communication. In various implementations, text may be typed by the user, transcribed text generated by a speech recognizer, or translated from another language using an automatic translation service. Users can join a one-to-one conversation with the robot, or the robot may participate in conversations with multiple users. The robot may be directly addressed, or the robot may monitor the conversation and respond when it determines that a response is relevant or appropriate. Application 108 may include a reservation application, a retail / purchase application, an information retrieval application, or any other type of application that can be interacted with by the user through dialogue, or otherwise.
[0030] Example configurations of components associated with system 100 that can be embodied in hardware and / or software can be as follows: Figure 2As shown. Components may be part of, or performed by, computing device 104 and / or server 116. For example, computing device 104 may perform, but is not limited to, one or more of the following: user interface 252. Server 116 may perform, for example, but is not limited to, one or more of the following: middleware 204, sentence encoder 208, entity extractor 212, entity tracker 216, natural language rule (NLR) inferencer 220, contextual RNN, bilinear 228, second sentence encoder 232, softmax 236, action template selector 240, entity provider 244, and third sentence encoder 248. The specific division of components between computing device 104 and server 116 is not limited to this arrangement, but may be reorganized based on the needs of processes, systems, etc. Furthermore, with Figure 2 There may be more or fewer components than those described in Components 204-252. Each of Components 204-252 may perform the functions described below in a non-limiting manner.
[0031] Middleware 204 can be any component that provides input from a server interface that interacts with computing device 104 to the other components 208-248 described herein. Furthermore, middleware 208 can receive output from the various components 208-248 described herein and provide that output back to computing device 104. Middleware 208 can be, for example, an application programming interface (API), or other components that can provide interaction between the operating system, client device 104, and / or components 208-248.
[0032] User interface 252 can be combined as follows Figure 4 As described. User interface 252 may generate windows or other displays on computing device 104 and may receive input from the user via one or more human-machine interfaces (e.g., mouse, keyboard, etc.). Alternatively or additionally, the user interface may be non-visual in nature and may receive voice input from the user and provide voice output to the user. More specifically, user interface 252 may include any components used to receive and provide communication to the user while the user is interacting with computing device 104. As another example, user interface 252 may provide and / or receive voice or spoken communication, the text of which may be typed by the user, transcribed text generated by a speech recognizer, or translated from another language using an automatic translation service.
[0033] One or more servers can be used to implement the functions of entity extractor 104, recurrent neural network 108, and controller 110 of system 104. Figure 1 In the alternative embodiments, for the purposes of Figure 1 The functions described by the relevant specific function blocks can be found in Figure 1 A session service can be executed within another session service, or split between session service blocks in a different way. A session service can be an implementation of a session model.
[0034] Server 116 may execute one or more sentence encoders 208, 232, and / or 248 to convert one or more sentences from conversational dialogue service 120 into sentence representations or sentence embeddings. Sentence encoders 208, 232, and / or 248 perform sentence embeddings to map words or phrases to vectors of real numbers. For example, a sentence can be mathematically embedded from a one-dimensional space per word into a continuous vector space of much lower dimension, thus forming a sentence embedding. As another example, a neural connector can be utilized, where the neural connector is a pre-trained sentence encoder that encodes sentences using a four-layer Long Short-Term Memory (LSTM) model with 1000 hidden units per layer. The hidden state from the top layer at the end of the sentence can be the derived encoded sentence representation, also known as a sentence embedding. Of course, more or fewer hidden units can be utilized, and / or the hidden state corresponding to the desired time step of the LSTM model can be derived from layers other than the top layer of the neural connector or otherwise obtained. For example, when generating sentence embeddings, it might be desirable to have a hidden state that preserves the ordering information derived from the layers of the LSTM model other than the output layer. According to embodiments of this disclosure, one or more of the previously described sentence encoders for sentence embeddings can be implemented using recurrent neural networks, convolutional neural networks, or attention-based neural networks.
[0035] Server 116 may execute one or more entity extractors 212; entity extractors 212 may identify one or more entities in received utterances or text. For example, in the query “Will it rain in Seattle on Friday?”, entity extractor 212 may identify “Seattle” as a city, “Friday” as a day, and “rain” as a weather event. As another example, entity extractor 212 may identify “Denver” as a <city> entity and “Jennifer Jones” as a <name> entity. Entity extractors 212 may also use user-specific domain-customized models or generalized models suitable for any domain. For example, a generalized model may extract entities such as date, time, location, amount, etc., and entity extractor 212 may optionally parse entities into machine-interpretable forms. For example, “January” may be parsed as “month=1”. Server 116 may execute one or more entity trackers 216; entity trackers 216 may map text such as “Jennifer Jones” to specific locations in storage, such as specific rows in a database or table. Such tracking information can be used to provide contextual features that are useful for distinguishing, for example, which entities are currently present and which are not present in the system's actions.
[0036] Server 116 can execute one or more NLR inferencers 220. NLR inferencers 220 can receive text, or user utterance embeddings, system action embeddings, and two sets of NLR rules: u-rules and s-rules. NLR inferencers 220 then perform inference based on the domain knowledge encoded in the NLR to derive a vector representing a soft preference for a set of action templates. The results of NLR inferencers 220 are then passed as features to the overall conversational model to give it a fine-tuning to account for the domain knowledge.
[0037] Server 116 can execute one or more contextual RNNs 244; the contextual RNNs 244 can be used to generate a distribution over the action to be taken. This distribution can be based on a received set of features, which can be biased according to vectors (such as bias vectors) provided by the NLR inferencer 220, and the output action can be represented as a "flat" list or a generative process. For example, the generative process can use a second neural network that can generate text and the probability of that text. The contextual RNNs 244 can also compute hidden states, which are maintained for the next time step. Server 116 can also execute a bilinear layer 228, which projects the hidden states, or vectors obtained from the contextual RNNs 244, onto the response space to derive a response embedding. The response embedding can be a vector representing aggregated information from the output of the contextual RNNs 244 and having a specified dimension. The response embedding is used to rank candidate action templates based on similarity. The candidate action template can be the same as the domain action template described previously, but is referred to as "candidate" in this instance because a single action template in the provided domain action template will be selected as the "best" match based on the input of the conversational pattern. To select the "best" action template, a set of embeddings for each unique candidate action template is generated using a sentence encoder (such as sentence encoder 232). This set of embeddings is then used, for example, to match... Figure 4 The similarity of the response embeddings at position 420 is used for ranking. Softmax 236 then generates a probability distribution over the candidate action templates. Based on the resulting distribution, the action template selector 240 can then select the "best" action and pass the selected action template to the entity provider 244, where entities are replaced to map the action template to the fully formed action, for example, "<City>, right?" to "Seattle, right?". The fully formed action can then be provided to the user, for example, at user interface 252.
[0038] Figure 3Examples of configurations of NLR data tables and / or data structures 300 according to embodiments of the present disclosure are depicted. NLR data structure 300 may include a domain identifier 304, u-rules 316, and / or s-rules 328. As previously discussed, u-rules may be tuples including preconditions and postconditions. Preconditions for u-rule 316 may include user input 320A, such as “Actually I want $flavored food” as depicted by reference numeral 322A, where “$flavored food” is a food type. Postconditions for u-rules may include system actions 320B, such as “Okay, is there anything else that needs updating?”. s-rules may also be tuples including preconditions and postconditions. Preconditions for s-rules may be previous system actions 332A, such as “What kind of food do you want?” as depicted by reference numeral 334A. The postcondition for an S-rule can be a system action 332B corresponding to the next system action, such as "What area of the town should I search?" as depicted by reference symbol 334B. Each U-rule and / or S-rule can be associated with a domain 304, which can include a domain identifier 308; the domain identifier 308 can indicate the type of domain or the category of domain knowledge, and can be specific or general in nature. For example, depending on the context of other domains, the domain of dining 310 can be specific and / or general. Figure 3 The described NLR data structure 300 may contain additional NLR fields 312, additional u-rules 324, and / or additional s-rules 336 that contribute to it. The NLR data structure 300 may be provided to the NLR inferencer 220.
[0039] Figure 4 An overview of additional details of a conversational system 100 according to embodiments of the present disclosure is provided. For example... Figure 4 The application 108, running on computing device 104, described herein, can provide a user interface 252 that describes one or more information items. As a non-limiting example, a weather robot application 404 can be customized to provide weather information in response to a user query. The user can speak and / or input text into the weather robot application 404 as utterances, such as “What’s the weather like in Seattle this week?” as indicated by reference numeral 408. The utterances can be provided to sentence encoder 208 so that utterance embeddings can be generated. These utterance embeddings can represent the utterances 408 in vector form and can be provided to block 412. Furthermore, the sentence embeddings can be provided to NLR inferencer 220.
[0040] According to embodiments of this disclosure, the NLR inferencer 220 may receive utterance embeddings from sentence encoder 208 and sentence embeddings from sentence encoder 248, wherein the sentence embeddings from sentence encoder 248 represent text associated with a previous system action in vector form. Additionally, the NLR inferencer 220 receives u-rules and / or s-rules as described above. The NLR inferencer 220 may generate a bias vector based on the received u-rules and / or s-rules. or And provide a bias vector to block 412. It can represent the bias vector derived based on the s-rule, while This can represent the bias vector derived based on the u-rule. and When connected, a single bias vector can be generated.
[0041] Block 412 may receive features from entity and / or entity tracking information, utterance embeddings based on user utterances from sentence encoder 208, and bias vectors from NLR inferencer 220. or The received embeddings, in vector form, include one or more bias vectors, previously fully formed actions from sentence embeddings from sentence encoder 248, and content based on API calls. These vector-based embeddings can then be combined into a feature vector for input to a context RNN 224, allowing output generation. Furthermore, the context RNN 224 can maintain a hidden state for the next time step, as shown in "t+1". The context RNN 224 provides its output to a bilinear 228, which projects the output of the context RNN 224 onto the response state. For example, the bilinear 228 can modify the dimension of the output of the context RNN 224 to an equal number of unique action templates. A set of embeddings for each unique candidate action template 416 can be generated by sentence RNN 232 and ranked according to similarity to the response embeddings, where embeddings can be generated for each item of the candidate action template. The subsequent distribution of possible candidate action templates 416 is provided to softmax 236 at 420, such that a probability distribution of candidate action templates 416 is generated, as depicted by reference numeral 424. The “best” action template is then selected by action template selector 240 based on the candidate action template probability distribution 424. For example, the candidate action template with the highest probability can be selected by action template selector 240. The selected action template can then be populated with the corresponding entity to form the fully formed action. For example, “Seattle” can be used to populate the <city> tag.
[0042] The fully formed action can then be provided to the sentence encoder 248 as previously described and to branch control 428. Branch control 428 can branch to one or both of an API call and / or the provision of text or other output. In instances where an API call is selected, the corresponding API or other means for interfacing with functions and features associated with the corresponding system can be called or invoked, allowing rich content to be rendered at a user interface (such as user interface 252). For example, rich content including a Seattle weather forecast for a specific time period can be rendered on the display of user interface 252, as indicated by reference numeral 432. Alternatively or additionally, such rich content can be converted to speech and provided as output at computing device 104. In instances where the action type is text, action type selector 428 can cause text to be provided or otherwise rendered to the user. A phrase such as "Anything else?" (as depicted by reference numeral 436) can be rendered to display 252. In other words, rendering rich content at computing device 104 can depict a first type of response, while rendering text can depict a second type of response. Each type of response, first or second, is biased by the NLR inferencer 220 and the provided u-rules and / or s-rules.
[0043] Figure 5 Additional details of an NLR inferencer 220 according to embodiments of the present disclosure are depicted. The NLR inferencer 220 may receive one or more preconditions 504 from a storage location, such as a precondition memory. Preconditions 504 may be associated with one of the preconditions 320A and / or 332A of the corresponding u-rule 316 or s-rule 328 previously described. The NLR inferencer 220 may receive one or more postconditions 520 from a storage location, such as a postcondition memory. Postconditions 520 may be associated with one of the postconditions 320B and / or 332B of the corresponding u-rule 316 or s-rule 328 previously described. Phrase 408 and / or previous system actions from sentence encoder 248 may be provided to the NLR inferencer 220 as input 508. Similar to the sentence embeddings provided by sentence encoder 208, each of the preconditions and postconditions 520 may be provided as an embedding. Using matcher 512, inference input 508 can be matched against precondition embeddings to generate a vector 516 of matching scores, also known as a vector. The instruction indicates that, given inferencer input 508, each rule is multi-relevant. Similarly, using matcher 528, each postcondition embedding is matched against all candidate action templates to generate a matrix 532 of matching scores, also known as the matrix. Candidate action template 524 is typically presented as a list of actions from which the next system action is selected, for example, ranging from action 1 to action k. Additionally, candidate action template 524 may be provided as an embedding from a sentence encoder (e.g., sentence encoder 232).
[0044] Each element of matrix 532 represents the correlation between the candidate action template and the corresponding rule. Therefore, the vector sum matrix The element-wise product of 536 produces a weighted matrix such that the sum of these weighted matrices over these rows (where rows equal the s-rule and u-rule) is 540, resulting in... Vector 544 represents the correlation of candidate action templates from multiple candidate action templates 524 based on inferencer input 508 and rule pair 504 / 520. Finally, a weighted average of the set of candidate action templates 524 is taken using a weight equal to α, and the output vector is... and They are generated based on the s-rule and the u-rule, respectively. Therefore, the NLR inferencer 220 is generated by connecting vectors. and This provides the final vector. This final vector can be called the bias vector.
[0045] Based on the example above, and for illustrative purposes, as indicated by the darkest shaded vector element in vector 516, the current user input 508 best matches precondition 2. However, none of the available candidate action templates 524 match particularly well with any of the postconditions from the list of postconditions 520, since each element represented in matrix 523 is visually depicted as lightly shaded. Nevertheless, a score is assigned for each candidate action template, allowing the NLR inferencer 220 to generate inference, fine-tuning, or biasing based on the NLR representing domain knowledge for use in the conversational system 100.
[0046] Method 600 for generating conversational output for a conversational system based on provided domain knowledge can be as follows: Figures 6A-6B As shown. The general order of steps in method 600 is as follows: Figures 6A-6B As shown. Typically, method 600 begins with start operation 604 and ends with end operation 664. Method 600 may include more or fewer steps, or may be implemented differently from... Figures 6A-6BThe steps are arranged in the order shown. Method 600 can be executed as a set of computer-executable instructions that are executed by a computer system and encoded or stored on a computer-readable medium. Furthermore, method 600 can be executed by gates or circuits associated with a processor, application-specific integrated circuit (ASIC), field-programmable gate array (FPGA), system-on-a-chip (SoC), or other hardware device. In the following, reference will be made to... Figures 1-5 as well as Figures 8-11 Method 600 is explained by describing the system, components, modules, software, data structures, user interfaces, etc.
[0047] For example, at step 608, an interface such as user interface 252 may receive utterances from the user. As previously discussed, utterances may include one or more text inputs, voice inputs, and / or other information-conveying inputs from the user. Then, at step 612, the received utterances may be formed into utterance embeddings, for example, by sentence encoder 208. Furthermore, at steps 616 and 620, respectively, entities may be extracted / identified and further mapped to storage locations using entity extractor 212 and entity tracker 216. Previous system actions created, for example, by sentence encoder 248, may be formed into previous system action embeddings and provided to NLR inferencer 220 at step 624, wherein the previous system action embedding is a vector representation of the previous system action. At step 628, NLR and utterance embeddings may be received at NLR inferencer 220 at step 628, wherein a bias vector is generated at step 632 and provided to block 412. Next, at step 636, the hidden system state can be generated by the contextual RNN 224 based on the bias vector, entity / entity mapping, previous system actions, utterance embeddings, and previous system results (such as API calls), and the subsequent response embeddings corresponding to the bilinear layer 228 can be generated at step 644. At step 648, the embedding for each candidate action template can be generated by the sentence encoder 232 and then ranked according to its similarity to the response embeddings provided by the bilinear layer 228. At step 652, the probability distribution over the candidate action templates can be generated by the softmax 236, and the action template selector 240 can select the “best” action template. At step 656, the selected action can then be fully formed by the entity provider. For example, entities identified at the entity extractor 212 and tracked by the entity tracker 216 can be used to populate the selected candidate action template. At step 660, the resulting output including the populated entities can be generated. The output may include calling system APIs to render rich content and display it at computing device 104; alternatively or additionally, the output may allow text to be rendered at computing device 104.
[0048] The method 700 for generating output vectors from domain knowledge to bias conversational systems can be as follows: Figure 7 As shown. The general order of the steps in method 700 is as follows: Figure 7 As shown. Typically, method 700 begins with start operation 704 and ends with end operation 728. Method 700 may include more or fewer steps, or may be different from [previous method]. Figure 7 The steps are arranged in the order shown. Method 700 can be executed as a set of computer-executable instructions that are executed by a computer system and encoded or stored on a computer-readable medium. Furthermore, method 700 can be executed by gates or circuits associated with a processor, application-specific integrated circuit (ASIC), field-programmable gate array (FPGA), system-on-a-chip (SoC), or other hardware device. In the following, reference will be made to... Figures 1-6B as well as Figures 8-11 Method 700 is explained by describing the system, components, modules, software, data structures, user interfaces, etc.
[0049] At step 708, the NLR can be received and stored in the precondition and postcondition storage locations. These NLRs can be the same as or similar to the S-rules and U-rules referenced throughout this disclosure and / or in conjunction with the NLR data table and / or data structure 300. Although Figure 5 Precondition memory 504 and postcondition memory 520 are described, but it should be understood that precondition memory 504 may correspond to user input 320A and / or previous system action 332A of (multiple) u-rules 316 and (multiple) s-rules 328, respectively. That is, data structure 300 may be utilized as a storage device for precondition and postcondition rules. At step 712, the relevance of each precondition in the preconditions may be generated as a vector, such as vector 516, for the inferencer input. More specifically, using matcher 512, inferencer input 508, which may correspond to utterance embeddings or previous system actions, may be matched with precondition embeddings to generate a matching score. The vector 516 indicates how relevant each rule is given the inferencer input 508.
[0050] At step 716, a relevance for each postconditional rule can be generated for each candidate action template in the candidate action templates to generate matrix 532. More specifically, using matcher 528, each postconditional embedding in the postconditional embedding is matched to a candidate action template to generate a matching score. The matrix 532. The postconditional embedding typically corresponds to the next system action. The candidate action template 524 is typically presented as a list of actions from which the next system action is selected, for example, ranging from action 1 to action k. Additionally, the candidate action template 524 can be provided as embeddings from the sentence encoder. At step 720, the relevance for each candidate action template can be generated based on the inferencer input and the NLR pair. That is, the element-wise product of vector 516 and matrix 532 provides a weighted matrix such that the sum of this weighted matrix over the rows (i.e., rules) is vector 544, which represents the relevance of the candidate action templates from multiple candidate action templates 524 based on the inferencer input 508 and the rule pair 504 / 520. At step 724, vector 544 can be applied as a weighted average over a set of candidate action template embeddings to produce a bias vector. and For example, the bias vector and It can be concatenated and provided as the output of the NLR inferencer 220. That is, the concatenated bias vector. and It can be provided to system block 412 and eventually fed into context RNN 224 as part of the feature vector.
[0051] Figure 8 This is a block diagram illustrating the physical components (e.g., hardware) of a computing device 800 that can be used to practice the aspects of this disclosure. The computing device components described below can be adapted for use with the computing device described above. In a basic configuration, computing device 800 may include at least one processing unit 802 and system memory 804. Depending on the configuration and type of the computing device, system memory 804 may include, but is not limited to, volatile storage devices (e.g., random access memory), non-volatile storage devices (e.g., read-only memory), flash memory, or any combination of such memories. System memory 804 may include an operating system 808 and one or more program modules 806 adapted to execute the aspects described herein, such as an identity provider 824 and an attribute inference processor 826. For example, operating system 808 may be adapted to control the operation of computing device 800. Furthermore, aspects of this disclosure can be practiced in conjunction with graphics libraries, other operating systems, or any other applications, and are not limited to any particular application or system. This basic configuration in Figure 8 The components within the dashed line 808 are illustrated. The computing device 800 may have additional features or functionalities. For example, the computing device 800 may also include additional data storage devices (removable and / or non-removable), such as, for example, a hard disk, optical disk, or magnetic tape. Such additional storage devices... Figure 8The diagram shows a removable storage device 809 and a non-removable storage device 810.
[0052] As described above, multiple program modules and data files can be stored in system memory 804. When executed on processing unit 802, program module 806 (e.g., application 820) can perform aspects including, but not limited to, those described herein. Other program modules that can be used according to aspects of this disclosure may include email and contact applications, word processing applications, spreadsheet applications, database applications, PowerPoint presentation applications, drawing or computer-aided applications, etc.
[0053] Furthermore, aspects of this disclosure can be implemented in electrical circuits including discrete electronic components, in packages or integrated electronic chips containing logic gates, in circuits utilizing microprocessors, or on a single chip containing electronic components or a microprocessor. For example, aspects of this disclosure can be implemented via a system-on-a-chip (SOC), wherein... Figure 8 Each or many of the components illustrated herein can be integrated onto a single integrated circuit. Such a SOC device may include one or more processing units, graphics units, communication units, system virtualization units, and various application functionalities, all of which are integrated (or “burned”) onto a chip substrate as a single integrated circuit. When operating via the SOC, the functionalities described herein regarding the client switching protocol can be operated via dedicated logic, which is integrated onto a single integrated circuit (chip) along with other components of the computing device 800. Other techniques capable of performing logical operations (such as, for example, “AND,” “OR,” and “NOT”) can also be used to practice aspects of this disclosure, including but not limited to mechanical, optical, fluid, and quantum techniques. Furthermore, aspects of this disclosure can be practiced within a general-purpose computer or in any other circuit or system.
[0054] The computing device 800 may also have one or more input devices 812, such as a keyboard, mouse, pen, voice or speech input device, touch or swipe input device, etc. Multiple output devices 814, such as a display, speaker, printer, etc., may also be included. The above devices are examples, and other devices may be used. The computing device 800 may include one or more communication connections 816 to allow communication with other computing devices 880. Suitable communication connections 816 include, but are not limited to: radio frequency (RF) transmitter, receiver, and / or transceiver circuitry; universal serial bus (USB), parallel and / or serial ports.
[0055] As used herein, the term "computer-readable medium" can include computer storage media. Computer storage media can include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information, such as computer-readable instructions, data structures, or software modules. System memory 804, removable storage device 809, and non-removable storage device 810 are examples of computer storage media (e.g., memory storage devices). Computer storage media can include RAM, ROM, electrically erasable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile disk (DVD) or other optical storage devices, magnetic tape, magnetic tape, disk storage devices or other magnetic storage devices, or any other article of manufacture that can be used to store information and is accessible by computing device 800. Any such computer storage medium can be part of computing device 800. Computer storage media does not contain carrier waves or other propagated or modulated data signals.
[0056] Communication media can be embodied in computer-readable instructions, data structures, program modules, or other data (such as carrier waves or other transmission mechanisms) in modulated data signals, and include any information transmission medium. The term "modulated data signal" can describe a signal having one or more characteristics that are set or altered in a manner that encodes information in the signal. By way of example and not limitation, communication media can include wired media (such as wired networks or direct-connected networks) and wireless media (such as voice, radio frequency (RF), infrared, and other wireless media).
[0057] Figure 9A and Figure 9B A computing device or mobile computing device 900 is shown that can be used to implement various aspects of this disclosure, such as a mobile phone, smartphone, wearable computer (such as a smartwatch), tablet computer, laptop computer, etc. In some aspects, the client (e.g., computing system 104) can be a mobile computing device. Reference Figure 9AThis illustration shows one aspect of a mobile computing device 900 used to implement these aspects. In a basic configuration, the mobile computing device 900 is a handheld computer with both input and output elements. The mobile computing device 900 typically includes a display 905 and one or more input buttons 910 that allow users to enter information into the mobile computing device 900. The display 905 of the mobile computing device 900 can also function as an input device (e.g., a touchscreen display). If included, an optional side input element 915 allows for further user input. The side input element 915 can be a rotary switch, a button, or any other type of manual input element. Alternatively, the mobile computing device 900 can incorporate more or fewer input elements. For example, in some aspects, the display 905 may not be a touchscreen. In yet another alternative aspect, the mobile computing device 900 is a portable telephone system, such as a cellular phone. The mobile computing device 900 may also include an optional keypad 935. The optional keypad 935 can be a physical keypad or a “soft” keypad generated on a touchscreen display. In various aspects, the output elements include a display 905 for displaying a graphical user interface (GUI), a visual indicator 920 (e.g., a light-emitting diode), and / or an audio transducer 925 (e.g., a speaker). In some aspects, the mobile computing device 900 incorporates a vibration transducer for providing haptic feedback to the user. In another aspect, the mobile computing device 900 incorporates input and / or output ports, such as audio input (e.g., a microphone jack), audio output (e.g., a headphone jack), and video output (e.g., an HDMI port), for sending signals to or receiving signals from external devices.
[0058] Figure 9B This is a block diagram illustrating an aspect of the architecture of a computing device, server (e.g., server 112), or mobile computing device. Specifically, computing device 900 can be incorporated into system (e.g., architecture) 902 to implement certain aspects. System 902 can be implemented as a "smartphone" capable of running one or more applications (e.g., browser, email, calendar, contact manager, messaging client, game, and media client / player). In some aspects, system 902 is integrated as a computing device, such as integrating a personal digital assistant (PDA) and a wireless phone.
[0059] One or more applications 966 may be loaded into memory 962 and run on or associated with operating system 964. Examples of applications include telephone dialers, email programs, personal information management (PIM) programs, word processing programs, spreadsheet programs, internet browser programs, messaging programs, etc. System 902 also includes a non-volatile storage area 968 within memory 962. The non-volatile storage area 968 can be used to store persistent information that should not be lost even if system 902 is powered off. Applications 966 can use and store information in the non-volatile storage area 968, such as emails or other messages used by email applications. A synchronization application (not shown) also resides on system 902 and is programmed to interact with a corresponding synchronization application residing on the host computer to keep the information stored in the non-volatile storage area 968 synchronized with the corresponding information stored on the host computer. It should be understood that other applications can be loaded into memory 962 and run on the mobile computing device 900 described herein (e.g., search engine, extractor module, relevance ranking module, answer scoring module, etc.).
[0060] System 902 has a power supply 970, which can be implemented as one or more batteries. The power supply 970 may also include an external power source, such as an AC adapter or a powered docking bracket for replenishing or charging the batteries.
[0061] System 902 may also include a radio interface layer 972 that performs functions for transmitting and receiving radio frequency communications. Radio interface layer 972 supports wireless connectivity between system 902 and the "external world" via a communications operator or service provider. Transmissions to and from radio interface layer 972 are performed under the control of operating system 964. In other words, communications received by radio interface layer 972 can be distributed to application program 966 via operating system 964, and vice versa.
[0062] A visual indicator 920 can be used to provide visual notifications, and / or an audio interface 974 can be used to generate auditory notifications via an audio transducer 925. In the illustrated configuration, the visual indicator 920 is a light-emitting diode (LED), and the audio transducer 925 is a speaker. These devices can be directly coupled to a power supply 970 such that, when activated, they remain on for a duration specified by the notification mechanism, even if the processor 960 and other components may be turned off to conserve battery power. The LED can be programmed to remain on indefinitely until the user takes an action to indicate the device's power-on status. The audio interface 974 is used to provide and receive audio signals from the user. For example, in addition to being coupled to the audio transducer 925, the audio interface 974 can also be coupled to a microphone to receive audio input, such as for supporting telephone conversations. According to various aspects of this disclosure, the microphone can also act as an audio sensor to support control of the notification, as will be described below. System 902 may also include a video interface 976, which enables the operation of the camera 930 on the board to record still images, video streams, etc.
[0063] The mobile computing device 900 implementing system 902 may have additional features or functionalities. For example, the mobile computing device 900 may also include additional data storage devices (removable and / or non-removable), such as disks, optical discs, or magnetic tapes. Such additional storage devices... Figure 9B The non-volatile storage area 968 is shown in the middle.
[0064] As described above, data / information generated or captured by mobile computing device 900 and stored via system 902 can be stored locally on mobile computing device 900, or the data can be stored on any number of storage media accessible by the device via wireless interface layer 972, or via a wired connection between mobile computing device 900 and a separate computing device associated with mobile computing device 900 (e.g., a server computer in a distributed computing network such as the Internet). It should be understood that such data / information can be accessed via mobile computing device 900 via radio interface layer 972 or via a distributed computing network. Similarly, such data / information can be easily transferred between computing devices for storage and use using well-known data / information transfer and storage methods, including email and collaborative data / information sharing systems.
[0065] Figure 10This illustrates one aspect of the architecture of a system, as described above, for processing data received at a computing system from a remote source, such as a personal computer 1004, a tablet computing device 1006, or a mobile computing device 1008. Content displayed at server device 1002 can be stored in different communication channels or other storage types. For example, various documents can be stored using a directory service 1022, a web portal 1024, an email service 1026, an instant messaging repository 1028, or a social networking site 1030. A unified profile API 1021 can be used by a client communicating with server device 1002, and / or an attribute inference processor 1020 can be used by server device 1002. Server device 1002 can provide data to or from client computing devices (such as personal computers 1004, tablet computing devices 1006, and / or mobile computing devices 1008 (e.g., smartphones)) via network 1015. As an example, the computer system described above can be embodied in a personal computer 1004, a tablet computing device 1006, and / or a mobile computing device 1008 (e.g., a smartphone). In addition to receiving graphics data that can be preprocessed at the system of origin of the graphics or post-processed at the receiving computing system, any configuration of these computing devices can be obtained from the repository 1016.
[0066] Figure 11 An exemplary tablet computing device 1100 is shown that can perform one or more aspects of the disclosure herein. Furthermore, the aspects and functionalities described herein can operate on a distributed system (e.g., a cloud-based computing system), wherein application functionalities, memory, data storage and retrieval, and various processing functions can be remotely operated on each other via a distributed computing network (such as the Internet or an intranet). Various types of user interfaces and information can be displayed via an on-board computing device display or via a remote display unit associated with one or more computing devices. For example, various types of user interfaces and information can be displayed and interacted with on a wall surface, and various types of user interfaces and information are projected onto that wall surface. Interaction with multiple computing systems that can practice the aspects of the disclosure includes keystroke input, touchscreen input, voice or other audio input, gesture input, wherein the associated computing device is equipped with detection (e.g., a camera) functionality for capturing and interpreting user gestures for controlling the functionality of the computing device, etc.
[0067] The phrases “at least one,” “one or more,” “or,” and “and / or” are open-ended expressions that can be either conjunction or disjunctive in operation. For example, each of the expressions “at least one of A, B, and C,” “at least one of A, B, or C,” “one or more of A, B, and C,” “one or more of A, B, or C,” “A, B, and / or C,” and “A, B, or C” implies A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B, and C together.
[0068] The term "a" or "an" entity refers to one or more of that entity. Therefore, the terms "a" (or "an"), "one or more," and "at least one" are used interchangeably herein. It should also be noted that the terms "comprising," "including," and "having" are used interchangeably.
[0069] As used herein, the term "automatic" and its variations refer to any process or operation that is typically sequential or semi-sequential and can be performed without substantial human input. However, an operation can be automatic even if its execution uses substantial or non-substantial human input, provided that input is received prior to its execution. Human input is considered substantial if it influences how a process or operation will be performed. Human input that consents to the execution of a process or operation is not considered "substantial."
[0070] Any of the steps, functions, and operations discussed in this article can be performed continuously and automatically.
[0071] Exemplary systems and methods of this disclosure have been described with respect to computing devices. However, to avoid unnecessarily obscuring this disclosure, many known structures and devices have been omitted from the foregoing description. This omission should not be construed as a limitation on the scope of the claimed disclosure. Specific details have been set forth to provide an understanding of this disclosure. However, it should be understood that this disclosure may be practiced in various ways other than the specific details set forth herein.
[0072] Furthermore, although the exemplary aspects shown herein depict individual components of a co-located system, some components of the system may be located remotely at remote portions of a distributed network (such as a LAN and / or the Internet) or within a dedicated system. Therefore, it should be understood that components of the system may be combined into one or more devices (such as servers, communication devices), or co-located on specific nodes of a distributed network (such as analog and / or digital telecommunications networks, packet-switched networks, or circuit-switched networks). As will be understood from the foregoing description, and for computational efficiency reasons, components of the system may be positioned anywhere within the distributed network of components without affecting the operation of the system.
[0073] Furthermore, it should be understood that the various links connecting the elements can be wired or wireless links, or any combination thereof, or any other known or subsequently developed elements capable of supplying and / or transmitting data to and from the linked elements. These wired or wireless links can also be secure links and capable of transmitting encrypted information. The transmission medium used as a link can be, for example, any suitable carrier of electrical signals, including coaxial cables, copper wires, and optical fibers, and can take the form of sound waves or light waves, such as those generated during radio wave and infrared data communication.
[0074] Although a particular sequence of events has been discussed in conjunction with the accompanying drawings, it should be understood that changes, additions, and omissions to the sequence may occur without substantially affecting the operation of the disclosed configuration and aspects.
[0075] Many variations and modifications of this disclosure may be used. It is possible to provide some features of this disclosure without providing others.
[0076] In another configuration, the systems and methods of this disclosure may be implemented by combining a dedicated computer, a programmable microprocessor or microcontroller and (multiple) peripheral integrated circuit elements, ASICs or other integrated circuits, digital signal processors, hardwired electronic circuits or logic circuits (such as discrete component circuits), programmable logic devices or gate arrays (such as PLDs, PLAs, FPGAs, PALs), a dedicated computer, any comparable means, etc. Generally, any (multiple) devices or means capable of implementing the methods shown herein can be used to implement various aspects of this disclosure. Exemplary hardware that may be used in this disclosure includes computers, handheld devices, telephones (e.g., cellular, internet-enabled, digital, analog, hybrid, and other telephones), and other hardware known in the art. Some of these devices include processors (e.g., single or multiple microprocessors), memory, non-volatile storage devices, input devices, and output devices. Furthermore, alternative software implementations, including but not limited to distributed processing or component / object distributed processing, parallel processing, or virtual machine processing, may also be constructed to implement the methods described herein.
[0077] In another configuration, the disclosed methods can be readily implemented using software employing an object-oriented or object-centered software development environment that provides portable source code usable on various computer or workstation platforms. Alternatively, the disclosed system can be implemented, partially or entirely, in hardware using standard logic circuitry or VLSI design. Whether a system according to this disclosure is implemented using software or hardware depends on the system speed and / or efficiency requirements, specific functions, and the particular software or hardware system or microprocessor or microcomputer system utilized.
[0078] In another configuration, the disclosed methods can be partially implemented in software, which can be stored on a storage medium and executed on a programmed general-purpose computer, special-purpose computer, microprocessor, etc., cooperating with a controller and memory. In these instances, the systems and methods of this disclosure can be implemented as programs (such as applets, JAVA®, or CGI scripts) embedded in a personal computer, resources residing on a server or computer workstation, processes embedded in a dedicated measurement system, system components, etc. The system can also be implemented by physically incorporating the system and / or methods into a software and / or hardware system.
[0079] Although this disclosure describes components and functionalities implemented with reference to specific standards and protocols, this disclosure is not limited to such standards and protocols. Other similar standards and protocols exist not mentioned herein, and these standards and protocols are considered to be included in this disclosure. Furthermore, the standards and protocols mentioned herein, as well as other similar standards and protocols not mentioned herein, are periodically replaced by faster or more efficient equivalents that have essentially the same functionality. These replacement standards and protocols with the same functionality are considered to be equivalents included in this disclosure.
[0080] In various configurations and aspects, this disclosure includes components, methods, processes, systems, and / or apparatuses substantially as depicted and described herein, including various combinations, sub-combinations, and subsets thereof. Upon understanding this disclosure, those skilled in the art will understand how to make and use the systems and methods disclosed herein. In various configurations and aspects, this disclosure includes providing apparatuses and processes in the absence of items not depicted and / or described herein, including the absence of items that might have been used in prior art or processes, for example, to improve performance, achieve simplification, and / or reduce implementation costs.
[0081] For example, aspects of this disclosure have been described above with reference to the accompanying drawings and / or operational descriptions of methods, systems, and computer program products according to various aspects of this disclosure. Functions and / or actions mentioned in a box may occur in a different order than shown in any of the drawings. For example, depending on the functionality / action involved, two boxes shown as consecutive may actually be performed substantially concurrently, or sometimes may be performed in reverse order.
[0082] The description and illustrations of one or more aspects provided in this application are not intended to limit or restrict the scope of the claimed disclosure in any way. The aspects, examples, and details provided in this application are considered sufficient to convey the best mode of possession and to enable others to make and use the claimed disclosure. The claimed disclosure should not be construed as limited to any aspect, example, or detail provided in this application. Various features (structural and methodological) are intended to be selectively included or omitted, whether shown or described in combination or separately, to produce configurations with a particular set of features. Given the description and illustrations provided in this application, variations, modifications, and alternatives will be conceived by those skilled in the art, falling within the spirit of the broader aspects of the general inventive concept embodied in this application, without departing from the broader scope of the claimed disclosure.
[0083] One aspect of this disclosure includes a computer-implemented method comprising: receiving one or more natural language rules specific to at least one knowledge domain; receiving a set of candidate action templates, each candidate action template in the set corresponding to at least one system action; receiving at least one input indicating a utterance or a previous system action; generating a correlation vector representing the correlation between each candidate action template in the set and at least one input and one or more rules; and generating a bias vector when a weighted average of the correlation vector is applied to each candidate action template in the set.
[0084] Any one of the above aspects, wherein one or more natural language rules include preconditions and postconditions.
[0085] Any one of the above aspects also includes generating a correlation vector representing the correlation between the preconditions and the input.
[0086] Any one of the above aspects also includes generating a correlation matrix that represents the correlation between the postcondition and each of the candidate action templates in a set of candidate action templates.
[0087] Any one of the above aspects, wherein the correlation vector representing the correlation between each candidate action template in a set of candidate action templates and at least one input and one or more rules is based on a correlation vector and a correlation matrix representing the correlation between preconditions and inputs.
[0088] Any one of the above aspects also includes using bias vectors to bias a conversational dialogue model; and selecting candidate action templates based on bias vectors.
[0089] Any one of the foregoing aspects further includes: causing text output based on the selected candidate action template to be displayed on the display of a computing device.
[0090] This disclosure includes a system comprising: one or more processors and a memory in communication with the one or more processors, the memory including computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to: receive a utterance embedding as system input; receive one or more natural language rules specific to at least one knowledge domain; generate a relevance vector representing the relevance of one or more candidate action templates to the system input and the one or more rules; generate a bias vector when a weighted average of the relevance vectors is applied to the one or more candidate action templates; and select a candidate action template based on the bias vector.
[0091] Any one of the above aspects, wherein one or more natural language rules include preconditions and postconditions.
[0092] Any one or more of the foregoing aspects, wherein when executed by one or more processors, the computer-executable instructions cause the one or more processors to generate system actions based on a selected candidate action template.
[0093] Any one or more of the foregoing aspects, wherein computer-executable instructions, when executed by one or more processors, cause the one or more processors to: receive the generated system action as a second system input; generate a second correlation vector representing the correlation between one or more candidate action templates and the second system input and one or more rules; generate a second bias vector when a weighted average of the second correlation vector is applied to one or more candidate action templates; and select a second candidate action template based on the second bias vector.
[0094] Any one or more of the above aspects, wherein the precondition is a previous system action and the postcondition is a system action.
[0095] Any one or more of the above aspects, wherein the precondition is user input and the postcondition is a system action.
[0096] Any one or more of the foregoing aspects, wherein when executed by one or more processors, the computer-executable instructions cause the one or more processors to: cause text output based on a selected candidate action template to be displayed at a display of a computing device.
[0097] This disclosure includes a computer storage medium including computer-executable instructions stored thereon, the computer-executable instructions executing a method when executed by at least one processor, the method comprising: receiving one or more natural language rules specific to at least one knowledge domain; receiving a set of candidate action templates, each candidate action template in the set corresponding to at least one system action; receiving at least one input indicating a utterance or a previous system action; generating a correlation vector representing the correlation between each candidate action template in the set of candidate action templates and at least one input and one or more rules; and generating a bias vector when a weighted average of the correlation vector is applied to each candidate action template in the set of candidate action templates.
[0098] Any one of the above aspects, wherein one or more natural language rules include preconditions and postconditions.
[0099] Any one of the above aspects further includes: generating a correlation vector representing the correlation between the precondition and the input; generating a correlation matrix representing the correlation between the postcondition and each candidate action template in the set of candidate action templates.
[0100] Any one of the above aspects, wherein the correlation vector representing the correlation between each candidate action template in a set of candidate action templates and at least one input and one or more rules is based on a correlation vector and a correlation matrix representing the correlation between preconditions and inputs.
[0101] Any one of the above aspects further includes: biasing a conversational dialogue model using a bias vector; and selecting candidate action templates based on the bias vector.
[0102] Any one of the foregoing aspects further includes: causing text output based on the selected candidate action template to be displayed on the display of a computing device.
[0103] As in any one or more of the aspects substantially disclosed herein.
[0104] Any one or more aspects of the aspects substantially disclosed herein may optionally be combined with any one or more other aspects of the aspects substantially disclosed herein.
[0105] Adapted to perform one or more of the above aspects or means as substantially disclosed herein.
Claims
1. A computer-implemented method, performed by a conversational system to provide a dialogue with a user, the method comprising: Receive multiple natural language rules specific to at least one knowledge domain, said natural language rules including u-rules and s-rules, wherein: The u-rule comprises a dialogue pair, wherein the first part of the u-rule is a precondition including an example user utterance, and the second part of the u-rule is a postcondition including the expected system response to the example user utterance. The S-rule includes system response pairs, wherein the first part of the S-rule is a precondition including the previous system action, and the second part of the S-rule is a postcondition including the next system action; Receive a set of candidate action templates, each of which is a domain-specific action template for the next system action that the conversational system will take. Receive input from user instructions in the form of voice and / or text, or from previous system actions; Generate a correlation vector representing the correlation between each candidate action template in the set of candidate action templates and the input and the natural language rule that indicates the utterance or the previous system action; Generate a bias vector as a weighted representation of the relevance vector applied to each candidate action template in the set of candidate action templates; and The bias vector is used to bias the conversational dialogue model of the conversational system.
2. The computer-implemented method according to claim 1 further includes: Generate a correlation vector representing the correlation between the precondition and the input indicating the utterance or the previous system action.
3. The computer-implemented method according to claim 2 further includes: Generate a correlation matrix, which represents the correlation between the postcondition and each candidate action template in the set of candidate action templates.
4. The computer-implemented method of claim 3, wherein the correlation vector representing the correlation between each candidate action template in the set of candidate action templates and the input and the plurality of natural language rules is based on the correlation vector representing the correlation between the preconditions and the input and the correlation matrix.
5. The computer-implemented method of claim 1, wherein biasing the conversational dialogue model using the bias vector comprises selecting an action template from the set of candidate action templates based on the bias vector for use in a dialogue with the user.
6. The computer-implemented method according to claim 5, further comprising: The text output based on the selected action is displayed on the monitor of the computing device.
7. A conversational system that provides dialogue with a user, comprising: One or more processors, and A memory communicating with the one or more processors, the memory including computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to: Receive utterance embeddings as system input, the utterance embeddings indicating utterances input by the user as speech and / or text; Receive multiple natural language rules specific to at least one knowledge domain, said natural language rules including u-rules and s-rules, wherein: The u-rule comprises a dialogue pair, wherein the first part of the u-rule is a precondition including an example user utterance, and the second part of the u-rule is a postcondition including the expected system response to the example user utterance. The S-rule comprises system response pairs, wherein the first part of the S-rule is a precondition that includes the previous system action, and the second part of the S-rule is a postcondition that includes the next system action; Generate a correlation vector, which represents the correlation between each candidate action template in a set of candidate action templates and the system input and the plurality of natural language rules, wherein the candidate action templates are domain-specific action templates for the next system action to be taken by the conversational system; Generate a bias vector as a weighted representation of the relevance vector for the one or more candidate action templates; and The bias vector is used to select one of the one or more candidate action templates.
8. The system of claim 7, wherein the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to generate system actions based on the selected candidate action template.
9. The system of claim 8, wherein the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to: Receive the generated system action as a second system input; Generate a second correlation vector, which represents the correlation between the one or more candidate action templates and the second system input and the natural language rule; A second bias vector is generated as a weighted representation of the second correlation vector applied to the one or more candidate action templates; as well as The second candidate action template is selected based on the second bias vector.
10. The system of claim 7, wherein the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to: cause text output based on the selected candidate action template to be displayed on a display of a computing device.
11. A computer storage device including computer-executable instructions stored thereon, the computer-executable instructions executing a method when executed by at least one processor, the method being executed by a conversational system to provide a dialogue with a user, the method comprising: Receive multiple natural language rules specific to at least one knowledge domain, said natural language rules including u-rules and s-rules, wherein: The u-rule comprises a dialogue pair, wherein the first part of the u-rule is a precondition, including an example user utterance, and the second part of the u-rule is a postcondition, including the expected system response to the example user utterance. The s-rule includes system response pairs, wherein the first part of the s-rule is a precondition that includes the previous system action, and the second part of the s-rule is a postcondition that includes the next system action; Receive a set of candidate action templates, each of which is a domain-specific action template for the next system action that the conversational system will take. Receive input from the user as voice and / or text input or from previous system actions; Generate a correlation vector representing the correlation between each candidate action template in the set of candidate action templates and the input and the natural language rule that indicates the utterance or the previous system action; Generate a bias vector as a weighted representation of the relevance vector applied to each candidate action template in the set of candidate action templates; and The bias vector is used to bias the conversational dialogue model of the conversational system.
12. The computer storage device according to claim 11, further comprising: Generate a correlation vector representing the correlation between the precondition and the input indicating the utterance or the previous system action; Generate a correlation matrix, which represents the correlation between the postcondition and each candidate action template in the set of candidate action templates.
13. The computer storage device of claim 12, wherein the correlation vector representing the correlation between each candidate action template in the set of candidate action templates and the input and the plurality of natural language rules is based on the correlation vector representing the correlation between the preconditions and the input and the correlation matrix.
14. The computer storage device of claim 11, wherein biasing the conversational dialogue model using the bias vector includes selecting a candidate action template from the set of candidate action templates based on the bias vector for use in a dialogue with the user.
15. The computer storage device according to claim 14, further comprising: The text output based on the selected candidate action template is displayed on the display of the computing device.