CN116615727A - Keyword data augmentation tool for natural language processing - Google Patents

Keyword data augmentation tool for natural language processing Download PDF

Info

Publication number
CN116615727A
CN116615727A CN202180079816.6A CN202180079816A CN116615727A CN 116615727 A CN116615727 A CN 116615727A CN 202180079816 A CN202180079816 A CN 202180079816A CN 116615727 A CN116615727 A CN 116615727A
Authority
CN
China
Prior art keywords
training
utterances
robot
ood
utterance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180079816.6A
Other languages
Chinese (zh)
Inventor
E·L·贾拉鲁丁
V·比什诺伊
T·L·董
M·E·约翰逊
P·扎雷穆迪
G·辛格拉朱
徐莹
V·布利诺夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN116615727A publication Critical patent/CN116615727A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking

Abstract

Techniques for keyword data augmentation for training chat bots systems in natural language processing. In one particular aspect, a method is provided that includes: receiving a training speech set for training a machine learning model to recognize one or more intentions of one or more utterances; the training speech set is augmented with an out-of-domain (OOD) example. The expansion includes: the method includes identifying keywords within utterances in a training set of utterances, generating a set of OOD examples having the identified keywords, filtering out OOD examples from the set of OOD examples that are contextually substantially similar to the context of the utterances in the training set of utterances, and incorporating the set of OOD examples without the filtered out OOD examples into the training set of utterances to generate an augmented training set of utterances. Thereafter, the machine learning model is trained using the extended set of training utterances.

Description

Keyword data augmentation tool for natural language processing
Cross Reference to Related Applications
The present application claims the benefit and priority of U.S. non-provisional application No. 17/452,742, filed on day 28 of 10 in 2021, which claims the benefit and priority of U.S. provisional application No. 63/119,540, filed on day 30 of 11 in 2020, the entire contents of which are incorporated herein by reference.
Technical Field
The present disclosure relates generally to chat bot systems, and more particularly to techniques for keyword data augmentation in natural language processing for training chat bot systems.
Background
To obtain an instant response, many users around the world use an instant messaging or chat platform. Organizations often use these instant messaging or chat platforms to conduct real-time conversations with clients (or end users). However, employment of service personnel to communicate with customers or end users in real time can be very expensive for an organization. Chat robots or robots have been developed to simulate conversations with end users, particularly over the internet. The end user may communicate with the bot through a messaging application that the end user has installed and used. Intelligent robots, typically powered by Artificial Intelligence (AI), can communicate more intelligently and contextually in real-time sessions and thus can allow for a more natural session between the robot and the end user to improve the session experience. Rather than the end user learning a fixed set of keywords or commands how the robot knows to respond, the intelligent robot may be able to understand the end user's intent based on the user utterance in natural language and respond accordingly.
However, it is difficult to build chat robots because these automated solutions require specific knowledge in certain areas and application of certain technologies that may only be within the capabilities of professional developers. As part of building such chat robots, developers can first learn about the needs of businesses and end users. The developer may then analyze and make decisions regarding, for example: selecting a data set to be used for analysis; preparing an input dataset for analysis (e.g., cleaning up data, extracting, formatting and/or transforming data, performing data signature engineering, etc., prior to analysis); identifying an appropriate one or more Machine Learning (ML) techniques or one or more ML models for performing the analysis; and improving the technique or model to improve the results/effects based on the feedback. The task of identifying the appropriate model may include: multiple models (possibly in parallel) are developed, and the models are used iteratively for testing and experimentation, before a particular model (or models) is identified for use. Further, supervised learning based solutions typically involve a training phase followed by an application (i.e., reasoning) phase and an iterative loop between the training phase and the application phase. The developer may be responsible for carefully implementing and monitoring these phases to achieve the best solution. For example, to train one or more ML techniques or one or more models that would use to predict a desired result (e.g., infer intent from an utterance) accurate training data is needed to enable an algorithm to understand and learn certain patterns or features (e.g., for chat robots—requiring intent extraction and careful syntactic analysis, not just original language processing). To ensure that the one or more ML techniques or one or more models learn these patterns and features correctly, a developer may be responsible for selecting, enriching, and optimizing the training dataset for the one or more ML techniques or one or more models.
Disclosure of Invention
The technology disclosed herein relates generally to chat robots. More particularly, and without limitation, the technology disclosed herein relates to techniques for keyword data augmentation of training data sets for training chat robot systems in natural language processing. Chat robots can classify user utterances into different classifications, such as predefined intentions of the user. The classifier of the chat robot may include a trained ML model that generates an output (e.g., intent) based on an input (e.g., a user utterance). The user utterance may take the form of speech. In this case, the trained ML model may be understood as implementing improved speech recognition, wherein speech recognition allows for more accurate recognition of user intent. Chat robots may determine false intentions more frequently when the training data used to train the trained ML model is insufficient. The techniques disclosed herein may provide a keyword-augmented dataset for training an ML model such that the ML model is more resilient to irrelevant contexts and learns patterns or boundaries of intent more accurately.
In various embodiments, a computer-implemented method is provided, the computer-implemented method comprising: receiving a training speech set for training a machine learning model to recognize one or more intentions of one or more utterances; the training speech set is augmented with an out-of-domain (OOD) example. The expansion includes: the method includes identifying keywords within the utterances in the training set of utterances, generating a set of OOD examples having the identified keywords, filtering out OOD examples from the set of OOD examples that are contextually substantially similar to the context of the utterances in the training set of utterances, and incorporating the set of OOD examples without the filtered out OOD examples into the training set of utterances to generate an augmented training set of utterances. Thereafter, the machine learning model is trained using the expanded set of training utterances.
In some embodiments, the method further comprises normalizing the training utterance set and/or the OOD example set, wherein normalizing comprises: (i) filtering out deactivated words identified as recognized keywords, (ii) categorizing all words in a training speech set by inflexion variations, (iii) categorizing all words in the OOD example set with the recognized keywords by inflexion variations, or (iv) any combination thereof.
In some embodiments, keywords are identified using word frequency-inverse document frequency (TF-IDF), word frequency, tag name, interpretability tool, or any combination thereof.
In some embodiments, the set of OOD examples is generated using a corpus, lexical database, text generation model, resistance attack model, or any combination thereof.
In some embodiments, a substantial similarity between the context of the OOD examples and the context of the utterances in the training set of utterances is determined based on the distance measurements to avoid conflicts between the classifications.
In some embodiments, the method further comprises deploying a trained machine learning model in the chat robotic system.
In some embodiments, keywords are words that may become associated with certain ground truth intents through training of a machine learning model.
In various embodiments, a computer-implemented method is provided, the computer-implemented method comprising: receiving, by the chat robotic system, an utterance generated by a user interacting with the chat robotic system; classifying the utterance into an intent category corresponding to an intent using a machine learning model deployed within a chat robotic system, wherein the machine learning model includes a plurality of model parameters that are identified using training data comprising: an expanded set of training utterances for training the intent classifier to identify one or more intentions of the one or more utterances, wherein the expanded set of training utterances is manually generated to include expanded utterances from the set of training utterances, wherein keywords are identified from the set of training utterances and are incorporated into an out-of-domain (OOD) utterance having a significantly different context than the utterances in the set of training utterances to generate the expanded utterances, and wherein the plurality of model parameters are identified using training data based on maximizing or minimizing a cost function; and outputting intent based on the classification using a machine learning model.
In various embodiments, a system is provided that includes one or more data processors and a non-transitory computer-readable storage medium containing instructions that, when executed on the one or more data processors, cause the one or more data processors to perform part or all of one or more methods disclosed herein.
In various embodiments, a computer program product is provided that is tangibly embodied in a non-transitory machine-readable storage medium and includes instructions configured to cause one or more data processors to perform part or all of one or more methods disclosed herein.
The techniques described above and below may be implemented in a variety of ways and in a variety of contexts. As described in more detail below, various example embodiments and contexts are provided with reference to the following figures. However, the following embodiments and contexts are but a few of the many.
Drawings
FIG. 1 is a simplified block diagram of a distributed environment incorporating an exemplary embodiment.
Fig. 2 is a simplified block diagram of a computing system of an actual donor robot, in accordance with some embodiments.
FIG. 3 is a simplified block diagram of a computing system implementing a skills robot according to some embodiments.
Fig. 4 is a simplified block diagram of a chat robot training and deployment system in accordance with various embodiments.
FIG. 5 illustrates a process flow for augmenting a training dataset with keywords, in accordance with various embodiments.
Fig. 6 depicts a simplified diagram of a distributed system for implementing various embodiments.
FIG. 7 is a simplified block diagram of one or more components of a system environment through which services provided by one or more components of an embodiment system may be provided as cloud services, in accordance with various embodiments.
FIG. 8 illustrates an example computer system that can be used to implement various embodiments.
Detailed Description
In the following description, for purposes of explanation, specific details are set forth in order to provide a thorough understanding of certain embodiments. It will be apparent, however, that the various embodiments may be practiced without these specific details. The drawings and description are not intended to be limiting. The word "exemplary" is used herein to mean "serving as an example, instance, or illustration. Any embodiment or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments or designs.
Introduction to the invention
Digital assistants are artificial intelligence driven interfaces that assist users in accomplishing various tasks in natural language sessions. For each digital assistant, the customer may assemble one or more skills. Skills (also described herein as chat robots, or skills robots) are individual robots focused on specific types of tasks such as tracking inventory, submitting time cards, and creating expense reports. When the end user engages with the digital assistant, the digital assistant evaluates the end user input and routes the conversation to and from the appropriate chat robot. Can be achieved by, for example Messenger (instant Messaging), SKYPE +.>Various channels, such as messenger or Short Message Service (SMS), make digital assistants available to end users. The channel communicates chat back and forth between the end user and the digital assistant and chat robots therein on various messaging platforms. The channel may also support user agent upgrades, event initiated sessions, and testing.
Intent allows chat robots to understand what users want chat robots to do. An intent may be considered to be an instruction given to a computer by a user (e.g., in speech form), where the accuracy of understanding the user's utterance (e.g., a command or instruction, possibly as a speech transfer) corresponds to the accuracy of capturing the user's intent. This directly relates to the appropriateness of a computer's response to a command or instruction, because the better the command or instruction is understood, the better the response from the computer. As used herein, an utterance or message may refer to a set of words (e.g., one or more sentences) exchanged during a conversation with a chat robot. The intent may be created by providing a name that describes a certain user action (e.g., ordering a pizza) and compiling a set of real-life user statements or utterances that are typically associated with triggering actions. Because the knowledge of the chat robot is derived from these intents, each intent can be created and varied from a robust dataset (one to two utterances) so that the chat robot can interpret ambiguous user inputs. A rich set of utterances enables the chat robot to understand where it receives a message such as "Forget this order-! (ignore this order! (cancel dispatch |) "etc. (meaning the same thing but a message expressed in a different manner) what the user wants. In summary, the intentions and the utterances belonging to the intentions constitute a training corpus of chat robots. By training a model with a corpus, a customer can basically turn the model into a reference tool for resolving end user inputs into individual intents. Clients can increase cognitive acuity of chat robots through multiple rounds of intent tests and intent training.
However, building a chat robot that can determine the intent of an end user based on user utterances is a challenging task, in part due to the subtleties and ambiguities of natural language, the dimensions of the input space (e.g., the likely user utterances), and the size of the output space (the number of intents). Illustrative examples of such difficulties come from the nature of natural language, such as using a speeches of a polite, synonym, or non-grammatical language to express intent. For example, the utterance may express an intent to order a pizza, without explicit mention of pizza, ordering, or dispatch. For example, in some regional dialects, "pizza" is referred to as "pie". These trends (such as inaccuracy or variability) in natural language can create uncertainty and introduce confidence as an intent prediction parameter, rather than explicitly indicating intent, for example by including keywords. As such, training, monitoring, debugging, and retraining the chat robot may be required in order to improve the performance of the chat robot and the user experience with the chat robot. In conventional systems, training systems are provided for training and retraining machine learning models of digital assistants or chat robots in Spoken Language Understanding (SLU) and Natural Language Processing (NLP). Traditionally, models for chat robot systems are trained in NLP with utterances "made" for any intent. For example, the utterance "Do you do price changes? (do you make price changes. Training the model with the manufactured utterances helps to initially train the chat robot system to provide services, and then, once the chat robot system is deployed and begins to obtain real utterances from the user, the chat robot system can be retrained.
Traditional training of text classification models begins with training speech data sets labeled with ground truth intent. However, training speech data sets sometimes include anchor words (described herein as "keywords") that become associated with certain ground truth intents through training of a machine learning model. In particular, machine learning models may have a tendency to overcomplete or overconstraintly determine individual keywords. Even when these keywords are used in a very different context than the training data, these keywords may lead to false positives. For example, it has been observed that some out-of-domain (OOD) test utterances are misclassified under intra-domain intent, as shown in table 1, because the presence of certain keywords results in a strong learning pull toward intra-domain intent.
Table 1:
thus, different approaches are needed to address these issues. In order for the machine learning model to learn signals where keywords are only important if they are used in the correct context, the methods described herein attempt to learn the machine learning model by augmenting training data (negative data augmentation) with an OOD example where the keywords appear in a different context than the training utterance data set. The labels of these OOD examples will be used for the correct intent or ground truth, such as unresolved intent. Thus, the machine learning model will better summarize and learn that keywords should only be important if they are used in a similar context as the training speech dataset. In various embodiments, a method is provided that includes: receiving a training utterance set for training an intent classifier (i.e., a machine learning model) to recognize one or more intentions of one or more utterances; the training speech set is augmented with OOD examples. The expansion includes: the method includes identifying keywords within an utterance in a training utterance set, generating an OOD example set having the identified keywords, filtering out OOD examples from the OOD example set that are contextually substantially similar to a context of the utterance in the training utterance set, and incorporating the OOD example set without the filtered out OOD examples into the training utterance set to generate an augmented training utterance set. Thereafter, the intent classifier is trained using the expanded set of training utterances.
Robot and analysis system
Robots (also known as skills, chat robots, conversation robots, or conversation robots) are computer programs that can perform conversations with end users. Robots may typically respond to natural language messages (e.g., questions or comments) through a messaging application using the natural language message. An enterprise may communicate with end users through a messaging application using one or more bots. The messaging application (which may be referred to as a channel) may be an end-user preferred messaging application that the end-user has installed and is familiar with. Thus, the end user does not need to download and install new applications in order to chat with the robotic system. Messaging applications may include, for example, over-the-top (OTT) messaging channels (e.g., facebook Messenger, facebook WhatsApp, wechat, line, kik, telegram, talk, skype, slack, or SMS), virtual personal assistants (e.g., amazon Dot, echo or Show, google Home, apple HomePod, etc.), mobile and web application extensions/responsive mobile applications or web applications with chat capabilities that are local or hybrid extensions, or Voice-based inputs (e.g., devices or applications with interfaces that use Siri, microsoft small na (Cortana), google Voice, or other Voice inputs for interaction).
In some examples, the robotic system may be associated with a Uniform Resource Identifier (URI). The URI may identify the robotic system using a string of characters. The URI may be used as a webhook for one or more messaging application systems. The URI may include, for example, a Uniform Resource Locator (URL) or a Uniform Resource Name (URN). The robotic system may be designed to receive a message (e.g., a hypertext transfer protocol (HTTP) post call message) from the messaging application system. The HTTP post call message may point to a URI from the messaging application system. In some embodiments, the message may be different from an HTTP post call message. For example, the robotic system may receive a message from a Short Message Service (SMS). While the discussion herein may refer to a communication received by the robotic system as a message, it should be understood that the message may be an HTTP post call message, an SMS message, or any other type of communication between the two systems.
End users may interact with the robotic system through conversational interactions (sometimes referred to as conversational User Interfaces (UIs)), just as between people. In some cases, the interaction may include the end user speaking "Hello" to the robot and the robot responding with "Hi (Hi)" and asking the end user how the robot may provide assistance. In some cases, the interaction may also be a transactional interaction with, for example, a banking robot, such as transferring money from one account to another account; information interactions with, for example, HR robots, such as querying holiday balances; or interaction with, for example, a retail robot, such as discussing returning purchased goods or seeking technical support.
In some embodiments, the robotic system may intelligently handle end user interactions without interaction with an administrator or developer of the robotic system. For example, an end user may send one or more messages to the robotic system to achieve a desired goal. The message may include some content such as text, emoticons, audio, images, video, or other means of conveying the message. In some embodiments, the bot system may convert the content into a standardized form (e.g., representational state transfer (REST) call for enterprise services with appropriate parameters) and generate a natural language response. The robotic system may also prompt the end user for additional input parameters or request other additional information. In some embodiments, the robotic system may also initiate communication with the end user, rather than passively responding to the end user utterance. Described herein are various techniques for identifying explicit invocations of robotic systems and determining inputs of the invoked robotic systems. In some embodiments, explicit call analysis is performed by the host robot based on detecting a call name in the utterance. In response to detecting the invocation name, the utterance may be refined for input to a skills robot associated with the invocation name.
The session with the robot may follow a particular session flow that includes multiple states. The flow may define what will happen next based on the input. In some embodiments, the robotic system may be implemented using a state machine that includes user-defined states (e.g., end user intent) and actions to be taken in or between the states. The session may take different paths based on end user input, which may affect the robot's decision to make for the flow. For example, in each state, based on the end user input or utterance, the robot may determine the end user's intent to determine the next appropriate action to take. As used herein and in the context of an utterance, the term "intent" refers to the intent of a user providing the utterance. For example, the user may intend for the robot to have a conversation with a user for ordering pizza, so that the user's intention may be represented by the words "Order pizza". The user intent may be directed to a particular task that the user wishes the chat bot to perform on behalf of the user. Thus, the utterance may be expressed as a question, command, request, etc. reflecting the intent of the user. The intent may include the goal that the end user wants to accomplish.
In the context of the configuration of a chat robot, the term "intent" as used herein refers to configuration information used to map a user's utterance to a particular task/action or a particular kind of task/action that the chat robot may perform. In order to distinguish the intent of the utterance (i.e., user intent) from the intent of the chat robot, the latter is sometimes referred to herein as "robot intent". The robot intent may include a set of one or more utterances associated with the intent. For example, the intent to order a pizza may have various arrangements of utterances that express the desire to purchase the pizza in an order. These associated utterances may be used to train the intent classifier of the chat robot to enable the intent classifier to subsequently determine whether the input utterance from the user matches the order pizza intent. The robot intent may be associated with one or more dialog flows for initiating a session with the user and in a certain state. For example, the first message for the intention to order pizza may be the question "What kind of pizza would you like? (what pizza you want. In addition to the associated utterances, the robotic intent may further include a named entity related to the intent. For example, the order pizza intent may include variables or parameters for performing tasks of ordering pizzas, such as filling 1, filling 2, pizza type, pizza size, pizza quantity, and the like. The value of an entity is typically obtained by talking to the user.
Fig. 1 is a simplified block diagram of an environment 100 incorporating a chat bot system, in accordance with some embodiments. The environment 100 includes a Digital Assistant Builder Platform (DABP) 102 that enables users of the DABP 102 to create and deploy digital assistants or chat bots. The DABP 102 may be used to create one or more digital assistants (or DA) or chat bots. For example, as shown in FIG. 1, a user 104 representing a particular enterprise may use DABP 102 to create and deploy a digital assistant 106 for the user of the particular enterprise. For example, DABP 102 may be used by a bank to create one or more digital assistants for use by customers of the bank. Multiple enterprises may use the same DABP 102 platform to create digital assistants. As another example, an owner of a restaurant (e.g., pizza restaurant) may use DABP 102 to create and deploy a digital assistant that enables customers of the restaurant to order food (e.g., order pizza).
For purposes of this disclosure, a "digital assistant" is an entity that assists a user of the digital assistant in accomplishing various tasks through a natural language conversation. The digital assistant may be implemented using only software (e.g., the digital assistant is a digital entity implemented using programs, code, or instructions executable by one or more processors), using hardware, or using a combination of hardware and software. The digital assistant may be embodied or implemented in various physical systems or devices such as computers, mobile phones, watches, appliances, vehicles, etc. Digital assistants are sometimes also referred to as chat robotic systems. Thus, for purposes of this disclosure, the terms digital assistant and chat robot system are interchangeable.
Digital assistants, such as digital assistant 106 constructed using DABP 102, may be used to perform various tasks via natural language based sessions between the digital assistant and its user 108. As part of the session, the user may provide one or more user inputs 110 to the digital assistant 106 and obtain a returned response 112 from the digital assistant 106. The session may include one or more of an input 110 and a response 112. Via these sessions, the user may request one or more tasks to be performed by the digital assistant, and in response, the digital assistant is configured to perform the user-requested tasks and respond to the user with an appropriate response.
The user input 110 is typically in the form of natural language and is referred to as an utterance. The user utterance 110 may be in the form of text, such as when a user types a sentence, question, text segment, or even a single word and provides it as input to the digital assistant 106. In some embodiments, user utterance 110 may be in the form of audio input or speech, such as when a user speaks or speaks certain content provided as input to digital assistant 106. The utterance is typically in the form of a language spoken by the user 108. For example, the utterance may be english or some other language. When the utterance is in speech form, the speech input is converted to an utterance in text form in the particular language, and the text utterance is then processed by the digital assistant 106. Various speech-to-text processing techniques may be used to convert speech or audio input into a text utterance, which is then processed by the digital assistant 106. In some embodiments, the conversion of speech to text may be accomplished by the digital assistant 106 itself.
The utterance (which may be a text utterance or a speech utterance) may be a segment, a sentence, a plurality of sentences, one or more words, one or more questions, a combination of the above types, or the like. The digital assistant 106 is configured to apply Natural Language Understanding (NLU) techniques to utterances to understand the meaning of user input. As part of the NLU processing for an utterance, the digital assistant 106 is configured to perform processing for understanding meaning of the utterance, which involves identifying one or more intents and one or more entities corresponding to the utterance. After understanding the meaning of the utterance, the digital assistant 106 may perform one or more actions or operations in response to the understood meaning or intent. For purposes of this disclosure, it is assumed that these utterances are text utterances that have been provided directly by the user 108 of the digital assistant 106, or are the result of converting an input speech utterance into text form. However, this is not intended to be limiting or limiting in any way.
For example, the input of the user 108 may request to order pizza by providing an utterance such as "I want to order a pizza (i want to order pizza)". After receiving such utterances, the digital assistant 106 is configured to understand the meaning of the utterances and take appropriate action. The appropriate action may involve responding to the user with a question requesting user input regarding the type of pizza the user desires to order, the size of the pizza, any topping of the pizza, for example. The response provided by the digital assistant 106 may also be in natural language form and typically in the same language as the input utterance. As part of generating these responses, digital assistant 106 may perform Natural Language Generation (NLG). In order for a user to order pizza via a session between the user and the digital assistant 106, the digital assistant may guide the user to provide all necessary information for pizza ordering and then cause pizza to be ordered at the end of the session. The digital assistant 106 may end the session by outputting information to the user indicating that pizza has been ordered.
At the conceptual level, the digital assistant 106 performs various processing in response to utterances received from the user. In some embodiments, the process involves a series of process steps or a pipeline of process steps, including, for example, understanding the meaning of an input utterance (sometimes referred to as Natural Language Understanding (NLU), determining actions to be performed in response to the utterance, causing the actions to be performed, generating responses to be output to a user in response to the user utterance, outputting responses to the user, etc., NLU processing may include parsing the received input utterance to understand the structure and meaning of the utterance, refining and reformulating the utterance to develop a better intelligible form (e.g., logical form) or structure for the utterance.
The NLU processing performed by the digital assistant (e.g., digital assistant 106) may include various NLP related processing such as sentence parsing (e.g., tokenization, categorizing in inflected form, identifying part-of-speech tags of sentences, identifying named entities in sentences, generating dependency trees to represent sentence structure, dividing sentences into clauses, analyzing individual clauses, parsing references, performing chunks, etc.). In some embodiments, the NLU processing, or portions thereof, is performed by the digital assistant 106 itself. In some other embodiments, digital assistant 106 may use other resources to perform portions of NLU processing. For example, the syntax and structure of an input speech sentence may be identified by processing the sentence using a grammar analyzer, a part-of-speech tagger, and/or a named entity identifier. In one embodiment, sentence structure and syntax are analyzed for the english language using a parser, part-of-speech tagger, and named entity identifier as provided by the stanford Natural Language Processing (NLP) group. These are provided as part of the Stanford CoreNLP kit.
Although the various examples provided in this disclosure illustrate utterances in the english language, this is meant as an example only. In some embodiments, the digital assistant 106 is also capable of processing utterances in languages other than English. Digital assistant 106 may provide subsystems (e.g., components that implement NLU functions) configured to perform processing for different languages. These subsystems may be implemented as pluggable units that may be invoked from the NLU core server using service calls. This makes NLU processing flexible and extensible for each language, including allowing different processing orders. A language package may be provided for a separate language, where the language package may register a list of subsystems that may be serviced from the NLU core server.
A digital assistant (such as digital assistant 106 depicted in fig. 1) may be made available or accessible to its user 108 through a variety of different channels (e.g., without limitation, via some applications, via a social media platform, via various messaging services and applications, and other applications or channels). A single digital assistant may configure multiple channels for itself so that a single digital assistant may run on and be accessed through different services at the same time.
Digital assistants or chat robotic systems typically include or are associated with one or more skills. In some embodiments, these skills are separate chat robots (referred to as skill robots) configured to interact with users and perform certain types of tasks (e.g., tracking inventory, submitting time cards, creating expense reports, ordering food, querying bank accounts, making reservations, purchasing widgets, etc.). For example, for the embodiment depicted in FIG. 1, the digital assistant or chat bot system 106 includes skills 116-1, 116-2, and so on. For purposes of this disclosure, the terms "skill" and "skills" are used synonymously with the terms "skill robot" and "skill robot", respectively.
Each skill associated with the digital assistant assists the user of the digital assistant in completing a task through a conversation with the user, where the conversation may include a combination of text or audio input provided by the user and a response provided by the skill robot. These responses may take the form: text or audio messages to the user and/or using simple user interface elements (e.g., a selection list) presented to the user for selection by the user.
There are various ways in which a skill or skill robot may be associated with or added to a digital assistant. In some instances, a skills robot may be developed by the enterprise and then added to the digital assistant using DABP 102. In other instances, a skills robot may be developed and created using the DABP 102 and then added to the digital assistant created using the DABP 102. In still other examples, the DABP 102 provides an online digital store (referred to as a "skill store") that provides a plurality of skills directed to a wide variety of tasks. Various cloud services may also be disclosed (exposure) by skills provided by the skill store. To add skills to the digital assistant being generated using the DABP 102, a user of the DABP 102 may access a skill store via the DABP 102, select the required skills, and instruct to add the selected skills to the digital assistant created using the DABP 102. Skills from the skill store may be added to the digital assistant as is or in modified form (e.g., a user of the DABP 102 may select and replicate a particular skill robot provided by the skill store, customize or modify the selected skill robot, and then add the modified skill robot to the digital assistant created using the DABP 102).
The digital assistant or chat bot system may be implemented using a variety of different architectures. For example, in some embodiments, a digital assistant created and deployed using DABP 102 may be implemented using a master robot/secondary (or child) robot paradigm or architecture. According to this paradigm, the digital assistant is implemented as a master robot that interacts with one or more secondary robots that are skill robots. For example, in the embodiment depicted in FIG. 1, the digital assistant 106 includes a primary robot 114 and a skill robot 116-1, 116-2, etc., as a secondary robot to the primary robot 114. In some embodiments, the digital assistant 106 itself is considered to act as the master robot.
Digital assistants implemented according to a primary-secondary robotic architecture enable a user of the digital assistant to interact with multiple skills through a unified user interface (i.e., via a primary robot). When the user engages with the digital assistant, the host robot receives user input. The host robot then performs a process for determining the meaning of the user input utterance. The host robot then determines whether the task requested by the user in the utterance can be handled by the host robot itself, otherwise the host robot selects the appropriate skill robot to handle the user request and routes the session to the selected skill robot. This enables a user to talk to the digital assistant through a common single interface and still provide the ability to use multiple skill robots configured to perform a particular task. For example, for a digital assistant developed for an enterprise, a host robot of the digital assistant may interface with a skills robot having specific functions, e.g., a Customer Relationship Management (CRM) robot for performing functions related to CRM, an Enterprise Resource Planning (ERP) robot for performing functions related to ERP, a Human Capital Management (HCM) robot for performing functions related to HCM, etc. In this way, the end user or consumer of the digital assistant need only know how to access the digital assistant through a common host robot interface, and multiple skill robots are provided in the background to handle user requests.
In some embodiments, in the master robot/secondary robot infrastructure, the master robot is configured to learn a list of available skill robots. The master robot may access metadata identifying the various available skill robots and, for each skill robot, the capabilities of the skill robot including tasks that may be performed by the skill robot. Upon receiving a user request in the form of an utterance, the host robot is configured to identify or predict, from among a plurality of available skill robots, a particular skill robot that may best service or process the user request. The host robot then routes the utterance (or a portion of the utterance) to the specific-skill robot for further processing. Thus, control flows from the host robot to the skill robot. The master robot may support multiple input channels and output channels. In some embodiments, routing may be performed by means of processes performed by one or more available skill robots. For example, as discussed below, a skill robot may be trained to infer intent of an utterance and determine whether the inferred intent matches an intent configured for the skill robot. Thus, the routing performed by the host robot may involve the skills robot transmitting to the host robot an indication of whether the skills robot has been configured with an intent appropriate for processing the utterance.
While the embodiment of FIG. 1 shows that the digital assistant 106 includes a master robot 114 and skills robots 116-1, 116-2 and 116-3, this is not intended to be limiting. The digital assistant may include various other components (e.g., other systems and subsystems) that provide the functionality of the digital assistant. These systems and subsystems may be implemented in software only (e.g., code, instructions stored on a computer readable medium and executable by one or more processors), in hardware only, or in an embodiment using a combination of software and hardware.
The DABP 102 provides an infrastructure and various services and features that enable a user of the DABP 102 to create a digital assistant (including one or more skill robots associated with the digital assistant). In some examples, a skills robot may be created by cloning existing skills robots, e.g., cloning skills robots provided by a skills store. As previously described, the DABP 102 provides a skill store or skill directory that provides a plurality of skill robots for performing various tasks. The user of the DABP 102 may clone the skills robot from a skill store. The cloning skill robot may be modified or customized as desired. In some other examples, the user of the DABP 102 creates a skills robot from scratch using tools and services provided by the DABP 102. As previously described, the skill store or skill directory provided by DABP 102 may provide a plurality of skill robots for performing various tasks.
In some embodiments, at a high level, creating or customizing a skills robot involves the steps of:
(1) Configuring settings for a new skill robot
(2) Configuring a skill robot with one or more intents
(3) Configuring one or more entities for one or more intents
(4) Training skill robot
(5) Creating a dialog flow for a skills robot
(6) Adding custom parts to a skill robot as needed
(7) Testing and deploying skill robots
Each of the above steps is briefly described below.
(1) Configuration settings for a new skill robot—various settings may be configured for a skill robot. For example, a skill robot designer may specify one or more call names for a skill robot being created. These call names may then be used by the user of the digital assistant to explicitly call the skill robot. For example, the user may input a call name in the user utterance to explicitly call the corresponding skills robot.
(2) The skill robot is configured with one or more intents and associated example utterances—the skill robot designer specifies one or more intents (also referred to as robot intents) for the skill robot being created. The skill robot is then trained based on these specified intents. These intents represent categories or classifications that the skill robot is trained to infer for the input utterance. Upon receiving an utterance, the trained skill robot infers an intent of the utterance, wherein the inferred intent is selected from a predefined set of intents for training the skill robot. The skill robot then takes appropriate actions responsive to the utterance based on the intent inferred for the utterance. In some examples, the intent of the skill robot represents a task that the skill robot may perform for a user of the digital assistant. Each intention is assigned an intention identifier or an intention name. For example, for a skill robot trained for banks, the intent specified for the skill robot may include "check balance", "transfer Money", "DepositCheck", and the like.
For each intent defined for the skill robot, the skill robot designer may also provide one or more example utterances representing and illustrating the intent. These example utterances are intended to represent utterances that a user may input to the skill robot for the intent. For example, for a checkback intent, an example utterance may include "What's my savings account balance? (what is my savings account balance) "," How much is in my checking account? (how much money is in my demand deposit account) "," How much money do I have in my account (how much money is in my account) ", etc. Thus, various permutations of typical user utterances may be designated as example utterances for intent.
These intents and their associated example utterances are used as training data for training a skill robot. A variety of different training techniques may be used. As a result of the training, a predictive model is generated that is configured to take the utterance as input and output an intent inferred by the predictive model for the utterance. In some examples, the input utterance is provided to an intent analysis engine configured to predict or infer intent of the input utterance using a trained model. The skill robot may then take one or more actions based on the inferred intent.
(3) An entity is configured for one or more intents of the skill robot—in some instances, additional context may be required to enable the skill robot to respond appropriately to the user utterance. For example, there may be situations where a user input utterance is resolved into the same intent in a skill robot. For example, in the above example, the utterance "What's my savings account balance? "and" How much is in my checking account? "all resolve to the same checkback intent, but these utterances are different requests requesting different things. To clarify such a request, one or more entities are added to the intent. Using an example of a banking skill robot, an entity called account type (AccountType), which defines values called "holding" and "saving", may enable the skill robot to parse and respond appropriately to user requests. In the above example, although the utterances resolved to the same intent, the values associated with the AccountType entity for the two utterances were different. This enables the skill robot to perform potentially different actions for the two utterances, although the two utterances resolve to the same intent. One or more entities may be designated for certain intents configured for the skill robot. Thus, the entity is used to add context to the intent itself. The entity helps describe the intent more fully and enables the skills robot to fulfill the user request.
In some embodiments, there are two types of entities: (a) a built-in entity provided by the DABP 102; and (2) custom entities that may be specified by a skilled robotic designer. The built-in entity is a general entity that can be used with various robots. Examples of built-in entities include, but are not limited to, entities related to time, date, address, digits, email address, duration, cycle time period, currency, phone number, URL, and the like. Custom entities are used for more custom applications. For example, for banking skills, an AccoutType entity may be defined by a skill robot designer to effect various banking transactions by examining user inputs of keywords (e.g., demand deposit, credit card, etc.).
(4) Training a skill robot-a skill robot is configured to receive user input in the form of utterances, parse or otherwise process the received input and identify or select intent related to the received user input. As indicated above, a skill robot must be trained for this purpose. In some embodiments, the skill robot is trained based on the intents configured for the skill robot and the example utterances associated with the intents (collectively, training data) so that the skill robot can parse the user input utterance into one of its configured intents. In some embodiments, the skills robot uses a predictive model that is trained using training data and allows the skills robot to discern what the user uttered (or in some cases, is attempting to speak). DABP 102 provides a variety of different training techniques that may be used by a skilled robot designer to train a skill robot, including various machine learning based training techniques, rule based training techniques, and/or combinations thereof. In some embodiments, one portion (e.g., 80%) of the training data is used to train the skill robot model and another portion (e.g., the remaining 20%) is used to test or validate the model. Once trained, the trained models (also sometimes referred to as trained skill robots) may be used to process and respond to the user's utterances. In some cases, the user's utterance may be a question that requires only a single answer and no additional conversations are required. To deal with this, a Q & a (question & answer) intent may be defined for the skill robot. This enables the skills robot to output replies to user requests without having to update dialog definitions. The Q & a intent is created in a similar manner to the conventional intent. The dialog flow for Q & a intent may be different from the dialog flow for regular intent.
(5) Creating a dialog flow for the skill robot—the dialog flow specified for the skill robot describes how the skill robot reacts when resolving different intents of the skill robot in response to received user input. The dialog flow defines the actions or actions that the skill robot will take, e.g., how the skill robot responds to user utterances, how the skill robot prompts the user for input, how the skill robot returns data. The dialog flow is like a flow chart followed by a skill robot. The skilled robot designer specifies a dialog flow using one language, such as the markdown language. In some embodiments, a YAML version called OBotML may be used to specify a conversation flow for a skill robot. The dialog flow definition for a skill robot serves as a model of the session itself, which is a model that enables a skill robot designer to orchestrate interactions between the skill robot and users served by the skill robot.
In some embodiments, the dialog flow definition of the skills robot includes three parts:
(a) Context part
(b) Default transition portion
(c) Status part
Context section—the skilled robot designer can define variables used in the session flow in the context section. Other variables that may be named in the context section include, but are not limited to: variables for error handling, variables for built-in or custom entities, user variables that enable the skills robot to identify and save user preferences, etc.
Default transition portion—transition of a skill robot may be defined in a dialog flow state portion or in a default transition portion. The transition defined in the default transition section acts as a backup and is triggered when no applicable transition is defined within the state or the conditions required to trigger a state transition cannot be met. The default transition portion may be used to define a route that allows the skills robot to gracefully handle unexpected user actions.
State portion—a dialog flow and its related operations are defined as a sequence of temporary states that manage logic within the dialog flow. Each state node within the dialog flow definition names a component that provides the functionality required at that point in the dialog. Thus, the state is built around the part. The state contains component-specific properties and defines transitions to other states that are triggered after execution of the component.
The status portion may be used to handle special case scenarios. For example, you may sometimes want to provide the user with an option to temporarily let the user engage with a first skill in a second skill in the digital assistant. For example, if the user is busy conducting a session with shopping skills (e.g., the user has made some selection for a purchase), the user may want to jump to banking skills (e.g., the user may want to ensure that he/she has sufficient money for the purchase) and then return to shopping skills to complete the user's order. To address this, actions in a first skill may be configured to initiate interactions with a different second skill in the same digital assistant and then return to the original stream.
(6) Custom components are added to the skill robot-as described above, the states specified in the dialog flow of the skill robot name the components that provide the desired functionality corresponding to the states. The components enable the skill robot to perform functions. In certain embodiments, the DABP 102 provides a set of preconfigured components for performing a wide variety of functions. The skill robot designer may select one or more of these preconfigured components and associate them with states in the conversation flow of the skill robot. The skills robot designer may also create custom or new parts using the tools provided by the DABP 102 and associate the custom parts with one or more states in the dialog flow of the skills robot.
(7) Testing and deploying a skill robot-DABP 102 provides several features that enable a skill robot designer to test a skill robot being developed. The skill robot may then be deployed and included in the digital assistant.
While the above description describes how a skill robot is created, similar techniques may also be used to create a digital assistant (or host robot). At the host robot or digital assistant level, the digital assistant may be configured with built-in system intent. These built-in systems are intended to identify general tasks that the digital assistant itself (i.e., the host robot) can handle without invoking a skill robot associated with the digital assistant. Examples of system intents defined for a master robot include: (1) Exit: applicable when the user signals a desire to exit the current session or context in the digital assistant; (2) Help (Help): applicable when a user requests help or orientation; and (3) un resolvedIntent (not resolved intent): is suitable for user input that does not match well with the exit intent and the help intent. The digital assistant also stores information about one or more skill robots associated with the digital assistant. This information enables the host robot to select a particular skill robot for processing the utterance.
At the host bot or digital assistant level, when a user inputs a phrase or utterance into the digital assistant, the digital assistant is configured to perform processing to determine how to route the utterance and related conversation. The digital assistant determines this using a routing model, which may be rule-based, AI-based, or a combination thereof. The digital assistant uses the routing model to determine whether a conversation corresponding to the user input utterance is to be routed to a particular skill for processing, to be processed by the digital assistant or the host robot itself as intended by the built-in system, or to be processed as a different state in the current conversation flow.
In some embodiments, as part of this processing, the digital assistant determines whether the user input utterance explicitly identifies the skills robot using its call name. If the call name exists in the user input, the call name is treated as an explicit call to the skill robot corresponding to the call name. In such a scenario, the digital assistant may route user input to an explicitly invoked skills robot for further processing. In some embodiments, if there is no particular call or explicit call, the digital assistant evaluates the received user input utterance and calculates a confidence score for the system intent and skill robot associated with the digital assistant. The score calculated for the skill robot or system intent indicates how likely it is that the user input indicates the task the skill robot is configured to perform or indicates the system intent. Any system intent or skill robot with an associated calculated confidence score exceeding a threshold (e.g., confidence threshold routing parameter) is selected as a candidate for further evaluation. The digital assistant then selects a particular system intent or skill robot from the identified candidates for further processing of the user input utterance. In some embodiments, after one or more skill robots are identified as candidates, the intents associated with those candidate skills are evaluated (according to an intent model for each skill), and a confidence score for each intent is determined. Generally, any intent with a confidence score exceeding a threshold (e.g., 70%) is considered a candidate intent. If a particular skill robot is selected, the user utterance is routed to that skill robot for further processing. If a system intent is selected, one or more actions are performed by the host robot itself according to the selected system intent.
Fig. 2 is a simplified block diagram of a master robotic (MB) system 200 according to some embodiments. MB system 200 may be implemented in software alone, hardware alone, or in a combination of hardware and software. MB system 200 includes a preprocessing subsystem 210, a plurality of intention subsystems (MIS) 220, an Explicit Invocation Subsystem (EIS) 230, a skills robot caller 240, and a data store 250. The MB system 200 depicted in fig. 2 is merely an example of a component arrangement in a host robot. Those skilled in the art will recognize many variations, alternatives, and modifications. For example, in some embodiments, MB system 200 may have more or fewer systems or components than those shown in fig. 2, may combine two or more subsystems, or may have different subsystem configurations or arrangements.
The preprocessing subsystem 210 receives the utterance "A"202 from a user and processes the utterance through a language detector 212 and a language parser 214. As indicated above, the utterance may be provided in various ways including audio or text. The utterance 202 may be a sentence fragment, a complete sentence, a plurality of sentences, or the like. Utterance 202 can include punctuation marks. For example, if utterance 202 is provided as audio, preprocessing subsystem 210 may use a phonetic text converter (not shown) that inserts punctuation marks (e.g., commas, semicolons, periods, etc.) into the resulting text to convert the audio to text.
The language detector 212 detects the language of the utterance 202 based on the text of the utterance 202. The manner in which the utterances 202 are processed depends on the languages, as each language has its own grammar and semantics. Differences between languages are considered when analyzing the syntax and structure of an utterance.
The language parser 214 parses the utterance 202 to extract part-of-speech (POS) tags for individual language units (e.g., words) in the utterance 202. POS tags include, for example, nouns (NN), pronouns (PN), verbs (VB), and the like. The linguistic parser 214 may also tokenize the linguistic units of the dialect 202 (e.g., convert each word into a separate token) and categorize the words into inflected forms. A lemma is a primary form of a set of words as represented in a dictionary (e.g., "run" is a lemma of run, runs, ran, running, etc.). Other types of preprocessing that can be performed by the language parser 214 include the chunks of a composite expression, e.g., combining "credit" and "card" into a single expression "credit_card". The language parser 214 may also recognize relationships between words in the utterance 202. For example, in some embodiments, language parser 214 generates a dependency tree that indicates which part of the utterance (e.g., a particular noun) is a direct object, which part of the utterance is a preposition, and so on. The result of the processing performed by the linguistic parser 214 forms extracted information 205 and is provided as input to the MIS 220 along with the utterance 202 itself.
As indicated above, utterance 202 may include more than one sentence. For the purpose of detecting multiple intents and explicit invocations, utterance 202 may be considered a single unit, even though it includes multiple sentences. However, in some embodiments, preprocessing may be performed, for example, by the preprocessing subsystem 210 to identify a single sentence of the plurality of sentences for multiple intent analysis and explicit invocation analysis. In general, MIS 220 and EIS 230 produce results that are substantially identical whether utterance 202 is processed at the level of a single sentence or as a single unit that includes multiple sentences.
MIS 220 determines whether utterance 202 represents a plurality of intents. Although MIS 220 may detect multiple intents present in utterance 202, the processing performed by MIS 220 does not involve determining whether the intent of utterance 202 matches any intent that has been configured for a robot. Alternatively, the process of determining whether the intent of utterance 202 matches the robot intent may be performed by intent classifier 242 of MB system 200 or by an intent classifier of a skill robot (e.g., as shown in the embodiment of fig. 3). The processing performed by MIS 220 assumes that there are robots (e.g., special skill robots or the host robot itself) that can process utterance 202. Thus, the processing performed by MIS 220 need not know which robots are in the chat robot system (e.g., the identities of the skill robots registered with the host robot), nor what intents have been configured for a particular robot.
To determine that utterance 202 includes multiple intents, MIS 220 applies one or more rules from a set of rules 252 in data store 250. The rules applied to the utterance 202 depend on the language of the utterance 202 and may include sentence patterns that indicate that there are multiple intents. For example, a sentence pattern may include parallel connective words that connect two portions (e.g., conjunctions) of a sentence, where the two portions correspond to different intents. If the utterance 202 matches a sentence pattern, it may be inferred that the utterance 202 represents multiple intentions. It should be noted that utterances with multiple intentions do not necessarily have different intentions (e.g., intentions directed to different robots or to different intentions within the same robot). Conversely, the utterance may have different instances of the same intent, such as "Place a pizza order using payment account X, then place a pizza order using payment account Y (placing a pizza order using payment account X and then placing a pizza order using payment account Y)".
As part of determining that utterance 202 represents multiple intents, MIS 220 also determines which portion of utterance 202 is associated with each intent. MIS 220 constructs a new utterance for separate processing for each of the utterances that includes multiple intentions in place of the original utterance (e.g., utterance "B"206 and utterance "C"208, as depicted in fig. 2). Thus, the original utterance 202 may be split into two or more separate utterances that are processed one at a time. MIS 220 uses the extracted information 205 and/or based on analysis of utterance 202 itself to determine which of the two or more utterances should be processed first. For example, MIS 220 may determine that utterance 202 contains a marker word that indicates that a particular intent should be processed first. The newly formed utterance (e.g., one of the utterances 206 or 208) corresponding to the particular intent will first be sent for further processing by the EIS 230. After the session triggered by the first utterance has ended (or has been temporarily suspended), the next highest priority utterance (e.g., the other of the utterances 206 or 208) can then be sent to the EIS 230 for processing.
EIS 230 determines whether the utterance it receives (e.g., utterance 206 or utterance 208) contains a call name for the skill robot. In some embodiments, each skill robot in the chat robot system is assigned a unique call name that distinguishes that skill robot from other skill robots in the chat robot system. The call name list may be saved in the data store 250 as part of the skills robot information 254. An utterance is considered an explicit invocation when the utterance contains a word that matches the invocation name. If the robot is not explicitly invoked, the utterance received by the EIS 230 is considered a non-explicitly invoked utterance 234 and is input to an intent classifier (e.g., intent classifier 242) of the host robot to determine which robot to use to process the utterance. In some instances, the intent classifier 342 will determine that the host robot should process a non-explicit call utterance. In other examples, the intent classifier 242 will determine a skill robot to route the utterance to for processing.
The explicit invocation function provided by the EIS 230 has several advantages. It may reduce the amount of processing that the master robot has to perform. For example, when there is an explicit call, the host robot may not have to perform any intent classification analysis (e.g., using the intent classifier 242), or may have to perform a simplified intent classification analysis to select a skill robot. Thus, explicit call analysis may enable selection of a particular skill robot without resorting to intent classification analysis.
Moreover, there may be cases where functions between multiple skill robots overlap. This may occur, for example, if the intent of two skill robot processes overlap or are very close to each other. In this case, it may be difficult for the host robot to identify which of the plurality of skill robots to select based on the intent classification analysis only. In this scenario, explicit invocation makes there no ambiguity for the specific skill robot to use.
In addition to determining that the utterance is an explicit invocation, the EIS 230 is also responsible for determining whether any portion of the utterance should be used as input to the explicitly invoked skills robot. In particular, the EIS 230 may determine whether a portion of the utterance is not related to invocation. EIS 230 may perform this determination by analyzing the utterance and/or analyzing the extracted information 205. The EIS 230 may send the call-independent portion of the utterance to the called skills robot instead of sending the entire utterance received by the EIS 230. In some instances, the input of the invoked skill robot is formed simply by deleting any portion of the utterance associated with the invocation. For example, "I want to order Pizza using Pizza Bot (i want to order Pizza using a Pizza robot)" may be shortened to "I want to order Pizza (i want to order Pizza)" because "using Pizza Bot" is related to invoking Pizza robots but is not related to any processing to be performed by Pizza robots. In some instances, the EIS 230 may reformat the portion to be sent to the invoked robot, e.g., to form a complete sentence. Thus, the EIS 230 not only determines that an explicit call exists, but also determines what to send to the skill robot when an explicit call exists. In some instances, there may not be any text to be entered into the invoked robot. For example, if the utterance is "Pizza Bot," the EIS 230 may determine that the Pizza robot is being invoked, but that no text is to be processed by the Pizza robot. In such a scenario, the EIS 230 may indicate to the skills robot caller 240 that there is no content to send.
The skills robot invoker 240 invokes the skills robot in various ways. For example, the skills robot invoker 240 may invoke the robot in response to receiving an indication 235 that a particular skill robot has been selected as a result of the explicit invocation. The indication 235 may be sent by the EIS 230 along with input of an explicitly invoked skill robot. In this scenario, the skills robot invoker 240 hands control of the session to the explicitly invoked skills robot. The explicitly invoked skill robot will determine the appropriate response to the input from the EIS 230 by treating the input as an independent utterance. For example, the response may be to perform a particular action or to start a new session in a particular state, where the initial state of the new session depends on the input sent from the EIS 230.
Another way in which the skills robot invoker 240 may invoke the skills robot is by making an implicit invocation using the intent classifier 242. The intent classifier 242 may be trained using machine learning and/or rule-based training techniques to determine a likelihood that the utterance represents a task that a particular skill-based robot is configured to perform. The intent classifier 242 trains on different categories, one category for each skill robot. For example, whenever a new skill robot is registered with the host robot, an example list of utterances associated with the new skill robot may be used to train the intent classifier 242 to determine a likelihood that a particular utterance represents a task that the new skill robot may perform. Parameters (e.g., a set of parameter values for a machine learning model) generated as a result of this training may be stored as part of skill robot information 254.
In some embodiments, the intent classifier 242 is implemented using a machine learning model, as described in further detail herein. Training of the machine learning model may involve inputting at least a subset of utterances from example utterances associated with various skill robots to generate, as output of the machine learning model, inferences as to which robot is the correct robot to process any particular training utterance. For each training utterance, an indication of the correct robot for the training utterance may be provided as ground truth information. The behavior of the machine learning model may then be adapted (e.g., by back propagation) to minimize the differences between the generated inferences and the ground truth information.
In some embodiments, the intent classifier 242 determines, for each of the skill robots registered with the host robot, a confidence score that indicates a likelihood that the skill robot can process the utterance (e.g., the non-explicit invocation utterance 234 received from the EIS 230). The intent classifier 242 may also determine a confidence score for each system level intent (e.g., help, exit) that has been configured. If a particular confidence score meets one or more conditions, the skill robot invoker 240 will invoke the robot associated with the particular confidence score. For example, a threshold confidence score value may need to be met. Thus, the output 245 of the intent classifier 242 is an identification of the system intent or an identification of a particular skill robot. In some embodiments, in addition to meeting the threshold confidence score value, the confidence score must exceed the next highest confidence score by a certain winning margin. When the confidence scores of multiple skill robots each exceed a threshold confidence score value, applying such a condition will enable routing to the particular skill robot.
After identifying the robot based on the evaluation of the confidence score, the skills robot invoker 240 hands over processing to the identified robot. In the case of a system intent, the identified robot is the master robot. Otherwise, the identified robot is a skill robot. Further, the skill robot invoker 240 will determine what to provide as input 247 to the identified robot. As indicated above, in the case of an explicit call, the input 247 may be based on a portion of the utterance that is not associated with the call, or the input 247 may be none (e.g., an empty string). In the case of implicit invocation, the input 247 may be the entire utterance.
The data store 250 includes one or more computing devices that store data used by the various subsystems of the host robotic system 200. As explained above, the data store 250 includes rules 252 and skill robot information 254. Rules 252 include, for example, rules for determining by MIS 220 when an utterance represents multiple intentions and how to split the utterance representing the multiple intentions. Rules 252 further include rules for determining by EIS 230 which portions of the utterance to send to the skills robot to explicitly invoke the skills robot. Skill robot information 254 includes call names of skill robots in the chat robot system, e.g., a list of call names of all skill robots registered with a particular master robot. Skill robot information 254 may also include information used by intent classifier 242 to determine a confidence score for each skill robot in the chat robot system, e.g., parameters of a machine learning model.
Fig. 3 is a simplified block diagram of a skills robot system 300 according to certain embodiments. The skills robot system 300 is a computing system that may be implemented in software only, hardware only, or a combination of hardware and software. In some embodiments, such as the embodiment depicted in fig. 1, the skills robot system 300 may be used to implement one or more skills robots within a digital assistant.
The skills robot system 300 includes a MIS 310, an intent classifier 320, and a session manager 330.MIS 310 is similar to MIS 220 in fig. 2 and provides similar functionality, including being operable to determine using rules 352 in data store 350: (1) Whether the utterance represents a plurality of intentions, and if so, (2) how to split the utterance into separate utterances for each of the plurality of intentions. In some embodiments, the rules applied by MIS 310 for detecting multiple intents and for splitting utterances are the same as the rules applied by MIS 220. MIS 310 receives utterance 302 and extracted information 304. The extracted information 304 is similar to the extracted information 205 in fig. 1 and may be generated using a linguistic parser 214 or a language parser local to the skill robot system 300.
The intent classifier 320 may be trained in a similar manner as the intent classifier 242 discussed above in connection with the embodiment of fig. 2 and described in further detail herein. For example, in some embodiments, the intent classifier 320 is implemented using a machine learning model. For a particular skill robot, the machine learning model of the intent classifier 320 is trained using at least a subset of example utterances associated with the particular skill robot as training utterances. The ground truth for each training utterance will be the particular robot intent associated with the training utterance.
Utterance 302 may be received directly from a user or supplied through a host robot. When the utterance 302 is supplied by the host robot (e.g., as a result of processing by the MIS 220 and EIS 230 in the embodiment depicted in fig. 2), the MIS 310 may be bypassed to avoid repeating the processing that has been performed by the MIS 220. However, if utterance 302 is received directly from the user (e.g., during a session that occurs after routing to the skill robot), MIS 310 may process utterance 302 to determine whether utterance 302 represents multiple intents. If so, MIS 310 applies one or more rules to split utterance 302 into separate utterances for each intent, such as utterance "D"306 and utterance "E"308. If utterance 302 does not represent multiple intents, MIS 310 forwards utterance 302 to intent classifier 320 for intent classification without splitting utterance 302.
The intent classifier 320 is configured to match a received utterance (e.g., utterance 306 or 308) with an intent associated with the skills robot system 300. As explained above, the skills robot may be configured with one or more intents, each intent including at least one example utterance associated with the intent and used to train the classifier. In the embodiment of fig. 2, the intent classifier 242 of the mainframe robotic system 200 is trained to determine confidence scores for individual skill robots and confidence scores for system intent. Similarly, the intent classifier 320 may be trained to determine a confidence score for each intent associated with the skill robot system 300. The classification performed by the intent classifier 242 is at the robotic level, while the classification performed by the intent classifier 320 is at the intent level and thus finer granularity. The intent classifier 320 may access the intent information 354. For each intent associated with the skill robot system 300, the intent information 354 includes a list of utterances that represent and illustrate the meaning of the intent and that are typically associated with tasks that may be performed by the intent. The intent information 354 may further include parameters generated as a result of training on the list of utterances.
The conversation manager 330 receives as output of the intent classifier 320 an indication 322 of a particular intent that is identified by the intent classifier 320 as a best match to the utterance input to the intent classifier 320. In some examples, the intent classifier 320 is unable to determine any matches. For example, if the utterance is directed to a system intent or an intent of a different skill robot, the confidence score calculated by the intent classifier 320 may fall below a threshold confidence score value. When this occurs, the skills robot system 300 may forward the utterance to the master robot for processing, e.g., routing to a different skills robot. However, if the intent classifier 320 is successful in identifying intent within the skill robot, the session manager 330 will initiate a session with the user.
The session initiated by the session manager 330 is a session specific to the intent identified by the intent classifier 320. For example, session manager 330 may be implemented using a state machine configured to execute a dialog flow for the identified intent. The state machine may include a default starting state (e.g., when invoking intent without any additional input) and one or more additional states, where each state is associated with an action to be performed by the skill robot (e.g., performing a purchase transaction) and/or a conversation to be presented to the user (e.g., question, response). Thus, the conversation manager 330 can determine an action/conversation 335 upon receiving the indication 322 identifying the intent, and can determine additional actions or conversations in response to subsequent utterances received during the conversation.
Data store 350 includes one or more computing devices that store data used by the various subsystems of skill robot system 300. As depicted in fig. 3, data store 350 may include rules 352 and intent information 354. In some embodiments, data store 350 may be integrated into a data store of a host robot or digital assistant, such as data store 250 in FIG. 2.
Keyword data augmentation
It has been found that the model used to classify an utterance as intended may be too confident and provide poor results for text containing certain keywords. To overcome this problem, various embodiments are directed to techniques for augmenting training data with utterances (negative learning utterances) having keywords in a context different from that of the utterances of the training data (positive learning utterances), so that machine learning models summarize and learn that keywords should only be important if the keywords are used in a context similar to the training data. By augmenting the training data with utterances having keywords in different contexts, the machine learning model becomes better able to mill on the most important part of the example in the correct context, which relates it to its classification. The machine learning model trained on the augmented text data may be implemented in a chat robot system, as described with respect to fig. 1, 2, and 3. Advantageously, these machine learning models and chat robots perform better for utterances with keywords in various contexts because the models are better able to mill over significant portions of the utterances in the correct context. Furthermore, since the augmentation is automatically applied in a composition agnostic manner, the client or client need not worry about adding utterances with keywords in various contexts to the training data.
Fig. 4 shows a block diagram illustrating aspects of a chat robot system 400 configured to train and utilize a classifier (e.g., intent classifier 242 or 320 described with respect to fig. 2 and 3) based on text data 405. As shown in fig. 4, the text classification performed by chat bot system 400 in this example includes various stages: a predictive model training stage 410; a skill robot invocation stage 415 for determining a likelihood that the utterance represents a task that the particular skill robot is configured to perform; and an intent prediction stage 420 for classifying the utterance as one or more intents. Predictive model training stage 410 builds and trains one or more predictive models 425a-425n ('n' represents any natural number) for use by other stages (the predictive models may be referred to herein as predictive models 425 alone or collectively as predictive models 425). For example, the predictive model 425 may include a model for determining a likelihood that an utterance represents a task that a particular skill-based robot is configured to perform, another model for predicting intent based on utterances of a first type of skill-based robot, and another model for predicting intent based on utterances of a second type of skill-based robot. Other types of predictive models may still be implemented in other examples according to the present disclosure.
The predictive model 425 may be a machine learning ("ML") model, such as a convolutional neural network ("CNN") (e.g., initial neural network, residual neural network ("Resnet")); or recurrent neural networks, such as long short term memory ("LSTM") models or gated recursive unit ("GRU") models; the predictive Model 425 may also be any other suitable ML Model trained for natural language processing, such as a naive bayes classifier, a linear classifier, a support vector machine, a Bagging Model such as a random forest Model, a Boosting Model, a shallow neural network, or a combination of one or more of such techniques-e.g., CNN-HMM or MCNN (multi-scale convolutional neural network) -the chat robot system 400 may employ the same type of predictive Model or a different type of predictive Model to determine the likelihood that a particular skill robot is configured to perform tasks, predict intent from utterances of a first type of skill robot, and predict intent from utterances of a second type of skill robot.
To train the various predictive models 425, the training phase 410 is composed of three main components: data set preparation 430, feature engineering 435, and model training 440. Data set preparation 430 includes the process of loading data asset 445, splitting data asset 445 into training set and validation set 445a-n so that the system can train and test predictive model 425, and performing basic preprocessing. The data assets 445 may include at least a subset of utterances from example utterances associated with various skills robots. As indicated above, the utterance may be provided in various ways including audio or text. The utterance may be a sentence fragment, a complete sentence, a plurality of sentences, or the like. For example, if the utterance is provided as audio, the data preparation 430 may use a speech-to-text converter (not shown) that inserts punctuation marks (e.g., commas, semicolons, periods, etc.) into the resulting text to convert the audio to text. In some instances, the example utterance is provided by a client or customer. In other examples, the example utterance is automatically generated from a library of previous utterances (e.g., utterances from the library that are specific to the skills to be learned by the chat robot are identified). The data assets 445 of the predictive model 425 may include input text or audio (or input features of a text or audio frame) and tags 450 corresponding to the input text or audio (or input features) as a matrix or table of values. For example, for each training utterance, an indication of the correct robot for the training utterance may be provided as the ground truth information for the tag 450. The behavior of the predictive model 425 may then be adapted (e.g., by back propagation) to minimize the differences between the generated inferences and the ground truth information. Alternatively, for a particular skill robot, the predictive model 425 may be trained using at least a subset of example utterances associated with the particular skill robot as training utterances. The ground truth information for the tag 450 for each training utterance will be the particular robot intent associated with the training utterance.
In various embodiments, data preparation 430 includes keyword expansion 455 to expand data asset 445 to include utterances with keywords in various contexts to make predictive model 425 more resilient to keywords within unrelated contexts. Keywords are words that may become associated with certain ground truth intents through training of a predictive model. The likelihood is greater among all words considered within the data asset 445. By augmenting the data asset 445 with utterances having keywords in various contexts, the predictive model 425 becomes better able to mill on the most important parts of the examples and contexts that relate it to its classification. Augmentation 455 is implemented using keyword augmentation techniques for merging utterances with keywords in various contexts with the original utterances of data asset 445. Keyword expansion techniques typically include four operations: (i) optionally normalizing all or a portion of the original utterance, (ii) identifying keywords in all (optionally normalized) the original utterance or a portion thereof, (iii) generating one or more OOD examples containing each identified keyword (i.e., generating an utterance having keywords in a context different from that of the original utterance), and (iv) filtering out the OOD examples within a context too similar to that of the original utterance.
The normalizing step may include the steps of: (i) filtering out the stop words identified as keywords in the second step of identifying keywords ("stop words" refer to the most common words in a given language, such as when, that, a, has, the, is, etc., (ii) classifying all words in the training data in the second step (identifying keywords) by inflectional variation so as to merge different word patterns under individual terms in the word frequency (TF) and word frequency-inverse document frequency (TF-IDF) scores (classifying by inflectional variation in linguistics is a process of grouping inflectional forms of words together so that they can be analyzed as individual terms, identified by terms or dictionary forms of words), (iii) when searching for examples containing terms (once found, these examples can be added to training assets in their original form and not classified by inflectional variation), classifying all words in examples from the OOD library in the third step (generating OOD examples) by inflectional variation, or (iv) combinations thereof.
Identifying keywords may include the steps of: (i) using TF-IDF, (ii) using TF, (iii) using tag name, (iv) using an interpretive tool, or (v) any combination thereof.
1.TF-IDF
TF-IDF can be used to identify keywords in a collection. There are many ways in which TF-IDF scores can be calculated:
1. treating each training utterance as a document
2. Treating each training class as a document
3. TF scores and IDF scores are calculated on separate data sets, e.g., TF scores are calculated on training data and IDF scores are calculated on a background corpus (e.g., a gigaword corpus).
4. Etc.
In some examples, method (2) is used because it identifies which words are most important or unique to a certain classification, and because it is easier to calculate.
Table 2 shows an example of TF-IDF keywords identified within a set of raw training data.
Table 2:
2.TF
the basic word frequency may also be used to find keywords. The benefit of using TF over TF-IDF is that it can help identify words that are important or frequently occurring at the training set level, but may not be unique to a few classifications.
In some examples, TF scores are calculated for words in each training class.
Table 3 shows an example of TF keywords identified within a set of raw training data.
Table 3:
/>
3. label name
Tag names typically contain important words that can be added to a keyword list. However, it is important to check if these words are also found in the training data, otherwise there is a risk of getting a false negative if the tag word is mentioned in the augmented utterance.
4. Expandable tool
An interpretive tool may be implemented to identify the keywords (or "anchors") that are most important to a particular classification result (in other words, let the machine learning model interpret which words it deems to be the key to its classification decision). An interpretable tool or interpretable AI (XAI) means implementing a framework and technology that helps human experts understand solutions developed by AI. The interpretable tool or XAI may be implemented in a variety of ways including, but not limited to, linear models, decision tree algorithms, generalized additive models, locally interpretable models-agnostic interpretations (LIMEs), partially dependent graphs, individual condition expected graphs, leave a column, cumulative local effects, anchors, shape additive interpretations, deep learning important features, layer-by-layer relevance propagation, contrast interpretations, alignment feature importance, AI interpretations 360, skater, explatin Like I'm Five, and InterpretML. Such tools may be better at identifying keywords than other methods because the interpretive tools know the actual behavior of the model. But the previous approach has its own advantages because the interpretive tool is very computationally intensive and has little negative impact on over-identifying keywords.
Generating the OOD example may include the steps of: (i) find OOD examples from a corpus, (ii) find OOD examples from a lexical database (e.g., wordNet), (iii) generate OOD examples using a model (e.g., generative pretrained transformer 2 (GPT-2)), (iv) generate OOD examples using a resistive attack model, or (v) any combination thereof.
1. Searching OOD examples from a corpus
The OOD examples may be identified as candidates by looking up sentences containing the keywords identified in the previous step in a corpus (e.g., brown and Reuters corpus of NLTK). Examples that are too short (less than 5 words) may be filtered out, as adding examples that contain keywords without much other content may be of no benefit. The saved examples are then sorted by length. In some instances, shorter sentences are preferred because keywords have a greater impact. In some instances, it may be beneficial to select an instance of the same length as the original instance if there is sufficient corpus data. Various expansion rates such as 1 may be used, i.e., add OOD examples for each example in the training data that contains keywords.
Table 4 shows an example of an OOD utterance found in a corpus.
Table 4:
2. searching for OOD examples from a lexical database
A lexical database (e.g., wordNet) may be used to find OOD examples that cover all possible word senses of the identified keywords.
3. Generating OOD examples using a model (e.g., GPT-2)
The OOD examples may be generated using a model like GPT-2. This may provide more control over the example types generated.
4. Generating OOD examples using a resistive attack model
Variations of the resistance attack model may be used to generate OOD sentences that are known to be classified as intra-domain by the machine learning model. This is a one-shot method since it does not require a keyword recognition step.
Filtering may include using distance measures (e.g., euclidean, manhattan, correlation, and Eisen) to filter out OOD examples that are too similar (substantially similar) to examples in the training data to avoid conflicts between classifications. In some examples, the distance filtering is based on euclidean distances between the vectors of the candidate OOD examples and the vectors of the examples of training data.
In some embodiments, lot balancing is used to ensure that there are the correct amount of OOD examples in each training lot (too few examples means that the OOD examples will not have an impact, too many OOD examples may overwhelm the original intra-domain examples). Features of the foregoing process for keyword augmentation may be considered super parameters of the machine learning model 425. Table 5 shows example settings of the super parameters.
Table 5:
with the introduction of keyword expansion techniques, the predictive model 425 performs better for utterances having keywords within unrelated contexts because the predictive model 425 is more aware of the context in which the keywords are used. This improvement has little or no effect on in-domain performance due to the application of the filtering step. Furthermore, since keyword augmentation is automatically applied in a composition agnostic manner, the client or client need not worry about adding utterances with keywords and irrelevant contexts to the training data.
In some instances, additional extensions may be applied to data asset 445 (using keyword extensions). For example, simple data augmentation (EDA) techniques may be used to improve the performance of text classification tasks. EDA includes four operations: synonym substitution, random insertion, random exchange, and random deletion, which prevent overfitting and help train a more robust model. Note that EDA operations are typically compared to keyword expansion: (i) A word is obtained from the original text, and (ii) the word is incorporated into each data asset 445 relative to the original text. For example, the synonym replacement operation includes randomly selecting n words from the original sentence (e.g., utterance) that are not stop words, and replacing each of these words with one of its randomly selected synonyms. The random insertion operation includes-n times-finding a random synonym of a random word in the original sentence that is not a stop word, and inserting the synonym into a random position in the sentence. The random swap operation includes-n times-randomly selecting two words in a sentence and swapping their positions. The random deletion operation includes randomly removing each word in the sentence with a probability p.
In various embodiments, feature engineering 435 includes transforming data asset 445 (augmented with keywords) into feature vectors and/or creating new features to be created using data asset 445 (augmented with keywords). Feature vectors may include count vectors as features, TF-IDF vectors as features (e.g., word level, n-gram level, or character level), word embedding as features, text/NLP as features, topic models as features, or combinations thereof. The count vector is a matrix symbol of the data asset 445 where each row represents one utterance, each column represents one word from the utterance, and each cell represents a frequency count of a particular word in the utterance. The TF-IDF score indicates the relative importance of a word in an utterance. Word embedding is a form of representing words and utterances using dense vector representations. The position of a word within the vector space is learned from text and is based on words surrounding the word when the word is used. text/NLP-based features may include the number of words in an utterance, the number of characters in an utterance, an average word density, a number of punctuations, a number of capital letters, a number of thesaurus words, a frequency distribution of part-of-speech tags (e.g., nouns and verbs), or any combination thereof. Topic modeling is a technique that identifies phrases (called topics) from a collection of utterances that contains the best information in the collection.
In various embodiments, model training 440 includes training a classifier using feature vectors and/or new features created in feature engineering 435. In some examples, the training process includes iterative operations to find a set of parameters of the predictive model 425 that maximize or minimize a cost function (e.g., a loss or error function) of the predictive model 425. Each iteration may involve finding a set of parameters of the predictive model 425 such that the value of the cost function using the set of parameters is greater than or less than the value of the cost function using another set of parameters in a previous iteration. A cost function may be constructed to measure the difference between the output predicted using the predictive model 425 and the tags 450 contained in the data asset 445. Once the set of parameters is identified, the predictive model 425 has been trained and can be used for prediction according to design.
In addition to data assets 445, tags 450, feature vectors, and/or new features, other techniques and information may be employed to refine the training process of predictive model 425. For example, feature vectors and/or new features may be combined together to help improve the accuracy of the classifier or model. Additionally or alternatively, the super-parameters may be adjusted or optimized, e.g., multiple parameters such as tree length, leaf, network parameters, etc., may be fine-tuned to obtain a best fit model. Although the training mechanism described herein focuses primarily on training predictive model 425. These training mechanisms may also be used to fine tune existing predictive models 425 trained from other data assets. For example, in some cases, predictive model 425 may have been pre-trained using utterances specific to another skill robot. In these cases, the data asset 445 (augmented with keywords) may be used to retrain the predictive model 425, as discussed herein.
The predictive model training stage 410 outputs a trained predictive model 425, including a task predictive model 460 and an intent predictive model 465. Task prediction model 460 may be used in skill robot invocation stage 415 to determine a likelihood that an utterance represents a task 470 that a particular skill robot is configured to perform, and intent prediction model 465 may be used in intent prediction stage 420 to classify the utterance as one or more intents 475. In some examples, the skill robot invocation stage 415 and the intent prediction stage 420 may be performed independently, in some examples, using separate models. For example, the trained intent prediction model 465 may be used in the intent prediction stage 420 to predict the intent of a skill robot without first identifying the skill robot in the skill robot invocation stage 415. Similarly, the task prediction model 460 may be used in the skill robot invocation stage 415 to predict a task or skill robot to be used for an utterance without having to recognize the intent of the utterance in the intent prediction stage 420.
Alternatively, the skill robot invocation stage 415 and the intent prediction stage 420 may be performed sequentially, with one stage using the output of the other stage as input, or for a particular skill robot, one stage invoked in a particular manner based on the output of the other stage. For example, for a given text data 405, a skills robot invoker may invoke a skills robot by implicit invocation using a skills robot invocation phase 415 and a task prediction model 460. The task prediction model 460 may be trained using predictive and/or rule-based training techniques to determine the likelihood that the utterance represents a task that the skill-specific robot 470 is configured to perform. The intent prediction stage 420 and intent prediction model 465 may then be used to match the received utterance (e.g., an utterance within a given data asset 445) with an intent 475 associated with the skill robot for the identified or invoked skill robot and given text data 405. As explained herein, a skills robot may be configured with one or more intents, each intent including at least one example utterance associated with the intent and used to train a classifier. In some embodiments, the skill robot invocation stage 415 and the task prediction model 460 used in the host robotic system are trained to determine the confidence scores of the individual skill robots and the confidence scores of the system intent. Similarly, the intent prediction stage 420 and the intent prediction model 465 may be trained to determine a confidence score for each intent associated with the skill robot system. The classification performed by the skill robot invocation stage 415 and the task prediction model 460 is at the robot level, while the classification performed by the intent prediction stage 420 and the intent prediction model 465 is at the intent level and therefore finer granularity.
Techniques for keyword data augmentation and utterance classification
FIG. 5 is a flow diagram illustrating a process 500 for augmenting a training data set with an OOD example, according to some embodiments. The processes depicted in fig. 5 may be implemented in software (e.g., code, instructions, programs), hardware, or a combination thereof, that is executed by one or more processing units (e.g., processors, cores) of the respective systems. The software may be stored on a non-transitory storage medium (e.g., on a memory device). The method presented in fig. 5 and described below is intended to be illustrative and not limiting. Although fig. 5 depicts various process steps occurring in a particular sequence or order, this is not intended to be limiting. In some alternative embodiments, the steps may be performed in a different order or some steps may be performed in parallel. In certain embodiments, as in the embodiments depicted in fig. 1-4, the processing depicted in fig. 5 may be performed by a preprocessing subsystem (e.g., preprocessing subsystem 210 or predictive model training stage 410) to generate a keyword augmented data set for training by one or more predictive models (e.g., intent classifier 242 or 320 or predictive model 425).
At 505, a data processing system (e.g., chat robot system 400 described with respect to fig. 4) receives a set of training utterances. In some examples, the training utterance set is used to train an intent classifier to recognize one or more intentions of one or more utterances.
At 510, the training utterance set is augmented by the data processing system with the OOD examples to obtain an augmented training utterance set. In various embodiments, the augmenting comprises: (i) identify keywords within the utterance in the training utterance set, (ii) generate a set of OOD examples with the identified keywords, (iii) filter out from the set of OOD examples that are substantially similar in context to the context of the utterance in the training utterance set, and (iv) incorporate the set of OOD examples without the filtered out OOD examples into the training utterance set to generate an extended training utterance set. As used herein, when an action is "based on" something, this means that the action is based at least in part on at least a portion of the something. As used herein, the terms "substantially," "about," and "about" are defined as largely but not necessarily entirely what is specified (and entirely includes what is specified), as understood by one of ordinary skill in the art. In any of the disclosed embodiments, the terms "substantially," about, "or" approximately "may be replaced with" within a [ percent ] of what is specified, wherein the percent includes 0.1%, 1%, 5%, and 10%. Basic similarity between the context of the OOD examples and the context of the utterances in the training set of utterances may be determined based on the distance measurements to avoid conflicts between the classifications.
Optionally, augmenting further comprises normalizing the training utterance set and/or the OOD example set, wherein normalizing comprises: (i) filtering out deactivated words identified as recognized keywords, (ii) categorizing all words in the training speech set by inflections, (iii) categorizing all words in the OOD example set with recognized keywords by inflections, or (iv) any combination thereof.
At 515, the machine learning model is trained using the augmented training text data set to determine a likelihood that the utterance or message represents a task that the skills robot is configured to perform or to match the utterance or message with an intent associated with the skills robot. Thereafter, at 520, a trained machine learning model can be deployed within the chat robot system (e.g., as part of a master robot or a skills robot) to determine a likelihood that the utterance or message represents a task that the skills robot is configured to perform or match the utterance or message with an intent associated with the skills robot. For example, an utterance may be received, which may be analyzed to determine whether the utterance contains a call name for a skill robot. If the call name is not found, the utterance is considered to be non-explicitly called, and the process proceeds with the intent classifier (e.g., a trained model). If it is determined that there is a call name, the utterance is treated as an explicit call, and the process continues by determining which portions of the utterance are associated with the call name.
In an example of invoking the trained model, the entire utterance that has been received is provided as input to the intent classifier. The intent classifier that receives the utterance may be an intent classifier of the host robot (e.g., intent classifier 242 in fig. 2). The intent classifier may be a machine-learning-based or rule-based classifier that is trained with keyword-augmented data to determine whether the intent of the utterance matches the system intent (e.g., exit, help) or a particular skill robot. As explained herein, the intent analysis performed by the host robot may be limited to matching to a particular skill robot, without determining which intent within the particular skill robot is the best match to the utterance. Thus, the intent classifier that receives the utterance may identify a particular skill robot to invoke. Alternatively, if the utterance represents a particular system intent (e.g., the utterance contains the word "exit" or "help"), an intent classifier that receives the utterance may recognize the particular system intent to trigger a conversation between the host robot and the user based on a conversation flow configured for the particular system intent.
In instances where there is a call name, one or more explicit call rules are applied to determine which portions of the utterance are associated with the call name. The determination may be based on analysis of the sentence structure of the utterance using POS tags, dependency information, and/or other extracted information received with the utterance. For example, the portion associated with the call name may be a noun phrase including the call name or a preposition object corresponding to the call name. Any portion associated with the call name as determined based on the processing will be removed. Other portions of the utterance (e.g., prepositions) that are not needed to convey meaning of the utterance may also be removed. Removing portions of the utterance generates input for the skills robot associated with the invocation name. If any portion of the received utterance remains after removal, the remaining portion forms a new utterance for input to the skill robot, e.g., as a text string. Otherwise, if the received utterance is completely removed, the input may be an empty string.
Thereafter, the skills robot associated with the call name is invoked and the generated input is provided to the skills robot. Upon receiving the generated input, the invoked skill robot will process the input, for example, by performing an intent analysis using an intent classifier of the skill robot trained with the keyword-augmented data, to identify a robot intent that matches the user intent represented in the input. The identification of the matching robot intent may cause the skills robot to perform a particular action or to begin a session with the user according to the dialog flow associated with the matching robot intent. For example, if the input is an empty string, the session, such as a welcome message, may be started in a default state defined for the dialog flow. Alternatively, if the input is not an empty string, the session may begin in some intermediate state, for example, because the input contains the value of the entity or some other information that the skill robot no longer needs to query the user as part of the input. As another example, a skill robot may decide that it cannot process input (e.g., because the confidence score for each robot intent configured for the skill robot is below a certain threshold). In this case, the skills robot may return the input to the host robot for processing (e.g., using the intent classifier of the host robot for intent analysis), or the skills robot may prompt the user for clarification.
In various embodiments, deploying and using the intent classifier within the chat robotic system includes: receiving, by the chat robotic system, an utterance generated by a user interacting with the chat robotic system and classifying the utterance into an intent category corresponding to an intent using an intent classifier disposed within the chat robotic system; and outputting the intent based on the classification using the intent classifier. The intent classifier includes a plurality of model parameters identified using training data, the training data including: an augmented training utterance set for training an intent classifier to recognize one or more intentions of one or more utterances, wherein the augmented training utterance set is artificially generated to include augmented utterances from the training utterance set, and wherein keywords are recognized from the training utterance set and incorporated into OOD utterances having a significantly different context than the utterances in the training utterance set to generate augmented utterances. A plurality of model parameters are identified based on using training data to maximize or minimize a cost function. Deploying and using the intent classifier within the chat robot system further includes outputting intent based on the classification using the intent classifier.
A significant difference between the context of the OOD example and the context of the utterances in the training set of utterances may be determined based on the distance measurements to avoid conflicts between the classifications.
Illustrative System
Fig. 6 depicts a simplified diagram of a distributed system 600. In the illustrated example, the distributed system 600 includes one or more client computing devices 602, 604, 606, and 608 coupled to a server 612 via one or more communication networks 610. Client computing devices 602, 604, 606, and 608 may be configured to execute one or more application programs.
In various examples, server 612 may be adapted to run one or more services or software applications that implement one or more embodiments described herein. In some examples, server 612 may also provide other services or software applications that may include non-virtual environments and virtual environments. In some examples, these services may be provided to users of client computing devices 602, 604, 606, and/or 608 as web-based services or cloud services, such as under a software as a service (SaaS) model. A user operating client computing devices 602, 604, 606, and/or 608 can in turn utilize one or more client applications to interact with server 612 to utilize services provided by these components.
In the configuration depicted in fig. 6, server 612 may include one or more components 618, 620, and 622 that perform the functions performed by server 612. These components may include software components that may be executed by one or more processors, hardware components, or a combination thereof. It should be appreciated that a variety of different system configurations are possible that may differ from distributed system 600. Thus, the example illustrated in FIG. 6 is one example of a distributed system for implementing the example system and is not intended to be limiting.
A user may use client computing devices 602, 604, 606, and/or 608 to execute one or more applications, models, or chat robots that may generate one or more events or models that may then be implemented or serviced in accordance with the teachings of the present disclosure. The client device may provide an interface that enables a user of the client device to interact with the client device. The client device may also output information to the user via the interface. Although fig. 6 depicts only four client computing devices, any number of client computing devices may be supported.
The client devices may include various types of computing systems, such as portable handheld devices, general purpose computers such as personal computers and laptop computers, workstation computers, wearable devices, gaming systems, thin clients, various messaging devices, sensors or other sensing devices, and the like. These computing devices may run various types and versions of software applications and operating systems (e.g., microsoft Windows 、Apple/>、/>Or a UNIX-like operating system, linux, or Linux-like operating system (e.g., google Chrome TM OS), including various mobile operating systems (e.g., microsoft Windows +.>、/>、Windows/>、Android TM 、/>、Palm/>). The portable handheld device may include a cellular telephone, a smart phone (e.g.,/for example>) Tablet computer (e.g.)>) Personal Digital Assistants (PDAs), etc. The wearable device may comprise Google->Head mounted displays, and other devices. The gaming system may include various handheld gaming devices, internet enabled gaming devices (e.g., with or without +.>Microsoft +.>Game console, sony->System, by->Various game systems provided, among others), and the like. The client device may be capable of executing a variety of different applications, such as a variety of internet-related applications, communication applications (e.g., email applications, short Message Service (SMS) applications), and may use a variety of communication protocols.
The one or more networks 610 may be any type of network familiar to those skilled in the art that may support data communications using any of a variety of available protocols, available protocols include, but are not limited to, TCP/IP (Transmission control protocol/Internet protocol), SNA (System network architecture), IPX (Internet packet switching), IP (Internet protocol/Internet protocol), Etc. By way of example only, the one or more networks 610 may be a Local Area Network (LAN), an ethernet-based network, a token ring, a Wide Area Network (WAN), the internet, a virtual network, a Virtual Private Network (VPN), an intranet, an extranet, a Public Switched Telephone Network (PSTN), an infrared network, a wireless network (e.g., according to the institute of electrical and electronics (IEEE) 1002.11 protocol suite, a set of protocols, or a combination thereof)>And/or any other wireless protocol) and/or any combination of these and/or other networks.
The server 612 may be composed of: one or more general purpose computers, special purpose server computers (including by way of example a PC server,Servers, mid-range servers, mainframe computers, rack mounted servers, etc.), a server farm, a server cluster, or any other suitable arrangement and/or combination. The server 612 may include an operation virtualOne or more virtual machines of the virtual operating system or other computing architecture that involves virtualization, such as one or more flexible pools of virtual storage devices of logical storage devices that can be virtualized to maintain servers. In various examples, server 612 may be adapted to run one or more services or software applications that provide the functionality described in the foregoing disclosure.
The computing systems in server 612 may run one or more operating systems, including any of those discussed above, as well as any commercially available server operating systems. The server 612 may also run any of a variety of additional server applications and/or middle tier applications, including HTTP (HyperText transport protocol) servers, FTP (File transfer protocol) servers, CGI (common gateway interface) servers,Servers, database servers, etc. Exemplary database servers include, but are not limited to, available from(International Business machines corporation) and the like.
In some implementations, server 612 may include one or more applications to analyze and consolidate data feeds and/or event updates received from users of client computing devices 602, 604, 606, and 608. As an example, the data feeds and/or event updates may include, but are not limited toFeed, & lt & gt>Updates or real-time updates received from one or more third party information sources and continuous data streams, which may include information related to sensor data applications, financial tickers, network performance measurement tools (e.g., networks Monitoring and traffic management applications), click stream analysis tools, automotive traffic monitoring, and the like. Server 612 may also include one or more applications to display data feeds and/or real-time events via one or more display devices of client computing devices 602, 604, 606, and 608.
The distributed system 600 may also include one or more data repositories 614, 616. In some examples, these data repositories may be used to store data and other information. For example, one or more of the data repositories 614, 616 can be used to store information (e.g., information regarding chat robot performance or generated models) for use by the server 612 in performing various functions in accordance with various embodiments. The data repositories 614, 616 may reside in various locations. For example, the data repository used by server 612 may be local to server 612 or may be remote from server 612 and in communication with server 612 via a network-based or dedicated connection. The data repositories 614, 616 may be of different types. In some examples, the data repository used by server 612 may be a database, such as, for example, by Oracle And relational databases such as databases provided by other suppliers. One or more of these databases may be adapted to enable storage, updating and retrieval of data to the databases and storage, updating and retrieval of data from the databases in response to commands in SQL format.
In some examples, one or more of the data repositories 614, 616 may also be used by an application to store application data. The data repository used by the application may be of different types, such as a key value store repository, an object store repository, or a general purpose store repository supported by the file system.
In some examples, the functionality described in this disclosure may be provided as a service via a cloud environment. Fig. 7 is a simplified block diagram of a cloud-based system environment in which various services may be provided as cloud services, according to some examples. In the example depicted in fig. 7, cloud infrastructure system 702 can provide one or more cloud services that can be requested by a user using one or more client computing devices 704, 706, and 708. Cloud infrastructure system 702 may include one or more computers and/or servers, which may include those described above for server 612. The computers in the cloud infrastructure system 702 can be organized as general-purpose computers, special-purpose server computers, server clusters, or any other suitable arrangement and/or combination.
One or more networks 710 may facilitate data communication and exchange between clients 704, 706, and 708 and cloud infrastructure system 702. The one or more networks 710 may include one or more networks. The networks may be of the same or different types. One or more networks 710 may support one or more communication protocols (including wired and/or wireless protocols) to facilitate communications.
The example depicted in fig. 7 is only one example of a cloud infrastructure system and is not intended to be limiting. It should be appreciated that in some other examples, cloud infrastructure system 702 may have more or fewer components than those depicted in fig. 7, may combine two or more components, or may have a different configuration or arrangement of components. For example, although fig. 7 depicts three client computing devices, in alternative examples, any number of client computing devices may be supported.
The term cloud service is generally used to refer to a service that is made available to users on demand through a service provider's system (e.g., cloud infrastructure system 702) and via a communication network such as the internet. In general, in a public cloud environment, servers and systems constituting a system of a cloud service provider are different from preset servers and systems of clients themselves. The cloud service provider's system is managed by the cloud service provider. Thus, the customer can make himself use of the cloud service provided by the cloud service provider without having to purchase separate licenses, support, or hardware and software resources for the service. For example, cloud service providers The application may be hosted by the system and the user may order and use the application on demand via the internet without the user having to purchase infrastructure resources for executing the application. Cloud services are designed to provide easy, scalable access to applications, resources, and services. Multiple providers offer cloud services. For example, oracle from Redwood Shores, californiaVarious cloud services such as middleware services, database services, java cloud services, and other services are provided.
In some examples, cloud infrastructure system 702 may provide one or more cloud services using different models, such as under a software as a service (SaaS) model, a platform as a service (PaaS) model, an infrastructure as a service (IaaS) model, and other models, including a hybrid service model. Cloud infrastructure system 702 may include a set of applications, middleware, databases, and other resources that enable provisioning of various cloud services.
The SaaS model enables applications or software to be delivered as a service to a customer over a communication network, such as the internet, without the customer having to purchase hardware or software for the underlying application. For example, the SaaS model may be used to provide customers with access to on-demand applications hosted by cloud infrastructure system 702. Oracle Examples of SaaS services provided include, but are not limited to, various services for human resources/capital management, customer Relationship Management (CRM), enterprise Resource Planning (ERP), supply Chain Management (SCM), enterprise Performance Management (EPM), analytics services, social applications, and the like.
The IaaS model is typically used to provide infrastructure resources (e.g., servers, storage, hardware, and networking resources) as cloud services to clients to provide flexible computing and storage capabilities. From OracleVarious IaaS services are provided.
The PaaS model is typically used to provide as a service platform and environmental resources that enable a client to develop, run, and manage applications and services without the client having to purchase, build, or maintain such resources. From OracleExamples of PaaS services provided include, but are not limited to, oracle Java Cloud Service (JCS), oracle database cloud service (DBCS), data management cloud service, various application development solution services, and the like.
Cloud services are typically provided in an on-demand self-service basis, subscription-based, flexible, reliable, highly available, and secure manner. For example, a customer may subscribe to one or more services provided by cloud infrastructure system 702 via a subscription order. Cloud infrastructure system 702 then performs processing to provide the services requested in the customer's subscription order. For example, a user may use an utterance to request a cloud infrastructure system to take some action (e.g., intent) as described above and/or to provide services for a chat bot system as described herein. Cloud infrastructure system 702 may be configured to provide one or even more cloud services.
Cloud infrastructure system 702 may provide cloud services via different deployment models. In the public cloud model, cloud infrastructure system 702 may be owned by a third party cloud service provider and the cloud service is provided to any general public customer, where the customer may be a person or business. In certain other examples, under the private cloud model, cloud infrastructure system 702 may operate within an organization (e.g., within an enterprise organization) and services are provided to customers within the organization. For example, the customer may be a respective department of an enterprise, such as a human resources department, a salary department, etc., or even an individual within the enterprise. In certain other examples, under the community cloud model, the cloud infrastructure system 702 and the services provided may be shared by multiple organizations in the community of interest. Various other models may also be used, such as a mixture of the models mentioned above.
Client computing devices 704, 706, and 708 may be of different types (client computing devices 602, 604, 606, and 608 as depicted in fig. 6) and may be capable of operating one or more client applications. A user may interact with cloud infrastructure system 702 using a client device, such as requesting a service provided by cloud infrastructure system 702. For example, a user may request information or actions from a chat bot as described in this disclosure using a client device.
In some examples, the processing performed by cloud infrastructure system 702 to provide services may involve model training and deployment. This analysis may involve training and deploying one or more models using, analyzing, and manipulating the data set. The analysis may be performed by one or more processors, possibly processing the data in parallel, performing simulations using the data, etc. For example, big data analysis may be performed by cloud infrastructure system 702 for generating and training one or more models for chat bots systems. The data used for this analysis may include structured data (e.g., data stored in a database or structured according to a structured model) and/or unstructured data (e.g., data blocks (blobs)).
As depicted by the example in fig. 7, cloud infrastructure system 702 may include infrastructure resources 730 that are used to facilitate provisioning of various cloud services provided by cloud infrastructure system 702. Infrastructure resources 730 may include, for example, processing resources, storage or memory resources, networking resources, and the like. In some examples, the storage virtual machine available to service the storage requested from the application may be part of the cloud infrastructure system 702. In other examples, the storage virtual machine may be part of a different system.
In some examples, to facilitate efficient provisioning of these resources to support various cloud services provided by cloud infrastructure system 702 for different customers, resources may be bundled into a resource group or resource module (also referred to as a "group (pod)"). Each resource module or cluster may include a pre-integrated and optimized combination of one or more types of resources. In some examples, different groups may be pre-provisioned for different types of cloud services. For example, a first group may be provided for a database service, a second group may be provided for a Java service (the second group may include a different combination of resources than the groups in the first group), and so on. For some services, resources allocated for provisioning services may be shared between services.
Cloud infrastructure system 702 itself may internally use services 732 that are shared by different components of cloud infrastructure system 702 and facilitate provisioning of services by cloud infrastructure system 702. These internal sharing services may include, but are not limited to, security and identity services, syndication services, enterprise repository services, enterprise manager services, virus scanning and whitelisting services, high availability, backup and restore services, services for implementing cloud support, email services, notification services, file transfer services, and the like.
Cloud infrastructure system 702 may include a plurality of subsystems. These subsystems may be implemented in software or hardware or a combination thereof. As depicted in fig. 7, the subsystems may include a user interface subsystem 712 that enables users or clients of the cloud infrastructure system 702 to interact with the cloud infrastructure system 702. The user interface subsystem 712 may include a variety of different interfaces, such as a web interface 714, an online store interface 716 (where advertisements and clients may purchase cloud services provided by the cloud infrastructure system 702), and other interfaces 718. For example, a client may use a client device to request (service request 734) one or more services provided by cloud infrastructure system 702 using one or more of interfaces 714, 716, and 718. For example, a customer may visit an online store, browse cloud services provided by cloud infrastructure system 702, and place a subscription order for one or more services provided by cloud infrastructure system 702 to which the customer wishes to subscribe. The service request may include information identifying the customer and one or more services to which the customer desires to subscribe. For example, a customer may place a subscription order for a service provided by cloud infrastructure system 702. As part of the order, the customer may provide information identifying the chat bot system for which the service is to be provided and optionally one or more credentials for the chat bot system.
In some examples (as depicted in fig. 7), cloud infrastructure system 702 may include an Order Management Subsystem (OMS) 720 configured to process new orders. As part of this process, OMS 720 may be configured to: creating an account for the customer (if not already created); receiving billing and/or charging information from the customer to be used for billing the customer for providing the requested service to the customer; verifying the client information; after verification, booking the customer with an order; and plans various workflows to prepare orders for supply.
Once properly authenticated, OMS 720 may invoke an order supply subsystem (OPS) 724 configured to supply resources for orders, including processing resources, memory resources, and networking resources. Provisioning may include allocating resources for an order and configuring the resources to facilitate the services requested by a customer order. The manner in which resources are offered for an order and the type of resources offered may depend on the type of cloud service that the customer has subscribed to. For example, according to one workflow, OPS 724 may be configured to determine a particular cloud service being requested and identify the number of groups that may have been preconfigured for that particular cloud service. The number of clusters allocated for an order may depend on the size/amount/hierarchy/range of the requested service. For example, the number of groups to be allocated may be determined based on the number of users supported by the service, the duration of the service being requested, and the like. The assigned group may then be customized for the particular requesting customer for providing the requested service.
In some examples, the setup phase process as described above may be performed by cloud infrastructure system 702 as part of the provisioning process. Cloud infrastructure system 702 may generate an application ID and select a storage virtual machine for the application from storage virtual machines provided by cloud infrastructure system 702 itself or from storage virtual machines provided by other systems than cloud infrastructure system 702.
Cloud infrastructure system 702 may send a response or notification 744 to the requesting client to indicate when the requested service is now ready for use. In some instances, information (e.g., links) may be sent to the customer that enables the customer to begin using and utilizing the benefits of the requested service. In some examples, for a customer requesting a service, the response may include a chat bot system ID generated by cloud infrastructure system 702 and information identifying the chat bot system selected by cloud infrastructure system 702 for the chat bot system corresponding to the chat bot system ID.
Cloud infrastructure system 702 may provide services to a plurality of clients. For each customer, cloud infrastructure system 702 is responsible for managing information related to one or more subscription orders received from the customer, maintaining customer data related to the orders, and providing the requested services to the customer. Cloud infrastructure system 702 may also collect usage statistics regarding the use of subscribed services by the customer. For example, statistics may be collected for the amount of memory used, the amount of data transferred, the number of users, the amount of system on time and the amount of system off time, and so forth. The use information may be used to bill the customer. Billing may be accomplished, for example, on a monthly cycle.
Cloud infrastructure system 702 may provide services to multiple clients in parallel. Cloud infrastructure system 702 may store information (possibly including proprietary information) for these customers. In some examples, cloud infrastructure system 702 includes an Identity Management Subsystem (IMS) 728 configured to manage customer information and provide separation of the managed information such that information related to one customer is not accessible to another customer. IMS 728 may be configured to provide various security-related services such as identity services, such as information access management, authentication and authorization services, services for managing customer identities and roles, and related functions, and so on.
Fig. 8 illustrates an example of a computer system 800. In some examples, computer system 800 may be used to implement any digital assistant or chat bot system within a distributed environment, as well as the various servers and computer systems described above. As shown in FIG. 8, computer system 800 includes various subsystems, including a processing subsystem 804, which communicates with a number of other subsystems via a bus subsystem 802. These other subsystems may include a processing acceleration unit 806, an I/O subsystem 808, a storage subsystem 818, and a communication subsystem 824. The storage subsystem 818 may include non-transitory computer-readable storage media including storage media 822 and system memory 810.
Bus subsystem 802 provides a mechanism for letting the various components and subsystems of computer system 800 communicate with each other as intended. Although bus subsystem 802 is shown schematically as a single bus, alternative examples of bus subsystems may utilize multiple buses. Bus subsystem 802 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, a local bus using any of a variety of bus architectures, etc. Such architectures can include, for example, industry Standard Architecture (ISA) bus, micro Channel Architecture (MCA) bus, enhanced ISA (EISA) bus, video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus which can be implemented as Mezzanine bus manufactured as the IEEE P1386.1 standard, among others.
Processing subsystem 804 controls the operation of computer system 800 and may include one or more processors, application Specific Integrated Circuits (ASICs), or Field Programmable Gate Arrays (FPGAs). The processor may comprise a single core processor or a multi-core processor. The processing resources of computer system 800 may be organized into one or more processing units 832, 834, etc. A processing unit may include one or more processors, one or more cores from the same or different processors, a combination of cores and processors, or other combinations of cores and processors. In some examples, processing subsystem 804 may include one or more special purpose coprocessors such as a graphics processor, a Digital Signal Processor (DSP), and the like. In some examples, some or all of the processing units of processing subsystem 804 may be implemented using custom circuits, such as an Application Specific Integrated Circuit (ASIC) or a Field Programmable Gate Array (FPGA).
In some examples, a processing unit in processing subsystem 804 may execute instructions stored in system memory 810 or on computer-readable storage medium 822. In various examples, a processing unit may execute various programs or code instructions and may maintain multiple concurrently executing programs or processes. At any given time, some or all of the program code to be executed may reside in system memory 810 and/or on computer readable storage medium 822 (potentially including on one or more storage devices). The processing subsystem 804 may provide the various functions described above by suitable programming. In instances where computer system 800 is executing one or more virtual machines, each virtual machine may be assigned one or more processing units.
In some examples, a process acceleration unit 806 may optionally be provided for performing custom processing or for offloading some of the processing performed by the processing subsystem 804, thereby accelerating the overall processing performed by the computer system 800.
I/O subsystem 808 may include devices and mechanisms for inputting information to computer system 800 and/or for outputting information from or via computer system 800. In general, the term input device is intended to include all possible types of devices and mechanisms for inputting information to computer system 800. The user interface input devices may include, for example, a keyboard, a pointing device such as a mouse or trackball, a touch pad or screen incorporated into a display, a scroll wheel, a click wheel, a dial, buttons, switches, a keypad, an audio input device with a voice command recognition system, a microphone, and other types of input devices. The user interface input device may also include a motion sensing and/or gesture recognition device, such as Microsoft, which enables a user to control and interact with the input device Motion sensor, microsoft->360 game controller, a device providing an interface for receiving input using gestures and spoken commands. The user interface input device may also include an eye gesture recognition device, such as detecting eye activity from the userFor example, "blink" when photographing and/or making a menu selection) and transforming the eye pose to an input device (e.g., google +.>) Google->A blink detector. In addition, the user interface input device may include a voice recognition system (e.g., +.>Navigator) interactive voice recognition sensing device.
Other examples of user interface input devices include, but are not limited to, three-dimensional (3D) mice, joysticks or sticks, game pads and graphic boards, and audio/visual devices (such as speakers, digital cameras, digital video cameras, portable media players, webcams, image scanners, fingerprint scanners, bar code reader 3D scanners, 3D printers, laser rangefinders, and eye gaze tracking devices). In addition, the user interface input device may include, for example, medical imaging input devices such as computed tomography, magnetic resonance imaging, positron emission tomography, and medical ultrasound examination devices. The user interface input device may also include, for example, an audio input device such as a MIDI keyboard, digital musical instrument, or the like.
In general, the term output device is intended to include all possible types of devices and mechanisms for outputting information from computer system 800 to a user or other computers. The user interface output device may include a display subsystem, an indicator light, or a non-visual display such as an audio output device. The display subsystem may be a Cathode Ray Tube (CRT), a flat panel device (such as a flat panel device using a Liquid Crystal Display (LCD) or a plasma display), a projection device, a touch screen, or the like. For example, the user interface output devices may include, but are not limited to, various display devices that visually convey text, graphics, and audio/video information, such as monitors, printers, speakers, headphones, car navigation systems, plotters, voice output devices, and modems.
Storage subsystem 818 provides a repository or data store for storing information and data used by computer system 800. The storage subsystem 818 provides a tangible, non-transitory computer-readable storage medium for storing basic programming and data constructs that provide the functionality of some examples. The storage subsystem 818 may store software (e.g., programs, code modules, instructions) that when executed by the processing subsystem 804 provide the functionality described above. The software may be executed by one or more processing units of the processing subsystem 804. The storage subsystem 818 may also provide authentication in accordance with the teachings of the present disclosure.
The storage subsystem 818 may include one or more non-transitory memory devices including volatile memory devices and non-volatile memory devices. As shown in FIG. 8, the storage subsystem 818 includes a system memory 810 and a computer-readable storage medium 822. The system memory 810 may include a plurality of memories including a volatile main Random Access Memory (RAM) for storing instructions and data during program execution and a non-volatile Read Only Memory (ROM) or flash memory having fixed instructions stored therein. In some embodiments, a basic input/output system (BIOS), containing the basic routines that help to transfer information between elements within computer system 800, such as during start-up, may be stored in ROM. RAM typically contains data and/or program modules that are currently being operated on and executed by processing subsystem 804. In some implementations, the system memory 810 may include a variety of different types of memory, such as Static Random Access Memory (SRAM), dynamic Random Access Memory (DRAM), and the like.
By way of example, and not limitation, as depicted in fig. 8, system memory 810 may load executing applications 812 (which may include various applications such as Web browsers, middle tier applications, relational database management systems (RDBMS), etc.), program data 814, and operating system 816. By way of example, operating system 816 may include various versions of M icrosoft、Apple/>And/or Linux operating system, various commercially available +.>Or UNIX-like operating systems (including but not limited to various GNU/Linux operating systems, googleOS, etc.) and/or e.g. iOS,/-or->Telephone set>OS、/>OS、/>An OS operating system, and the like.
The computer readable storage medium 822 may store programming and data constructs that provide the functionality of some examples. Computer-readable media 822 may provide storage of computer-readable instructions, data structures, program modules, and other data for computer system 800. Software (programs, code modules, instructions) that when executed by the processing subsystem 804 provide the functionality described above may be stored in the storage subsystem 818. By way of example, computer-readable storage media 822 may comprise, for example, a hard disk drive, a magnetic disk drive, an optical disk drive (e.g., CD ROM, DVD, blu-ray-Disk or other optical medium), and the like. The computer-readable storage medium 822 may include, but is not limited to +>Drives, flash memory cards, universal Serial Bus (USB) flash memory drives, secure Digital (SD) cards, DVD discs, digital video tapes, and the like. The computer-readable storage medium 822 may also include non-volatile memory based Solid State Drives (SSDs) (e.g., flash memory based SSDs, enterprise level flash memory drives, solid state ROMs, etc.), volatile memory based SSDs such as solid state RAM, dynamic RAM, static RAM, etc., DRAM based SSDs, magnetoresistive RAM (MRAM) SSDs, and hybrid SSDs that use a combination of DRAM and flash memory based SSDs.
In certain examples, the storage subsystem 818 may also include a computer-readable storage media reader 820 that may be further connected to a computer-readable storage media 822. The reader 820 may receive data from a memory device, such as a disk, flash drive, or the like, and be configured to read data from the memory device.
In some examples, computer system 800 may support virtualization techniques including, but not limited to, virtualization of processing and memory resources. For example, computer system 800 may provide support for executing one or more virtual machines. In some examples, computer system 800 may execute programs such as a hypervisor that facilitates the configuration and management of virtual machines. Each virtual machine may be allocated memory, computing (e.g., processor, core), I/O, and networking resources. Each virtual machine typically runs independently of the other virtual machines. A virtual machine typically runs its own operating system, which may be the same as or different from the operating systems executed by other virtual machines executed by computer system 800. Thus, multiple operating systems may potentially be run simultaneously by computer system 800.
Communication subsystem 824 provides an interface to other computer systems and networks. The communications subsystem 824 serves as an interface for receiving data from and transmitting data to other systems from the computer system 800. For example, the communications subsystem 824 may enable the computer system 800 to establish a communications channel to one or more client devices via the Internet for receiving information from and transmitting information to the client devices. For example, when computer system 800 is used to implement robotic system 120 depicted in fig. 1, the communication subsystem may be used to communicate with a chat robotic system selected for an application.
The communications subsystem 824 may support both wired and/or wireless communications protocols. In some examples, the communication subsystem 824 may include a Radio Frequency (RF) transceiver component for accessing wireless voice and/or data networks (e.g., using cellular telephone technology, advanced data network technology such as 3G, 4G, or EDGE (enhanced data rates for global evolution), wiFi (IEEE 802.Xx family standards), or other mobile communication technologies, or any combination thereof), a Global Positioning System (GPS) receiver component, and/or other components. In some examples, communication subsystem 824 may provide wired network connectivity (e.g., ethernet) in addition to or in lieu of a wireless interface.
The communications subsystem 824 may receive and transmit various forms of data. In some examples, the communication subsystem 824 may receive input communications in the form of structured and/or unstructured data feeds 826, event streams 828, event updates 830, and the like, among other forms. For example, the communication subsystem 824 may be configured to receive (or transmit) data feeds 826 in real-time from users of social media networks and/or other communication services, such asFeed, & lt & gt>Updates, web feeds (such as Rich Site Summary (RSS) feeds), and/or real-time updates from one or more third-party information sources.
In some examples, the communication subsystem 824 may be configured to receive data in the form of a continuous data stream, which may include an event stream 828 of real-time events (which may be substantially continuous or unbounded without explicit ending) and/or event updates 830. Examples of applications that generate continuous data may include, for example, sensor data applications, financial tickers, network performance measurement tools (e.g., network monitoring and traffic management applications), click stream analysis tools, automobile traffic monitoring, and the like.
The communications subsystem 824 may also be configured to transfer data from the computer system 800 to other computer systems or networks. The data can be transferred in a variety of different forms such as structured and/or unstructured data feeds 826, event streams 828, event updates 830, and the like to one or more databases that can be in communication with one or more streaming data source computers coupled to the computer system 800.
The computer system 800 may be one of various types, including a handheld portable device (e.g.,cellular phone, & lt & gt>Computing tablet, PDA), wearable device (e.g., google +.>Head mounted display), personal computer, workstation, mainframe, self-service terminal, server rack, or any other data processing system. Due to the ever-changing nature of computers and networks, the description of computer system 800 depicted in FIG. 8 is intended only as a specific example. Many other configurations are possible with more or fewer components than the system depicted in fig. 8. Based on the present disclosure and the teachings provided herein, it should be appreciated that there are other ways and/or methods to implement the various examples.
While specific examples have been described, various modifications, alterations, alternative constructions, and equivalents are possible. Examples are not limited to operation within certain specific data processing environments, but are free to operate within multiple data processing environments. In addition, while certain examples have been described using a particular series of transactions and steps, it should be apparent to those skilled in the art that this is not intended to be limiting. Although some flow diagrams describe operations as sequential processes, many of the operations can be performed in parallel or concurrently. In addition, the order of operations may be rearranged. The process may have additional steps not included in the figures. The various features and aspects of the examples described above may be used singly or in combination.
Further, while certain examples have been described using specific combinations of hardware and software, it should be appreciated that other combinations of hardware and software are also possible. Some examples may be implemented in hardware only or in software only or using a combination thereof. The various processes described herein may be implemented on the same processor or on different processors in any combination.
Where a device, system, component, or module is described as being configured to perform a certain operation or function, such configuration may be accomplished, for example, by designing the electronic circuitry to perform the operation, by programming programmable electronic circuitry (e.g., a microprocessor) to perform the operation (e.g., by executing computer instructions or code), or by a processor or core or any combination thereof programmed to execute code or instructions stored on a non-transitory memory medium. The processes may communicate using various techniques, including but not limited to conventional techniques for inter-process communication, and different pairs of processes may use different techniques, or the same pair of processes may use different techniques at different times.
Specific details are set forth in the present disclosure to provide a thorough understanding of the examples. However, examples may be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been shown without unnecessary detail in order to avoid obscuring the examples. This description provides exemplary examples only and is not intended to limit the scope, applicability, or configuration of other examples. Rather, the foregoing description of the examples will provide those skilled in the art with an enabling description for implementing the various examples. Various changes may be made in the function and arrangement of elements.
The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. It will, however, be evident that additions, subtractions, deletions, and other modifications and changes may be made thereto without departing from the broader spirit and scope as set forth in the claims. Thus, while specific examples have been described, these examples are not intended to be limiting. Various modifications and equivalents are intended to be within the scope of the claims appended hereto.
In the foregoing specification, aspects of the present disclosure have been described with reference to specific examples thereof, but those skilled in the art will recognize that the present disclosure is not limited thereto. The various features and aspects of the disclosure described above may be used singly or in combination. Further, examples may be utilized in any number of environments and application environments other than those described herein without departing from the broader spirit and scope of the specification. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
In the foregoing description, for purposes of explanation, the methods were described in a particular order. It should be appreciated that in alternative examples, the methods may be performed in an order different than that described. It will also be appreciated that the methods described above may be performed by hardware components or may be embodied in sequences of machine-executable instructions, which may be used to cause a machine (e.g., general-purpose or special-purpose processors or logic circuits programmed with the instructions) to perform the methods. These machine-executable instructions may be stored on one or more machine-readable media (e.g., CD-ROM or other type of optical disk, floppy disk, ROM, RAM, EPROM, EEPROM, magnetic or optical card, flash memory, or other type of machine-readable media suitable for storing electronic instructions). Alternatively, the method may be performed by a combination of hardware and software.
Where a component is described as being configured to perform a certain operation, such configuration may be accomplished, for example, by designing electronic circuitry or other hardware for performing the operation, by programming programmable electronic circuitry (e.g., a microprocessor or other suitable electronic circuitry) for performing the operation, or any combination thereof.
Although illustrative examples of the application have been described in detail herein, it is to be understood that the inventive concepts may be otherwise variously embodied and employed and that the appended claims are intended to be construed to include such variations, except insofar as limited by the prior art.

Claims (20)

1. A method, comprising:
receiving, at a data processing system, a set of training utterances for training a machine learning model to recognize one or more intentions of one or more utterances;
augmenting, by the data processing system, the training utterance set with an out-of-domain (OOD) example, wherein the augmenting comprises:
identify keywords within the utterances in the training set of utterances,
generates an OOD example set with the identified keywords,
filtering out from the OOD example set OOD examples having a context substantially similar to a context of the utterances in the training set of utterances, and
Incorporating the OOD example set without filtered OOD examples into the training speech set to generate an augmented training speech set; and
the machine learning model is trained by the data processing system using the extended set of training utterances.
2. The method of claim 1, further comprising normalizing the training utterance set and/or the OOD example set, wherein the normalizing comprises: (i) filtering out deactivated words identified as recognized keywords, (ii) categorizing all words in the training set of utterances by inflections, (iii) categorizing all words in the OOD example set with recognized keywords by inflections, or (iv) any combination thereof.
3. The method of claim 1 or claim 2, wherein the keywords are identified using word frequency-inverse document frequency (TF-IDF), word frequency, tag name, interpretive tool, or any combination thereof.
4. The method of any preceding claim, wherein the set of OOD examples is generated using a database, a lexical database, a text generation model, a resistance attack model, or any combination thereof.
5. The method of any preceding claim, wherein a substantial similarity between the context of an OOD example and the context of the utterance in the training set of utterances is determined based on a distance measurement to avoid conflicts between classifications.
6. The method of any preceding claim, further comprising deploying the trained machine learning model in a chat robotic system.
7. A method as claimed in any preceding claim, wherein the keywords are words that are likely to become associated with certain ground truth intents through training of the machine learning model.
8. A system, comprising:
one or more processors; and
a memory coupled to the one or more processors, the memory storing a plurality of instructions executable by the one or more processors, the plurality of instructions comprising instructions that when executed by the one or more processors cause the one or more processors to:
receiving a training speech set for training a machine learning model to recognize one or more intentions of one or more utterances;
augmenting the training speech set with an out-of-domain (OOD) example, wherein the augmenting comprises:
Identify keywords within the utterances in the training set of utterances,
generates an OOD example set with the identified keywords,
filtering out from the OOD example set OOD examples having a context substantially similar to a context of the utterances in the training set of utterances, and
incorporating the OOD example set without filtered OOD examples into the training speech set to generate an augmented training speech set; and
the machine learning model is trained using the extended set of training utterances.
9. The system of claim 8, wherein the operations further comprise normalizing the training utterance set and/or the OOD example set, wherein the normalizing comprises: (i) filtering out deactivated words identified as recognized keywords, (ii) categorizing all words in the training set of utterances by inflections, (iii) categorizing all words in the OOD example set with recognized keywords by inflections, or (iv) any combination thereof.
10. The system of claim 8 or claim 9, wherein the keywords are identified using word frequency-inverse document frequency (TF-IDF), word frequency, tag name, interpretive tool, or any combination thereof.
11. The system of any of claims 8 to 10, wherein the set of OOD examples is generated using a database, a lexical database, a text generation model, a resistance attack model, or any combination thereof.
12. The system of any of claims 8 to 11, wherein a substantial similarity between the context of an OOD example and the context of the utterances in the training set of utterances is determined based on a distance measurement to avoid conflicts between classifications.
13. The system of any one of claims 8 to 12, wherein the operations further comprise deploying the trained machine learning model in a chat robotic system.
14. The system of any of claims 8 to 13, wherein the keywords are words that are likely to become associated with certain ground truth intents through training of the machine learning model.
15. A non-transitory computer-readable memory storing a plurality of instructions executable by one or more processors, the plurality of instructions comprising instructions that when executed by the one or more processors cause the one or more processors to:
Receiving a training speech set for training a machine learning model to recognize one or more intentions of one or more utterances;
augmenting the training speech set with an out-of-domain (OOD) example, wherein the augmenting comprises:
identify keywords within the utterances in the training set of utterances,
generates an OOD example set with the identified keywords,
filtering out from the OOD example set OOD examples having a context substantially similar to a context of the utterances in the training set of utterances, and
incorporating the OOD example set without filtered OOD examples into the training speech set to generate an augmented training speech set; and
the machine learning model is trained using the extended set of training utterances.
16. The non-transitory computer-readable memory of claim 15, wherein the operations further comprise normalizing the training utterance set and/or the OOD example set, wherein the normalizing comprises: (i) filtering out deactivated words identified as recognized keywords, (ii) categorizing all words in the training set of utterances by inflections, (iii) categorizing all words in the OOD example set with recognized keywords by inflections, or (iv) any combination thereof.
17. The non-transitory computer-readable memory of claim 15 or claim 16, wherein the keywords are identified using word frequency-inverse document frequency (TF-IDF), word frequency, tag name, interpretability tool, or any combination thereof.
18. The non-transitory computer readable memory of any one of claims 15 to 17, wherein the set of OOD examples is generated using a database, a lexical database, a text generation model, a resistance attack model, or any combination thereof.
19. The non-transitory computer readable memory of any of claims 15-18, wherein a substantial similarity between the context of an OOD example and the context of the utterance in the training set of utterances is determined based on a distance measurement to avoid conflicts between classifications.
20. The non-transitory computer readable memory of any one of claims 15 to 19, wherein the operations further comprise deploying the trained machine learning model in a chat robotic system.
CN202180079816.6A 2020-11-30 2021-11-29 Keyword data augmentation tool for natural language processing Pending CN116615727A (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063119540P 2020-11-30 2020-11-30
US63/119,540 2020-11-30
US17/452,742 US20220171930A1 (en) 2020-11-30 2021-10-28 Keyword data augmentation tool for natural language processing
US17/452,742 2021-10-28
PCT/US2021/060953 WO2022115675A1 (en) 2020-11-30 2021-11-29 Keyword data augmentation tool for natural language processing

Publications (1)

Publication Number Publication Date
CN116615727A true CN116615727A (en) 2023-08-18

Family

ID=81752574

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180079816.6A Pending CN116615727A (en) 2020-11-30 2021-11-29 Keyword data augmentation tool for natural language processing

Country Status (5)

Country Link
US (1) US20220171930A1 (en)
EP (1) EP4252141A1 (en)
JP (1) JP2023551322A (en)
CN (1) CN116615727A (en)
WO (1) WO2022115675A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116635863A (en) * 2020-12-22 2023-08-22 利维帕尔森有限公司 Conversational robot assessment and enhancement using meaningful auto-connect scores
US11729121B2 (en) * 2021-04-29 2023-08-15 Bank Of America Corporation Executing a network of chatbots using a combination approach
US20230419127A1 (en) * 2022-06-22 2023-12-28 Oracle International Corporation Techniques for negative entity aware augmentation

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10498898B2 (en) * 2017-12-13 2019-12-03 Genesys Telecommunications Laboratories, Inc. Systems and methods for chatbot generation
US10713441B2 (en) * 2018-03-23 2020-07-14 Servicenow, Inc. Hybrid learning system for natural language intent extraction from a dialog utterance
US10748526B2 (en) * 2018-08-28 2020-08-18 Accenture Global Solutions Limited Automated data cartridge for conversational AI bots
US20200257856A1 (en) * 2019-02-07 2020-08-13 Clinc, Inc. Systems and methods for machine learning based multi intent segmentation and classification
US11562297B2 (en) * 2020-01-17 2023-01-24 Apple Inc. Automated input-data monitoring to dynamically adapt machine-learning techniques
US11216619B2 (en) * 2020-04-28 2022-01-04 International Business Machines Corporation Feature reweighting in text classifier generation using unlabeled data

Also Published As

Publication number Publication date
WO2022115675A1 (en) 2022-06-02
JP2023551322A (en) 2023-12-07
US20220171930A1 (en) 2022-06-02
EP4252141A1 (en) 2023-10-04

Similar Documents

Publication Publication Date Title
US11763092B2 (en) Techniques for out-of-domain (OOD) detection
US11195532B2 (en) Handling multiple intents in utterances
US11651768B2 (en) Stop word data augmentation for natural language processing
US11868727B2 (en) Context tag integration with named entity recognition models
US11538457B2 (en) Noise data augmentation for natural language processing
CN112487157A (en) Template-based intent classification for chat robots
US20220171938A1 (en) Out-of-domain data augmentation for natural language processing
US20220171930A1 (en) Keyword data augmentation tool for natural language processing
CN116583837A (en) Distance-based LOGIT values for natural language processing
US20230100508A1 (en) Fusion of word embeddings and word scores for text classification
US20230205999A1 (en) Gazetteer integration for neural named entity recognition
CN116547676A (en) Enhanced logic for natural language processing
US20230376700A1 (en) Training data generation to facilitate fine-tuning embedding models
US20230153688A1 (en) Data augmentation and batch balancing methods to enhance negation and fairness
US20220229991A1 (en) Multi-feature balancing for natural language processors
US20240062112A1 (en) Adaptive training data augmentation to facilitate training named entity recognition models
US20230325599A1 (en) Training data augmentation using gazetteers and perturbations to facilitate training named entity recognition models
US20230153687A1 (en) Named entity bias detection and mitigation techniques for sentence sentiment analysis

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination