In computer science, machine learning refers to using techniques that allow a computer system to “learn” to perform a specific task without being explicitly programmed to do so. One type of machine learning is classification, which includes the selection of one of multiple categories that a particular item or sample is assigned to. For example, classification may be used to determine whether an input email message belongs in a “spam” category or a “not spam” category.
Some implementations are described with respect to the following figures.
In accordance with some implementations, examples are provided for automated assignment of electronic requests. In some examples, a computer system may automatically assign an electronic request to one of multiple request handlers. However, in the event of an assignment to a wrong handler, re-assigning the electronic request may require time and effort. As such, the incorrect assignment of the electronic request can result in wasted resources and/or cost. Further, completion of the electronic request may be delayed, and may thus cause a deadline or service requirement to be missed.
As described further below with reference to
Referring now to
In one or more implementations, the computing device 110 may assign the electronic request 180 to one of multiple request handlers 190A-190N (also referred to generally as request handlers 190). In some implementations, the computing device 110 may assign the electronic request 180 based on the unstructured data fields 184 and/or the structured data fields 188. The assignment of the electronic request 180 is described further below with reference to
Referring now to
In one or more implementations, the machine-readable storage 130 may include a request management module 140, a request database 142, a probabilistic classifier model 144, a neural network model 146, and a pre-trained classifier model 148. In some implementations, some or all of these elements included in the machine-readable storage 130 may be implemented as machine-readable instructions (e.g., software and/or firmware) that are executable by the processor(s) 115.
In one or more implementations, the request management module 140 may receive an electronic request, and may assign the received request to a specific handler. The request management module 140 may select the handler using the probabilistic classifier model 144, the neural network model 146, and/or the pre-trained classifier model 148. In some examples, the probabilistic classifier model 144 may be implemented using a naïve Bayes classifier. Further, in some examples, the neural network model 146 may be implemented using a recurrent neural network (RNN). In some examples, the pre-trained classifier model 148 may be implemented using a probabilistic classifier (e.g., a Bayesian model).
In some implementations, the request database 142 may store data regarding the electronic requests that have been received and/or assigned by the request management module 140. For example, the request database 142 may store, for each previously-received request, structured data, unstructured data, assigned handlers, request status, time consumed, request cost, request priority, request order, and so forth. In some implementations, the request database 142 may store data in one or more organized structures (e.g., relational tables, extensible markup language (XML) files, flat files, and so forth).
In one or more implementations, prior to receipt of the electronic request, the neural network model 146 and/or the pre-trained classifier model 148 may be trained using data in the request database 142. For example, the neural network model 146 and/or the pre-trained classifier model 148 may be trained using unstructured data fields stored in the request database 142 (e.g., the title field and/or description field of all historical requests). In some examples, the neural network model 146 and/or the pre-trained classifier model 148 may be trained periodically (e.g., daily, weekly, etc.), in response to a defined change in the request database 142 (e.g., for each request added or updated, for every ten requests, for a given percentage change, etc.).
In one or more implementations, the probabilistic classifier model 144 may not be trained prior to receipt of a request. For example, the probabilistic classifier model 144 may be newly trained in response to each request that is received. The use of the probabilistic classifier model 144 is described further below with reference to
Referring now to
Block 310 may include receiving an electronic request. For example, referring to
Diamond 320 may include making a determination about whether the quantity of available handlers is greater than a defined handler threshold. For example, referring to
If it is determined at diamond 320 that the quantity of available handlers is not greater than the handler threshold, then the process 300 continues at block 360, which includes selecting the handler using a pre-trained classification model. For example, referring to
However, if it is determined at diamond 320 that the quantity of available handlers is greater than the handler threshold, then the process 300 continues at diamond 330. Diamond 330 may include making a determination about whether the quantity of previous requests is greater than a defined request threshold. For example, referring to
If it is determined at diamond 330 that the quantity of previous requests is greater than the request threshold, then the process 300 continues at block 350, which includes selecting the handler using a neural network model. For example, referring to
However, if it is determined at diamond 330 that the quantity of previous requests is not greater than the request threshold, then the process 300 continues at block 340, which includes selecting the handler using a probabilistic classification model. For example, referring to
In some implementations, the process 300 may allow different types of classification models (i.e., probabilistic, neural network, and pre-trained) to be used in the automated assignment of requests to handlers. For example, the type of model used may be based on the quantity of available handlers and/or the quantity of previous requests. Accordingly, some implementations may provide automated assignment using models that are suited to characteristics of the organization or entity handling the request.
Referring now to
Assume that the operations 410-450 are performed in response to the receipt of the electronic request 180. Operation 410 may identify a set of previous requests using the structured data of the received request 180. For example, operation 410 may involve identifying the subset of the previous requests in the request database 142 that match one or more fields of the structured data 188 in the received request 180 (e.g., device, location, urgency, organization, etc.). The identified set of previous requests may be referred to as being “similar” to the received request 180 in terms of structured data.
Operation 420 may train a probabilistic classification model using the structured data of the identified set of previous requests. For example, operation 420 may involve training the probabilistic classification model 144 (shown in
Operation 430 may execute the trained probabilistic classification model using the unstructured data fields 184 of the received request 180. In some implementations, the output of executing the trained probabilistic classification model may include a set of candidate handlers that can be assigned to the received request 180.
Operation 440 may sort the output of the probabilistic classification model. For example, operation 440 may involve sorting the set of candidate handlers (provided by operation 430) according to one or more sorting rules. The sorting rules may be defined to identify the candidate handler that is best suited to handle the received request 180. For example, the sorting rules may sort according to the handler's status (e.g., idle, active, waiting, etc.), the handler's average resolution time of past requests, the number of pending requests in the handler's backlog, and so forth.
Operation 450 may select the request handler using the sorted output of the probabilistic classification model. For example, operation 450 may involve assigning the received request 180 to the candidate handler that is sorted first based on one or more sorting rules (e.g., the handler that is currently active and has the smallest number of pending requests).
In some examples, the probabilistic classification model may assign class labels to request instances. The class labels may be represented as vectors of feature values, where the class labels are drawn from a finite set. The probabilistic classification model may assume that the value of a particular feature is independent of the value of any other feature, given the class variable. The probabilistic classification model may be trained at runtime for each new request 180.
Referring now to
Operation 510 may train a neural network model using the unstructured data of previous requests. For example, operation 510 may involve training a neural network model using the unstructured data fields of all (or a portion of) the previous requests in the request database 142. In some implementations, the neural network may be trained prior to the receipt of the electronic request 180. Further, in some examples, the neural network model may be a recurrent neural network (RNN).
Operation 520 may, in response to the receipt of the request 180, execute the trained neural network model using the unstructured data 184 of the received request 180. For example, operation 520 may involve executing a trained RNN using the unstructured data fields 184 of the received request 180.
Operation 530 may select the request handler using the output of the neural network model. For example, operation 530 may involve assigning the received request 180 to the candidate handler identified by the output of executing the trained RNN.
In some examples, the trained RNN may be referred to as a deep learning neural network for natural language processing. The RNN may be an artificial neural network in which connections between nodes form a directed graph along a sequence. Further, the nodes could be various types of neural networks. In some examples, the trained neural network model may be a bi-directional Gated Recurrent Unit (GRU) model which uses a finite sequence to predict or label each element of the sequence based on the element's past and future contexts. In some examples, the outputs of two RNNs may be concatenated, with one RNN processing the sequence from left to right, and the other RNN processing the sequence from right to left.
Referring now to
Operation 610 may pre-train a classification model using the unstructured data of previous requests. In some implementations, a “pre-trained” model refers to a model that is trained prior to receipt of a current request to be classified by the model. For example, operation 610 may involve, prior to the receipt of the electronic request 180, training a classification model using the unstructured data fields of all (or a portion of) the previous requests in the request database 142.
Operation 620 may, in response to the receipt of the request 180, execute the pre-trained classification model using the unstructured data 184 of the received request 180. Operation 630 may select the request handler using the output of the executed model. For example, operation 630 may involve assigning the received request 180 to the candidate handler identified by the output of executing the pre-trained classification model. In some examples, the pre-trained classification model may use a Bayesian Inference algorithm, an Information Theory algorithm, and so forth. Further, in some examples, the pre-trained classification model may group historical requests by handler (also referred to as the “assignee”).
Referring now to
Block 710 may include receiving an electronic request comprising one or more structured data fields and one or more unstructured data fields. For example, referring to
Block 720 may include, in response to a receipt of the electronic request, identifying a set of previous electronic requests using the one or more structured data fields of the received electronic request. For example, referring to
Block 730 may include training a probabilistic classification model using at least one structured data field of the identified set of previous electronic requests. For example, referring to
Block 740 may include executing the trained probabilistic classification model using the one or more unstructured data fields of the received electronic request. For example, referring to
Block 750 may include selecting a request handler using an output of the executed probabilistic classification model. For example, referring to
Referring now to
Instruction 810 may be executed to, in response to a receipt of an electronic request comprising a structured data field and an unstructured data field, identify a set of previous electronic requests using the structured data fields of the received electronic request.
Instruction 820 may be executed to train a classification model using at least one structured data field of the identified set of previous electronic requests.
Instruction 830 may be executed to execute the trained classification model using the unstructured data field of the received electronic request.
Instruction 840 may be executed to select a request handler using an output of the executed classification model.
Referring now to
Instruction 910 may be executed to, in response to a receipt of an electronic request comprising one or more structured data fields and one or more unstructured data fields, identify a set of previous electronic requests using the one or more structured data fields of the received electronic request.
Instruction 920 may be executed to train a probabilistic classification model using at least one structured data field of the identified set of previous electronic requests.
Instruction 930 may be executed to execute the trained probabilistic classification model using the one or more unstructured data fields of the received electronic request.
Instruction 940 may be executed to automatically select a request handler using an output of the executed probabilistic classification model.
In accordance with some implementations, examples are provided for automated assignment of electronic requests. In some implementations, a computing device may identify a set of previous electronic requests using structured data fields of a received electronic request. The computing device may train a classification model using a structured data field of the identified set of previous electronic requests. The computing device may execute the trained classification model using unstructured data fields of the received electronic request, and select a request handler based on the output of the executed model. Accordingly, some implementations may avoid or reduce incorrect assignments of electronic requests, and may thus provide automated assignment of electronic requests to request handlers.
Further, some implementations may include using a pre-trained classification model and/or a neural network model based on the quantity of available handlers and/or the quantity of previous requests. Accordingly, some implementations may provide automated assignment using models that are best suited to characteristics of the organization or entity handling the request.
Note that, while
Data and instructions are stored in respective storage devices, which are implemented as one or multiple computer-readable or machine-readable storage media. The storage media include different forms of non-transitory memory including semiconductor memory devices such as dynamic or static random access memories (DRAMs or SRAMs), erasable and programmable read-only memories (EPROMs), electrically erasable and programmable read-only memories (EEPROMs) and flash memories; magnetic disks such as fixed, floppy and removable disks; other magnetic media including tape; optical media such as compact disks (CDs) or digital video disks (DVDs); or other types of storage devices.
Note that the instructions discussed above can be provided on one computer-readable or machine-readable storage medium, or alternatively, can be provided on multiple computer-readable or machine-readable storage media distributed in a large system having possibly plural nodes. Such computer-readable or machine-readable storage medium or media is (are) considered to be part of an article (or article of manufacture). An article or article of manufacture can refer to any manufactured single component or multiple components. The storage medium or media can be located either in the machine running the machine-readable instructions, or located at a remote site from which machine-readable instructions can be downloaded over a network for execution.
In the foregoing description, numerous details are set forth to provide an understanding of the subject disclosed herein. However, implementations may be practiced without some of these details. Other implementations may include modifications and variations from the details discussed above. It is intended that the appended claims cover such modifications and variations.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CN2018/087818 | 5/22/2018 | WO |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2019/222908 | 11/28/2019 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
9299031 | Jan | Mar 2016 | B2 |
9477963 | Kar | Oct 2016 | B2 |
10650432 | Joseph | May 2020 | B1 |
10958779 | Rule | Mar 2021 | B1 |
11263473 | Kim | Mar 2022 | B2 |
11416867 | Lopes | Aug 2022 | B2 |
11758231 | Laverty | Sep 2023 | B2 |
11816709 | Rosas-Maxemin | Nov 2023 | B2 |
20170180201 | Guven | Jun 2017 | A1 |
20190065991 | Guggilla | Feb 2019 | A1 |
20190288852 | Shetye | Sep 2019 | A1 |
20210049421 | Tandecki | Feb 2021 | A1 |
20210103610 | Lee | Apr 2021 | A1 |
20210201393 | Tang | Jul 2021 | A1 |
20210350382 | Lopes | Nov 2021 | A1 |
20210383453 | Gupta | Dec 2021 | A1 |
20220182239 | Hassanzadeh | Jun 2022 | A1 |
20230104757 | Pramod | Apr 2023 | A1 |
Number | Date | Country |
---|---|---|
106294466 | Jan 2017 | CN |
103620587 | May 2017 | CN |
107516135 | Dec 2017 | CN |
Entry |
---|
BMC Software Inc. Analytics, Machine Learning, and Incident Management; Five Strategies To Move From A Reactive To Proactive Approach; 2016; 13 pages. |
Capgemini ; Automate Trouble Ticketing Management with Natural Language Processing; https://www.capgemini.com/2016/12/automate-trouble-ticketing-management-with-natural-language-processing/; 2018; 8 pages. |
Dorothea Wiesmann; IBM Research-Zurich; Machine Learning & Predictive Analytics For IT Services; Broad Application of Analytics and Data Science; IBM 2013; 17 pages. |
ISRWO—Search Report/Written Opinion; PCT/CN2018/087818; dated Feb. 19, 2019; 9 Pages. |
Sunview Software; Service Smart Technology; Leverage Big Data and Machine Learning To Deliver Intelligent Features for ITSM; Service Managment Built With Intelligence; https://www.sunviewsoftware.com/our-technology; Feb. 2, 2018; 9 pages. |
Vesna Soraic; IT Service Management Made Smarter with Machine Learning; https://itsm.tools/service-management-made-smarter-machine-learning/; Feb. 1, 2018; 4 pages. |
Number | Date | Country | |
---|---|---|---|
20210224593 A1 | Jul 2021 | US |