Recommendation system with performance management

A method, a device, and a non-transitory storage medium are described, which provide a recommendation system with performance management service. The service may include selecting and ranking content that relate to a user query and a problem associated with an application and/or a device. The service may include invoking a remedial procedure based on user feedback data. The service may include similarity and classification models based on successful recommendation records.

BACKGROUND

A service, responsive to a query received from a user, may use search, selection, and recommendation systems that filter, identify, and present content that are potentially relevant to the query.

DETAILED DESCRIPTION

Service providers, organizations, or other types of entities or businesses may provide customer service centers, call centers, help desks, tools, and/or other kinds of platforms, for example, to enable a user to resolve an issue or problem. A significant volume of contact or use of these resources may relate to known and repetitive issues. As such, these resources may not be optimally utilized. For example, the user may be able to solve a given problem by a knowledge article or through a guided self-help measure.

Data is, however, everchanging. As such, data drift may impact the relevance of data and/or a solution to a given problem over time. This presents a technical challenge to identify the correct data by an agent, the user, a system, or a device, for example. A current recommendation system for a service desk, for example, may be implemented within a platform that restricts interface with the diverse array of applications and bots used for the presentment of queries by users.

Also, current recommendation systems may not include self-measuring and performance monitoring. This can be a technical challenge and is lacking in current ticketing tools and systems. Consequently, the recommendation system may not include logic that alerts an administrator when the performance is below a threshold value or exhibits a declining performance behavior.

According to exemplary embodiments, a recommendation system with performance management service is described. According to an exemplary embodiment, the recommendation system with performance management service may be implemented in a service desk or product support environment and/or context. According to other exemplary embodiments, the recommendation system with performance management service may be implemented in other types of environments and/or contexts in which content recommendation may be suited.

According to an exemplary embodiment, the recommendation system with performance management service may include an application programming interface (API) logic that provides an API service which is compatible with a multitude of applications, bots, and/or other types of user interfaces, for example, and provides a portability or flexibility not available in current platforms. According to an exemplary embodiment, the recommendation system with performance management service may include artificial intelligence and/or machine learning (AI/ML) logic that may predict a user intent and/or an application or a device to which an issue and user query relate based on the user query.

According to an exemplary embodiment, the recommendation system with performance management service may include AI/ML logic that provides a recommendation service based on the user query and predicted user intent, application, or device. According to an exemplary embodiment, the recommendation service may select recommendation content based on similarity, weighting, ranking, and anomaly criteria, as described herein.

According to an exemplary embodiment, the recommendation system with performance management service may include an updating service for content that reduces the effect of data draft, as described herein. According to an exemplary embodiment, the recommendation system with performance management service may include a performance management service that may include monitoring and measuring performance and providing feedback operations. The feedback operations may include providing alerts and/or other types of remedial measures, as described herein.

In view of the foregoing, the recommendation system with performance management service may reduce overall content search time, reduce utilization of processing resources (e.g., processor, memory, etc.), reduce user effort and time involvement required to reach the intended content, and present content to a user for consideration and selection more efficiently and/or accurately. As a consequence, the recommendation system with performance management service may minimize the volume of service desk contact while also assisting the user in resolving an issue or problem, for example.

The recommendation system with performance management service may achieve improved performance and accuracy based on the multi-criteria content recommendation service from contents subject to the updating service, as described herein. The recommendation system with performance management service may improve portability and accessibility via the API service, as described herein. The recommendation system with performance management service may also improve in its performance based on the performance management service, as described herein.

FIG.1is a diagram illustrating an exemplary environment100in which an exemplary embodiment of the recommendation system with performance management service may be implemented. As illustrated, environment100may include a network105. Network105may include a network device107. Environment100may include an end device110.

Environment100may include a communication link115between network105and network device107and/or between end device110and network105and/or network device107. A communicative connection via communication link115may be direct or indirect. For example, an indirect communicative connection may involve an intermediary device and/or an intermediary network not illustrated inFIG.1. A direct communicative connection may not involve an intermediary device and/or an intermediary network. The number and arrangement of communication link115illustrated in environment100are exemplary. Communication link115may be wired, wireless, and/or optical.

Network105may include one or multiple networks of one or multiple types and/or technologies. For example, network105may include a wireless network, a wired network, and/or an optical network. Network105may be implemented to include a local area network (LAN), a radio access network (RAN), a core network, a service provider network, a customer service network, an enterprise network, the Internet, a private network, a network operations center network, and/or another type of network that may support access to and/or use of the recommendation system with performance management service.

Network device107may include a network device that provides the recommendation system with performance management service, as described herein. For example, network device107may include a component that provides a function, a step, a process, and/or a service of the recommendation system with performance management service, as described herein. Network device107may include API logic, NLP logic, AI/ML logic directed to user intent/application prediction, AI/ML logic directed to content similarity and recommendation, and performance analytics, as described herein. Network device107may include other logic that provides a function, a step, a process, and/or a service of the recommendation system with performance management service, as described herein. Network device107is described further below.

End device110may include a device that enables a user to communicate and use the recommendation system with performance management service. For example, end device110may enable a user to generate a user query and communicate the user query to network device107. According to various exemplary embodiments, end device110may be implemented as a mobile device, a portable device, a stationary device (e.g., a non-mobile device and/or a non-portable device), or another type of device operable by a user (e.g., a set top box, a gaming system, a digital video recorder (DVR), etc.). End device110may include various types of software (e.g., browsers, clients, chat bots, messaging applications, web applications or communicators, APIs, or the like) and/or other types of user interfaces (e.g., a microphone, voice to text, speech to text, graphical user interfaces (GUIs), or the like) that may receive the user query from the user. End device110is described further below. For purposes of description, end device110is not considered a network device. Additionally, in the context of a service desk or a product support system, end device110may or may not be the device to which the issue or query is directed. For example, according to an exemplary scenario, a printer may be the device that has a problem, but a user may access and use the recommendation system with performance management service via a computer. Alternatively, according to other exemplary scenarios, end device110may be the device to which the issue or the query is directed and the device that a user may access and use the recommendation system with performance management service.

Communication link115may include a wireless, a wired, and/or an optical link. Communication link115may support a communicative connection, a communication session, exchange of data, and the like.

According to other embodiments, environment100may include additional networks and/or different types of networks than those illustrated and described herein. The number and arrangement of network device107in network105, and the number of end device110are exemplary. A network device, such as network device107may be implemented according to a centralized computing architecture, a distributed computing architecture, or a cloud computing architecture (e.g., an elastic cloud, a private cloud, a public cloud, etc.). Additionally, a network device may be implemented according to one or multiple network architectures (e.g., a client device, a server device, a peer device, a proxy device, a cloud device, a virtualized function, etc.).

FIG.2is a diagram illustrating exemplary components200that may provide an exemplary embodiment of the recommendation system and performance management service. For example, components200may include an API logic205, an AI/ML intent/application prediction logic210, a repository215, an AI/ML recommendation logic220, a performance service logic225, a data manager230, and a communication link235. According to various exemplary embodiments, one or multiple components (including all components) may be implemented on one or multiple network devices107.

API logic205may include APIs (e.g., API proxy, API gateway, RESTful API, and/or other types of APIs) that may receive user queries from users and/or end devices110. API logic205may enable access to and use of the various other services of the recommendation system and performance management service, as described herein, such as the user intent/application service, the recommendation service, and the performance management service, for example. API logic205may include configurable rules and file parameters that manage the execution of processes that may run in response to requests. API logic205may include security, rate limitation, quotas, and/or analytic features. API logic205may be configured to enable an expansive array of applications, chat bots, voice, and/or other user interfaces/input associated with a user/end device110and a user query to interface with the various other services of the recommendation system and performance management service. API logic205may output the user queries to AI/ML intent/app prediction logic210. According to some exemplary embodiments, the user queries may be in textual form, which may include a conversion of the original form of the user queries by API logic205.

AI/ML intent/app prediction logic210may include a classification model that may recognize and/or predict user intent, an application, or another component of a device with which the user has an issue, a problem, or interest. AI/ML intent/app prediction logic210may include NLP logic. According to various exemplary embodiments, AI/ML intent/app prediction logic210may be implemented to include a multi-class classification model, a multi-label classification model, and/or an imbalanced classification model, for example. The classification predictive model may include a tree-based model, a transformer model, a vector-based model, and/or another type of AI/ML algorithm. For example, the AI/ML algorithm may include logistic regression, Naïve Bayes, K-Nearest Neighbors, decision tree, Random Forest, extreme gradient boosting, support vector machine, clustering via embedding, dense neural networks, convolutional neural network, long-short-timer memory network, recurrent neural network, and/or Bidirectional Encoder Representations from Transformers (BERT). According to an exemplary embodiment, AI/ML intent/app prediction logic210may output the user queries and the predicted intent or identification of the application, component of a device, and/or the device to AI/ML recommendation logic220. The predicted application, device, or component may further include data indicating an issue, a problem, or a topic associated with the application, the device, or the component.

Repository215may store information relating to the recommendation system and performance management service. For example, repository215may store knowledge articles, metadata (e.g., titles, summary data, etc.) associated with multimedia (audio and/or videos, pictures, web pages, or the like), and/or other types of content that may be subject to a recommendation in view of a user query. Repository215may also store historical recommendation records relating to previous usage by users and user feedback data, as described herein. The recommendation records may include correlated data including user queries, user intent/application data (e.g., classifications, topics, applications, and the like), recommended contents, incident descriptions (e.g., description of issue/problem; text entered by a user via chat bot or another user interface/application, or the like). Repository215may interface with other components of components200, such as API logic205, AI/ML recommendation logic220, performance service logic225, and data manager230, for example.

AI/ML recommendation logic220may include logic that identifies the most relevant recommendation content based on the user query and the predicted user intent/application data. According to an exemplary embodiment, AI/ML recommendation logic220may include one or multiple types of models, as described herein, that may determine similarity between the user query and predicted user intent/application data relative to the content stored in repository215and the AI/ML logic.

According to an exemplary embodiment, AI/ML recommendation logic220may search, discover, and select the most successful recommendation data within a configured time period (e.g., over the past 6 months or another time frame), and perform text similarity to fetch the most relevant recommendation records related to the predicted user intent, application, or other component of a device, for example. As described, data manager230may enable training of the AI/ML recommendation logic220based on the recommendation records belonging to the configured time period. Based on this procedure, AI/ML recommendation logic220may update vectors, trees, matrix files, and/or other structures used by AI/ML logic to identify similarity.

According to an exemplary embodiment, AI/ML recommendation logic220may filter a preconfigured number of recommendation records based on their respective similarity values. For example, AI/ML recommendation logic220may compare the similarity values associated with the filtered number recommendation records to one or multiple similarity threshold values.

According to an exemplary embodiment, AI/ML recommendation logic220may include weighted ranking logic that may rank contents identified as similar and included in the preconfigured number of recommendation records. As such, a weighted ranking of contents with respect to recommendation record similarities may be calculated. According to an exemplary embodiment, the weighted ranking logic may weight content according to this exemplary expression (1):

According to an exemplary embodiment, AI/ML recommendation logic220may include executing a similarity algorithm between the user text query and the weighted ranked contents to obtain a similarity score for each contents. AI/ML recommendation logic220may filter and select a subset of the weighted ranked contents based on the contents that have a maximum similarity score. For example, AI/ML recommendation logic220may compare the similarity scores to a ranked minimum threshold similarity score to identify the subset of contents.

According to an exemplary embodiment, AI/ML recommendation logic220may include computing a weighted similarity score for the subset of top contents to filter to a smaller subset of most relevant content with the highest weighted content score based on the following exemplary expression (2):

According to an exemplary embodiment, AI/ML recommendation logic220may include an anomaly procedure that may assist in identifying the most similar content despite perhaps not satisfying multiple criteria, such as frequency of use and similarity of content but may have an extreme or top score for one of the criterion. For example, when a new content is onboarded into repository215, the content may have good content similarity compared to other articles but may yield a low frequency score because it is new content. According to an exemplary implementation, AI/ML recommendation logic220may identify a content associated with the ranking according to exemplary expression (2) and may re-rank those contents when any of the below exemplary conditions may be satisfied:

Δ Frequency (frequency of 1stcontent—any of remaining content)>X % of usage frequency of all contents; (3) or

Δ Similarity (similarity of 1stcontent—any of remaining content)>Y % of similarity of all contents, (4) in which X and Y may be a configurable percentile value, which may be the same or different values. According to some exemplary embodiments, expression (3) or expression (4) may be a binary choice. As an example, according to an exemplary scenario assume that the output of expression (2) may yield 5 contents, expressions (3) and (4) may be implemented as:

Δ Frequency (frequency of 1stcontent—any of the other 4 contents)>90% of usage frequency of the 5 contents; (3) or

Δ Similarity (similarity of 1stcontent—any of the other 4 contents)>92% of similarity of the 5 contents, (4)

According to an exemplary embodiment, AI/ML recommendation logic220may reorder or re-rank the contents when the exemplary condition of expression (3) or expression (4) is satisfied.

According to an exemplary embodiment, AI/ML recommendation logic220may output a ranked list of contents for selection to the user responsive to the user query. For example, AI/ML recommendation logic220may provide a GUI that includes the contents identified. According to an exemplary embodiment, AI/ML recommendation logic220may fine tune the logic to minimize false positives. For example, AI/ML recommendation logic220may be configured with a threshold value on the weighted ranks for every applicable step or process, as described herein, using one or multiple types of statistical methods, such as Z-score, interquartile range, and/or the like.

Performance service logic225may include logic that provides monitoring, measuring, and feedback operations. For example, performance service logic225may obtain user feedback data from users of the recommendation system with performance management service. The user feedback data may be obtained via an application or a chat bot that allows a user to rate his/her experience in terms of quality of recommended content, such as positive/negative, numerical, thumbs up/thumbs down, or the like, or description. Additionally, or alternatively, the user feedback data may be indirectly obtained from logs of usage associated with one or more of the services. For example, the service information may include the user's search query, a predicted user intent or application, and the recommended results generated. The service information may also include data indicating the user's interaction with the recommendation result. For example, the interaction data may indicate a content selected from the recommendation result by the user, a ranking of the content selected (e.g., the first content presented/ranked, the second content presented/ranked, etc.), that no content was selected, that the user query was modified, how the user query was modified (e.g., refinement of the user query, generalization of the user query, adds or removes modifiers, words, phrases, etc., to/from the user query, repositioning of words, phrases, etc.), whether the user consumed a selected content, and/or other types of user interaction data (e.g., navigation of the user (e.g., via a graphical user interface), time period viewing the recommendation result, etc.).

Performance service logic225may evaluate or measure the user feedback data and quantify the user feedback data. According to an exemplary embodiment, performance service logic225may compare the quantification (e.g., a numerical value) to a threshold performance value. Based on the comparison, performance service logic225may determine whether the threshold performance value is satisfied. The performance metric may be used to measure the performance of the system as well as to create objective functions that may be used to train AI/ML logic of the recommendation system with performance management service. For example, performance service logic225may calculate an average number of distinct user query (ADUQ) value among users. An ADUQ value may be calculated as the total number of distinct queries/total number of sessions. In this regard, the higher the ADUQ value the higher degree of user dissatisfaction or difficulty in reaching the desired or suitable content. According to another example, performance service logic225may calculate a successful recommendation ratio (SRR) value among users. For example, the SRR value may be calculated as the number of sessions where the user selected results/total number of search sessions. In this regard, the higher the value of the SRR value, the greater user satisfaction and relevance of the content included in the recommendation result. According to yet another example, performance service logic225may calculate a refined user query ratio (RUQR) value. For example, the RUQR may be calculated as the number of modified user queries (e.g., adding a modifier to an otherwise similar and previous user query during the same session)/total number of recommendation sessions. In this regard, the higher the value of the RUQR, the greater degree of training may be needed for the user intent prediction and/or recommendation AI/ML logic.

When the threshold performance value is satisfied, performance service logic225may continue with the monitoring and measuring services. However, when the threshold performance value is not satisfied, performance service logic225may provide a feedback service. For example, performance service logic225may generate and transmit an alert to an administrator of the recommendation system with performance management service. According to some exemplary embodiments, performance service logic225may invoke a remedial operation (e.g., retraining of a model or AI/ML logic). Performance service logic225may include root cause and/or diagnostic analytics that may generate information relating to the lack of expected performance.

Data manager230may include logic that manages retraining of AI/ML recommendation logic220. For example, data manager230may monitor and evaluate recommendation records stored in repository215. Based on the evaluation, data manager230may generate training data and provide the training data to AI/ML recommendation logic220. The training data may be based on recommendation records and associated recommended content that was successful and/or not successful in resolving an issue or problem associated with an application/device indicated by a user. According to an exemplary embodiment, data manager230may periodically (e.g., according to a schedule) retrain AI/ML recommendation logic220to minimize data draft issues. AI/ML recommendation logic220may generate and/or update a similarity model (e.g., tree, vector space, etc.) based on the training data. Data manager230may also manage the retaining of AI/ML intent application prediction logic210in a similar manner.

Communication link235may include a hardware link (e.g., a bus, a shared memory space, etc.), a software link (e.g., inter-process communication (IPC) or the like), an application programming interface (API), or some other type of communicative link (e.g., communication link115). Communication link235may enable communication between one or multiple other components of components200. For example, API logic205may communicate with AI/ML intent/application prediction logic210via communication link235.

FIG.2illustrates exemplary components that may provide an exemplary embodiment of the recommendation system with performance management service, however according to other exemplary embodiments, additional, fewer, and/or different components may be implemented. For example, a single component may be implemented as multiple components and/or multiple components may be implemented as a single component. Additionally, or alternatively, the exemplary components may be implemented on a single device or multiple devices.

FIG.3is a diagram illustrating exemplary components of a device300that may be included in one or more of the devices described herein. For example, device300may correspond to a component or components of components200, network device107, and/or end device110. As illustrated inFIG.3, device300includes a bus305, a processor310, a memory/storage315that stores software320, a communication interface325, an input330, and an output335. According to other embodiments, device300may include fewer components, additional components, different components, and/or a different arrangement of components than those illustrated inFIG.3and described herein.

Bus305includes a path that permits communication among the components of device300. For example, bus305may include a system bus, an address bus, a data bus, and/or a control bus. Bus305may also include bus drivers, bus arbiters, bus interfaces, clocks, and so forth.

Processor310may control the overall operation or a portion of operation(s) performed by device300. Processor310may perform one or multiple operations based on an operating system and/or various applications or computer programs (e.g., software320). Processor310may access instructions from memory/storage315, from other components of device300, and/or from a source external to device300(e.g., a network, another device, etc.). Processor310may perform an operation and/or a process based on various techniques including, for example, multithreading, parallel processing, pipelining, interleaving, etc.

Memory/storage315includes one or multiple memories and/or one or multiple other types of storage mediums. For example, memory/storage315may include one or multiple types of memories, such as, random access memory (RAM), dynamic random access memory (DRAM), cache, read only memory (ROM), a programmable read only memory (PROM), a static random access memory (SRAM), a single in-line memory module (SIMM), a dual in-line memory module (DIMM), a flash memory, and/or some other type of memory. Memory/storage315may include a hard disk (e.g., a magnetic disk, an optical disk, a magneto-optic disk, a solid state disk, etc.), a Micro-Electromechanical System (MEMS)-based storage medium, and/or a nanotechnology-based storage medium. Memory/storage315may include drives for reading from and writing to the storage medium.

Memory/storage315may be external to and/or removable from device300, such as, for example, a Universal Serial Bus (USB) memory stick, a dongle, a hard disk, mass storage, off-line storage, or some other type of storing medium. Memory/storage315may store data, software, and/or instructions related to the operation of device300.

Software320includes an application or a program that provides a function and/or a process. As an example, with reference to network107, software320may include an application that, when executed by processor310, provides a function or a process of the recommendation system with performance management service, as described herein. Software320may also include firmware, middleware, microcode, hardware description language (HDL), and/or other form of instruction. Software320may be virtualized. Software320may further include an operating system (OS) (e.g., Windows, Linux, Android, proprietary, etc.).

Communication interface325permits device300to communicate with other devices, networks, systems, and/or the like. Communication interface325may includes one or multiple wireless, wired, and/or optical interfaces. For example, communication interface325may include one or multiple transmitters and receivers, or transceivers. Communication interface325may operate according to a protocol stack and a communication standard. Communication interface325may include an antenna. Communication interface325may include various processing logic or circuitry (e.g., multiplexing/de-multiplexing, filtering, amplifying, converting, error correction, etc.). Communication interface325may be implemented as a point-to-point interface, a service based interface, and/or another suitable interface.

Input330permits an input into device300. For example, input330may include a keyboard, a mouse, a display, a touchscreen, a touchless screen, a button, a switch, an input port, speech recognition logic, and/or some other type of visual, auditory, tactile, etc., input component. Output335permits an output from device300. For example, output335may include a speaker, a display, a touchscreen, a touchless screen, a light, an output port, and/or some other type of visual, auditory, tactile, etc., output component.

As previously described, a network device may be implemented according to various computing architectures (e.g., centralized, distributed, etc.) and according to various network architectures (e.g., a virtualized function, a server, a client, etc.). Device300may be implemented in the same manner. For example, as a virtualized function, device300may be instantiated, created, deleted, or have some other operational state during its life-cycle (e.g., refreshed, paused, suspended, rebooted, or another type of state or status), using well-known virtualization technologies (e.g., hypervisor, container engine, virtual container, virtual machine, etc.) in a public/private cloud or other type of network.

Device300may perform a process and/or a function, as described herein, in response to processor310executing software320stored by memory/storage315. By way of example, instructions may be read into memory/storage315from another memory/storage315(not shown) or read from another device (not shown) via communication interface325. The instructions stored by memory/storage315cause processor310to perform a process described herein. Alternatively, for example, according to other implementations, device300performs a process described herein based on the execution of hardware (processor310, etc.).

FIG.4is a flow diagram illustrating an exemplary process400of an exemplary embodiment of the recommendation system with performance management service. According to an exemplary embodiment, a network device107, which may include components200, may perform steps of process400. For example, processor310executes software320to perform the steps illustrated inFIG.4and described herein.

In block405, network device107may receive a user query. For example, API logic205may receive the user query, which may relate to an issue associated with an application or device, from a user via end device110.

In block410, network device107may predict a user intent. For example, AI/ML intent/app prediction logic210may predict the user intent based on the user query and a classification model, as described herein.

In block415, network device107may identify historical recommendation records. For example, AI/ML recommendation logic220may select the historical recommendation records associated with successful recommendations, which may include user query, user intent, incident description, and/or identifiers of recommended content, relating to a pre-configured time period.

In block420, network device107may select a first set of recommended contents. For example, AI/ML recommendation logic220may execute a model for text similarity across the recommended contents of the records based on the user query and predicted application. AI/ML recommendation logic220may select the first set of recommended contents based on a comparison between their similarity values and a threshold similarity value.

In block425, network device107may calculate a weighted ranking. For example, AI/ML recommendation logic220may calculate the weighted ranking associated with each content based on similarity and frequency of use criteria, such as according to exemplary expression (1), as described herein. Network device107may filter the number of contents based on a comparison between their weighted ranking value and a threshold weighted ranking value and may yield a first subset of the first set.

In block430, network device107may calculate a similarity value. For example, AI/ML recommendation logic220may calculate a similarity value between the entire text of each content and the user query. Network device107may filter the number of contents based on a comparison between their similarity values and a threshold similarity value, which may yield a second subset of the first subset.

In block435, network device107may calculate a weighted similarity value. For example, AI/ML recommendation logic220may calculate the weighted similarity value associated with each content based on similarity and frequency of use according to exemplary expression (2), as described herein. Network device107may filter the number of contents based on a comparison between their weighted similarity values and a threshold weighted similarity value, and may yield a third subset of the second subset.

In block440, network device107may perform anomaly ranking. For example, AI/ML recommendation logic220may determine whether to re-rank the contents of the third subset based on exemplary expressions (3) and/or (4), as described herein. For example, when a content is new, a frequency of use value may be low (e.g., lowest frequency of use value or at least lower than some) relative to other contents, including other content in the third subset, but the new content may have an extremely high similarity value. According to another example, a content may have an extremely high frequency of use value (e.g., highest frequency of use value or at least higher than some) relative to other contents, including other content in the third subset. By way of further example, agents or product support personnel may use frequency use the content to resolve incidents for the issue of relevance. However, the content may have a low similarity value. For example, the content may resolve a backend issue in the network that may not be directly linked to the application of relevance.

In block445, network device107may present the ranked content. For example, network device107may generate a user interface that includes links to the ranked content. The content may include an article and/or multimedia (e.g., pictures, audio/video, etc.) that includes a corrective measure that enables the user to resolve the issue, for example.

FIG.4illustrates an exemplary embodiment of a process of the recommendation system with performance management service, however according to other exemplary embodiments, the recommendation system with performance management service may perform additional operations, fewer operations, and/or different operations than those illustrated and described in relation toFIG.4. For example, one or more of blocks410through435may be omitted.

The embodiments described herein may be implemented in many different forms of software executed by hardware. For example, a process or a function may be implemented as “logic,” a “component,” or an “element.” The logic, the component, or the element, may include, for example, hardware (e.g., processor310, etc.), or a combination of hardware and software (e.g., software320). The exemplary embodiments have been described without reference to the specific software code since the software code can be designed to implement the embodiments based on the description herein and commercially available software design environments and/or languages. For example, diverse types of programming languages including, for example, a compiled language, an interpreted language, a declarative language, or a procedural language may be implemented.

Additionally, embodiments described herein may be implemented as a non-transitory computer-readable storage medium that stores data and/or information, such as instructions, program code, a data structure, a program module, an application, a script, or other known or conventional form suitable for use in a computing environment. The program code, instructions, application, etc., is readable and executable by a processor (e.g., processor310) of a device. A non-transitory storage medium includes one or more of the storage mediums described in relation to memory/storage315. The non-transitory computer-readable storage medium may be implemented in a centralized, distributed, or logical division that may include a single physical memory device or multiple physical memory devices spread across one or multiple network devices.

No element, act, or instruction described in the present application should be construed as critical or essential to the embodiments described herein unless explicitly described as such.

All structural and functional equivalents to the elements of the various aspects set forth in this description that are known in the art or later come to be known in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims.