System and method to label unlabeled data

An embodiment of the invention provides a technique for permitting a machine to discover classes and topics that data contains and to annotate data objects with those identified classes. The technique enables machines to group and annotate data objects in ways that are meaningful and intuitive for a user of the data objects. An interactive method uses clustering, along with feedback from a user on the clustering output, to discover a set of classes. The feedback from the user is used to guide the clustering process in the later stages, which results in better and better discovery of classes and annotations with more and more human feedback. A method can be used to produce labeled data that involves discovering classes and annotating a given dataset with the discovered class labels. This is advantageous for building a classifier that has wide applications, such as call routing and intent discovery.

BACKGROUND OF THE INVENTION

In a variety of different contexts, it is frequently necessary to discover classes and topics that data contains and to annotate data objects with those identified classes. For example, such annotation is useful for customer feedback forms, call center problem tickets and agent-customer conversational transcripts.

In the field of machine learning, there exist supervised and unsupervised techniques. However, supervised techniques require trained data and assume that the trained data is accurate; and, with unsupervised techniques, it is difficult to determine how to interpret clusters that are generated by such techniques.

SUMMARY OF THE INVENTION

In accordance with an embodiment of the invention, there is provided a device for labeling unlabeled data. The device comprises a clustering processor configured to group the unlabeled data to produce at least one data group; a feedback processor configured to enable a user to provide feedback on the at least one data group, the feedback including at least one of the following: (i) feedback on membership of a data object in a data group, and (ii) feedback on a current labeling of a data group; the clustering processor further configured to regroup the at least one data group using at least one constraint based on the feedback provided by the user; and the feedback processor further configured to apply a label to a data group of the at least one data group to produce at least one labeled data group, the label based on the feedback provided by the user after the grouping or on feedback provided by the user after at least one regrouping by the clustering processor.

In further, related embodiments, the feedback processor may be further configured to discover a set of data objects on which to seek feedback from the user; and the feedback processor may be still further configured to enable the user to provide feedback based on the discovered set of data objects. The clustering processor may comprise a K-means clustering processor, where the term K-means clustering is defined as partitioning n observations into k clusters in which each observation belongs to the cluster with the nearest mean. The feedback processor may be further configured to receive feedback provided by the user including at least one of the following: a new name of a data group; an acceptance of membership of a data object in a data group; a rejection of membership of a data object in a data group; a splitting of a data group; a merging of a data group; an acceptance of a member of a cluster centroid of a data group; and a rejection of a member of a cluster centroid of a data group. The feedback processor may be further configured to display at least one data object of the at least one labeled data group to the user. The clustering processor may be further configured to determine, for a data group of the at least one data group: (i) at least one data object belonging to the data group; and (ii) a context vector for the data group. The clustering processor may be further configured to determine, for a data group of the at least one data group, a scoring measure for the data group. The clustering processor may be further configured to group the data based on at least one initial constraint provided by the user.

In another embodiment according to the invention, there is provided a method for labeling unlabeled data. The method comprises grouping the unlabeled data using clustering to produce at least one data group; enabling a user to provide feedback on the at least one data group, the feedback including at least one of the following: (i) feedback on membership of a data object in a data group, and (ii) feedback on a current labeling of a data group; regrouping the at least one data group using further clustering including at least one constraint based on the feedback provided by the user; and applying a label to a data group to produce at least one labeled data group, the label based on the feedback provided by the user after the grouping or on feedback provided by the user after at least one regrouping.

In further, related embodiments, the method may further comprise discovering a set of data objects on which to seek feedback from the user. The enabling the user to provide feedback may be performed based on the discovered set of data objects. The grouping the data using clustering may comprise performing K-means clustering on the data. The feedback provided by the user may comprise at least one of the following: a new name of a data group; an acceptance of membership of a data object in a data group; a rejection of membership of a data object in a data group; a splitting of a data group; a merging of a data group; an acceptance of a member of a cluster centroid of a data group; and a rejection of a member of a cluster centroid of a data group. The method may further comprise displaying at least one data object of the at least one labeled data group to the user. Grouping the data may comprise, for a data group of the at least one data group, determining: (i) at least one data object belonging to the data group; and (ii) a context vector for the data group. Grouping the data may comprise, for a data group of the at least one data group, determining a scoring measure for the data group. The grouping the data using clustering may be performed based on at least one initial constraint provided by the user.

In another embodiment according to the invention, there is provided a non-transient computer-readable storage medium having computer-readable code stored thereon, which, when executed by a computer processor, causes the computer processor to label unlabeled data, by causing the processor to: group the unlabeled data using clustering to produce at least one data group; enable a user to provide feedback on the at least one data group, the feedback including at least one of the following: (i) feedback on membership of a data object in a data group, and (ii) feedback on a current labeling of a data group; regroup the at least one data group using further clustering including at least one constraint based on the feedback provided by the user; and apply a label to a data group to produce at least one labeled data group, the label based on the feedback provided by the user after the grouping or on feedback provided by the user after at least one regrouping.

DETAILED DESCRIPTION OF THE INVENTION

In accordance with an embodiment of the invention, there is provided a technique for permitting a machine to discover classes and topics that data contains and to annotate data objects with those identified classes. The technique enables machines to group and annotate data objects in ways that are meaningful and intuitive for a user of the data objects.

An embodiment according to the invention provides an interactive method that uses clustering, along with feedback from a user on the clustering output, to discover a set of classes. The feedback from the user is used to guide the clustering process in the later stages, which results in better and better discovery of classes and annotation with more and more human feedback.

A method in accordance with an embodiment of the invention can be used to produce labeled data that involves discovering classes and annotating a given dataset with the discovered class labels. This is advantageous for building a classifier that has wide applications, such as call routing and intent discovery.

FIG. 1is a block diagram of a device for labeling unlabeled data in accordance with an embodiment of the invention. The device100includes a clustering processor110and a feedback processor120. Given a set of data points, the clustering processor110uses a clustering method to determine a grouping in the dataset. The clustering processor110outputs the clustering115, where each cluster is, for example, described based on the dominant features that appear in the cluster. The clustering output115is provided to the feedback processor120, which enables the user to see the objects that belong to each of the clusters and to provide feedback125on the clustering output. The feedback125from the user is then provided back to the clustering processor110in order to re-determine the clustering based on the new constraints provided by the user.

FIG. 2is a block diagram200of an example of an interaction model in which a user is enabled to provide feedback to a machine learning system (such as a system that includes the device ofFIG. 1), in accordance with an embodiment of the invention. In the block diagram200, the system receives from a user a specified set of parameters for the clustering (201), which may be used as a set of constraints for an initial clustering. For example, the set of parameters may include a path of a data file, a number of clusters, use phrases or other parameters. The system performs the clustering and provides clustering output for each cluster (202); for example, the clustering output may be: a) the number of calls (or other data objects) in each cluster, a goodness measure for the cluster, and a context vector for the cluster; and b) all of the calls (or other data objects) belonging to the cluster sorted by belongingness. The system thereafter receives, from the user, feedback on the clustering (203). For example, the feedback may include enabling the user to name clusters, accept/reject members of a cluster, split/merge a cluster, and/or accept/reject words appearing in the context of a centroid of a cluster. The system then re-determines the constraints based on the feedback (204), and returns to re-perform the clustering based on the further constraints based on the feedback (202). Ultimately, after one or more iterations of this process, the system outputs a set of labeled data (205), which may include labels for one or more of the clusters, some or all of the data belonging to the cluster, and summary data for the clusters. For example, in addition to one or more labels for the clusters, the labeled data may include a) the number of calls (or other data objects) in each cluster, a goodness measure for the cluster, a best (or most-representative) member of the cluster, and a context vector for the cluster; and b) all of the calls (or other data objects) belonging to the cluster sorted by belongingness.

In another embodiment, the system can also prompt a user with some calls (or other data objects) that are the “best” calls for getting the feedback (203). One example of “best” calls is “representative calls” that have many other calls similar to them and therefore feedback on representative calls can easily and correctly be generalized to many other calls.

FIG. 3provides an overview of the framework that uses interaction as described above for labeling the unlabeled data. Unlabeled data330is input to the interactive labeling framework331. The system performs grouping332, and may determine a set of “best” documents for feedback333. The grouping332, and, if determined, the “best” documents333, are provided to the user334. The user provides feedback335, based on which the system re-determines constraints for performing grouping332in a further iteration. Ultimately, after one or more iterations, the system outputs labeled data336, which includes one or more labeled clusters that have been produced based on the iterative process of: (i) machine clustering, followed by (ii) machine iteration of the clustering based on the user's input.

FIGS. 4 through 9provide an example interface for performing clustering in an interactive manner for discovering intents, in accordance with an embodiment of the invention.

InFIG. 4, there is shown an example clustering output in accordance with an embodiment of the invention. Such an output may, for example, be produced by a feedback processor120based on output from clustering processor110for display to a user to receive feedback. The user is provided with an overall purity score441for the clustering, along with data for each of the clusters442-444, which here are shown before they have been labeled. Each cluster442-444has an individual score445-447indicating the tightness of that cluster. Further, each cluster442-444has a corresponding context vector448-450, indicating key words associated with each cluster. In addition, the user is provided with expansion tabs451-453to permit viewing of the underlying data points in each cluster.

FIG. 5is a further example of clustering output in accordance with an embodiment of the invention. In this case, the underlying data554-556within a single cluster543has been expanded for display to a user to provide feedback. The underlying data554-556includes a transcription557-559, a file name560-562, a measure563-565of the data's belonging to the cluster, and an accept/reject input566-568for the user to choose whether each data point should be accepted or rejected from the cluster543.

FIG. 6is a further example of clustering output in accordance with an embodiment of the invention. In this case, a user has provided a choice666,667to accept two of the data points in the cluster.

FIG. 7is a further example of clustering output in accordance with an embodiment of the invention. In this case, a user has provided a label769for the cluster, based on a review and interpretation of the content of the underlying data.

FIG. 8is an example of providing membership constraints in accordance with an embodiment of the invention. In this case, the label870that was provided inFIG. 7has been applied to the cluster, and the user now provides accept/reject inputs866,867which are used by the clustering processor as membership constraints in a subsequent iteration of the clustering.

FIG. 9is an example of output from re-generating a clustering, in accordance with an embodiment of the invention. Two labels970,971from previous user feedback have been associated with two of the clusters, which have been re-grouped based on constraints determined from the user's previous feedback. In this way, the data objects, which were initially unlabeled, have been grouped and annotated in ways that are meaningful and intuitive for a user of the data objects, based on both automated machine clustering and automated incorporation into the clustering of iterative feedback from the user.

An embodiment according to the invention may make use a variety of different possible methods of clustering. For example, K-means clustering may be used, where the term K-means clustering is defined as partitioning n observations into k clusters in which each observation belongs to the cluster with the nearest mean. A user may input a number of clusters to produce using K-means clustering. For example, techniques of clustering may be used such as those found in U.S. Pat. Nos. 6,460,035, 6,654,739 and 7,779,349, the teachings of which are hereby incorporated herein by reference in their entirety. Other techniques of clustering known in the art may be used, such as expectation-maximization clustering.

It will be appreciated that, in accordance with an embodiment of the invention, a user need not provide feedback on all underlying data or indeed on all clusters.

In accordance with an embodiment of the invention, constraints may be produced, added or changed based on the user's feedback, and are used in addition to the other constraints from previous iterations, which are kept intact. Based on the clustering methods that are used, data that is similar to user-accepted data in clusters is more likely to remain in a given cluster, whereas data that is similar to data that has been rejected from a cluster by a user is more likely to be removed from that cluster. Goodness measures for clusters may be measures of the tightness of the cluster, or any other scoring measures; and may be presented to the user along with other clustering data presented for user feedback. The system may discover the “best” data for user feedback, which may be documents that are most representative of groups of data, and prompt the user for feedback on that data.

FIG. 10illustrates a computer network or similar digital processing environment in which the present invention may be implemented. Client computer(s)/devices1081and server computer(s)1082provide processing, storage, and input/output devices executing application programs and the like. Client computers1081can include, for example, the computers of users providing feedback on clustered data in accordance with an embodiment of the invention; and server computers1082can include the clustering processor110, feedback processor120and other systems implementing a technique for labeling unlabeled data in accordance with an embodiment of the invention. Client computer(s)/devices1081can also be linked through communications network1083to other computing devices, including other client devices/processes1081and server computer(s)1082. Communications network1083can be part of a remote access network, a global network (e.g., the Internet), a worldwide collection of computers, Local area or Wide area networks, and gateways that currently use respective protocols (TCP/IP, Bluetooth, etc.) to communicate with one another. Other electronic device/computer network architectures are suitable.

FIG. 11is a diagram of the internal structure of a computer (e.g., client processor/device1081or server computers1082) in the computer system ofFIG. 10. Each computer1081,1082contains system bus1184, where a bus is a set of hardware lines used for data transfer among the components of a computer or processing system. Bus1184is essentially a shared conduit that connects different elements of a computer system (e.g., processor, disk storage, memory, input/output ports, network ports, etc.) that enables the transfer of information between the elements. Attached to system bus1184is I/O device interface1185for connecting various input and output devices (e.g., keyboard, mouse, displays, printers, speakers, etc.) to the computer1081,1082. Network interface1186allows the computer to connect to various other devices attached to a network (e.g., network1083ofFIG. 10). Memory1187provides volatile storage for computer software instructions1188and data1189used to implement an embodiment of the present invention (e.g., routines for implementing labeling of unlabeled data). Disk storage1190provides non-volatile storage for computer software instructions1191and data1192used to implement an embodiment of the present invention. Central processor unit1193is also attached to system bus1184and provides for the execution of computer instructions.

A system in accordance with the invention has been described in which unlabeled data is labeled. As used herein, a “clustering processor” is a portion of the system that groups data to produce at least one data group, and that re-groups the at least one data group using at least one constraint based on the feedback provided by a user. Such a clustering processor may, for example, be a portion of program code, operating on a computer processor. Further, as used herein, a “feedback processor” is a portion of the system that enables a user to provide feedback on at least one data group, for example feedback on membership of a data object in a data group and feedback on a current labeling of data group; and that applies a label to a data group of the at least one data group to produce at least one labeled data group, the label based on the feedback provided by the user after the grouping or on feedback provided by the user after at least one regrouping by the clustering processor. Such a feedback processor may, for example, be a portion of program code, operating on a computer processor.

Portions of the above-described embodiments of the present invention can be implemented using one or more computer systems, for example to permit labeling of unlabeled data. For example, the embodiments may be implemented using hardware, software or a combination thereof. When implemented in software, the software code can be executed on any suitable processor or collection of processors, whether provided in a single computer or distributed among multiple computers.

In this respect, it should be appreciated that one implementation of the above-described embodiments comprises at least one computer-readable medium encoded with a computer program (e.g., a plurality of instructions), which, when executed on a processor, performs some or all of the above-discussed functions of these embodiments. As used herein, the term “computer-readable medium” encompasses only a computer-readable medium that can be considered to be a machine or a manufacture (i.e., article of manufacture). A computer-readable medium may be, for example, a tangible medium on which computer-readable information may be encoded or stored, a storage medium on which computer-readable information may be encoded or stored, and/or a non-transitory medium on which computer-readable information may be encoded or stored. Other non-exhaustive examples of computer-readable media include a computer memory (e.g., a ROM, a RAM, a flash memory, or other type of computer memory), a magnetic disc or tape, an optical disc, and/or other types of computer-readable media that can be considered to be a machine or a manufacture.