Techniques for automated generation of contact center system embeddings

By generating embeddings of contact center system agents and virtual queues and using machine learning to determine similarities, the problem of agent selection and allocation in contact center systems is solved, improving the accuracy of call routing and the productivity of new agents.

CN115039396BActive Publication Date: 2026-11-06GENESYS CLOUD SERVICES INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202180011836.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-12-31
Filing Date
2021-10-11
Publication Date
2026-11-06
Estimated Expiration
2041-10-11

AI Technical Summary

Technical Problem

In contact center systems, it is difficult to effectively find the most similar agent to answer calls, and the assignment of new agents may lead to unproductivity or increased uptime.

Method used

The system generates matrix representations of contact center system agents, skills, and virtual queues through a computational system. It then uses machine learning to train agent and virtual queue embeddings, determines their similarity, and performs call routing and agent allocation based on the similarity.

Benefits of technology

It improves the accuracy of call routing, ensures the rapid productivity of new agents, and provides a better end-user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115039396B_ABST
    Figure CN115039396B_ABST
Patent Text Reader

Abstract

This invention discloses a method for automatically generating contact center system embeddings according to one embodiment. The method includes: a computing system determining a contact center system agent, contact center system agent skills, and / or contact center system virtual queue experiences; the computing system generating a matrix representation based on the contact center system agent, contact center system agent skills, and / or contact center system virtual queue experiences; the computing system generating a contact center system agent identifier, a contact center system agent skill identifier, and / or a contact center system virtual queue identifier based on the matrix representation; the computing system transforming the contact center system agent identifier, contact center system agent skill identifier, and / or contact center system virtual queue identifier into a contact center system agent embedding, a contact center system agent skill embedding, and / or a contact center system virtual queue embedding, wherein the weights of the contact center system agent embedding, the contact center system agent skill embedding, and / or the contact center system virtual queue embedding are randomly initialized; and the computing system training the contact center system agent embedding, the contact center system agent skill embedding, and / or the contact center system virtual queue embedding by applying machine learning to obtain the final weights of the contact center system agent embedding, the contact center system agent skill embedding, and / or the contact center system virtual queue embedding.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references to related applications

[0002] This application claims priority to U.S. non-provisional patent application serial number 17 / 139,033, filed on December 31, 2020, the entire contents of which are incorporated herein by reference. Background Technology

[0003] Contact center agents can possess a specialized set of skills and can assist a wide variety of end users. A contact center often receives far more such calls than the available agents managing end-user phone calls. End users may expect their calls to be answered by the most qualified agent to answer their questions and / or an agent who has answered their questions previously. However, the most qualified agent and / or the same agent may not always be able to answer the end user's call because the agent may be unavailable for various reasons (e.g., busy with another end user's call, etc.). The problem is that it can be difficult to find another agent that is most similar to the unavailable agent to route the call to that other agent.

[0004] Additionally, after acquiring a new agent through the contact center, it may be unclear which virtual queue the new agent will be assigned to in the contact center, or from which types of end users the new agent should receive calls. The problem is that assigning a new agent to a virtual queue where the new agent lacks the skills required for success could result in the new agent being unproductive and / or increasing the uptime for the new agent to become productive. Summary of the Invention

[0005] According to an implementation scheme, a method for automatically generating contact center system embeddings may include: a computing system determining at least one of one or more contact center system agents, one or more contact center system agent skills, and one or more contact center system virtual queue experiences; the computing system generating a matrix representation based on the one or more contact center system agents, one or more contact center system agent skills, and one or more contact center system virtual queue experiences; the computing system generating at least one of one or more contact center system agent identifiers, one or more contact center system agent skill identifiers, and one or more contact center system virtual queue identifiers based on the matrix representation; and the computing system then combining the one or more contact center system agent identifiers, one or more contact center system agent skill identifiers, and one or more contact center system virtual queue experiences. At least one of the virtual queue identifiers is transformed into at least one of one or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings, wherein the weights of the one or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings are randomly initialized; and the computing system trains the one or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings by applying machine learning to obtain the final weights of the one or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings.

[0006] In some implementations, the method may further include having a computing system determine the similarity of at least one of two or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings based on a final weight comparison of at least one of the contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings.

[0007] In some implementations, determining the similarity of at least one of two or more contact center system agent embeddings, two or more contact center system agent skill embeddings, and two or more contact center system virtual queue embeddings may include utilizing at least one of cosine similarity, principal component analysis, or t-distributed random neighborhood embeddings.

[0008] In some implementations, the method may further include at least one of the following: routing a telephone call to a contact center agent in response to determining the similarity of at least one of two or more contact center agent embeddings, two or more contact center agent skill embeddings, and two or more contact center system virtual queue embeddings; and assigning the contact center agent to a virtual queue in response to determining the similarity of at least one of two or more contact center agent embeddings, two or more contact center agent skill embeddings, and two or more contact center system virtual queue embeddings.

[0009] In some implementations, at least one of one or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings may include a k-dimensional vector.

[0010] In some implementations, the k-dimensional vector can be in a five-dimensional space or a ten-dimensional space.

[0011] In some implementations, at least one of the transformation and training can be based on a neural network.

[0012] In some implementations, the matrix representation may also be transformed into a single-row representation for training.

[0013] In some implementations, applying machine learning to obtain the final weights may include determining the dot product and benchmark truth of at least one of one or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings.

[0014] In some implementations, one or more contact center system agent skills may include at least one of one or more language skills, one or more product skills, or one or more educational skills.

[0015] According to another embodiment, a system for automatically generating contact center system embeddings may include at least one processor; and at least one memory including a plurality of instructions stored thereon, the plurality of instructions being responsive to execution by the at least one processor to cause the system to determine, by a computing system, at least one of one or more contact center system agents, one or more contact center system agent skills, and one or more contact center system virtual queue experiences; generate a matrix representation by the computing system based on the one or more contact center system agents, one or more contact center system agent skills, and one or more contact center system virtual queue experiences; generate, by the computing system, and based on the matrix representation, at least one of one or more contact center system agent identifiers, one or more contact center system agent skill identifiers, and one or more contact center system virtual queue identifiers; and convert the one or more contact center system agent identifiers into... At least one of one or more contact center system agent skill identifiers and one or more contact center system virtual queue identifiers is transformed into at least one of one or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings, wherein the weights of the one or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings are randomly initialized; and the one or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings are trained by a computing system by applying machine learning to obtain the final weights of the one or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings.

[0016] In some implementations, multiple instructions may also enable the system to determine the similarity of at least one of two or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings based on the final weights of at least one of the contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings.

[0017] In some implementations, determining the similarity of at least one of two or more contact center system agent embeddings, two or more contact center system agent skill embeddings, and two or more contact center system virtual queue embeddings may include utilizing at least one of cosine similarity, principal component analysis, or t-distributed random neighborhood embeddings.

[0018] In some implementations, the multiple instructions may also cause the system to route telephone calls to a contact center agent in response to determining the similarity of at least one of two or more contact center agent embeddings, two or more contact center agent skill embeddings, and two or more contact center system virtual queue embeddings; or to assign a contact center agent to a virtual queue in response to determining the similarity of at least one of two or more contact center agent embeddings, two or more contact center agent skill embeddings, and two or more contact center system virtual queue embeddings.

[0019] In some implementations, at least one of one or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings may include a k-dimensional vector.

[0020] In some implementations, the k-dimensional vector can be in a five-dimensional space or a ten-dimensional space.

[0021] In some implementations, at least one of the transformation and training can be based on a neural network.

[0022] In some implementations, multiple instructions can also cause the system to transform the matrix representation into a single-row representation for training.

[0023] In some implementations, applying machine learning to obtain the final weights may include determining the dot product and benchmark truth of at least one of one or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings.

[0024] In some implementations, one or more contact center system agent skills may include at least one of one or more language skills, one or more product skills, or one or more educational skills.

[0025] This invention is not intended to identify key or essential features of the claimed subject matter, nor is it intended to serve as an aid to limiting the scope of the claimed subject matter. Other embodiments, forms, features, and aspects of this application will become apparent from the description and drawings provided herein. Attached Figure Description

[0026] The concepts described herein are illustrated by way of example and not by way of limitation in the accompanying drawings. For simplicity and clarity, the elements shown in the drawings are not necessarily drawn to scale. Where deemed appropriate, reference numerals have been repeated in the drawings to indicate corresponding or similar elements.

[0027] Figure 1 This is a simplified flowchart of at least one implementation of a method for automating the generation of contact center system embeddings;

[0028] Figure 2 It is at least one implementation scheme based on a matrix representation of the contact center system agent skills and contact center system virtual queue experiences that the contact center system agent can possess;

[0029] Figure 3 It is at least one implementation scheme that can be used to automatically generate neural networks embedded in a contact center system;

[0030] Figure 4 It is used for neural network training. Figure 2 At least one implementation of the single-row representation of the matrix representation;

[0031] Figure 5 It is used based on usage Figure 1 A simplified flowchart of at least one implementation of a method for automatically generating contact center system embeddings to route calls to available agents;

[0032] Figure 6 It is used based on usage Figure 1 A simplified flowchart of at least one implementation of a method for automatically generating contact center system embeddings and assigning newly acquired agents to virtual queues in the contact center system; and

[0033] Figure 7 It is a simplified block diagram of at least one implementation of the computing system. Detailed Implementation

[0034] Although the concepts of this disclosure are susceptible to various modifications and alternatives, specific embodiments have been shown by way of example in the accompanying drawings and will be described in detail herein. However, it should be understood that the concepts of this disclosure are not intended to be limited to the particular forms disclosed, but rather are intended to cover all modifications, equivalents, and alternatives consistent with this disclosure and the appended claims.

[0035] The references to "an embodiment," "an embodiment," "an illustrative embodiment," etc., in the specification indicate that the described embodiment may include a particular feature, structure, or characteristic; however, each embodiment may or may not include that particular feature, structure, or characteristic. Furthermore, such phrases do not necessarily refer to the same embodiment. It should also be understood that although references to "preferred" components or features may indicate the desirability of a particular component or feature with respect to the embodiment, this disclosure does not therefore limit it to other embodiments where such component or feature may be omitted. Furthermore, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is considered that implementing such a feature, structure, or characteristic in conjunction with other embodiments is within the knowledge of those skilled in the art, whether explicitly described or not. Additionally, it should be understood that items included in the list in the form of "at least one of A, B, and C" may mean (A); (B); (C); (A and B); (B and C); (A and C); or (A, B, and C). Similarly, items listed in the form of “at least one of A, B, or C” may mean (A); (B); (C); (A and B); (B and C); (A and C); or (A, B, and C). Furthermore, regarding the claims, the use of words and phrases such as “a”, “an”, “at least one”, and / or “at least a portion” should not be construed as limiting to only one such element unless specifically stated otherwise, and the use of phrases such as “at least a portion” and / or “a portion” should be construed as covering both embodiments comprising only a portion of such element and embodiments comprising the entire such element, unless specifically stated otherwise.

[0036] In some cases, the disclosed embodiments may be implemented in hardware, firmware, software, or a combination thereof. The disclosed embodiments may also be implemented as instructions carried or stored on one or more transient or non-transitory machine-readable (e.g., computer-readable) storage media, which may be read and executed by one or more processors. Machine-readable storage media may be embodied as any storage device, mechanism, or other physical structure for storing or transmitting information in a machine-readable form (e.g., volatile or non-volatile memory, media disk, or other media device).

[0037] In the accompanying drawings, certain structural or methodological features may be shown in a particular arrangement and / or sequence. However, it should be understood that such a particular arrangement and / or sequence may not be necessary. Rather, in some embodiments, unless otherwise indicated, such features may be arranged in a different manner and / or order than those shown in the illustrative figures. Furthermore, the inclusion of a structural or methodological feature in a particular figure does not imply that such a feature is required in all embodiments, and in some embodiments, such a feature may be omitted or may be combined with other features.

[0038] Now for reference Figure 1 In use, the computing system 700 can execute method 100 for automatically generating contact center system embeddings. In some embodiments, the contact center system embedding may include at least one of one or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings. It should be understood that, unless stated otherwise, the specific boxes of method 100 are shown by way of example, and such boxes may be combined or divided, added or removed, and / or reordered, wholly or partially, depending on the particular embodiment.

[0039] A contact center system can be embodied as any system capable of providing contact center services (e.g., call center services) to end users and otherwise performing the functions described herein. Depending on the specific implementation, it should be understood that the contact center system can be located at the premises of the organization utilizing the contact center system and / or remotely located relative to the organization (e.g., in a cloud-based computing environment). In some implementations, a portion of the contact center system may be located at the organization's premises / campus, while other portions of the contact center system are remotely located relative to the organization's premises / campus. Therefore, it should be understood that the contact center system can be deployed in equipment dedicated to the organization or its third-party service providers, and / or deployed in a remote computing environment, such as, for example, a private or public cloud environment with infrastructure for supporting multiple contact centers for multiple enterprises. In some implementations, the contact center system includes resources (e.g., personnel, computers, and telecommunications equipment) to enable the delivery of services via telephone and / or other communication mechanisms. Depending on the specific type of contact center, such services may include, for example, technical support, help desk support, emergency response, and / or other contact center services.

[0040] Contact center system agents may possess a specific set of skills. The value attributed to such skills may depend on the contact center system to which the agent is assigned or the assistance the agent provides to end users. In some implementations, agent skills may include language skills, product skills, or educational skills. Language skills may be skills relating to the types of languages ​​the agent can speak and / or understand. In some implementations, language skills may be at least one of English, Spanish, French, German, Russian, Portuguese, Mandarin Chinese, or Hindi. For example, if the contact center system supports end users who speak English, Spanish, French, and German, then if such an agent speaks one or more of those languages, the agent may possess one or more language skills. It should be understood that language skills may include skills relating to any spoken language. Product skills may be skills relating to the types of products the agent can support (i.e., providing support to end users for inquiries about such products). For example, if a contact center system for company A supports company A's products X, Y, and Z, then an agent effective for products X and Z may possess product skills X and Z. Educational skills may be skills relating to educational qualifications. It should also be understood that agent skills may include any variety of skills that may be necessary or helpful in supporting the contact center system.

[0041] Contact center system virtual queues can also be used to describe agents. In some implementations, an agent may have experience with one or more contact center system virtual queues. For example, when an end user places a call to speak with an agent in the contact center system, the call may be placed in a virtual queue of the contact center system. Agents may be assigned to specific virtual queues and have expertise about the subject matter represented by such virtual queues or the type of end user from whom the agent can receive calls. Virtual queues can be more dynamic than agent skills because, unlike language skills or educational skills, the virtual queues to which an agent can be assigned can change frequently. For example, an agent may be assigned to a virtual queue for “billing inquiries” and then reassigned to another virtual queue, such as a “new order inquiry” a week later.

[0042] An embedding can be a mapping from a discrete entity to a vector of continuous numbers. A contact-center system agent can be a discrete entity. An embedding can be a low-dimensional learned continuous vector representation of a discrete entity (i.e., an agent). Embeddings can reduce the dimensionality of discrete entities and meaningfully represent variables in the transformation space. It should be understood that embeddings can serve several purposes, including, for example, finding nearest neighbors in the embedding space, which can be used to make recommendations based on cluster categories. Additionally, embeddings can be used as input to machine learning models for supervised tasks. Furthermore, embeddings can be used to visualize concepts and relationships between categories. Once in vector form, two agents can be compared to determine how similar such agents are to each other. Vectors can be added to or subtracted to produce newer vectors. The process of transforming discrete entities such as agents into vectors can often involve large amounts of data and training such data using machine learning. In some implementations, neural network methods can be used (e.g., automatically) to generate contact-center system embeddings.

[0043] The computing system 700 may include and / or utilize artificial intelligence, adaptive learning, robotics, cognitive computing, and / or other automation technologies. For example, in some embodiments, the computing system 700 may utilize one or more neural network algorithms, regression algorithms, instance-based algorithms, regularization algorithms, decision tree algorithms, Bayesian algorithms, clustering algorithms, association rule learning algorithms, deep learning algorithms, dimensionality reduction algorithms, rule-based algorithms, ensemble algorithms, artificial intelligence, and / or other suitable machine learning algorithms, artificial intelligence algorithms, technologies, and / or mechanisms.

[0044] It should be understood that the techniques described herein can allow the generation of agent profiles (i.e., embeddings) using agent skills and / or virtual queues. Agent profiles / embedding can allow agents to be grouped together with similar skills and / or virtual queue experiences, which can help provide a better end-user experience. For example, when an agent is unable to receive a call, the call can be routed to the most similar available agent. Similarly, when newly acquired agents join a contact center system, agent profiles can be used to group agents together based on agent skills and / or virtual queue experiences to allow agents to become productive earlier.

[0045] Before executing method 100, it should be understood that users can interact with computing system 700 via the application's graphical user interface to upload agent resumes, job applications, and / or other information listing agent skills and / or work history (i.e., virtual queues where the agent previously worked). Illustrative method 100 may begin at box 102, where computing system 700 may determine that the agent possesses one or more contact center system agent skills. For example, computing system 700 may determine that the agent speaks English and Spanish (i.e., the agent possesses language skills) and supports products X and Y (i.e., the agent possesses product skills). In box 104, computing system 700 may determine that the agent has experience with one or more virtual queues. For example, computing system 700 may determine that the agent has experience working in a virtual queue used for "billing".

[0046] In box 106, computing system 700 can generate a matrix representation based on at least one of one or more contact center system agents, one or more contact center system agent skills, and / or one or more virtual queue experiences. For example, Figure 2 A matrix representation based on one or more contact center system agents, one or more contact center system agent skills, and / or one or more virtual queue experiences is shown. Figure 2 In the example shown, the table can be viewed as a matrix, where agents are represented as rows and agent skills and / or virtual queue experiences are represented as columns. For example, "Language Skill 1", "Language Skill 2", and "Language Skill 3" represent language skills; "Product Skill 1", "Product Skill 2", and "Product Skill 3" represent product skills; and "Virtual Queue 1", "Virtual Queue 2", and "Virtual Queue 3" represent virtual queue experiences. Similarly, for example, "Agent 1", "Agent 2", and "Agent N" represent contact center system agents. If an agent has a skill, the table is marked with "1". If an agent does not have a skill, the table is marked with "0". Figure 2 The numbers "1" and "0" included in the matrix representation shown are sparse because each agent may only have a few skills compared to the total number of skills represented in the table. For example, "Agent 1" has "Language Skill 1" (e.g., German) and "Language Skill 3" (e.g., French), but not "Language Skill 2" (e.g., Hindi). It should be understood that the matrix representation can include any number of contact center system agents, contact center system agent skills, and virtual queue experiences as desired, including, for example, dozens to tens of thousands of entries (or more).

[0047] Return to reference Figure 1In box 108, computing system 700 can generate at least one of one or more contact center system agent identifiers, one or more contact center system agent skill identifiers, and one or more contact center system virtual queue identifiers based on the matrix representation generated in box 106. (Return to Reference) Figure 2 Identifiers 1, 2, and 3 have been generated for three different proxies (e.g., "proxy 1", "proxy 2", and "proxy 3"). If there are "N" proxies, the generated identifiers can be from 1 to "N". Similarly, as... Figure 2 As shown, identifiers 1, 2, and 3 have been generated for three different language skills (e.g., "Language Skill 1", "Language Skill 2", and "Language Skill 3"), three different product skills (e.g., "Product Skill 1", "Product Skill 2", and "Product Skill 3"), and three different virtual queue experiences (e.g., "Virtual Queue 1", "Virtual Queue 2", and "Virtual Queue 3"). If there are "M" agent skills and virtual queues, the generated identifiers can be from 1 to "M".

[0048] Return to reference Figure 1In box 110, computing system 700 can transform at least one of one or more contact center system agent identifiers, one or more contact center system agent skill identifiers, and one or more contact center system virtual queue identifiers into at least one of one or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings. As described above, establishing embeddings can include transforming discrete entities (e.g., agents) into vectors. For example, computing system 700 can transform one or more contact center system agent identifiers (e.g., "Agent 1", "Agent 2", and "Agent 3") generated in box 108 into one or more contact center system agent embeddings. Additionally, for example, computing system 700 can transform one or more contact center system agent skill identifiers (e.g., "Language Skill 1", "Language Skill 2", etc. or "Product Skill 1", "Product Skill 2", etc.) generated in box 108 into one or more contact center system agent skill embeddings. Furthermore, for example, computing system 700 can transform one or more contact center system virtual queue identifiers (e.g., "Virtual Queue 1", "Virtual Queue 2", etc.) generated in box 108 into one or more contact center system virtual queue embeddings. In some implementations, one or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings can be k-dimensional vectors. In some implementations, the k-dimensional vector is in a five-dimensional space (i.e., K = 5). In some implementations, the k-dimensional vector is in a ten-dimensional space (i.e., K = 10). For example, in an implementation including contact center system agents, computing system 700 can transform “Agent 1,” “Agent 2,” and “Agent 3” into k-dimensional vectors for each agent, and if k = 5, each agent can be represented as a k-dimensional vector as follows:

[0049] [1] = [0.1, 0.07, -0.43, 0.68, 0.01]

[0050] [2] = [-0.7, 0.65, 0.03, -0.05, 0.38]

[0051] [N]=[0.1,0.08,-0.39,0.75,0.05]

[0052] “Agent 1” can be represented as [1]. “Agent 2” can be represented as [2]. “Agent N” can be represented as [N]. Each decimal can represent a different dimension and specific weight of the three contact center system agent embeddings shown in this example. It should be understood that one or more contact center system agent skill embeddings and / or one or more contact center system virtual queue embeddings can be similarly represented as k-dimensional vectors in five-dimensional space, as shown in this example.

[0053] Figure 3 A neural network that can be used to automatically generate contact center system embeddings is illustrated. In the illustrative embodiment, agents and skill / virtual queues (e.g., “VQ”) are two parts of the neural network. Additionally, agents can represent rows, and skill / virtual queues (e.g., “VQ”) can represent columns in the matrix representation generated in box 106. K arrows from each agent identifier can represent agent embeddings. Similarly, K arrows from each skill / virtual queue can represent skill / virtual queue embeddings. The agent embedding layer and the skill / VQ embedding layer each include five boxes representing a five-dimensional space. The computational system 700 can initially generate randomly initialized weights for the five-dimensional space (i.e., the K arrows can include randomly initialized weights). For example, the computational system 700 can generate randomly initialized weights for one or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings.

[0054] Return to reference Figure 1 In box 112, the computing system 700 can utilize machine learning to train at least one of one or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings to obtain the final weights of the one or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings. For example, the computing system 700 can utilize backpropagation training to obtain the final weights of the contact center system embeddings. The neural network can learn a k-dimensional vector for each of the one or more contact center system agents, one or more contact center system agent skills, and one or more contact center system virtual queue experiences.

[0055] Now for reference Figure 4 The computing system 700 can transform the matrix representation generated in box 106 into a single-row representation for neural network training. For example, the computing system 700 can transfer the matrix representation generated from box 106 for each agent-skill / VQ pair to a single-row representation. The single-row representation can include the neural network's input data, which includes, for example, "Agent_id" and "Skill_id". (Return to Reference) Figure 1 The computational system 700 can analyze the dot product and ground truth (i.e., 0 or 1) of one or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings to determine the final weights of such embeddings. By completing multiple iterations of training, reliable final weights for contact center system agents and contact center system agent skills can be obtained.

[0056] In box 114, the computing system 700 may determine / compare the similarity of at least one of two or more contact center system agent embeddings, one or more contact center system agent skill embeddings, and one or more contact center system virtual queue embeddings based on the final weights of at least one of these embeddings. It should be understood that the computing system 700 may utilize various visualization techniques to determine embedding similarity. In some embodiments, the computing system 700 may utilize at least one of cosine similarity, principal component analysis (e.g., PCA), or t-distributed random neighborhood embeddings (e.g., t-SNE) to determine embedding similarity. For example, return to reference. Figure 3 The computing system 700 can utilize visualization techniques to determine that Agent 1 is similar to Agents 2 and 3, but most similar to Agent 2. In an illustrative embodiment, this similarity determination can be stored in one or more databases, data structures, and / or data storage devices capable of storing data within the computing system 700. Similarly, the computing system 700 can determine that skill / VQ 1 is similar to skill / VQ 2 and skill / VQ M, but most similar to skill / VQ 2. For example, the computing system 700 can determine that an agent with language skill 2 can also have language skill 1, and those two skills can be related (e.g., adjacent languages ​​German and Polish). This similarity determination can also be stored in one or more databases, data structures, and / or data storage devices capable of storing data within the computing system 700.

[0057] Although blocks 102-114 are described in a relatively sequential manner, it should be understood that in some implementations, the various blocks of method 100 can be executed in parallel.

[0058] Now for reference Figure 5 In use, computing system 700 can execute method 500 to route calls to available agents based on an automatically generated contact center system embedding. It should be understood that, unless stated otherwise, specific boxes of method 500 are shown by way of example, and such boxes may be combined or divided, added or removed, and / or reordered, wholly or partially, depending on the particular implementation. Illustrative method 500 may begin at box 502, where computing system 700 may receive a call from an end user. In box 504, computing system 700 may determine that the most qualified agent for answering a call from the end user is unavailable (e.g., the first agent). For example, computing system 700 may determine... Figure 3Agent 1 is unavailable. In box 506, computing system 700 can determine that the first agent embedding is most similar to the second agent embedding (e.g., Figure 3 Agent 1 and Agent 2 in the dataset can be the most similar. For example, computing system 700 can execute... Figure 1 Method 100 (or a portion thereof) determines the similarity of embeddings (e.g., see...). Figure 1 (Box 114). In box 508, computing system 700 can route a call to the most qualified available agent (e.g., a second agent) for answering a call from an end user, based on the determination made in box 506. For example, computing system 700 can route a call to Figure 3 Agent 2 in the middle.

[0059] Although blocks 502-508 are described in a relatively serial manner, it should be understood that in some implementations, the various blocks of method 500 can be executed in parallel.

[0060] Now for reference Figure 6 In use, computing system 700 can execute method 600 to assign newly acquired agents to virtual queues in the contact center system based on automatically generated contact center system embeddings. It should be understood that, unless stated otherwise, specific boxes of method 600 are shown by way of example, and such boxes may be combined or divided, added or removed, and / or reordered, wholly or partially, depending on the particular implementation. Illustrative method 600 may begin at box 602, where computing system 700 determines that the newly acquired agent has one or more contact center system agent skills (e.g., see...). Figure 1 (See box 102). In box 604, the computing system 700 can determine that the agent has one or more virtual queue experiences (see, for example, box 102). Figure 1 (See box 104). In box 606, computing system 700 can generate at least one of the following for a newly acquired agent: a contact center system agent embedding for the newly acquired agent, and one or more contact center system agent skill embeddings and one or more contact center system virtual queue embeddings (see, for example, box 104). Figure 1 Method 100). In box 608, computing system 700 can determine the cluster of newly acquired agent embeddings that are most similar to agent embeddings in the first virtual queue. For example, computing system 700 can perform... Figure 1 Method 100 (or a portion thereof) determines the similarity of embeddings (e.g., see...). Figure 1 (See box 114). In box 610, computing system 700 may assign newly acquired agents to a first virtual queue based on the determination made in box 608.

[0061] Although blocks 602-610 are described in a relatively sequential manner, it should be understood that in some implementations, the various blocks of method 600 can be executed in parallel.

[0062] Although Figure 1 Method 100 and Figure 6 Method 600 can be applied to a contact center system; however, it should be understood that, in this implementation, such methods can be applied to a general enterprise. For example, if a newly acquired account manager joins the enterprise, a profile can be created for the account manager based on their skills and past work history, which stems from their resume, job applications, and / or other information. In this implementation, computing system 700 can assign an account manager to a specific product department within the enterprise based on the similarity between the profiles of other peers in that department.

[0063] Now for reference Figure 7 A simplified block diagram of at least one embodiment of the computing system 700 is shown. The illustrative computing system 700 can perform the functions described in the detailed description above. Figure 1 Method 100 Figure 5 Method 500 and / or Figure 6 Method 600. Depending on the specific implementation, the computing system 700 can be manifested as a server, desktop computer, laptop computer, tablet computer, notebook computer, netbook, ultrabook. TM Cellular phones, mobile computing devices, smartphones, wearable computing devices, personal digital assistants, Internet of Things (IoT) devices, processing systems, wireless access points, routers, gateways, and / or any other computing, processing, and / or communication devices capable of performing the functions described herein.

[0064] The computing system 700 includes a processing device 702 that executes algorithms and / or processes data according to operating logic 708, an input / output device 704 that enables communication between the computing system 700 and one or more external devices 710, and a memory 706 that stores data, for example, received from the external device 710 via the input / output device 704.

[0065] Input / output device 704 allows computing system 700 to communicate with external device 710. For example, input / output device 704 may include a transceiver, network adapter, network interface card, interface, one or more communication ports (e.g., USB port, serial port, parallel port, analog port, digital port, VGA, DVI, HDMI, FireWire, CAT 5, or any other type of communication port or interface) and / or other communication circuitry. Depending on the specific computing system 700, the communication circuitry of computing system 700 may be configured to use any one or more communication technologies (e.g., wireless or wired communication) and associated protocols (e.g., Ethernet, etc.). This communication can be achieved using devices such as WiMAX. Input / output device 704 may include hardware, software, and / or firmware suitable for performing the techniques described herein.

[0066] External device 710 can be any type of device that allows data to be input or output from computing system 700. For example, in various embodiments, external device 710 can be embodied as another computing device, switch, diagnostic tool, controller, printer, monitor, alarm, peripheral device (e.g., keyboard, mouse, monitor / display, touch screen display, speaker, headphones, etc.) and / or any other computing, processing and / or communication device capable of performing the functions described herein. Furthermore, in some embodiments, it should be understood that external device 710 can be integrated into computing system 700.

[0067] Processing device 702 can be embodied as any type of processor capable of performing the functions described herein. In particular, processing device 702 can be embodied as one or more single-core or multi-core processors, microcontrollers, or other processors or processing / control circuitry. For example, in some embodiments, processing device 702 may include or be embodied as an arithmetic logic unit (ALU), a central processing unit (CPU), a digital signal processor (DSP), and / or another suitable processor. Processing device 702 can be of a programmable type, a dedicated hardwired state machine, or a combination thereof. In various embodiments, processing device 702 having multiple processing units can utilize distributed, pipelined, and / or parallel processing. Furthermore, processing device 702 can be dedicated solely to performing the operations described herein, or can be utilized in one or more additional applications. In illustrative embodiments, processing device 702 is programmable and executes algorithms and / or processes data according to operating logic 708, such as those defined by programming instructions (such as software or firmware) stored in memory 706. Alternatively or additionally, the operating logic 708 for processing device 702 can be at least partially defined by hardwired logic or other hardware. Furthermore, the processing device 702 may include one or more components of any type suitable for processing signals received from the input / output device 704 or from other components or devices and providing a desired output signal. Such components may include digital circuitry, analog circuitry, or a combination thereof.

[0068] Memory 706 may be one or more types of non-transitory computer-readable media, such as solid-state memory, electromagnetic memory, optical memory, or combinations thereof. Furthermore, memory 706 may be volatile and / or non-volatile, and in some embodiments, some or all of memory 706 may be portable types, such as disks, magnetic tapes, memory sticks, cassette tapes, and / or other suitable portable storage devices. In operation, memory 706 may store various data and software used during the operation of computing system 700, such as operating systems, applications, programs, libraries, and drivers. It should be understood that, in addition to storing or replacing the storage of programming instructions defining the operating logic 708 of processing device 702, memory 706 may store data manipulated by operating logic 708, such as, for example, data representing signals received from and / or sent to input / output device 704. Figure 7 As shown, depending on the particular embodiment, memory 706 may be included together with and / or coupled to processing device 702. For example, in some embodiments, processing device 702, memory 706, and / or other components of computing system 700 may be formed as part of a system-on-chip (SoC) and incorporated onto a single integrated circuit chip.

[0069] In some implementations, various components of the computing system 700 (e.g., processing device 702 and memory 706) may be communicatively coupled via an input / output subsystem, which may be embodied as circuitry and / or components to facilitate input / output operations with the processing device 702, memory 706, and other components of the computing system 700. For example, the input / output subsystem may be embodied as or otherwise include a memory controller hub, an input / output control hub, firmware devices, communication links (i.e., point-to-point links, bus links, wires, cables, optical fibers, printed circuit board traces, etc.) and / or other components and subsystems to facilitate input / output operations.

[0070] In other embodiments, computing system 700 may include other or additional components, such as those commonly found in typical computing devices (e.g., various input / output devices and / or other components). It should also be understood that one or more of the components of computing system 700 described herein may be distributed across multiple computing devices. In other words, the techniques described herein can be employed by computing systems that include one or more computing devices. Furthermore, although only in… Figure 7A single processing device 702, I / O device 704, and memory 706 are illustrated illustratively; however, it should be understood that in other embodiments, the computing system 700 may include multiple processing devices 702, I / O devices 704, and / or memory 706. Furthermore, in some embodiments, more than one external device 710 may communicate with the computing system 700.

Claims

1. A method for automatically generating contact center system embeddings, the method comprising: The computing system determines one or more contact center system agents, one or more contact center system agent skills, and one or more contact center system virtual queue experiences; The computing system generates a matrix representation based on the one or more contact center system agents, the one or more contact center system agent skills, and the one or more contact center system virtual queue experiences; The computing system generates one or more contact center system agent identifiers, one or more contact center system agent skill identifiers, and one or more contact center system virtual queue identifiers based on the matrix representation. The computing system transforms the one or more contact center system agent identifiers, the one or more contact center system agent skill identifiers, and the one or more contact center system virtual queue identifiers into one or more contact center system agent embedding vectors, one or more contact center system agent skill embedding vectors, and one or more contact center system virtual queue embedding vectors, wherein the weights of the one or more contact center system agent embedding vectors, the one or more contact center system agent skill embedding vectors, and the one or more contact center system virtual queue embedding vectors are randomly initialized; and The computing system trains the one or more contact center system agent embedding vectors, the one or more contact center system agent skill embedding vectors, and the one or more contact center system virtual queue embedding vectors by applying machine learning, to obtain the final weights of the one or more contact center system agent embedding vectors, the one or more contact center system agent skill embedding vectors, and the one or more contact center system virtual queue embedding vectors; The computing system determines the similarity of at least one of the following: two or more contact center system agent embedding vectors, two or more contact center system agent skill embedding vectors, and one or more contact center system virtual queue embedding vectors, based on a comparison of the final weights of the one or more contact center system agent embedding vectors, the one or more contact center system agent skill embedding vectors, and the one or more contact center system virtual queue embedding vectors; and At least one of the following: In response to determining the similarity of at least one of the two or more contact center system agent embedding vectors, the two or more contact center system agent skill embedding vectors, and the two or more contact center system virtual queue embedding vectors, telephone calls are routed to a contact center system agent; and In response to determining the similarity of at least one of the two or more contact center system agent embedding vectors, the two or more contact center system agent skill embedding vectors, and the two or more contact center system virtual queue embedding vectors, a contact center system agent is assigned to a virtual queue.

2. The method of claim 1, wherein determining the similarity of at least one of the two or more contact center system agent embedding vectors, the two or more contact center system agent skill embedding vectors, and the two or more contact center system virtual queue embedding vectors comprises utilizing at least one of cosine similarity, principal component analysis, or t-distributed random neighborhood embedding.

3. The method of claim 1, wherein at least one of the one or more contact center system agent embedding vectors, one or more contact center system agent skill embedding vectors, and one or more contact center system virtual queue embedding vectors comprises a k-dimensional vector.

4. The method according to claim 3, wherein the k-dimensional vector is in a five-dimensional space or a ten-dimensional space.

5. The method of claim 1, wherein at least one of the transformation and the training is based on a neural network.

6. The method according to claim 1, further comprising transforming the matrix representation into a single-row representation for training.

7. The method of claim 1, wherein applying machine learning to obtain the final weights comprises determining the dot product and ground truth of at least one of one or more contact center system agent embedding vectors, one or more contact center system agent skill embedding vectors, and one or more contact center system virtual queue embedding vectors.

8. The method of claim 1, wherein one or more contact center system agent skills include at least one of one or more language skills, one or more product skills, or one or more educational skills.

9. A system for automatically generating contact center system embeddings, the system comprising: At least one processor; and At least one memory, the at least one memory including a plurality of instructions stored thereon, the plurality of instructions being responsive to execution by the at least one processor to cause the system to: The computing system determines one or more contact center system agents, one or more contact center system agent skills, and one or more contact center system virtual queue experiences; The computing system generates a matrix representation based on the one or more contact center system agents, the one or more contact center system agent skills, and the one or more contact center system virtual queue experiences; The computing system generates one or more contact center system agent identifiers, one or more contact center system agent skill identifiers, and one or more contact center system virtual queue identifiers based on the matrix representation. The computing system transforms the one or more contact center system agent identifiers, the one or more contact center system agent skill identifiers, and the one or more contact center system virtual queue identifiers into one or more contact center system agent embedding vectors, one or more contact center system agent skill embedding vectors, and one or more contact center system virtual queue embedding vectors, wherein the weights of the one or more contact center system agent embedding vectors, the one or more contact center system agent skill embedding vectors, and the one or more contact center system virtual queue embedding vectors are randomly initialized; and The computing system trains the one or more contact center system agent embedding vectors, the one or more contact center system agent skill embedding vectors, and the one or more contact center system virtual queue embedding vectors by applying machine learning, to obtain the final weights of the one or more contact center system agent embedding vectors, the one or more contact center system agent skill embedding vectors, and the one or more contact center system virtual queue embedding vectors; The computing system determines the similarity of at least one of the following: two or more contact center system agent embedding vectors, two or more contact center system agent skill embedding vectors, and one or more contact center system virtual queue embedding vectors, based on a comparison of the final weights of the one or more contact center system agent embedding vectors, the one or more contact center system agent skill embedding vectors, and the one or more contact center system virtual queue embedding vectors; and At least one of the following: In response to determining the similarity of at least one of the two or more contact center system agent embedding vectors, the two or more contact center system agent skill embedding vectors, and the two or more contact center system virtual queue embedding vectors, a telephone call is routed to a contact center system agent; or In response to determining the similarity of at least one of the two or more contact center system agent embedding vectors, the two or more contact center system agent skill embedding vectors, and the two or more contact center system virtual queue embedding vectors, a contact center system agent is assigned to a virtual queue.

10. The system of claim 9, wherein determining the similarity of at least one of the two or more contact center system agent embedding vectors, the two or more contact center system agent skill embedding vectors, and the two or more contact center system virtual queue embedding vectors comprises utilizing at least one of cosine similarity, principal component analysis, or t-distributed random neighborhood embedding.

11. The system of claim 9, wherein at least one of the one or more contact center system agent embedding vectors, one or more contact center system agent skill embedding vectors, and one or more contact center system virtual queue embedding vectors comprises a k-dimensional vector.

12. The system of claim 11, wherein the k-dimensional vector is in a five-dimensional space or a ten-dimensional space.

13. The system of claim 9, wherein at least one of the transformation and the training is based on a neural network.

14. The system of claim 9, wherein the plurality of instructions further cause the system to: The matrix representation is transformed into a single-row representation for training.

15. The system of claim 9, wherein applying machine learning to obtain the final weights comprises determining the dot product and ground truth of at least one of one or more contact center system agent embedding vectors, one or more contact center system agent skill embedding vectors, and one or more contact center system virtual queue embedding vectors.

16. The system of claim 9, wherein one or more contact center system agent skills include at least one of one or more language skills, one or more product skills, or one or more educational skills.

Citation Information

Patent Citations

  • System and method for performing agent behavioral analytics

    US20200195779A1

  • One-to-many agent-to-agent consultation

    US20200314244A1