Method and system for over-prediction in neural networks

By generating and adjusting the multi-layer confidence score distribution of the neural network model, the overconfidence problem of deep neural networks in chatbot systems is solved, improving the accuracy and reliability of the model and enhancing the chatbot's interactivity.

CN116490879BActive Publication Date: 2026-11-06ORACLE INT CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202180077947.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-11-16
Filing Date
2021-11-17
Publication Date
2026-11-06
Estimated Expiration
2041-11-17

AI Technical Summary

Technical Problem

Deep neural networks suffer from overconfidence in chatbot systems, making it difficult to handle the correlation between the output predicted confidence score and the true confidence score solution, thus affecting the model's performance.

Method used

The confidence score distribution is generated for multiple layers of the machine learning model. A subset of the layers is iteratively processed to identify predictions that meet the criteria, and the associated confidence scores are assigned as the confidence scores of the overall prediction.

Benefits of technology

By adjusting the output processing flow of the neural network, the overconfidence problem was reduced, the accuracy and reliability of the model were improved, and the interactive performance of the chatbot was enhanced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116490879B_ABST
    Figure CN116490879B_ABST
Patent Text Reader

Abstract

This paper discloses a technique for addressing the overconfidence problem associated with machine learning models in chatbot systems. For each of the multiple layers of the machine learning model, a distribution of confidence scores is generated for multiple predictions regarding the input utterance. Based on the distribution of the confidence scores generated for each layer, a prediction to be assigned to each layer of the machine learning model is determined. Based on these predictions, the overall prediction of the machine learning model is determined. A subset of the multiple layers is iteratively processed to identify layers whose assigned predictions satisfy a criterion. The confidence score associated with the assigned prediction of that layer of the machine learning model is assigned as the overall confidence score to be associated with the overall prediction of the machine learning model.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-reference to related applications

[0002] This application is a non-provisional application filed November 30, 2020, U.S. Provisional Application No. 63 / 119,566, and November 16, 2021, U.S. Non-Provisional Application No. 17 / 455,181, and claims its interest and priority under 35 USC 119(e). The entire contents of the above-mentioned applications are incorporated herein by reference in their entirety for all purposes. Technical Field

[0003] This disclosure generally relates to chatbot systems, and more specifically to techniques for addressing the overconfidence problem associated with machine learning models, such as neural networks used for classification purposes in chatbot systems. Background Technology

[0004] Many users around the world use instant messaging or chat platforms for immediate responses. Organizations frequently use these platforms to converse with customers (or end users) in real time. However, the cost for organizations to hire service personnel to conduct real-time conversations with customers or end users can be very high. Chatbots, or bots, have begun to be developed to simulate conversations with end users, especially over the internet. End users can communicate with bots through messaging applications they already have installed and use. Intelligent bots, often powered by artificial intelligence (AI), can communicate more intelligently in context during real-time conversations, thus allowing for more natural conversations between bots and end users, improving the conversational experience. Unlike end users who learn a fixed set of keywords or commands that bots know how to respond to, intelligent bots can understand the end user's intent and respond accordingly based on the user's natural language utterances.

[0005] However, chatbots are difficult to build because these automated solutions require domain-specific knowledge and the application of specific technologies, which may only be within the capabilities of specialized developers. As part of building such chatbots, developers can first understand the needs of the enterprise and end-users. Developers can then analyze and make decisions related to, for example, selecting the dataset to be used for analysis, preparing the input dataset for analysis (e.g., cleaning, extracting, formatting, and / or transforming data before analysis, performing data feature engineering, etc.), identifying the appropriate machine learning (ML) techniques or models (one or more) to perform the analysis, and improving the techniques or models based on feedback to improve results / outcomes. The task of identifying appropriate models may include developing multiple models, which may be parallel, and iteratively testing and experimenting with these models before identifying a specific model (or models) for use. Additionally, supervised learning-based solutions typically involve a training phase, followed by an application (i.e., inference) phase, and an iterative cycle between the training and application phases. Developers can be responsible for carefully implementing and monitoring these phases to obtain the optimal solution.

[0006] Typically, robots employ machine learning models (such as neural networks), which are trained as classifiers and configured to predict or infer the class or category for a given input from a set of target classes or categories. Deeper neural networks (i.e., neural network models with many layers, e.g., four or more layers) are generally more accurate in their output predictions than shallower neural networks (i.e., neural network models with fewer layers). However, deep neural networks suffer from the problem of overconfidence (in confidence scores), where the confidence score generated by the neural network for a certain class may become de-correlated with the true confidence score solution.

[0007] Therefore, while deep neural networks are desirable for use due to their improved accuracy, the overconfidence associated with deep neural networks must be addressed to avoid performance issues. The embodiments described herein individually and collectively address these issues, as well as other problems. Summary of the Invention

[0008] Techniques (e.g., methods, systems, storage of code or instructions executable by one or more processors) are disclosed for addressing the overconfidence problem associated with machine learning models (e.g., neural networks) used for classification purposes in chatbot systems. Various embodiments are described herein, including methods, systems, storage of programs, code, or instructions executable by one or more processors, and other non-transitory computer-readable storage media.

[0009] One aspect of this disclosure provides a method comprising: generating a distribution of confidence scores for multiple predictions about an input utterance for each of a plurality of layers of a machine learning model; determining a prediction to be assigned to that layer based on the distribution of confidence scores generated for each layer of the machine learning model; generating an overall prediction of the machine learning model based on the determination; iteratively processing a subset of the plurality of layers of the machine learning model to identify layers in the machine learning model whose assigned predictions satisfy a criterion; and assigning a confidence score associated with the assigned prediction of that layer of the machine learning model as an overall confidence score to be associated with the overall prediction of the machine learning model.

[0010] According to one embodiment, a computing device is provided, comprising: a processor; and a memory including instructions that, when executed by the processor, cause the computing device to perform at least the following operations: for each of a plurality of layers of a machine learning model, generating a distribution of confidence scores for a plurality of predictions about an input utterance; determining a prediction to be assigned to that layer based on the distribution of confidence scores generated for each layer of the machine learning model; generating an overall prediction of the machine learning model based on the determination; iteratively processing a subset of the plurality of layers of the machine learning model to identify layers in the machine learning model whose assigned predictions satisfy a criterion; and assigning a confidence score associated with the assigned prediction of that layer of the machine learning model as an overall confidence score to be associated with the overall prediction of the machine learning model.

[0011] One aspect of this disclosure provides a method comprising: generating a distribution of confidence scores for multiple predictions of an input utterance for each of a plurality of layers of a machine learning model; calculating a score for each of the plurality of predictions based on the distribution of confidence scores of the plurality of layers of the machine learning model; determining one of the plurality of predictions to correspond to an overall prediction of the machine learning model; and assigning the score associated with the one of the plurality of predictions as an overall confidence score associated with the overall prediction of the machine learning model.

[0012] The foregoing, other features, and embodiments will become clearer when referenced to the following description, claims, and drawings. Attached Figure Description

[0013] Figure 1 This is a simplified block diagram of a distributed environment in conjunction with exemplary embodiments.

[0014] Figure 2 Exemplary neural network models according to various embodiments are depicted.

[0015] Figure 3 The illustration shows example classifications performed by a neural network model according to various embodiments.

[0016] Figure 4 The illustration shows another example of classification performed by a neural network model according to various embodiments.

[0017] Figure 5A A flowchart depicts a process executed by a neural network according to various embodiments.

[0018] Figure 5B Flowcharts depicting processes executed by neural network models according to various embodiments are provided.

[0019] Figure 6 A simplified diagram of a distributed system for implementing various embodiments is depicted.

[0020] Figure 7 It is a simplified block diagram of one or more components of a system environment according to various embodiments, through which services provided by one or more components of the embodiment system can be provided as cloud services.

[0021] Figure 8 The illustration shows an example computer system that can be used to implement various embodiments. Detailed Implementation

[0022] In the following description, various embodiments will be described. Specific configurations and details are set forth for illustrative purposes to provide a thorough understanding of the embodiments. However, it will also be apparent to those skilled in the art that these embodiments can be practiced without specific details. Furthermore, well-known features may be omitted or simplified so as not to obscure the described embodiments.

[0023] While specific embodiments have been described, various modifications, alterations, alternative constructions, and equivalents are possible. The embodiments are not limited to operation in certain specific data processing environments but are free to operate in multiple data processing environments. Furthermore, while certain embodiments have been described using specific series of transactions and steps, it will be clear to those skilled in the art that this is not intended to be limiting. Although some flowcharts describe operations as sequential processes, many operations can be performed in parallel or concurrently. Furthermore, the order of operations can be rearranged. Processes may have additional steps not included in the figures. Various features and aspects of the embodiments described above can be used individually or in combination. 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 superior to or advantageous to other embodiments or designs.

[0024] Furthermore, while certain embodiments have been described using specific combinations of hardware and software, it should be recognized that other combinations of hardware and software are also possible. Some embodiments may be implemented using only hardware, or only software, or a combination thereof. The various processes described herein may be implemented on the same processor or different processors in any combination.

[0025] When a device, system, component, or module is described as being configured to perform certain operations or functions, such configuration can be achieved, for example, by designing electronic circuits to perform operations, by programming programmable electronic circuits (such as microprocessors) to perform operations (such as by executing computer instructions or code), or by a processor or core programmed to execute code or instructions stored on a non-transitory memory medium, or any combination thereof. Processes can communicate using a variety of technologies, including but not limited to conventional technologies for inter-process communication, and different pairs of processes may use different technologies, or the same pair of processes may use different technologies at different times.

[0026] introduction

[0027] A machine learning model (such as a neural network) trained as a classifier is configured to predict or infer the class or category for a given input from a set of target classes or categories. Such a classifier neural network model is typically trained to generate a probability distribution for the set of target classes, with the neural network generating a probability for each target class in the set, and the sum of the generated probabilities being 1 (or 100%, if expressed as a percentage). In this neural network classifier, the output layer of the neural network can use a softmax function as its activation function to produce a distribution of probability scores for the set of classes. These probabilities are also called confidence scores. The class with the highest associated confidence score can be output as the answer to the input.

[0028] For example, in the field of chatbots, chatbots can use neural network models trained to take utterances as input and predict probability distributions or confidence scores for a set of classes the neural network is trained to target. For instance, the set of classes could include intent classes representing the intent behind the utterance. The neural network is configured to generate a confidence score for each intent class and can select the intent class with the highest confidence score as the most relevant intent class for the input utterance. In some embodiments, the highest confidence score must also be above a pre-configured threshold (e.g., 70% confidence) to be selected as the relevant intent class for the input utterance.

[0029] The collection of intent classes can include one or more in-domain classes and one out-of-domain (OOD) class. In-domain classes represent intents that a particular chatbot can handle. OOD classes typically represent unresolved intents that the chatbot is not configured to handle (i.e., intents that cannot be resolved to one of the in-domain classes).

[0030] For example, consider a chatbot (“Pizza Bot”) used to order pizza. Users can interact with the Pizza Bot to order and / or cancel pizza orders. The Pizza Bot can be trained to take input utterances and classify them into a set of intent classes, which includes one or more in-domain classes and OOD classes. For example, in-domain classes could include the “order pizza” intent class and the “cancel pizza order” intent class, while out-of-domain classes could be the “unresolved” class. Therefore, if the input utterance is related to ordering pizza, a properly trained neural network will generate the highest confidence score for the “order pizza” class. Similarly, if the input utterance is related to canceling a pizza order, a properly trained neural network will generate the highest confidence score for the “cancel pizza order” class. If the utterance is unrelated to ordering or canceling a pizza order, a properly trained neural network can generate the highest confidence score for the OOD “unresolved” class. Further processing performed by the Pizza Bot in response to an input utterance can depend on which class receives the highest confidence score for that utterance. Therefore, assigning appropriate confidence scores to the set of classes for a given utterance is important for the performance of the Pizza Bot.

[0031] Neural networks typically need to be trained before they can be used for reasoning or making predictions. Training can be performed using training data (sometimes called labeled data), where the inputs and the labels (real facts) associated with those inputs are known. For example, training data may include an input x(i) and, for each input x(i), a target value or correct answer (also called a real fact) y(i) for that input. A pair (x(i), y(i)) is called a training sample, and training data may include many such training samples. For example, training data used to train a neural network model for a chatbot may include a set of utterances and, for each utterance in that set, a known (real fact) class for that utterance. As an example, for the pizza bot mentioned above, training data may include a set of utterances with the associated label "order pizza" class, a set of utterances with the associated label "cancel pizza order" class, and a set of utterances with the associated label "unresolved" OOD class.

[0032] The space of all inputs x(i) in the training data can be represented by X, and the space of all corresponding targets y(i) can be represented by Y. The goal of training the neural network is to learn a hypothesis function "h()" that maps the training input space X to the target value space Y, such that h(x) is a good predictor of the corresponding values ​​for y. In some implementations, as part of deriving the hypothesis function, an objective function, such as a loss function, is defined that measures the difference between the true value of an input and the value predicted by the neural network for that input. As part of the training, this objective function is optimized, i.e., minimized or maximized. Training techniques (such as backpropagation training) can be used, which iteratively modify / manipulate the weights associated with the inputs of the perceptron in the neural network, with the goal of minimizing or maximizing the objective function associated with one or more outputs provided by the neural network.

[0033] The depth of a neural network model is measured by the number of layers in the model. A neural network typically has an input layer that receives the input provided to the network, an output layer that outputs the result of the input, and one or more hidden layers between the input and output layers. Deeper neural networks (i.e., models with more layers) are generally more accurate in their output predictions than shallower neural network models (i.e., models with fewer layers). However, deep neural networks suffer from overconfidence (in confidence scores), where the confidence score generated by the network for a particular class may become correlated with the true confidence score solution. Deep neural network models can even produce highly confident misclassification predictions when the actual input cannot be well represented by the training data used to train the model; that is, the actual sample was drawn from outside the distribution observed during training, meaning the model is not well calibrated. This overconfidence makes post-processing of the model output (setting thresholds for predictions, etc.) difficult, meaning it requires processing through architecture (often used for arbitrary uncertainty) and / or training (e.g., often used for cognitive uncertainty).

[0034] Therefore, while deep machine learning models such as deep neural networks are desirable for use due to their improved accuracy, the overconfidence associated with deep machine learning models must be addressed to avoid performance issues with neural networks.

[0035] Robotic systems

[0036] A bot (also known as a skill, chatbot, chatterbox, or conversational bot) is a computer program that can engage in conversation with an end user. Bots typically respond to natural language messages (such as questions or comments) via messaging applications that use natural language messaging. Businesses can use one or more bot systems to communicate with end users through messaging applications. A messaging application, which can be referred to as a channel, can be a messaging application that the end user already has installed and is familiar with, or that the end user prefers. Therefore, the end user does not need to download and install a new application to chat with the bot system. Messaging applications can include, for example, over-the-top (OTT) messaging channels (such as Facebook Messenger, Facebook WhatsApp, WeChat, Line, Kik, Telegram, Talk, Skype, Slack, or SMS), virtual personal assistants (such as Amazon Dot, Echo, or Show, Google Home, Apple HomePod, etc.), mobile and web application extensions that extend native or hybrid / responsive mobile or web applications with chat capabilities, or voice-based input (such as devices or applications with interfaces that allow interaction using Siri, Cortana, Google Voice, or other speech input).

[0037] Figure 1 This is a simplified block diagram of an environment 100 incorporating a chatbot system according to certain embodiments. Environment 100 includes a Digital Assistant Builder Platform (DABP) 102, which enables users of DABP 102 to create and deploy digital assistant or chatbot systems. DABP 102 can be used to create one or more digital assistant (or DA) or chatbot systems. For example, as... Figure 1 As shown, user 104 of a specific business can use DABP 102 to create and deploy digital assistants 106 for that specific business. For example, DABP 102 can be used by a bank to create one or more digital assistants for its customers. The same DABP 102 platform can be used by multiple businesses to create digital assistants. As another example, restaurant owners (e.g., pizzerias) can use DABP 102 to create and deploy digital assistants that enable their customers to order food (e.g., order pizza).

[0038] Figure 1This is a simplified block diagram of an environment 100 incorporating a chatbot system according to certain embodiments. Environment 100 includes a Digital Assistant Builder Platform (DABP) 102, which enables users of DABP 102 to create and deploy digital assistant or chatbot systems. DABP 102 can be used to create one or more digital assistant (or DA) or chatbot systems. For example, as... Figure 1 As shown, user 104 of a specific business can use DABP 102 to create and deploy digital assistants 106 for that specific business. For example, DABP 102 can be used by a bank to create one or more digital assistants for its customers. The same DABP 102 platform can be used by multiple businesses to create digital assistants. As another example, restaurant owners (e.g., pizzerias) can use DABP 102 to create and deploy digital assistants that enable their customers to order food (e.g., order pizza).

[0039] Digital assistants (such as digital assistant 106 built using DABP 102) can be used to perform various tasks via natural language-based dialogue between the digital assistant and its user 108. As part of the dialogue, the user can provide one or more user inputs 110 to the digital assistant 106 and receive a response 112 from the digital assistant 106. The dialogue may include one or more of the inputs 110 and the response 112. Through these dialogues, the user can request one or more tasks to be performed by the digital assistant, and in response, the digital assistant is configured to perform the task requested by the user and respond appropriately to the user.

[0040] User input 110 is generally in the form of natural language and is referred to as a speech. User speech 110 can be in text form, such as when a user types a sentence, question, text fragment, or even a single word and provides that text as input to the digital assistant 106. In some embodiments, user speech 110 can be in the form of audio input or speech, such as when a user speaks or utters something as input to the digital assistant 106. Speech is typically in the language spoken by user 108. For example, speech can be English or some other language. When speech is in speech form, the speech input is converted into a text form of speech in that particular language, and then the text speech is processed by the digital assistant 106. Various speech-to-text processing techniques can be used to convert speech or audio input into text speech, which is then processed by the digital assistant 106. In some embodiments, the speech-to-text conversion can be performed by the digital assistant 106 itself.

[0041] Discourse (which can be textual or verbal discourse) can be fragments, sentences, multiple sentences, one or more words, one or more questions, combinations of the types mentioned above, etc. Digital Assistant 106 is configured to apply Natural Language Understanding (NLU) technology to discourse to understand the meaning of user input. As part of NLU processing for discourse, Digital Assistant 106 is configured to perform processing to understand the meaning of discourse, which involves identifying one or more intentions and one or more entities corresponding to the discourse. After understanding the meaning of the discourse, Digital Assistant 106 can perform one or more actions or operations in response to the understood meaning or intention. For the purposes of this disclosure, it is assumed that the discourse is either textual discourse directly provided by user 108 of Digital Assistant 106 or the result of a conversion of input verbal discourse into textual form. However, this is not intended to be limiting or restrictive in any way.

[0042] For example, user input 108 can request to order pizza by providing a statement such as "I want to order pizza." Upon receiving such a statement, digital assistant 106 is configured to understand the meaning of the statement and take an appropriate action. The appropriate action may involve, for example, responding to the user with questions requesting input about the type of pizza the user wants to order, the size of the pizza, any toppings, etc. The response 106 provided by the digital assistant can also be in natural language and is typically the same language as the input statement. As part of generating these responses, digital assistant 106 can perform natural language generation (NLG). For the user ordering pizza, through the conversation between the user and digital assistant 106, the digital assistant can guide the user to provide all the information needed for ordering pizza, and then order the pizza at the end of the conversation. Digital assistant 106 can end the conversation by outputting a message to the user indicating that the pizza has been ordered.

[0043] At the conceptual level, digital assistant 106 performs various processes in response to utterances received from a user. In some embodiments, this processing involves a sequence or pipeline of processing steps, including, for example (using NLU), understanding the meaning of the input utterance, determining the action to be performed in response to the utterance, performing the action where appropriate, generating a response to be output to the user in response to the user's utterance, and outputting the response to the user, etc. NLU processing may include parsing the received input utterance to understand the structure and meaning of the utterance, refining and reconstructing the utterance to build a more understandable form (e.g., logical form) or structure for the utterance. Generating a response may include using natural language generation (NLG) techniques. Therefore, natural language processing (NLP) performed by a digital assistant may include a combination of NLU and NLG processing. NLU processing performed by a digital assistant (such as digital assistant 106) may include various NLU-related processing, such as sentence parsing (e.g., tokenization, lemmatization, identifying part-of-speech tags of sentences, identifying named entities in sentences, generating dependency trees to represent sentence structure, splitting sentences into clauses, analyzing individual clauses, parsing references, performing chunking, etc.). In some embodiments, NLU processing, or portions thereof, is performed by the digital assistant 106 itself. In other embodiments, the digital assistant 106 may use other resources to perform portions of the NLU processing. For example, the syntax and structure of the input utterance sentence can be identified by processing it using a parser, part-of-speech tagger, and / or named entity recognizer. In one implementation, for English, a parser, part-of-speech tagger, and named entity recognizer, such as those provided by the Stanford NLP Group, are used to analyze the sentence structure and syntax. These are provided as part of the Stanford CoreNLP toolkit.

[0044] While the various examples provided in this disclosure depict utterances in the English language, this is merely illustrative. In some embodiments, the digital assistant 106 is also capable of processing utterances in languages ​​other than English. The digital assistant 106 may provide subsystems (e.g., components implementing NLU functionality) configured to perform processing on different languages. These subsystems may be implemented as pluggable units that can be invoked using service calls from the NLU core server. This allows for flexibility and scalability of NLU processing for each language, including allowing for different processing sequences. Language packs may be provided for various languages, wherein the language packs may register a list of subsystems capable of providing services from the NLU core server.

[0045] Digital assistants (such as) Figure 1The digital assistant 106 depicted can be available or accessible to its user 108 through various channels, such as, but not limited to, certain applications, social media platforms, various messaging services and applications (e.g., instant messaging applications), and other applications or channels. A single digital assistant may have several channels configured for it, allowing it to operate and be accessed simultaneously on different services.

[0046] Digital assistant or chatbot systems typically contain or are associated with one or more skills. In some embodiments, these skills are individual chatbots (called skill bots) configured to interact with users and perform specific types of tasks, such as tracking inventory, submitting time cards, creating expense reports, ordering food, checking bank accounts, making reservations, purchasing gadgets, etc. For example, for Figure 1 In the embodiments depicted, the digital assistant or chatbot system 106 includes skills 116-1, 116-2, etc. For the purposes of this disclosure, the terms "skill" and "skills" are used synonymously with the terms "skillbot" and "skillbots," respectively.

[0047] Each skill associated with the digital assistant helps the user complete tasks through conversation with the user, where the conversation may include a combination of text or audio input provided by the user and responses provided by the skill bot. These responses may be in the form of text or audio messages to the user and / or provided using simple user interface elements (e.g., a selection list) presented to the user for selection.

[0048] Skills or skill bots can be associated with or added to digital assistants in a variety of ways. In some cases, skill bots can be developed by the enterprise and then added to the digital assistant using DABP 102, for example, through the user interface provided by DABP 102 for registering skill bots with the digital assistant. In other cases, skill bots can be developed and created using DABP 102 and then added to digital assistants created using DABP 102. In still other cases, DABP 102 provides an online digital store (called the "Skill Store") that offers a variety of skills for a range of tasks. Skills offered through the Skill Store can also expose various cloud services. To add a skill to a digital assistant created using DABP 102, a DABP 102 user can access the Skill Store via DABP 102, select the desired skill, and instruct the selected skill to be added to the digital assistant created using DABP 102. Skills from the Skills Store can be added to the digital assistant as is or in a modified form (for example, a DABP 102 user can select and clone a specific skill bot from the Skills Store, customize or modify the selected skill bot, and then add the modified skill bot to the digital assistant created using the DABP 102).

[0049] Various architectures can be used to implement digital assistant or chatbot systems. For example, in some embodiments, a master robot / sub (or slave) robot paradigm or architecture can be used to implement a digital assistant created and deployed using DABP 102. According to this paradigm, the digital assistant is implemented as a master robot that interacts with one or more sub-robots acting as skill-based robots. For example, in... Figure 1 In the illustrated embodiment, the digital assistant 106 includes a main robot 114 and skill robots 116-1, 116-2, etc., which are sub-robots of the main robot 114. In some embodiments, the digital assistant 106 itself is considered to act as the main robot.

[0050] Digital assistants implemented using a master-slave robot architecture enable users to interact with multiple skills through a unified user interface (i.e., via the master robot). When a user interacts with the digital assistant, the master robot receives the user input. The master robot then processes the input to determine its meaning. It then determines whether the task requested by the user can be handled by the master robot itself; otherwise, it selects the appropriate skill robot to handle the request and routes the conversation to that selected skill robot. This allows users to interact with the digital assistant through a shared, single interface while still providing the ability to use several skill robots configured to perform specific tasks. For example, for a digital assistant developed for an enterprise, the master robot can interface with skill robots with specific functionalities, such as a CRM robot for performing functions related to Customer Relationship Management (CRM), an ERP robot for performing functions related to Enterprise Resource Planning (ERP), an HCM robot for performing functions related to Human Capital Management (HCM), etc. In this way, the end user or consumer of the digital assistant only needs to know how to access it through a shared master robot interface, while multiple skill robots are available behind the scenes to handle user requests.

[0051] In some embodiments, in a master robot / sub-robot infrastructure, the master robot is configured to know a list of available skill robots. The master robot has access to metadata identifying each available skill robot, and for each skill robot, the capabilities of that skill robot include the tasks it can perform. Upon receiving a user request in the form of a utterance, the master robot is configured to identify or predict from among the multiple available skill robots that a particular skill robot can best serve or handle the user request. The master robot then routes the utterance (or a portion of the utterance) to that particular skill robot for further handling. Thus, control flows from the master robot to that skill robot. The master robot may support multiple input and output channels. In some embodiments, routing may be performed using processes performed by one or more available skill robots. For example, as discussed below, a skill robot may be trained to infer the intent of a utterance and determine whether the inferred intent matches an intent configured on the skill robot. Therefore, routing performed by the master robot may involve the skill robot conveying an indication to the master robot regarding whether it is configured with an intent suitable for handling the utterance.

[0052] Although Figure 1The embodiments illustrated in the text depict a digital assistant 106 including a main robot 114 and skill robots 116-1, 116-2, and 116-3, but this is not intended to be limiting. The digital assistant may include various other components (e.g., other systems and subsystems) that provide digital assistant functionality. These systems and subsystems may be implemented solely in software (e.g., code or instructions stored on a computer-readable medium and executable by one or more processors), solely in hardware, or in a combination of software and hardware.

[0053] DABP 102 provides the infrastructure, services, and features that enable DABP 102 users to create digital assistants that include one or more skill bots associated with the digital assistant. In some cases, skill bots can be created by cloning existing skill bots, such as those offered by a skill store. As indicated above, DABP 102 can provide a skill store or skill catalog that supplies multiple skill bots for performing various tasks. DABP 102 users can clone skill bots from the skill store. The cloned skill bot can be modified or customized as needed. In other cases, DABP 102 users create skill bots from scratch using the tools and services provided by DABP 102.

[0054] In some embodiments, at a high level, creating or customizing a skill-based robot involves the following steps:

[0055] (1) Configure the settings for new skill robots

[0056] (2) Configure one or more intentions for the skill robot

[0057] (3) Configure one or more entities for one or more intentions.

[0058] (4) Training Skills Robot

[0059] (5) Create a dialogue flow for the skill robot

[0060] (6) Add custom components to the skill robot as needed.

[0061] (7) Testing and deploying skills robots

[0062] The following is a brief description of each of the above steps.

[0063] (1) Configuring New Skill Robot Settings – Various settings can be configured for skill robots. For example, the skill robot designer can specify one or more invocation names for the skill robot being created. These invocation names, which serve as identifiers for the skill robots, can then be used by the digital assistant user to explicitly invoke the skill robot. For example, the user can include the invocation name in their speech to explicitly invoke the corresponding skill robot.

[0064] (2) Configuring one or more intents and associated example utterances for the skill robot—The skill robot designer assigns one or more intents (also called robot intents) to the skill robot being created. The skill robot is then trained based on these assigned intents. These intents represent the category or class of utterances the skill robot is trained to infer from input. Upon receiving an utterance, the trained skill robot infers the intent of the utterance, where the inferred intent is selected from a predefined set of intents used to train the skill robot. The skill robot then takes an appropriate action to respond to the utterance based on the intent inferred for that utterance. In some cases, the intents of the skill robot represent tasks that the skill robot can perform for a digital assistant user. Each intent is given an intent identifier or intent name. For example, for a skill robot trained for a bank, the intents assigned to the skill robot could include “CheckBalance”, “TransferMoney”, “DepositCheck”, etc.

[0065] For each intent defined for a skill bot, the skill bot designer can also provide one or more example statements that represent and illustrate that intent. These example statements are intended to represent the statements a user might input into the skill bot in response to that intent. For example, for the CheckBalance intent, example statements could include “What is my savings account balance?”, “How much money do I have in my checking account?”, “How much money do I have in my account?”, etc. Thus, various permutations of typical user statements can be specified as example statements for the intent.

[0066] Intents and their associated example utterances are used as training data to train the skill robot. Various training techniques can be used. As a result of this training, a predictive model is generated, configured to take utterances as input and output the intent inferred by the predictive model for those utterances. In some cases, the input utterances are provided to an intent analysis engine (e.g., a rule-based or machine learning-based classifier executed by the skill robot), which is configured to use a trained model to predict or infer the intent of the input utterances. The skill robot can then take one or more actions based on the inferred intent.

[0067] (3) Configuring Entities for One or More Intents of a Skill Robot – In some cases, additional context may be needed for the skill robot to respond correctly to user requests. For example, there may be situations where user-inputted utterances are resolved to the same intent in the skill robot. For instance, in the example above, the utterances “What is my savings account balance?” and “How much money do I have in my checking account?” both resolve to the same CheckBalance intent, but these utterances are different requests asking different things. To clarify such requests, one or more entities can be added to the intent. Using the banking skill robot example, an entity called AccountType, which defines values ​​called “checks” and “savings,” enables the skill robot to resolve user requests and respond appropriately. In the example above, although the utterances are resolved to the same intent, the values ​​associated with the AccountType entity are different for the two utterances. This allows the skill robot to perform potentially different actions for the two utterances, even though they resolve to the same intent. One or more entities can be specified for certain intents configured for the skill robot. Thus, entities are used to add context to the intent itself. Entities help to describe the intent more completely and enable the skill robot to fulfill the user request.

[0068] In some embodiments, there are two types of entities: (a) built-in entities provided by DABP 102, and (2) custom entities that can be specified by the skill bot designer. Built-in entities are general entities that can be used in a variety of bots. Examples of built-in entities include, but are not limited to, entities related to time, date, address, number, email address, duration, repetition period, currency, phone number, URL, etc. Custom entities are used for more customized applications. For example, for banking skills, the AccountType entity can be defined by the skill bot designer, enabling various banking transactions by examining keywords entered by the user (such as checks, savings, and credit cards).

[0069] (4) Training the Skilled Robot—The skilled robot is configured to receive user input in the form of utterances, parse or otherwise process the received input, and identify or select an intent associated with the received user input. As indicated above, the skilled robot must be trained for this purpose. In some embodiments, the skilled robot is trained based on intents configured for the skilled robot and example utterances associated with those intents (collectively, training data), such that the skilled robot can parse user input utterances as one of the intents configured for the robot. In some embodiments, the skilled robot uses a predictive model that is trained on the training data and allows the skilled robot to discern what the user said (or, in some cases, what they are trying to say). DABP 102 provides a variety of different training techniques that can be used by skilled robot designers to train skilled robots, including various machine learning-based training techniques, rule-based training techniques, and / or combinations thereof. In some embodiments, a portion of the training data (e.g., 80%) is used to train the skilled robot model, while another portion (e.g., the remaining 20%) is used to test or validate the model. Once trained, the trained model (sometimes referred to as the trained skilled robot) can be used to process and respond to user utterances. In some cases, a user's utterance may be a question that only requests a single answer without requiring further conversation. To handle such situations, a Q&A (question-and-answer) intent can be defined for the skill bot. Q&A intents are created in a similar manner to regular intents. The dialogue flow used for a Q&A intent can differ from that used for a regular intent. For example, unlike a regular intent, the dialogue flow used for a Q&A intent may not involve prompts to solicit additional information from the user (e.g., a value for a specific entity).

[0070] (5) Creating a Dialogue Flow for a Skilled Bot—The dialogue flow specified for a skilled bot describes how the bot reacts when different intentions are resolved in response to received user input. The dialogue flow defines the actions or behaviors the bot will take (e.g., how the bot responds to user utterances, how it prompts for user input, and how it returns data). The dialogue flow is like a flowchart followed by the bot. Skilled bot designers use languages ​​such as markdown languages ​​to specify the dialogue flow. In some embodiments, a version of YAML called OBotML can be used to specify the dialogue flow for the bot. The dialogue flow definition for the bot acts as a model of the conversation itself, i.e., a model that allows bot designers to orchestrate the interactions between the bot and the users it serves.

[0071] In some embodiments, the dialogue flow definition for a skill-based robot comprises three parts:

[0072] (a) Context section

[0073] (b) Default transition section

[0074] (c) State section

[0075] The Context Section—Skill Bot designers can define variables used in the conversation flow within the Context Section. Other variables that can be named in the Context Section include, but are not limited to: variables for error handling, variables for built-in or custom entities, and user variables that enable the skill bot to recognize and retain user preferences.

[0076] Default Transition Section – Transitions for the skill bot can be defined either in the dialog flow state section or in the default transition section. Transitions defined in the default transition section act as fallbacks and are triggered when no suitable transition is defined within the state or when the conditions required to trigger a state transition are not met. The default transition section can be used to define routes that allow the skill bot to gracefully handle unexpected user actions.

[0077] The state component—the dialogue flow and its associated operations—is defined as a series of transitional states that manage the logic within the dialogue flow. Each state node within the dialogue flow definition is named after a component that provides the required functionality at that point in the dialogue. Therefore, states are built around components. A state contains component-specific characteristics and defines the transitions to other states triggered after the execution of that component.

[0078] A state portion can be used to handle special scenarios. For example, sometimes you might want to offer users the option to temporarily leave the first skill they are interacting with in order to do something in a second skill within the digital assistant. For instance, if a user is talking to a shopping skill (e.g., the user has made some purchase choices), the user might want to jump to a banking skill (e.g., the user might want to make sure he / she has enough money for the purchase) and then return to the shopping skill to complete the user's order. To address this, the state portion of the first skill's dialogue flow definition can be configured to initiate an interaction with a different second skill within the same digital assistant and then return to the original dialogue flow.

[0079] (6) Adding Custom Components to the Skill Robot—As described above, the state names specified in the skill robot's dialogue flow provide components corresponding to the functionality required for that state. Components enable the skill robot to perform functions. In some embodiments, DABP 102 provides a collection of pre-configured components for performing a wide range of functions. The skill robot designer can select one or more of these pre-configured components and associate them with states in the skill robot's dialogue flow. The skill robot designer can also use tools provided by DABP 102 to create custom or new components and associate custom components with one or more states in the skill robot's dialogue flow.

[0080] (7) Testing and Deploying Skilled Robots – DABP 102 provides several features that enable skilled robot designers to test the skilled robots they are developing. The skilled robots can then be deployed and incorporated into digital assistants.

[0081] While the above description outlines how to create skill robots, similar techniques can be used to create digital assistants (or master robots). At the master robot or digital assistant level, built-in system intents can be configured for the digital assistant. These built-in system intents are used to identify general tasks that the digital assistant itself (i.e., the master robot) can handle without invoking the skill robots associated with that digital assistant. Examples of system intents defined for the master robot include: (1) Exit: applicable when a user signals that they wish to exit the current conversation or context within the digital assistant; (2) Help: applicable when a user requests help or guidance; and (3) Unresolved intent: applicable to user input that does not well match the exit and help intents. The digital assistant also stores information about one or more skill robots associated with it. This information enables the master robot to select a specific skill robot to handle the utterance.

[0082] At the master bot or digital assistant level, when a user inputs a phrase or utterance into the digital assistant, the assistant is configured to perform processing to determine how to route the utterance and related conversation. The digital assistant uses a routing model to determine this, which can be rule-based, AI-based, or a combination thereof. The routing model determines whether the conversation corresponding to the user's input utterance should be routed to a specific skill for processing, processed by the digital assistant or master bot itself according to built-in system intent, or handled as a different state within the current conversation flow.

[0083] In some embodiments, as part of this process, the digital assistant determines whether the utterance of user input explicitly uses its invocation name to identify a skill bot. If an invocation name is present in the user input, it is considered an explicit invocation of the skill bot corresponding to that invocation name. In this scenario, the digital assistant can route the user input to the explicitly invoked skill bot for further processing. If no specific or explicit invocation is found, in some embodiments, the digital assistant evaluates the received user input utterance and calculates confidence scores for the system intent and skill bot associated with the digital assistant. The score calculated for the skill bot or system intent represents the likelihood that the user input represents a task configured to be performed by that skill bot or represents the system intent. Any system intent or skill bot with an associated calculated confidence score exceeding a threshold (e.g., a confidence threshold routing parameter) is selected as a candidate for further evaluation. The digital assistant then selects a specific system intent or skill bot from the identified candidates for further processing of the user input utterance. In some embodiments, after one or more skill bots are identified as candidates, intents associated with these candidate skills are evaluated (using a trained model for each skill) and a confidence score is determined for each intent. Generally, any intent with a confidence score exceeding a threshold (e.g., 70%) is considered a candidate intent. If a specific skill bot is selected, the user's utterance is routed to that skill bot for further processing. If a system intent is selected, one or more actions are performed by the main bot itself based on the selected system intent.

[0084] Techniques for addressing overconfidence

[0085] According to some embodiments, the chatbot uses a neural network model trained to take a utterance as input and predict a probability distribution or confidence score for a set of classes the neural network is trained to target. For example, the set of classes may include intent classes representing the intent behind the utterance. The neural network is configured to generate a confidence score for each intent class and can select the intent class with the highest confidence score as the most relevant intent class for the input utterance. In some embodiments, the highest confidence score must also be higher than a pre-configured threshold (e.g., 70% confidence) to be selected as the relevant intent class for the input utterance.

[0086] Figure 2 Exemplary machine learning models according to various embodiments are described. Figure 2The machine learning model described herein is a deep neural network (DNN) 210, which includes an encoder 220, multiple layers 230A, 230B... and 230N, multiple prediction modules 240A, 240B... and 240N, and a confidence score processing unit 250. Each layer is associated with a corresponding prediction module. For example, layer 1 230A is associated with prediction module 240A, layer 2 230B is associated with prediction module 240B, and layer 3 230N is associated with prediction module 240N, respectively.

[0087] The utterance is input to encoder 220, which generates an embedding of the utterance. In some cases, encoder 220 may be a multilingual general sentence encoder (MUSE), which maps natural language elements (e.g., sentences, words, n-grams (i.e., a set of n words or letters)) to an array of numbers (i.e., embeddings). Each layer in deep neural network 210, layers 230A, 230B, and 230N, processes this embedding sequentially. Specifically, prediction module 240A associated with the first layer (i.e., layer 230A) generates a distribution of confidence scores associated with the first layer based on the embedding, while prediction module 240B associated with the second layer (i.e., layer 230B) generates a distribution of confidence scores associated with the second layer based on the embedding processed by the first layer. Each subsequent layer utilizes its corresponding prediction module to generate a distribution associated with that layer based on the processing performed by the previous layer. Each layer of the DNN 210 is configured to generate a probability distribution (i.e., a confidence score) of a set of classes (e.g., an intent class representing the intent behind the utterance). More specifically, at each layer, the corresponding prediction module generates a distribution of confidence scores for that set of intent classes. The output of the DNN is the overall prediction / classification and the overall confidence score to be assigned to that overall prediction.

[0088] It can be recognized that each layer of a DNN includes one or more neurons (i.e., processing entities). Neurons in a particular layer connect to neurons in subsequent layers. Each connection between neurons is associated with a weight, where the weight indicates the importance of the neuron's input(s). Additionally, each neuron is associated with an activation function that processes the corresponding input given to that neuron. It can be recognized that different activation functions can be assigned to each neuron or layer of a DNN. In this way, each layer processes the input in a unique way (i.e., based on the activation function and weights), and the associated prediction module of each layer generates a distribution of confidence scores for a set of intent classes based on the processing performed by each layer.

[0089] Typically, neural network models designate the intent with the highest confidence score in the last layer (i.e., layer N) as the model's overall prediction. Additionally, the confidence score associated with this intent (in the last layer, e.g., layer 230N, which is the output layer of the DNN) is assigned as the model's overall confidence score. In doing so, the neural network model may encounter an overconfidence problem, where the confidence score generated by the neural network becomes correlated with the true confidence score solution. To address the overconfidence problem, the deep neural network 210 determines the overall prediction and the overall confidence score to be associated with it via a confidence score processing unit 250 in a manner different from the processing performed by a typical neural network. Specifically, the techniques for determining the overall prediction and the overall confidence score to be associated with the overall prediction of the DNN (referred to herein as iterative and ensemble techniques) are described below.

[0090] The confidence score processing unit 250 obtains the distribution of confidence scores computed by the corresponding prediction module for each layer. Specifically, each prediction module is trained to generate the distribution of confidence scores based on the processing performed by the corresponding layer of DNN 210. For example, layer 1 230A processes the embeddings generated by encoder 220. Prediction module 240A generates a distribution of confidence scores (associated with different intents) based on the embeddings processed by layer 1 230A. Subsequently, layer 2 230B receives the processed embeddings from layer 1 230A as input and performs further processing on the embeddings. The prediction module 240B associated with layer 2 230B is trained to generate a distribution of confidence scores (for different intents) based on the processing performed by layer 2 230B.

[0091] According to one embodiment, the confidence score processing unit 250 determines the predictions to be assigned to each layer of the DNN 210. For each layer of the DNN 210, the confidence score processing unit 250 determines the prediction with the highest confidence score (from the corresponding distribution of confidence scores generated by the associated prediction modules of that layer) as the prediction to be assigned to that layer. Additionally, the confidence score processing unit 250 selects the overall predictions of the model as the assigned predictions corresponding to the last layer of the DNN 210 (i.e., the output layer, layer N 240N).

[0092] To assign the overall confidence score to the overall prediction, in the iterative technique, the confidence score processing unit 250 iterates through layers i = 1 to N-1, comparing the assigned prediction of layer i with the overall prediction (i.e., the assigned prediction of the last layer). When a match is found, the confidence score processing unit 250 stops further processing and assigns the confidence score associated with the assigned prediction of layer i (i.e., the layer whose prediction matches the overall prediction) as the overall confidence score to be associated with the overall prediction of DNN 210. In other words, the DNN model uses the prediction of the last layer (to account for high accuracy) and the confidence score of layer i (to help mitigate the overconfidence problem).

[0093] It can be recognized that the term "last layer" refers to the last layer in a DNN that processes the input utterance (e.g., Figure 2 The corresponding layer is 230N. For example, due to... Figure 2 The layers depicted are arranged horizontally (i.e., from left to right), so layer 230N is considered the last layer to process the input utterance. However, attention DNNs can be arranged differently, for example, in a pyramid structure, i.e., from top to bottom (or bottom to top). In this case, the last layer could be the bottom (or top) layer of the pyramid structure and correspond to the last layer to process the utterance from the user's input.

[0094] Turn Figure 3 The description illustrates various embodiments of the invention based on this disclosure. Figure 2 An exemplary classification is performed by the DNN 210. For illustration, consider a pizza robot comprising a set of intent classes 310, input utterances 320, and a DNN model with N=4 layers. Furthermore, for simplicity, assume the set of intent classes 310 includes three intents: Figure 1 - "Order a pizza", Italian Figure 2 - "Cancel pizza" and Italy Figure 3 - "Deliver pizza". The input utterance 320 is assumed to be "I want a pepperoni pizza". Furthermore, it should be understood that deep neural networks typically implement more than four layers. However, for simplicity, this example uses only four layers.

[0095] exist Figure 3 Table 330 describes the predictions assigned to each of the four layers of the DNN. It should be recognized that at each of the four layers, the assigned prediction corresponds to the prediction with the highest confidence score. For example, the prediction for layer 1 is "deliver pizza" (meaning...). Figure 3 The confidence level is 70%; the prediction for layer 2 is "cancel pizza" (Italian). Figure 2 The confidence level is 50%; the prediction for level 3 is "order pizza" (Italian). Figure 1The confidence level is 70%; and the prediction for layer 4 is "order pizza" (Italian). Figure 1 The confidence level is 90%.

[0096] According to some embodiments, the overall prediction of the model is determined as the assigned prediction of the last layer of the DNN. For example, refer to Figure 3 The overall prediction of the DNN model is... Figure 1 That is, layer 4, which has the highest confidence score in this last layer, is intended to be assigned an overall confidence score. To assign an overall confidence score to this overall prediction, the DNN's confidence score processing unit iterates through layers i = 1 to N-1, comparing the prediction of layer i with the overall prediction (i.e., the prediction of the last layer). When a match is found, further processing stops and the confidence score of layer i (i.e., the layer whose prediction matches the overall prediction) is assigned the overall confidence score to be associated with the overall prediction. For example, refer to... Figure 3 The confidence score of layer 3,340 (i.e., 70%) was determined as the overall confidence score of the DNN model. It can be recognized that layer 3 is the first layer (within the range from layer 1 to layer 3) whose prediction matches the model's overall prediction (i.e., the prediction of the last layer, i.e., layer 4). Therefore, the DNN model uses the prediction of the last layer (to account for high accuracy) and the confidence score of layer i (to help mitigate the overconfidence problem).

[0097] Return to Figure 2 According to some embodiments, in the ensemble mechanism for determining the overall prediction and the overall confidence score to be associated with the overall prediction of the DNN, the confidence score processing unit 250 of the DNN 210 calculates an ensemble score (i.e., an average score) for each intent class based on the distribution of confidence scores generated for each layer of the DNN 210. Specifically, the confidence score processing unit 250 calculates: probability(intent_i|x) = avg(probability_layer_k(intent_i|x)), where k iterates over the range 1→N. Details regarding the ensemble calculation will be referenced later. Figure 4 describe.

[0098] Figure 4 The illustrations depict various embodiments of the work. Figure 2 The example classification is performed by the DNN model 210. For illustration, the pizza robot is considered to include a set of intent classes 410, the input utterance 420, and a DNN model with N=4 layers. Furthermore, for simplicity, it is assumed that the set of intent classes 410 includes three intents: Figure 1 - "Order a pizza", Italian Figure 2 - "Cancel pizza" and Italy Figure 3- "Deliver pizza". The input utterance 420 is assumed to be "I want a pepperoni pizza". Furthermore, it should be understood that deep neural networks typically implement more than four layers. However, for simplicity, this example uses only four layers.

[0099] exist Figure 4 Table 430 depicts the predictions for each of the four layers of DNN 210. For example, the prediction distribution at each layer is as follows:

[0100] oLayer 1

[0101] ·meaning Figure 1 : Order pizza, 20%

[0102] ·meaning Figure 2 Cancel pizza, 10%

[0103] ·meaning Figure 3 Pizza delivery, 70%

[0104] oLayer 2

[0105] ·meaning Figure 1 : Pizza orders, 40%

[0106] ·meaning Figure 2 Cancel pizza, 50%

[0107] ·meaning Figure 3 Pizza delivery, 10%

[0108] oLayer 3

[0109] ·meaning Figure 1 : Pizza orders, 70%

[0110] ·meaning Figure 2 Cancel pizza, 10%

[0111] ·meaning Figure 3 Pizza delivery, 20%

[0112] oLayer 4

[0113] ·meaning Figure 1 : Pizza orders, 90%

[0114] ·meaning Figure 2 Cancel pizza, 5%

[0115] ·meaning Figure 3 Pizza delivery, 5%

[0116] In the ensemble mechanism for determining the overall prediction and the overall confidence score associated with the overall prediction of the DNN, the prediction distribution of each layer is computed in a manner similar to an iterative method. Furthermore, similar to the iterative method, the DNN model 210 determines that the overall prediction of the model corresponds to the prediction of the last layer of the DNN with the highest ensemble score. However, in the ensemble method, the generation of the overall confidence score differs from that in the iterative method, as described below.

[0117] The confidence score processing unit 250 takes the predictions made by the prediction modules of each layer as input and calculates the ensemble score (e.g., average score) for each intent class as follows:

[0118] o Integration score:

[0119] ·meaning Figure 1 Pizza order: (0.2 + 0.4 + 0.7 + 0.9) / 4 = 55%

[0120] ·meaning Figure 2 The cost of canceling pizzas is (0.1 + 0.5 + 0.1 + 0.05) / 4 = 18.75%.

[0121] ·meaning Figure 3 Pizza delivery: (0.7 + 0.1 + 0.2 + 0.05) / 4 = 26.25%

[0122] Specifically, the confidence score processing unit 250 calculates the ensemble score for each intent as corresponding to the average confidence score of the intent based on the distribution of confidence scores for each layer of the DNN model 210. For example, refer to Figure 4 The overall prediction of the DNN model was determined to be... Figure 1 That is, the intent with the highest confidence score (i.e., 90%) in the last layer (i.e., layer 4). Additionally, the DNN model will (compared to the determined overall intent (i.e., the intent...) Figure 1 The corresponding ensemble score is assigned as the model's overall confidence score. That is, in Figure 4 In the example shown, the DNN model assigns 55% of the score to the model's overall confidence score.

[0123] Figure 5A Flowcharts depicting processes executed by deep neural network (DNN) models according to various embodiments are provided. Specifically, Figure 5A A flowchart illustrating the iterative technique used to determine the overall prediction and overall confidence score of a DNN is presented. Figure 5A The processing described herein can be implemented in software (e.g., code, instructions, program) executed by one or more processing units (e.g., processor, core) of a corresponding system, hardware, or combination thereof. The software can be stored on a non-transitory storage medium (e.g., a memory device). Figure 5AThe methods presented and described below are intended to be illustrative rather than restrictive. Although Figure 5A Various processing steps that occur in a specific order or sequence are described, but this is not limiting. In some alternative embodiments, the steps may be performed in a different order, or some steps may be performed in parallel. In some embodiments, Figure 5A The processing described in the text can be determined by... Figure 2 and Figure 3 The confidence score processing unit 250 is executed.

[0124] The process begins in step 510, where, regarding the input utterance, a distribution of confidence scores is generated for each layer of the DNN model. For example, the prediction module associated with each layer of the DNN model generates a distribution of confidence scores associated with that layer. In step 515, predictions are determined for each layer of the DNN model based on the generated distributions. Specifically, the confidence score processing unit 250 determines the prediction with the highest confidence score (in the corresponding distribution of confidence scores associated with that layer) as the prediction for that layer, and then assigns the determined prediction to that layer. For example, refer to... Figure 4 The prediction assigned to layer 1 is intended to... Figure 3 Because of intention Figure 3 It has the highest confidence score in the distribution of confidence scores associated with Layer 1, that is, Figure 1 (20%) Figure 2 (10%) and Italy Figure 3 (70%).

[0125] The process then moves to step 520, where the DNN model determines the overall prediction of the model. In some embodiments, the overall prediction refers to the prediction assigned to the last layer (i.e., layer N) of the DNN model. It should be recognized that the prediction assigned to the last layer corresponds to the prediction with the highest confidence score from the distribution of prediction scores associated with the last layer.

[0126] At step 525, the counter (C) is initialized to 1. The counter C is used to iterate over a subset of multiple layers of the DNN. For example, for a DNN model with k = N layers, the counter C can iterate from layer k = 1 to layer k = N-1. The process then moves to step 530, where a query is performed to determine whether the assigned prediction of layer (C) of the DNN model is the same as the model's overall prediction. If the response to the query is positive, the process moves to step 540; otherwise, if the response to the query is negative, the process moves to step 535. In step 535, the counter (C) is incremented by 1, and the process loops back to step 530 to evaluate the assigned prediction of the next layer.

[0127] After successfully identifying the layer in the DNN whose assigned prediction is the same as the model's overall prediction, in step 540, the confidence score associated with the identified layer is assigned as the overall confidence score to be associated with the overall prediction of the DNN model 210.

[0128] Figure 5B A flowchart illustrating another process performed by a deep neural network (DNN) model according to various embodiments is provided. Specifically, Figure 5B A flowchart illustrating the integrated technique used to determine the overall prediction and overall confidence score of a DNN is presented. Figure 5B The processing described herein can be implemented in software (e.g., code, instructions, program) executed by one or more processing units (e.g., processor, core) of a corresponding system, hardware, or combination thereof. The software can be stored on a non-transitory storage medium (e.g., a memory device). Figure 5B The methods presented and described below are intended to be illustrative rather than restrictive. Although Figure 5B Various processing steps that occur in a specific order or sequence are described, but this is not limiting. In some alternative embodiments, the steps may be performed in a different order, or some steps may be performed in parallel. In some embodiments, Figure 5B The processing described in the text can be determined by... Figure 2 and 4 The confidence score processing unit 250 is executed.

[0129] The process begins at step 555, where, regarding the input utterance, a distribution of confidence scores is generated for each layer of the DNN model. For example, the prediction module associated with each layer of the DNN model generates a distribution of confidence scores associated with that layer. In step 560, the process calculates an ensemble score for each prediction based on the generated distribution of confidence scores. For example, the confidence score processing unit calculates the ensemble score for each prediction (i.e., intent) as the average (or mean) of the confidence scores corresponding to the predictions associated with different layers of the DNN. For example, referencing… Figure 4 ,meaning Figure 1 The confidence score is 20% in the first level, 40% in the second level, 70% in the third level, and 90% in the fourth level. Therefore, it is consistent with... Figure 1 The corresponding integration score is: (0.2+0.4+0.7+0.9) / 4=55%, that is, meaning Figure 1 The average of the corresponding confidence scores in different strata.

[0130] The process then moves to step 565, where the model's overall prediction is determined as the prediction from the last layer of the model with the highest confidence score. For example, refer to... Figure 4 Seeing the last layer (layer 4) has meaning Figure 1 The associated 90% confidence score, and the meaning Figure 2 The associated 5% confidence score and its relation to meaning Figure 3 The associated 5% confidence score. Therefore, the meaning... Figure 1 The ensemble score is determined to correspond to the model's overall prediction. In step 570, the process assigns the overall confidence score to the overall prediction based on the calculated ensemble score. For example, a DNN model assigns the ensemble score corresponding to the overall prediction as the model's overall confidence score. For example, referencing... Figure 4 ,meaning Figure 1 The integration score for (i.e., the intention identified as the overall intention of the model) is 55%. Therefore, 55% of the score (rather than in the fourth layer with the intention) is... Figure 1 The associated 90% score is assigned as the overall confidence score associated with the model’s overall prediction.

[0131] According to some embodiments, the performance of the aforementioned techniques (i.e., iterative and ensemble techniques) for determining the overall prediction and overall confidence scores of a DNN was evaluated on 200 datasets. These evaluations were performed in two different scenarios: a) DNN models with hyperparameter tuning, and b) DNN models without hyperparameter tuning. It will be understood that hyperparameter tuning is the process of selecting the optimal set of hyperparameters for a DNN model, where hyperparameters are parameters whose values ​​are used to control the learning process of the DNN model.

[0132] Table 1 below depicts the performance results for both cases. It was observed that, compared to the standard technique of simply assigning the confidence score of the last layer of the model as a confidence score, the DNN model produced improved average performance (on 200 datasets) in assigning appropriate confidence scores (i.e., the overall confidence score of the model).

[0133] n=1 n=2 n=3 No hyperparameter tuning 3% 2% 1% Hyperparameter tuning 11% 10% 8%

[0134] Table 1: Average performance improvement of DNN models evaluated on 200 datasets.

[0135] It should be recognized that, although in the above embodiments the prediction module is associated with each layer of the DNN, the prediction module may also be associated with a MUSE layer (i.e., the encoder layer). Furthermore, while the embodiments of this disclosure are described in the context of a DNN model used in a chatbot setting, it is understood that the techniques described herein for addressing the overconfidence problem can be applied in a similar manner to any neural network in different settings.

[0136] Explanatory System

[0137] Figure 6 A simplified diagram of a distributed system 600 is depicted. In the example shown, the distributed system 600 includes one or more client computing devices 602, 604, 606, and 608 coupled to a server 612 via one or more communication networks 610. The client computing devices 602, 604, 606, and 608 can be configured to execute one or more applications.

[0138] In various examples, server 612 may be adapted to run one or more services or software applications that enable the implementation of one or more embodiments described in this disclosure. In some examples, server 612 may also provide other services or software applications that may include non-virtual and virtual environments. In some examples, these services may be provided as web-based services or cloud services, such as under a Software as a Service (SaaS) model, to users of client computing devices 602, 604, 606, and / or 608. Users operating client computing devices 602, 604, 606, and / or 608 may then interact with server 612 using one or more client applications to utilize the services provided by these components.

[0139] exist Figure 6 In the depicted configuration, server 612 may include one or more components 618, 620, and 622 that implement the functions performed by server 612. These components may include software components, hardware components, or combinations thereof that can be executed by one or more processors. It should be recognized that various different system configurations are possible and may differ from distributed system 600. Therefore, Figure 6 The example shown is an example of a distributed system used to implement the example system and is not intended to be limiting.

[0140] Users can use client computing devices 602, 604, 606, and / or 608 to execute one or more applications, models, or chatbots that can generate one or more events or models, which can then be implemented or served in accordance with the teachings of this disclosure. The client device can provide an interface that enables a user of the client device to interact with it. The client device can also output information to the user via this interface. Although Figure 6 Only four client computing devices are depicted, but any number of client computing devices can be supported.

[0141] Client devices can include various types of computing systems, such as portable handheld devices, general-purpose computers such as personal computers and laptops, workstations, wearable devices, gaming systems, thin clients, various messaging devices, sensors, and other sensing devices. These computing devices can run various types and versions of software applications and operating systems (e.g., Microsoft). Apple Or a UNIX-like operating system, Linux, or a Linux-like operating system, such as Google Chrome. TMTM OS), including various mobile operating systems (e.g., Microsoft Windows). Windows Android TM , Palm Portable handheld devices can include cellular phones, smartphones (e.g., ), tablet computers (e.g.) Wearable devices include Google's personal digital assistants (PDAs), personal digital assistants (PDAs), and more. Head-mounted displays and other devices. Gaming systems can include various handheld gaming devices, internet-enabled gaming devices (e.g., with or without internet access). Microsoft gesture input devices Game consoles, Sony System, by This includes various game systems and others. Client devices can run a variety of applications, such as various internet-related applications, communication applications (e.g., email applications, short message service (SMS) applications), and can use various communication protocols.

[0142] One or more networks 610 can be any type of network familiar to those skilled in the art, and can use any of a variety of available protocols to support data communication, including but not limited to TCP / IP (Transmission Control Protocol / Internet Protocol), SNA (System Network Architecture), IPX (Internet Packet Switching). etc. For example only, network(s) 610 can be a local area network (LAN), an Ethernet-based network, a token ring network, a wide area network (WAN), the Internet, a virtual network, a virtual private network (VPN), an intranet, an extranet, a public switched telephone network (PSTN), an infrared network, a wireless network (e.g., in any IEEE 1002.11 protocol suite), etc. (and / or any other wireless protocol operating network) and / or any combination of these and / or other networks.

[0143] Server 612 can consist of one or more general-purpose computers, dedicated server computers (as an example, including PC (personal computer) servers), Server 612 may consist of a server, a mid-range server, a mainframe computer, a rack-mounted server, etc., a server farm, a server cluster, or any other suitable arrangement and / or combination. Server 612 may include one or more virtual machines running a virtual operating system, or other computing architectures involving virtualization, such as one or more flexible pools of logical storage devices that can be virtualized to maintain virtual storage devices for the server. 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.

[0144] The computing system in server 612 can run one or more operating systems, including any of the operating systems discussed above and any commercial server operating system. Server 612 can also run any of a variety of additional server applications and / or middleware applications, including HTTP (Hypertext Transfer Protocol) servers, FTP (File Transfer Protocol) servers, CGI (Common Gateway Interface) servers, etc. Servers, database servers, etc. Exemplary database servers include, but are not limited to, those that can be accessed from... Database servers acquired through commercial purchases such as IBM.

[0145] In some implementations, server 612 may include one or more applications to analyze and integrate data feeds and / or event updates received from users of client computing devices 602, 604, 606, and 608. As an example, data feeds and / or event updates may include, but are not limited to, data received from one or more third-party information sources and continuous data streams. feed, The updates, or real-time updates, may include real-time events related to sensor data applications, financial quotation machines, network performance measurement tools (e.g., network monitoring and traffic management applications), clickstream analysis tools, vehicle traffic monitoring, and the like. Server 612 may also include one or more applications that display data feeds and / or real-time events via one or more display devices of client computing devices 602, 604, 606, and 608.

[0146] 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 data repositories 614, 616 may be used to store information, such as information related to the performance of the chatbot or the generated model, for use by the chatbot used by server 612 when performing various functions according to various embodiments. 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 located remotely to server 612 and communicate with server 612 via a network-based connection or a dedicated connection. 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 a relational database, such as one built by Oracle. And databases provided by other vendors. One or more of these databases can be adapted to handle the storage, updating, and retrieval of data in response to SQL-formatted commands.

[0147] In some examples, the application may also use one or more of data stores 614 and 616 to store application data. The data store used by the application can be of different types, such as, for example, a key-value store, an object store, or a general-purpose storage store supported by a file system.

[0148] In some examples, the functionality described in this disclosure may be provided as a service via a cloud environment. Figure 7 This is a simplified block diagram of a cloud-based system environment, based on certain examples, where various services can be provided as cloud services. Figure 7 In the example depicted, cloud infrastructure system 702 can provide one or more cloud services that can be requested by users 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 cloud infrastructure system 702 may be organized as general-purpose computers, dedicated server computers, server farms, server clusters, or any other suitable arrangement and / or combination.

[0149] One or more networks 710 can facilitate communication and data exchange between clients 704, 706, and 708 and cloud infrastructure system 702. One or more networks 710 may include one or more networks. 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 communication.

[0150] Figure 7 The example depicted is merely one example of a cloud infrastructure system and is not intended to be limiting. It should be recognized that in some other examples, the cloud infrastructure system 702 can have more than... Figure 7 The components shown may have more or fewer components, may combine two or more components, or may have different component configurations or arrangements. For example, although Figure 7 Three client computing devices are depicted, but any number of client computing devices can be supported in alternative examples.

[0151] The term "cloud service" is generally used to refer to services made available to users on demand by a service provider's systems (e.g., cloud infrastructure system 702) and via a communication network such as the Internet. Typically, in a public cloud environment, the servers and systems that make up the cloud service provider's systems are different from the customer's own internal servers and systems. The cloud service provider's systems are managed by the cloud service provider. Customers can therefore utilize cloud services provided by the cloud service provider without having to purchase separate licenses, support, or hardware and software resources for the services. For example, the cloud service provider's systems can host applications, and users can subscribe to and use the applications on demand via the Internet without having to purchase the infrastructure resources needed to run the applications. Cloud services are designed to provide easy, scalable access to applications, resources, and services. Several providers offer cloud services. For example, the provider in Redwood Shores, California... The company offers several cloud services, such as middleware services, database services, and Java cloud services.

[0152] In some examples, cloud infrastructure system 702 may use different models such as Software as a Service (SaaS), Platform as a Service (PaaS), Infrastructure as a Service (IaaS), and other models including hybrid service models to provide one or more cloud services. Cloud infrastructure system 702 may include a set of applications, middleware, databases, and other resources that enable the provisioning of various cloud services.

[0153] The SaaS model enables applications or software to be delivered to customers as a service via communication networks such as the internet, without requiring customers to purchase the underlying hardware or software. For example, the SaaS model can be used to provide customers with access to on-demand applications hosted by cloud infrastructure systems. Examples of the SaaS services offered by the company include, but are not limited to, those 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 a variety of other services.

[0154] The IaaS model is typically used to provide customers with infrastructure resources (such as servers, storage devices, hardware, and networking resources) as cloud services to provide elastic computing and storage capabilities. The company provides a variety of IaaS services.

[0155] The PaaS model is typically used to provide platform and environment resources as a service, enabling customers to develop, run, and manage applications and services without having to purchase, build, or maintain such resources. Examples of PaaS services provided by the company include, but are not limited to, Oracle Java Cloud Service (JCS), Oracle Database Cloud Service (DBCS), Data Management Cloud Service, various application development solutions services, and other services.

[0156] Cloud services are typically delivered on an on-demand, self-service, subscription-based, elastically scalable, reliable, highly available, and secure basis. 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 service requested in the customer's subscription order. For instance, a user may use utterances to request the cloud infrastructure system to take an action (e.g., an intent), as described above, and / or to provide services to the chatbot system described herein. Cloud infrastructure system 702 can be configured to provide one or more cloud services.

[0157] Cloud infrastructure system 702 can provide cloud services through different deployment models. In a public cloud model, cloud infrastructure system 702 can be owned by a third-party cloud service provider, and the cloud services are provided to any general public customer, who can be an individual or a business. In some other examples, under a private cloud model, cloud infrastructure system 702 can operate within an organization (e.g., within a business organization) and provide services to customers within the organization. For example, customers can be various departments within the enterprise, such as human resources, payroll, or even individuals within the enterprise. In some other examples, under a community cloud model, cloud infrastructure system 702 and the services provided can be shared by several organizations in the relevant community. Various other models, such as a hybrid of the models mentioned above, can also be used.

[0158] Client computing devices 704, 706, and 708 can be of different types (such as...) Figure 6 The client computing devices 604, 606, and 608 depicted in this disclosure are capable of operating one or more client applications. Users can use the client devices to interact with the cloud infrastructure system 702, such as requesting services provided by the cloud infrastructure system 702. For example, a user can use the client device to request information or actions from a chatbot, as described in this disclosure.

[0159] In some examples, the processing performed by cloud infrastructure system 702 to provide services may involve model training and deployment. This analysis may involve using, analyzing, and manipulating datasets to train and deploy one or more models. This analysis may be performed by one or more processors, potentially processing data in parallel, using the data to perform simulations, etc. For example, big data analysis may be performed by cloud infrastructure system 702 to generate and train one or more models for a chatbot system. 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 blobs (binary large objects)).

[0160] As in Figure 7 As depicted in the examples, cloud infrastructure system 702 may include infrastructure resources 730 for facilitating the provisioning of various cloud services offered by cloud infrastructure system 702. Infrastructure resources 730 may include, for example, processing resources, storage or memory resources, networking resources, etc. In some examples, a storage virtual machine that can be used to service storage requested from an application may be part of cloud infrastructure system 702. In other examples, the storage virtual machine may be part of a different system.

[0161] In some examples, to facilitate the efficient provisioning of these resources to support the various cloud services offered by the cloud infrastructure system 702 to different customers, resources can be bundled into collections of resources or resource modules (also known as "pods"). Each resource module or pod may include a pre-integrated and optimized combination of one or more types of resources. In some examples, different pods may be pre-provisioned for different types of cloud services. For example, a first pod may be provisioned for a database service, and a second pod may be provisioned for a Java service, where the second pod may include a different combination of resources than the pods in the first pod. For some services, resources allocated for provisioning services may be shared between services.

[0162] The cloud infrastructure system 702 can internally use service 732, which is shared by different components of the cloud infrastructure system 702 and facilitates the service provisioning of the cloud infrastructure system 702. These internally shared services may include, but are not limited to, security and identity services, integration services, enterprise repository services, enterprise manager services, virus scanning and whitelisting services, high availability, backup and recovery services, services for enabling cloud support, email services, notification services, file transfer services, etc.

[0163] Cloud infrastructure system 702 may include multiple subsystems. These subsystems may be implemented using software or hardware, or a combination thereof. Figure 7 As shown, the subsystem 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 various interfaces, such as a web interface 714, an online store interface 716 (where cloud services provided by the cloud infrastructure system 702 are advertised and available for purchase by consumers), and other interfaces 718. For example, a client may use a client device to request (service request 734) one or more services provided by the cloud infrastructure system 702 using one or more of interfaces 714, 716, and 718. For example, a client may access an online store, browse cloud services provided by the cloud infrastructure system 702, and place an order for one or more services provided by the cloud infrastructure system 702 that the client wishes to subscribe to. A service request may include information identifying the client and the one or more services the client wishes to subscribe to. For example, a client may place an order for services provided by the cloud infrastructure system 702. As part of the order, the client may provide information identifying the chatbot system for which services are to be provided, and optionally one or more credentials for the chatbot system.

[0164] In some examples, such as Figure 7 As illustrated in the example, cloud infrastructure system 702 may include an order management subsystem (OMS) 720 configured to process new orders. As part of this process, OMS 720 may be configured to: create accounts for customers (if not already created); receive invoices and / or accounting information from customers, which will be used to bill customers for the requested services; verify customer information; and, upon verification, place orders for customers; and have orchestrated various workflows to prepare orders for supply.

[0165] Once correctly verified, OMS 720 can invoke the Order Provisioning Subsystem (OPS) 724, which is configured to provision resources for the order, including processing resources, storage resources, and networking resources. Provisioning may include allocating resources for the order and configuring resources to facilitate the service requested by the customer's order. The method and type of resource provisioning for the order may depend on the type of cloud service the customer has subscribed to. For example, according to a workflow, OPS 724 may be configured to determine the specific cloud service requested and identify multiple clusters that may have been pre-configured for that specific cloud service. The number of clusters allocated to the order may depend on the size / quantity / level / scope of the requested service. For example, the number of clusters to be allocated may be determined based on the number of users supported by the service, the duration of the requested service, etc. The allocated clusters can then be customized for the specific requesting customer to provide the requested service.

[0166] In some examples, the setup phase processing described above can be performed by cloud infrastructure system 702 as part of the provisioning process. Cloud infrastructure system 702 can generate application IDs and select storage virtual machines for the application from storage virtual machines provided by cloud infrastructure system 702 itself or from storage virtual machines provided by other systems besides cloud infrastructure system 702.

[0167] 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 cases, information (e.g., a link) may be sent to the client, enabling them to begin using and taking advantage of the benefits of the requested service. In some examples, for the client requesting the service, the response may include a chatbot system ID generated by cloud infrastructure system 702 and information identifying the chatbot system selected by cloud infrastructure system 702 for the chatbot system corresponding to the chatbot system ID.

[0168] Cloud infrastructure system 702 can provide services to multiple customers. 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 can also collect usage statistics about customers' use of subscribed services. For example, statistics can be collected on storage usage, data transfer volume, number of users, system uptime, and system downtime. This usage information can be used for billing customers. Billing can be, for example, on a monthly basis.

[0169] Cloud infrastructure system 702 can provide services to multiple customers in parallel. Cloud infrastructure system 702 can store information about these customers, including potentially proprietary information. In some examples, cloud infrastructure system 702 includes an Identity Management Subsystem (IMS) 728, which is configured to manage customer information and provide separation of the managed information, making information associated with one customer inaccessible to another. IMS 728 can be configured to provide various security-related services, such as identity services, information access management, authentication and authorization services, services for managing customer identities and roles and related capabilities, and so on.

[0170] Figure 8 An example of a computer system 800 is illustrated. In some examples, computer system 800 can be used to implement any digital assistant or chatbot system within a distributed environment and within the various servers and computer systems described above. Figure 8As shown, the computer system 800 includes various subsystems, including a processing subsystem 804 that communicates with multiple other subsystems via a bus subsystem 802. These other subsystems may include a processing acceleration unit 806, an I / O subsystem 808, a storage subsystem 818, and a communication subsystem 824. The storage subsystem 818 may include a non-transitory computer-readable storage medium, which includes storage medium 822 and system memory 810.

[0171] Bus subsystem 802 provides a mechanism for enabling various components and subsystems of computer system 800 to communicate with each other as desired. While bus subsystem 802 is schematically shown as a single bus, alternative examples of the bus subsystem may utilize multiple buses. Bus subsystem 802 can be any of several types of bus architectures, including memory buses or memory controllers, peripheral buses, local buses using any of the various bus architectures, etc. For example, such architectures may include Industry Standard Architecture (ISA) buses, Micro Channel Architecture (MCA) buses, Enhanced ISA (EISA) buses, Video Electronics Standards Association (VESA) local buses, and Peripheral Component Interconnect (PCI) buses, which may be implemented as mezzanine buses manufactured according to the IEEE P1386.1 standard, etc.

[0172] 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). Processors may include single-core or multi-core processors. 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 dedicated coprocessors, such as graphics processors, digital signal processors (DSPs), etc. In some examples, some or all of processing subsystem 804 may be implemented using custom circuitry, such as application-specific integrated circuits (ASICs) or field-programmable gate arrays (FPGAs).

[0173] In some examples, the processing units in the processing subsystem 804 can execute instructions stored in system memory 810 or on computer-readable storage medium 822. In various examples, the processing units can execute various program or code instructions and can maintain multiple concurrently executing programs or processes. At any given time, some or all of the program code to be executed can reside in system memory 810 and / or on computer-readable storage medium 822, including possibly on one or more storage devices. With appropriate programming, the processing subsystem 804 can provide the various functions described above. In the case where the computer system 800 is executing one or more virtual machines, one or more processing units can be assigned to each virtual machine.

[0174] In some examples, a processing acceleration unit 806 may optionally be provided to perform custom processing or to offload some processing performed by the processing subsystem 804, thereby accelerating the overall processing performed by the computer system 800.

[0175] I / O subsystem 808 may include devices and mechanisms for inputting information to and / or outputting information from or via computer system 800. Generally, the term "input device" is used to include all possible types of devices and mechanisms for inputting information to computer system 800. User interface input devices may include, for example, keyboards, pointing devices such as mice or trackballs, touchpads or touchscreens incorporated into a display, scroll wheels, click wheels, dials, buttons, switches, keypads, audio input devices with voice command recognition systems, microphones, and other types of input devices. User interface input devices may also include features such as Microsoft's [unclear - possibly related to a specific technology or system] that enable users to control and interact with the input device. Motion sensors for motion sensing and / or posture recognition devices, Microsoft The 360 ​​game controller provides an interface for receiving input using gestures and spoken commands. The user interface input device may also include eye gesture recognition devices, such as detecting eye activity from the user (e.g., "blinking" when taking a picture and / or making menu selections) and translating the eye gesture into the input device (e.g., Google). Google input Blink detector. Additionally, the user interface input device may include enabling the user to interact with a voice recognition system (e.g., ...) via voice commands. Voice recognition sensing devices for interaction with navigators.

[0176] Other examples of user interface input devices include, but are not limited to, 3D mice, joysticks or pointers, gamepads and graphics tablets, and audio / video devices such as speakers, digital cameras, digital camcorders, portable media players, webcams, image scanners, fingerprint scanners, barcode readers, 3D scanners, 3D printers, laser rangefinders, and eye-tracking devices. Furthermore, user interface input devices may include, for example, medical imaging input devices such as computed tomography, magnetic resonance imaging, positional emission computed tomography, and medical ultrasound examination equipment. User interface input devices may also include, for example, audio input devices such as MIDI keyboards, digital musical instruments, etc.

[0177] Generally, the term "output device" is used to encompass all possible types of devices and mechanisms for outputting information from a computer system 800 to a user or other computer. User interface output devices may include display subsystems, indicator lights, or non-visual displays such as audio output devices. Display subsystems may be cathode ray tubes (CRTs), flat panel devices such as those utilizing liquid crystal displays (LCDs) or plasma displays, projection devices, touchscreens, etc. For example, user interface output devices may include, but are not limited to, various display devices that visually convey text, graphics, and audio / video information, such as monitors, printers, speakers, headphones, car navigation systems, plotters, voice output devices, and modems.

[0178] Storage subsystem 818 provides a repository or data storage facility for storing information and data used by computer system 800. Storage subsystem 818 provides a tangible, non-transitory, computer-readable storage medium for storing basic programming and data constructs that provide some example functionality. Storage subsystem 818 may store software (e.g., programs, code modules, instructions) that provides the aforementioned functionality when executed by processing subsystem 804. The software may be executed by one or more processing units of processing subsystem 804. Storage subsystem 818 may also provide certification according to the teachings of this disclosure.

[0179] The storage subsystem 818 may include one or more non-transitory memory devices, including volatile and non-volatile memory devices. For example... Figure 8As shown, the storage subsystem 818 includes system memory 810 and computer-readable storage medium 822. System memory 810 may include multiple memories, including volatile main random access memory (RAM) for storing instructions and data during program execution, and non-volatile read-only memory (ROM) or flash memory where fixed instructions are stored. In some embodiments, the basic input / output system (BIOS) may typically be stored in ROM, containing basic routines that facilitate the transfer of information between elements within the computer system 800, for example, during startup. RAM typically contains data and / or program modules currently operated and executed by the processing subsystem 804. In some embodiments, system memory 810 may include various different types of memory, such as static random access memory (SRAM), dynamic random access memory (DRAM), etc.

[0180] For example, rather than a limitation, such as Figure 8 As shown, system memory 810 can load an application 812, program data 814, and operating system 816 that are being executed, which may include various applications (such as web browsers, middleware applications, relational database management systems (RDBMS), etc.). As an example, operating system 816 may include various versions of Microsoft... Apple and / or Linux operating system, various commercial Or a UNIX-like operating system (including but not limited to various GNU / Linux operating systems, Google...) OS (and / or mobile operating systems, such as iOS) and / or mobile operating systems Phone OS OS OS operating system, and other operating systems.

[0181] Computer-readable storage medium 822 can store programming and data structures that provide some example functionality. Computer-readable storage medium 822 can provide storage for computer-readable instructions, data structures, program modules, and other data for computer system 800. When executed by processing subsystem 804, the software (programs, code modules, instructions) providing the above functionality can be stored in storage subsystem 818. As an example, computer-readable storage medium 822 may include non-volatile memory, such as hard disk drives, disk drives, such as CD-ROMs, DVDs, Blu-ray discs, etc. Optical disc drives for (Blu-ray) discs or other optical media. Computer-readable storage media 822 may include, but are not limited to, Drives, flash memory cards, Universal Serial Bus (USB) flash drives, Secure Digital (SD) cards, DVD discs, digital video tapes, etc. Computer-readable storage media 822 may also include solid-state drives (SSDs) based on non-volatile memory (such as flash memory-based SSDs, enterprise flash drives, solid-state ROMs, etc.), volatile memory-based SSDs (such as solid-state RAM, dynamic RAM, static RAM, DRAM-based SSDs, magnetoresistive RAM (MRAM) SSDs), and hybrid SSDs using a combination of DRAM-based and flash memory-based SSDs.

[0182] In some examples, the storage subsystem 818 may also include a computer-readable storage medium reader 820, which may also be connected to a computer-readable storage medium 822. The reader 820 may receive and be configured to read data from a memory device such as a disk, flash drive, etc.

[0183] In some examples, computer system 800 may support virtualization technologies, including but not limited to the 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 hypervisors that facilitate the configuration and management of virtual machines. Memory, computing (e.g., processor, cores), I / O, and networking resources may be allocated to each virtual machine. Each virtual machine typically runs independently of other virtual machines. Virtual machines typically run their own operating systems, which may be the same as or different from the operating systems executed by other virtual machines executed by computer system 800. Therefore, computer system 800 may potentially run multiple operating systems simultaneously.

[0184] The communication subsystem 824 provides an interface to other computer systems and networks. The communication subsystem 824 serves as an interface for receiving data from the computer system 800 and transmitting data to other systems. For example, the communication subsystem 824 enables the computer system 800 to establish a communication channel via the Internet to one or more client devices for receiving and sending information to client devices. For example, when the computer system 800 is used to implement... Figure 1 When the robot system 120 is described, the communication subsystem can be used to communicate with the chatbot system selected for the application.

[0185] The communication subsystem 824 may support both wired and / or wireless communication protocols. In some examples, the communication subsystem 824 may include radio frequency (RF) transceiver components, global positioning system (GPS) receiver components, and / or other components for accessing wireless voice and / or data networks using cellular telephone technology, advanced data network technologies such as 3G, 4G, or EDGE (Global Evolution Enhanced Data Rate), WiFi (IEEE 802.XX family of standards), or other mobile communication technologies, or any combination thereof. In some examples, as an addition to or alternative to the wireless interface, the communication subsystem 824 may provide a wired network connection (e.g., Ethernet).

[0186] The communication subsystem 824 can receive and transmit data in various forms. In some examples, among others, the communication subsystem 824 can also receive input communications in the form of structured and / or unstructured data feeds 826, event streams 828, event updates 830, etc. For example, the communication subsystem 824 can be configured to receive data in real time from users on social media networks and / or other similar platforms. feed, Updates, web feeds such as Rich Site Summary (RSS) feeds, other communication services receive (or send) data feeds 826, and / or real-time updates from one or more third-party information sources.

[0187] In some examples, the communication subsystem 824 can be configured to receive data that may be inherently continuous or unbounded without a definite end, in the form of a continuous data stream, wherein the continuous data stream may include an event stream 828 of real-time events and / or event updates 830. Examples of applications that generate continuous data may include, for example, sensor data applications, financial quotation machines, network performance measurement tools (e.g., network monitoring and traffic management applications), clickstream analysis tools, vehicle traffic monitoring, etc.

[0188] The communication subsystem 824 can also be configured to transmit data from computer system 800 to other computer systems or networks. Data can be transmitted to one or more databases in various forms, such as structured and / or unstructured data feeds 826, event streams 828, event updates 830, etc., and these one or more databases can communicate with one or more streaming data sources coupled to computer system 800.

[0189] The computer system 800 can be of a variety of types, including handheld portable devices (e.g., Cellular phone Computing tablets, PDAs), and wearable devices (e.g., Google). Head-mounted displays, personal computers, workstations, mainframes, information stations, server racks, or any other data processing systems. Due to the constantly evolving nature of computers and networks, [the following is relevant:] Figure 8 The description of the computer system 800 shown in the figure is intended only as a concrete example. It has more than Figure 8 Many other configurations of the system, with more or fewer components, are possible. Based on the disclosures and teachings provided herein, it should be recognized that other ways and / or methods exist to implement the various examples.

[0190] While specific examples have been described, various modifications, alterations, alternative constructions, and equivalents are possible. The examples are not limited to operations within certain specific data processing environments but can operate freely within multiple data processing environments. Furthermore, although some examples have been described using a specific series of transactions and steps, it will be clear to those skilled in the art that this is not intended to be limiting. While some flowcharts describe operations as sequential processes, many operations can be performed in parallel or simultaneously. Moreover, the order of operations can be rearranged. Processes may have additional steps not included in the diagrams. Various features and aspects of the above examples can be used individually or in combination.

[0191] Furthermore, while certain examples have been described using specific combinations of hardware and software, it should be recognized that other combinations of hardware and software are also possible. Some examples can be implemented using only hardware, only software, or a combination thereof. The various processes described herein can be implemented in any combination on the same or different processors.

[0192] When a device, system, component, or module is described as being configured to perform certain operations or functions, such configuration can be achieved, for example, by designing electronic circuits to perform the operations, by programming programmable electronic circuits (such as microprocessors), such as by executing computer instructions or code, or by programming a processor or core to execute code or instructions stored on a non-transitory storage medium, or any combination thereof. Processes can communicate using various technologies, including but not limited to conventional technologies for inter-process communication, and different pairs of processes can use different technologies, or the same pair of processes can use different technologies at different times.

[0193] Specific details are set forth in this disclosure to provide a thorough understanding of the examples. However, the examples may be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been shown without unnecessary details to avoid obscuring the examples. This description provides exemplary examples only and is not intended to limit the scope, applicability, or configuration of other examples. Rather, the prior description of the examples will provide those skilled in the art with enabling descriptions for implementing the various examples. Various changes can be made to the function and arrangement of the elements.

[0194] Therefore, the specification and drawings should be considered illustrative rather than restrictive. However, it will be clear that additions, omissions, deletions, and other modifications and changes may be made therein without departing from the broader spirit and scope set forth in the claims. Thus, while specific examples have been described, they are not intended to be limiting. Various modifications and equivalents are within the scope of the appended claims.

[0195] In the foregoing specification, aspects of this disclosure have been described with reference to specific examples therein; however, those skilled in the art will recognize that this disclosure is not limited thereto. The various features and aspects of the foregoing disclosure may be used alone or in combination. Furthermore, the examples may be utilized in any number of environments and applications beyond those described herein without departing from the broader spirit and scope of this specification. Therefore, this specification and the accompanying drawings are to be considered illustrative rather than restrictive.

[0196] In the foregoing description, the methods have been described in a specific order for illustrative purposes. It should be recognized that, in alternative examples, these methods may be performed in a different order than described. It should also be recognized that the methods described above can be executed by hardware components or can be implemented in a sequence of machine-executable instructions that can be used to cause a machine, such as a general-purpose or special-purpose processor, or logic circuits programmed with instructions, to execute the methods. These machine-executable instructions can be stored on one or more machine-readable media, such as a CD-ROM or other types of optical discs, floppy disks, ROM, RAM, EPROM, EEPROM, magnetic cards or optical cards, flash memory, or other types of machine-readable media suitable for storing electronic instructions. Alternatively, these methods can be executed by a combination of hardware and software.

[0197] When a component is described as being configured to perform certain operations, such configuration can be accomplished, for example, by designing electronic circuits or other hardware to perform the operations, by programming programmable electronic circuits (e.g., microprocessors or other suitable electronic circuits), or any combination thereof.

[0198] While illustrative examples of this application have been described in detail herein, it should be understood that the inventive concept may be implemented and adopted in other ways, and the appended claims are intended to be construed as including such variations, in addition to being limited by the prior art.

Claims

1. A method for use in a chatbot system, the method comprising: For each of the multiple layers in a machine learning model, the distribution of confidence scores is generated for multiple predictions with respect to utterances input in natural language; Based on the distribution of confidence scores generated for each layer of the machine learning model, a prediction for the utterance is determined for that layer. Based on the determination, the overall prediction of the machine learning model for the utterance is generated by assigning the prediction of the last layer of the machine learning model, which has the highest confidence score in the distribution of confidence scores associated with the last layer, to the overall prediction of the machine learning model for the utterance. The last layer is the output layer of the machine learning model. Iteratively processing a subset of the plurality of layers of the machine learning model to identify layers of the machine learning model whose assigned predictions for the utterance satisfy the criteria, wherein the plurality of layers of the machine learning model comprises N layers, and the subset of the plurality of layers corresponds to the first N-1 layers of the machine learning model, wherein identifying the layers includes: The following specific layers are searched in order from the first layer to the (N-1)th layer of the machine learning model, wherein the prediction assigned to that specific layer for the utterance is the same as the overall prediction for the utterance; and In response to finding the specific layer, the search is stopped; and The confidence score associated with the assigned prediction of the specific layer identified in the subset is assigned as the overall confidence score to be associated with the overall prediction of the machine learning model for the utterance. The machine learning model mentioned therein is a deep neural network model.

2. The method as described in claim 1, wherein, Determining the predictions for the utterance to be assigned to each layer of the machine learning model further includes: The prediction with the highest confidence score among the multiple predictions generated for that layer is assigned as the prediction for that layer for the utterance.

3. The method as described in claim 1, wherein, The machine learning model includes an encoder configured to receive the input utterance and generate an embedded encoder, and each of the multiple layers of the machine learning model includes a prediction module configured to generate a distribution of confidence scores associated with that layer.

4. The method of claim 3, wherein, A first prediction module associated with a first layer of the machine learning model generates a first distribution of confidence scores associated with the first layer based on the embeddings generated by the encoder, and a second layer of the machine learning model generates a second distribution of confidence scores associated with the second layer based on the embeddings processed by the first layer.

5. A computing device for use in a chatbot system, the computing device comprising: processor; as well as The memory includes instructions that, when executed by the processor, cause the computing device to perform at least the following operations: For each of the multiple layers in a machine learning model, the distribution of confidence scores is generated for multiple predictions with respect to utterances input in natural language; Based on the distribution of confidence scores generated for each layer of the machine learning model, a prediction for the utterance is determined for that layer. The overall prediction of the machine learning model for the utterance is generated by assigning the prediction of the last layer of the machine learning model, which is the output layer of the machine learning model, to the prediction with the highest confidence score in the distribution of confidence scores associated with the last layer, as the overall prediction of the machine learning model for the utterance. Iteratively processing a subset of the plurality of layers of the machine learning model to identify layers of the machine learning model whose assigned predictions for the utterance satisfy the criteria, wherein the plurality of layers of the machine learning model comprises N layers, and the subset of the plurality of layers corresponds to the first N-1 layers of the machine learning model, wherein identifying the layers includes: The following specific layers are searched in order from the first layer to the (N-1)th layer of the machine learning model, wherein the prediction assigned to that specific layer for the utterance is the same as the overall prediction for the utterance; and In response to finding the specific layer, the search is stopped; and The confidence score associated with the assigned prediction of the specific layer identified in the subset is assigned as the overall confidence score to be associated with the overall prediction of the machine learning model for the utterance. The machine learning model mentioned therein is a deep neural network model.

6. The computing device as claimed in claim 5, wherein, The processor is further configured to assign the prediction with the highest confidence score among the plurality of predictions in the distribution of confidence scores generated for each layer as the prediction for the utterance at that layer.

7. The computing device as claimed in claim 5, wherein, The machine learning model includes an encoder configured to receive the input utterance and generate an embedded encoder, and each of the multiple layers of the machine learning model includes a prediction module configured to generate a distribution of confidence scores associated with that layer.

8. The computing device of claim 7, wherein, A first prediction module associated with a first layer of the machine learning model generates a first distribution of confidence scores associated with the first layer based on the embeddings generated by the encoder, and a second layer of the machine learning model generates a second distribution of confidence scores associated with the second layer based on the embeddings processed by the first layer.

9. A computer-readable medium comprising instructions that, when executed by a processor, cause the processor to perform the method as described in any one of claims 1-4.

Citation Information

Patent Citations

  • Routing for chatbots

    US20200342850A1