For purposes of identifying outdated and/or ineffective rules and policies, a business enterprise may solicit suggestions from its employees. In this manner, employees may submit, for example, email suggestions to the human resources group of the enterprise, and employees of the human resources group may classify/sort the submissions so that employees of the appropriate department are notified. In this manner, a given suggestion may concern a particular enterprise service, travel, finance, software, and so forth.
Techniques and systems are disclosed herein for purposes of receiving a submission previously classified by one or multiple human classifiers and processing this submission in a computer-based system to further improve the classification of the submission.
As a more specific example, a given business enterprise may have a suggestion initiative in which suggestions by its employees are solicited for purposes of updating outdated and/or otherwise inappropriate rules and policies of the enterprise. These suggestions, called “submissions” herein, may be classified by one or multiple employees of the enterprise. In this regard, a given submission may first be classified by the employee (called the “submitter” herein) and then be further classified by an employee of the human resources department, and this classification may, for example, be forwarded to a business unit associated with the classification for further classification.
Although initiatives to solicit such submissions may generally boost employee morale, such initiatives have certain risks of being counterproductive, in that the initiative may produce voluminous amounts of suggestions, which may result in a considerable amount of work related to the classifications. In other words, a considerable number of employees may be involved in sorting through the submissions to make sure that a given submission ends up with the appropriate employee in position to take action on the submission. The initiative may be relatively unsuccessful if, due to the large volume, a significant number of the submissions are not processed or incorrectly classified.
As a more specific example, a given submission may be classified, or mapped, to one of a predefined set of classes. Such classes may correspond to departments and/or functions of the enterprises, such as, for example, travel, human resources, finance, enterprise services, software, payroll, real estate and legal, as just a few examples. The goal of the classification process, in general, is to efficiently and accurately redirect the submissions to the appropriate employees of the enterprise so that these employees may consider and possibly act on the submissions.
As noted above, a given submission may be classified by multiple people in multiple business units. For example, the employee (i.e., the “submitter”) who makes a particular submission may make an initial classification by selecting a classification from a predefined set of classes, such as a drop window selection of classes provided by the enterprise's submission software. Unfortunately, however, the classification by the employee submitter may be relatively inaccurate, and therefore, a human resources employee may further classify the submission a second time for purposes of ideally improving the classification. The classification by the human resource employee, in turn, may not always be relatively accurate either; and as such, a third classification of the submission may be performed by a person in another business unit, such as a person in the enterprise services, travel, finance, or software business units (as a few examples) for purposes of once again attempting to more accurately route the submission to the appropriate employee.
Systems and techniques are disclosed herein for purposes of using a computer-based approach to generate relatively accurate classification for a given submission based on a relatively few number of human classifications. As further disclosed herein, because humans performing the classifications may be confined by certain time constraints or experience levels, models are developed in accordance with the systems and techniques that are disclosed herein to model the classification behavior exhibited at the various classification levels and further improve the classification based on this modeling.
As a more specific example, a business enterprise may use a computer-based system 10, which is depicted in
More specifically, the system 10 includes a physical machine 20, which contains a set of machine executable instructions to form a classification engine 50 for purposes of receiving a final classification from a serial chain of human classifiers 15 (a serial classification of human classifiers 15-1 . . . 15-P-1, 15-P, being depicted as examples in
It is noted that the human classifier 15 of
The classification engine 50 processes the classification decisions β for purposes of further refining the classifications to produce the computer-aided classification decisions 60. For this purpose, the classification engine 50 represents the human classifiers 15 based on a model 52 that is constructed from classification training data 22. In this regard, the physical machine 20, in accordance with example implementations, executes a set of machine executable instructions that form a trainer 48 for purposes of developing the model 52 used by the classification engine 50, as further disclosed herein.
In general, the physical machine 20 is an actual machine that is made up of actual hardware and software. In this regard, the physical machine 20 includes such hardware as one or more central processing units (CPUs) 30 and a memory 40. The memory 40 may be a system memory (as an example) for the physical machine 20 in accordance with an example implementation.
In general, the memory 40 stores program data and program instruction data 42 (i.e., machine executable instructions), which are processed by the CPU(s) 30. In this regard, the CPU(s) 30 may execute program instructions that are stored in the memory 40 for purposes of forming various software components for the physical machine 20, such as the classification engine 50, the trainer 48, an operating system, device drivers, utilities, applications, and so forth. In general, the memory 40 may be formed from non-transitory storage devices, such as semiconductor storage devices, magnetic memory-based storage devices, optical-based storage devices or a combination of such devices, as examples.
Among its other hardware components, as examples, the physical machine 20 may include a network interface 46 that couples the physical machine 20 to network fabric, such as local area network (LAN)-based fabric, routers, switches, gateways, and so forth. Moreover, the physical machine 20 may include graphics accelerators, input devices, displays, and so forth, as can be appreciated by the skilled artisan. In general, the physical machine 20 may be a portable computer, an ultrabook computer, a tablet computer, a desktop computer, a client, a server, a smartphone, and so forth, depending on the particular implementation.
Although the physical machine 20 is depicted in
Referring to
As a more specific example, in accordance with an exemplary technique, the trainer 48 may adapt the model 52, as illustrated in a technique 120 of
Referring to
The encoded classification decisions α(X1) that are generated by the human classifier 15-1, in turn, is provided to the human classifier 15-2. For example, the human classifier 15-1 may represent the employee submitters who make the initial classification, and the human classifier 15-2 may represent employees of the human resources department. Each human classifier 15, in turn, receives an encoded set of classification decisions and in response thereto provides a corresponding set of encoded classification decisions based on further classification/refinement by the human classifiers 15. As depicted in
As disclosed herein, the trainer 48 adapts the model 52 for purposes of determining the encoding functions a and further refining the ultimate set of classes (called “c” herein) into which the submissions 14 are ultimately sorted by the classification engine 50 to form the final classification decisions 60.
Referring to
The classification decision focuses on the classification made by the decoder 144 with the help the decoder 144 receives from the encoders 142. Each encoding function α(X) is a function of “X,” which is a vector that represents the employees for the associated human classifier 15.
More specifically, due to time constraints imposed on the associated human classifiers and/or the experience levels of the associated human classifiers 15, the encoders 142 do not make a thorough classification decision. For the following example, it is assumed that the system 140 has two encoders 144 (corresponding to the encoding functions α1(X1) and α2(X2), respectively) although the system 140 may have a single encoder 142 or more than two encoders 142, in accordance with further implementations. The goal of the classification by the decoder 144 is to minimize the following cost function:
P(C(U)≠β(α1(X1)),α2(X2),X3)), Eq. 1
where “P” represents a probability; “C(U)” represents the true class of the submission U; “X1” represents the employees of human classifier 15-1; “X2” represents the employees of human classifier 15-2; and “X3” represents the employees of human classifier 15-3.
Minimizing Eq. 1 for given time constraints may be viewed as a vector quantization problem having two independent encoders and a common decoder with side information such that the encoding functions are α1 and α2; the decoding function is β; the side information is X3; and the corresponding cost function may be described as follows:
P(C(U)≠β(α1(X1)),α2(X2),X3))+λnTn,n=1,2, Eq. 2
where “T1” represents the expected time limits for the job of classification for the encoder 142-1; “T2” represents the expected time limits for the classification for the encoder 142-2; “λ1” represents the Lagrangian parameter for the encoder 142-1; and “λ2” represents the Lagrangian parameter for the encoder 142-2.
In accordance with example implementations, the trainer 48 may function as a vector quantizer minimizing the cost function of Eq. 2 using the Lloyd algorithm by iteratively updating the encoding, decoding and time functions. For the following discussion, the indices for the encoders 142-1 and 142-2 are denoted by “i,” where 1≦i≦I and “j,” where 1≦j≦J, respectively. In these expressions, “I” and “J” are the number of indices for the respective encoders. Thus, the indices correspond to corresponding codewords. In the discussions below, the corresponding time functions for the encoders 142-1 and 142-2 are denoted by “t1” and “t2,” respectively.
In accordance with an example implementation, an iteration of the Lloyd algorithm to update the encoding, decoding and time functions may be performed as follows. First, for each vector X1, the encoding function α(X1) for the encoder 142-1 may be updated by applying the following minimization:
α(x1)=ar gmin1P(C(U)≠β(α2(X2),X3|X1=x1)+λ1t1(i). Eq. 3
Next, the time function t1 for encoder 142-2 is updated. The t1 time function may be updated in many different ways, depending on the particular implementation. For example, in accordance with an example implementation, an assumption may be made that the successively transmitted (or received) indices are encoded (or decoded) independently. As such, the optimum expected rate is the entropy of the quantizer indices. Accordingly, the time function t1 may be set equal to the logarithm of the inverse of the probability of the index i. In further implementations, another codding approach may be used, such as jointly encoding or decoding the successive indices using, for example, Slepian-Wolf coding. Thus, many variations are contemplated, which are within the scope of the appended claims.
Next, with the time function t1 being updated, the trainer 48 updates the next encoding function α2 (X2). In this regard, in accordance with example implementations, the trainer 48 minimizes a cost function that is analogous to Eq. 3 to determine the index j for the decoding function D. Subsequently, the trainer 48 updates the associated time function t2 for the encoding function α2 (X2). Thus, the result of the above-described process is to arrange the decoding results into clusters. The last step, described below, is applied by the trainer 48 for purposes of using the clusters to consolidate classes c. More specifically, in accordance with an example implementation, the trainer 48 minimizes the following cost function for each triplet (i, j, x3), as follows:
(i,j,x3)=ar gmincP(C(U)≠c|α1(X1)=i,α2(X2)=j,X3=x3). Eq. 4
Due to this minimization, a reduced set of classes is formed.
Thus, referring to
While a limited number of examples have been disclosed herein, those skilled in the art, having the benefit of this disclosure, will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations.