Dynamic intent classification based on environment variables

Information

  • Patent Grant
  • 11847423
  • Patent Number
    11,847,423
  • Date Filed
    Tuesday, December 27, 2022
    2 years ago
  • Date Issued
    Tuesday, December 19, 2023
    a year ago
  • CPC
    • G06F40/35
    • G06F18/214
    • G06F18/24323
    • G06F18/24765
    • G06F40/253
    • G06F40/55
  • Field of Search
    • CPC
    • G06F40/35
    • G06F18/214
    • G06F18/24323
    • G06F18/24765
    • G06F40/253
    • G06F40/55
  • International Classifications
    • G06F40/35
    • G06F40/253
    • G06F40/55
    • G06F18/24
    • G06F18/214
    • G06F18/243
    • G06F17/00
Abstract
To prevent intent classifiers from potentially choosing intents that are ineligible for the current input due to policies, dynamic intent classification systems and methods are provided that dynamically control the possible set of intents using environment variables (also referred to as external variables). Associations between environment variables and ineligible intents, referred to as culling rules, are used.
Description
BACKGROUND

Intelligent Virtual Assistants (IVAs) and chatterbots can be implemented in a multitude of ways, but common to all is a component for natural language understanding (NLU), which is used for the translation of user inputs into a semantic representation. Regardless of the means in which the user is interacting with the IVA (keyboard, speech, gestures, etc.), the user input is first converted into text or a numerical feature representation and fed into the NLU component for analysis. The NLU component maps user inputs, or conversational turns, to a derived semantic representation commonly known as the user intention or simply intent. In the context of natural language processing, intent is defined as an interpretation of a statement or question that allows one to formulate the ‘best’ response to the statement.


The collection of syntax, semantics, and grammar rules that defines how input language maps to an intent within the NLU component is referred to as a language model. The NLU component may perform pre-processing steps such as part-of-speech tagging, stemming, and entity identification (such as proper names or dates) before feeding the text into the language model. Each of these parsers may be trained through machine learning methods or manually constructed by human experts.


There are two primary techniques to construct the language model. The first technique uses rules-based (e.g., human-curated) methods such as regular expressions or grammars to define the structure and content of language associated to a particular intent. By applying these patterns or grammars to the input text, the correct intent can be determined. The intent associated with the matching grammar or pattern is selected in cases where there is no ambiguity. If multiple patterns match, the correct intent may be selected by a scoring mechanism applied to all patterns that match or other means such as ontological methods.


The second technique to construct a language model is through statistical means. Text that is similar to the expected input text is labeled (e.g., by humans) to be associated with particular intentions. This labeled data is then used to train a model of the distribution of input text over the known intentions using various machine learning approaches. Common approaches include support vector machines, neural networks, and decision trees.


For either language model construction technique, the language model can be constructed as a tree, where general knowledge is understood at the root and specific intents at the leaves. For example, statistical models can be trained on language related to particular domains or tasks such as looking up the weather or ordering food. These specialized models can then be leaves under a higher-level model that chooses the domain or task or learned jointly into a single hierarchical model. These trees can be multiple levels deep depending on how many sub-domain layers are modeled.


Regardless of language model design, its purpose is that of selecting the most likely intention given the user input. In this way, it performs intent classification, where each intent known by the NLU component can be considered a class label.


Current practices are to create an intent classifier for a pre-defined set of intents. Regardless of the method used to construct such a classifier, once the classifier is trained, it is static in that it will always classify a user input into one of the known classes (intentions). As language models evolve and expand, this classification task becomes more difficult. When the set of known classes grows to the thousands, it becomes increasingly difficult for the NLU component to correctly select the intent. Additionally, business rules and regulations often require that specific user behaviors or features be mapped to pre-defined intents where they can be handled differently for regulatory compliance, threat handling, or transferred to human customer service agents. Thus, static intent classifiers are time-consuming and expensive.


For example, in the insurance domain, if a user asks an IVA a policy question, the NLU component must select between all known intents, even though that particular user may not be eligible or authorized to access content returned from a large subset of the known intents. This content filtering and access control is typically handled downstream of the NLU component, after the intent is selected. Suppose that of the 2,000 known intents within the language model, only 1,500 were actually eligible for the given user due to their purchased policies, location, or time of day. The NLU component must still consider and correctly eliminate 500 of the possible intents, which, if the language model consists of patterns to be applied, can greatly increase processing time. Regardless of the model type, this consideration between ineligible classes can decrease accuracy as small sets of exceptions may be either unrepresented or poorly represented in the language model training data, leading to false positives.


SUMMARY

To prevent intent classifiers from potentially choosing intents that are ineligible for the current input due to policies, dynamic intent classification systems and methods are provided that dynamically control the possible set of intents using environment variables (also referred to as external variables). Associations between environment variables and ineligible intents, referred to as culling rules, are used.


In an implementation, a dynamic intent classification system is provided. The system includes a database configured to store a plurality of culling rules based on environment variables; and a classifier configured to determine an intent based on a user input and the plurality of culling rules, and output the intent.


Implementations may include some or all of the following features. The database and the classifier are comprised within a computing device. The database and the classifier are comprised within a chatbot. The chatbot is configured to provide a processed language output based on the intent. The classifier is a rule-based classifier, a tree-based classifier, a grammar-based classifier, or a statistically-trained classifier. The environment variables comprise at least one of time of day or input channel. The classifier is dynamically alterable using the culling rules to generate a plurality of culled intents. The classifier comprises a language model, and wherein the classifier is configured to eliminate ineligible intents using the culling rules without retraining or redeployment of the language model.


In an implementation, a method of providing a response to input data using dynamic intent classification based on environment variables is provided. The method includes maintaining a plurality of culling rules based on a plurality of environment variables, at a natural language understanding (NLU) component; receiving an input data at the NLU component; determining an intent for the input data using the culling rules, at a classifier of the NLU component; and outputting the intent.


Implementations may include some or all of the following features. Providing a processed language output, by a chatbot, based on the intent. Receiving the plurality of environment variables at the NLU component, and determining the plurality of culling rules using the plurality of environment variables. Dynamically altering the classifier using the culling rules to generate a plurality of culled intents. The classifier comprises a language model, and further comprising configuring the classifier to eliminate ineligible intents using the culling rules without retraining or redeployment of the language model. Maintaining the plurality of culling rules in storage external to the classifier. The classifier is a rule-based classifier, a tree-based classifier, a grammar-based classifier, or a statistically-trained classifier. The plurality of environment variables comprise at least one of time of day or input channel.


In an implementation, a method is provided. The method includes receiving a plurality of culling rules at a classifier, wherein the plurality of culling rules are based on a plurality of environment variables; and dynamically altering the classifier using the plurality of culling rules.


Implementations may include some or all of the following features. Maintaining the plurality of culling rules in storage external to the classifier. The classifier is a rule-based classifier, a tree-based classifier, a grammar-based classifier, or a statistically-trained classifier. The classifier comprises a language model, and further comprising configuring the classifier to eliminate ineligible intents using the culling rules without retraining or redeployment of the language model.


This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.





BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing summary, as well as the following detailed description of illustrative embodiments, is better understood when read in conjunction with the appended drawings. For the purpose of illustrating the embodiments, there is shown in the drawings example constructions of the embodiments; however, the embodiments are not limited to the specific methods and instrumentalities disclosed. In the drawings:



FIG. 1 is an illustration of an exemplary environment for dynamic intent classification based on environment variables;



FIG. 2 is an operational flow of an implementation of a method for providing a response to input data using dynamic intent classification based on environment variables;



FIG. 3 is an operational flow of an implementation of a rules-based method for providing a response to input data using dynamic intent classification based on environment variables;



FIG. 4 is an operational flow of an implementation of a tree-based method for providing a response to input data using dynamic intent classification based on environment variables;



FIG. 5 is an operational flow of an implementation of a grammar-based method for providing a response to input data using dynamic intent classification based on environment variables;



FIG. 6 is an operational flow of an implementation of a statistical-based method for providing a response to input data using dynamic intent classification based on environment variables; and



FIG. 7 shows an exemplary computing environment in which example embodiments and aspects may be implemented.





DETAILED DESCRIPTION


FIG. 1 is an illustration of an exemplary environment 100 for dynamic intent classification based on environment variables. The environment 100 may include a chatbot 170 and a client device 180 in communication through a network 105. The network 105 may be a variety of network types including the public switched telephone network (PSTN), a cellular telephone network, and a packet switched network (e.g., the Internet). Although only one chatbot 170 and one client device 180 are shown in FIG. 1, there is no limit to the number of chatbots and client devices that may be supported.


The chatbot 170 and the client device 180 may each be implemented using a variety of computing devices such as smartphones, desktop computers, laptop computers, tablets, set top boxes, vehicle navigation systems, and video game consoles. Other types of computing devices may be supported. A suitable computing device is illustrated in FIG. 7 as the computing device 700.


The chatbot 170 is in communication with the client device 180 and is capable of conducting a conversation with a user through the client device 180. The chatbot 170 may comprise a computer program or artificial intelligence application that conducts a conversation with the client device 180 via textual methods, in an implementation. Alternatively or additionally, the chatbot 170 may conduct a conversation with the client device via auditory methods. Depending on the implementation, the chatbot 170 may be accessed via a virtual assistant 172, a messaging app 174, or by other apps or websites.


The chatbot 170 comprises a natural language understanding (NLU) component 110. The NLU component 110 comprises a classifier 126 that determines and provides an intent 129. As described further herein, the classifier 126 outputs the intent 129. The NLU component 110 further comprises a pre-processor 123 that receives and pre-processes the user input 183 and provides it output to the classifier 126. Culling rules 121, based on or associated with environment variables 122, are also provided to the classifier 126. The environment variables 122, and/or the culling rules 121, may be stored in a database or other memory or storage. The database or other memory or storage is external to the classifier 126, and is accessed by the classifier 126 at runtime. In an implementation, the classifier may be trained by a trainer 125. The trainer 125 may receive and compile prior knowledge and performance information and train the classifier 126 accordingly.


The user input 183, such as chat data, from the client device 180 is provided to the NLU component 110. While chatbots encourage conversational interaction, the user input 183 may also comprise inputs that are keyword searches or non-conversational. Depending on the implementation, the user input 183 may be provided directly from the client device 180 (e.g., via the network 105) or from the chatbot 170 (e.g., via the network 105). The NLU component 110 processes the user input 183 and outputs processed language output 186 using the intent 129. The intent 129 is the user intention which is then used to determine how to respond to that intention. In an implementation, the processed language output 186 may comprise the input's action, object, actor, indirect object, and/or their respective modifying details.


In some implementations, the chatbot 170 comprises a training module 115. The training module 115 may comprise training data 117 and may be used to train the pre-processor 123. The training data 117 may be based on human to virtual assistant chat data. In an implementation, user inputs are captured from a commercial virtual agent chatbot and used for generating the training data 117. This data is typically short inputs ranging from two to 22 words with an average of 8.5 words. These inputs range between keyword searches and more conversational questions. The training data 117 may be weighted toward imperatives, statives, and interrogatives. In an implementation, the training data 117 is hand tagged.


The pre-processor 123 receives and processes the user input data 183 and provides its output to the classifier 126. The classifier 126 considers the output of the pre-processor in conjunction with the culling rules 121, and determines an intent 129 to return (i.e., to output as the intent 129).


The classifier 126 is a dynamic intent classifier, as the culling rules 121 comprises associations between the environment variables 122 and ineligible intents. The classifier uses the culling rules 121 to dynamically control the possible set of intents. In this manner, the classifier 126 is prevented from potentially choosing intents that are ineligible for the current input due to policies, for example.



FIG. 2 is an operational flow of an implementation of a method 200 for providing a response to input data using dynamic intent classification based on environment variables. The method 200 may be implemented using the chatbot 170 in conjunction with the environment 100, in some implementations.


At 210, environment variables 122 are received or otherwise maintained by a natural language understanding (NLU) component, such as the NLU component 110 of the chatbot 170. The environment variables 122 may be stored in storage, such as a memory device or database for example.


At 220, culling rules 121 are generated using the environment variables 122.


At 230, input data, such as the user input 183, is received and sent to the classifier 126. In some implementations, the input data is pre-processed by the pre-processor 123 prior to sending to the classifier 126.


At 240, the intent 129 of the input data is determined by the classifier 126 in conjunction with the culling rules 121.


At 250, the chatbot 170 may generate a response to the input data based on the determined intent 129 and output the response as processed language output 186.


For example, with respect to Example 1, the following culling rules could be used to prevent intents (represented by capital letters) relating to specific retirement plans from being considered based on the current user's ownership of a particular plan. Such a scenario is an example of business logic being leveraged to improve the classification accuracy.


Example 1





    • :has 401k(current user):—A, B, H

    • :has 403b(current user):—C, D, H (i.e., remove C, D, H from possible intents).

    • :has RothIRA(current user):—E, F, G, H, I





Given these culling rules, if a user were to ask an IVA for a financial company a question about a retirement plan policy, intents known to the classifier 126 that do not apply to retirement plans owned by that user will not even be considered. This can increase classification accuracy by reducing the set of intents to be considered from. It may also speed classification time if the language model is implemented in a rules-based method that requires running all rules against the input and ranking the matches.


In Example 2, the environmental knowledge of which channel the user is talking to the IVA on is used to remove any intents that do not apply to that channel from the language model:


Example 2





    • :is Web(channel):—A, B

    • :is Voice(channel):— . . .

    • :is SMS(channel):— . . .





In Example 2, note that some intents are not possible when talking to the IVA over the telephone or texting. In a banking IVA, intent A may be to open a new checking account, which is also not available over texting due to regulatory requirements of identity verification. Similarly, intent B may represent closing an account. Both of those actions are available when talking to the IVA on the company website however, and by removing them from the language model when they are not possible, misunderstandings related to account management when talking to the IVA over telephone or by text can be prevented. Thus, the knowledge of the current user environment is used to reduce the possible intents for the classifier 126 to choose between and lower possible confusion, per user input.


The embodiments disclosed and contemplated herein use a set of culling rules 121 (example of which are given in Examples 1 and 2), to dynamically modify the output of the classifier 126 itself (not invalidate the intent after it has been output by the classifier 126). This set of culling rules 121 can be modified at any time and will take effect immediately without requiring any model retraining or determination of alternative intents. The application of such culling rules 121 is dependent on the classification method used, and different approaches are described herein.


Some embodiments use intent disablement for rules-based intent classifiers. For rule-based approaches, whether manually constructed or empirically machine-learned, it is desirable to modify the model in the classifier 126 itself in order to realize performance gains in addition to increase the accuracy. Any pattern is removed that only applies to the intents that are to be culled. So those intents cannot be obtained by the classifier 126. In other words, it will be impossible for the classifier 126 to get to certain intents, because no pattern exists that will allow the classifier 126 to get to those certain intents.



FIG. 3 is an operational flow of an implementation of a rule-based method 300 for providing a response to input data using dynamic intent classification based on environment variables. The method 300 may be implemented using the chatbot 170 in conjunction with the environment 100, in some implementations.


At 310, similar to 210, environment variables 122 are received or otherwise maintained by an NLU component, such as the NLU component 110 of the chatbot 170. The environment variables 122 may be stored in storage, such as a memory device or database for example. At 320, similar to 220, culling rules 121 are generated using the environment variables 122.


At 330, the classifier 126, which in this embodiment is a rule-based classifier, is itself modified using the environment variables 122.


At 340, input data, such as the user input 183, is received and sent to the classifier 126. In some implementations, the input data is pre-processed by the pre-processor 123 prior to sending to the classifier 126.


At 350, the intent 129 of the input data is determined by the classifier 126, which has been modified using the environment variables, in conjunction with the culling rules 121.


At 360, the chatbot 170 may generate a response to the input data based on the determined intent 129 and output the response as processed language output 186.


For tree-based methods that include decision trees, for example, perform a bottom-up pruning of the tree to remove all nodes and edges that lead to a culled intent. FIG. 4 is an operational flow of an implementation of a tree-based method 400 for providing a response to input data using dynamic intent classification based on environment variables. The method 400 may be implemented using the chatbot 170 in conjunction with the environment 100, in some implementations.


At 410, input data, such as the user input 183, is received and sent to the classifier 126. In some implementations, the input data is pre-processed by the pre-processor 123 prior to sending to the classifier 126.


At 420, environment variables 122 are received or otherwise maintained by an NLU component, such as the NLU component 110 of the chatbot 170. The environment variables 122 may be stored in storage, such as a memory device or database for example.


At 430, culling rules 121 are generated using the environment variables 122.


At 440, the classifier 126, which is a tree-based classifier in this implementation, is modified using the environment variables. The modification may be performed by bottom-up pruning of the tree to remove all nodes and edges that lead to a culled intent.


At 450, the intent 129 of the input data is determined by the classifier 126 in conjunction with the culling rules 121.


At 460, the chatbot 170 may generate a response to the input data based on the determined intent 129 and output the response as processed language output 186.


At 470, the tree is restored to its original unmodified form. In this manner, the modification performed at 440 is removed.


As an example, using the culling set from Example 1, if the current user conversing with the financial IVA does not have a Roth IRA or 403B account, the leaf nodes representing the intentions C, D, E, F, G, H, and I would be pruned from the tree, and the edges and nodes leading to them would be recursively removed until the remaining decision tree had no knowledge of the culled intentions. On the next user input, the original tree is restored and the culling would be applied again based on whatever subset of culling rules corresponded to that input.


For grammar-based methods, the process is similar, with the difference being all grammars associated with the culled set of intentions would be removed. Any dependent grammars on the culled set would also be removed until the remaining grammars were only used for determining intentions other than the culled set. FIG. 5 is an operational flow of an implementation of a grammar-based method 500 for providing a response to input data using dynamic intent classification based on environment variables. The method 500 may be implemented using the chatbot 170 in conjunction with the environment 100, in some implementations.


At 510, input data, such as the user input 183, is received and sent to the classifier 126. In some implementations, the input data is pre-processed by the pre-processor 123 prior to sending to the classifier 126.


At 520, environment variables 122 are received or otherwise maintained by an NLU component, such as the NLU component 110 of the chatbot 170. The environment variables 122 may be stored in storage, such as a memory device or database for example.


At 530, culling rules 121 are generated using the environment variables 122.


At 540, the classifier 126, which is a grammar-based classifier in this implementation, is modified using the environment variables. The modification may be performed by removing grammars associated with a culled set of intentions.


At 550, the intent 129 of the input data is determined by the classifier 126 in conjunction with the culling rules 121.


At 560, the chatbot 170 may generate a response to the input data based on the determined intent 129 and output the response as processed language output 186.


At 570, the original grammar rules of the classifier are restored to the original unmodified form. In this manner, the modification performed at 540 is removed.


Thus, the language model is dynamically tailored to the business rules, regulations, or environmental variables applicable to each individual user input. Any change to the culling rules 121 have immediate effect, and no external language model refinement is needed.


Some embodiments use intent disablement for statistical intent classifiers. With statistically-trained language models such as support vector machines or neural networks, the language model cannot be dynamically altered without compromising the models performance on the remaining intentions. In addition, the classification time of such models is typically not significantly slowed by the inclusion of more classes. Therefore, focus on eliminating culled intentions from the output distribution of the model. In this way, it is guaranteed that no culled intentions are returned by the model.



FIG. 6 is an operational flow of an implementation of a statistical-based method for providing a response to input data using dynamic intent classification based on environment variables. The method 600 may be implemented using the chatbot 170 in conjunction with the environment 100, in some implementations.


At 610, environment variables 122 are received or otherwise maintained by an NLU component, such as the NLU component 110 of the chatbot 170. The environment variables 122 may be stored in storage, such as a memory device or database for example.


At 620, culling rules 121 are generated using the environment variables 122.


At 630, input data, such as the user input 183, is received and sent to the classifier 126, which in this implementation is a statistical-trained classifier. In some implementations, the input data is pre-processed by the pre-processor 123 prior to sending to the classifier 126.


At 640, the intent 129 of the input data is determined by the classifier 126 in conjunction with the culling rules 121, by eliminating culled intentions from the output distribution of the classifier 126. In an implementation, to perform the culling, apply a masking layer over the output distribution from a statistical model. This layer performs a bitwise AND operation between the intention scores and the culling mask values. This is very fast to compute and as any culled intentions will have a value of 0 in the bitmask, they will be eliminated from the model output as any value ANDed to 0 will return 0. The downstream components to the NLU component 110 will therefore never see any culled intention, and will select as the winning intent the highest scoring among the non-zero values.


At 650, the chatbot 170 may generate a response to the input data based on the determined intent 129 and output the response as processed language output 186.



FIG. 7 shows an exemplary computing environment in which example embodiments and aspects may be implemented. The computing device environment is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality.


Numerous other general purpose or special purpose computing devices environments or configurations may be used. Examples of well-known computing devices, environments, and/or configurations that may be suitable for use include, but are not limited to, personal computers, server computers, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, network personal computers (PCs), minicomputers, mainframe computers, embedded systems, distributed computing environments that include any of the above systems or devices, and the like.


Computer-executable instructions, such as program modules, being executed by a computer may be used. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Distributed computing environments may be used where tasks are performed by remote processing devices that are linked through a communications network or other data transmission medium. In a distributed computing environment, program modules and other data may be located in both local and remote computer storage media including memory storage devices.


With reference to FIG. 7, an exemplary system for implementing aspects described herein includes a computing device, such as computing device 700. In its most basic configuration, computing device 700 typically includes at least one processing unit 702 and memory 704. Depending on the exact configuration and type of computing device, memory 704 may be volatile (such as random access memory (RAM)), non-volatile (such as read-only memory (ROM), flash memory, etc.), or some combination of the two. This most basic configuration is illustrated in FIG. 7 by dashed line 706.


Computing device 700 may have additional features/functionality. For example, computing device 700 may include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape. Such additional storage is illustrated in FIG. 7 by removable storage 708 and non-removable storage 710.


Computing device 700 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by the device 700 and includes both volatile and non-volatile media, removable and non-removable media.


Computer storage media include volatile and non-volatile, and removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Memory 704, removable storage 708, and non-removable storage 710 are all examples of computer storage media. Computer storage media include, but are not limited to, RAM, ROM, electrically erasable program read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computing device 700. Any such computer storage media may be part of computing device 700.


Computing device 700 may contain communication connection(s) 712 that allow the device to communicate with other devices. Computing device 700 may also have input device(s) 714 such as a keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s) 716 such as a display, speakers, printer, etc. may also be included. All these devices are well known in the art and need not be discussed at length here.


It should be understood that the various techniques described herein may be implemented in connection with hardware components or software components or, where appropriate, with a combination of both. Illustrative types of hardware components that can be used include Field-programmable Gate Arrays (FPGAs), Application-specific Integrated Circuits (ASICs), Application-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), etc. The methods and apparatus of the presently disclosed subject matter, or certain aspects or portions thereof, may take the form of program code (i.e., instructions) embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other machine-readable storage medium where, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the presently disclosed subject matter.


In an implementation, a dynamic intent classification system is provided. The system includes a database configured to store a plurality of culling rules based on environment variables; and a classifier configured to determine an intent based on a user input and the plurality of culling rules, and output the intent.


Implementations may include some or all of the following features. The database and the classifier are comprised within a computing device. The database and the classifier are comprised within a chatbot. The chatbot is configured to provide a processed language output based on the intent. The classifier is a rule-based classifier, a tree-based classifier, a grammar-based classifier, or a statistically-trained classifier. The environment variables comprise at least one of time of day or input channel. The classifier is dynamically alterable using the culling rules to generate a plurality of culled intents. The classifier comprises a language model, and wherein the classifier is configured to eliminate ineligible intents using the culling rules without retraining or redeployment of the language model.


In an implementation, a method of providing a response to input data using dynamic intent classification based on environment variables is provided. The method includes maintaining a plurality of culling rules based on a plurality of environment variables, at a natural language understanding (NLU) component; receiving an input data at the NLU component; determining an intent for the input data using the culling rules, at a classifier of the NLU component; and outputting the intent.


Implementations may include some or all of the following features. Providing a processed language output, by a chatbot, based on the intent. Receiving the plurality of environment variables at the NLU component, and determining the plurality of culling rules using the plurality of environment variables. Dynamically altering the classifier using the culling rules to generate a plurality of culled intents. The classifier comprises a language model, and further comprising configuring the classifier to eliminate ineligible intents using the culling rules without retraining or redeployment of the language model. Maintaining the plurality of culling rules in storage external to the classifier. The classifier is a rule-based classifier, a tree-based classifier, a grammar-based classifier, or a statistically-trained classifier. The plurality of environment variables comprise at least one of time of day or input channel.


In an implementation, a method is provided. The method includes receiving a plurality of culling rules at a classifier, wherein the plurality of culling rules are based on a plurality of environment variables; and dynamically altering the classifier using the plurality of culling rules.


Implementations may include some or all of the following features. Maintaining the plurality of culling rules in storage external to the classifier. The classifier is a rule-based classifier, a tree-based classifier, a grammar-based classifier, or a statistically-trained classifier. The classifier comprises a language model, and further comprising configuring the classifier to eliminate ineligible intents using the culling rules without retraining or redeployment of the language model.


Although exemplary implementations may refer to utilizing aspects of the presently disclosed subject matter in the context of one or more stand-alone computer systems, the subject matter is not so limited, but rather may be implemented in connection with any computing environment, such as a network or distributed computing environment. Still further, aspects of the presently disclosed subject matter may be implemented in or across a plurality of processing chips or devices, and storage may similarly be effected across a plurality of devices. Such devices might include personal computers, network servers, and handheld devices, for example.


Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

Claims
  • 1. A computing device comprising: a processor; anda memory operably coupled to the processor, the memory having computer-executable instructions stored thereon that, when executed by the processor cause the computing device to:receive, at a natural language understanding (NLU) component, a user input;pre-process the user input to identify at least one environmental variable;provide the user input to a trained classifier of the NLU component;identify an intent subset by culling at least a portion of a plurality of stored intents based at least on the at least one environmental variable;determine, using the trained classifier, an intent associated with the user input from the intent subset; andoutput, by the NLU component and via a display of the computing device, a response to the user input based at least on the determined intent.
  • 2. The computing device of claim 1, wherein culling at least a portion of the plurality of stored intents comprises applying a masking layer over an output distribution of the trained classifier.
  • 3. The computing device of claim 1, wherein the computer-executable instructions are further configured to, when executed by the processor, cause the computing device to: modify the trained classifier based at least on the at least one environmental variable associated with the user input.
  • 4. The computing device of claim 3, wherein the trained classifier comprises a grammar-based model, and wherein modifying the trained classifier comprises removing grammar associated with a culled intent set.
  • 5. The computing device of claim 1, wherein the trained classifier comprises a tree-based model, and wherein culling at least a portion of the plurality of stored intents comprises removing at least one node or edge leading to at least one of the plurality of stored intents.
  • 6. The computing device of claim 1, wherein the computing device comprises a chatbot trained using chat data that is configured to output processed language outputs.
  • 7. The computing device of claim 1, wherein culling at least a portion of the plurality of stored intents based at least on the at least one environmental variable comprises: using a rules-based operation to rank the plurality of stored intents; andidentifying a predetermined top number of the plurality of stored intents as the intent subset.
  • 8. The computing device of claim 1, wherein the plurality of stored intents is stored in a database external to the computing device.
  • 9. A system comprising: a processor; anda memory operably coupled to the processor, the memory having computer-executable instructions stored thereon that, when executed by the processor cause the system to:receive, at a natural language understanding (NLU) component, a user input;pre-process the user input to identify at least one environmental variable;provide the user input to a trained classifier of the NLU component;identify an intent subset by culling at least a portion of a plurality of stored intents based at least on the at least one environmental variable;determine, using the trained classifier, an intent associated with the user input from the intent subset; andoutput, by the NLU component, a response to the user input based at least on the determined intent.
  • 10. The system of claim 9, wherein culling at least a portion of the plurality of stored intents comprises applying a masking layer over an output distribution of the trained classifier.
  • 11. The system of claim 9, wherein the computer-executable instructions are further configured to, when executed by the processor, cause the system to: modify the trained classifier based at least on the at least one environmental variable associated with the user input.
  • 12. The system of claim 11, wherein the trained classifier comprises a grammar-based model, and wherein modifying the trained classifier comprises removing grammar associated with a culled intent set.
  • 13. The system of claim 9, wherein the trained classifier comprises a tree-based model, and wherein culling at least a portion of the plurality of stored intents comprises removing at least one node or edge leading to at least one of the plurality of stored intents.
  • 14. The system of claim 9, further comprising: a chatbot trained using chat data that is configured to output processed language outputs as the response.
  • 15. The system of claim 9, wherein culling at least a portion of the plurality of stored intents based at least on the at least one environmental variable comprises: using a rules-based operation to rank the plurality of stored intents; andidentifying a predetermined top number of the plurality of stored intents as the intent subset.
  • 16. The system of claim 9, wherein the plurality of stored intents is stored in an external database.
  • 17. A method comprising: receiving, at a natural language understanding (NLU) component, a user input;pre-processing the user input to identify at least one environmental variable;providing the user input to a trained classifier of the NLU component;identifying an intent subset by culling at least a portion of a plurality of stored intents based at least on the at least one environmental variable;determining, using the trained classifier, an intent associated with the user input from the intent subset; andoutputting, by the NLU component, a response to the user input based at least on the determined intent.
  • 18. The method of claim 17, wherein culling at least a portion of the plurality of stored intents comprises applying a masking layer over an output distribution of the trained classifier.
  • 19. The method of claim 17, further comprising: modifying the trained classifier based at least on the at least one environmental variable associated with the user input.
  • 20. The method of claim 19, wherein the trained classifier comprises a grammar-based model, and wherein modifying the trained classifier comprises removing grammar associated with a culled intent set.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of priority to U.S. Provisional Patent Application No. 62/728,144, filed on Sep. 7, 2018, entitled “Dynamic Intent Classification Based on Environment Variables,” and U.S. Non-Provisional patent application Ser. No. 16/531,350, filed on Aug. 5, 2019, entitled “Dynamic Intent Classification Based on Environment Variables,” the contents of which are hereby incorporated by reference in their entirety.

US Referenced Citations (224)
Number Name Date Kind
4914590 Loatman et al. Apr 1990 A
5418948 Turtle May 1995 A
5535120 Chong et al. Jul 1996 A
5615112 Liu Sheng et al. Mar 1997 A
5677835 Carbonell et al. Oct 1997 A
5682539 Conrad et al. Oct 1997 A
5727174 Aparicio et al. Mar 1998 A
5794050 Dahlgren et al. Aug 1998 A
6012053 Pant et al. Jan 2000 A
6112177 Cosatto et al. Aug 2000 A
6144938 Surace et al. Nov 2000 A
6175829 Li et al. Jan 2001 B1
6282507 Horiguchi et al. Aug 2001 B1
6285978 Bernth et al. Sep 2001 B1
6353817 Jacobs et al. Mar 2002 B1
6388665 Linnett et al. May 2002 B1
6396951 Grefenstette May 2002 B1
6401061 Zieman Jun 2002 B1
6513063 Julia et al. Jan 2003 B1
6658627 Gallup et al. Dec 2003 B1
6661418 McMillan et al. Dec 2003 B1
6757362 Cooper et al. Jun 2004 B1
6826540 Plantec et al. Nov 2004 B1
6829603 Chai et al. Dec 2004 B1
6834120 LeClerc et al. Dec 2004 B1
6987514 Beresin et al. Jan 2006 B1
6999932 Zhou Feb 2006 B1
7058902 Iwema et al. Jun 2006 B2
7076430 Cosatto et al. Jul 2006 B1
7194483 Mohan et al. Mar 2007 B1
7263493 Provost et al. Aug 2007 B1
7337158 Fratkina et al. Feb 2008 B2
7426697 Holecek et al. Sep 2008 B2
7483829 Murakami et al. Jan 2009 B2
7536413 Mohan et al. May 2009 B1
7539656 Fratkina et al. May 2009 B2
7548899 Favero et al. Jun 2009 B1
7590224 Gorin et al. Sep 2009 B1
7599831 Ford Oct 2009 B2
7610382 Siegel Oct 2009 B1
7711547 Abir May 2010 B2
7797146 Harless et al. Sep 2010 B2
7818183 Schoenberg Oct 2010 B2
7912701 Gray et al. Mar 2011 B1
7970663 Ganz et al. Jun 2011 B2
8160979 Evans et al. Apr 2012 B1
8346563 Hjelm et al. Jan 2013 B1
8352266 Farmaner et al. Jan 2013 B2
8401842 Ginzburg et al. Mar 2013 B1
8433556 Fraser et al. Apr 2013 B2
8473420 Bohus Jun 2013 B2
8510276 Haiby et al. Aug 2013 B2
8519963 Kocienda et al. Aug 2013 B2
8670979 Gruber et al. Mar 2014 B2
8677377 Cheyer et al. Mar 2014 B2
8731929 Kennewick et al. May 2014 B2
8756326 Elberse et al. Jun 2014 B1
8762152 Bennett et al. Jun 2014 B2
8819003 Anick et al. Aug 2014 B2
8930191 Gruber et al. Jan 2015 B2
8942986 Cheyer et al. Jan 2015 B2
8943094 Brown et al. Jan 2015 B2
9117447 Gruber et al. Aug 2015 B2
9202171 Kuhn Dec 2015 B2
9501741 Cheyer et al. Nov 2016 B2
20010000356 Woods Apr 2001 A1
20010033298 Slotznick Oct 2001 A1
20010044751 Pugliese et al. Nov 2001 A1
20010049688 Fratkina et al. Dec 2001 A1
20010053968 Galitsky et al. Dec 2001 A1
20020008716 Colburn et al. Jan 2002 A1
20020032591 Mahaffy et al. Mar 2002 A1
20020123994 Schabes et al. Sep 2002 A1
20020129031 Lau et al. Sep 2002 A1
20020198885 Streepy Dec 2002 A1
20030004908 Linthicum et al. Jan 2003 A1
20030041307 Park Feb 2003 A1
20030061029 Shaket Mar 2003 A1
20030088547 Hammond May 2003 A1
20030126089 Fukuoka et al. Jul 2003 A1
20030126090 Fukuoka et al. Jul 2003 A1
20030142829 Avigni Jul 2003 A1
20030212544 Acero et al. Nov 2003 A1
20040107088 Budzinski Jun 2004 A1
20040141013 Alcazar et al. Jul 2004 A1
20040186705 Morgan et al. Sep 2004 A1
20050027694 Sauermann Feb 2005 A1
20050054381 Lee et al. Mar 2005 A1
20050120276 Kolawa et al. Jun 2005 A1
20060004826 Zartler et al. Jan 2006 A1
20060020466 Cousineau et al. Jan 2006 A1
20060036430 Hu Feb 2006 A1
20060037076 Roy Feb 2006 A1
20060047632 Zhang Mar 2006 A1
20060067352 John et al. Mar 2006 A1
20060074689 Cosatto et al. Apr 2006 A1
20060074831 Hyder et al. Apr 2006 A1
20060080107 Hill et al. Apr 2006 A1
20060092978 John et al. May 2006 A1
20060161414 Carignano et al. Jul 2006 A1
20060206483 Knepper et al. Sep 2006 A1
20060253427 Wu Nov 2006 A1
20070043687 Bodart et al. Feb 2007 A1
20070100790 Cheyer et al. May 2007 A1
20070106670 Yoakum et al. May 2007 A1
20070130112 Lin Jun 2007 A1
20070134631 Hardy et al. Jun 2007 A1
20070156677 Szabo Jul 2007 A1
20070185702 Harney et al. Aug 2007 A1
20070197296 Lee Aug 2007 A1
20070242656 Klassen et al. Oct 2007 A1
20070265533 Tran Nov 2007 A1
20070294229 Au Dec 2007 A1
20080005158 Zartler et al. Jan 2008 A1
20080010268 Liao et al. Jan 2008 A1
20080016040 Jones et al. Jan 2008 A1
20080036756 Gaos et al. Feb 2008 A1
20080091406 Baldwin et al. Apr 2008 A1
20080133444 Gao et al. Jun 2008 A1
20080162498 Omoigui Jul 2008 A1
20080222734 Redlich et al. Sep 2008 A1
20080235604 Ebert Sep 2008 A1
20080243505 Barinov et al. Oct 2008 A1
20080305815 McDonough Dec 2008 A1
20090006525 Moore Jan 2009 A1
20090030800 Grois Jan 2009 A1
20090063427 Zuta et al. Mar 2009 A1
20090070103 Beggelman et al. Mar 2009 A1
20090077488 Ording Mar 2009 A1
20090089100 Nenov et al. Apr 2009 A1
20090119095 Beggelman et al. May 2009 A1
20090119587 Allen et al. May 2009 A1
20090157386 Zhou Jun 2009 A1
20090171923 Nash et al. Jul 2009 A1
20090182702 Miller Jul 2009 A1
20090204677 Michaelis et al. Aug 2009 A1
20090216691 Borzestowski et al. Aug 2009 A1
20090225041 Kida et al. Sep 2009 A1
20090227223 Jenkins Sep 2009 A1
20090228264 Williams et al. Sep 2009 A1
20090235356 Jensen et al. Sep 2009 A1
20090248399 Au Oct 2009 A1
20090271205 Finn et al. Oct 2009 A1
20100005122 Jackson Jan 2010 A1
20100030549 Lee et al. Feb 2010 A1
20100050237 Bokor et al. Feb 2010 A1
20100070448 Omoigui Mar 2010 A1
20100070871 Liesche Mar 2010 A1
20100153398 Miller et al. Jun 2010 A1
20100169336 Eckhoff-Hornback et al. Jul 2010 A1
20100218113 White et al. Aug 2010 A1
20100226490 Schultz et al. Sep 2010 A1
20100235808 Dayan et al. Sep 2010 A1
20100281012 Imig Nov 2010 A1
20100312547 Van Os et al. Dec 2010 A1
20110046951 Suendermann Feb 2011 A1
20110071819 Miller et al. Mar 2011 A1
20110078105 Wallace Mar 2011 A1
20110119196 Ventura May 2011 A1
20110179126 Wetherell et al. Jul 2011 A1
20110213642 Makar et al. Sep 2011 A1
20110282664 Tanioka et al. Nov 2011 A1
20110288947 Biran Nov 2011 A1
20110301982 Green et al. Dec 2011 A1
20110307245 Hanneman et al. Dec 2011 A1
20120016678 Gruber et al. Jan 2012 A1
20120022872 Gruber et al. Jan 2012 A1
20120030553 Delpha et al. Feb 2012 A1
20120041903 Beilby et al. Feb 2012 A1
20120078891 Brown et al. Mar 2012 A1
20120110473 Tseng May 2012 A1
20120117005 Spivack May 2012 A1
20120221502 Jerram et al. Aug 2012 A1
20120245926 Montyne et al. Sep 2012 A1
20120253825 Di Fabbrizio Oct 2012 A1
20120265528 Gruber et al. Oct 2012 A1
20120284040 Dupin Nov 2012 A1
20120311541 Bullard et al. Dec 2012 A1
20130017523 Barborak Jan 2013 A1
20130031476 Coin et al. Jan 2013 A1
20130046149 Gettelman et al. Feb 2013 A1
20130152092 Yadgar Jun 2013 A1
20130204813 Master et al. Aug 2013 A1
20130254139 Lei Sep 2013 A1
20130258040 Kaytaz et al. Oct 2013 A1
20130262467 Zhang et al. Oct 2013 A1
20130275875 Gruber et al. Oct 2013 A1
20130283168 Brown et al. Oct 2013 A1
20140029734 Kim et al. Jan 2014 A1
20140040748 Lemay et al. Feb 2014 A1
20140047001 Phillips et al. Feb 2014 A1
20140053102 Lee et al. Feb 2014 A1
20140074454 Brown Mar 2014 A1
20140098948 Kulkarni et al. Apr 2014 A1
20140115456 White et al. Apr 2014 A1
20140164476 Thomson Jun 2014 A1
20140164508 Lynch et al. Jun 2014 A1
20140181741 Apacible et al. Jun 2014 A1
20140201675 Joo et al. Jul 2014 A1
20140244266 Brown et al. Aug 2014 A1
20140244712 Walters et al. Aug 2014 A1
20140245140 Brown et al. Aug 2014 A1
20140282109 Wenger et al. Sep 2014 A1
20140297284 Gruber et al. Oct 2014 A1
20140310005 Brown et al. Oct 2014 A1
20140317502 Brown et al. Oct 2014 A1
20140337048 Brown et al. Nov 2014 A1
20140343924 Brown et al. Nov 2014 A1
20140343928 Brown et al. Nov 2014 A1
20140365223 Brown et al. Dec 2014 A1
20140365407 Brown et al. Dec 2014 A1
20150066817 Slayton et al. Mar 2015 A1
20150185996 Brown et al. Jul 2015 A1
20150186154 Brown et al. Jul 2015 A1
20150186155 Brown et al. Jul 2015 A1
20150186156 Brown et al. Jul 2015 A1
20150363697 Spivack Dec 2015 A1
20160110071 Brown et al. Apr 2016 A1
20160132291 Bai et al. May 2016 A1
20170132220 Brown et al. May 2017 A1
20170277993 Beaver et al. Sep 2017 A1
20170357637 Nell et al. Dec 2017 A1
20180308476 Hirzel Oct 2018 A1
20200143112 Martinez May 2020 A1
Foreign Referenced Citations (3)
Number Date Country
103051669 Apr 2013 CN
2011088053 Jul 2011 WO
2017127321 Jul 2017 WO
Non-Patent Literature Citations (24)
Entry
Bhaskar, J., et al., “Hybrid Approach for Emotion Classification of Audio Conversation Based on Text and Speech Mining,” International Conference on Information and Communication Technologies (ICICT 2014), Procedia Computer Science, vol. 46, 2015, pp. 635-643.
Brill, E., “Transformation-Based Error-Driven Learning and Natural Language Processing: A Case Study in Part-of-Speech Tagging,” Association for Computational Linguistics, 1995, 24 pages.
Cassell, J., et al., “Embodied Conversational Agents”, MIT Press, 2000, pp. 272 and 275.
Dumoulin, J., “Using Multiple Classifiers to Improve Intent Recognition in Human Chats,” MAICS, 2014, 6 pages.
“Frost & Sullivan Commends Next IT for Leading the Virtual Agent Applications Industry in Competitive Strategy Innovation”, Frost & Sullivan, 2014, 5 pages.
Guzzoni, D., et al., “Modeling Human-Agent Interaction with Active Ontologies,” Spring 2007 AAAI Symposium, 2007, 8 pages.
Kim, Y-B., et al., “Onenet: Joint Domain, Intent, Slot Prediction for Spoken Language Understanding,” IEEE Automatic Speech Recognition and Understanding Workshop (ASRU), 2017, 7 pages.
Kim, B., et al., “Two-stage multi-intent detection for spoken language understanding,” Multimedia Tools and Applications, 2016, 14 pages.
Krahmer, E., et al., “Problem Spotting in Human-Machine Interaction”, IPO, Center for Research on User-System Interaction, Sixth European Conference on Speech Communication and Technology, 1999, 4 pages.
Kuhn, R., et al., “The Application of Semantic Classification Trees to Natural Language Understanding,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 17, No. 5, 1995, pp. 449-460.
Langkilde, I., et al., “Automatic Prediction of Problematic Human-Computer Dialogues in ‘How May I Help You?’”, AT&T Labs Research, 1999, 5 pages.
Lison, P., “Structured Probabilistic Modelling for Dialogue Management,” Ph.D. Thesis, Department of Informatics, Faculty of Mathematics and Natural Sciences, University of Oslo, Oct. 30, 2013, 250 pages.
“Meet Jenn, Your Virtual Assistant at alaskaair.com”, retrieved on Apr. 13, 2015 at <<http://www.alaskaair.com/content/about-us/site-info/ask-jenn.aspx>>, 2015, 1 page.
“Meet Julia—TAM Airlines' most famous new hire,” Case Study, Next IT Corporation, 2015, 2 pages.
Ratnaparkhi, A., “A Maximum Entropy Model for Part-of-Speech Tagging,” Conference on Empirical Methods in Natural Language Processing (EMNLP), 1996, 10 pages.
“SGT Star Wins Intelligent Assistant Award”, San Francisco, Calif (PRWEB), PRWEB, 2014, 2 pages.
“The Army's Robot Recruiter”, Transcript from New York Public Radio, 2014, 3 pages.
Towell, G., et al., Knowledge-Based Artificial Neural Networks, Artificial Intelligence, vols. 69/70, 1994, 29 pages.
Walker, M., et al., “Learning to Predict Problematic Situations in a Spoken Dialogue System: Experiments with How May I Help You?”, AT&T Labs Research, NAACL 2000 Proceedings of the 1st North American chapter of the Association for Computational Linguistics conference, 2000, 8 pages.
Wikipedia page “CALO”, retrieved on Nov. 15, 2017 at <<https://en.wikipedia.org/wiki/CALO>>, 2017, 5 pages.
“With Alme, Alaska Airlines soars”, Case Study, retrieved on Apr. 10, 2015 at <<http://www.nextit.com/media/downloads/Case-study-Alaska-Air.pdf>>, 2015, 3 pages.
The Extended European Search Report issued for Application No. 19191541.2, dated Feb. 4, 2020.
Communication Pursuant to Article 94(3)EPC, issued for Application No. 19191541.2, dated Sep. 29, 2021.
Summons to attend oral proceedings pursuant to Rule 115(1)EPC, issued for Application No. 19191541.2, dated Mar. 16, 2023.
Related Publications (1)
Number Date Country
20230126751 A1 Apr 2023 US
Provisional Applications (1)
Number Date Country
62728144 Sep 2018 US
Continuations (1)
Number Date Country
Parent 16531350 Aug 2019 US
Child 18089061 US