Systems and methods for minimizing computing resources required for decisioning models providing real-time pairing

By employing a bipartite graph architecture to dynamically configure layers based on processing parameters, the system minimizes computational resources required for real-time pairing, ensuring accurate and stable information delivery in communication systems.

WO2025158302A1PCT designated stage expired Publication Date: 2025-07-31AFINITI AI LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
PCT/IB2025/050673
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-22
Filing Date
2025-01-22
Publication Date
2025-07-31

AI Technical Summary

Technical Problem

Existing systems face challenges in providing real-time relevant information in communication processes due to the high computational resources required by algorithms like minimum cost maximum flow functions, which can lead to incomplete or biased results when only a subset of data is processed, breaking data dependencies, and resulting in unstable outcomes.

Method used

The use of a bipartite graph architecture that dynamically configures layers based on processing parameters to minimize computational resources while maintaining real-time determination speed, allowing the minimum cost maximum flow function to be applied efficiently.

Benefits of technology

This approach reduces computational load without altering the data or using alternative algorithms, ensuring accurate and stable real-time information delivery by preserving data relationships and dependencies.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure IB2025050673_31072025_PF_FP_ABST
    Figure IB2025050673_31072025_PF_FP_ABST
Patent Text Reader

Abstract

Systems and methods for minimizing computing resources required for decisioning models providing real-time pairing by dynamically configuring architecture layers based on processing parameters. For example, the system may receive a request for a first set of content to provide during a first communication. The system may retrieve available content. The system may determine a first processing parameter. The system may determine based on the first processing parameter a layer configuration for a second layer of a bipartite graph. The system may generate a bipartite graph comprising a minimum cost maximum flow function using the layer configuration for the second layer of the bipartite graph. The system may process the available content using the bipartite graph to determine the first set of content.
Need to check novelty before this filing date? Find Prior Art

Description

SYSTEMS AND METHODS FOR MINIMIZING COMPUTING RESOURCES REQUIRED FOR DECISIONING MODELS PROVIDING REAL-TIME PAIRINGBACKGROUND

[0001] Systems for connecting users in a communication, irrespective of whether the format of the communication comprises in-person discussions, electronic transmissions, and / or other forms through which information is exchanged, are increasingly focusing on streamlining the connection process and / or increasing the efficiency of the resulting communications. For example, a communication between users may occur during an agent-contact pairing communication (e.g., in a contact center) where streamlining the connection process and / or increasing the efficiency of the communication is paramount.

[0002] One manner for increasing the efficiency of the communication is to provide relevant information to one or more of the users in real time. That is, as soon as the users are connected, the system may provide relevant information. However, ensuring that relevant information is available to users in real time requires overcoming numerous technical challenges. Chief among these is the limited amount of time (e.g., milliseconds) for determining and providing the relevant information. This is particularly problematic in instances where determining the relevant information may be based on thousands of variables and combination thereof.SUMMARY

[0003] In view of these technical challenges, systems and methods are described herein for novel uses and / or improvements to modeling applications. As one example, systems and methods are described herein for improvements to modeling applications used in dynamic environments, such as contact centers, to provide relevant information to users. One such model may be based on a minimum cost maximum flow function. The minimum cost maximum flow function determines, for a network, a maximum flow with the smallest possible cost. This problem combines maximum flow (getting as much flow as possible from the input to the output) with shortest path (reaching from the input to the output with minimum cost). However, using a minimum cost maximum flow function, particularly in applications that require realtime results (e.g., real-time pairing), requires an extraordinary amount of computational resources (both in terms of processing systems and energy).

[0004] A conventional approach to the computational resource limitations would be to either use a different algorithm (e.g., a less complex function) or simply increase the computational resources available (e.g., a brute force approach). In contrast, the systems and methods allow for the use of the minimum cost maximum flow function (or other computationally intense algorithms) to be used while both minimizing the computational resources required and maintaining the real-time determination speed. For example, as opposed to a conventional approach that requires a different algorithm or a brute force approach, the systems and method minimize the computational resources needed applying the minimum cost maximum flow function to an architecture that allows for selecting specific portions of available data to be subject to the minimum cost maximum flow function.

[0005] Typically, using architecture that process only a portion of available data can lead to several issues that may negatively impact the results due to loss of accuracy, bias, overfitting, and / or unstable results. For example, when only a subset of the data is used, important patterns or relationships present in the full dataset may be missed, leading to incomplete or skewed results. If the sample is not representative of the entire dataset, this can introduce bias into the analysis, causing the algorithm’s outcome to be untrustworthy. Similarly, algorithms that process small subsets of data are more likely to find patterns specific to that subset, which may not generalize well to the entire dataset or to new data. This results in models that perform poorly when exposed to real-world situations. Additionally, unstable results are a concern when using partial data, as the outcome may vary significantly depending on which subset is chosen. This variability can lead to inconsistent conclusions, especially in large, heterogeneous datasets where different portions may contain different insights. Finally, processing only a portion of the data can also break important data dependencies or relationships, especially in structured datasets such as temporal, spatial, or graph-based data. Some patterns and trends only emerge when the full context of the data is considered.

[0006] To counteract these potentially fatal technical issues, systems and methods use a particular architecture, namely a bipartite graph. For example, a bipartite graph is a graph whose vertices can be divided into two disjointed layers, such that every edge connects a vertex in the first layer to a vertex in a second layer (i.e., no edges exist between vertices within the same layer). The layer configuration of the second layer may then be selected from a plurality of potential layer configurations based on one or more processing parameters. That is, while the corpus of available data remains the same (e.g., thus mitigating any of the potentially technical issues above), the portion of available data that is subjected to the minimum costmaximum flow function as applied to the second layer is minimized by the processing parameter. Moreover, as the bipartite graph uses two disjointed layers switching between configurations for the second layer does not create incomplete dependencies or broken relationships. By doing so, the total computational load is reduced without modifying the available data or using a different algorithm.

[0007] In some aspects, systems and methods for minimizing computing resources required for decisioning models providing real-time pairing by dynamically configuring architecture layers based on processing parameters are described. For example, the system may receive a request for a first set of content to provide during a first communication. The system may retrieve available content. The system may determine a first processing parameter. The system may determine, based on the first processing parameter, a layer configuration for a second layer of a bipartite graph. The system may generate a bipartite graph comprising a minimum cost maximum flow function using the layer configuration for the second layer of the bipartite graph. The system may process the available content using the bipartite graph to determine the first set of content.

[0008] Various other aspects, features, and advantages of the invention will be apparent through the detailed description of the invention and the drawings attached hereto. It is also to be understood that both the foregoing general description and the following detailed description are examples and are not restrictive of the scope of the invention. As used in the specification and in the claims, the singular forms of “a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise. In addition, as used in the specification and the claims, the term “or” means “and / or” unless the context clearly dictates otherwise. Additionally, as used in the specification, “a portion” refers to a part of, or the entirety of (i.e., the entire portion), a given item (e.g., data) unless the context clearly dictates otherwise.BRIEF DESCRIPTION OF THE DRAWINGS

[0009] FIG. 1 A shows an example communication system, in accordance with one or more embodiments.

[0010] FIG. IB shows an example communication system, in accordance with one or more embodiments.

[0011] FIG. 1C shows an example communication system, in accordance with one or more embodiments.

[0012] FIG. ID shows an example communication system, in accordance with one or more embodiments.

[0013] FIG. 2 shows a system featuring a model configured to facilitate pairing strategies, in accordance with one or more embodiments.

[0014] FIG. 3 shows graphical representations of artificial neural network models for facilitating pairing strategies, in accordance with one or more embodiments.

[0015] FIG. 4 shows an illustrative example of a user interface used to select parameters, in accordance with one or more embodiments.

[0016] FIG. 5 shows a graphical representation of a model for facilitating pairing strategies based on a first set of parameters, in accordance with one or more embodiments.

[0017] FIG. 6 shows a graphical representation of a model for facilitating pairing strategies based on a first set of parameters, in accordance with one or more embodiments.

[0018] FIG. 7 shows a graphical representation of a model for facilitating pairing strategies based on a first set of parameters, in accordance with one or more embodiments.

[0019] FIG. 8 shows a graphical representation of a model for facilitating pairing strategies based on a first set of parameters, in accordance with one or more embodiments.

[0020] FIG. 9 shows a flowchart for providing content, in accordance with one or more embodiments.

[0021] FIG. 10 shows a flowchart for generating a bipartite graph, in accordance with one or more embodiments.DETAILED DESCRIPTION OF THE DRAWINGS

[0022] In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the embodiments of the invention. It will be appreciated, however, by those having skill in the art that the embodiments of the invention may be practiced without these specific details or with an equivalent arrangement. In other cases, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the embodiments of the invention.

[0023] FIG. 1A illustrates an example communication system 100A. In this example, communication system 100 A may comprise a contact center to facilitate communications between contacts 102 and agents (e.g., agent 130A and agent 130B) via one or more user interfaces 104). For example, a contact center may comprise a centralized facility or department within an organization that handles incoming and outgoing communications with users,customers, and / or other parties (e.g., referred to herein as “contacts”). As referred to herein, a “user interface” may comprise a human-computer interaction and communication in a device, and may include display screens, keyboards, a mouse, and a representation of a desktop. For example, a user interface may comprise a way for an agent to interact with an application, website, contact, and / or communicate content. As referred to herein, “content” should be understood to mean an electronically consumable and / or transmittable data such as internet content (e.g., streaming content, downloadable content, Webcasts, etc.), video clips, audio, information, pictures, rotating images, documents, playlists, websites, articles, books, electronic books, blogs, advertisements, chat sessions, social media content, applications, games, and / or any other media or multimedia and / or combination of the same.

[0024] For example, a contact center may comprise a primary point of contact for contacts (e.g., contact 102) to interact with one or more of agents (e.g., agent 130A and agent 130B) to ask questions, seek support, or make inquiries. As referred to herein, an agent may comprise a representative of a contact center, which may include a human and / or non-human entity that may interact with a contact during a contact-agent interaction.

[0025] As described herein, contact centers may use various communication channels such as phone calls, emails, webchats, social media sites, video calls, and / or other communication means to facilitate interactions between contacts and agents (e.g., contact-agent interactions). In some embodiments, contact centers often utilize advanced technologies like interactive voice response (IVR) systems, customer relationship management (CRM) software, call routing and queuing systems, knowledge bases, and analytics tools to streamline operations, improve efficiency, and enhance the overall customer experience.

[0026] As described herein, a contact-agent interaction may comprise a distinct session or series of communications between a contact (e.g., contact 102) and agent (e.g., agent 130A). A contact-agent interaction may be distinguished from another contact-agent interaction based on one or more characteristics. As described herein, “interaction data” comprise a feature or quality (whether quantitative or qualitative) used to identify a contact-agent interaction and / or distinguish the contact-agent interaction from another contact-agent interaction.

[0027] In some embodiments, interaction data may comprise: a time or date (or other temporal characteristic) related to the contact-agent interaction; content at issue and / or discussed at the contact-agent interaction; an identity (or identifier) for an agent and / or contact, including profile data related to the agent and / or contact, involved in the contact-agent interaction; a model and / or pairing strategy, including one or more metrics thereof, used to connect partiesin the contact-agent interaction; a result or outcome of a contact-agent interaction related to the contact-agent interaction; a contact center state before, during, and / or after the contact-agent interaction; a contact account state, including types of data and / or values thereof, before, during, and / or after the contact-agent interaction; and / or a relationship of the contact-agent interaction to another contact-agent interaction, including whether or not the contact-agent interaction, and / or any interaction data thereof, corresponds to (e.g., is equal to, is within a proximity to, is within a range of, matches to a certain degree and / or confidence, and / or involves similar interaction data) another contact-agent interaction, and / or any interaction data thereof.

[0028] It should be noted that a model may comprise artificial intelligence, including, but not limited to, machine learning, deep learning, etc. (referred to collectively herein as artificial intelligence models, machine learning models, or simply models). The models in one embodiment (e.g., related to pairing) may also be applied to, and / or incorporated with, the models in another embodiment (e.g., related to decisioning).

[0029] For example, the system may record interaction data for one or more contact-agent interactions. In some embodiments, the system may use the interaction data (and / or its relationship to one or more contact-agent interactions) to generate historical contact-agent interaction data (which may be used for modeling purposes).

[0030] In some embodiments, the interaction data may include profile data. The system may monitor for and / or record contact-agent interaction characteristics to generate profile data. As referred to herein, “a profile” and / or “profile data” may comprise data actively and / or passively collected data about a contact-agent interaction, contact, agent, model, contact center, and / or collection (or subset thereof). For example, the profile data may comprise interaction data generated by, at, and / or in response to the contact-agent interaction.

[0031] In some embodiments, interaction data may comprise time-series data. As described herein, “time-series data” may include a sequence of data points that occur in successive order over some period of time. In some embodiments, time-series data may be contrasted with cross- sectional data, which captures a point in time. A time series can be taken on any variable that changes over time (e.g., a value in a contact account). The system may use a time series to track the variable (e.g., account status) of an account over time (e.g., across multiple contact-agent interactions). This can be tracked over the short term, such as whether an account was “saved” during a contact-agent interaction, or the long term, such as whether the account continued to be saved over a given period of time and / or after successive contact-agent interactions. In someembodiments, the system may generate a time series analysis and / or may use the time-series analysis for one or more metrics (e.g., as described below).

[0032] As shown in FIG. 1A, the communication system 100 A may include a central switch 110. The central switch 110 may receive incoming contacts (e.g., callers) or support outbound connections to contacts via a telecommunications network (not shown). The central switch 110 may include contact routing hardware and software for helping to route contacts among one or more contact centers, or to one or more Private Branch Exchanges (PBXs) and / or Automatic Call Distributers (ACDs) or other queuing or switching components, including other internetbased, cloud-based, or otherwise networked contact-agent hardware or software-based contact center solutions.

[0033] The central switch 110 may not be necessary such as if there is only one contact center or if there is only one PBX / ACD routing component in the communication system 100A. If more than one contact center is part of the communication system 100 A, each contact center may include at least one contact center switch (e.g., contact center switches 120 A and 120B). The contact center switches 120 A and 120B may be communicatively coupled to the central switch 110. In embodiments, various topologies of routing and network components may be configured to implement the contact center system.

[0034] Each contact center switch for each contact center may be communicatively coupled to a plurality (or “pool”) of agents (e.g., agent 130A and agent 130B). Each contact center switch may support a certain number of agents (or “seats”) to be logged in at one time. At any given time, a logged-in agent may be available and waiting to be connected to a contact, or the logged-in agent may be unavailable for any of a number of reasons, such as being connected to another contact, performing certain post-call functions such as logging information about the call, or taking a break.

[0035] In the example of FIG. 1 A, the central switch 110 routes contacts to one of two contact centers via contact center switch 120A and contact center switch 120B, respectively. Each of the contact center switches 120 A and 120B are shown with two agents each. Agents 130A and 130B may be logged into contact center switch 120A, and agents 130C and 130D may be logged into contact center switch 120B.

[0036] The communication system 100A may also be communicatively coupled to an integrated service from, for example, a third-party vendor. In the example of FIG. 1 A, a pairing node 140 may be communicatively coupled to one or more switches in the switch system of the communication system 100 A, such as central switch 110, contact center switch 120 A, orcontact center switch 120B. In some embodiments, switches of the communication system 100 A may be communicatively coupled to multiple pairing nodes. In some embodiments, pairing node 140 may be embedded within a component of a contact center system (e.g., embedded in or otherwise integrated with a switch). The pairing node 140 may receive information from a switch (e.g., contact center switch 120A) about agents logged into the switch (e.g., agents 130A and 130B) and about incoming contacts via another switch (e.g., central switch 110) or, in some embodiments, from a network (e.g., the internet or a telecommunications network) (not shown).

[0037] A contact center may include multiple pairing nodes. In some embodiments, one or more pairing nodes may be components of pairing node 140 or one or more switches, such as central switch 110 or contact center switches 120 A and 120B. In some embodiments, a pairing node may determine which pairing node may handle pairing for a particular contact. For example, the pairing node may alternate between enabling pairing via a Behavioral Pairing (BP) strategy and enabling pairing with a first-in-first-out (FIFO) strategy. In other embodiments, one pairing node (e.g., the BP pairing node) may be configured to emulate other pairing strategies.

[0038] FIG. IB illustrates a second example communication system 100B. As shown in FIG. IB, the communication system 100B may include one or more agent endpoints 151A, 151B and one or more contact endpoints 152A, 152B. The agent endpoints 151 A, 15 IB may include an agent terminal and / or an agent computing device (e.g., laptop, cellphone). The agent endpoints 151 A, 15 IB may include a contact terminal and / or a contact computing device (e.g., laptop, cellphone). Agent endpoints 151 A, 15 IB and / or contact endpoints 152A, 152B may connect to a Contact Center as a Service (CCaaS) 170 through either the internet or a public switched telephone network (PSTN) 160, according to the capabilities of the endpoint device.

[0039] FIG. 1C illustrates an example communication system 100C with an example configuration of a CCaaS 170. For example, a CCaaS 170 may include multiple data centers 180A, 180B. The data centers 180A, 180B may be separated physically, even in different countries or on different continents. The data centers 180A, 180B may communicate with each other. For example, one data center is a backup for the other data center; so that, in some embodiments, only one data center 180A or 180B receives agent endpoints 151 A, 15 IB and contact endpoints 152A, 152B at a time.

[0040] Each data center 180 A, 180B includes web demilitarized zone (DMZ) equipment 171 A and 17 IB, respectively, which is configured to receive the agent endpoints 151 A, 151B andcontact endpoints 152A, 152B, which are communicatively connecting to CCaaS via the internet. Web DMZ equipment 171 A and 17 IB may operate outside a firewall to connect with the agent endpoints 151 A, 15 IB and contact endpoints 152A, 152B while the rest of the components of data centers 180A, 180B may be within said firewall (besides the telephony DMZ equipment 172A, 172B, which may also be outside said firewall). Similarly, each data center 180A, 180B includes telephony DMZ equipment 172A and 172B, respectively, which is configured to receive agent endpoints 151 A, 15 IB and contact endpoints 152A, 152B, which are communicatively connecting to CCaaS via the PSTN 160. Telephony DMZ equipment 172A and 172B may operate outside a firewall to connect with the agent endpoints 151A, 151B and contact endpoints 152A, 152B while the rest of the components of data centers 180A, 180B (excluding web DMZ equipment 171 A, 171B) may be within said firewall.

[0041] Further, each data center 180A, 180B may include one or more nodes 173 A, 173B, and 173C, 173D, respectively. All nodes 173 A, 173B and 173C, 173D may communicate with web DMZ equipment 171 A and 171B, respectively, and with telephony DMZ equipment 172A and 172B, respectively. In some embodiments, only one node in each data center 180A, 180B may be communicating with web DMZ equipment 171 A, 171B and with telephony DMZ equipment 172 A, 172B at a time.

[0042] Each node 173A, 173B, 173C, 173D may have one or more pairing modules 174A, 174B, 174C, 174D, respectively. Similar to pairing node 140 of communication system 100A of FIG. 1A, pairing modules 174A, 174B, 174C, 174D may pair contacts to agents. For example, the pairing module may alternate between enabling pairing via a BP module and enabling pairing with a FIFO module. In other embodiments, one pairing module (e.g., the BP module) may be configured to emulate other pairing strategies.

[0043] Turning now to FIG. ID, the disclosed CCaaS communication systems (e.g., FIGs. IB and / or 1C) may support multi-tenancy such that multiple contact centers (or contact center operations or businesses) may be operated on a shared environment. That is, each tenant may have a separate, non-overlapping pool of agents. CCaaS 170 is shown in FIG. ID as comprising two tenants 190 A and 190B in communication system 100D. Turning back to FIG. 1C multitenancy may be supported by node 173 A supporting tenant 190 A while node 173B supports tenant 190B, for example. In another embodiment, data center 180A supports tenant 190A while data center 180B supports tenant 190B. In another example, multi-tenancy may be supported through a shared machine or shared virtual machine; such as node 173 A, which may support both tenants 190 A and 190B, and similarly for nodes 173B, 173C, and 173D. In otherembodiments, the system may be configured for a single tenant within a dedicated environment such as a private machine or private virtual machine.

[0044] FIG. 2 shows a system featuring a model configured to facilitate pairing strategies, in accordance with one or more embodiments. In some embodiments, system 200 may use one or more models, including artificial intelligence-based and non-artificial intelligence-based models, to pair one or more contacts and / or agents, select a model for pairing one or more contacts and / or agents, or evaluate (or validate) another model (e.g., used to pair one or more contacts and / or agents). For example, as shown in FIG. 2, system 200 may generate a prediction and / or determination using model 202. The determination may be output shown as output on a user interface and / or direct a pairing using one or more components (e.g., pairing node 140 (FIG. 4) or one or more switches such as central switch 110 (FIG. 1 A) or contact center switch 120A (FIG. 1A) and contact center switch 120B (FIG. IB)). The system may include one or more pairing strategies, neural networks (e.g., as discussed in relation to FIG. 3), and / or other models.

[0045] As an example, with respect to FIG. 2, model 202 may take inputs 204 and provide outputs 206. The inputs may include multiple data sets such as a training data set and a test data set (which may be based on historical interaction data). The data sets may represent one or more contact-agent interactions and / or interaction data related thereto. In some embodiments, outputs 206 may be fed back to model 202 as input to train model 202 (e.g., alone or in conjunction with user indications of the accuracy of outputs 206, labels associated with the inputs, or with other reference feedback information). Alternatively or additionally, model 202 may update its configurations (e.g., weights, biases, or other parameters) based on its assessment of its prediction (e.g., outputs 206) and reference feedback information (e.g., user indication of accuracy, reference labels, or other information). Alternatively or additionally, where model 202 is a neural network, connection weights may be adjusted to reconcile differences between the neural network’s prediction and the reference feedback. In a further use case, one or more neurons (or nodes) of the neural network may require that their respective errors be sent backward through the neural network to them to facilitate the update process (e.g., backpropagation of error). Updates to the connection weights may, for example, be reflective of the magnitude of error propagated backward after a forward pass has been completed. In this way, for example, the model 202 may be trained to generate better predictions and / or determinations.

[0046] In some embodiments, model 202 may comprise one or more versions. For example, different versions of model 202 (and / or other models referred to herein) may refer to variations or iterations of a particular model that have been developed over time. These versions may involve changes to the model’s architecture, parameters, and / or training data (e.g., as a result of newly available data, improvements to the model’s performance, and / or updates to address specific requirements). Here are a few common types of model versions. In some embodiments, the system may use an initial baseline model, which may be used by the system as a starting point for further improvements and / or comparisons of the model and / or its results. The versions of model 202 may also have one or more iterative versions as a result of the model undergoing a series of incremental changes and / or iterations. In some embodiments, system 200 may store a plurality of models. This plurality of models may include multiple versions of the same model as well as different models. The models may differ based on algorithms used for the model, pairing strategies corresponding to the model, or datasets upon which the model was trained.

[0047] Model 202 may be trained to pair one or more contacts and / or agents, select a model for pairing one or more contacts and / or agents, and / or evaluate (or validate) another model (e.g., used to pair one or more contacts and / or agents). For example, model 202 may receive a first data set (e.g., historical interaction data) and / or one or more classifications (e.g., available pairing strategies, available agents for assigning a contact-agent interaction, a metric for model, etc.). Model 202 is then trained based on a first data set to classify a second dataset (e.g., contacts awaiting assignment to an agent, etc.).

[0048] In some embodiments, model 202 may generate and / or record one or more metrics for a model. As referred to herein, a model metric may comprise data about a model and / or its results. In some embodiments, metrics may comprise evaluation metrics that are measures used to assess the performance and effectiveness of the model and / or a version thereof. For example, the metrics may provide quantitative information about how well the model is performing and / or may be used to compare different models and / or evaluate the same model under different conditions.

[0049] In some embodiments, the metrics may comprise one or more values based on a statistical and / or mathematical operations. For example, the metric may reflect an accuracy of a model (e.g., a proportion of correct predictions made by the model over the total number of predictions), precision (e.g., a proportion of true positive predictions over the total number of positive predictions), recall (e.g., a proportion of true positive predictions over the total number of actual positive instances), Fl score (e.g., a harmonic mean of precision and recall),specificity (e.g., a proportion of true negative predictions over the total number of actual negative instances) mean squared error (e.g., an average squared difference between predicted and actual values), mean absolute error (e.g., an average absolute difference between the predicted and actual values), R-squared (e.g., a proportion of the variance in the dependent variable that is predictable from the independent variables), contact (or agent) percentile (e.g., a percentile at which a contact or agent is randomly assigned), standard deviation (e.g., a measure of how dispersed the data is in relation to the mean), mean absolute deviation (e.g., a measure of variability that indicates the average distance between each prediction and a mean of the total number of predictions).

[0050] Additionally or alternatively, the metrics for one or more model (or versions thereof), samples of the one or more models’ results, and / or results from running one or more models may be aggregated. The system may aggregate the models to determine means, medians, modes, and / or other averaging functions to determine an average metric for one or more models.

[0051] Additionally or alternatively, the metrics for a model may be based on, a derivative of, and / or related to a contact account (or value thereof), as well as one or more contact-agent interactions. For example, a metric may relate to an average amount, a number of, or a percentile of contact accounts that comprise a particular value for a particular category and / or a change in the value. For example, a metric may comprise an average amount, a number of, or a percentile of contact accounts that maintain, change, and / or gain a value before, during, and / or after a client interaction. For example, in the context of a call center, a metric for a model may be based on the number of contact-agent interactions that resulted in an account being maintained.

[0052] Additionally or alternatively, the metric for a model may be in relation to another model. For example, a metric for a model may relate to a lift or gain experienced as the result of a model. Lift may be a measure of an effectiveness of a predictive model calculated as the ratio between the results obtained with and without the predictive model (e.g., the number of contact accounts that were maintained using one model for pairing strategies versus another). Gain may be the ratio between the total number of predictions and the total number of positive observations in the data. For example, the system may determine the lift or gain attributed to one model in relation to another model.

[0053] Additionally or alternatively, the system may determine weights and / or effects on an evaluation and / or validation of a model (e.g., in relation to another model) based on additionalfactors. For example, a metric corresponding to gain or lift may be increased (or decreased) based on whether multiple contacts, agents, contact-agent interactions, etc., corresponded to a given model.

[0054] In some embodiments, the system may generate a time-series analysis and / or may use the time-series data for one or more metrics. For example, a time-series analysis may be useful to see how a given contact account or value therein changes (or does not change) over time and / or subsequent contact-agent interactions. The system may also use a time-series analysis to examine how the changes associated with the chosen data point compare to shifts in other variables (e.g., model, agent, contact center performance) over the same time period and / or subsequent contact-agent interactions. For example, with regards to accounts retained or gained, the system may receive time-series data for the various sub-segments indicating daily values for agents, contact centers, products, accounts, contacts, and / or groups thereof.

[0055] The time-series analysis may determine various trends such as a secular trend, which describe the movement along the term, a seasonal variation, which represent seasonal changes, cyclical fluctuations, which correspond to periodical but not seasonal variations, and irregular variations, which are other non-random sources of variations of series. The system may maintain correlations for this data during modeling. In particular, the system may maintain correlations through non-normalization as normalizing data inherently changes the underlying data which may render correlations, if any, undetectable and / or lead to the detect of false positive correlations. For example, modeling techniques (and the predictions generated by them), such as rarefying (e.g., resampling as if each sample has the same total counts), total sum scaling (e.g., dividing counts by the sequencing depth), and others, and the performance of some strongly parametric approaches, depend heavily on the normalization choices. Thus, normalization may lead to lower model performance and more model errors. The use of a nonparametric bias test alleviates the need for normalization, while still allowing the methods and systems to determine a respective proportion of error detections for each of the plurality of time-series data component models.

[0056] FIG. 3 shows graphical representations of artificial neural network models for facilitating pairing strategies, in accordance with one or more embodiments. Model 300 illustrates an artificial neural network. Model 300 includes input layer 302. Input layer 302 may receive contacts and / or agents awaiting to be paired, metrics used to select a model for pairing one or more contacts and / or agents, etc. Model 300 also includes one or more hidden layers (e.g., hidden layer 304 and hidden layer 306). Model 300 may be based on a largecollection of neural units (or artificial neurons). Model 300 loosely mimics the manner in which a biological brain works (e.g., via large clusters of biological neurons connected by axons). Each neural unit of a model 300 may be connected with many other neural units of model 300. Such connections can be enforcing or inhibitory in their effect on the activation state of connected neural units. In some embodiments, each individual neural unit may have a summation function that combines the values of all of its inputs together. In some embodiments, each connection (or the neural unit itself) may have a threshold function such that the signal must surpass before it propagates to other neural units. Model 300 may be selflearning and trained, rather than explicitly programmed, and can perform significantly better in certain areas of problem solving as compared to traditional computer programs. During training, output layer 308 may correspond to a classification of model 300 (e.g., contacts awaiting assignment to an agent, etc.) and an input known to correspond to that classification may be input into input layer 302. In some embodiments, model 300 may include multiple layers (e.g., where a signal path traverses from front layers to back layers). In some embodiments, back propagation techniques may be utilized by model 300 where forward stimulation is used to reset weights on the “front” neural units. In some embodiments, stimulation and inhibition for model 300 may be freer flowing, with connections interacting in a more chaotic and complex fashion. Model 300 also includes output layer 308. During testing, output layer 308 may indicate whether or not a given input corresponds to a classification of model 300 (e.g., pair one or more contacts and / or agents, select a model for pairing one or more contacts and / or agents, and / or evaluate (or validate) another model (e.g., used to pair one or more contacts and / or agents)).

[0057] FIG. 3 also includes model 350, which is a convolutional neural network. The convolutional neural network is an artificial neural network that features one or more convolutional layers. Convolution layers extract features from an input. Convolution preserves the relationship between the inputted data by learning features using partitions of the input data. As shown in model 350, input layer 352 may proceed to convolution blocks 354 and 356 before being output to convolutional block 358 and output 360. In some embodiments, model 350 may itself serve as an input to model 300.

[0058] In some embodiments, model 350 may implement an inverted residual structure where the input and output of a convolution block (e.g., block 354) are thin bottleneck layers. A residual layer may feed into the next layer and directly into layers that are one or more layers downstream. A bottleneck layer (e.g., block 358) is a layer that contains few neural unitscompared to the previous layers. Model 350 may use a bottleneck layer to obtain a representation of the input with reduced dimensionality. An example of this is the use of autoencoders with bottleneck layers for nonlinear dimensionality reduction. Additionally, model 350 may remove non-linearities in a narrow layer (e.g., block 358) in order to maintain representational power. In some embodiments, the design of model 350 may also be guided by the metric of computation complexity (e.g., the number of floating point operations). In some embodiments, model 350 may increase the feature map dimension at all units to involve as many locations as possible instead of sharply increasing the feature map dimensions at neural units that perform downsampling. In some embodiments, model 350 may decrease the depth and increase width of residual layers in the downstream direction.

[0059] FIG. 4 shows an illustrative example of a user interface used to select parameters, in accordance with one or more embodiments. For example, based on one or more parameters selected in user interface 400, the system may provide one or more offers (or other content) in user interface 450. In some embodiments, user interface 450 may be used to provide content, such as a set of content or offers, during a communication. For example, user interface 450 may provide a plurality of offers that an agent may extend to a contact during a contact-agent interaction. For example, an offer may comprise a proposal made by one party (the agent) to another party (the contact) that expresses a willingness to enter into a legally binding agreement under specific terms and conditions. The offer may outline the essential elements of the proposed contract, including the price, quantity, terms, and any other significant details. Moreover, each offer (e.g., representing distinct content) may comprise one or more content characteristics.

[0060] As described herein, a “contact characteristic” may be any characteristic that distinguishes some content from other content. For example, a content characteristic of content may relate to its relevance (e.g., the degree to which the content is pertinent and applicable to a particular subject or audience), quality (e.g., the overall standard or excellence of the content, which could encompass factors like accuracy, clarity, and professionalism), originality (e.g., whether the content is unique), length (e.g., the size or duration of the content, which could affect its suitability for different platforms or media), format (e.g., the structure and layout of the content, including the use of text, images, audio, video, or interactive elements), tone and style (e.g., the manner in which the content is presented, including the writing style, tone, and voice used), audience appropriateness (e.g., how well the content is tailored to the needs, interests, and demographics of the target audience), authority and / or credibility (e.g., thetrustworthiness and expertise of the source or author of the content), financial and / or performance value (e.g., any metric related to a cost, cost-benefit ratio, resource allocation cost, or the like), likelihood of selection by a contact (e.g., the likelihood that a contact will select a content with a particular characteristic), and / or interactivity (e.g., whether the content allows for user engagement, comments, feedback, or other forms of interaction).

[0061] In some embodiments, the content characteristic may be based on, or related to, interaction data for a previous contact-agent interaction. For example, a content characteristic may correspond to a metric related to one or more previous contact-agent interactions. For example, a content characteristic may comprise data about content, an offer featuring the content, and / or its results. In some embodiments, content characteristics may comprise evaluation metrics that are measures used to assess the performance and effectiveness of the content, offer, and / or an agent’s use thereof. For example, the content characteristic may provide quantitative information about how well the content is performing and / or may be used to compare different offers and / or evaluate the same content / offer under different conditions.

[0062] Additionally or alternatively, the content characteristic for one or more offers or content, samples of the results, and / or results from running one or more offers / content may be aggregated. The system may aggregate the results to determine means, medians, modes, and / or other averaging functions to determine an average metric for one or more offers, arrangements thereof, agent’s use thereof, and / or any other information.

[0063] Additionally or alternatively, the content characteristic for content may be based on, a derivative of, and / or related to a contact account (or value thereof) as well as one or more contact-agent interactions. For example, a metric may relate to an average amount, a number of, or a percentile of contact accounts that comprise a particular value for a particular category and / or a change in the value. For example, a metric for content may comprise an average amount, a number of, or a percentile of contact accounts that maintain, change, and / or gain a value before, during, and / or after a client interaction in which the content was provided to the agent and / or contact. For example, the in context of a call center, a metric for content may be based on the number of contact-agent interactions that resulted in an account being maintained, an account being lost, a ratio of the content being displayed (e.g., on user interface 450) and selected by an agent (or not selected), and / or other data related to content being provided.

[0064] In some embodiments, a content characteristic may represent a value to the agent, contact, and / or contact center provider. For example, a content characteristic may indicate howvaluable a particular piece of content (e.g., an offer) is to the contact center provider, agent, and / or user.

[0065] As shown in FIG. 4, content may be displayed in user interface 450 based on one or more parameters that are selected in user interface 400. For example, user interface 400 may represent a list of parameters that may be manually selected or automatically determined when minimizing computing resources required for decisioning models providing real-time pairing by dynamically configuring architecture layers based on processing parameters. That is, one or more parameters in user interface 400 may be triaged when using decisioning models. Additional criteria (e.g., parameter weights, model selection, algorithm used, datasets used, etc.) may also be selected (manually or automatically). In some embodiments, a parameter may be based on any content characteristic.

[0066] For example, as shown in user interface 400, the “choose any” and “rank matter” parameters may be used to address varying recommendation scenarios. The “choose any” parameter may result in the user interface showing all eligible content for a contact; in some examples, part or all of the eligible content may be ranked, or positioned, in a particular order for the contact. In some examples, the content may include a recommendation list of a subset of the available content, which may be positioned before or in front of a remainder of the available content. For example, an agent using the user interface 450 may select any available / eligible content as opposed to just selecting from a preselected and / or pre-weighted subset of content. The “rank matter” parameter may determine if the order (e.g., position or rank) of content (e.g., offers) matters; for example, there may be an order for the content both within and outside a recommendation list of content. For example, the “rank matter” parameter may determine if the decision model should rank the content and / or put particular content in a particular location (or with a particular visual characteristic such as size, color, font, border, highlighting, etc.) in user interface 450.

[0067] It should be noted that while additional parameters may be used, the “choose any” and “rank matter” parameters are used for illustrative purposes both in FIG. 4 and FIGS. 5-8. For example, using the “choose any” and “rank matter” parameters, the system may address four distinct use cases (e.g., as described in FIGS. 5-8).

[0068] It should be further noted that FIGS. 5-8 illustrate the use of a minimum cost maximum flow function in a model, although other functions could be used, such as a maximum flow (e.g., a function that focuses solely on finding the maximum flow from a source to a sink while disregarding the cost associated with edge traversal), minimum cut (e.g., a function that aimsto find the minimum capacity of edges that, when removed, will disconnect the source from the sink in a network), multi-commodity flow (e.g., a function with multiple commodities in which each commodity has its own source, sink, and constraints, and the objective may involve minimizing costs or maximizing the flow of one or more commodities), shortest path (e.g., a function that focuses on finding the shortest path from a source to a destination in a graph, usually considering only one commodity or type of flow), steady-state network flow (e.g., a function that considers flows in a network that have reached a steady state, and the goal is to determine the flow distribution given certain constraints), etc.

[0069] A minimum cost maximum flow function is a mathematical optimization algorithm that may be used in network flow problems. It combines the concepts of maximum flow and minimum cost to determine the most efficient way to transport goods or resources through a network, such as a transportation network, communication network, or supply chain.

[0070] In a network flow problem, the system may generate a directed graph where each edge has a capacity (indicating the maximum amount of flow it can carry) and a cost (indicating the cost associated with sending flow through that edge). The function works to find the maximum amount of flow from a source node (e.g., an input node) to a sink node (e.g., an output node) while minimizing the total cost of transporting that flow.

[0071] In the minimum cost maximum flow function, and as shown in FIGS. 5-8, the model uses a network represented as a directed graph, with nodes (vertices) and edges (arcs). This graph includes a source node, a sink node, capacities on the edges, and costs associated with sending flow through each edge. In some examples, the directed graph may be a bipartite graph.

[0072] The minimum cost maximum flow function works to find the maximum flow from the source to the sink while respecting the capacity constraints on each edge. The flow represents the quantity of goods, data, or resources moving through the network. Each edge has an associated cost for sending flow through it. The objective of the minimum cost maximum flow function is to minimize the total cost of sending the maximum flow from the source to the sink. However, the flow on each edge must respect the capacity constraints, and the flow into and out of each node must be conserved.

[0073] The minimum cost maximum flow function optimizes the flow in such a way that the maximum flow is achieved, and the total cost is minimized. The system may use one or more algorithms to solve minimum cost maximum flow function. For example, the system may use the Ford-Fulkerson algorithm and / or its variants (such as the Successive Shortest Path algorithm). As one example, using the Ford-Fulkerson algorithm in the minimum costmaximum flow function, the system may start with an initial flow of zero on all edges in the network.

[0074] In each iteration, the system may find an augmenting path from the source to the sink in the residual graph. The residual graph is derived from the original graph and represents how much additional flow can be pushed through the network. An augmenting path is a path from the source to the sink where every edge has remaining capacity (original capacity minus the current flow) greater than zero. Once the system finds an augmenting path in the residual graph, the system determines the maximum amount of flow that can be added along this path, which is the minimum capacity of the edges along the path (e.g., bottleneck capacity). The system then increases the flow on each edge of the augmenting path by the bottleneck capacity. After augmenting the flow, the system updates the residual graph to reflect the changes. For forward edges, the system reduces their remaining capacity by the bottleneck capacity, and for reverse edges, the system increases their remaining capacity by the same amount. This allows for the possibility of sending more flow along the same path in subsequent iterations. The system then continues this process of finding augmenting paths, augmenting the flow, and updating the residual graph until no more augmenting paths can be found in the residual graph. When no more augmenting paths are available, the system has reached the maximum flow. The algorithm terminates when there are no more augmenting paths in the residual graph, which means that the flow has reached its maximum possible value.

[0075] As shown in FIGS. 5-8, a directed graph for the minimum cost maximum flow function may comprise a plurality of layers corresponding to groupings of the various offers; for example, offers may comprise content, as described herein. For example, a first layer may comprise nodes corresponding to available offers or content (“o”). The second layer may comprise nodes corresponding to different ranks or positions of the available offers or content (e.g., “p”). These ranks and positions may be relative to content display in a user interface (e.g., as shown in user interface 450 (FIG. 4)), such as where the offers are positioned and / or if the offers are positioned on a user interface 450. Additionally, the edges (arcs) of the directed graph may have different capacities. For example, while the capacity from the source node (e.g., input node) to each node in the first layer may be equal to 1, the capacity from nodes in the first layer to the second layer and beyond (e.g., including to the sink (e.g., output node)) may depend on a number of recommended offers that the system is permitted to generate and a number of total available offers.

[0076] For example, the system may generate a bipartite graph. For example, the source node may be a set of available offers Oi, Oi... OM. The sink may be a combination of the recommended offers pi, pj. . . pk, and a dummy node pk+i, wherein the dummy node represents all non-recommended offers. Each offer may have a capacity of 1, each recommended offer may also have a capacity of 1, and the dummy node may have a capacity of the number of available offers (M) minus the number of recommended offers (K), so M-K. Each edge between the sinks and sources may have a cost function associated with it, cij. That is, the cost may be based on a score of an offer, sij. For example, a cost function may be cij = -Sij. For example, Oi at a given position in the recommended set may have a cost of ci,2 at p2, which is the negative score of Oi at position 2. If the agents are unable to select offers from outside the recommendation list, the cost of any edge connected to the dummy node will be 0.

[0077] As shown in FIGS. 5-8, the system may minimize computing resources required for decisioning models providing real-time pairing. For example, FIGS. 5-8 show the effect on a model based on model parameters based on output limitations. For example, as described in FIG. 4, the system may select parameters based on output limitations. The selected parameters may then be used to determine a bipartite graph, as shown in FIGS. 5-8 and a selected function (e.g., a minimum cost maximum flow function) may be used to solve the bipartite graph and determine the offer content to display. The selected parameters may affect values corresponding to capacity of an edge, number of nodes, and / or other characteristics, which may limit the complexity of (and computing resources required to provide) a given model.

[0078] FIG. 5 shows a graphical representation of a model for facilitating pairing strategies based on a first set of parameters, in accordance with one or more embodiments. For example, model 500 illustrates a case where the “choose any” parameter is deselected (e.g., marked “False” in user interface 400 (FIG. 4)), and the “rank matter” parameter is selected (e.g., marked “True” in user interface 400 (FIG. 4)). In such a case, an agent can select content (and a model determines content for providing) only from a recommended list of content (and only content from the recommended list of content appears in user interface 450 (FIG. 4)), and the order of that content (e.g., in user interface 450 (FIG. 4)) is determined by the model.

[0079] As shown in FIG. 5, the capacity of each edge from the source node to each node in the first layer of nodes corresponds to one. The capacity of each edge from each node in the first layer of nodes to each node in the second layer corresponds to a determined cost (which may be the negative of a score), “s”, that is determined based on content characteristics of each content (or offer, as discussed herein). The capacity of each edge from each node in the secondlayer of nodes to the sink node is 1, with the exception of a dummy node in the second layer of nodes having a capacity defined as total number of offers (content in a set of available content), M, minus total positions (or ranks), “K”, in a user interface (e.g., user interface 450 (FIG. 4)).

[0080] FIG. 6 shows a graphical representation of a model for facilitating pairing strategies based on a first set of parameters, in accordance with one or more embodiments. For example, model 600 illustrates a case where the “choose any” parameter is deselected (e.g., marked “False” in user interface 400 (FIG. 4)), and the “rank matter” parameter is deselected (e.g., marked “False” in user interface 400 (FIG. 4)). In such a case, an agent can select content (and a model determines content for providing) only from a recommended list of content (and only content from the recommended list appears in user interface 450 (FIG. 4)), but the order of the content in the recommended list (e.g., in user interface 450 (FIG. 4)) is irrelevant for the model.

[0081] As shown in FIG. 6, the capacity of each edge from the source node to each node in the first layer of nodes corresponds to one. The capacity of each edge from each node in the first layer of nodes to a first node in the second layer corresponds to the cost (e.g., a negative of a score) corresponding to each content (e.g., offer). The capacity of each edge from each node in the first layer of nodes to a second node (e.g., to the dummy node) in the second layer corresponds to zero (e.g., indicating that the content will not be shown on the user interface, because the choose any parameter is deselected and only the recommended list of content will be shown). There are only two nodes: the first node representing the content that will appear in the recommended list of content and the second node representing the content that will not appear on the user interface 450 because it is not in the recommended list of content. The capacity of an edge from the first node in the second layer to the sink node corresponds to the number of content that will appear in the recommended list, K, (e.g., a length of the recommended list of content) in a user interface (e.g., user interface 450 (FIG. 4)); for example, the number, K, is selected by a user. The capacity of the second node in the second layer (e.g., a dummy node) is defined as total number of offers (content in a set of available content), M, minus total length of the recommended list, K, in a user interface (e.g., user interface 450 (FIG. 4))-

[0082] FIG. 7 shows a graphical representation of a model for facilitating pairing strategies based on a first set of parameters, in accordance with one or more embodiments. For example, model 700 illustrates a case where the “choose any” parameter is selected (e.g., marked “True” in user interface 400 (FIG. 4)), and the “rank matter” parameter is selected (e.g., marked “True” in user interface 400 (FIG. 4)). In such a case, an agent can select any content (and amodel may determine content for providing) from any available content (and any available content may appear in user interface 450 (FIG. 4)), and the order of that content (e.g., in user interface 450 (FIG. 4)) is determined by the model.

[0083] As shown in FIG. 7, the capacity of each edge from the source node to each node in the first layer of nodes corresponds to one. The capacity of each edge from each node in the first layer of nodes to each node in the second layer corresponds to a determined cost (which may be the negative of a score), “s”, that is determined based on content characteristics of each content (or offer). The capacity of each edge from each node in the second layer of nodes to the sink node is 1, with the exception of a dummy node in the second layer of nodes having a capacity defined as total number of offers (content in a set of available content), M, minus total positions (or ranks), K, in a user interface (e.g., user interface 450 (FIG. 4)).

[0084] FIG. 8 shows a graphical representation of a model for facilitating pairing strategies based on a first set of parameters, in accordance with one or more embodiments. For example, model 800 illustrates a case where the “choose any” parameter is selected (e.g., marked “True” in user interface 400 (FIG. 4)), and the “rank matter” parameter is deselected (e.g., marked “False” in user interface 400 (FIG. 4)). In such a case, an agent can select any content (and a model may determine content for providing) from any available content (and any available content may appear in user interface 450 (FIG. 4)), but the order of that content (e.g., in user interface 450 (FIG. 4)) is irrelevant for the model.

[0085] As shown in FIG. 8, the capacity of each edge from the source node to each node in the first node layer corresponds to one. The capacity of each edge from each node in the first node layer to each node in the second layer corresponds to a determined cost (which may be the negative of a score, “s”, that is determined based on content characteristics of each content (or offer)). The capacity of a first edge from a first node in the second node layer to the sink node is equal to K. The capacity of a second edge from a second node in the second layer to the sink node is defined as total number of offers (content in a set of available content), M, minus total positions (or ranks), K, in a user interface (e.g., user interface 450 (FIG. 4)).

[0086] FIG. 9 shows a flowchart for providing content, in accordance with one or more embodiments. For example, the system may use process 900 (e.g., as implemented on one or more system components described above) in order to minimize computing resources required for decisioning models providing real-time pairing by dynamically configuring architecture layers based on processing parameters.

[0087] At step 902, process 900 (e.g., using one or more components described above) receives a request for a communication. For example, the system may receive a first communication request to initiate a first communication. In some embodiments (e.g., in a contact center), the system may provide content (such as one or more offers, as discussed herein) to an agent during a contact-agent interaction using a combination of software applications and user interfaces designed to support the agents in their interactions with the contacts. For example, a contact may initiate contact with the contact center, which can be through various channels such as phone calls, emails, chat messages, or through self-service options like a website or mobile app. The contact center’s systems, which often include ACD and IVR systems, may route the contact’s interaction to the appropriate agent or team based on predefined rules, skills, and availability. The agent, who may be seated at a computer, logs into a specialized agent desktop interface or software application. This interface provides the agent with tools and information to handle customer interactions. When the agent receives the contact, the contact center’s system can automatically retrieve customer information from a CRM system or a database. This information can include the contact’s history, profile, previous interactions, and relevant account details.

[0088] At step 904, process 900 (e.g., using one or more components described above) determines a set of content to provide during the communication. For example, the system may, in response to receiving the first communication request, determine a first set of content to provide during the first communication. For example, in a contact center (e.g., comprising a user interface of an agent that is populated with the information relevant to a current agentcontact interaction), the system may determine an output (e.g., the determined content) using a minimum cost maximum flow function as limited by the processing parameters for a user device (e.g., a screen size of the user device, an arrangement of content on the user device, a template populated with the relevant information, etc.). As such, some relevant content (e.g., potential offers, arrangements of those offers, etc.) may not be provided, not provided, arranged, and / or otherwise modified. For example, the system may filter out potentially relevant information by applying parameter triaging to the minimum cost maximum flow function, in which the parameters selected for the triaging are based on the processing parameters of the application. By doing so, the system minimizes the computational resources required and maintains the real-time determination speed despite using a computationally intensive algorithm (e.g., a minimum cost maximum flow function) to process the available content.

[0089] In some embodiments, the system may impose runtime restrictions (e.g., via triaging one or more parameter) on a client side of an application to identify results likely to be provided (e.g., offers or content of available content that is likely to be provided as content during the communication) based on the processing parameters. For examples, these results are a third set of the available content. The system may then apply minimum cost maximum flow function to optimize the determinations related to these results, in order to provide a first set of content of the available content. The system may then use a less computationally intensive method (if any) to process results that are likely outside the processing parameters and / or are less desirable for use by the user during a contact-agent interaction, based on, for example, the contact characteristics of the contact of the contact-agent interaction. For example, these less-desirable results are a fourth set of the available content.

[0090] For example, the system may determine a third set of content from the plurality of available content that is preferable for use during the first communication (e.g., based on content characteristics). The system may also determine a fourth set of content from the plurality of available content that is less preferable or is unacceptable for use during the first communication (e.g., based on content characteristics). The system may determine to use the minimum cost maximum flow function to select the first set of content from the third set of content. For example, the first set of content comprises a recommended list or set of offers. Additionally or alternatively, the system may determine to use a different function (e.g., a low complexity function) to select the second set of content from the fourth set of content or use the different function (e.g., the low complexity function) to position, rank, or order the fourth set of content.

[0091] To determine the first set of content, the system may retrieve a first dataset, wherein the first dataset comprises a plurality of available content to process using a minimum cost maximum flow function to determine the first set of content.

[0092] To determine the first set of content, the system may determine a first processing parameter, wherein the first processing parameter requires the first set of content to have a first processing parameter. In some embodiments, the processing parameters and / or parameters may be received via a user interface (e.g., user interface 400 (FIG. 4)). For example, the system may receive a user input via a user interface. The system may then determine the first processing parameter based on the user input. Alternatively or additionally, the system may automatically determine a processing parameter.

[0093] In some embodiments, the system may use multiple processing parameters. For example, the system may determine the first set of content to provide during the first communication by further determining a second processing parameter, wherein the second processing parameter requires the first set of content to have a second content characteristic. The system may then determine a second parameter for the minimum cost maximum flow function based on the second processing parameter. The system may then process the first dataset using the minimum cost maximum flow function with the second parameter to select the first set of content from a plurality of available content.

[0094] To determine the first set of content, the system may determine a first processing parameter for the minimum cost maximum flow function based on the first processing parameter. For example, the first processing parameter may correspond to a requirement to rank the plurality of available content. The system may determine the first processing parameter for the minimum cost maximum flow function based on the first processing parameter by using the minimum cost maximum flow function to rank content in the plurality of available content and determining a first rank corresponding to an item in the first set of content. In another example, the first processing parameter may correspond to a requirement for a subset of the plurality of available content. The system may then determine the first processing parameter for the minimum cost maximum flow function based on the first processing parameter by using the minimum cost maximum flow function to filter the plurality of available content to the subset. The system may then process the first dataset using the minimum cost maximum flow function with the first processing parameter to select the first set of content further comprising selecting the first set of content based on the subset.

[0095] To determine the first set of content, the system may process the first dataset using the minimum cost maximum flow function with the first processing parameter to select the first set of content from a plurality of available content. In some embodiments, processing the first dataset using the minimum cost maximum flow function with the first processing parameter to select the first set of content from the plurality of available content may comprise the system determining a cost for each content of the plurality of available content and selecting the first set of content based on the determined costs for each content of the plurality of available content.

[0096] For example, to determine a first set of content, the system may process a first dataset using the minimum-cost maximum-flow function with a designated processing parameter to select the most suitable content from a plurality of available options. This process involvesevaluating the costs associated with each piece of content in the dataset. The system assigns a cost value to each item based on predefined criteria, such as relevance, quality, or resource utilization, which represent the expense or trade-off of including that content in the selection. By applying the minimum-cost maximum-flow function, the system identifies the optimal distribution of flow through a directed graph, where nodes represent content (or sets of content) and edges signify the flow capacity and associated costs. Using the first processing parameter, the system ensures that the selection aligns with the desired constraints and objectives, such as minimizing the total cost while maximizing utility. Ultimately, the system selects the first set of content from the plurality of available content based on the calculated costs, ensuring an efficient and cost-effective outcome.

[0097] In some embodiments, processing the first dataset using the minimum cost maximum flow function with the first processing parameter to select the first set of content from a plurality of available content may comprise the system generating a directed graph, wherein the directed graph comprises a first node layer and a second node layer and a plurality of edges between the first node layer and the second node layer selecting a number of nodes in the second node layer based on the first processing parameter.

[0098] In some embodiments, processing the first dataset using the minimum cost maximum flow function with the first processing parameter to select the first set of content from a plurality of available content may comprise the system generating a directed graph, wherein the directed graph comprises a first node layer and a second node layer and a plurality of edges between the first node layer and the second node layer and selecting a number of nodes in the second node layer based on an amount of content in the plurality of available content.

[0099] In some embodiments, determining based on the first processing parameter a layer configuration for a second layer of a bipartite graph may comprise generating a directed graph, wherein the directed graph comprises a first node layer and a second node layer and a plurality of edges between the first node layer and the second node layer. The system may then determine a respective cost for each of the plurality of edges. The system may select a number of nodes in the second node layer based on the first processing parameter.

[0100] In some embodiments, the system may process the first dataset using the minimum cost maximum flow function with the first processing parameter to select the first set of content from a plurality of available content. To do so, the system may generate a directed graph, wherein the directed graph comprises a first node layer and a second node layer and a plurality of edges between the first node layer and the second node layer. The system may determine acost for each of the plurality of edges based on one or more respective content characteristics for the plurality of available content. In such cases, the first processing parameter may correspond to a requirement for a subset of the plurality of available content, wherein determining the cost for each of the plurality of edges based on the first processing parameter further comprises setting the cost of a subset of the plurality of edges to zero.

[0101] At step 906, process 900 (e.g., using one or more components described above) provides the set of content. For example, the system may provide the first set of content during the first communication. In some embodiments (e.g., in a contact center), the agent’s computer may display relevant content (e.g., offers) on the user interface, which can include customer information (e.g., basic customer details, previous interactions, and history), scripted responses (e.g., scripts or suggested responses for common customer queries or issues), knowledge base (e.g., access to a knowledge base or database of articles and information to assist in troubleshooting and problem solving), or templates, (e.g., forms for capturing information, creating records, or processing transactions).

[0102] The agent may use the displayed content to interact with the contact. This may involve generating offers, providing assistance, resolving issues, answering questions, or initiating actions like order processing or issue escalation. In some embodiments, the system may provide real-time guidance to agents, suggesting the next best action based on customer data and interaction history. This can help agents provide more personalized and efficient service.

[0103] In some embodiments, in addition to the system providing the first set of content (e.g., a first offer) immediately, and ranked / positioned second set of content (e.g., a second offer) lower than the first set of content, the system may iteratively send new content and / or update provided content.

[0104] In one example, the system may, in response to receiving the first communication request, determine a second set content, from the plurality of available content, to provide during the first communication, wherein the second set of content is not selected using the minimum cost maximum flow function. The system may provide the second set of content during the first communication.

[0105] It is contemplated that the steps or descriptions of FIG. 9 may be used with any other embodiment of this disclosure. In addition, the steps and descriptions described in relation to FIG. 9 may be done in alternative orders or in parallel to further the purposes of this disclosure. For example, each of these steps may be performed in any order, in parallel, or simultaneously to reduce lag or increase the speed of the system or method. Furthermore, it should be notedthat any of the components, devices, or equipment discussed in relation to the figures above could be used to perform one or more of the steps in FIG. 9.

[0106] FIG. 10 shows a flowchart for generating a bipartite graph, in accordance with one or more embodiments. For example, the system may use process 1000 (e.g., as implemented on one or more system components described above) in order to minimize computing resources required for decisioning models providing real-time pairing by dynamically configuring architecture layers based on processing parameters.

[0107] In some embodiments, the system may receive a request for a first set of content to provide during a first communication and retrieve a first dataset, wherein the first dataset comprises a plurality of available content. For example, the system may receive a request to initiate a contact-agent pairing at a contact center. In response to the request, the system may determine what content is available for providing during the contact-agent pairing (e.g., on a user interface). For example, after a pairing is made between an available agent and an available contact, the system may send the agent a set of offers (e.g., content) available to suggest to the contact or client controlling a contact center. The set of offers available may depend on the client who operates the contact center system. In some cases, the available offers may depend on the agent, the contact, and / or a set of other environmental factors (resource availability, market conditions, time of day, time of month, time of year, length of contact’s relationship with client, etc.). In addition to, or in alternative to, determining the contact-agent pairing, the system may recommend a subset and / or a ranking of the available offers for the pairing. For example, if offers 1 through 5 are the available offers, the system may recommend a subset of offers 1 through 3. In another example, the system may recommend the offers in a ranked order.

[0108] In some instances, there are a large number of offers. Determining the proper subset for each specific pairing is a problem that the system must solve for each unique pairing, and cannot be easily determined in advance (e.g., before the contact center’s operation, or perhaps even when the agent is in queue and available to receive a new pairing) because the contactagent pairing is not known before the pairing occurs, and the pairing may have specific eligibility requirements that determine the available offers. For example, when a contact-agent pairing occurs, the client may have a set of eligibility rules that determine what are available offers for this pairing. In some embodiments, the eligibility rules are based on characteristics of the contact, client, and / or agent.

[0109] In response to a request for content, the system may determine a subset of offers to recommend for the pairing. The client may set a threshold time limit from the moment ofpairing to a time when the subset of offers must be visible for the agent to review during the pairing. For example, the threshold time limit / period may be 100 milliseconds. In such cases, meeting the threshold time limit / period may be difficult when there are dozens or hundreds of available offers to consider. In addition, some clients may want offer ranking in addition to offer subset selection. Therefore, there is a need for an efficient and accurate method to determine a subset of offers (optionally, a subset of ranked offers) from the available offers. For example, within milliseconds, the system is required to determine a contact-agent pairing, determine available offers, and determine a subset and / or ranking of offers and transmits to a device associated with the agent.

[0110] At step 1002, process 1000 (e.g., using one or more components described above) determines a first processing parameter. For example, the system may determine a parameter to use when selecting content (e.g., as shown in FIG. 4 above). The processing parameters may include a “choose any” and / or “rank matters” option. For example, some clients may allow agents to see and select offers that are the set of available offers and not in a recommended offer subset (e.g., the agent may “choose any” offer). Alternatively or additionally, some clients may determine that the order of offers in the subset (or wide list of available offers) matters (e.g., “rank matters” for the offer). For example, the earlier-ranked offers may generate higher revenue for the client and / or the agent, or be preferred for some other reason. In some examples, the agent may thus be required to go in order of the ranked offers. In other examples, the placement of the offers may bias the agent towards preferentially selecting one or the other, and, accordingly, the placement / rank matters (e.g., “rank matters” for the offer).

[0111] In some embodiments, the system may determine the first processing parameter by receiving a user input via a user interface and determining the first processing parameter based on the user input. For example, an agent may select a parameter for an offer recommendation via one or more options. In some embodiments, the first processing parameter may correspond to a requirement for a subset of the plurality of available content. For example, the system may determine the cost for each of the plurality of edges based on the first processing parameter by setting the cost of a subset of the plurality of edges to zero. In such, the system may set edge values for a subset of nodes to zero.

[0112] In some embodiments, the first processing parameter may correspond to a requirement to rank the plurality of available content. In such cases, processing the first dataset using the bipartite graph to determine the first set of content may comprise using the minimum cost maximum flow function to rank content in the plurality of available content and determining afirst rank corresponding to an item in the first set of content. For example, the system may receive a user input selecting a “rank matters” option.

[0113] In some embodiments, the first processing parameter may correspond to a requirement for a subset of the plurality of available content. In such cases, processing the first dataset using the bipartite graph to determine the first set of content may comprise using the minimum cost maximum flow function to filter the plurality of available content to the subset. The system may then process the first dataset using the minimum cost maximum flow function with the first processing parameter to select the first set of content further comprises selecting the first set of content based on the subset. For example, the system may receive a user input to select only from a subset (e.g., an input where a “choose any” option is not selected). The subset may then include only offers that are “approved” for display.

[0114] At step 1004, process 1000 (e.g., using one or more components described above) determines based on the first processing parameter a layer configuration. For example, the system may determine based on the first processing parameter a layer configuration for a second layer of a bipartite graph. As described herein, a bipartite graph may comprise a graph in which the set of vertices can be divided into two distinct, non-overlapping sets, typically called “U” and “V,” such that no two vertices (or nodes) within the same set are connected by an edge. In other words, every edge in the graph connects a vertex from set “U” (e.g., a first layer) to a vertex from set “V” (e.g., a second layer). This means that connections (edges) occur between nodes in different sets, not within the same set. A key characteristic of bipartite graphs is that they do not contain any odd-length cycles. This property makes them easier to identify because any graph that contains an odd-length cycle cannot be bipartite.

[0115] As described herein, a layer configuration may refer to an arrangement, division, and / or characteristic related to an edge, weight, and / or node of a layer of a graph. For example, the layer configuration may comprise a number of nodes in a layer, a cost function used for one or more layers, etc. In some embodiments, the layer configuration may correspond to any characteristic of the second layer used to generate a bipartite graph. For example, each edge between the sinks and sources may have a cost function associated with it, which may be based on the layer configuration and / or one or more processing parameters.

[0116] In some embodiments, the system may determine, based on the first processing parameter corresponding to a selected option, the layer configuration for the second layer of the bipartite graph by generating a directed graph. In some instances, the directed graph comprises a first node layer and a second node layer and a plurality of edges between the firstnode layer and the second node layer. The system may then select a number of nodes in the second node layer based on the first processing parameter. For example, the system may receive a user input of a “rank matters” option. If so, the system may determine the rank and / or position of nodes in the second layer.

[0117] In some embodiments, the system may determine, based on the first processing parameter corresponding to an amount of content, the layer configuration for the second layer of the bipartite graph. For example, the system may generate a directed graph that comprises a first node layer and a second node layer and a plurality of edges between the first node layer and the second node layer. The system may then select a number of nodes in the second node layer based on an amount of content in the plurality of available content. For example, as more content becomes available, the system may generate more nodes (e.g., representing more offers, more ranks, etc.).

[0118] In some embodiments, the system may determine, based on the first processing parameter representing cost, the layer configuration for the second layer of the bipartite graph. For example, the system may generate a directed graph, wherein the directed graph comprises a first node layer and a second node layer and a plurality of edges between the first node layer and the second node layer. The system may then determine a cost for each of the plurality of edges based on one or more respective content characteristics for the plurality of available content. For example, the system may apply the cost function to the edges of the bipartite graph.

[0119] In some embodiments, the system may determine the layer configuration for the second layer of the bipartite graph based on capacity. For example, the system may determine a first capacity for an edge to first node in the second layer, wherein the first capacity indicates a maximum amount of flow for the edge. The system may determine a first cost for the edge. As one example, in a network flow problem, the system may generate a directed graph where each edge has a capacity (indicating the maximum amount of flow it can carry) and a cost (indicating the cost associated with sending flow through that edge). The system may use the function to find the maximum amount of flow from a source node (e.g., an input node) to a sink node (e.g., an output node) while minimizing the total cost of transporting that flow.

[0120] For example, the system may determine the configuration of the second layer of a bipartite graph based on the capacity and cost associated with the edges connecting the nodes. Each edge in the directed graph is assigned a capacity, which indicates the maximum amount of flow it can carry, and a cost, which represents the expense incurred when sending flow through that edge. To configure the second layer, the system first identifies the capacity foreach edge connected to the nodes in this layer, ensuring that the flow remains within the allowable limits. Additionally, the system determines the cost associated with each edge to evaluate the trade-offs between flow distribution and cost minimization. Using these parameters, the system employs algorithms, such as the minimum-cost maximum-flow algorithm, to compute the maximum possible flow from a source node (e.g., an input node) to a sink node (e.g., an output node) while minimizing the total cost of transporting the flow. This process ensures an optimal configuration of the second layer that aligns with the flow constraints and cost efficiency objectives.

[0121] In some embodiments, the system may determine the layer configuration for the second layer of the bipartite graph based on capacity. For example, the system may determine a path in the bipartite graph where an edge between a first node and a second node has remaining capacity. The system may determine a flow corresponding to the remaining capacity. For example, the system may find an augmenting path from the source to the sink in a residual graph where every edge has remaining capacity (original capacity minus the current flow) greater than zero. Once the system finds an augmenting path in the residual graph, the system determines the maximum amount of flow that can be added along this path, which is the minimum capacity of the edges along the path (e.g., bottleneck capacity). The system then increases the flow on each edge of the augmenting path by the bottleneck capacity. After augmenting the flow, the system updates the residual graph to reflect the changes.

[0122] In another embodiment the system may determine the layer configuration for the second layer of the bipartite graph by determining an amount of content to provide during the first communication and determining a first capacity for an edge to first node in the second layer based on the amount of content. For example, as shown in FIGS. 5-8, a directed graph for the minimum cost maximum flow function may comprise a plurality of layers corresponding to groupings of the various offers. As one example, a first layer may comprise nodes corresponding to available offers or content (“o”). The second layer may comprise nodes corresponding to different ranks or positions of the available offers (e.g., “p”). Additionally, the edges (arcs) of the directed graph may have different capacities. For example, while the capacity from the source node (e.g., input node) to each node in the first layer may be equal to 1, the capacity from nodes in the first layer to the second layer and beyond (e.g., including to the sink (e.g., output node)) may depend on a number of recommended offers that the system is permitted to generate and a number of total available offers.

[0123] At step 1006, process 1000 (e.g., using one or more components described above) generates a bipartite graph using the layer configuration. For example, the system may generate the bipartite graph comprising a minimum cost maximum flow function using the layer configuration. For example, as shown in FIGS. 5-8 a source may be a set of available offers (e.g., Oi, Or . . OM). A sink may be a combination of the recommended offers (e.g., pi, pj. . . pk, and a dummy node pk+i), wherein the dummy node represents all non-recommended offers. Each offer may have a capacity of 1, each recommended offer may also have a capacity of 1, and the dummy node may have a capacity of M-K (e.g., the number of available offers minus the number of recommended offers).

[0124] Each edge between the sinks and sources may have a cost function associated with it. For example, the cost function may be Ci,j = -Sij; that is, the cost is based on a score of the offer (e.g., Oi at a given position in the recommended set). For example, the cost of Oi at p2 is the score of Oi at position 2). If the agents are unable to select offers from outside the recommendation list, the cost of any edge connected to the dummy node will be 0. Different offers will have different scores at different positions; for example, the scores may be determined by an outcome table which tracks conversion rates for offers at different positions. The system may then use a minimum cost maximum flow function to solve for the scores of respective offers in respective positions.

[0125] For example, the system may model the relationships between two distinct sets: the available content and the highest scored content. In this scenario, the bipartite graph has two layers — one representing the set of content (e.g., scripts, resources, or responses) and the other representing the scored content. Each edge in the graph represents the suitability or relevance of a particular piece of content for a specific contact-agent pairing. By doing so, the system uses this structure to evaluate the connections between the two sets. For example, an agent may be connected to specific content that they are qualified or prepared to use based on their expertise, prior interactions, or the current context of the contact. The bipartite graph allows the system to process the dataset by finding the most appropriate matches — content that has a strong association with a given contact-agent pairing.

[0126] In some embodiments, the system may determine a second set of content, from the plurality of available content, to provide during the first communication, wherein the second set of content is not selected using the minimum cost maximum flow function. The system may then provide the second set of content during the first communication. For example, the system may generate another set of offers, which may be displayed simultaneously with a first set ofoffers. This additional set of offers may be additional, lower-ranked offers after the first set of content, which may comprise higher-ranked offers.

[0127] In such cases, the system may determine a third set of content from the plurality of available content that has a high likelihood of use during the first communication and determine a fourth set of content from the plurality of available content that has a low likelihood of use during the first communication, determine to use the minimum cost maximum flow function to select the first set of content from the third set of content, and determine to use a different function to select the second set of content from the fourth set of content. For example, the system may provide a “quick estimation” function that may determine some offers based on the minimum cost maximum flow function and sort the remaining others.

[0128] At step 1008, process 1000 (e.g., using one or more components described above) determines available content using the bipartite graph. For example, the system may process the first dataset using the bipartite graph to determine the first set of content. Once the graph is constructed, the system may use algorithms such as matching algorithms or optimization techniques to analyze the connections and select the most relevant content to present during the contact-agent pairing. The system considers factors such as the agent’s experience, the contact’s context, and the relevance of the content to ensure the best possible interaction. By leveraging the bipartite structure, the system ensures that the content chosen for presentation is not only appropriate but also tailored to the strengths and needs of both the agent, client, and / or the contact, optimizing the pairing for effective communication.

[0129] In some embodiments, the system may process the first dataset using the minimum cost maximum flow function with the first processing parameter to select the first set of content from the plurality of available content. To do so, the system may determine a cost for each content of the plurality of available content. The system may select the first set of content based on the determined costs for each content of the plurality of available content.. For example, the system may determine a “cost” (e.g., a score for each offer) according to the minimum cost maximum flow function for each offer.

[0130] In some embodiments, the system may determine the first set of content to provide during the first communication using a second processing parameter. For example, the system may determine a second processing parameter, wherein the second processing parameter requires the first set of content to have a content characteristic. The system may determine a second parameter for the minimum cost maximum flow function based on the second processing parameter. The system may then process the first dataset using the minimum costmaximum flow function with the second parameter to select the first set of content from the plurality of available content. For example, the system may allow the selection of content based on a “content characteristic”. In such cases, a parameter may be switched (e.g., toggling a “choose any” or “rank matters” option). The system may then select the offer from a subset and / or any other criteria (e.g., criteria indicating that the content should be specific to a time, place, etc.).

[0131] The above-described embodiments of the present disclosure are presented for purposes of illustration and not of limitation, and the present disclosure is limited only by the claims which follow. Furthermore, it should be noted that the features and limitations described in any one embodiment may be applied to any embodiment herein, and flowcharts or examples relating to one embodiment may be combined with any other embodiment in a suitable manner, done in different orders, or done in parallel. In addition, the systems and methods described herein may be performed in real time. It should also be noted that the systems and / or methods described above may be applied to, or used in accordance with, other systems and / or methods.

[0132] The present techniques will be better understood with reference to the following enumerated embodiments:1. A method for minimizing computing resources required for decisioning models providing real-time pairing by dynamically configuring architecture layers based on processing parameters.2. The method of the preceding embodiment, further comprising: receiving a request for a first set of content to provide during a first communication; retrieving a first dataset, wherein the first dataset comprises a plurality of available content; determining a first processing parameter; determining based on the first processing parameter a layer configuration for a second layer of a bipartite graph; generating the bipartite graph comprising a minimum cost maximum flow function using the layer configuration; and processing the first dataset using the bipartite graph to determine the first set of content.3. The method of any one of the preceding embodiments, further comprising: determining a second set of content, from the plurality of available content, to provide during the first communication, wherein the second set of content is not selected using the minimum cost maximum flow function; and providing the second set of content during the first communication.4. The method of any one of the preceding embodiments, further comprising: determining a third set of content from the plurality of available content that has a high likelihood of useduring the first communication and determining a fourth set of content from the plurality of available content that has a low likelihood of use during the first communication; determining to use the minimum cost maximum flow function to select the first set of content from the third set of content; and determining to use a different function to select the second set of content from the fourth set of content.5. The method of any one of the preceding embodiments, wherein determining the first processing parameter comprises: receiving a user input via a user interface; and determining the first processing parameter based on the user input.6. The method of any one of the preceding embodiments, wherein the first processing parameter corresponds to a requirement to rank the plurality of available content, and wherein processing the first dataset using the bipartite graph to determine the first set of content further comprises: using the minimum cost maximum flow function to rank content in the plurality of available content; and determining a first rank corresponding to an item in the first set of content.7. The method of any one of the preceding embodiments, wherein the first processing parameter corresponds to a requirement for a subset of the plurality of available content, wherein processing the first dataset using the bipartite graph to determine the first set of content further comprises using the minimum cost maximum flow function to filter the plurality of available content to the subset, and wherein processing the first dataset using the minimum cost maximum flow function with the first processing parameter to select the first set of content further comprises selecting the first set of content based on the subset.8. The method of any one of the preceding embodiments, wherein processing the first dataset using the minimum cost maximum flow function with the first processing parameter to select the first set of content from the plurality of available content further comprises: determining a cost for each content of the plurality of available content; and selecting the first set of content based on the determined costs for each content of the plurality of available content.9. The method of any one of the preceding embodiments, determining based on the first processing parameter the layer configuration for the second layer of the bipartite graph further comprises: generating a directed graph, wherein the directed graph comprises a first node layer and a second node layer and a plurality of edges between the first node layer and the second node layer; and selecting a number of nodes in the second node layer based on the first processing parameter.10. The method of any one of the preceding embodiments, determining based on the first processing parameter the layer configuration for the second layer of the bipartite graph further comprises: generating a directed graph, wherein the directed graph comprises a first node layer and a second node layer and a plurality of edges between the first node layer and the second node layer; and selecting a number of nodes in the second node layer based on an amount of content in the plurality of available content.11. The method of any one of the preceding embodiments, determining based on the first processing parameter the layer configuration for the second layer of the bipartite graph further comprises: generating a directed graph, wherein the directed graph comprises a first node layer and a second node layer and a plurality of edges between the first node layer and the second node layer; determining a respective cost for each of the plurality of edges; and selecting a number of nodes in the second node layer based on the first processing parameter.12. The method of any one of the preceding embodiments, determining based on the first processing parameter the layer configuration for the second layer of the bipartite graph further comprises: generating a directed graph, wherein the directed graph comprises a first node layer and a second node layer and a plurality of edges between the first node layer and the second node layer; and determining a cost for each of the plurality of edges based on one or more respective content characteristics for the plurality of available content.13. The method of any one of the preceding embodiments, wherein the first processing parameter corresponds to a requirement for a subset of the plurality of available content, and wherein determining the cost for each of the plurality of edges based on the first processing parameter further comprises setting the cost of a subset of the plurality of edges to zero.14. The method of any one of the preceding embodiments, wherein determining the first set of content to provide during the first communication further comprises: determining a second processing parameter, wherein the second processing parameter requires the first set of content to have a content characteristic; determining a second parameter for the minimum cost maximum flow function based on the second processing parameter; and processing the first dataset using the minimum cost maximum flow function with the second parameter to select the first set of content from the plurality of available content.15. The method of any one of the preceding embodiments, wherein determining the layer configuration for the second layer of the bipartite graph further comprises: determining a first capacity for an edge to first node in the second layer, wherein the first capacity indicates a maximum amount of flow for the edge; and determining a first cost for the edge.16. The method of any one of the preceding embodiments, wherein determining the layer configuration for the second layer of the bipartite graph comprises: determining a path in the bipartite graph where an edge between a first node and a second node has remaining capacity; and determining a flow corresponding to the remaining capacity.17. The method of any one of the preceding embodiments, determining the layer configuration for the second layer of the bipartite graph further comprises: determining an amount of content to provide during the first communication; and determining a first capacity for an edge to first node in the second layer based on the amount of content.18. A non-transitory, computer-readable medium storing instructions that, when executed by a data processing apparatus, cause the data processing apparatus to perform operations comprising those of any of embodiments 1-17.19. A system comprising one or more processors; and memory storing instructions that, when executed by the processors, cause the processors to effectuate operations comprising those of any of embodiments 1-17.20. A system comprising means for performing any of embodiments 1-17.

Claims

WHAT IS CLAIMED IS:

1. A system for minimizing computing resources required for decisioning models providing real-time pairing in contact centers by dynamically configuring architecture layers based on processing parameters, the system comprising: one or more processors; and one or more non-transitory, computer-readable mediums comprising instructions recorded thereon that when executed by the one or more processors cause operations comprising: receiving a first communication request to initiate a first communication at a contact center, wherein the first communication comprises a contact-agent pairing; in response to receiving the first communication request, determining a first set of content to provide during the first communication by: retrieving a first dataset, wherein the first dataset comprises a plurality of available content; determining a first processing parameter; determining based on the first processing parameter a layer configuration for a second layer of a bipartite graph; generating the bipartite graph comprising a minimum cost maximum flow function using the layer configuration; and processing the first dataset using the bipartite graph to determine the first set of content; and providing the first set of content during the first communication.

2. A method for minimizing computing resources required for decisioning models providing real-time pairing by dynamically configuring architecture layers based on processing parameters, the method comprising: receiving a request for a first set of content to provide during a first communication; retrieving a first dataset, wherein the first dataset comprises a plurality of available content; determining a first processing parameter; determining based on the first processing parameter a layer configuration for a second layer of a bipartite graph;generating the bipartite graph comprising a minimum cost maximum flow function using the layer configuration; and processing the first dataset using the bipartite graph to determine the first set of content.

3. The method of claim 2, further comprising: determining a second set of content, from the plurality of available content, to provide during the first communication, wherein the second set of content is not selected using the minimum cost maximum flow function; and providing the second set of content during the first communication.

4. The method of claim 3, further comprising: determining a third set of content from the plurality of available content that has a high likelihood of use during the first communication and determining a fourth set of content from the plurality of available content that has a low likelihood of use during the first communication; determining to use the minimum cost maximum flow function to select the first set of content from the third set of content; and determining to use a different function to select the second set of content from the fourth set of content.

5. The method of claim 2, wherein determining the first processing parameter comprises: receiving a user input via a user interface; and determining the first processing parameter based on the user input.

6. The method of claim 2, wherein the first processing parameter corresponds to a requirement to rank the plurality of available content, and wherein processing the first dataset using the bipartite graph to determine the first set of content further comprises: using the minimum cost maximum flow function to rank content in the plurality of available content; and determining a first rank corresponding to an item in the first set of content.

7. The method of claim 2, wherein the first processing parameter corresponds to a requirement for a subset of the plurality of available content, wherein processing the first dataset using the bipartite graph to determine the first set of content further comprises using the minimum cost maximum flow function to filter the plurality of available content to the subset, and wherein processing the first dataset using the minimum cost maximum flow function with the first processing parameter to select the first set of content further comprises selecting the first set of content based on the subset.

8. The method of claim 2, wherein processing the first dataset using the minimum cost maximum flow function with the first processing parameter to select the first set of content from the plurality of available content further comprises: determining a cost for each content of the plurality of available content; and selecting the first set of content based on the determined costs for each content of the plurality of available content.

9. The method of claim 2, determining based on the first processing parameter the layer configuration for the second layer of the bipartite graph further comprises: generating a directed graph, wherein the directed graph comprises a first node layer and a second node layer and a plurality of edges between the first node layer and the second node layer; and selecting a number of nodes in the second node layer based on the first processing parameter.

10. The method of claim 2, determining based on the first processing parameter the layer configuration for the second layer of the bipartite graph further comprises: generating a directed graph, wherein the directed graph comprises a first node layer and a second node layer and a plurality of edges between the first node layer and the second node layer; and selecting a number of nodes in the second node layer based on an amount of content in the plurality of available content.

11. The method of claim 2, determining based on the first processing parameter the layer configuration for the second layer of the bipartite graph further comprises:generating a directed graph, wherein the directed graph comprises a first node layer and a second node layer and a plurality of edges between the first node layer and the second node layer; determining a respective cost for each of the plurality of edges; and selecting a number of nodes in the second node layer based on the first processing parameter.

12. The method of claim 2, determining based on the first processing parameter the layer configuration for the second layer of the bipartite graph further comprises: generating a directed graph, wherein the directed graph comprises a first node layer and a second node layer and a plurality of edges between the first node layer and the second node layer; and determining a cost for each of the plurality of edges based on one or more respective content characteristics for the plurality of available content.

13. The method of claim 12, wherein the first processing parameter corresponds to a requirement for a subset of the plurality of available content, and wherein determining the cost for each of the plurality of edges based on the first processing parameter further comprises setting the cost of a subset of the plurality of edges to zero.

14. The method of claim 2, wherein determining the first set of content to provide during the first communication further comprises: determining a second processing parameter, wherein the second processing parameter requires the first set of content to have a content characteristic; determining a second parameter for the minimum cost maximum flow function based on the second processing parameter; and processing the first dataset using the minimum cost maximum flow function with the second parameter to select the first set of content from the plurality of available content.

15. The method of claim 2, wherein determining the layer configuration for the second layer of the bipartite graph further comprises: determining a first capacity for an edge to first node in the second layer, wherein the first capacity indicates a maximum amount of flow for the edge; and determining a first cost for the edge.

16. The method of claim 2, wherein determining the layer configuration for the second layer of the bipartite graph comprises: determining a path in the bipartite graph where an edge between a first node and a second node has remaining capacity; and determining a flow corresponding to the remaining capacity.

17. The method of claim 2, determining the layer configuration for the second layer of the bipartite graph further comprises: determining an amount of content to provide during the first communication; and determining a first capacity for an edge to first node in the second layer based on the amount of content.

18. One or more non-transitory, computer-readable media comprising instructions recorded thereon that when executed by one or more processors cause operations comprising: receiving a first communication request to initiate a first communication; receiving a request for a first set of content to provide during the first communication; retrieving available content; determining a first processing parameter; determining based on the first processing parameter a layer configuration for a second layer of a bipartite graph; generating the bipartite graph comprising a minimum cost maximum flow function using the layer configuration; and processing the available content using the bipartite graph to determine the first set of content.

19. The one or more non-transitory, computer-readable media of claim 18, further comprising:in response to receiving the first communication request, determining a second set of content, from the available content, to provide during the first communication, wherein the second set of content is not selected using the minimum cost maximum flow function; and providing the second set of content during the first communication.

20. The one or more non-transitory, computer-readable media of claim 19, further comprising: in response to receiving the first communication request, determining a third set of content from the available content that has a high likelihood of use during the first communication and determining a fourth set of content from the available content that has a low likelihood of use during the first communication; determining to use the minimum cost maximum flow function to select the first set of content from the third set of content; and determining to use a different function to select the second set of content from the fourth set of content.

Citation Information

Patent Citations

  • Communication routing between agents and contacts

    US11636360B1