SYSTEMS AND METHODS FOR IMPLEMENTING REINFORCEMENT LEARNING IN TASK-FACILITATION SERVICES

Information

  • Patent Application
  • 20230070950
  • Publication Number
    20230070950
  • Date Filed
    September 02, 2022
    2 years ago
  • Date Published
    March 09, 2023
    a year ago
Abstract
Systems and methods are presented herein for implementing reinforcement learning in a task-facilitation service. The task-facilitation service may receive a request to delegate an execution of a task. The request can may include a user identifier that corresponds to the task. The task-facilitation service may generate a proposal using a machine-learning process. The proposal may include an implementation of the task and facilitate execution of the task by one or more third-party service providers. The task-facilitation service may facilitate the execution of the task by the one or more third-party service providers according to the proposal. In response to receiving an execution status of the task, the task-facilitation service may train the machine-learning process using the proposal and the execution status to improve subsequent proposals generated by the machine-learning process.
Description
TECHNICAL FIELD

This disclosure relates generally to reinforcement learning within a task-facilitation service and more particularly to implementing reinforcement learning within a task-facilitation service to improve the generation of task recommendations and proposals on behalf of members of the task-facilitation service.


SUMMARY

Methods and systems are described herein for generating representative models within a task-facilitation service. The method comprises receiving a request to delegate an execution of a task, the request including a user identifier corresponding to the task; generating, in response to receiving the request to delegate the execution of the task, a proposal using a machine-learning process, the proposal including an implementation of the task, wherein the proposal facilitates execution of the task by one or more third-party service providers; facilitating the execution of the task by the one or more third-party service providers according to the proposal; receiving an execution status of the task; and training the machine-learning process using the proposal and the execution status, wherein training the machine-learning process improves subsequent proposals generated by the machine-learning process


The systems described herein may be configured to generate representative models. The systems include one or more processors and a non-transitory computer-readable medium storing instructions that, when executed by the one or more processors, cause the one or more processors to perform any of the methods as previously described.


The non-transitory computer-readable media described herein may store instructions which, when executed by one or more processors, cause the one or more processors to perform any of the methods as previously described.


These illustrative examples are mentioned not to limit or define the disclosure, but to aid understanding thereof. Additional embodiments are discussed in the Detailed Description, and further description is provided there.





BRIEF DESCRIPTION OF THE DRAWINGS

Features, embodiments, and advantages of the present disclosure are better understood when the following Detailed Description is read with reference to the accompanying drawings.



FIG. 1 an illustrative example of an environment in which a task-facilitation service assigns a representative to a member through which various tasks performable for the benefit of the member can be recommended for performance by the representative and/or one or more third-party services in accordance with aspects of the present disclosure.



FIG. 2 shows an illustrative example of an environment in which task-related data is collected and aggregated from a member area to identify one or more tasks that can be recommended to the member for performance by a representative and/or third-party services in accordance with aspects of the present disclosure.



FIG. 3 shows an illustrative example of an environment in which a task recommendation system generates and ranks recommendations for tasks to be performed for the benefit of a member in accordance with aspects of the present disclosure.



FIG. 4 depicts a block diagram of a representative modelling system that generates representative (or rep) models configured for use in establishing communications with members within a task-facilitation service in accordance with aspects of the present disclosure.



FIG. 5 depicts a block diagram of a user modelling system that generates user models configured for use in the generating and performance of tasks on behalf of users in accordance with aspects of the present disclosure.



FIG. 6 depicts a block diagram of a matchmaking system that assigns representatives to members in accordance with aspects of the present disclosure.



FIG. 7 depicts an illustrative example of a task create sub-system, which generates and ranks recommended tasks configured to be performed for the benefit of a member in accordance with aspects of the present disclosure.



FIG. 8 depicts an illustrative example of an environment in which a task coordination system assigns and monitors performance of a task for the benefit of a member by a representative and/or one or more third-party service providers in accordance with aspects of the present disclosure.



FIG. 9 depicts an illustrative example of a proposal creation sub-system, which generates and ranks proposals of recommended tasks configured to be performed for the benefit of a member in accordance with aspects of the present disclosure.



FIG. 10 depicts a flowchart of an example process for implementing reinforcement learning within a task-facilitation service in accordance with aspects of the present disclosure.



FIG. 11 illustrates a block diagram of an example environment for facilitating task execution in accordance with aspects of the present disclosure.



FIG. 12 shows an example computing system architecture including various components in electrical communication with each other using a connection in accordance with aspects of the present disclosure.





DETAILED DESCRIPTION

Users regularly implement (e.g., plan, schedule, and/or execute) a variety of tasks that induce varying processing loads (e.g., such as cognitive loads, etc.). A high processing load may prevent a user from implementing other potentially higher priority tasks and/or degrade the efficiency of the user (e.g., slow down implementation of future tasks, cause processing errors, cause task failures, etc.). A user can register with a task-facilitation service as a member enabling the task-facilitation service to provide load offsetting and/or load-balancing services that reduce the processing load of members by managing the implementation of tasks and projects (e.g., a set of tasks that execute to implement a larger goal). For example, a member can generate a task specification (e.g., also referred to as a “to-do” or “to do”) that identifies elements of a task. The task-facilitation service may then generate task recommendations and/or generate a proposal (an executable implementation of the task or task specification) that can be presented to the member for execution authorization. Upon receiving authorization from the member, the task-facilitation service can facilitate execution of the task.


Facilitating execution of the task can include the task-facilitation service or a representative thereof executing the task, transmitting some or all of the task specification to one or more third-party service providers to cause the one or more third-party service providers to execute the task or a portion thereof, and/or a combination thereof. For example, facilitating execution of a task may include executing a portion of the task (e.g., such as planning and/or acquisition activities) and transmitting instructions to one or more third-party service providers to execute another portion of the task.


The present disclosure includes systems and methods for implementing reinforcement learning in task-facilitation services. Reinforcement learning may be implemented by using feedback received upon execution of components of the task-facilitation service to modify the operations of the task-facilitation service, The use of feedback to modify and improve internal operations of the task-facilitation service may improve the task-facilitation service, the generation of user and/or representative models, the user and/or representative models, the generation of task recommendations, the generation of proposals, machine-learning models generated and/or operated by the task-facilitation service, and/or the like.


In one example, implementing reinforcement learning in task-facilitation services may include receiving a request to delegate execution of a task at a task-facilitation service. For instance, a member of the task-facilitation service may interact with task-facilitation service and/or a representative thereof to request that the task-facilitation service facilitate performance of a task. Alternatively, the task-facilitation service and/or a representative thereof may recommend a task that the task-facilitation service can facilitate the performance of. The request may include information associated with the request. For example, the information may include a member identifier, an identifier of the task, a task specification (e.g., include information usable to perform the task), combinations thereof, or the like. In some instances, the request may be received from a device associated with the member. In other instances, the request may be received from a device associated with the representative such as when the representative assigned to the member may anticipate a task that the member will execute and/or recommend a task that the member may want to execute or have executed.


The task-facilitation service may generate a proposal using a proposal generator (e.g., one or more machine-learning models and/or the representative operating a task creation sub-system or proposal creation sub-system of the task-facilitation service. The generated proposal may be an implementation of the task (e.g., include task implementation information, logic, instructions, and/or the like to facilitate the performance of the task by the task-facilitation service, the representative, one or more third-party service providers, and/or the like). Generating the proposal may include obtaining data associated with the task for which the proposal is to be generated. The task-facilitation service and/or representative may receive data from the member or a user model corresponding to the member, the representative or representative model, information associated with the task (e.g., indicating what data and data types may be needed to facilitate performance of the task, and/or the like), and/or the like. A feature vector may be extracted from the data associated with the task. The machine-learning model may execute using the feature vector to generate the proposal.


The machine-learning model may be any time of machine-learning model such as, but not limited to, a classifier (e.g., single-variate or multivariate that is based on k-nearest neighbors, Naïve Bayes, Logistic regression, support vector machine, decision trees, an ensemble network of classifiers, and/or the like), regression model (e.g., such as, but not limited to, linear regressions, logarithmic regressions, Lasso regression, Ridge regression, and/or the like), clustering model (e.g., such as, but not limited to, models based on k-means, hierarchical clustering, DBSCAN, biclustering, expectation-maximization, random forest, and/or the like), deep learning model (e.g., such as, but not limited to, neural networks, convolutional neural networks, recurrent neural networks, long short-term memory (LSTM), multilayer perceptions, etc.), combinations thereof (e.g., disparate-type ensemble networks, etc.), or the like.


The task-facilitation service may facilitate execution of the task by executing the proposal. Facilitating execution of the task can include causing the task to be executed. In some instances, the proposal may include executable instructions that may implement the task. For example, the instructions in the proposal may transmit communications to one or more third-party service providers with requests for implementing the task or portions thereof.


The task-facilitation service may receive an execution status of the task. The execution status may indicate a progress of the execution of the task, the results of execution of the task (e.g., success, failure, details of the execution, etc.), feedback from the member (e.g., indicating the member's satisfaction of interacting with the task-facilitation service, the representative, the one or more third-party service providers, and/or the member's satisfaction of the task and the execution of the task), feedback from the representative (e.g., corresponding to the details of the execution of the task, the one or more third-party service providers, the user's satisfaction, and/or the like), feedback from the one or more third-party service providers (e.g., indicating success or failure of the task, details of the execution of the task, etc.), any other information associated with the task or its execution, combinations thereof, or the like.


The task-facilitation service may train the machine-learning model using the execution status and the proposal (and optionally the feature vector). The machine-learning model may be initially trained to generate proposals from feature vectors (e.g., using supervised or unsupervised learning, etc.). In addition to the initial training of the machine-learning model, the machine-learning model may be incrementally trained at runtime using reinforcement learning. The task-facilitation service may determine which outputs from the machine-learning model may be used to reinforce the training of the machine-learning model. In some instance, each execution of the machine-learning model may be used for reinforcement learning. In some instances, only some executions may be used for reinforcement learning. For example, if the execution status is missing, incomplete, or the execution result is inconclusive (e.g., with respect to indicating whether the member was satisfied with the task execution, etc.), then that execution of the machine-learning model may be skipped for reinforcement learning. In some instances, the task-facilitation service may select the output from every nth execution of the machine-learning model to use for reinforcement training.


Reinforcement training may include processing the feature vector, the output of the machine-learning model (e.g., the proposal), and/or the execution result with the machine-learning model to refine the internal node weights or algorithm of the machine-learning model. If a particular output produces a bad result (e.g., negative execution status, etc.), then the machine-learning model may be refined to reduce the likelihood that a same or similar feature vector may generate the same result (e.g., generate a proposal having fields with different values from the previous proposal, etc.). If a particular output produces a good result (e.g., positive execution status, etc.), then the machine-learning model may be refined to increase the likelihood that a same or similar feature vector may generate the same or similar result (e.g., generate the same proposal, generate a proposal having fields with similar or same values as the previous proposal, etc.). In some instances, reinforcement learning may cause the machine-learning model may favor generating proposals having a same or similar field values as those proposals that receive positive execution statuses and generating proposals having different fields and/or field values as those proposals having negative execution statuses. For example, if a particular output produces a negative execution status due to a particular value of a field (e.g., a particular third-party service provider selected as a value for a field), then the machine-learning model may be refined to decrease (and in some cases eliminate) the likelihood that that particular value may be selected for future proposals. Similarly, if a particular output produces a positive execution status due to a particular value of a field (e.g., a particular third-party service provider selected as a value for a field), then the machine-learning model may be refined to increase the likelihood that that particular value may be selected for future proposals.


In some instances, if a particular label (e.g., classification) output from the machine-learning model is associated with a quantity of negative execution results that is greater than a threshold, then the label may be removed to prevent classifying data according to that category. For example, the machine-learning model may generate the proposal by generating predictions for values of fields of a task template (or empty proposal). The task template may include an empty field for a third-party service provider to provide a product. The machine-learning model may process input features to predict a third-party service provider that the member will like and/or that will provide the product efficiently (e.g., quickly, cheaply, and/or the like). The machine-learning model may generate the prediction based on learned third-party service providers (e.g., service providers previously used by the member, by similar members, the representative, other representatives, the task-facilitation service, etc.). If the member is not satisfied by the execution of the task and the execution status indicates that the predicted third-party service provider may be the cause (e.g., due to the frequency with which the third-party service provider is associated with negative execution statuses), then the reinforcement learning may cause the label (e.g., corresponding to the particular third-party service provider) to be removed to prevent the machine-learning model from generating a proposal that includes that predicted label (e.g., the particular third-party service provider). In some instances, the task-facilitation service may reweight the other labels to compensate for the missing labels. Those wights may be further adjusted each time reinforcement learning is applied to the machine-learning model.


The task-facilitation service may store a record of the member's interaction with the task-facilitation service including, but not limited to, the initial request, input received corresponding to the request, the additional information received, the generated proposal, the execution status, and/or the like. The record may be stored in a user model corresponding to the member, the representative model corresponding to the representative, a database storing historical tasks, a database storing historical proposals, and/or the like. The task-facilitation service may use the record to generate training data for the machine-learning model and/or other machine-learning models (e.g., such as those that may generate tasks, proposals, user models, and/or representative models). The record may be accessible by the task-facilitation service, the member, and/or the representative assigned to the member for use in generating new tasks, generating new proposals, customizing tasks for a particular member, customizing proposals for a particular member, matchmaking (e.g., assigning members to a particular representative or group of representatives, etc.), combinations thereof, or the like.



FIG. 1 illustrates an example environment in which a task-facilitation service assigns a representative to a member through which various tasks performable for the benefit of the member can be recommended for performance by the representative and/or one or more third-party services in accordance with aspects of the present disclosure. Task-facilitation service 102 may be implemented to reduce the cognitive load on members and their families in performing various tasks in and around their homes by identifying and delegating tasks to representatives that may coordinate performance of these tasks for the benefit of these members. In an example, a member 118, via a computing device 120 (e.g., laptop computer, smartphone, etc.), may submit a request to the task-facilitation service 102 to initiate an onboarding process for assignment of a representative 106 to the member 118 and to initiate identification of tasks that may be performable for the benefit of the member 118 (e.g., by the representative 106, other representatives, third-party services, by the member 118, or the like). For instance, the member 118 may access the task-facilitation service 102 via an application provided by the task-facilitation service 102 and installed onto a computing device 120 (e.g., desktop or laptop computer, mobile device such as a smartphone, personal digital assistant, or the like). Additionally, or alternatively, the task-facilitation service 102 may maintain a web server (not shown) that hosts one or more websites configured to present or otherwise make available an interface through which the member 118 may access the task-facilitation service 102 and initiate the onboarding process.


During the onboarding process, the task-facilitation service 102 may collect identifying information of the member 118, which may be used by a representative assignment system 104 to identify and assign a representative 106 to the member 118. For instance, the task-facilitation service 102 may provide, to the member 118, a survey or questionnaire through which the member 118 may provide identifying information usable by the representative assignment system 104 to select a representative 106 for the member 118. For instance, the task-facilitation service 102 may prompt the member 118 to provide detailed information with regard to the composition of the member's family (e.g., number of inhabitants in the member's home, the number of children in the member's home, the number and types of pets in the member's home, etc.), the physical location of the member's home, any special needs or requirements of the member 118 (e.g., physical or emotional disabilities, etc.), and the like. In some instances, the member 118 may be prompted to provide demographic information (e.g., age, ethnicity, race, languages written/spoken, socioeconomic status, etc.). The member 118 may also be prompted to indicate any personal interests or hobbies that may be used to identify possible experiences that may be of interest to the member 118 (described in greater detail herein). In some instances, the task-facilitation service 102 may prompt the member 118 to specify any tasks that the member 118 would like assistance with or would otherwise like to delegate to another entity, such as to a representative and/or a third-party.


In some examples, the task-facilitation service 102 can prompt the member 118 to indicate a level or other measure of trust in delegating tasks to others, such as a representative and/or third-party. For instance, the task-facilitation service 102 may utilize the identifying information submitted by the member 118 during the onboarding process to identify initial categories of tasks that may be relevant to the member's day-to-day life. In some instances, the task-facilitation service 102 can utilize a machine-learning algorithm or artificial intelligence to identify the categories of tasks that may be of relevance to the member 118. For instance, the task-facilitation service 102 may implement a clustering algorithm to identify similarly situated members based on one or more vectors (e.g., geographic location, demographic information, likelihood to delegate tasks to others, family composition, home composition, etc.). In some instances, a dataset of input member characteristics corresponding to responses to prompts provided by the task-facilitation service 102 provided by sample members (e.g., testers, etc.) may be analyzed using a clustering algorithm to identify different types of members that may interact with the task-facilitation service 102. Example clustering algorithms that may trained using sample member datasets (e.g., historical member data, hypothetical member data, etc.) to classify a member in order to identify categories of tasks that may be of relevance to the member may include a k-means clustering algorithms, fuzzy c-means (FCM) algorithms, expectation-maximization (EM) algorithms, hierarchical clustering algorithms, density-based spatial clustering of applications with noise (DBSCAN) algorithms, and the like. Based on the output of the machine-learning algorithm generated using the member's identifying information, the task-facilitation service 102 may prompt the member 118 to provide responses as to a comfort level in delegating tasks corresponding to the categories of tasks provided by the machine-learning algorithm. This may reduce the number of prompts provided to the member 118 and better tailor the prompts to the member's needs.


In some examples, the member's identifying information, as well as any information related to the member's level of comfort or interest in delegating different categories of tasks to others, may be provided to a representative assignment system 104 of the task-facilitation service 102 to identify a representative 106 that may be assigned to the member 118. The representative assignment system 104 may be implemented using a computer system or as an application or other executable code implemented on a computer system of the task-facilitation service 102. The representative assignment system 104 uses the member's identifying information, any information related to the member's level of comfort or interest in delegating tasks to others, and any other information obtained during the onboarding process as input to a classification or clustering algorithm configured to identify representatives that may be well-suited to interact and communicate with the member 118 in a productive manner. For instance, representatives may be profiled based on various criteria, including (but not limited to) demographics and other identifying information, geographic location, experience in handling different categories of tasks, experience in communicating with different categories of members, and the like. Using the classification or clustering algorithm, the representative assignment system 104 may identify a set of representatives that may be more likely to develop a positive, long-term relationship with the member 118 while addressing any tasks that may need to be addressed for the benefit of the member 118.


Once the representative assignment system 104 has identified a set of representatives that may be assigned to the member 118 to serve as an assistant or concierge for the member 118, the representative assignment system 104 may evaluate data corresponding to each representative of the set of representatives to identify a particular representative that can be assigned to the member 118. For instance, the representative assignment system 104 may rank each representative of the set of representatives according to degrees or vectors of similarity between the member's and representative's demographic information. For instance, if a member and a particular representative share a similar background (e.g., attended university in the same city, are from the same hometown, share particular interests, etc.), the representative assignment system 104 may rank the particular representative higher compared to other representatives that may have less similar backgrounds. Similarly, if a member and a particular representative are within geographic proximity to one another, the representative assignment system 104 may rank the particular representative higher compared to other representatives that may be further away from the member 118. Each factor, in some instances, may be weighted based on the impact of the factor on the creation of a positive, long-term relationship between members and representatives. For instance, based on historical data corresponding to member interactions with representatives, the representative assignment system 104 may identify correlations between different factors and the polarities of these interactions (e.g., positive, negative, etc.). Based on these correlations (or lack thereof), the representative assignment system 104 may apply a weight to each factor.


In some instances, each representative of the identified set of representatives may be assigned a score corresponding to the various factors corresponding to the degrees or vectors of similarity between the member's and representative's demographic information. For instance, each factor may have a possible range of scores corresponding to the weight assigned to the factor. As an illustrative example, the various factors used to obtain representative scores may each have a possible score between 1 and 10. However, based on the weight assigned to each factor, the possible score may be multiplied by a weighting factor such that a factor having greater weight may be multiplied by a higher weighting factor compared to a factor having a lesser weight. The result is a set of different scoring ranges corresponding to the importance or relevance of the factor in determining a match between a member 118 and a representative. The scores determined for the various factors may be aggregated to obtain a composite score for each representative of the set of representatives. These composite scores may be used to create the ranking of the set of representatives.


In some examples, the representative assignment system 104 may use the ranking of the set of representatives to select a representative that may be assigned to the member 118. For instance, the representative assignment system 104 may select a highest ranked representative and determine the representative's availability to engage the member 118 in identifying and recommending tasks, coordinating resolution of tasks, and otherwise communicating with the member 118 to assure that their needs are addressed. If the selected representative is unavailable (e.g., the representative is already engaged with one or more other members, etc.), the representative assignment system 104 may select another representative according to the aforementioned ranking and determine the availability of this representative to engage the member 118. This process may be repeated until a representative is identified from the set of representatives that is available to engage the member 118. In some instances, representative availability may be a factor used to obtain the aforementioned representative scores, whereby a representative that is unavailable or otherwise does not have sufficient bandwidth to accommodate the new member 118 may be assigned a lower representative score. Accordingly, an unavailable representative may be ranked lower than other representatives that may be available for assignment to the member 118.


In some examples, the representative assignment system 104 may select a representative from the set of representatives based on information associated with the availability of each representative. For instance, the representative assignment system 104 may automatically select the first available representative from the set of representatives. In some instances, the representative assignment system 104 may automatically select the first available representative that satisfies one or more criteria corresponding to the member's identifying information (e.g., a representative associated with a representative profile that best matches the member profile, etc.). For example, the representative assignment system 104 may automatically select an available representative that is within geographic proximity of the member 118, shares a similar background as that of the member 118, and the like


In some examples, a representative 106 may be an automated process, such as a bot, that may be configured to automatically engage and interact with the member 118. For instance, the representative assignment system 104 may utilize the responses provided by the member 118 during the onboarding process as input to a machine-learning algorithm or artificial intelligence to generate a member profile and a bot that may serve as a representative 106 for the member 118. The bot may be configured to autonomously chat with the member 118 to generate tasks and proposals, perform tasks on behalf of the member 118 in accordance with any approved proposals, and the like as described herein. The bot may be configured according to the parameters or characteristics of the member 118 as defined in the member profile. As the bot communicates with the member 118 over time, the bot may be updated to improve the bot's interaction with the member 118.


In other instances, a representative 106 may be a user. The representative 106 may operate along with one or more automated services configured to provide information to the representative 106 that may assist the representative 106 in providing service to the member 118 such as, but not limited to suggesting tasks, generating proposals, communicating with service providers and/or other third parties, generating status reports, and/or the like. In some instances, the one or more automated services may automated one or more operations of the representative 106. In those instances, the representative 106 may pre-authorize the one or more automated services to automatically perform operations or confirm the execution of each operation executed by an automated service. For example, some interactions between representative 106 and the member 118 may be facilitated by a bot (e.g., those interactions that may be suitable for automation, those interactions that have been occurred previously with the member 118 or another member, or the like), while other interactions between the representative 106 and the member 118 may be facilitated by a user. In those instances, the interactions may be seamless such that the member 118 may not readily detect whether the given communication was generated by a user or the automated process.


Data associated with the member 118 collected during the onboarding process, as well as any data corresponding to the selected representative, may be stored in a user datastore 108. The user datastore 108 may include an entry corresponding to each member 118 of the task-facilitation service 102. The entry may include identifying information of the corresponding member 118, as well as an identifier or other information corresponding to the representative assigned to the member 118. As described in greater detail herein, an entry in the user datastore 108 may further include historical data corresponding to communications between the member 118 and the assigned representative made over time. For instance, as a member 118 interacts with a representative 106 over a chat session or stream, messages exchanged over the chat session or stream may be recorded in the user datastore 108.


In some examples, the data associated with the member 118 may be used by the task-facilitation service 102 to create a member profile corresponding to the member 118. As noted above, the task-facilitation service 102 may provide, to the member 118, a survey, a questionnaire, or the like through which the member 118 may provide identifying information associated with the member 118. The responses provided by the member 118 to this survey or questionnaire may be used by the task-facilitation service 102 to generate an initial member profile corresponding to the member 118. The task-facilitation service 102 may also receive information associated with the member 118 from devices associated with the member 118 (e.g., Internet-of-Things devices, sensor-based devices, computing devices, and/or the like that are registered to or operating via a network associated with the member 118), services associated with the member 118 (e.g., services subscribed to by the member 118, etc.), information generated by or derived from users connected to the member 118 (e.g., data associated with other members connected to the member 118 such as friends, family, etc.; social media contacts; etc.), and/or the like. In some instances, once the representative assignment system 104 has assigned a representative to the member 118, the task-facilitation service 102 can prompt the member 118 to generate a new member profile corresponding to the member 118. For instance, the task-facilitation service 102 may provide the member 118 with a survey or questionnaire that includes a set of questions that may be used to supplement the information previously provided during the aforementioned onboarding process. For example, through the survey or questionnaire, the task-facilitation service 102 may prompt the member 118 to provide additional information about friends or family members (and/or other contacts of the member 118), important dates (e.g., birthdays, etc.), dietary restrictions, and the like. Based on the responses provided by the member 118, the task-facilitation service 102 may update the member profile corresponding to the member 118.


In some instances, the member profile may be accessible to the member 118, such as through an application or web portal provided by the task-facilitation service 102. Through the application or web portal, the member 118 may add, remove, or edit any information within the member profile. The member profile, in some instances, may be divided into various sections corresponding to the member, the member's family, the member's home, and the like. Each of these sections may be supplemented based on the data associated with the member 118 collected during the onboarding process and on any responses to the survey or questionnaire provided to the member 118 after assignment of a representative to the member 118. Additionally, each section may include additional questions or prompts that the member 118 may use to provide additional information that may be used to expand the member profile. For example, through the member profile, the member 118 may be prompted to provide credentials usable to access external accounts (e.g., credit card accounts, retailer accounts, etc.) in order to facilitate completion of tasks.


In some examples, certain information within the member profile can be obscured from the member 118 or the representative. For example, as the representative develops a relationship with the member 118 through the completion of various tasks, the representative may modify the member profile to provide notes about the member 118 (e.g., the member's idiosyncrasies, any feedback regarding the member, etc.). Thus, when the member 118 accesses their member profile, these notes may be obscured such that the member 118 may be unable to review these notes or otherwise access any sections of the member profile that have been designated by the representative 106 or the task-facilitation service 102 as being unavailable to the member.


The representative assigned to the member 118 may add or otherwise modify information within the member profile based on information shared with the representative (e.g., by the member 118, users associated with and/or connected to the member 118 such as friends or family, data generated and/or derived by the representative (e.g., such as the representative's own observations regarding the member 118, etc.), and/or the like. Additionally, the task-facilitation service 102 may automatically surface relevant portions of the member profile when creating or performing a task on behalf of the member 118. For example, if the representative is generating a task related to meal planning for the member 118, the task-facilitation service 102 may automatically identify portions of the member profile that may be contextually relevant to meal planning and surface these portions of the member profile to the representative (e.g., dietary preferences, dietary restrictions, etc.). In some instances, if the representative requires additional information for creating or performing a task on behalf of the member 118, the representative may invite the member 118 to update specific portions of the member profile instead of having the member 118 share the additional information through a chat session or other communications session between the member 118 and the assigned representative.


In some examples, once the representative assignment system 104 has assigned a particular representative to the member 118, the representative assignment system 104 notifies the member 118 and the particular representative of the pairing. Further, the representative assignment system 104 may establish a chat session or other communications session between the member 118 and the assigned representative to facilitate communications between the member 118 and representative. For instance, via an application provided by the task-facilitation service 102 and installed on the computing device 120, a web portal provided by the task-facilitation service 102, and/or the like the member 118 may exchange messages with the assigned representative over the chat session or other communication session. Similarly, the representative may be provided with an interface through which the representative may exchange messages with the member 118.


In some instances, the member 118 may initiate or otherwise resume a chat session with an assigned representative. For example, via the application or web portal provided by the task-facilitation service 102, the member may transmit a message to the representative over the chat session or other communication session to communicate with the representative. The member 118 can submit a message to the representative to indicate that the member 118 would like assistance with a particular task. As an illustrative example, the member 118 can submit a message to the representative to indicate that the member 118 would like the representative's assistance with regard to an upcoming move to Denver in the coming months. The representative, via an interface provided by the task-facilitation service 102, may be presented with the submitted message. Accordingly, the representative may evaluate the message and generate a corresponding task that is to be performed to assist the member 118. For instance, the representative, via the interface provided by the task-facilitation service 102, may access a task generation form, through which the representative may provide information related to the task. The information may include information related to the member 118 (e.g., member name, member address, etc.) as well as various parameters of the task itself (e.g., allocated budget, timeframe for completion of the task, and the like). The parameters of the task may further include any member preferences (e.g., preferred brands, preferred third-party services 116, etc.).


In some examples, the representative can provide the information obtained from the member 118 for the task specified in the one or more messages exchanged between the member 118 and representative to a task recommendation system 112 of the task-facilitation service 102 to dynamically, and in real-time, identify any additional task parameters that may be required for generating one or more proposals for completion of the task. The task recommendation system 112 may be implemented using a computer system or as an application or other executable code implemented on a computer system of the task-facilitation service 102. The task recommendation system 112 may provide the representative with an interface through which the representative may generate a task that may be presented to the member over the chat session (e.g., via the application utilized by the member 118, etc.) and that may be completed by the representative and/or one or more third-party services 116 for the benefit of the member 118. For instance, the representative may provide a name for the task, any known parameters of the task as provided by the member (e.g., budgets, timeframes, task operations to be performed, etc.), and the like. As an illustrative example, if the member 118 transmits the message “Hey Russell, can you help with our move to Denver in 2 months,” the representative may evaluate the message and generate a task entitled “Move to Denver.” For this task, the representative may indicate that the timeframe for completion of the task is two months, as indicated by the member 118. Further, the representative may add additional information known to the representative about the member. For example, the representative may indicate any preferred moving companies, any budgetary constraints, and the like.


In some instances, the task recommendation system 112 can provide, to the representative, any relevant information from the member profile corresponding to the member 118 that may be used to generate the task. For example, if the representative generates a new task entitled “Move to Denver,” the task recommendation system 112 may determine that the new task corresponds to a move to a new city or other location. Accordingly, the task recommendation system 112 may process the member profile to identify portions of the member profile that may be relevant to the task (e.g., the physical location of the member's home, the number of inhabitants in the member's home, the square footage and number of rooms in the member's home, etc.). The task recommendation system 112 may automatically surface these portions of the member profile to the representative in order to allow the representative to use this information to generate the new task. Alternatively, the task recommendation system 112 may automatically use this information to populate one or more fields within a task template for creation of the new task.


In some instances, a representative can access a resource library maintained by the task-facilitation service 102 to obtain a task template that may be used to generate a new task that may be performed on behalf of the member 118. The resource library may serve as a repository for different task templates corresponding to different task categories (e.g., vehicle maintenance tasks, home maintenance tasks, family-related event tasks, care giving tasks, experience-related tasks, etc.). A task template may include a plurality of task definition fields that may be used to define a task that may be performed for the benefit of the member 118. For example, the task definition fields corresponding to a vehicle maintenance task may be used to define the make and model of the member's vehicle, the age of the vehicle, information corresponding to the last time the vehicle was serviced and information associated with that service, any reported accidents associated with the vehicle, a description of any issues associated with the vehicle, information associated with a the maintenance needed, and/or the like. Thus, each task template maintained in the resource library may include fields that are specific to the task category associated with the task template. In some instances, a representative may further define custom fields for a task template, through which the representative may supply additional information that may be useful in defining and completing the task. These custom fields may be added to the task template such that, if the representative obtains the task template in the future to create a similar task, these custom fields may be available to the representative.


In some instances, if the representative selects a particular task template from the resource library, the task recommendation system 112 may automatically identify information from the member profile corresponding to the member 118 that corresponds to the fields of the particular task template. For instance, each template may be associated with a particular task category, as noted above. Further, different portions of a member profile may be associated with different task categories such that, in response to representative selection of a task template, the task recommendation system 112 may identify the relevant portions of the member profile. From these relevant portions of the member profile, the task recommendation system 112 may automatically obtain information that may be used to populate one or more fields of the selected task template. For example, if the member profile includes an indication that the member 118 has a 2020 Subaru Outback, the task recommendation system 112 may automatically obtain this information from the member profile to populate fields within the task template corresponding to the make, model, and year of the member's vehicle (e.g., “Make=Subaru,” “Model=Outback,” “Year=2020,” etc.). This may reduce the amount of data entry that the representative is required to perform to populate a task template for a new task.


In some examples, based on the task template selected by the representative, the task recommendation system 112 may automatically determine which portions of the member profile can be accessed by the representative for creation of the task. For instance, if the representative selects a task template corresponding to vehicle maintenance, the task recommendation system 112 may enable the representative to access the relevant portions of the member profile storing information related to the selected task template or related to particular fields of the selected task template (e.g., make and model of the vehicle, the maintenance history of the vehicle, etc.). The task recommendation system 112 may present these relevant portions of the member profile to the representative while obscuring other portions of the member profile that may not be relevant to the task category selected by the representative. This may prevent the representative from accessing any information from the member profile without a particular need for the information, thereby reducing exposure of the member's information.


In some examples, the representative can provide the generated task to the task recommendation system 112 to determine whether additional member input is needed for creation of a proposal that may be presented to the member for completion of the task. The task recommendation system 112, for instance, may process the generated task and information corresponding to the member 118 from the user datastore 108 using a machine-learning algorithm or artificial intelligence to automatically identify additional parameters for the task, as well as any additional information that may be required from the member 118 for the generation of proposals. For instance, the task recommendation system 112 may use the generated task, information corresponding to the member 118 (e.g., stored within the member profile, etc.), and historical data corresponding to tasks performed for other similarly situated members as input to the machine-learning algorithm or artificial intelligence to identify any additional parameters that may be automatically completed for the task and any additional information that may be required of the member 118 for defining the task. For example, if the task is related to an upcoming move to another city, the task recommendation system 112 may utilize the machine-learning algorithm or artificial intelligence to identify similarly situated members (e.g., members within the same geographic area of member 118, members having similar task delegation sensibilities, members having performed similar tasks, etc.). Based on the task generated for the member 118, characteristics of the member 118 from the member profile stored in the user datastore 108 and data corresponding to these similarly situated members, the task recommendation system 112 may provide additional parameters for the task. As an illustrative example, for the aforementioned task, “Move to Denver,” the task recommendation system 112 may provide a recommended budget for the task, one or more moving companies that the member 118 may approve of (as used by other similarly situated members with positive feedback), and the like. The representative may review these additional parameters and select one or more of these parameters for inclusion in the task.


If the task recommendation system 112 determines that additional member input is required for the task, the task recommendation system 112 may provide the representative with recommendations for questions that may be presented to the member 118 regarding the task. Returning to the “Move to Denver” task example, if the task recommendation system 112 determines that it is important to understand one or more parameters of the member's home (e.g., square footage, number of rooms, etc.) for the task, the task recommendation system 112 may provide a recommendation to the representative to prompt the member 118 to provide these one or more parameters. The representative may review the recommendations provided by the task recommendation system 112 and, via the chat session, prompt the member 118 to provide the additional task parameters. This process may reduce the number of prompts provided to the member 118 in order to define a particular task, thereby reducing the cognitive load on the member 118. In some instances, rather than providing the representative with recommendations for questions that may be presented to the member 118 regarding the task, the task recommendation system 112 can automatically present these questions to the member 118 via the chat session. For instance, if the task recommendation system 112 determines that a question related to the square footage of the member's home is required for the task, the task recommendation system 112 may automatically prompt the member 118, via the chat session, to provide the square footage for the member's home. In some instances, information provided by the member 118 in response to these questions may be used to automatically supplement the member profile such that, for future tasks, this information may be readily available to the representative and/or to the task recommendation system 112 for defining new tasks.


In some examples, the task-facilitation service 102 may automatically generate a communications session (e.g., chat communication session such as via instant messaging or text messaging, audio-based communication sessions via a telephone or the like, a video-based communication session, etc.), corresponding to the task. The communications session corresponding to the task may be distinct from the chat session previously established between the member 118 and the representative. Through the task-specific communications session, the member 118 and the representative may exchange communications related to the particular task. For example, the representative may request information from the member 118 that may be required to determine one or more parameters of the task. Similarly, if the member 118 has questions related to the particular task, the member 118 may provide these questions through the task-specific communications session. The implementation of task-specific communications sessions may reduce the number of messages exchanged through other chat or communications sessions while ensuring that communications within these task-specific communications sessions are relevant to the corresponding tasks


In some examples, once the representative has obtained the necessary task-related information from the member 118 and/or through the task recommendation system 112 (e.g., task parameters garnered via evaluation of tasks performed for similarly situated members, etc.), the representative can utilize a task coordination system 114 of the task-facilitation service 102 to generate one or more proposals for resolution of the task. The task coordination system 114 may be implemented using a computer system or as an application or other executable code implemented on a computer system of the task-facilitation service 102. In some examples, the representative may utilize a resource library maintained by the task coordination system 114 to identify one or more third-party services 116 and/or resources (e.g., retailers, restaurants, websites, brands, types of goods, particular goods, etc.) that may be used for performance the task for the benefit of the member 118 according to the one or more task parameters identified by the representative and the task recommendation system 112, as described above. A proposal may specify a timeframe for completion of the task, identification of any third-party services 116 (if any) that are to be engaged for completion of the task, a budget estimate for completion of the task, resources or types of resources to be used for completion of the task, and the like. The representative may present the proposal to the member 118 via the chat session to solicit a response from the member 118 to either proceed with the proposal or to provide an alternative proposal for completion of the task.


In some examples, the task recommendation system 112 can provide the representative 106 with a recommendation as to whether the representative 106 should provide the member 118 with a proposal or instead provide the member with an option to defer to the representative 106 with regard to completion of the defined task. For instance, in addition to providing member and task-related information to the task recommendation system 112 to identify additional parameters for the task, the representative may indicate its recommendation to the task recommendation system 112 to present the member 118 with one or more proposals for completion of the task or to present the member 118 with an option to defer to the representative for completion of the task. The task recommendation system 112 may utilize the machine-learning algorithm or artificial intelligence to generate the aforementioned recommendation. The task recommendation system 112 may utilize the information provided by the representative, as well as data for similarly situated members from the user datastore 108 and task data corresponding to similar tasks from a task datastore 110 (e.g., tasks having similar parameters to the submitted task, tasks performed on behalf of similarly situated members, etc.), to determine whether to recommend presentation of one or more proposals for completion of the task and whether to present the member 118 with an option to defer to the representative for completion of the task.


If the representative determines that the member is to be presented with an option to defer to the representative for completion of the task, the representative may present this option to the member over the chat session. The option may be presented in the form of a button or other graphical user interface (GUI) element that the member may select to indicate its approval of the option. For example, the member may be presented with a “Run With It” button to provide the member with an option to defer all decisions related to performance of the task to the representative. If the member 118 selects the option, the representative may present a proposal that has been selected by the representative for completion of the task on behalf of the member 118 and may proceed to coordinate with one or more third-party services 116 for performance and completion of the task according to the proposal. Rather than allowing the member 118 to select a particular proposal for completion of the task, the representative may instead select a particular proposal on behalf of the member 118. The proposal may still be presented to the member 118 in order for the member 118 to verify how the task is to be completed. Any actions taken by the representative on behalf of the member 118 for completion of the task may be recorded in an entry corresponding to the task in the task datastore 110. Alternatively, if the member 118 rejects the option and instead indicates that the representative is to provide one or more proposals for completion of the task, the representative may generate one or more proposals, as described above.


The task recommendation system 112 can record the member's reaction to being presented with an option to defer to the representative for completion of a task for use in training the machine-learning algorithm or artificial intelligence used to make recommendations to the representative for presentation of the option. For instance, if the representative opted to present the option to the member 118, the task recommendation system 112 may record whether the member 118 selected the option or declined the offer and requested presentation of one or more proposals related to the task. Similarly, if the representative opted to present one or more proposals without presenting the option to defer to the representative, the task recommendation system 112 may record whether the member 118 was satisfied with the presentation of these one or more proposals or requested that the representative select a proposal on the member's behalf, thus deferring to the representative for completion of the task. These member reactions, along with data corresponding to the task, the representative's actions (e.g., presentation of the option, presentation of proposals, etc.), and the recommendation provided by the task recommendation system 112 may be stored in the task datastore 110 for use by the task recommendation system 112 in training and/or reinforcing the machine-learning algorithm or artificial intelligence.


In some examples, the representative can suggest one or more tasks based on member characteristics and/or other factors. For instance, as the member 118 communicates with the representative over the chat session, the representative may evaluate any messages from the member 118 to identify any tasks that may be performed to reduce the member's cognitive load. As an illustrative example, if the member 118 indicates, over the chat session, that their spouse's birthday is coming up, the representative may utilize its knowledge of the member 118 to develop one or more tasks that may be recommended to the member 118 in anticipation of their spouse's birthday. The representative may recommend tasks such as purchasing a cake, ordering flowers, setting up a unique travel experience for the member 118, and the like. In some instances, the representative can generate task suggestions without member input. For instance, as part of the onboarding process, the member 118 may provide the task-facilitation service 102 with access to one or more member resources, such as the member's calendar, information received or derived from the member's Internet-of-Things (IoT) devices, the member's personal fitness devices (e.g., fitness trackers, exercise equipment having communication capabilities, etc.), the member's vehicle data, and the like. Data collected from these member resources may be monitored by the representative, which may parse the data to generate task suggestions for the member 118. Alternatively, or additionally, data collected from these resources may be monitored by the task-facilitation service 102 (e.g., via one or more process, machine-learning models, and/or the like) to prevent the representative from directly accessing sensitive information of the member 118.


In some examples, the data collected from a member 118 over a chat session with the representative may be evaluated by the task recommendation system 112 to identify one or more tasks that may be presented to the member 118 for completion. For instance, the task recommendation system 112 may utilize natural language processing (NLP) or other artificial intelligence to evaluate received messages or other communications from the member 118 to identify an intent. An intent may correspond to an issue that a member 118 wants resolved. Examples of intents can include, but are not limited to, topics, sentiments, complexities, and urgencies. A topic can include, but is not limited to, a subject, a product, a service, a technical issue, a use question, a complaint, a purchase request, etc. An intent can be determined, for example, based on a semantic analysis of a communication (e.g., by identifying keywords, sentence structures, repeated words, punctuation characters, tone, and/or non-article words), user input (e.g., a selection of an intent from one or more categories), message-associated statistics (e.g., typing speed and/or response latency, etc.), and/or the like. The intent may be used by the NLP algorithm or other artificial intelligence to identify possible tasks that may be recommended to the member 118. For instance, the task recommendation system 112 may process any incoming messages from the member 118 using NLP or other artificial intelligence to detect a new task or other issue that the member 118 would like to have resolved. In some instances, the task recommendation system 112 may utilize historical task data and corresponding messages from the task datastore 110 to train the NLP or other artificial intelligence to identify possible tasks. If the task recommendation system 112 identifies one or more possible tasks that may be recommended to the member 118, the task recommendation system 112 may present these possible tasks to the representative 106, which may select tasks that can be shared with the member 118 over the chat session. Alternatively, or additionally, task recommendation system 112 may assign a likelihood (e.g., a probability that the member 118 will select or approve the task) or rank to each task and, if the likelihood or rank is greater than a threshold, share the select the task to be shared with the member 118 (e.g., in the chat session or outside a chat session such as via push notifications, a task dashboard, and/or the like). The likelihood and/or rank may be defined by a machine-learning model based on previous tasks recommended to the member 118, previous tasks executed by the representative 106 for the member 118, significance of the task to the member 118, cost of executing the task, etc.


In some examples, the task recommendation system 112 can utilize computer vision or other artificial intelligence to process images or video recordings provided by the member 118 to identify potential tasks that may be recommended to the member 118 for completion. For instance, the representative may prompt the member 118 to record images or video during a walkthrough of the member's home to identify potential tasks that may be completed for the benefit of the member 118. As an illustrative example, the member 118 may use a mobile device (e.g., smartphone, digital video recorder, etc.) to record digital images or video related to a damaged baseboard that is in need of repair. These digital images or video may be processed by the task recommendation system 112 in real-time to detect the damaged baseboard, identify the possible scope of repairs required to the baseboard, and possible tasks that may be performed to repair the damaged baseboard. Additionally, while the digital images or video may be related to the damaged baseboard, the task recommendation system 112 may further process the digital images or video to identify additional and/or alternative issues for which tasks may be recommended. For example, if the task recommendation system 112 detects that, in addition to a damaged baseboard, the member 118 may be experiencing a termite issue within the baseboard, the task recommendation system 112 may recommend a task corresponding to extermination of the detected termites. Thus, the task recommendation system 112, using computer vision or other artificial intelligence, may detect possible issues that the member 118 may not be aware of.


In some examples, the task recommendation system 112 can generate a list of possible tasks that may be presented to the member 118 for completion to reduce the member's cognitive load. For instance, based on an evaluation of data collected from different member sources (e.g., IoT devices, personal fitness or biometric devices, video and audio recordings, etc.), the task recommendation system 112 may identify an initial set of tasks that may be completed for the benefit of the member 118. Additionally, the task recommendation system 112 can identify additional and/or alternative tasks based on external factors. For example, the task recommendation system 112 can identify seasonal tasks based on the member's geographic location (e.g., foliage collection, gutter cleaning, etc.). As another example, the task recommendation system 112 may identify tasks performed for the benefit of other members within the member's geographic region and/or that are otherwise similarly situated (e.g., share one or more characteristics with the member 118). For instance, if various members within the member's neighborhood are having their gutters cleaned or driveways sealed for winter, the task recommendation system 112 may determine that these tasks may be performed for the benefit of the member 118 and may be appealing to the member 118 for completion.


In some examples, the task recommendation system 112 can use the initial set of tasks, member-specific data from the user datastore 108 (e.g., characteristics, demographics, location, historical responses to recommendations and proposals, etc.), data corresponding to similarly-situated members from the user datastore 108, and historical data corresponding to tasks previously performed for the benefit of the member 118 and the other similarly-situated members from the task datastore 110 as input to a machine-learning algorithm or artificial intelligence to identify a set of tasks that may be recommended to the member 118 for performance. For instance, while an initial set of tasks may include a task related to gutter cleaning, based on the member's preferences, the member 118 may prefer to perform this task itself. As such, the output of the machine-learning algorithm or artificial intelligence (e.g., the set of tasks that may be recommended to the member 118) may omit this task. Further, in addition to the set of tasks that may be recommended to the member 118, the output of the machine-learning algorithm or artificial intelligence may specify, for each identified task, a recommendation for presentation of the button or other GUI element that the member 118 may select to indicate that it would like to defer to the representative for performance of the task, as described above.


A listing of the set of tasks that may be recommended to the member 118 may be provided to the representative for a final determination as to which tasks may be presented to the member 118 through task-specific interfaces (e.g., a communications session specific to these tasks, etc.). In some examples, the task recommendation system 112 can rank the listing of the set of tasks based on a likelihood of the member 118 selecting the task for delegation to the representative for performance and/or coordination with third-party services 116. Alternatively, the task recommendation system 112 may rank the listing of the set of tasks based on the level of urgency for completion of each task. The level of urgency may be determined based on member characteristics (e.g., data corresponding to a member's own prioritization of certain tasks or categories of tasks) and/or potential risks to the member 118 if the task is not performed. For example, a task corresponding to replacement or installation of carbon monoxide detectors within the member's home may be ranked higher than a task corresponding to the replacement of a refrigerator water dispenser filter, as carbon monoxide filters may be more critical to member safety. As another illustrative example, if a member 118 places significant importance on the maintenance of their vehicle, the task recommendation system 112 may rank a task related to vehicle maintenance higher than a task related to other types of maintenance. As yet another illustrative example, the task recommendation system 112 may rank a task related to an upcoming birthday higher than a task that can be completed after the upcoming birthday.


The representative may review the set of tasks recommended by the task recommendation system 112 and select one or more of these tasks for presentation to the member 118 via task-specific interfaces corresponding to these tasks. Further, as described above, the representative may determine whether a task is to be presented with an option to defer to the representative for performance of the task (e.g., with a button or other GUI element to indicate the member's preference to defer to the representative for performance of the task). In some instances, the one or more tasks may be presented to the member 118 according to the ranking generated by the task recommendation system 112. Alternatively, the one or more tasks may be presented according to the representative's understanding of the member's own preferences for task prioritization. Through an interface provided by the task-facilitation service 102, the member 118 may access any of the task-specific interfaces related to these tasks to select one or more tasks that may be performed with the assistance of the representative. The member 118 may alternatively dismiss any presented tasks that the member 118 would rather perform personally or that the member 118 does not otherwise want performed.


In some examples, the task recommendation system 112 can automatically select one or more of the tasks for presentation to the member 118 via the task-specific interface without representative interaction. For instance, the task recommendation system 112 may utilize a machine-learning algorithm or artificial intelligence to select which tasks from the listing of the set of tasks previously ranked by the task recommendation system 112 may be presented to the member 118 through task-specific interfaces. As an illustrative example, the task recommendation system 112 may use the member profile corresponding to the member 118 (which can include historical data corresponding to member-representative communications, member feedback corresponding to representative performance and presented tasks/proposals, etc.), from the user datastore 108, tasks currently in progress for the member 118, and the listing of the set of tasks as input to the machine-learning algorithm or artificial intelligence. The output generated by the machine-learning algorithm or artificial intelligence may indicate which tasks of the listing of the set of tasks are to be presented automatically to the member 118 task-specific interfaces corresponding to these tasks. As the member 118 interacts with these newly presented tasks, the task recommendation system 112 may record these interactions and use these interactions to further train the machine-learning algorithm or artificial intelligence to better determine which tasks to present to member 118 and other similarly-situated members.


In some examples, the task recommendation system 112 can monitor the chat session between the member 118 and the representative, as well as member interactions with task-specific interfaces provided by the task-facilitation service 102 and related to different tasks that may be performed on behalf of the member 118 to collect data with regard to member selection of tasks for delegation to the representative for performance. For instance, the task recommendation system 112 may process messages corresponding to tasks presented to the member 118 by the representative over the chat session, as well as any interactions with the task-specific interfaces corresponding to these tasks (e.g., any task-specific communications sessions, member creation of discussions related to particular tasks, etc.) to determine a polarity or sentiment corresponding to each task. For instance, if a member 118 indicates, in a message to the representative, that it would prefer not to receive any task recommendations corresponding to vehicle maintenance, the task recommendation system 112 may ascribe a negative polarity or sentiment to tasks corresponding to vehicle maintenance. Alternatively, if a member 118 selects a task related to gutter cleaning for delegation to the representative and/or indicates in a message to the representative that recommendation of this task was a great idea, the task recommendation system 112 may ascribe a positive polarity or sentiment to this task. In some examples, the task recommendation system 112 can use these responses to tasks recommended to the member 118 to further train or reinforce the machine-learning algorithm or artificial intelligence utilized to generate task recommendations that can be presented to the member 118 and other similarly situated members of the task-facilitation service 102.


In some examples, in addition to recommending tasks that may be performed for the benefit of the member 118, a representative may recommend one or more curated experiences that may be appealing to the member 118 to take their mind off of urgent matters and to spend more time on themselves and their families. As noted above, during an onboarding process, a member 118 may be prompted to indicate any of its interests or hobbies that the member 118 finds enjoyable. Further, as the representative continues its interactions with the member 118 over the chat session, the representative may prompt the member 118 to provide additional information regarding its interests in a natural way. For instance, a representative may ask the member 118 “what will you be doing this weekend?” Based on the member response, the representative may update the member profile to indicate the member's preferences. Thus, over time, the representative and the task-facilitation service 102 may develop a deeper understanding of the member's interests and hobbies.


In some examples, the task-facilitation service 102 generates, in each geographic market in which the task-facilitation service 102 operates, a set of experiences that may be available to members. For instance, the task-facilitation service 102 may partner with various organizations within each geographic market to identify unique and/or time-limited experience opportunities that may be of interest to members of the task-facilitation service. Additionally, for experiences that may not require curation (e.g., hikes, walks, etc.), the task-facilitation service 102 may identify popular experiences within each geographic market that may be appealing to its members. The information collected by the task-facilitation service 102 may be stored in a resource library or other repository accessible to the task recommendation system 112 and the various representatives.


In some examples, for each available experience, the task-facilitation service 102 can generate a template that includes both the information required from a member 118 to plan the experience on behalf of the member 118 and a skeleton of what the proposal for the experience recommendation will look like when presented to the member 118. This may make it easier for a representative to complete definition of task(s) associated with the experience. In some instances, the template may incorporate data from various sources that provide high-quality recommendations, such as travel guides, food and restaurant guides, reputable publications, and the like. If the representative selects a particular template for creation of a task associated with an experience, the task recommendation system 112 can automatically identify the portions of the member profile that may be used to populate the template. For example, if the representative selects a template corresponding to an evening out at a restaurant, the task recommendation system 112 may automatically process the member profile to identify any information corresponding to the member's dietary preferences and restrictions that may be used to populate one or more fields within the task template selected by the representative


In some examples, the task recommendation system 112, periodically (e.g., monthly, bi-monthly, etc.) or in response to a triggering event (e.g., a set number of tasks are performed, member request, etc.), selects a set of experiences that may be recommended to the member 118. For instance, similar to the identification of tasks that may be recommended to the member 118, the task recommendation system 112 may use at least the set of available experiences and the member's preferences from the user datastore 108 as input to a machine-learning algorithm or artificial intelligence to obtain, as output, a set of experiences that may be recommended to the member 118. The task recommendation system 112, in some instances, may present this set of experiences to the member 118 over the chat session on behalf of the representative or through task-specific interfaces corresponding to each of the set of experiences. Each experience recommendation may specify a description of the experience and any associated costs that may be incurred by the member 118. Further, for each experience recommendation presented, the task recommendation system 112 may provide a button or other GUI element that may be selectable by the member 118 to request curation of the experience for the member 118.


If the member 118 selects a particular experience recommendation corresponding to an experience that the member 118 would like to have curated on its behalf, the task recommendation system 112 or representative may generate one or more new tasks related to the curation of the selected experience recommendation. For instance, if the member 118 selects an experience recommendation related to a weekend picnic, the task recommendation system 112 or representative may add a new task to the member's tasks list such that the member 118 may evaluate the progress in completion of the task. Further, the representative may ask the member 118 particularized questions related to the selected experience to assist the representative in determining a proposal for completion of tasks associated with the selected experience. For example, if the member 118 selects an experience recommendation related to the curation of a weekend picnic, the representative may ask the member 118 as to how many adults and children will be attending, as this information may guide the representative in curating the weekend picnic for all parties and to identify appropriate third-party services 116 and possible venues for the weekend picnic. The responses provided by the member 118 may be used to update the member profile such that, for similar experiences and related tasks, these responses may be used to automatically obtain information that may be used for curation of the experience.


Similar to the process described above for the completion of a task for the benefit of a member 118, the representative can generate one or more proposals for curation of a selected experience. For instance, the representative may generate a proposal that provides, amongst other things, a list of days/times for the experience, a list of possible venues for the experience (e.g., parks, movie theaters, hiking trails, etc.), a list of possible meal options and corresponding prices, options for delivery or pick-up of meals, and the like. The various options in a proposal may be presented to the member 118 over a chat session or communication session specific to the experience (e.g., a task-specific interface corresponding to the particular experience) and via the application or web portal provided by the task-facilitation service 102. Based on the member responses to the various options presented in the proposal, the representative may indicate that it is starting the curation process for the experience. Further, the representative may provide information related to the experience that may be relevant to the member 118. For example, if the member 118 has selected an option to pick-up food from a selected restaurant for a weekend picnic, the representative may provide detailed driving directions from the member's home to the restaurant to pick up the food (this would not be presented if the member 118 had selected a delivery option), detailed driving directions from the restaurant to the selected venue, parking information, a listing of the food that is to be ordered, and the total price of the food order. The member 118 may review this proposal and may determine whether to accept the proposal. If the member 118 accepts the proposal, the representative may proceed to perform various tasks to curate the selected experience.


Once a member 118 has selected a particular proposal for a particular task, or has selected a button or other GUI element associated with the particular task to indicate that it wishes to defer to the representative for performance of the task, if the task is to be completed using third-party services 116, the representative may coordinate with one or more third-party services 116 for completion of the task for the benefit of the member 118. For instance, the representative may utilize a task coordination system 114 of the task-facilitation service 102 to identify and contact one or more third-party services 116 for performance of a task. As noted above, the task coordination system 114 may include a resource library that includes detailed information related to third-party services 116 that may be available for the performance of tasks on behalf of members of the task-facilitation service 102. For example, an entry for a third-party service in the resource library may include contact information for the third-party service, any available price sheets for services or goods offered by the third-party service, listings of goods and/or services offered by the third-party service, hours of operation, ratings or scores according to different categories of members, and the like. The representative may query the resource library to identify the one or more third-party services that are to perform the task and determine an estimated cost for performance of the task. Further, the representative may contact the one or more third-party services 116 to coordinate performance of the task for the benefit of the member 118.


In some instances, the resource library may further include detailed information corresponding to other services and other entities that may be associated or affiliated with the task-facilitation service 102 and that are contracted to perform various tasks on behalf of members of the task-facilitation service 102. These other services and other entities may provide their services or goods at rates agreed upon with the task-facilitation service 102. If the representative selects any of these other services or other entities from the resource library, the representative may be able to determine the particular parameters (e.g., price, availability, time required, etc.) for completion of the task.


In some instances, for a given task, the representative (such as through a web portal or application provided by the task-facilitation service) can query the resource library to identify one or more third-party services and other services/entities affiliated with the task-facilitation service 102 from which to solicit quotes for completion of the task. For instance, for a newly created task, the representative may transmit a job offer to these one or more third-party services and other services/entities. The job offer may indicate various characteristics of the task that is to be completed (e.g., scope of the task, general geographic location of the member 118 or of where the task is to be completed, desired budget, etc.). Through an application or web portal provided by the task-facilitation service 102, a third-party service or other service/entity may review the job offer and determine whether to submit a quote for completion of the task or to decline the job offer. If a third-party service or other service/entity opts to reject the job offer, the representative may receive a notification indicating that the third-party service or other service/entity has declined the job offer. Alternatively, if a third-party service or other service/entity opts to bid to perform the task (e.g., accepts the job offer), the third-party service or other service/entity may submit a quote for completion of the task. This quote may indicate the estimated cost for completion of the task, the time required for completion of the task, the estimated date in which the third-party service or other service/entity is available to begin performance of the task, and the like.


The representative may use any provided quotes from the third-party services and/or other services/entities to generate different proposals for completion of the task. These different proposals may be presented to the member 118 through the task-specific interface corresponding to the particular task that is to be completed. If the member 118 selects a particular proposal from the set of proposals presented through the task-specific interface, the representative may transmit a notification to the third-party service or other service/entity that submitted the quote associated with the selected proposal to indicate that it has been selected for completion of the task. The representative may utilize a task coordination system 114 to coordinate with the third-party service or other service/entity for completion of the task.


In some instances, if the task is to be completed by the representative 106, the representative 106 may utilize the task coordination system 115 of the task-facilitation service 102 to identify any resources that may be utilized by the representative 106 for performance of the task. The resource library may include detailed information related to different resources available for performance of a task. As an illustrative example, if the representative 106 is tasked with purchasing a set of filters for the member's home, the representative 106 may query the resource library to identify a retailer that may sell filters of a quality and/or price that is acceptable to the member 118 and that corresponds to the proposal accepted by the member 118. Further, the representative 106 may obtain, from the user datastore 108, available payment information of the member 118 that may be used to provide payment for any resources required by the representative 106 to complete the task. Using the aforementioned example, the representative 106 may obtain payment information of the member 118 from the user datastore 108 to complete a purchase with the retailer for the set of filters that are to be used in the member's home.


In some examples, the task coordination system 114 uses a machine-learning algorithm or artificial intelligence to select one or more third-party services 116 and/or resources on behalf of the representative for performance of a task. For instance, the task coordination system 114 may utilize the selected proposal or parameters related to the task (e.g., if the member 118 has deferred to the representative for determination of how the task is to be performed), as well as historical task data from the task datastore 110 corresponding to similar tasks as input to the machine-learning algorithm or artificial intelligence. The machine-learning algorithm or artificial intelligence may produce, as output, a listing of one or more third-party services 116 that may perform the task with a high probability of satisfaction to the member 118. If the task is to be performed by the representative 106, the machine-learning algorithm or artificial intelligence may produce, as output, a listing of resources (e.g., retailers, restaurants, brands, etc.) that may be used by the representative 106 for performance of the task with a high probability of satisfaction to the member 118. As noted above, the resource library may include, for each of the third-party services 116, a rating or score associated with the satisfaction with the third-party service as determined by members of the task-facilitation service 102. Further, the resource library may include a rating or score associated with the satisfaction with each resource (e.g., retailers, restaurants, brands, goods, materials, etc.) as determined by members of the task-facilitation service 102. For example, when a task is completed, the representative may prompt the member 118 to provide a rating or score with regard to the performance of a third-party service in completing a task for the benefit of the member 118. As another example, if the task is performed by the representative 106, the representative may prompt the member 118 to provide a rating or score with regard to the representative's performance and to the resources utilized by the representative for completion of the task. Each rating or score is associated with the member that provided the rating or score, such that the task coordination system 114 may determine, using the machine-learning algorithm or artificial intelligence, a likelihood of satisfaction for performance of a task based on the performance of the third-party service or of the satisfaction with the resources utilized by representatives with regard to similar tasks for similarly-situated members. The task coordination system 114 may generate a listing of recommended third-party services 116 and/or resources for performance of a task, whereby the listing may be ranked according to the likelihood of satisfaction (e.g., score or other metric) assigned to each identified third-party service and/or resource.


In some instances, if the task cannot be completed by the third-party service or other service/entity according to the estimates provided in the selected proposal, the member 118 may be provided with an option to cancel the particular task or otherwise make changes to the task. For instance, if the estimated cost for performance of the task exceeds the maximum amount specified in the proposal, the member 118 may ask the representative to find an alternative third-party service or other service/entity for performance of the task within the budget specified in the proposal. Similarly, if the timeframe for completion of the task is not within the timeframe indicated in the proposal, the member 118 can ask the representative to find an alternative third-party service or other service/entity for performance of the task within the original timeframe. The member's interventions may be recorded by the task recommendation system 112 and the task coordination system 114 to retrain their corresponding machine-learning algorithms or artificial intelligence to better identify third-party services 116 or other services/entities that may perform tasks within the defined proposal parameters.


In some examples, once the representative has contracted with one or more third-party services 116 or other services/entities for performance of a task, the task coordination system 114 may monitor performance of the task by these third-party services 116 or other services/entities. For instance, the task coordination system 114 may record any information provided by the third-party services 116 or other services/entities with regard to the timeframe for performance of the task, the cost associated with performance of the task, any status updates with regard to performance of the task, and the like. The task coordination system 114 may associate this information with the data record in the task datastore 110 corresponding to the task being performed. Status updates provided by third-party services 116 or other services/entities may be provided automatically to the member 118 via the application or web portal provided by the task-facilitation service 102 and to the representative.


In some examples, if the task is to be performed by the representative 106, the task coordination system 114 can monitor performance of the task by the representative 106. For instance, the task coordination system 114 may monitor, in real-time, any communications between the representative 106 and the member 118 regarding the representative's performance of the task. These communications may include messages from the representative 106 indicating any status updates with regard to performance of the task, any purchases or expenses incurred by the representative 106 in performing the task, the timeframe for completion of the task, and the like. The task coordination system 114 may associate these messages from the representative 106 with the data record in the task datastore 110 corresponding to the task being performed.


In some instances, the representative may automatically provide payment for the services and/or goods provided by the one or more third-party services 116 on behalf of the member 118 or for purchases made by the representative for completion of a task. For instance, during an onboarding process, the member 118 may provide payment information (e.g., credit card numbers and associated information, debit card numbers and associated information, banking information, etc.) that may be used by a representative to provide payment to third-party services 116 or for purchases to be made by the representative 106 for the benefit of the member 118. Thus, the member 118 may not be required to provide any payment information to allow the representative 106 and/or third-party services 116 to initiate performance of the task for the benefit of the member 118. This may further reduce the cognitive load on the member 118 to manage performance of a task.


As noted above, once a task has been completed, the member 118 may be prompted to provide feedback with regard to completion of the task. For instance, the member 118 may be prompted to provide feedback with regard to the performance and professionalism of the selected third-party services 116 in performance of the task. Further, the member 118 may be prompted to provide feedback with regard to the quality of the proposal provided by the representative and as to whether the performance of the task has addressed the underlying issue associated with the task. Using the responses provided by the member 118, the task-facilitation service 102 may train or otherwise update the machine-learning algorithms or artificial intelligence utilized by the task recommendation system 112 and the task coordination system 114 to provide better identification of tasks, creation of proposals, identification of third-party services 116 or other services/entities for completion of tasks for the benefit of the member 118 and other similarly-situated members, identification of resources that may be provided to the representative 106 for performance of a task for the benefit of the member 118, and the like.


It should be noted that for the processes described herein, various operations performed by the representative 106 may be additionally, or alternatively, performed using one or more machine-learning algorithms or artificial intelligence. For example, as the representative 106 performs or otherwise coordinates performance of tasks on behalf of a member 118 over time, the task-facilitation service 102 may continuously and automatically update the member profile according to member feedback related to the performance of these tasks by the representative 106 and/or third-party services 116. In some examples, the task recommendation system 112, after a member's profile has been updated over a period of time (e.g., six months, a year, etc.) or over a set of tasks (e.g., twenty tasks, thirty tasks, etc.), may utilize a machine-learning algorithm or artificial intelligence to automatically and dynamically generate new tasks based on the various attributes of the member's profile (e.g., historical data corresponding to member-representative communications, member feedback corresponding to representative performance and presented tasks/proposals, etc.) with or without representative interaction. The task recommendation system 112 may automatically communicate with the member 118 to obtain any additional information required for new tasks and automatically generate proposals that may be presented to the member 118 for performance of these tasks. The representative 106 may monitor communications between the task recommendation system 112 and the member 118 to ensure that the conversation maintains a positive polarity (e.g., the member 118 is satisfied with its interaction with the task recommendation system 112 or other bot, etc.). If the representative 106 determines that the conversation has a negative polarity (e.g., the member 118 is expressing frustration, the task recommendation system 112 or bot is unable to process the member's responses or asks, etc.), the representative 106 may intervene in the conversation. This may allow the representative 106 to address any member concerns and perform any tasks on behalf of the member 118.


Thus, unlike automated customer service systems and environments, wherein these systems and environment may have little to no knowledge of the users interacting with agents or other automated systems, the task recommendation system 112 can continuously update the member profile to provide up-to-date historical information about the member 118 based on the member's automatic interaction with the system or interaction with the representative 106 and on the tasks performed on behalf of the member 118 over time. This historical information, which may be automatically and dynamically updated as the member 118 or the system interacts with the representative 106 and as tasks are devised, proposed, and performed for the member 118 over time, may be used by the task recommendation system 112 to anticipate, identify, and present appropriate or intelligent responses to member 118 queries, needs, and/or goals.



FIG. 2 shows an illustrative example of an environment in which task-related data is collected and aggregated from a member area to identify one or more tasks that can be recommended to the member for performance by a representative and/or third-party services in accordance with aspects of the present disclosure. In the environment 200, a member, via a computing device 120 (e.g., laptop computer, smartphone, etc.), may transmit task-related data to the representative 106 assigned to the member to identify one or more tasks that may be performed for the benefit of the member. For example the member can manually enter one or more tasks that the member would like to delegate to the representative 106 for performance. The task-facilitation service 102 may provide, to the member and via an application provided by the task-facilitation service 102, an option for manual entry 204 of a task that may be delegated to the representative 106 or that may otherwise be added to the member's list of tasks.


If the member selects an option for manual entry 204 of a task, the task-facilitation service 102 may provide, via an interface of the application or web portal, a task template through which the member may enter various details related to the task. The task template may include various fields through which the member may provide a name for the task, a description of the task (e.g., “I need to have my gutters cleaned before the upcoming storm,” “I'd like to have painters touch up my powder room,” etc.), a timeframe for performance of the task (e.g., a specific deadline date, a date range, a level of urgency, etc.), a budget for performance of the task (e.g., no budget limitation, a specific maximum amount, etc.), and the like.


In some instances, if the member selects an option for manual entry 304 of a task, the task-facilitation service 102 may provide the member with different task templates that may be used to generate a new task. As noted above, the task-facilitation service may maintain a resource library that serves as a repository for different task templates corresponding to different task categories (e.g., vehicle maintenance tasks, home maintenance tasks, family-related event tasks, care giving tasks, experience-related tasks, etc.). A task template may include a plurality of task definition fields that may be used to define a task that may be performed for the benefit of the member. For example, the task definition fields corresponding to a vehicle maintenance task may be used to define the make and model of the member's vehicle, the age of the vehicle, information corresponding to the last time the vehicle was maintained, any reported accidents associated with the vehicle, a description of any issues associated with the vehicle, and the like. Thus, each task template maintained in the resource library may include fields that are specific to the task category associated with the task template.


Through the resource library, the member may evaluate each of the available task templates to select a particular task template that may be closely associated with the new task the member wishes to create. Once the member has selected a particular task template, the member may populate one or more task definition fields that may be used to define a task that may be performed for the benefit of the member. These fields may be specific to the task category associated with the task template. In some instances, based on the selected task template, the task-facilitation service 102 may automatically populate one or more task definition fields based on information specified within the member profile, as described above.


In some examples, the task template provided to the member may be tailored specifically according to the characteristics of the member identified by the task-facilitation service 102. As noted above, the task-facilitation service 102, during a member onboarding process, may generate a member profile or model for the member that may be used to identify and recommend tasks and proposals to the member over time. The member profile or model may define a set of attributes of the member that may be used by a representative 106 to determine how best to approach the member in conversation, in recommending tasks and proposals to the member, and in performance of the tasks for the benefit of the member. These attributes may include a measure of member behavior or preference in delegating certain categories of tasks to others or in performing certain categories of tasks itself. These member attributes may indicate whether the member is concerned with budgets, with brand recognition, with reviews (e.g., restaurant reviews, product reviews, etc.), with punctuality, with speed of response, and the like. Based on these member attributes, the task-facilitation service 102 may omit particular fields from the task template. For example, if a member attribute specifies that the member is not concerned with budgets for completion of tasks, the task-facilitation service 102 may omit a field from the task template corresponding to the member's budget for the task. As another illustrative example, if the task-facilitation service 102 determines that the member has a preference for either high-end or top-rated brands for performance of its tasks, the task-facilitation service 102 may omit one or more fields corresponding to selection or identification of brands for performance of the task, as the task-facilitation service 102 may utilize a resource library to identify high-end or top-rated brands for the performance of the task.


If the member submits, via the computing device 120 or through an interface provided by the task-facilitation service 102, a task template corresponding to a task that is to be performed for the benefit to the member, the representative 106 assigned to the member may obtain and evaluate the completed task template to determine how best to perform the task for the benefit of the member. For instance, the representative 106 may evaluate the completed task template and generate a new task for the member corresponding to the task-related details provided by the completed task template. Further, based on the representative's knowledge of the member (e.g., from interaction with the member, from the member profile, etc.), the representative 106 may determine whether to prompt the member for additional information that may be used to determine how best to perform the task. For instance, if the member has indicated that the member wants their gutters cleaned but has not indicated when the gutters should be cleaned via the completed task template, the representative 106 may communicate with the member via an active communication session to inquire as to the timeframe for cleaning of the gutters. As another example, if the member has submitted a task without a particular budget for performance of the task, and the representative 106 knows (e.g., based on the member profile, personal knowledge of the member, etc.) that the member is budget-conscious, the representative 106 may communicate with the member to determine what the budget should be for performance of the task. Ani information obtained may be used to supplement the member profile such that, for future tasks, this newly obtained information may be automatically retrieved from the member profile without requiring additional prompts to the member.


In some examples, a member can submit a request to the representative 106 to generate a project for which one or more tasks may be determined by the representative 106 and/or by the task recommendation system 112 or that otherwise may include one or more tasks that are to be completed for the project. For example, via the chat session established between the member and the representative 106 assigned to the member, the member may indicate that it would like to initiate a project. As an illustrative example, a member may transmit a message to the representative 106 that the member would like help in planning a move to Denver in August. In response to this message, the representative 106 may identify one or more tasks that may be involved with this project (e.g., move to Denver) and generate these one or more tasks for presentation to the member. For instance, the representative 106 may generate tasks including, but not limited to, defining a moving budget, finding a moving company, purging any unwanted belongings, coordinating utilities at the present location and at the new location, and the like. These tasks may be presented to the member via an interface specific to the project to allow the member to evaluate each of these tasks associated with the project and coordinate with the representative 106 to determine how each of these tasks may be performed (e.g., the member performs certain tasks itself, the member delegates certain tasks to the representative, the member defines parameters for performance of the tasks, etc.).


If the member requests creation of a project that includes one or more tasks that are to be performed as part of the project, an interface specific to the project may be created. The project interface may include links or other graphical user interface (GUI) elements corresponding to each of the tasks associated with the project. Selection of a particular link or other GUI element corresponding to a particular task associated with the project may cause the task-facilitation service 102 to present an interface specific to the particular task. Through this interface, the member may communicate with the representative 106 to exchange messages related to the particular task, to review proposals related to the particular task, to monitor performance of the particular task, and the like


In some examples, messages exchanged between the member and the representative 106 may be processed by the task recommendation system 112 to identify potential projects and/or tasks that may be recommended to the representative 106 for presentation to the member. As noted above, the task recommendation system 112 may utilize NLP or other artificial intelligence to evaluate exchanged messages or other communications from the member to identify possible tasks that may be recommended to the member. For instance, the task recommendation system 112 may process any incoming messages from the member using NLP or other artificial intelligence to detect a new project, new task, or other issue that the member would like to have resolved. In some instances, the task recommendation system 112 may utilize historical task data and corresponding messages from a task datastore to train the NLP or other artificial intelligence to identify possible tasks. If the task recommendation system 112 identifies one or more possible projects and/or tasks that may be recommended to the member, the task recommendation system 112 may present these possible tasks to the representative 106, which may select projects and/or tasks that can be shared with the member over the chat session.


In some examples, if the task recommendation system 112 identifies a project that may be proposed to the member based on messages exchanged between the member and the representative 106, the task recommendation system 112 can utilize a resource library maintained by the task-facilitation service 102 to identify one or more tasks associated with the project that may be recommended to the representative 106. For example, if the task recommendation system 112 identifies a project related to the member's indication that it is preparing to move to Denver, the task recommendation system 112 may query the resource library to identify any tasks associated with a move to a new location. In some instances, the query to the resource library may include member attributes from the member profile. This may allow the task recommendation system 112 to identify any tasks that may have been performed or otherwise proposed to similarly situated members (e.g., members in similar geographic locations, members having similar attributes to that of the present member, etc.) for similar projects.


In some examples, the task recommendation system 112 uses a machine-learning algorithm or other artificial intelligence to identify the tasks that may be recommended to the representative 106 for an identified project. For example, the task recommendation system 112 may identify, from the aforementioned resource library, any tasks that may be associated with the identified project. The task recommendation system 112 may process the identified tasks and the members profile using the machine-learning algorithm or other artificial intelligence to determine which of the identified tasks may be recommended to the representative 106 for presentation to the member. Further, the task recommendation system 112 may provide, to the representative 106, any tasks that may need to be performed for the benefit of the member with an option to defer to the representative 106 for completion of the task. For example, if the task recommendation system 112 determines that, based on the member profile, that the member is likely to fully delegate a task to the representative 106 without need to review or provide any other input, the task recommendation system 112 may provide the task to the representative 106 with a recommendation to present an option to the member to defer performance of the task to the representative 106 (such as through a “Run With It” button).


In some instances, the task recommendation system 112 may provide a listing of the set of tasks that may be recommended to the member to the representative 106 for a final determination as to which tasks may be presented to the member via the chat session. As noted above, the task recommendation system 112 can rank the listing of the set of tasks based on a likelihood of the member selecting the task for delegation to the representative for performance and coordination with third-party services 116 or other services/entities affiliated with the task-facilitation service 102. Alternatively, the task recommendation system 112 may rank the listing of the set of tasks based on the level of urgency for completion of each task. For example, if the task recommendation system 112 determines that a task corresponding to the hiring of a moving company is of greater urgency that a task corresponding to the coordination of utilities, the task recommendation system 112 may rank the former task higher than the latter task.


In some examples, if the task recommendation system 112 identifies a project that may be created based on the messages exchanged between the member and the representative 106, and the task recommendation system 112 identifies one or more tasks associated with the identified project, the task recommendation system 112, via the representative 106, may provide the member with a project definition and the tasks associated with the identified project to obtain the member's approval to proceed with the project. For instance, via an application or web portal provided by the task-facilitation service 102 and access through a computing device 120, the member may review the proposed project and the associated tasks to determine whether to proceed with the proposed project. The member may communicate with the representative 106 to further define the project and/or any tasks associated with the project, including defining the scope of the project and of any of the tasks proposed for completion of the project. As an illustrative example, if the representative 106 through a project-specific communications session proposes a project corresponding to the member's upcoming move to Denver and any tasks associated with this proposed project, the member may communicate with the representative 106 to discuss the proposed project and the associated tasks (e.g., inquire about timelines, inquire about budgets, etc.). Based on the member's communications with the representative 106, the representative 106 and/or task recommendation system 112 may identify any questions that may be provided to the member to further define the scope of the project and any associated tasks. For example, the representative 106 may prompt the member to indicate the amount of square footage in their existing home, which may be useful in determining the scope of moving services that may be required for the project corresponding to the upcoming move to Denver. Information obtained through member responses to these prompts may be used to supplement the member profile.


In some examples, once the member has approved a particular project that is to be executed for the benefit of the member, the task recommendation system 112 assigns a priority to the project and the associated tasks based on input from the member (e.g., deadlines, desired priority, etc.). For example, if the member has indicated that the project associated with an upcoming move to Denver is more pressing than projects related to vehicle maintenance, the task recommendation system 112 may prioritize the project associated with the upcoming move to Denver over other projects related to vehicle maintenance. This may cause the application the web portal accessed by the member via the computing device 120 to more prominently display the project related to the upcoming move to Denver over these other projects. In some instances, the priority assigned to a particular project may further be assigned to the tasks associated with the project. For example, the task recommendation system 112 may use the priority of each of the projects created for the member as another factor in ranking the various tasks identified by the representative 106 and/or task recommendation system 112.


Tasks associated with a project may be added to an active queue that may be used by the task recommendation system 112 to determine which tasks a representative 106 may work on for the benefit of the member. For instance, a representative 106 may be presented with a limited set of tasks that the representative 106 based on the prioritization or ranking of tasks performed by the task recommendation system 112. The selection of a limited set of tasks may limit the number of tasks that may be worked on by the representative 106 at any given time, which may reduce the risk to the representative 106 of being overburdened with working on a member's task list.


In some examples, the task-facilitation service 102 can present the member, via the application implemented on a computing device 120 operated by or associated with the member or accessed via a web portal provided by the task-facilitation service 102, a task list corresponding to the member's current and upcoming tasks. The task-facilitation service 102 may provide, via the task list, the status of each task (e.g., created, in-progress, recurring, completed, etc.). In some instances, the task-facilitation service 102 may allow the member to filter tasks as needed such that the member can customize and determine which tasks are to be presented to the member via the application or web portal.


The task-facilitation service 102, in addition to presenting the task list corresponding to the member's current and upcoming tasks, may signal which of these tasks are assigned to the member or to the representative 106. For instance, the task-facilitation service 102 may display an assignment tag to each task presented to the member via the application or web portal. The assignment tag may explicitly indicate whether a corresponding task is assigned to the member or to the representative 106. Additionally, or alternatively, a task may be presented to the member via the application or web portal using color coding, wherein the color used for the task may further indicate whether the task is assigned to the member or to the representative 106. As an illustrative example, if a task is assigned to the representative 106, the task may be presented with a “REPRESENTATIVE” attribute tag and within a task bubble using a shade of orange to further indicate that the task is assigned to the representative 106. Alternatively, if a task is assigned to the member, the task may be presented with a “MEMBER” attribute tag and within a task bubble using a shade of green to further indicate that the task is assigned to the member. It should be noted that while attribute tags and color indicators are used throughout the present disclosure for the purpose of illustration, other assignment indicators may be utilized to differentiate tasks assigned to the member and tasks assigned to the representative 106.


In some examples, the task-facilitation service 102 can provide members, via the application or web portal, with options to obtain more information about specific tasks from the task list. For instance, each task presented via the task list may include an option to obtain more information related to the task. In some examples, if a member selects an option to obtain more information for a particular task, the task-facilitation service 102 can evaluate the member's profile to determine how much information is to be provided to the member without increasing the likelihood of cognitive overload for the member. For instance, if the member has a propensity to delegate tasks to the representative 106 and generally delegates all aspects of a task to the representative 106, the task-facilitation service 102 may provide basic information associated with the task (e.g., short task description, estimated completion time for the task, etc.). However, if the member is more detail oriented and is heavily involved in the completion of tasks, the task-facilitation service 102 may provide more information associated with the task (e.g., detailed task description, steps being performed to complete the task, any budget information for the task, etc.). In some examples, the task-facilitation service 102 can utilize a machine-learning algorithm or artificial intelligence to determine how much information related to a task should be presented to the member 118. For instance, the task-facilitation service 102 may use the member profile and data corresponding to the task as input to the machine-learning algorithm or artificial intelligence. The resulting output may provide a recommendation as to what information regarding the task should be presented to the member. In some instances, the recommendation can be provided to the representative 106, which may evaluate the recommendation and determine what information may be presented to the member for the selected task. When information for a task is provided to the member, the task-facilitation service 102 may monitor member interaction with the representative 106 to identify the member's response to the presentation of the information. The response may be used to further train the machine-learning algorithm or artificial intelligence to provide better recommendations with regard to task information that may be presented to members of the task-facilitation service 102.


In some examples, a member, via a computing device 120, can submit one or more user recordings 206 that may be used to identify tasks that can be performed for the benefit of the member. For instance, a member may upload, to the task-facilitation service 102, one or more digital images of the member area 202 that may be indicative of issues within the member area 202 for which tasks may be created. As an illustrative example, the member may capture an image of a broken baseboard that is in need of repair. As another illustrative example, the member may capture an image of a clogged gutter. The representative 106 may obtain these digital images and manually identify one or more tasks that may be performed to address the issues represented in the uploaded digital images. For instance, if the representative 106 receives a digital image that illustrates a broken baseboard, the representative 106 may generate a new task corresponding to the repair of the broken baseboard. Similarly, if the representative 106 receives a digital image that illustrates a clogged gutter, the representative 106 may generate a task corresponding to the cleaning of the member's gutters.


User recordings 206 may further include audio and/or video recordings within the member area 202 corresponding to possible issues for which tasks may be generated. For instance, the member may utilize their smartphone or other recording device to generate an audio and/or video recording of different portions of the member area 202 to highlight issues that may be used to generate one or more tasks that may be performed to address the issues. As an illustrative example, during a chat session with the representative 106, a member may walk through the member area 202 with their smartphone and record a video highlighting issues that the member would like addressed by the task-facilitation service 102. During this walkthrough of the member area 202, the member may indicate (e.g., by speaking into the smartphone, pointing at issues, etc.) what these issues are and possible instructions or other parameters for addressing these issues (e.g., timeframes, budgets, level of urgency, etc.). Using the example of the broken baseboard described above, the member may record a video highlighting the broken baseboard while indicating “I would like to have this baseboard fixed soon as we're getting ready to sell the house.” This video, thus, may highlight an issue related to a broken baseboard and a level of urgency in having the baseboard repaired within a short timeframe due to the member selling their home.


The member, via the computing device 120, may provide the user recordings 206 to the representative 106, which may review the user recordings 206 to identify any tasks that may be recommended to the member to address any of the issues indicated by the member in the user recordings 206. For instance, the representative 106 may analyze the provided user recordings 206 and identify tasks that may be performed to address any issues identified by the member in the user recordings 206 and/or detected by the representative 106 based on its analysis of the user recordings 206. As an illustrative example, if the member provider a user recordings 206 in which the member indicates that there is a broken baseboard that the member would like repaired, the representative 106 may additionally determine, based on the user recordings 206, that the member's home may have a termite issue (e.g., presence of termites or termite damage in the broken baseboard). As such, the representative 106 may communicate with the member over the chat session to indicate the additional issue and recommend a task to address the additional issue.


In some instances, the representative 106 may prompt the member to generate one or more user recordings 206 (e.g., one or more images, audio segments, video segments, alphanumeric strings, and/or the like) that may be used to assist the representative 106 in defining one or more tasks that may be performed for the benefit of the member. For example, if the member indicates, via the chat session, that it is preparing to move to Denver, the representative 106 may request that the member generate one or more user recordings 206 related to the member area 202 (e.g., home, apartment, etc.) so that the representative 106 may identify tasks that may be associated with this project. For instance, using the user recordings 206 provided by the member, the representative 106 may determine the square footage of the member area 202, identify any special moving requirements for completion of the project (e.g., special moving instructions for fragile items, insurance, etc.), identify any repair or maintenance items that may need to be addressed for the project, and the like. In some instances, the representative 106 may use the user recordings 206 to identify one or more task parameters that may be used in defining a task to be performed for the benefit of the member. For instance, if the member has manually entered a new task related to repairing their broken baseboard, the representative 106 may use any user recordings 206 associated with the broken baseboard to identify the type of baseboard that is to be repaired, the scope of the repair, the timeframe for the repair, and the like.


In some examples, the representative 106 can provide the user recordings 206 submitted by the member to the task recommendation system 112 to identify any projects and/or tasks that may be recommended to the member. As noted above, the task recommendation system 112 may use member-specific data (e.g., characteristics, demographics, location, historical responses to recommendations and proposals, etc.), data corresponding to similarly-situated members, and historical data corresponding to tasks previously performed for the benefit of the member and the other similarly-situated members as input to a machine-learning algorithm or artificial intelligence to identify a set of tasks that may be recommended to the member for performance. Further, the task recommendation system 112 may utilize computer vision, NLP, and/or other artificial intelligence to process the user recordings 206 provided by the member to identify any potential tasks that may be recommended to the member. For example, if the task recommendation system 112 (using computer vision or other artificial intelligence to process video recordings) detects that, in addition to a damaged baseboard, the member may be experiencing a termite issue within the baseboard, the task recommendation system 112 may recommend a task corresponding to the extermination of the detected termites.


As another example, if the member, in a user recordings 206, states “I have thought about painting this room but I just haven't found the time to do it,” the task recommendation system 112 may utilize NLP or other artificial intelligence to identify a possible task related to painting of the identified room. Using the user recordings 206, the task recommendation system 112 may further utilize computer vision or other artificial intelligence to evaluate the identified room (e.g., square footage, furniture in the room, lighting in the room, etc.) to identify one or more parameters associated with the painting task (e.g., amount of paint that may be required, the colors that may be recommended to the member, a possible budget for completion of the painting task, etc.). Thus, the task recommendation system 112 may utilize computer vision, NLP, and/or other machine-learning algorithms or artificial intelligence to process user recordings 206 to identify possible tasks and parameters associated with these identified possible tasks.


In some examples, the task-facilitation service 102 can also obtain task-related data from various IoT devices and/or sensors 208 within the member area 202. For instance, if the member maintains a smart thermostat within the member area 202 that monitors performance of a member's heating, ventilation, and air conditioning (HVAC) system, the smart thermostat may transmit data to the task-facilitation service 102 related to the performance and maintenance of the HVAC system. For example, the smart thermostat may transmit a notification to the task-facilitation service 102 indicating that it is recommended for the member to change the air filters within the member area 202. As another example, the smart thermostat may transmit a notification to indicate a fault or other issue related to the HVAC system (e.g., furnace malfunction, compressor failure, etc.). Further, the smart thermostat may transmit data related to the environment in the member area 202 (e.g., temperature readings, humidity level readings, energy usage readings, etc.).


The task-facilitation service 102 may utilize the task-related data from the various IoT devices and/or sensors 208 to identify any potential tasks that may be recommended to the member and/or to support existing tasks (e.g., recurring tasks related to maintaining a temperature in the member area 202, tasks related to maintaining a particular light level within a room, etc.). For instance, if the task-facilitation service 102 receives a notification from an IoT device within the member area 202 that it is time for the member to change out the air filters for the member's HVAC system, the task-facilitation service 102, via the task recommendation system 112, may automatically generate a task recommendation that may be presented to the representative 106 for the replacement of the member's existing air filters. As another example, if the task-facilitation service 102 receives a notification from one or more IoT devices and/or sensors 208 that the member's HVAC system has failed (e.g., furnace malfunction, compressor failure, etc.), the task recommendation system 112 may automatically generate a task recommendation that may be presented to the representative 106 for repairing the member's HVAC system. The presentation of the task and corresponding parameters to the member may be determined by the representative 106 and/or the task recommendation system 112 as described above.


In some examples, the task-facilitation service 102 implements a data model that may be used to enable communication between the various IoT devices and/or sensors 208 within the member area 202, applications utilized by the member (e.g., smartphone applications, etc.), and the task-facilitation service 102. The data model may provide a common data representation among the various IoT devices and/or sensors 208, the applications utilized by the member, and the task-facilitation service 102. For instance, a light fixture, a window shade, a smoke detector, and a television within the member area 202 may all include an ambient light sensor. Each of these devices may utilize the same data representation of the sensor readings, which may enable the task-facilitation service 102, via an automated lighting adjustment algorithm, to process these sensor readings from all devices without concern about device type. Further, the addition of any new device may enable for the contribution to the input without any changes to the algorithm.


In some examples, the various IoT devices and/or sensors 208, as well as all other devices and services in the ecosystem (e.g., the member's mobile devices, the task-facilitation service 102, etc.) utilize the data model to ensure that there is no need for data translation between any device communications. As an illustrative example, a member may utilize an application on its mobile device to communicate with an IoT device over a local network or via the task-facilitation service 102 to control the IoT device from any location. The IoT devices and/or sensors 208, applications implemented on a member's computing device 120 to control these IoT devices and/or sensors 208, and the task-facilitation service 102 may thus rely on the data model to enable communications amongst these elements of the ecosystem.


In some examples, the task-facilitation service 102 can use the data model to assign each IoT device and/or sensor 208, application, or any other actor (e.g., cloud service hosting a feature, etc.) with a unique identifier. The task-facilitation service 102 may utilize these unique identifiers to generate logical groupings of devices to facilitate certain features. These logical groupings may be generated based on location (e.g., bedroom, kitchen, etc.) and/or space (e.g., indoor, outdoor, vehicular, etc.). These groupings may enable group control. For instance, if a member submits a task to prepare a bedroom for sleep, the task-facilitation service 102 may identify the devices associated with the bedroom and perform any operations defined by the member for sleep preparation. These groups may further enable data analysis, whereby the task-facilitation service 102 may use readings from devices in the logical grouping to make a determination about the immediate environment. For example, based on readings from devices in the member's living room, the task-facilitation service 102 may determine whether it is likely that a window is open, affecting the performance of the member's HVAC system.


In some examples, the task-facilitation service 102, via the data model, can dictate that all published data is to include metadata that specifies the time of data generation. This may ensure that any delay in publication of data does not skew any algorithms that rely on this data. For example, if a device generating occupancy data loses network connectivity for a brief period, data generated during this brief period may include, as metadata, a timestamp corresponding to the time that the occupancy events occurred. The data may be preserved and published as soon as connectivity is restored. This allows for the consumer of this data to determine when these occupancy events occurred and react accordingly.


In some examples, the data model implemented by the task-facilitation service 102 also provides a sequential numbering system for all published data. This sequential numbering system may provide a mechanism to detect any loss of data and retrieve any lost data. For instance, if data is lost in transit, the consumer of the data may be able to detect a gap in the numbering, which may denote the data loss. The data model may provide a protocol for the consumer of data to request republishing of any missing data. For instance, the consumer may submit a request to an IoT device and/or sensor to retrieve any data having numbers corresponding to the gap in data obtained by the consumer.


In some examples, a representative 106 can generate one or more proposals for completion of any given task presented to the member via the application or web portal provided by the task-facilitation service 102. A proposal may include one or more options presented to a member that may be created and/or collected by a representative 106 while researching a given task. In some instances, a representative 106 may be provided with one or more templates that may be used to generate these one or more proposals. For example, the task-facilitation service 102 may maintain proposal templates for different task types, whereby a proposal template for a particular task type may include various data fields associated with the task type. As an illustrative example, for a task associated with planning a birthday party, a representative 106 may utilize a proposal template corresponding to event planning. The proposal template corresponding to event planning may include data fields corresponding to venue options, catering options, entertainment options, and the like.


In some examples, the data fields within a proposal template can be toggled on or off to provide a representative 106 with the ability to determine what information is presented to the member in a proposal. For example, for a task associated with renting a balloon jump house for a party, a corresponding proposal template may include data fields corresponding to the location/address of a rental business, the business hours and availability of the rental business, an estimated cost, ratings/reviews for the rental business, and the like. The representative 106, based on its knowledge of the member's preferences, may toggle on or off any of these data fields. For example, if the representative 106 has established a relationship with the member whereby the representative 106, with high confidence, knows that the member trusts the representative 106 in selecting reputable businesses for its tasks, the representative 106 may toggle off a data field corresponding to the ratings/reviews for corresponding businesses from the proposal template. Similarly, if the representative 106 knows that the member is not interested in the location/address of the rental business for the purpose of the proposal, the representative 106 may toggle off the data field corresponding to the location/address for corresponding businesses from the proposal template. While certain data fields may be toggled off within the proposal template, the representative 106 may complete these data fields to provide additional information that may be used by the task-facilitation service 102 to supplement a resource library of proposals as described in greater detail herein.


In some examples, the task-facilitation service 102 utilizes a machine-learning algorithm or artificial intelligence to generate recommendations for the representative 106 regarding data fields that may be presented to the member in a proposal. For example, the task-facilitation service 102 may use, as input to the machine-learning algorithm or artificial intelligence, a member profile or model associated with the member, historical task data for the member (e.g., previously completed tasks, tasks for which proposals have been provided, etc.), and information corresponding to the task for which a proposal is being generated (e.g., a task type or category, etc.). The output of the machine-learning algorithm or artificial intelligence may define which data fields of a proposal template should be toggled on or off. For example, if the task-facilitation service 102 determines, based on an evaluation of the member profile or model, historical task data for the member, and the information corresponding to the task for which the proposal is being generated, that the member is likely not interested in viewing information related to the ratings/reviews for the business nor the location/address of the business, the task-facilitation service 102 may automatically toggle off these data fields from the proposal template. The task-facilitation service 102, in some instances, may retain the option to toggle on these data fields in order to provide the representative 106 with the ability to present these data fields to the member in a proposal. For example, if the task-facilitation service 102 has automatically toggled off a data field corresponding to the estimated cost for a balloon jump house rental from a particular business, but the member has expressed an interest in the possible cost involved, the representative 106 may toggle on the data field corresponding to the estimated cost.


In some instances, when a proposal is presented to a member, the task-facilitation service 102 may monitor member interaction with the representative 106 and with the proposal to obtain data that may be used to further train the machine-learning algorithm or artificial intelligence. For example, if a representative 106 presents a proposal without any ratings/reviews for a particular business based on the recommendation generated by the machine-learning algorithm or artificial intelligence, and the member indicates (e.g., through messages to the representative 106, through selection of an option in the proposal to view ratings/reviews for the particular business, etc.) that they are interested in ratings/reviews for the particular business, the task-facilitation service may utilize these feedback to further train the machine-learning algorithm or artificial intelligence to increase the likelihood of recommending presentation of ratings/reviews for businesses selected for similar tasks or task types.


In some examples, the task-facilitation service 102 maintains, via the task coordination system 114, a resource library that may be used to automatically populate one or more data fields of a particular proposal template. The resource library may include entries corresponding to businesses and/or products previously used by representatives for proposals related to particular tasks or task types or that are otherwise associated with particular tasks or task types. For instance, when a representative 106 generates a proposal for a task related to repairing a roof near Lynnwood, Wash., the task coordination system 114 may obtain information associated with the roofer selected by the representative 106 for the task. The task coordination system 114 may generate an entry corresponding to the roofer in the resource library and associate this entry with “roof repair” and “Lynnwood, Wash.” Thus, if another representative receives a task corresponding to repairing a roof for a member located near Lynnwood, Wash. (e.g., Everett, Wash.), the other representative may query the resource library for roofers near Lynnwood, Wash. The resource library may return, in response to the query, an entry corresponding to the roofer previously selected by the representative 106. If the other representative selects this roofer, the task coordination system 114 may automatically populate the data fields of the proposal template with the information available for the roofer from the resource library.


In some examples, the task-facilitation service 102 can utilize a machine learning algorithm or artificial intelligence to automatically process the member profile associated with the member 118, the selected proposal template, and the resource library to dynamically identify any resources that may be relevant for preparation of the proposal. The machine learning algorithm or artificial intelligence may be trained using supervised training techniques. For instance, a dataset of sample member profiles, proposal templates and/or tasks, available resources (e.g., entries corresponding to third-party services, other services/entities, retailers, goods, etc.), and completed proposals can be selected for training of the machine learning model. The machine learning model may be evaluated to determine, based on the sample inputs supplied to the machine learning model, whether the machine learning model is identifying appropriate resources that may be used to automatically complete a proposal template for presentation of a proposal. Based on this evaluation, the machine learning model may be modified to increase the likelihood of the machine learning model generating the desired results. The machine learning model may further be dynamically trained by soliciting feedback from representatives and members of the task-facilitation service with regard to the identification of resources from the resource library and to the proposals automatically generated by the task-facilitation service 102 using these resources. For instance, if the task-facilitation service 102 generates, based on the member profile associated with the member 118 and the selected resources from the resource library, a proposal that is not appealing to the member 118 (e.g., the proposal is not relevant to the task, the proposal corresponds to resources that are not available to the member 118, the proposal includes resources that the member 118 disapproves of, etc.), the task-facilitation service 102 may update the machine learning algorithm or artificial intelligence based on this feedback to reduce the likelihood of similar resources and proposals being generated for similarly-situated members.


The representative 106, via a proposal template, may generate additional proposal options for businesses and/or products that may be used for completion of a task. For instance, for a particular proposal, the representative 106 may generate a recommended option, which may correspond to the businesses or products that the representative 106 is recommending for completion of a task. Additionally, in order to provide the member with additional options or choices, the representative 106 can generate additional options corresponding to other businesses or products that may complete the task. In some instances, if the representative 106 knows that the member has delegated the decision-making with regard to completion of a task to the representative 106, the representative 106 may forego generation of additional proposal options outside of the recommended option. However, the representative 106 may still present, to the member, the selected proposal option for completion of the task in order to keep the member informed about the status of the task.


In some examples, once the representative 106 has completed defining a proposal via use of a proposal template, the task-facilitation service 102 may present the proposal to the member through the application or web portal provided by the task-facilitation service 102. In some instances, the representative 106 may transmit a notification to the member to indicate that a proposal has been prepared for a particular task and that the proposal is ready for review via the application or web portal provided by the task-facilitation service 102. The proposal presented to the member may indicate the task for which the proposal was prepared, as well as an indication of the one or more options that are being provided to the member. For instance, the proposal may include links to the recommended proposal option and to the other options (if any) prepared by the representative 106 for the particular task. These links may allow the member to navigate amongst the one or more options prepared by the representative 106 via the application or web portal.


For each proposal option, the member may be presented with information corresponding to the business (e.g., third-party service or other service/entity associated with the task-facilitation service 102) or product selected by the representative 106 and corresponding to the data fields selected for presentation by the representative 106 via the proposal template. For example, for a task associated with a roof inspection at the member's home, the representative 106 may present for a particular roofer (e.g., proposal option) one or more reviews or testimonials for the roofer, the rate and availability for the roofer subject to the member's task completion timeframe (if any), the roofer's website, the roofer's contact information, any estimated costs, and an indication of next steps for the representative 106 should the member select this particular roofer for the task. In some instances, the member may select what details or data fields associated with a particular proposal are presented via the application or web portal. For example, if the member is presented with the estimated total for each proposal option and the member is not interested in reviewing the estimated total for each proposal option, the member may toggle off this particular data field from the proposal via the application or web portal. Alternatively, if the member is interested in reviewing additional detail with regard to each proposal option (e.g., additional reviews, additional business or product information, etc.), the member may request this additional detail to be presented via the proposal.


In some examples, based on member interaction with a provided proposal, the task-facilitation service 102 can further train a machine-learning algorithm or artificial intelligence used to determine or recommend what information should be presented to the member and to similarly-situated members for similar tasks or task types. As noted above, the task-facilitation service 102 may use a machine-learning algorithm or artificial intelligence to generate recommendations for the representative 106 regarding data fields that may be presented to the member in a proposal. The task-facilitation service 102 may monitor or track member interaction with the proposal to determine the member's preferences regarding the information presented in the proposal for the particular task. Further, the task-facilitation service 102 may monitor or track any messages exchanged between the member and the representative 106 related to the proposal to further identify the member's preferences. For example, if the member sends a message to the representative 106 indicating that the member would like to see more information with regard to the services offered by each of the businesses specified in the proposal, the task-facilitation service 102 may determine that the member may want to see additional information with regard to the services offered by businesses associated with the particular task or task type. In some instances, the task-facilitation service 102 may solicit feedback from the member with regard to proposals provided by the representative 106 to identify the member's preferences. This feedback and information garnered through member interaction with the representative 106 regarding the proposal and with the proposal itself may be used to retrain the machine-learning algorithm or artificial intelligence to provide more accurate or improved recommendations for information that should be presented to the member and to similarly situated members in proposals for similar tasks or task types.


In some instances, each proposal presented to the member may specify any costs associated with each proposal option. These costs may be presented in different formats based on the requirements of the associated task or project. For instance, if a task or project corresponds to the purchase of an airline ticket, each proposal option for the corresponding proposal may present a fixed price for the airline ticket. As another illustrative example, a representative 106 can provide, for each proposal option, a budget for completion of the task according to the selected option (e.g., “will spend up to $150 on Halloween decorations for the party”). As yet another illustrative example, for tasks or projects where payment schedules may be involved, proposal options for a proposal related to a task or project may specify the payment schedule for each of these proposal options (e.g., “$100 for the initial consultation, with $300 for follow-up servicing,” “$1,500 up-front to reserve the venue, with $1,500 due after the event,” etc.).


If a member accepts a particular proposal option for a task or project, the representative 106 may communicate with the member to ensure that the member is consenting to payment of the presented costs and any associated taxes and fees for the particular proposal option. In some instances, if a proposal option is selected with a static payment amount (e.g., fixed price, “up to $X,” phased payment schedules with static amounts, etc.), the member may be notified by the representative 106 if the actual payment amount required for fulfillment of the proposal option exceeds a threshold percentage or amount over the originally presented static payment amount. For example, if the representative 106 determines that the member may be required to spend more than 120% of the cost specified in the selected proposal option, the representative 106 may transmit a notification to the member to re-confirm the payment amount before proceeding with the proposal option.


In some examples, if a member accepts a proposal option from the presented proposal, the task-facilitation service 102 moves the task associated with the presented proposal to an executing state and the representative 106 can proceed to execute on the proposal according to the selected proposal option. For instance, the representative 106 may contact one or more third-party services 116 to coordinate performance of the task according to the parameters defined in the proposal accepted by the member.


In some examples, the representative 106 utilizes the task coordination system 114 to assist in the coordination of performance of the task according to the parameters defined in the proposal accepted by the member. For instance, if the coordination with a third-party service may be performed automatically (e.g., the third-party service provides automated system for ordering, scheduling, payments, etc.), the task coordination system 114 may interact directly with the third-party service to coordinate performance of the task according to the selected proposal option. The task coordination system 114 may provide any information (e.g., confirmation, order status, reservation status, etc.) to the representative 106. The representative 106, in turn, may provide this information to the member via the application or web portal utilized by the member to access the task-facilitation service 102. Alternatively, the representative 106 may transmit the information to the member via other communication methods (e.g., e-mail message, text message, etc.) to indicate that the third-party service has initiated performance of the task according to the selected proposal option. If the representative 106 is performing the task for the benefit of the member 118, the representative 106 may provide status updates with regard to its performance of the task to the member 118 via the application or web portal provided by the task-facilitation service 102.


In some examples, the task coordination system 114 can monitor performance of tasks by the representative 106, third-party services 116, and/or other services/entities associated with the task-facilitation service 102 for the benefit of the member. For instance, the task coordination system 114 may record any information provided by the third-party services 116 with regard to the timeframe for performance of the task, the cost associated with performance of the task, any status updates with regard to performance of the task, and the like. The task coordination system 114 may associate this information with a data record corresponding to the task being performed. Status updates provided by third-party services 116 may be provided automatically to the member via the application or web portal provided by the task-facilitation service 102 and to the representative 106. Alternatively, the status updates may be provided to the representative 106, which may provide these status updates to the member over the chat session established between the member and the representative 106 for the particular task/project or through other communication methods. In some instances, if the task is to be performed by the representative 106, the task coordination system 114 may monitor performance of the task by the representative 106 and record any updates provided by the representative 106 to the member via the application or web portal.


Once a task has been completed, the member may provide feedback with regard to the performance of the representative 106 and/or third-party services 116, and/or other services/entities associated with the task-facilitation service 102 that performed the task according to the proposal option selected by the member. For instance, the member may exchange one or more messages with the representative 106 over the chat session corresponding to the particular task/project being completed to indicate its feedback with regard to the completion of the task. For instance, a member may indicate that they are pleased with how the task was completed. The member may additionally, or alternatively, provide feedback indicating areas of improvement for performance of the task. For instance, if a member is not satisfied with the final cost for performance of the task and/or has some input with regard to the quality of the performance (e.g., timeliness, quality of work product, professionalism of third-party services 116, etc.), the member may indicate as such in one or more messages to the representative 106. In some examples, the task-facilitation service uses a machine-learning algorithm or artificial intelligence to process feedback provided by the member to improve the recommendations provided by the task-facilitation service 102 for proposal options, third-party services 116 or other services/entities, and/or processes that may be performed for completion of similar tasks. For instance, if the task-facilitation service 102 detects that the member is unsatisfied with the result provided by a third-party service or other services/entities for a particular task, the task-facilitation service 102 may utilize this feedback to further train the machine-learning algorithm or artificial intelligence to reduce the likelihood of the third-party service or other services/entities being recommended for similar tasks and to similarly-situated members. As another example, if the task-facilitation service 102 detects that the member is pleased with the result provided by a representative 106 for a particular task, the task-facilitation service 102 may utilize this feedback to further train the machine-learning algorithm or artificial intelligence to reinforce the operations performed by representatives for similar tasks and/or for similarly-situated members.



FIG. 3 shows an illustrative example of an environment 300 in which a task recommendation system generates and ranks recommendations for tasks to be performed for the benefit of a member in accordance with aspects of the present disclosure. In the environment 300, a member 118 and/or representative 106 interacts with a task creation sub-system 302 of the task recommendation system 112 to generate a new task or project that can be performed for the benefit of the member 118. The task creation sub-system 302 may be implemented using a computer system or as an application or other executable code implemented on a computer system of the task recommendation system 112.


In some examples, the member 118 can access the task creation sub-system 302 to request creation of one or more tasks as part of an onboarding process implemented by the task-facilitation service. For instance, during an onboarding process, the member 118 can provide information related to one or more tasks that the member 118 wishes to possibly delegate to a representative 106. The task creation sub-system 302 may utilize this information to identify parameters related to the tasks that the member 118 wishes to delegate to a representative 106 for performance of the tasks. For instance, the parameters related to these tasks may specify the nature of these tasks (e.g., gutter cleaning, installation of carbon monoxide detectors, party planning, etc.), a level of urgency for completion of these tasks (e.g., timing requirements, deadlines, date corresponding to upcoming events, etc.), any member preferences for completion of these tasks, and the like. The task creation sub-system 302 may utilize these parameters to automatically create the task, which may be presented to the representative 106 once assigned to the member 118 during the onboarding process.


The member 118 may further access the task creation sub-system 302 to generate a new task or project at any time after completion of the onboarding process. For example, the task-facilitation service may provide, via an application or web portal of the task-facilitation service, a widget or other user interface element through which a member 118 may generate a new task or project manually. In some examples, the task creation sub-system 302 provides various task templates that may be used by the member 118 to generate a new task or project. The task creation sub-system 302 may maintain, in a task datastore 110, task templates for different task types or categories. Each task template may include different data fields for defining the task, whereby the different task fields may correspond to the task type or category for the task being defined. The member 118 may provide task information via these different task fields to define the task that may be submitted to the task creation sub-system 302 or representative 106 for processing. The task datastore 110, in some instances, may be associated with a resource library. This resource library may maintain the various task templates for the creation of new tasks.


Task templates may be associated with a particular task category. The plurality of task definition fields within a particular task template may be associated with the task category assigned to the task template. For example, the task definition fields corresponding to a vehicle maintenance task may be used to define the make and model of the member's vehicle, the age of the vehicle, information corresponding to the last time the vehicle was maintained, any reported accidents associated with the vehicle, a description of any issues associated with the vehicle, and the like. In some instances, a member accessing a particular task template may further define custom fields for the task template, through which the member may supply additional information that may be useful in defining and completing the task. These custom fields may be added to the task template such that, if a member and/or representative obtains the task template in the future to create a similar task, these custom fields may be available to the member and/or representative.


In some examples, the data fields presented in a task template used by the member 118 to manually define a new task can be selected based on a determination generated using a machine-learning algorithm of artificial intelligence. For example, the task creation sub-system 302 can use, as input to the machine-learning algorithm or artificial intelligence, a member profile from the user datastore 108 and the selected task template from the task datastore 110 to identify which data fields may be omitted from the task template when presented to the member 118 for definition of a new task or project. For instance, if the member 118 is known to delegate maintenance tasks to a representative 106 and is indifferent to budget considerations, the task creation sub-system 302 may present, to the member 118, a task template that omits any budget-related data fields and other data fields that may define, with particularity, instructions for completion of the task. In some instances, the task creation sub-system 302 may allow the member 118 to add, remove, and/or modify the data fields for the task template. For example, if the task creation sub-system 302 removes a data field corresponding to the budget for the task based on an evaluation of the member profile, the member 118 may request to have the data field added to the task template to allow the member 118 to define a budget for the task. The task creation sub-system 302, in some instances, may utilize this member change to the task template to retrain the machine-learning algorithm or artificial intelligence to improve the likelihood of providing task templates to the member 118 without need for the member 118 to make any modifications to the task template for defining a new task.


In some instances, if the member selects a particular task template for creation of a task associated with an experience, the task creation sub-system 302 can automatically identify the portions of the member profile that may be used to populate the selected task template. For example, if the member selects a task template corresponding to an evening out at a restaurant, the task creation sub-system 302 may automatically process the member profile to identify any information corresponding to the member's dietary preferences and restrictions that may be used to populate one or more fields within the task template selected by the member. The member may review these automatically populated data fields to ensure that these data fields have been populated accurately. If the member makes any changes to the information within an automatically populated data field, the task creation sub-system 302 may use these changes to automatically update the member profile to incorporate these changes.


In some examples, the task creation sub-system 302 may also enable a representative 106 to create a new task or project on behalf of a member 118. The representative 106 may request, from the task creation sub-system 302, a task template corresponding to the task type or category for the task being defined. The representative 106, via the task template, may define various parameters associated with new task or project, including assignment of the task (e.g., to the representative 106, to the member 118, etc.). In some instances, the task creation sub-system 302 may use a machine-learning algorithm or artificial intelligence to identify which data fields are to be presented in the task template to the representative 106 for creation of a new task or project. For example, similar to the process described above related to member creation of a task or project, the task creation sub-system 302 may use, as input to the machine-learning algorithm or artificial intelligence, a member profile from the user datastore 108 and the selected task template from the task datastore 110. However, rather than identifying which data fields may be omitted from the task template, the task creation sub-system 302 may indicate which data fields may be omitted from the task when presented to the member 118 via the application or web portal provided by the task-facilitation service. Thus, the representative 106 may be required to provide all necessary information for a new task or project regardless of whether all information is presented to the member 118 or not.


The task creation sub-system 302 may automatically identify the portions of the member profile that may be used to populate the fields of the selected task template. The representative 106 may review these automatically populated data fields to ensure that these data fields have been populated accurately. If the representative 106 makes any changes to the information within an automatically populated data field (based on the representative's personal knowledge of the member 118, etc.), the task creation sub-system 302 may use these changes to automatically update the member profile to incorporate these changes. In some instances, if changes are to be made to the member profile as a result of the changes made to the task template by the representative 106, the task creation sub-system 302 may prompt the member 118 to verify that the proposed change to the member profile is accurate. If the member 118 indicates that the proposed change is inaccurate, or the member 118 provides an alternative change, the task creation sub-system 302 may automatically update the corresponding data fields in the task template and the member profile to reflect the accurate information, as indicated by the member 118


In some examples, the task creation sub-system 302 can monitor, automatically and in real-time, messages exchanged between the member 118 and the representative 106 to identify tasks that may be recommended to the member 118. For instance, the task creation sub-system 302 may utilize natural language processing (NLP) or other artificial intelligence to evaluate received messages or other communications from the member 118 to identify possible tasks that may be recommended to the member 118. For instance, the task creation sub-system 302 may process any incoming messages from the member 118 using NLP or other artificial intelligence to detect a new task or other issue that the member 118 would like to have resolved. In some instances, the task creation sub-system 302 may utilize historical task data from the task datastore 110 and corresponding messages from the task datastore 110 to train the NLP or other artificial intelligence to identify possible tasks. If the task creation sub-system 302 identifies one or more possible tasks that may be recommended to the member 118, the task creation sub-system 302 may present these possible tasks to the representative 106, which may select tasks that can be shared with the member 118 over the chat session.


In some examples, the task creation sub-system 302 can utilize computer vision or other artificial intelligence to process images, audio, video, natural language communications, sensor data, and/or the like to identify potential tasks that may be recommended to the member 118 for completion. For instance, images or video of a home (e.g., associated with the member 118) may be processed to identify potential tasks that may be completed for the benefit of the member 118. These images or video may be processed by the task creation sub-system 302 in real-time to detect issues within the member's home and identify possible tasks that may be performed to address these issues. Additionally, while the digital images or video may be related to a particular issue, the task creation sub-system 302 may further process the digital images or video to identify additional and/or alternative issues for which tasks may be recommended. Thus, the task creation sub-system 302, using computer vision or other artificial intelligence, may detect possible issues that the member 118 may not be aware of.


The task recommendation system 112 may further include a task ranking sub-system 306, which may be configured to rank the set of tasks of a member 118, including tasks that may be recommended to the member 118 for completion by the member 118 or the representative 106. The task ranking sub-system 306 may be implemented using a computer system or as an application or other executable code implemented on a computer system of the task recommendation system 112. In some examples, the task ranking sub-system 306 can rank the listing of the set of tasks based on a likelihood of the member 118 selecting the task for delegation to the representative for performance and coordination with third-party services and/or other services/entities associated with the task-facilitation service. Alternatively, the task ranking sub-system 306 may rank the listing of the set of tasks based on the level of urgency for completion of each task. The level of urgency may be determined based on member characteristics from the user datastore 108 (e.g., data corresponding to a member's own prioritization of certain tasks or categories of tasks) and/or potential risks to the member 118 if the task is not performed.


In some examples, the task ranking sub-system 306 provides the ranked list of the set of tasks that may be recommended to the member 118 to a task selection sub-system 304. The task selection sub-system 304 may be implemented using a computer system or as an application or other executable code implemented on a computer system of the task recommendation system 112. The task selection sub-system 304 may be configured to select, from the ranked list of the set of tasks, which tasks may be recommended to the member 118 by the representative 106. For instance, if the application or web portal provided by the task-facilitation service is configured to present, to the member 118, a limited number of task recommendations from the ranked list of the set of tasks, the task selection sub-system 304 may process the ranked list and the member profile from the user datastore 108 to determine which task recommendations should be presented to the member 118. In some instances, the selection made by the task selection sub-system 304 may correspond to the ranking of the set of tasks in the list. Alternatively, the task selection sub-system 304 may process the ranked list of the set of tasks, as well as the member's profile and the member's existing tasks (e.g., tasks in progress, tasks accepted by the member 118, etc.), to determine which tasks may be recommended to the member 118. For instance, if the ranked list of the set of tasks includes a task corresponding to gutter cleaning but the member 118 already has a task in progress corresponding to gutter repairs due to a recent storm, the task selection sub-system 304 may forego selection of the task corresponding to gutter cleaning, as this may be performed in conjunction with the gutter repairs. Thus, the task selection sub-system 304 may provide another layer to further refine the ranked list of the set of tasks for presentation to the member 118.


The task selection sub-system 304 may provide, to the representative 106, a new listing of tasks that may be recommended to the member 118. The representative 106 may review this new listing of tasks to determine which tasks may be presented to the member 118 via the application or web portal provided by the task-facilitation service. For instance, the representative 106 may review the set of tasks recommended by the task selection sub-system 304 and select one or more of these tasks for presentation to the member 118 via individual interfaces corresponding to these one or more tasks. Further, as described above, the representative 106 may determine whether a task is to be presented with an option to defer to the representative 106 for performance of the task (e.g., with a button or other GUI element to indicate the member's preference to defer to the representative 106 for performance of the task). In some instances, the one or more tasks may be presented to the member 118 according to the ranking generated by the task ranking sub-system 306 and refined by the task selection sub-system 304. Alternatively, the one or more tasks may be presented according to the representative's understanding of the member's own preferences for task prioritization. Through the interfaces corresponding to the one or more tasks recommended to the member 118, the member 118 may select one or more tasks that may be performed with the assistance of the representative 106. The member 118 may alternatively dismiss any presented tasks that the member 118 would rather perform personally or that the member 118 does not otherwise want performed.


In some examples, the task selection sub-system 304 monitors the different interfaces corresponding to the recommended tasks, including any corresponding chat or other communication sessions between the member 118 and the representative 106 to collect data with regard to member selection of tasks for delegation to the representative 106 for performance. For instance, the task selection sub-system 304 may process messages corresponding to tasks presented to the member 118 by the representative 106 over the different interfaces corresponding to the recommended tasks to determine a polarity or sentiment corresponding to each task. For example, if a member 118 indicates, in a message to the representative 106 transmitted through a communications session associated with a particular task, that it would prefer not to receive any task recommendations corresponding to vehicle maintenance, the task selection sub-system 304 may ascribe a negative polarity or sentiment to tasks corresponding to vehicle maintenance. Alternatively, if a member 118 selects a task related to gutter cleaning for delegation to the representative 106 and/or indicates in a message to the representative 106 (such as through a communications session associated with a gutter cleaning task presented to the member 118) that recommendation of this task was a great idea, the task selection sub-system 304 may ascribe a positive polarity or sentiment to this task. In some examples, the task selection sub-system 304 can use these responses to tasks recommended to the member 118 to further train or reinforce the machine-learning algorithm or artificial intelligence utilized by the task ranking sub-system 306 to generate task recommendations that can be presented to the member 118 and other similarly situated members of the task-facilitation service. Further, the task selection sub-system 304 may update the member's profile or model to update the member's preferences and known behavior characteristics based on the member's selection of tasks from those recommended by the representative 106 and/or sentiment with regard to the tasks recommended by the representative 106.



FIG. 4 depicts a block diagram of a representative modelling system 400 that generates representative models (also referred to herein as rep models) configured for use in establishing communications with members within a task-facilitation service in accordance with aspects of the present disclosure. The representative modelling system 400 may be a component of the task-facilitation service 102 that generates and manages representative models. Representative models may encapsulate information corresponding to a representative 106 captured and/or derived from multiple sources. Alternatively, a representative model may encapsulate information corresponding to one or more representatives assigned to a common set of members (or one or more representatives having one or more common attributes or complementary attributes). For example, a set of representatives may be assigned to a set of members (e.g., in a many-to-many correspondence). The representative modeling system 400 may generate a representative model that corresponds to the set of representatives rather than to an individual representative. The representative modelling system 400 may generate a representative model for a set of representatives based on attributes of the set of representatives such as, but not limited to, demographic attributes, assigned member(s), length of service with the task-facilitation service, characteristics of the representative (such as, but not limited to physical characteristics, interests, hobbies, media preferences, etc.) and/or the like.


The task-facilitation may store information received from the representative 106 (e.g., through interactions with the task-facilitation service, and/or the like), from members assigned to the representative 106 or who have interacted with the representative 106 (e.g., feedback from the member based on interactions with and/or performance of the representative), the task-facilitation service 102 (e.g., task recommendations generated by the representative, proposals generated for the representative, interactions between the representative 106 and the task-facilitation service, interactions between the representative 106 and other representatives, interactions between the member and other task-facilitation services associated with the representative, etc.), and/or the like. The received information may be stored in a resource library that stores information associated with representatives, members, prospective members, the task-facilitation service, and/or the like. The information of the resource library associated with the representative 106 may be processed (e.g., deriving additional data and/or data types from the information) and used to generate a representative model.


The representative model may store some or all of the information associated with the representative from the resource library in a structured format that may be based on one or more characteristics of the information being stored. For example, each discrete data point being stored may be linked to one or more other data points being stored based on a relationship between the data points. The links may be unidirectional or omnidirectional. When the representative model is queried for information, the requested data point(s) may be returned along with data connected via a first-order link, second-order link (e.g., data connected to data that is directly connected to the identified data point), n-order link, etc. The linked data may provide context for the identified data, expand on the identified data, provide additional detail to the identified data, etc.


In some instances, the representative model, once generated using information from the resource library, may be stored for later use. In other instances, the information may be maintained by the resource library to prevent sensitive information associated with the representative or a member from being leaked. In those instances, the representative model may store pointers to memory addresses within the resource library storing the information of that is to be included within the representative model. Alternatively, the representative model may, for each data point of the representative mode, a data access request.


A data access request may be an executable call to the resource library that identifies the data point to be accessed, identifies credentials of the system or user requesting access to the data point, identifies the purpose or intended use of the data point, combinations thereof, or the like. For example, the data access request may be represented by a function call (e.g., to an application programming interface, remote procedural call, another interface, and/or the like), a uniform resource locator, or the like that can be executed to retrieve the data point, present the data point, or the like. The data access requests may be executed in series, parallel, in a hierarchy, etc. to provide the functionality of the representative model as described herein without providing access to the data directly (e.g., prevent unauthorized access to the data, preventing access to all of the data when only some data is requested, compartmentalizing the data, preventing unauthorized storing of new data, preventing unauthorized modification or deletion of data, etc.). In some instances, the representative model may include multiple types of security such that some data of the resource library may be stored with the representative model (e.g., such as low security data), some data may be stored as pointers to memory addresses of the resource library, some data may be stored as data access requests, combinations thereof, or the like.


The representative model may be used (in addition to being queried for information associated the representative 106) to facilitate functions of the task-facilitation service 102 such as, but not limited to, assigning the representative 106 to a member, generating tasks and/or task recommendations, generating proposals, configuring communications with the member, configuring an application usable by the member to access the task-facilitation service 102 (e.g., configuring graphical user interfaces, communication interfaces, application programming interfaces, and/or the like), combinations thereof, or the like. In some instances, the representative model may include executable instructions configured to generate predictions associated with the member such as interests, intents, preferences, communication pathways, communication protocols, etc.


The representative modelling system 400 can receive input from one or more information sources such as, but not limited to, one or more user models 404, the resource library, rep data 408 database (e.g., storing information associated with the representative 106), manual input 412 (e.g., information provided by the representative 106), or the like. User models 404 may include user models corresponding to the members that the representative 106 is assigned to. The representative 106 may be assigned to zero (e.g., when first registering with the task-facilitation service) or more members. The user models may provide an indication as to how effective the representative 106 may be in managing the tasks of assigned members and the perception of the assigned members with respect to the representative 106. For example, the user models may provide an indication of a quantity and/or quality of generated tasks, generated task recommendations (e.g., based on the frequency with which task recommendations are approved by members, and/or the like), proposals (e.g., based on the frequency that members make changes to proposals, approve proposals, and/or the like), interactions with members, types of interactions with members, and/or the like. The user models may also provide an indication as to the feedback provided by the assigned members (e.g., the member's perception of the representative 106, the member's perception that the representative 106 is providing a predetermined quality of service and/or functionality to the member, member's perception that the representative 106 is easy or difficult to interact with, member's perception that the representative 106 is available when requested and/or needed by the member, and/or the like.


The rep data 408 may include any information associated with the representative received and/or generated since the representative registered with the task-facilitation service 102. In some instances, rep data 408 may be a database, data structure, or component of the resource library. Registering (also referred to as “onboarding” or the like) with the task-facilitation service 102, can include transmitting a set of queries to a device associated with the representative requesting information associated with the representative. The requested information can include demographic information, an identification of devices (e.g., which may be used to access the task-facilitation service, facilitate the generation of task recommendation and/or proposals, facilitate communications with members, and/or the like), an identification of historical tasks and/or proposals generated by the representative, an identification of qualifications for being a representative, an identification of the results of personality tests (e.g., Myers-Briggs, etc.), interests and/or hobbies of the representative, media preferences of the representative (e.g., such as music, movies, etc.), and/or the like. This information may be processed and a version of which may be stored in rep data 408. Rep data 408 may also include an identification of historical tasks, task recommendations, and/or proposals generated by the representative after the representative registered with the task-facilitation service 102; feedback provided by other representatives, assigned members, task-facilitation service 102, and/or the like; information associated with interactions with assigned members; information associated with interactions with the task-facilitation service 102; and/or the like. The longer the representative 106 is registered with the task-facilitation service, the more information associated with the representative 106 may be stored in rep data 408.


The manual input 304 may include information provided by the representative 106 to the member and/or to the representative modelling system 400. The information may be provided via text, audio, and/or video. In some instances, the text, audio, and/or video may be processed by a natural language processor (as further described in connection to FIG. 7). The natural language processor may include one or more machine-learning models configured to process natural language input in any particular form or format. For example, one such machine-learning model may be trained to convert audio into the equivalent text. Another such machine-learning model may be trained to convert video into equivalent text by processing the audio channel with the previously described machine-learning model or by identify gestures and/or sign language within the video. Another such machine-learning model may execute using the text (e.g., that was originally input and/or the output from one or more of the previously described machine-learning models). This machine-learning model may identify the semantic meaning of the text, classify one or more intents in the text, classify one or more interests in the text, classify one or more preferences in the text, classify one or more tasks in the text, and/or to identify any other information that may be usable by the representative modelling system 400. Alternatively, the one or more machine-learning models may be supplemented by and/or replaced by one or more representatives (e.g., a representative other than the representative 106, representative 106, etc.), which may parse the manual input 412 and generate the output previously described as being output by a machine-learning model. The manual input 412 may be processed to identify information being provided by the representative 106 as well as identifying an environment of the representative 106.


The representative modelling system 400 may provide an interface (e.g., such as a graphical user interface, application programming interface, communication interface, etc.) through which the representative 106 may interact with the representative modelling system 400, the task-facilitation service 102, other representatives, members, and/or the like. The representative 106 may identify a device and/or application through which the representative 106 intends to access the task-facilitation service 102. The representative modeling system 400 may then identify an interface to enable such access. If the interface is not available, the representative modeling system 400 may use a specification of the device and/or application and generate one or more interfaces to enable such access 102. The interface may enable the representative 106 to access the task-facilitation service 102, communicate and/or interact with the task-facilitation service 102, communicate and/or interact with representatives and/or members, and/or the like. Communications and/or interactions between the representative 106 and any of the task-facilitation service 102, members, other representatives, the representative modelling system 400, other systems of the task-facilitation service 102, etc. may include text (e.g., via alphanumeric text, etc.), audio, video, programming instructions (e.g., via a programming language code, assembly code, machine-code, bytecode, and/or the like).


The data obtained from user models 404, rep data 408, manual input 412, etc. may be stored in a rep database 408. The database may store data as unstructured or structured data. For structure data, the data may be organized according to a predetermined taxonomy selected by the representative modelling system 400, the task-facilitation service 102, the representative 106, or as a default taxonomy. The default taxonomy may organize the received data according to a hierarchy of classifications such that data is first organized according to a first taxonomy and then data within each category of the first taxonomy may be organized according to a second taxonomy, etc. For example, the data may be organized according to an information source as a first taxonomy and time as a second taxonomy such that the data may be organized by information source and the data of each information source may be organized by time (e.g., according to a timestamp in which the data was generated, received, or the like).


When the representative 106 first registers with the task-facilitation service 102, little may be known about the representative (e.g., small quantity of data may be stored in rep data 408 and rep database 416). Basic information may be provided by the representative 106 and stored in the rep database 416 but the quantity of information stored in rep database 416 may be too small to generate a representative model and/or enable the functionality of the representative model. The representative modelling system 400 may augment the data stored by the rep database 416 by adding data corresponding to other representatives, training data from training data 432 database, and/or by procedurally generating representative data corresponding to the representative 106. As the representative 106 interacts with the task-facilitation service 102 (e.g., providing additional information, interacting with assigned and/or unassigned members, interacting with other representatives, generating task recommendations, generating proposals, interacting with the task-facilitation service 102, and/or the like), more information may become known about the representative 106 and the quantity of information stored in the rep database 416 that corresponds to the representative 106 may increase. As a result, the augmented portion of the rep database 416 be incrementally removed. For example, the rep database 416 may include a predetermined quantity of data. Initially, a small portion of that data may correspond to the representative 106. The rest of the data may be derived from one or more other representatives similar to the representative 106, training data 432, procedurally generated data, as previously described. Each time the rep database 416 receives data associated with the representative 106, the new data may be stored in the rep database 416 and an approximately equal quantity (and/or a same type) of data that does not correspond to the representative 106 may be removed. In other words, the user data 416 database may maintain an approximately same quantity of data. As data associated with the representative 106 is received, the augmented portion of data that does not correspond the representative 106 (e.g., the data that corresponds to other representatives, the training data 432, that was procedurally generated, etc.) may be deleted without causing the quantity of data stored in the rep database 416 to change (or to substantially change).


The machine-learning models 436 may include one or more machine-learning models trained to generate a representative model from rep database 416. The machine-learning models 436 may be trained via supervised and/or unsupervised training using training data 432. The training data 432 may include data from representative 106, other representatives, manually generated data (and/or labels), procedurally generated data, historical tasks generated by the task-facilitation service 102, historical proposals generated by the task-facilitation service 102, and/or the like. The other representatives may be representatives that are similar to the representative 106 and such are likely to have similar data or may be any representative that previously registered with the task-facilitation service 102 having one or more metrics that the representative modeling system intends to replication (e.g., a metric indicating a degree in which the representative is a good match to an assigned member, quality of service provided to an assigned member, quality of interactions, and/or the like. The representative modelling system 400 may identify other representatives based on demographic information (e.g., similar age, gender, geographical location, marital status, etc.) being similar to representative 106, other characteristics of other representatives being similar to representative 106, the one or more other metrics, combinations thereof, or the like.


The data from the other representatives may include the rep database 416 corresponding to the other representatives, the representative models generated for the other representatives, historical tasks performed for the other members, historical proposals generated for the other members, and/or the like. For example, a training data processor 420 may receive manual input 412 from the other representatives, an identification of historical tasks 424 performed by the task-facilitation service, an identification of historical proposals 428 generated by the task-facilitation service, the training data 432, and/or the like. The training data processor 420 identifies features from the input data. The features may correspond to an individual property or characteristic of the representatives, tasks, proposals, and/or the like. The training data processor 420 may identify features that may be usable to train the machine-learning models 436 to generate representative models.


In some instance, the training data processor 420 may generate features for missing data (e.g., empty or missing fields, corrupt data, etc.) and/or derive features from the other features (e.g., similar to feature extraction, or the like). In some instances, the training data processor 420 may filter the input data by only identifying features that may be useful in training (e.g., features known to train an accurate machine-learning model, etc.). As the representative modelling system 400 generates representative models for more members, the representative modelling system 400 may identify features that are likely to improve the accuracy of the machine-learning models 436 (e.g., through evaluation of the representative models the trained machine-learning models 426 product, etc.). The representative modelling system 400 may store an identification of the set of features and continuously evaluate the set of features and new features for inclusion into or exclusion from the set of features.


The identified features may be used to train the machine-learning models 436. The identified features may also be stored in training data 432 (as a training dataset) for use in training other machine-learning models and/or retraining the machine-learning models 436. In some instances, the machine-learning models 436 may be trained using supervised learning. In those instances, the training data processor may use the representative models generated for the other representatives from which the features were derived as labels for the features used to train the machine-learning models 436. In other instances, the machine-learning models may be trained using unsupervised training. In those instances, the features may be divided into multiple datasets and used to incrementally train the machine-learning models 436 over multiple iterations. During each iteration, the machine-learning models 436 may refine internal weights (based on the algorithm of the machine-learning models and) based on the currently input dataset and previous datasets. The output of the machine-learning models 436 during training may be ranked or scored to further improve the unsupervised training. The scoring may indicate to the machine-learning models 436 whether a give input dataset caused an output with a higher score or rank or a lower score or rank than the previous dataset. The machine-learning models 436 may then refine the internal weights to attempt to cause the subsequent dataset to have a higher score or rank.


During operation of the representative modelling system 400, the machine-learning models 436 may be further trained using reinforcement learning. Reinforcement learning may be an incremental training step that uses feedback from an execution of the trained machine-learning models 436 to improve subsequent executions of the machine-learning models 436. The representative modelling system 400 may receive input from the member and/or the representative 106 indicating whether the representative model accurately encapsulates the representative information. The generated representative model and the input from the member and/or representative 106 may be processed by the machine-learning models 436 to periodically train the machine-learning models 436 (e.g., train the machine-learning models after the formal training phase has terminated). In some instances, other processes of the task-facilitation process 102, other processes of the representative modeling system 400, and/or other representatives may be trained by any of the previously described operations to generate the representative model for the representative 106.


The machine-learning models 436 may output the generated representative model into a database of representative models 440, which may be stored in memory of the task-facilitation service 102 (e.g., such the resource library, or the like). The database of representative models 440 may store representative models of the representative 106 and/or other representatives. In some instances, the representative models 440 may store multiple representative models for each representative. For example, the machine-learning models 436 may generate a new representative model in predetermined time intervals to cause representative models 440 to include a representative model that corresponds to the most recently obtained data associated with a representative. In some instances, other events may trigger generation of a new representative model, such as, but not limited to, when a predetermined quantity of new data in rep database 416 is received, when a predetermined quantity of tasks and/or proposals have been generated by the representative 106, based on the machine-learning models having been retrained and/or an accuracy metric associated with the machine-learning models 436 having improved by a threshold amount, if/when a representative model becomes corrupt, if/when a representative model becomes inaccurate, combinations thereof, or the like.


The representative models may be associated with a version identifier and/or timestamp to enable the task modeling system 400 and/or the task-facilitation service 102 to identify the most recently generated representative model for a representative 106. The version identifier and/or timestamp may also be used to roll back a representative model to a previous version if a representative model becomes corrupted, inoperable, old, generates inaccurate predictions, and/or the like. In that instance, the previous version of the representative model may be used until the machine-learning models 436 generate a new representative model, at which point, the new representative model may be used in place of the previous representative model. In some instances, rather than generate new representative models when new information associated with the particular member is received, the machine-learning models 436 may modify the existing representative model. In those instances, the representative model may still be replaced if/when the representative model data is corrupted, inoperable, old, generates inaccurate predictions, and/or the like.


In some instances, the machine-learning models 436 may be retrained using updated training data 432. Since the initial representative model may be generated using data associated with other representatives, manually and/or procedurally generated data, and/or the like, the initial representative model may not accurately reflect the representative 106. During operation of the representative modelling system 400, new information corresponding to the representative 106 may be received. The representative modeling system 400 may incrementally replace portions of the rep database 416 that correspond to other representatives, manually or procedurally generated data, and/or the like with the new data that corresponds to the representative 106. For example, historical tasks 424 that were associated with other representatives (and/or that were generated from manual input and/or that were procedural generated), may be removed and replaced with tasks that were generated by representative 106. The machine-learning models 436 may then be retrained using the updated training data 432. The newly trained machine-learning models 436 may be used to generate a new representative model. The representative modelling system 400 may store a metric indicating the percentage of the training data 432 that corresponds to the representative 106. One or more thresholds may be established (e.g., that may be predetermined, determined by member input, representative 106 input, the task-facilitation service, the representative modeling system 400, or the like) such that each time the metric passes a threshold, the machine-learning models 436 may be retrained and a new representative model may be generated for the representative 106.


For example, the one or more thresholds may be set to 50%, 75%, 90%, and 100%. When the metric indicates at least 50% of the training data 432 corresponds to the representative 106, the machine-learning models 436 may be retrained and a new representative model may be generated for the representative 106. When the metric indicates at least 75% of the training data 432 corresponds to the representative 106, the machine-learning models 436 may be retrained and a new representative model may be generated for the representative 106. In some instances, the metric may stay the same or increase (e.g., up to a maximum percentage of 100%) since the representative modelling system 400 may continuously receive data associated with the representative 106 and continuously replace the portion of the manual input 412, historical tasks 424, historical proposals 428, training data 432, etc. that does not correspond to the representative 106 with the newly received data that does correspond with the representative 106.


The representative models generated by the machine-learning models 436 may include some or all of the data stored in rep database 416 organized such that the data may be accessible (programmatically and/or manually) to task-facilitation service 102, the representative 106, and/or other representatives. For example, the data may be searched (e.g., via a natural language search string, logical operators, and/or the like). In some instances, the representative model may include instructions for accessing the data within the representative model, metadata indicating the logical structure of the data stored in the representative model, one or more interfaces enabling an external device and/or user to access the data of the representative model, interfaces for establishing communications with the representative 106 and/or members assigned to the representative 106, combinations thereof, or the like. In those instances, portions of the representative model may be executed by the representative 106, the task-facilitation service 102, and/or the like. For example, the task-facilitation service 102 may query the representative model to assign a particular member to the representative 106. The representative model may also be used to generate tasks, task recommendations, and/or proposals tailored to particular members assigned to the representative 106. For example, the representative 106 may identify a previous task recommendation the representative 106 generated for that member to generate a new task recommendation. In another example, the representative 106 may identify a previous proposal generated for a member to generate a proposal for a new member. The representative model enables the task-facilitation service 102, the representative 106, and/or other representatives to apply the data generated by the representative 106 (e.g., knowledge, experience, etc.) to provide custom tailored services to other members and training to other representatives.


In some instances, the representative model may be or include a machine-learning model trained to generate predictions that correspond to functionality of the representative 106. In those instances, the representative model may be a trained instance of a machine-learning model 436. Alternatively, the representative model may include a machine-learning model trained using machine-learning models 436 and/or by an output of the machine-learning models 436. The machine-learning model may be classifier configured to generate single or multi-variate predictions. The machine-learning model may be configured to predict member intent, member behavior, member interests, member preferences, communication pathways (e.g., a pathway to a selected device likely to be reachable to the member), communication protocols, identify particular tasks or task templates for members, identify and/or predict characteristics associated with the member (e.g., including preferences, etc.), identify proposals for members, automate task recommendation, automate proposal generation, and/or the like. For example, the representative 106 may generate an input (e.g., a set of features) that includes an identification of a repair task. The representative model may output an identification of one or more repair tasks selectable by the representative. In some instances, the one or more repair tasks may include an identification of fields for which values are to be provided to generate a proposal. In some instances, the one or more repair tasks may include default values or predicted values (e.g., values that the assigned member is likely to select) values already included. The representative 106 may select one or more of the one or more tasks for presentation to the member or for generating a proposal. For example, the representative 106 may select a particular repair task and based on the remaining missing fields, provide values and/or request input from the member. The representative may then generate the proposal based on the selected repair task for presentation to the member.


The representative model may be usable to generate tasks and/or proposals that are customized for members assigned to the representative 106. In some instances, some or all of the functionality of the representative models may be provided by the representative 106, the task-facilitation service 102, other representatives of the task-facilitation service 102, other processes of the task-facilitation service 102, and/or the like. In those instances, the representative 106 and/or other representatives may also provide some or all of the functionality of machine-learning models 436 (and also of task generator 728 and/or proposal generator 924).



FIG. 5 depicts a block diagram of a user modeling system 500 that generates user models configured for use in the generating and performance of tasks on behalf of users in accordance with aspects of the present disclosure. The user modeling system 500 may be a component of the task-facilitation service 102 that generates user models. User models may encapsulate member information captured and/or derived from multiple sources into a user model configured to perform or facilitate the performance of functions of the task-facilitation service 102, the establishment of connections with one or more other models and/or devices, and/or the like. The task-facilitation service 102 may store information associated with the member received from internal sources (e.g., the task-facilitation service 102, devices operated by representatives, and/or the like) and/or external sources (e.g., such as devices operated by other members or individuals associated with the member, devices associated with the member, devices or services which the member subscribes, and/or the like) within member of a resource library. The resource library may be a component of the task-facilitation service 102 or external therefrom that operates to store, manage, and control the distribution of information throughout the task-facilitation service 102 so as to enable the functionality of the task-facilitation service 102.


Member data from internal sources may include, but is not limited to any data received and/or generated by the task-facilitation service such as: information associated with task recommendations generated for the member, proposals generated for the member, interactions between the member and the task-facilitation service, interactions between the member and the representative 106 or other representatives, interactions between the member and other members through or received by the task-facilitation service, etc. The member information may be stored in a member dataset within the resource library (or through other memory accessible to the task-facilitation service 102). The member dataset may be processed to normalize data values, generate new data from the data of the member dataset, modify or adjust data of the member dataset (e.g., using a dimensionality reduction process such as principal component analysis (PCA), etc.), remove data from the member dataset (e.g., such as superfluous or extraneous data, redundant data, and/or the like), generate weights (e.g., based on a PCA algorithm, a degree in which the data or discrete portions thereof are predictive of a class of predictions, etc.), combinations thereof, or the like.


The member dataset may be used (alone or in conjunction with other data) to generate a user model corresponding to the member. The task-facilitation service 102 and/or the representative 106 may access the user model to identify any information of the task-facilitation service 102 associated with the member. In some instances, the user model may be usable to generate tasks or proposals, customize tasks or proposal, establish communications with representatives or members, generate predictions associated with operations of the task-facilitation service 102 (e.g., such as values of fields of task templates, proposals, etc.; preferences of the member that may not have been expressed by the member; tasks that may be of interest to the member; communication channel for use in communicating with the member, communication protocols for use in communicating with a device of the member; interests and/or intents of the member that may not have been expressed by the member, combinations thereof; or the like), combinations thereof, or the like. In some instances, the user model may include executable instructions configured to operate on the data of the user model to facilitate functions of the task-facilitation service 102 with respect to the member.


The user modeling system 500 can receive input from one or more sources such as, but not limited to, one or more devices 504 (e.g., any device associated with the member and for which access has been authorized by the member), one or more third-party services 508, manual entry 204 (e.g., audio, video, audiovisual, alphanumeric text, etc.), and/or user recordings 206. In some instances, when a member registers with the task-facilitation service 102, the member may authorize one or more devices to communicate with or transmit data to the user modeling system 500. The authorization may include an identification of the one or more device, an identification of interfaces and/or protocols through which the user modeling system 500 can communicate with the device, credentials configured to access the device, an identification of types of data that can be accessed (if the member indicates some data is not to be shared, etc.), combinations thereof, or the like. The user modeling system 500 may identify one or more interfaces (e.g., communication interfaces, application programming interfaces, network interfaces, and/or the like) for the devices identified by the member. If no such interface exists, then the user modeling system 500 may request an interface from a manufacturer of the device, from the member, and/or the like. Alternatively, the user modeling system 500 may define a new interface to enable communications with that device.


The devices 504 may include any device associated with the member and for which access has been authorized by the member. Examples of such devices include, but are not limited to, IoT devices, sensor devices (e.g., smoke detectors, temperature sensors, magnetometers, hygrometers, accelerometers, and/or the like), mobile devices (e.g. smartphones, personal digital assistants, and/or any device comprising a sensor), computing devices (e.g., desktop and/or laptop computers, servers, databases, and/or the like), appliances, smart speakers, home-automation devices, cameras, fitness devices, health-monitoring devices, combinations thereof, or any other device configured to store information associated with the member and capable of communicating via a wired or wireless network interface with a component of the task-facilitation service. In some instances, devices 504 may also include devices that may not be configured to communicate over a network interface such as peripheral devices. Peripheral devices may include devices configured to connect to another proximate device (e.g., such as a computing device or the like) via a wired connection (e.g., using universal serial bus cable, serial or parallel cable, ethernet cable, or the like) or wireless connection (e.g., Bluetooth, Zigbee, Z-wave, and/or the like). Examples of such devices include, but are not limited to, cameras, media devices (e.g., speakers, mp3 players, etc.), input devices (e.g., keyboards, mice, joysticks, game controllers, etc.), or the like.


Devices 504 may execute some applications that generate and/or store information associated with the member. Examples of such applications may include calendar applications, shopping applications, social media applications, list-based applications (e.g., shopping lists, to-do lists, and/or the like), financial services applications, photo applications, music and/or video streaming applications, notes and/or other word processing applications, and/or any other application a member may use or may store information generated by or for the member. Devices 504 may execute some applications locally (e.g., using the hardware of devices 504) while other applications may be executed by a remote device (e.g., such as a web-based application, etc.) and the data of which may be streamed or transmitted to the devices 504. In some instances, the user modeling system 500 may request information from an application executed by or accessible to devices. In other instances, the user modeling system 500 may transmit instructions that can be executed by devices to cause devices to transmit the information to the user modeling system 500 (or the resource library of the task-facilitation service).


Third-party services 508 may store information associated with services and/or entities (e.g., vendors, companies, stores, etc.) configured to provide services or goods to the member, for the benefit of the member, to satisfy an intent of the member, etc. Third-party services 508 may store information associated with services and/or entities that are currently providing services or goods to the member, services and/or entities that previous provided services and/or goods to the member, services and/or entities that previous provided services and/or goods to other members sharing common characteristics with the member, services and/or entities that previous provided services and/or goods to other members assigned to a same representative, etc. Examples of third-party services 508 include, but are not limited to, food preparation services, shopping services, membership services, music and/or video streaming services, insurance and/or warranty services, stores/shops, markets, and/or the like. Third-party services 508 may include applications operated by the member that execute from devices operated by the third-party services such as web-based applications, or the like where the data received and/or generated by the application is stored, managed, and/or controlled by the third-party services 508. The third-party services 508 may provide information associated with the member's subscription, interactions between the member and the third-party service, services provided to the member by the third-party service, and/or any other information provided to or generated by the third-party service and that is associated with the member.


The manual entry 204 information may include information provided by the member to the user modeling system 500. The information may be provided via an input including text, audio, images, video, combinations thereof, or the like. In some instances, the input may be processed by a natural language processor (as further described in connection to FIG. 7), a visual processor or classifier (e.g., such as a convolutional neural network configured to classify images and/or video, etc.). The natural language processor may include one or more machine-learning models configured to process natural language input in any particular form or format. For example, one such machine-learning model may be trained to convert audio into the equivalent text. Another such machine-learning model may be trained to convert video into the equivalent text by processing the audio channel with the previously described machine-learning model or by identify gestures and/or sign language within the video. Another such machine-learning model may execute on the text (e.g., that was originally input and/or the output from one or more of the previously described machine-learning models) to parse the semantic meaning of the text. This machine-learning model may identify the semantic meaning of the text, classify one or more member intents in the text, classify one or more member interests in the text, classify one or more member preferences in the text, classify one or more member tasks in the text, and/or to identify any other information that may be usable by the user modeling system 500. Alternatively, the one or more machine-learning models may be supplemented by and/or replaced by the representative 106, which may parse the manual entry 204 and generate the output previously described as being output by a machine-learning model. The manual entry 204 information may be processed to map an environment of the member, identify tasks to recommend to the member, identify interests of the member, identify preferences of the member, and/or the like.


The user recordings 206 may include any previously encoded information generated by or for the member. The user recordings 206 can include text, data files (e.g., from devices 504, diagnostic data from a device 504, and/or the like), audio, images, video, combinations thereof, or the like. For example, the member may capture an image of an environment that may be processed to identify a possible task such as a leaking pipe. In another example, the member may transmit a recording of a communication (e.g., including the member and/or one or more other individuals, etc.). The recordings may be processed by a natural language processor, visual processor, classifier or the like as previously described. Alternatively, or additionally, the input may be processed by the representative 106 and/or by other machine-learning models trained to generate predictions, perform classifications, identify possible tasks that can be recommended to the member, etc. Returning to the example above, a recording of an image of a bathroom can be processed to identify anomalous activity (e.g., such as a leaky pipe), that may cause the task-facilitation service 102 to recommend a home improvement task to fix the leaky pipe. In another example, the recordings may be used to generate a map of an environment of the member, generate characteristics associated with the member that may be usable when generating tasks or proposals, etc.


The member may determine a quantity of information, types of information, sources of information, and/or the like that can be input to the user modeling system 500. Some members may select to provide all information to the user modeling system 500. Other members may limit the information provided to the user modeling system 500. Once an information source is connected to the user modeling system 500, the member may determine the quantity or types of information that can be shared between the information source and the user modeling system 500. For example, the member may connect an IoT devices that captures sensor data, audio data, and video data to the user modeling system 500. The member may indicate that the sensor data can be shared with user modeling system 500 and indicate that the audio and/or video data cannot be shared. As a result, the user modeling system 500 may only receive the sensor data. Alternatively, if the IoT device is not configured to isolate the data transmitted to other devices, the user modeling system 500 may identify the portion of the data that corresponds to audio and/or video (e.g., using the representative 106, one or more machine-learning models, one or more automated processes, and/or the like. The user modeling system 500 may then store only the sensor data. Alternatively, or additionally, the user modeling system 500 or the representative 106 may delete and/or encrypt the audio and/or video to prevent the user modeling system 500 from accessing information restricted by the member.


In some instances, the member may restrict when or how information or information sources can be shared. For example, the member can indicate particular devices can share information during business hours, during evening hours, only during particularly identified time intervals, etc. The member may indicate with what or whom the information may be shared. For example, the member may indicate that the representative 106 (assigned to the member), particular components of the task-facilitation service 102, other representatives, third-party services can access any information or particular portions thereof (identified by the member). The member may also identify information that can only be shared in particular circumstances. For example, financial information may be accessed by a representative when generating a proposal, but not in other circumstances. In some instances, the member may indicate information that cannot be shared. For example, the member may limit access to information that includes or is associate with another individual (e.g., such as a child or other person for which privacy is to be maintained). The information source may be configured to only transmit (or otherwise share) approved information. Alternatively, the user modeling system 500 may process the received data and remove or encrypt the portion of the received data that that includes information that the member designates as restricted. For example, the user modeling system 500 may use object and/or facial recognition to determine that a restricted individual is present in an image or video stream and subsequently delete or encrypt the image or video stream.


The user modeling system 500 may provide an interface (e.g., such as a graphical user interface, application programming interface, etc.) from which, the member may select particular devices 504 (and/or applications executing thereon), third-party services 508, user recordings 206 to share with the user modeling system 500. The interfaces also enable the member to define limits on the information to be shared with the user modeling system 500. In some instances, the representative 106 assigned to the member may request input confirming that access to some information is to remain restricted or the like. In some instances, the representative 106 can request access to restricted information sources (e.g., the devices 504, third-party service 508, and/or user recordings 206, etc.), particular information, information sources that have been limited, new information sources, and/or the like. The request may include an identification of an intent or purpose for the information, an identification of the information or information source requested, an identification of the entity requesting access to the information, access credentials, an indication as to how the information is to be used or stored, combinations thereof, or the like. The request and/or any response to the request (e.g., member consent or no consent, etc.) may be stored.


The data received from the one or more devices 504, one or more third-party services 508, manual entry 204, and/or user recordings 206 may be stored in a user data 512 database within a resource library of the task-facilitation service 102. The database may store data as unstructured or structured data. For structure data, the data may be organized according to a predetermined taxonomy selected by the user modeling system 500, the task-facilitation service 102, the representative 106 assigned to the member, the member, or as a default taxonomy. The default taxonomy may organize the received data according to a hierarchy of classifications such that data is first organized according to a first taxonomy and then data within each category may be organized according to a second taxonomy, etc. For example, the data may be organized according to information source as a first taxonomy and time as a second taxonomy such that the data may be organized by information source and the data of each information source may be organized by time (e.g., according to a timestamp in which the data was generated, received, or the like).


The user data 512 may be supplemented with data generated by the representative 106 assigned to the member. The data may be received from representative 106 directly or from rep database 516. The representative 106 assigned to the member may receive information from interactions with the member (e.g., conversations with the member, data transmitted to the member, etc.). The representative may also derive additional information from the received information. For example, the member may interact with the representative 106 describing a previous activity. The representative may derive an interest in the activity from the interaction. The representative 106 may store the information gathered and/or derived by the representative 106 in a representative database (e.g., rep data 516). In some instances, the representative 106 may be assigned to more than one member. In those instances, the portion of the rep data 516 that corresponds to the particular member of the user data 512, may be transmitted to the user data 512 database.


When the particular member first registers with the task-facilitation service 102, little may be known about the member (e.g., small quantity of data may be stored in user data 512). Basic information may be provided by the particular member and stored in the user data 512 database but the user data 512 may be too small to generate a user model and/or task recommendations. The user modeling system 500 may augment the user data 512 by adding data corresponding to other members, training data from training data 532 database, and/or by procedurally generating user data corresponding to the particular member. As the particular member interacts with the task-facilitation service 102 (e.g., providing additional information sources, interacting with representative 106, requesting tasks for facilitation by the task-facilitation service 102, and/or the like), more information may become known about the member. The augmented portion of the user data 512 by incrementally removed.


For example, the user data 512 database may include a predetermined quantity of data. Initially, a small portion of the data may be from the particular member. The rest of the data may be derived from one or more members that may be similar to the particular member, training data 532, and/or procedurally generated data. Each time the user data 512 receives data associated with the particular member, the data may be stored in the user data 512 database and an approximately equal quantity (and/or a same type) of data that is not associated with the particular member may be removed. In other words, the user data 512 database may maintain an approximately same quantity of data. As data associated with the member is received, the augmented portion of data that corresponds to other members, the training data 532, and/or that was procedurally generated may be deleted without causing the quantity of data in the user data 512 to change (or to substantially change).


The machine-learning models 526 may include one or more machine-learning models trained to generate a user model from user data 512. The machine-learning models 526 may be trained via supervised and/or unsupervised training using training data 532. The training data 532 may include data from similar members, data from the particular member, manually generated data (and/or labels), procedurally generated data, historical tasks generated by the task-facilitation service 102, historical proposals generated by the task-facilitation service 102, and/or the like. The other members may be members that are similar to the particular member, and such are likely to have similar data (e.g., such as members have similar characteristics to the particular member, etc.). The user modeling system 500 may identify similar members based on demographic information (e.g., similar age, gender, geographical location, marital status, socioeconomic status, etc.), members identified by the particular member, common interests (e.g., as determined from manual entry 204, or user recordings 206, and/or the like), hobbies, combinations thereof, or the like.


The data from similar members may include the user data 512 corresponding to the other members, the user models generated for the other members, historical tasks performed for the other members, historical proposals generated for the other members, and/or the like. For example, a training data processor 520 may receive user data 512 from the similar members, an identification of historical tasks 524 performed by the task-facilitation service 102, an identification of historical proposals 528 generated by the task-facilitation service 102, the training data 532, and/or the like.


The training data processor 520 identifies features from the input data. The features may correspond to an individual property or characteristic of the member, task, proposal, and/or the like. The training data processor 520 identifies features that may be usable to train the machine-learning models 536 to generate user models. In some instance, the training data processor 520 may generate features for missing data (e.g., empty or missing fields, corrupt data, etc.) and/or derive features from the other features (e.g., similar to feature extraction, or the like). In some instances, the training data processor 520 may filter the input data by only identifying features that may be useful in training (e.g., features known to train an accurate machine-learning model, etc.). As the user modeling system 500 generates user models for more members, the user modeling system 500 may identify features that are likely to improve the accuracy of the machine-learning models 536 (e.g., through evaluation of the user models the trained machine-learning models 526 product, etc.) such as when the machine-learning models 526 are trained to generate particular types of predictions/classifications, etc. The user modeling system 500 may store an identification of the set of features and continuously evaluate the set of features and new features for inclusion into or exclusion from the set of features.


The identified features may be used to train the machine-learning models 536. The identified features may also be stored in training data 532 (as a training dataset) for use in training other machine-learning models and/or retraining the machine-learning models 536. In some instances, the machine-learning models 536 may be trained using supervised learning. In those instances, the training data processor may use the user models generated for the other members from which the features were derived as labels for the features used to train the machine-learning models 536. In other instances, the machine-learning models may be trained using unsupervised training. In those instances, the features may be divided into multiple datasets and used to incrementally train the machine-learning models 536 over multiple iterations. During each iteration, the machine-learning models 536 may refine internal weights (based on the algorithm of the machine-learning models and) based on the input dataset of the current iteration. The output of the machine-learning models 536 during training may be scored to further improve unsupervised training. The scoring may indicate to the machine-learning models 536 whether an input dataset generated an output with a higher score or lower score than a dataset of a previous iteration. The machine-learning models 536 may then refine the internal weights to improve a score of a subsequent dataset during the next iteration (and/or during non-training operation of the machine-learning models 536). The scores may be generated based on what predictions, classifications, output, etc. of the machine-learning models 536 is being trained to output. For example, the machine-learning models 536 may be trained to generate predictions associated with the member. The score may be based on a degree in which predictions corresponds to the member (as indicated by the member, the representative 106, an algorithm, etc.).


During operation of the user modeling system 500, the machine-learning models 536 may be further trained using reinforcement learning. Reinforcement learning may be an incremental training step that uses feedback from an execution of the trained machine-learning model to improve subsequent executions of the machine-learning model. The user modeling system 500 may receive input from the member and/or the representative 106 indicating whether the user model accurately encapsulates the member information. The generated user model and the input from the member and/or representative 106 may processed by the machine-learning model to periodically train the machine-learning models 536 (e.g., train the machine-learning models after the formal training phase has terminated). In some instances, the representative 106 may be trained by any of the previously described operations to generate the user model for the particular member.


The machine-learning models 536 may output the generated user model into a database of user models 540, which may be within memory of or controlled by the resource library. The database of user models 540 may store user models of the particular members and/or other members. In some instances, the user models 540 may store multiple user models for each member. For example, the machine-learning models 536 may generate a new user model in predetermined time intervals to cause user models to correspond to the most recently obtained data associated with a member. In some instances, other events may trigger generation of a new user model, such as, but not limited to, when a predetermined quantity of new user data 512 is received, when a predetermined quantity of tasks and/or proposals have been generated for the member, based on the machine-learning models having been retrained and/or an accuracy metric associated with the machine-learning models 536 having improved by a threshold amount, if/when a user model becomes corrupt, if/when a user model becomes inaccurate, combinations thereof, or the like.


The user models may be associated with a version identifier and/or timestamp to enable the representative 106 and the task-facilitation service 102 to identify the most recently generated user model for a member. The version identifier and/or timestamp may also be used to roll back a user model to a previous version if a user model becomes corrupted, inoperative, generates inaccurate predictions, etc. In those instances, the previous version of the user model may be used until the machine-learning models 536 generates a new user model. In some instances, rather than generate new user models when new information associated with the particular member is received, the machine-learning models 536 may modify the existing user model. In those instances, the user model may still be replaced if/when the user model data is inaccurate, corrupt, inoperative, and/or otherwise cannot be modified by the machine-learning models 536 to become operational.


In some instances, the machine-learning models 536 may be retrained using updated training data 532. Since the initial user model may be generated using data associated with other, similar members, manually and/or procedurally generated data, and/or the like, the initial user model may not accurately reflect the particular member as a user model generated from data associated with the particular member. During operation of the user modeling system 500, the portion of user data 512, the historical tasks 524, and/or historical proposals 528 that corresponds to data not associated with the particular member may be replaced with data associated with the particular member. For example, historical tasks 524 that were associated with other members (and/or that were generated from manual input and/or that were procedural generated), may be removed and replaced with historical tasks that were generated and/or performed for the particular member. The machine-learning models 536 may then be retrained using the updated training data 532. The newly trained machine-learning models 536 may be used to generate a new user model. The user modeling system 500 may store a metric indicating the percentage of the training data 532 that corresponds to the particular member. One or more thresholds may be established (e.g., that may be predetermined, determined by member input, representative 106 input, or the like) such that each time the metric passes a threshold, the machine-learning models 536 may be retrained and a new user model may be generated for the particular member.


For example, the one or more thresholds may be set to 50%, 75%, 90%, and 100%. When the metric indicates at least 50% of the training data 532 corresponds to the particular member, the machine-learning models 536 may be retrained and a new user model may be generated for the particular member. When the metric indicates at least 75% of the training data 532 corresponds to the particular member, the machine-learning models 536 may be retrained and a new user model may be generated for the particular member. In some instances, the metric may only increase (e.g., up to a maximum percentage of 100%) since the user modeling system 500 may continuously receive data associated with the member (e.g., from the devices 504, third party services 508, manual entry 204, user recordings 206, and/or from the representative 106, etc.) and continuously replace the portion of the user data 512, historical tasks 524, historical proposals 528, training data 532, etc. that does not correspond to the particular member with the newly received data.


The user models generated by the machine-learning models 536 may include some or all of the data stored in the user data 512 organized so as to be accessible to the task-facilitation service 102, the member, and/or the representative 106. For example, the data may be searchable (e.g., via natural language search strings, logical operators, and/or the like). In some instances, the information may be structured into field-value pairings. Each field may include an identifier, description, and/or the like that corresponds to a context of the corresponding value. For example, a location field may have a corresponding value of Denver, Colo. Values may be typed (e.g., correspond to a particular data type such as alphanumeric strings, images, videos, numerical values, Booleans, etc.) or non-typed (e.g., can hold any data type, the stored data type can be changed, etc.). Alternatively, the data may be stored as a sequence of structured or unstructured data that be processed and/or interpreted by the representative 106 or task-facilitation service 102 to identify particular values.


In some instances, the user model may include instructions for accessing the user data, metadata indicating the logical structure of the user data stored in the user model, one or more interfaces enabling an external device and/or user to access the user data of the model, interfaces for establishing communications with devices associated with the member, and/or the like. In those instances, portions of the user model may be executed by a device operated by the representative 106 or by the representative 106, the task-facilitation service 102, and/or the member. For example, the representative 106 may query the user model to determine a particular vendor used by the member during a repair task performed by the member or by task-facilitation service 102 for the member. The user model may indicate a degree in which the member approved of the vendor after the repair task and/or a likelihood that the vendor should be used again. The user model may enable the representative to identify particular vendors, accommodations (e.g., such as travel, hotel, and/or the like), travel locations, activities, objects (e.g., products) that the member may like, etc.


In some instances, the user model may be or include a machine-learning model trained to generate predictions that correspond to the member. In those instances, the user model may be a trained instance of a machine-learning model 536. Alternatively, the user model may include a machine-learning model trained using machine-learning models 536 and/or by an output of the machine-learning models 536. The machine-learning model may be classifier configured to generate single or multi-variate predictions. The machine-learning model may be configured to predict member intent, member behavior, member interests, member preferences, communication pathways (e.g., a pathway to a selected device likely to be reachable to the member), communication protocols, and/or the like. For example, the representative 106 may generate an input (e.g., a set of features) that includes an identification a repair task. The identified repair task may be incomplete such as a missing an identification of parts for the repair and a repair date. The user model may generate predictions of values for the parts (e.g., one or more vendors, costs, a timeframe in which the parts can be obtained by the repair date, etc.) and for the repair date (e.g., predicting the repair date that would be selected by the member). The user model may be usable to generate tasks and/or proposals that are customized for the particular member. In some instances, some or all of the functionality of the user models may be provided by the representative 106, the task-facilitation service 102, and/or other representatives of the task-facilitation service 102. In those instances, the representative 106 and/or other representatives may also provide some or all of the functionality of machine-learning models 536 (and also of task generator 528 and/or proposal generator 924).


The fields-value pairings and/or values may correspond to the information associated with the member that is stored in the resource library. Once the user model is generated, the information stored in the resource library may be replaced with the user model. In some examples, the user model may not store the information directly, but may instead include direct or indirect references to the information of the resource library. By maintaining the information separate from the user model, the resource library may maintain control over the member information, limit access to the member information, ensure that sensitive information cannot be shared internally or externally, etc. In those examples, the resource library may include fields (as previously described), but the values may be pointers to an address or block of addresses of the memory of the resource library.


Alternatively, the values may be data access requests. Data access requests may be executable instructions that when executed request the value from an information source (e.g., such as the resource library, device storing the information, or the like). The data access request may include an identification of the information being requested, an identification of a storage location of the information being requested, an identification of a use-case or purpose for which the information is being requested, an identification of a user or device requesting the information, access credentials of the user or device requesting the information, a token (e.g., to be matched to a token stored by a device of the member), cryptographic key, combinations thereof, or the like.


Alternatively, or additionally, the any information of the user model can be encrypted and stored in an encrypted form. For example, fields, values, field-value pairings, data types, pointers, data access requests, etc. can be encrypted to prevent unauthorized access to information of the user model. In some instances, the information can be encrypted using one or more encryption schemes. For example, the member may request that the user model be encrypted to prevent unauthorized access to information by individuals other than the representative 106 and by systems other than the task-facilitation service 102 (or particular components thereof). The member may also indicate that certain fields, values, field-value pairings, etc. are to be encrypted using a different encryption scheme (e.g., to prevent the representative 106 from accessing certain sensitive member information) or the encrypted form is to be encrypted again using the different encryption scheme.


The member and/or the representative 106 may selectively determine which field-value pairings, fields, values, information sources, contexts, data types, etc. of the user model that can be directly stored within the user model, stored as direct references to storage locations of the resource library (e.g., as pointers or the like), stored as data access requests, stored in an encrypted state, etc. For example, the member may indicate the values of fields are to be encrypted to prevent individuals other than the representative 106 from accessing the information of the user model. In other examples, the member may indicate that fields are to be encrypted and values are to be replaced with pointers or data access requests to further protect the member information.



FIG. 6 depicts a block diagram of a matchmaking system 600 that assigns representatives to members in accordance with aspects of the present disclosure. The matchmaking system 600 may be configured to assign new members to a particular representative (e.g., representative 106), assign members to a different representative (e.g., when a representative unregisters with the task-facilitation service 102 or when a representative does not match with assigned member). The matchmaking system 600 may receive input from user models 604, user data 608, rep models 440, and/or rep data 408. In some instances, the matchmaking system 600 may assign members to a representative based on incomplete information (e.g., a minimal amount of information known about the member to be assigned and/or the representative). For example, the matchmaking system 600 may receive rep data 408, a rep model corresponding representative 106, and minimal user data 608. This may occur when the member is newly registered to the task-facilitation service and little data is stored in associated with the member. As more information becomes known about the member and/or the representative 106, the relationship between the representative 106 and the assigned members may be reevaluated to determine if the member should be reassigned to another representative 106 of the task-facilitation service 102. In those instances, the matchmaking system 600 may execute twice for new members: once to assign the member to a representative and again once additional information may improve the accuracy of the matchmaking for that member.


User models 604 may include a data structure that corresponds to a particular member. The user model may encapsulate some or all of the data associated with the particular member. For example, the user model may include information received from the member, devices associated with the member, application executed by the member, third-party services subscribed to by the member, third-party service providers used by the member, information received from other sources, information generated by the task-facilitation service (e.g., as part of identifying tasks, generating task recommendations, generating proposals, interacting with the member, etc.), information generated by a representative (if assigned to the member), information derived from interactions between the member and the representative(s) assigned to the member, and/or the like. The user model may be usable to obtain information associated with the member such as information on intents, interests, historical tasks, and/or the like. The user model may enable the task-facilitation service 102 to generate tasks customized or otherwise tailored to the member.


For instance, the user model may be usable to identify a particular third-party service provider used by the member in a previous task that can be usable for a subsequent task. In some instances, the user model may include logic configured to generate predictions based on what may be known about the member. For example, the user model may include executable instructions and/or machine-learning models (e.g., such as single or multivariate classifiers) configured to predict values for tasks and/or proposals, interactions with the member and/or representative, an identification of a representative that should be assigned to the member, communication protocols and/or formats (e.g., enabling communications with the user in a preferred manner, etc.), and/or the like. In one example, the task-facilitation service, and/or a representative can execute the user model on a partially completed task to predict values for missing fields that the member would likely select (e.g., such as a particular third-party service provider for task, travel accommodations, price thresholds, etc.).


User data 608 may include data associated with the member. The user data 608 may store data received from new members prior to generation of corresponding user models for those members. The user data 608 may include a minimum quantity of information (e.g., a set of responses to an initial set of queries requesting information associated with the member) usable by the matchmaking system 600 to assign the member to a representative. In some instances, the user data 608 may include data used to generate the user model 604 for the member. For example, once the quantity of data stored in user data 608 is greater than a threshold, the data may be used to generate a user model for the member. The user data 608 may then be deleted (e.g., as the data is now stored in the user model), and new data may be received in user data 608 until the threshold is exceeded again. When the threshold is exceeded again, the data stored in user data 608 may be used to update the corresponding user model or may be used with the corresponding user model to generate a new user model. The data in user data 608 may then be deleted again and the process continues. Alternatively, the data in user data 608 may be used by the matchmaking system 600 until the corresponding user model for the member is generated. When the corresponding user model is generated, the matchmaking system 600 may use the corresponding user model rather than information from user data 608. As a result, user data 608 may be deleted or otherwise disconnected from the matchmaking system 600. As new data associated with the member is received, the corresponding user model may be updated rather than storing the data in user data 608.


Rep models 440 may store a representative model for a set of representatives of the task-facilitation service 102. A representative model may encapsulate data received and/or generated by the task-facilitation service 102 that corresponds to a representative. The task-facilitation service 102 may continuously generate information associated with the set of representatives (e.g., a record of interactions between the representative and assigned members, other representatives, and the task-facilitation service 102, metadata associated with records of interactions; identification of generated tasks, recommended tasks, generated proposals, and/or the like); combinations thereof, or the like. The continuously generated information may be used to continuously modify and/or update representative models in real time. The representative models may be used to identify a representative that may be a good match to a particular member so as to enable a positive, long-term connection between the member and the representative providing services to the member. In some instances, the representative model may include logic configured to generate predictions based on what may be known about the representative or potential member to be assigned to the representative. For example, the representative model may include executable instructions and/or machine-learning models (e.g., such as single or multivariate classifiers) configured to predict values for tasks and/or proposals, interactions with the member and/or representative, an identification of a member that should be assigned to the representative, communication protocols and/or formats (e.g., enabling communications with the members in a preferred manner, etc.), and/or the like.


The rep data 408 may include any information associated with the representative received and/or generated since the representative registered with the task-facilitation service 102, as previously described. The rep data 408, like the user data 608 may be purged once the corresponding representative model is generated (as the representative model may include the data stored in the rep data 408). Alternatively, the rep data 408 may be maintained in parallel to the rep models 440 for data redundancy and/or security.


In some instances, user models 604, user data 608, rep models, and/or rep data 408 may be components of stored in the resource library. Any of the aforementioned data or models may be accessed through the resource library. In those instances, the resource library may restrict access to some or all of the data and/or models, provide secure access to data and/or models, etc. so as to protect sensitive information (e.g., personal identifiable information, embarrassing information, financial information, etc.) of the member.


The matchmaking system 600 may execute: 1) when a new representative registers with the task-facilitation service 102, 2) when a new representative becomes an established representative (e.g., the representative is no longer considered new and/or a predetermined quantity of information associated with representative is stored in the representative model), 3) when a new member registers with the task-facilitation service, 4) when a new member becomes an established member (e.g., the member is no longer considered new and/or a predetermined quantity of information associated with member is stored in the corresponding user model), and/or the like. The functionality of the matchmaking system 600 may be similar or the same for each scenario. The difference between the scenarios may be the quantity and/or types of information processed by the matchmaking system 600 to identify a match.


For example, when representative 106 is new, the matchmaking system 600 may include some information associated with the representative 106 (e.g., such as the responses to queries for information, etc.) in rep data 408, but not a rep model 440. As a result, the matchmaking system 600 may execute using the rep data 408 and not using rep models 440. As the representative becomes established with the task-facilitation service 102 and more information is received, the matchmaking system 600 may use the rep model corresponding to the representative and not the rep data 408 (as the rep model may encapsulate any data remaining in rep data 408). Similarly, when a member registers with the task-facilitation service 102, the matchmaking system 600 may include some information associated with the member (e.g., such as the responses to queries for information, etc.) in user data 608, but not a corresponding user model 604 for the member. As a result, the matchmaking system 600 may execute using the user data 608 and not using user models 604. As the member becomes established with the task-facilitation service 102 and more information associated with the member is received, the matchmaking system 600 may use the user model corresponding to the member and not the user data 608 (as the user model may encapsulate any data remaining in user data 608). In one illustrative example, the matchmaking system 600 may receive, for a new member to an established representative, data from user data 608 corresponding to the new member (as a user model may not yet be available for the new member) and a representative model from rep models 440 (as the established representative has a corresponding representative model).


Alternatively, the matchmaking system 600 may use some or all of the information available to the matchmaking system 600 and stored in connected databases such as, but not limited to, the user models stored in user models 604 that correspond to the member to be assigned, the data stored in user data 608 that corresponds to the member to be assigned, the representative models stored in rep models 440 that corresponds to the representative to which as member is to be assigned, the data stored in rep data 408 that corresponds to the representative to which as member is to be assigned, or the like.


The data from the user models 604, the user data 608, the rep models 440, and/or the rep data 408 may be received by a feature extractor 612 which may derive a set of features from which the matchmaking may be performed. The feature extractor 612 may derive a set of features that correspond to a member to be assigned and a set of representatives that may be available (e.g., representatives configured to be assigned at least one member). A feature may correspond to an individual measurable property or characteristic of the received data (e.g., the member to be assigned or to any of the set of representatives).


In some instances, the set of features may include more features than may be usable by matchmaking 616. For example, the set of features may include extra features, duplicate features, features that may not be indicative or predictive of a quality of a match between a representative and the member, etc. The inclusion of unusable features in the set of features may reduce the accuracy of task identification by causing signal noise, improperly modifying feature weights, or the like. In some examples, feature extractor 612 may reduce the set of features to improve the accuracy of matchmaking 616. For example, feature extractor 612 may derive new features from the one or more of the set of features, which may enable the one or more features to be removed from the set of features. Alternatively, or additionally a dimensionality reduction algorithm may be executed on the set of features to reduce the quantity of features. For example, the feature extractor 612 and/or the matchmaking system 600 may perform principal component analysis, a discriminant analysis (linear, general, etc.), or the like. In other examples, feature extractor 612 may add new features derived from features in the set of features to compensate for unbalanced feature weights (e.g., adding additional features to under weighted features may increase those weights), or the like.


The set of features may be passed to training data processor 620, which may generate training data (e.g., to be stored in the training data 624 database) for training matchmaking 616. The training data processor 620 may define discrete datasets from each execution of the matchmaking system 600 (e.g., assignment of a member to a representative). Each dataset may correspond to an input passed to the matchmaking system 600. If supervised learning is employed, each dataset may be paired with a corresponding result of the matchmaking system 600 (e.g., an identification of a representative the member was paired with) and/or an identification of a quality of the matching (e.g., based on feedback from the assigned member or the representative, one or more metrics of the matchmaking system 600 indicating an accuracy of matchmaking 616, the task-facilitation service 102, and/or the like). The corresponding result may be a label used during supervised learning. If the dataset is configured for use in unsupervised learning, the dataset may be used as a single training iteration of multiple training iterations. During each iteration, the matchmaking 616 may refine internal weights (based on the algorithm used by the matchmaking 616 and/or) based on the input dataset of the current iteration. The output of the matchmaking 616 during training may be scored to further improve unsupervised training. The scoring may indicate to the matchmaking 616 whether an input dataset of a current iteration caused an output with a higher or lower score than a dataset input during a previous iteration. The matchmaking 616 may then refine the internal weights to improve a score of a subsequent dataset during the next iteration (and/or during non-training operation of the matchmaking 616).


In some instances, the training data processor 620 may define datasets from the feature extractor for reinforcement learning. Reinforcement learning may be an incremental training step that uses feedback from an execution of the matchmaking 616 to improve subsequent executions of the matchmaking 616. The matchmaking system 600 may receive feedback from the representative 106 and/or the member indicating the quality of the matching. The feedback may include, but is not limited to, the member's perception of the representative, the representative's perception of the member, a quality metric corresponding to tasks and/or proposal generated by the representative 106 (e.g., determined by an accuracy metric of a corresponding machine-learning model, a quantity of tasks and/or proposals that were approved or disapproved, a quantity of tasks and/or proposals modified by the member, combinations thereof, or the like), a quality metric corresponding to interactions between the member and the representative 106 (e.g., based on a natural language processor determining a degree of positivity and/or negative in interactions, or the like), combinations thereof, or the like. The set of features passed to the matchmaking 616 and the feedback may be processed by the machine-learning model to reinforce the training of the matchmaking 616 (e.g., train the matchmaking 616 after the formal training phase has terminated).


The datasets output from the training data processor 620 may be passed to the training data 624 database for storage. The training data 624 may store training data for use in initial training of the matchmaking 616 (e.g., for use in supervised or unsupervised learning, or the like) and datasets for use in reinforcement learning. The training data 624 database may include training data from multiple representatives and members received over multiple executions of the matchmaking system 600. In some instances, the training data 624 may also include manually generated and/or procedurally generated data. Manually generated data may include data that is generated and/or annotated by a representative or other agent of the task-facilitation service 102. Manually generated data may include data associated with real matchings (e.g., of members to representatives), data associated with synthetic matchings (e.g., fake matchings for use in training the matchmaking 616), labels associated with an execution of the matchmaking 616, labels associated with synthetic matchings, annotations, combinations thereof, or the like. Procedurally generated training data may include data generated by an algorithm of the task-facilitation service 102. Procedurally generated data may include similar and/or the same types of data as manually generated training data.


The matchmaking 616 may include one or more machine-learning models configured to predict a likelihood that a particular match of a member to a representative will result in an effective, positive connection (indicated by a matching quality metric). An effective connection may correspond to a representative-member match that results in the representative reducing the cognitive load of the member. Examples of metrics indicative of an effective match of a member to a representative include, but is not limited to, a quantity of tasks, task recommendations, and/or proposals being generated for the member per unit of time being greater than a threshold; a percentage of tasks, task recommendations, and/or proposals being approved (relative to a total quantity of tasks, task recommendations, and/or proposals that are generated by the representative for the member) that is greater than a threshold; a percentage of tasks, task recommendations, and/or proposals being modified by the member (relative to a total quantity of tasks, task recommendations, and/or proposals that are generated by the representative for the member) that is less than a threshold; any other metric indicative of a quality of service provided by the representative to the member, combinations thereof, or the like.


A positive connection may correspond to the perceptions of the member towards the representative and the perceptions of the representative towards the member. A positive connection may be determined or characterized by the interactions between member and the representatives. The perception of the member towards the representative and the representative toward the member may be determined as positive, neutral, or negative (and/or any other metric such as numerical score between 0-10, a grade between A-F, or any other metric). In some instances, the perceptions may be determined by a natural language processor that processes the interactions between the member and the representative. The natural language processor (as further described below in connection to the task creation sub-system 302), assign a positivity score to particular words or phrases indicating a degree of positivity and/or negativity expressed by the word or phrase. Words and/or phrases with a high degree of positivity may be weighted higher than words and/or phrases with a low degree of positivity. Similarly, word and/or phrases with a high degree of negativity may be weighted higher than words and/or phrases with a low degree of negativity. Alternatively, or additionally, the perceptions of the member and/or representative may be determined by express feedback (e.g., statements of the member that relate to the member's perceived positivity of the connection between the member and the representative and/or statements of the representative that relate to the representative's perceived positivity of the connection between the member and the representative). For example, the task-facilitation service 102 and/or the matchmaking system 600 may request the member's and/or the representative's perception of the matching and/or of each interaction after each interaction, after n interactions, after a predetermined time interval lapses after the matchmaking, in regular intervals, combinations thereof, or the like. The natural language processor may assign an overall positivity score to each interaction between the member and the representative and an overall positivity score representative of most (or all) of the interactions between the member and the representative.


In some instances, the effective connection metric and the positivity score may be combined into a matching quality metric indicative of a quality of the match of the member to the representative. The matching quality metric may be continuously updated each time the representative generates a new task, task recommendation, and/or proposal and each time the member and the representative interact.


The machine-learning models may determine a match for a member to be assigned to a representative by predicting a matching quality metric that would result if the member were assigned to a representative of the set of representatives being considered. The machine-learning models may predict the matching quality metric by determining a correspondence between the user model associated with the member (or the user data if no user model is generated) and the representative model (or the rep data if no representative model is generated). The machine-learning models may determine a quantity of features that may be common to the representative model and the user model. The machine-learning models may weight the quantity of features based on the types of features that are common to both the representative model and the user model. For example, a common pair of features that correspond to interests may be weighted higher than a common pair of features that correspond to location. The machine-learning models may then generate a matching quality metric based on the weighted common features.


The machine-learning models may generate a prospective matching quality metric for each representative of the set of representatives for which a member may be assigned. The machine-learning models may then identify the representative that corresponds to the highest (e.g., the best) matching quality metric and assigns the member to that representative. Alternatively, machine-learning models may determine which of a set of members is to be assigned to a particular representative. by predicting a matching quality metric for each member of the multiple members (if the member is assigned the representative). The machine-learning models may then identify the member that corresponds to the highest matching quality metric and assigns that member to the representative.


In some instances, the representative 106 (e.g., the representative being matched), another representative (other than the representative that is to be matched), an automated process, and/or another process of the task-facilitation service 102 and/or the matchmaking system 600 may be trained according to any of the aforementioned training processes described in connection with matchmaking 616, training data processor 620, training data 624, and/or the like. In addition, the representative 106, another representative (other than the representative that is to be matched), an automated process, and/or another process of the task-facilitation service 102 and/or the matchmaking system 600 may perform any (or all) of the processes described in connection with matchmaking 616.


The output of the matchmaking 616 may indicate a particular matching of a computing device 120 (e.g., a computing device operated by member 118, associated with member 118, etc.) to a representative 106 of the set of representatives. In some instances, the output of matchmaking 616 may facilitate a connection (automatically, partially automatically, or manually) between computing device 120 and the representative 106 using interface 628. The interface 628 may manage communications between the computing device 120 and the representative 106. In some instances, the interface 628 may configure the communications transmitted by the representative 106. In addition, the interface 628 may translate communications received by the representative 106 from the computing device 120 into a format usable by the representative 106. For example, the interface 628 may translate communications into different languages (e.g., using a machine-learning and/or translator who speaks capable of make such as translation) to enable the representative 106 to communicate with members that may speak a different language from the representative 106. The communications may also be translated into different communication protocols, different communication formats, and/or the like. For example, the interface 628 may use communication protocols 636 and communication application programming interfaces (APIs) to convert a communication generated by the representative 106 into a communication protocol and/or format that the computing device 120 is configured to receive and present to the member 118. Similarly, the representative 106 may pass communications received from the computing device 120 to interface 628 to convert communications received from the computing device 120 into a format that can be presented to representative 106.


Communication protocols 636 may include one or more communication interfaces (e.g., application programming interfaces, communication interfaces, and/or the like) for transmitting communications between different device types and/or communication channels (e.g., SMS, email, telephonic, teleconference, video conference, direct messaging, and/or the like). In some instances, the computing device 120 may indicate a preferred communication protocol, communication format, and/or communication channel over which communications are to be transmitted. In response, interface 628 may identify the communication interfaces in communication protocol 636 to enable representative 106 to communicate using the preferences of the indicated preferences of the computing device 120. If one or more of the communication interfaces are missing, interface 628 may request the missing communication interfaces form computing device 120 and/or a repository of such communication interfaces, a manufacturer of the computing device 120, or the like.


Communication APIs 640 include application programming interfaces (APIs) for generating communications that correspond to the communication format and/or communication channel that may be preferred by the computing device 120. For example, the computing device 120 may transmit an identification and/or selection of a communication format for each of multiple different types of communications. Examples of types of communications transmitted by the representative 106 include, but are not limited to, an identification of tasks, task recommendations, queries or information requests, proposals, conversations, and/or the like. The computing device 120 may indicate that conversation with the computing device 120 are to have a first communication format (e.g., such as text, audio, video, and/or the like), and proposal are to have second, different communication format (e.g., text, etc.).


The communication APIs 640 may also enable interface 628 to generate communication tailored to particular communication channel. For example, communications over direct messaging or SMS may have character limits or otherwise may be difficult to parse when too long. The communication APIs 640 may generate customized communications formatting that may be based on both the computing device 120 preference and the selected communication channel. For instance, for a communication that is to include a lot of text and be over SMS or direct messaging, the communication APIs may be used to generate multiple SMS messages or direct messages with less text to increase the parsability of the communication. In some instances, the interface 628 may automatically customize the communication protocol, communication format, and/or communication channel based on preferences of the member 118, representative 106, and feedback from the member 118 and/or the representative 106. In other instances, the customization of communication protocols may be provided by the representative 106, the interface 628, the matchmaking system 600, the task-facilitation service 102, and/or any other representative.


Communication templates 632 may provide the representative 106 with templates for establishing and/or maintaining communications with the member 118 and/or computing device 120. The communication templates 632 may include statements that the representative 106 may use to initialize a conversation, request information from the member 118, propose tasks, propose a task recommendation, transmit a proposal or request generation of a proposal, request that the member 118 delegate additional tasks to the representative 106, request delegation to the representative 106 to provide more service, and/or to provide a template for any interaction the representative 106 may have with the member 118. In some instances, communication templates 632 may include templates that may be customized to a demographic attribute of the member 118, such as, but not limited to, age, gender, location, language, cultural background, and/or the like so as to further tailor communications and/or interactions between the member 118 and the representative 106.


After a predetermined time interval and/or occurrence of one or more events, the matchmaking system 600 may reevaluate the matching of the member 118 to the representative 106. Examples of the one or more events can include, but are not limited to, a quantity of interactions with the member 118, quantity of tasks generated for the member 118, a quantity of proposals generated for the member 118, a quantity of task recommendations generated for the member 118, feedback provided by the member 118, feedback provided by the representative 106, combinations thereof, or the like. In some instances, the matchmaking system 600 may receive and/or derive new features (e.g., from the user model corresponding to member 118, the representative model corresponding to representative 106, etc.) and execute matchmaking 616 to generate a new matching quality metric. This new matching quality metric may be an updated prediction of the quality of the matching of member 118 to representative 106. In other instances, the matchmaking system 600 may use information received from the member 118, the representative 106, and/or the task-facilitation service 102 to derive the new matching quality metric. In this instance, the new matching quality metric may be based on the quantifiable metrics obtained after the matching of the member 118 to the representative 106.


If the new matching quality metric is less than the previous matching quality metric and/or less than a threshold matching quality metric, then the matchmaking system 600 may determine that the member 118 should be assigned to a new representative. The matchmaking system 600 may then execute to match the member 118 to a new representative from the set of available representatives (that excludes representative 106 to prevent matching the member 118 to a representative that the matchmaking system 600 has already evaluated as a bad match). If the new matching quality metric is greater than the previous matching quality metric and/or greater than the threshold matching quality metric, then the matchmaking system 600 may determine that the matching of the member 118 to the representative 106 is a good match. The matchmaking system 600 may wait another predetermined time interval and/or until an occurrence of the one or more events occur before revaluating the matching again.



FIG. 7 depicts an illustrative example of an environment 700 for generating and ranking recommended tasks configured to be performed for the benefit of a member in accordance with aspects of the present disclosure. Environment 700 may be operated by a task-facilitation service 102 for generating recommended tasks the performance of which can be facilitated by the task-facilitation service 102, one or more representatives thereof, one or more third-party service providers, and/or the like. In some instances, the generated tasks may be requested by a member. For example, a member may request tickets to an upcoming show. In those instances, the member may define the task. Alternatively, or additionally, the representative assigned to the member may define the task on behalf of the member. The representative may transmit the task to the member and request approval to facilitate the task (e.g., obtain tickets to the show, arrange travel or accommodations, etc.). In another alternative arrangement, the task-facilitation service 102 may process a communication session (e.g., chat session, audio communication session, video communication session, etc.) between the member and the representative using a natural language processor, speech processors, image processors, and/or the like. The task-facilitation service 102 may detect an interest in attending the show and automatically generate a task recommendation for the member. In some instances, the representative may determine whether to present the automatically generated task recommendation to the member. In other instances, the task-facilitation service may determine a likelihood that the member will approve the recommended task. If the likelihood is greater than a threshold, the task-facilitation service 102 may automatically present the member with the automatically generated recommended task.


The task-facilitation service 102 may generate task recommendations associated with other tasks provided by the member. For example, the member may indicate a need for tasks associated with an upcoming move to Denver. The task-facilitation service 102 may recommend tasks that are associated with moving. For instance, the task-facilitation service 102 may generate task recommendations that correspond to, but are not limited to, canceling the members utilities that the members current address, obtaining movers, obtaining auto transport, obtaining travel accommodations to the new address, obtaining utilities at the new address, obtaining moving supplies, combinations thereof, or the like. Some task recommendations generated by the task-facilitation service 102 may not be based on a task provided to or suggested by the member. For example, a calendar application associated with the member may indicate an upcoming birthday. The task-facilitation service 102 may generate task recommendations associated the upcoming event such as, but not limited, throwing a birthday party, obtaining a cake, obtaining a birthday present or card, visiting the family member, communicating with the family member or other family members, combinations thereof, or the like.


The task recommendation may include an identification of the task and any sub-tasks that may execute to implement the task. For example, a task recommendation may be to attend a show and include sub-tasks such as but not limited to, obtain tickets to a particular show on a particular date, obtain travel accommodations, identify food accommodations, and/or the like. In some instances, a task recommendation can include some or all of the implementation details needed to execute the task and/or sub-tasks thereof. For example, a task recommendation that corresponds to obtain tickets for a show may include an identification of the show, the type of tickets to be obtained, the cost of the tickets, an identification of how to acquire the tickets, the time/date of the show, identification of any travel accommodations to the show, an identification of any food accommodations, and/or the like.


The task creation sub-system 302 may generate task recommendations based on a task specification 704 that may include member input 708, representative input 716, output from machine-learning models 712, and/or the like. The task specification 704 may include information from which a task may be identified. The information may correspond to an identification of a task that may correspond to a predefined task of the task creation sub-system 302 (e.g., a previously generated and/or executed task, a previously identified task, a hardcoded task, and/or the like), an identification of a task that may not be associated with a predefined task (e.g., an unknown task), or may not identify a particular task. The task specification 704 may be processed by task creation sub-system 302 to identify a task that can be executed by the task-facilitation service 102 (e.g., by a representative, third party service provider, etc.).


In some instances, the task specification 704 may include input from the member (e.g., member input 708, etc.) identifying a task or providing data from which a task may be identified. In other instances, the task specification 704 may include input from the representative (e.g., representative input 716, etc.) identifying a task or providing data from which a task may be identified. In still yet other instances, the task specification 704 may include an output from the machine-learning models 712 (e.g., using the dataset and/or data associated with the member such as, but not limited to, the user model associated with the member, member input 708, representative input 716, machine-learning models 712, and/or the like) that identifies a task and/or includes a task dataset associated with the member from which a task may be identified. The task dataset may include data received and/or derived from the data associated with the member (e.g., from the user model associated with the member, member input 708, representative input 716, machine-learning models 712, etc.). For example, the task specification 704 may include data associated with the member (e.g., such as communications between the member and the representative, the user model, and/or the like) over a predetermined time interval (e.g., such as over a previous day) from which one or more tasks may be identified and recommended to the user for performance by the task-facilitation service. The task specification 704 may include all data associated with the member, a predetermined quantity of data, a data received and/or generated over a particular time interval, and/or the like. In some instances, the task specification 704 may include a combination of member input 708, output from machine-learning models 712, and/or representative input 716.


In some instances, the task specification 704 may be augmented with additional data associated with the member, the identified task of the task specification 704, and/or the like. For example, when a task is suggested (e.g., between a communication session between the member and a representative, between a conversation between the member and another individual, etc.) or expressly defined (e.g., by the member or the representative), a task specification 704 may be generated to encapsulate a dataset that corresponds to the defined or suggested task. Data from devices associated with the member, sensors, cameras, application data associated with the member, third-party service associated with the member, other members, other individuals associated with the member, combinations thereof, or the like.


The member input 708 may correspond to any type of input from the member that may be related to a task. The representative input 716 may correspond to any type of input from the representative that may be related to a task for the member. The member input 708 and/or the representative input 716 may include text, audio, video, data from other sources (e.g., devices, applications, and/or sensors associated with the member, or the like), combinations thereof, or the like. For example, the member input 708 may directly define a task by providing input “I need help with an upcoming move to Denver”. In another example, the member input 708 indicating “I really like the beach” may define a task specification 704 that corresponds to a beach event (e.g., a trip to the beach, a vacation, beach activities, etc.).


Some input (from the member, representative, or from the other sources) may be processed by the machine-learning models 712. For example, sensor data may be processed by the machine-learning models to identify possible task recommendations for the member. For example, sensor data may be processed to indicate the member's HVAC system may be losing efficiency or otherwise not operating as it should. Similarly, some input from the member or representative (e.g., such as natural language input) may be processed to identify possible tasks. For example, a member may correspond with the representative to discuss activities that the member is interested in. The activities are not expressly defined as tasks but may be indicative of tasks that the member may approve.


The machine-learning models 712 may be configured to process the member input 708 (e.g., text, audio, video, and/or the like), the representative input 716 (e.g., text, audio video, and/or the like), input from one or more other sources associated with the member, and/or the like to identify input indicative of a possible task. For instance, the other sources may include input such as, but not limited to, information generated from devices associated with the member (e.g., IoT devices, mobile devices, sensors, home-automation devices, and/or the like), information from other members associated with the member (e.g., such as friends and/or family), information from applications or software services associated with the member (e.g., calendars, contacts, SMS or direct messaging, email, to-do lists, shopping lists, and/or the like), information from services subscribed to by the member (e.g., meal-prep services, media services, etc.), combinations thereof, or the like.


In some instances, the member may determine a quantity of information, types of information, sources of information, and/or the like that can be input to task-facilitation service 102 or processed by task-facilitation service 102. Some members may provide all information to the task-facilitation service 102 and/or indicate that the task-facilitation service 102 can provide any recommended tasks based on that information. Other members may limit the information provided to the task-facilitation service 102 and/or the quantity and/or types of tasks that the task-facilitation service 102 can generate. This may prevent the task-facilitation service 102 from being too invasive to some members (e.g., having access to information and/or recommending tasks that the member may not intend for a third-party, etc.). The task-facilitation service 102 may provide an interface to the member to enable selection of information, information types, information sources, etc. In some instances, the representative 106 assigned to the member may request input confirming that access to some information is to remain restricted or the like. Similarly, the task-facilitation service 102 may provide an interface to the member to enable selection of a quantity of tasks, type of tasks, frequency with which to recommend tasks, etc. for the task creation sub-system 302.


The machine-learning models 712 may include multiple machine-learning models each being configured to process a particular set of inputs, generate particular outputs, generate particular types of predictions, and/or the like. The machine-learning models 712 may process input data according to a hierarchical design in which models may execute in a particular order. In some instances, when a set of input data indicative of a task is identified (e.g., with a likelihood that is greater than a threshold), data processing may temporary pause to prevent wasting processing resources and/or identifying too many possible tasks and overloading the member or representative). In other instances, the data processing may continue until the data is processed (e.g., regardless of how many tasks are identified). In those instances, the representative and/or the task-facilitation service 102 may determine which tasks identified by the machine-learning model are to be presented to the member.


Examples of machine-learning models in the machine-learning models 712 include, one or more machine-learning models configured to parse natural language input from the member to identify data corresponding to a possible task for the member. The one or more machine-learning models may include one or more natural language processors that can convert audio and/or video to text, parse text to derive a semantic meaning such as an interest or intent. The one or more machine-learning models may also include classifiers that may predict a likelihood that a member will select a particular task. If the likelihood is greater than a threshold, then a task-specification according to the task may be generated. In some instances, the threshold may be set low (e.g., approximately 70%), to increase a quantity of possible tasks that can be provided to the member. The threshold may be dynamically determined based on a quantity of tasks that are being generated and the member feedback.


Natural language processors may include a set of layers that parse text, audio, and/or video conversations of the member to determine possible intents and/or interests of the member. For example, the natural language processors may include a first layer that parses the input to derive a structure and semantic meaning of the input. The natural language processors may include a second layer that classifies the structure and semantic meaning according to a particular intent, interest, task type, category, location, timestamp (e.g., date and/or time), event, combinations thereof, or the like. In some instances, another machine-learning model (e.g., another classifier, or the like) may be used to categorize the output from the natural language processors as corresponding to a particular task, task type, or the like.


The first layer of the natural language processor may first derive a text from of the input (e.g., if the input is not already in text form) using a speech recognition machine-learning model, gesture-based machine-learning model (e.g., for defining text from gestures such as facial expression, sign language, combinations thereof, or the like). The text is then processed by removing punctuation and stop words (e.g., words that do not provide semantic meaning such as articles, etc.). A lemmatizing process is then executed that reduces words to a root form (e.g., removing conjugation, suffix, etc.). In some instances, the word variation may be further reduced by replacing words with a particular synonym. For example, the words “enabling” and “facilitating” may be processed to a base form of “enable” and “facilitate” and “facilitate may be replaced with “enable” to reduce the quantity of words that need to be classified. The data may then be vectorized (e.g., input vector comprising an order subset of the remaining processed words) and the vector may be classified by a semantic classifier.


In one example, the input “I love hiking or surfing near Cocoa Beach”, may be processed as “I”, “love”, “hike”, “surf”, “Cocoa Beach”. Once passed into the semantic classifier, the semantic classifier may identify that the member has interests including hiking and surfing. The classifier may additionally qualify the interests based on the other information identified in the input. For example, the term Cocoa Beach may be used to modify the interest hiking to include hiking near beaches, hiking near the Atlantic Ocean, or hiking in Florida. A last layer of the set of layers of a natural language processors may include another classifier that classifies an interest and/or intent as a potential task. Returning to the previous example, the last layer may classify interest “hike”, “Cocoa Beach” by identifying hiking-based activities near Cocoa Beach, Fla.


In some instances, the natural language processor may be a first machine-learning model of the machine-learning models 712 to execute in the hierarchy due to the models classifying input from the member. Other machine-learning models may execute after the natural language processor (or in parallel therewith). As an example, a next set of machine-learning models in the hierarchy can include machine-learning models that process sensor data (e.g., that may identify anomalies within the member's environment that may need to be addressed, etc.). For example, a machine-learning model may process sensor data IoT devices or other sensor-based devices accessible to the task-facilitation service 102. Examples of the events detectable by the machine-learning model include, but are not limited to, excessing energy usage events, water events (e.g., from humidity and temperature sensors, or the like), HVAC events (e.g., from one or more temperature sensors, or the like), security events (e.g., break ins from microphones and/or computer vision, open doors or windows, etc.), environmental repair events (e.g., detected through computer vision image processing, or the like of video data), and/or any other event that may be detected through processing of data from device associated with the member.


A next set of machine-learning models in the hierarchy may include machine-learning models configured to process application data and/or data from third-party services, such as, but not limited calendar, email, direct messaging services (e.g., SMS or the like), social media services, music streaming services, video streaming services, to-do lists, shopping lists, and/or any application executing on a device associated with the member that may be usable to suggest a task of interest to the member. For example, these machine-learning models may process the members calendar to identify an upcoming birthday or a streaming service to determine musicians of interest to the member that the member may want to see live, etc. Additional machine-learning models may be added to process other types of data or data from other information sources.


In some instances, the member and/or the representative may define the hierarchy of machine-learning models. In other instances, the hierarchy of machine-learning models may be defined by the task-facilitation service. The member and/or the representative may modify the hierarchy at any time through a user interface. For instance, the member may select a particular machine-learning model to be higher or lower in the hierarchy than initially presented. The member and/or the representative may also indicate how hierarchy of machine-learning models is to execute, the quantity of potential tasks before processing is terminated, and/or the like.


Once a potential task is defined by the member, defined by the representative, suggested by the member, suggested by the representing, identified by the machine-learning models 712, or the like, a task specification 704 may be generated that encapsulates the data associated with the task. The data may be structured (e.g., according to type, source, time, and/or the like) or unstructured (e.g., stored in a same or similar format as it is received from a respective information source). In some instances, the task specification 704 may include a predetermined quantity information from the member input 708, the machine-learning models 712, the representative input 716, and/or from other sources. The information included in the predetermined quantity of received information may be selected based on a semantic classification of the information (e.g., information associated with a suggested task using a semantic classifier, natural language processors, and/or the like as previously described), timestamp (e.g., such as that information received over the last x hours once a potential task was identified), data types, data sources, and/or the like.


The task specification 704 may be passed to feature extractor 720 which may derive a set of features from which the representative or another machine-learning model can identify a predetermined task. In some instances, too many features in the set of features may reduce the accuracy of task identification. Too many features may cause noise, improper feature weights, etc. that can affect the quality and/or accuracy of the result of processing the feature set. In some examples, feature extractor 720 may reduce the set of features to improve the quality of the tasks identified. For example, feature extractor may derive new features from the set of features that correspond to two or more features. Alternatively, or additionally a dimensionality reduction algorithm may be executed on the set of features or on the task specification 704 to reduce the quantity of features. For example, the task specification 704 may perform principal component analysis, a discriminant analysis (linear, general, etc.), or the like. In other examples, feature extractor 720 may add new features derived from features in the set of features to compensate for unbalanced feature weights (e.g., adding additional features to under weighted features may increase those weights), or the like.


The feature extractor 720 may generate a feature vector from the set of features. The feature vector may be an ordered sequence of features from the set of features. The features may be ordered according to a particular dimension (e.g., task type, data type, time, information source, etc.).


Task creation sub-system 302 may determine whether the feature vector includes an identification of task type that corresponds to predefined task type of the creation sub-system 302 (e.g., such as a known task, a previously generated task, and/or the like). If the feature vector does not include an identification of a task type that corresponds to a predefined task type of the task creation sub-system 302, then the feature vector, may be passed directly to task generator.


If the feature vector includes an identification of a task type that corresponds to a predefined task type of the creation sub-system 302, then the feature vector may be passed to task templates 724. The task templates 724 may include a database of task templates. A task template can include a set of empty fields that can be populated with features from the feature vector and/or derived from the feature vector by task generator 728. For example, the task template “buy an object” includes a field “object” to be replaced with a particular object included in or derived from the feature vector. More specific task templates may include many fields (e.g., particular objects, vendors, timestamps, locations, third-party services, activities, etc.) that may be inserted into the task template.


The task templates 724 may be organized according to hierarchy of increasing specificity. The hierarchy may begin with task templates that correspond to a base type (e.g., object, service, event, etc.). The next layer of the hierarchy may include task templates that are more specific variation of the previous layer's task templates. For example, a subsequent layer after a task template of object may include an action in association with the object such as buy an object, sell an object, rent an object, etc. A subsequent layer may include task templates that are even more specific such as buy a particular object from a particular vender at a particular time, etc. The task creation sub-system 302 may identify a task template that is closest to the possible task identified by task creation sub-system 302. The identified task template may be passed to task generator with the feature vector.


The task generator 728 may include a machine-learning model, an automated process, a software process driven by the representative, or the like that analyzes the feature vector (and the task template if received from task templates 724) and outputs a task recommendation. Task generator 728 may be trained using training data 732 and user models 736 (associated with a particular member for which task recommendations are to be generated and/or associated with other members having similar characteristics to the particular member, etc.) to improve the generation of task recommendations that are tailored to a particular member. In a machine-learning model context, training the task generator 728 includes training the machine-learning model using supervised learning, unsupervised learning, semi supervised learning, reinforcement learning, and/or the like. The machine-learning model may be trained over a set of iterations, over a predetermined time interval, and/or until a predetermined accuracy metric is reached.


In a non-machine-learning-model context, training the task generator 728 may include processing data associated with the member to enable automatic selection of task templates that corresponds to the feature vector (if one has not been previously identified), automatic selection of values of fields of task templates, and/or the like. For example, features associated with the member (e.g., from the feature vector, user model, and/or the like) may be associated with a use metric usable to define a likelihood that the feature may be used for a particular field type when defining a task. The task generator 728 may suggest, for each field of a task template, the feature having a highest use metric associated with the particular field. For example, a task recommendation corresponding to “order a birthday cake” may include a set of features that may correspond to a date in which the cake should be ordered (e.g., birthdays stored in the user model that corresponds the member, family of the member, friends of the member, etc.) with each feature being associated with a use metric. The task generator 728 may identify the feature with the highest use metric (e.g., a date of a close family member for which the member has previously purchased a birthday cake, the date for which the member is most likely to select based on the user model, etc.) to suggest as being the value for the date field of the “order a birthday cake” task recommendation. Alternatively, the task generator 728 may automatically populate the date field with the feature having a highest use metric. The representative and/or the member may approve the date feature or select a different date feature if needed.


Training data 732 may include historical task specifications 704, task templates 724, and task recommendations generated for the member (or members having similar characteristics to the member). Training data 732 may also include additional data such as, but limited to, historical task specifications generated for other members, historical task templates generated for other members, user models of other members, task recommendations generated for other members, procedurally generated data, and/or the like. The training data 732 may be used to train the machine-learning model of the task generator 728 and/or the representative to generate task recommendations that may be of interest to the member.


The training data 732 may include data that indicates the member's preferences, interests, and/or the like. For example, the training data 732 may indicate events that the member is likely to find of interest, particular vendors or third-party services for use in performing tasks, etc. The training data may also cause the task generator 728 and/or the representative to generate task recommendations that conform to a format preferable to the member, include one or more values for fields that correspond to preferences of the member, and/or communicated in a format preferable to the member. For example, the training data may indicate that the member prefers task recommendation to be communicated via push notifications rather than SMS or email. The task generator 728 may identify these details in the training data 732 so as to generate task recommendations that are tailored to the member and in a manner preferable to the member.


User models 736 may include information associated with the member (e.g., such as the member profile or the like) that is generated or received from the task-facilitation service (e.g., such as but not limited to, historical tasks of the member, historical tasks of members have similar characteristics, etc.), the member (e.g., such as, but not limited to, member provided answers to survey questions, input provided by the member, devices associated with the member which the member has provided access, devices accessible to the task-facilitation service, applications associated with the member, third-party services connected to the member, etc.), the representative interacting with the member, other members interacting with the member, other individuals interacting with the member, combinations therefor, or the like.


In some instances, features may be extracted and/or derived from the member information. The features may be passed as input into a trained machine-learning model to generate a trained model that corresponds to the member. The model may be queried, executed, and/or parsed to generate predictions associated with the member (e.g., likelihood of interest in particular tasks, identification of predicted preferences, identification of known preferences, etc.), identify characteristics of the member, identify historical tasks requested and/or executed by the member, identify information associated with the member, derive new information associated with the user (e.g., based any of the aforementioned information associated with the member), and/or the like. The user model may be used to tailor task recommendations to particular members (e.g., via selection of particular vendors that the member has used before or indicated a preference for, selection of particular travel accommodations the member has used before or indicated a preference for, selection of particular communication protocols and/or formats, selection of particular task recommendation formats, etc.).


The trained task generator 728 may generate a task recommendation form the feature vector that tailored to the particular member. As previously noted, the task generator 728 may also generate that is likely to be approved by the member, in a format that is preferrable to the member, transmitted or presented using a communication protocol that is preferrable to the member, and/or the like. In some instances, the task generator 728 may generate the task recommendations by populating the fields in the task template (if present) with the features in the feature vector. If any information is unknown or missing, the task generator 728 and/or the representative may request the information from the member (e.g., through the chat interface, SMS, email, the task-facilitation service, and/or the like).


If no task template is identified, then the task generator 728 and/or the representative may process the feature vector and predict a task that can be recommended to the member. The task generator 728 may generate tasks that are likely to be of interest to the member, based on preferences of the member, and/or based on other criteria associated with the member. For example, the task generator 728 and/or the representative may generate a task recommendation of an activity that may be of interest to the member, which may be based on the task specification 704, the user model associated with the member, and/or the training data 732 (e.g., the user model and/or historical tasks performed by or for the member, etc.). In some instances, the task generator 728 and/or the representative may select a task from a list of tasks. The list may be generated for particular members based on previous tasks performed by the member, tasks previously selected by the member, tasks predicted to be of interest to the member (e.g., based on the user model associated with the member), and/or the like. In other instances, the task generator 728 and/or the representative may select any task that the task generator 728 and/or the representative predicts is likely to be of interest to the member. Once a task is selected (from a list, by the machine-learning model or representative, etc.), the task generator 728 may retrieve the task template that corresponds to the task to define a task recommendation for the member. The task generator 728 may then populate the fields of the task template using the feature vector, user model associated with the member, member input 708 and/or other input, representative input 716 and/or other input, and/or the like


In some examples, the task generator 728 may output the task recommendation as well as an accuracy metric. The accuracy metric may be indicative of how well the generated task recommendation corresponds to the feature vector and/or user model, the internal data of the task generator 728, and/or from historical task recommendations generated for the member. In other words, the accuracy metric may indicate a likelihood that the generated task recommendation is likely to be approved by the member. If likelihood is less that a threshold, then the task recommendation may be purged. If the likelihood is greater than the threshold, then the task recommendation may be transmitted to tasks 740.


Tasks 740 may be a buffer that stores a set of tasks for presentation to the representative 106 for selection (e.g., by the representative 106 and/or the member). Tasks 740 may include an interface (e.g., such as a display interface, communication interface, application programming interface, and/or the like) that can present the tasks generated by task generator 728 to the representative 106 and/or the member 118. Tasks 740 may rank the tasks in an order determined by task generator 728, by the member 118 (e.g., via user input, the user model, or the like), and/or by the representative 106. For example, the ranking may be based on the output from the task generator 728 (e.g., the accuracy metric and/or a metric indicating the likelihood that the task recommendation will be approved by a member, etc.).


In some examples, the representative 106 may review the task recommendations via an interface to: select one or more task recommendations to be transmitted to (or displayed by) the member, rank the task recommendations (if more than one), modify one or more task recommendations, delete one or more task recommendations, combinations thereof, or the like. For example, a task recommendation may be modified by the representative 106 to better suit the member. In some examples, the task recommendations may be presented to the member for selection. In those examples, the task recommendations may be automatically generated by the task creation sub-system 304 and selected by the member (e.g., without intervention by the representative 106). The selected task recommendation may then be presented to the member for approval/selection.


The aspects of the task creation sub-system 304 may be further trained through reinforcement learning. The output from the task generator 728 (e.g., task recommendations, accuracy metrics, and/or the like), may be transmitted to training data 732 in addition to tasks 740. Over time the training data 732 may include more data associated with recent task recommendations, which may be more likely to be of interest to the member than older task recommendations. The training data 732 may also receive feedback from the member 118 and/or input from the representative 106 indicating which task recommendations were selected (e.g., approved for presentation to the member), which task recommendations were not selected, which task recommendations were modified (e.g., including an identification of those modifications), information associated with the entities that performed and/or executed the task (e.g., the task-facilitation service, the third-party service provider, the representative, other representatives, combinations thereof, or the like), and/or the like. The training data 732 may store an associated between the task recommendations generated by the task generator 728 and an assigned label that is based on the input from the representative 106. In one example, approved task recommendations may be assigned a label of “true”, “1”, or the like task recommendations that were not approved may be assigned “false”, “0”, or the like. Modified task recommendations may be assigned neutral value (e.g., “0.5”, null, or the like) or the same value as the value assigned to task recommendations that were not approved.


For reinforcement learning, the task generator 728 may periodically (e.g., after every task recommendation is generated, after every n task recommendation is generated, after n hours, etc.) execute a training step that processes one or more task recommendations and their corresponding labels to refine the machine-learning models or other processes of the task generator 728 or representative. Reinforcement learning may incrementally improve the task recommendations output from the task generator 728 (e.g., also increasing the accuracy metric).


In some instances, the accuracy metric (or other metrics output from the task generator 728 such as precision, logarithmic loss area under the curve F1 score, mean squared error, and/or the like) may indicate that the accuracy of the machine-learning models or representative 106 is below a threshold accuracy (or exceeds a threshold defined based on the other metrics). In one example, the member may indicate that the task creation sub-system 304 may not be generating quality task recommendations. An indication that the task generator 728 may not be generating proper task recommendations (e.g., task recommendations with errors, a high frequency of unapproved task recommendations, etc.). In those instances, the task generator, the representative 106, and/or the task creation sub-system, may be retrained. For example, the training data 732 (which may include recent output from the task generator 728 and corresponding labels) may be used to retrain the task generator 728 and/or the representative 106 to enable generation of more accurate task recommendations (e.g., more likely to be of interest to the member, meet the member's expectations, etc.). In some examples, the task generator 728 may be purged (e.g., returned to an untrained state) and retrained. In other examples, the task generator 728 may re-execute the training phase.


Since the training data 732 includes additional data from execution of the task generator 728 since the last training phase, training or retraining the task generator 728 may improve the performance of the task generator 728 (and/or the representative 106) in even when the training phase is triggered on a working task generator 728. In some instances, the task generator 728 may periodically be retrained. The retraining may be executed in addition to the reinforcement learning. For example, the task generator 728 may be retrained every x days, while reinforcement learning may trigger reinforcement training every n hours (or after n task recommendations are generated, or as previously described).


The output from the task generator 728 may also be transmitted to the feature extractor 720. In some instances, the task generator 728 and/or the representative 106 may determine features of the feature vector that are indicative of an identification of a task or may be usable in generating the task recommendation. Other features in the feature vector may be less useful, may not be used at all, may induce noise, or otherwise reduce the accuracy of the task generator 728 and/or the representative 106, or the like. For example, a feature corresponding a feature corresponding to when a correspondence occurred may not be indicative of the task identified in the correspondence or when the task is to be performed. The output from the task generator 728 may be used by the feature extractor 720 and/or the representative 106 to refine the feature extraction (e.g., removing features, adding features, modifying features, deriving new features, etc.). In some instances, the feature extractor 720 may transmit an indication of the refinement to the task specification 704 to improve future member input 708, machine-learning models 712 (e.g., through retraining, reinforcement learning, and/or the like), and/or the representative input 716. The improvement may provide better task specifications by eliminating unnecessary or superfluous data (e.g., which may cause noise, etc.), adding or removing information sources (e.g., which may improve feature extractor 720, the resulting feature vector, and/or task recommendations generated by the task generator 728, etc., combinations thereof, or the like.



FIG. 8 depicts an illustrative example of an environment 800 in which a task coordination system 114 assigns and monitors performance of a task for the benefit of a member 118 by a representative 106 and/or one or more third-party services 116 in accordance with aspects of the present disclosure. In the environment 800, a representative 106 may access a proposal creation sub-system 802 of the task coordination system 114 to generate a proposal for completion of a task for the benefit of the member 118. The proposal creation sub-system 802 may be implemented using a computer system or as an application or other executable code implemented on a computer system of the task coordination system 114. Once the representative 106 has obtained the necessary task-related information from the member 118 and/or through the task recommendation system (e.g., task parameters garnered via evaluation of tasks performed for similarly situated members, etc.), the representative 106 can utilize the proposal creation sub-system 802 to generate one or more proposals for resolution of the task.


As noted above, a proposal may include one or more options presented to a member 118 that may be created and/or collected by a representative 106 while researching a given task. In some instances, a representative 106 may access, via the proposal creation sub-system 802, one or more templates that may be used to generate these one or more proposals. For example, the proposal creation sub-system 802 may maintain, within the task datastore 110 or internally, proposal templates for different task types, whereby a proposal template for a particular task type may include various data fields associated with the task type. The task datastore 110 may be associated with a resource library. The resource library may maintain the various task templates, proposal templates, representative models (and/or any information associated therewith), user modes, (and/or any information associated therewith), and/or like for the creation of tasks, proposals for completion of different tasks, etc.


In some examples, the data fields within a proposal template can be toggled on or off to provide a representative 106 with the ability to determine what information is presented to the member 118 in a proposal. The representative 106, based on its knowledge of the member's preferences, may toggle on or off any of these data fields within the template. For example, if the representative 106 has established a relationship with the member 118 whereby the representative 106, with high confidence, knows that the member trusts the representative 106 in selecting reputable businesses for its tasks, the representative 106 may toggle off a data field corresponding to the ratings/reviews for corresponding businesses from the proposal template. Similarly, if the representative 106 knows that the member 118 is not interested in the location/address of a business for the purpose of the proposal, the representative 106 may toggle off the data field corresponding to the location/address for corresponding businesses from the proposal template. While certain data fields may be toggled off within the proposal template, the representative 106 may complete these data fields to provide additional information that may be used by the proposal creation sub-system 802 to supplement proposals maintained by the task coordination system 114 within the resource library.


In some examples, the proposal creation sub-system 802 may utilize a machine learning algorithm or artificial intelligence to generate recommendations for the representative 106 regarding data fields that may be presented to the member 118 in a proposal. The proposal creation sub-system 802 may use, as input to the machine learning algorithm or artificial intelligence, a member profile or model associated with the member 118 from the user datastore 108, historical task data for the member 118 from the task datastore 110, and information corresponding to the task for which a proposal is being generated (e.g., a task type or category, etc.). The output of the machine learning algorithm or artificial intelligence may specify which data fields of a proposal template should be toggled on or off. The proposal creation sub-system 802, in some instances, may preserve, for the representative 106, the option to toggle on these data fields in order to provide the representative 106 with the ability to present these data fields to the member 118 in a proposal. For example, if the proposal creation sub-system 802 has automatically toggled off a data field corresponding to the estimated cost for completion of a task, but the member 118 has expressed an interest in the possible cost involved, the representative 106 may toggle on the data field corresponding to the estimated cost.


Once the representative 106 has generated a new proposal for the member 118, the representative 106 may present the proposal and any corresponding proposal options to the member 118. Further, the proposal creation sub-system 802 may store the new proposal in the user datastore 108 in association with a member profile (and/or user model, etc.). In some instances, when a proposal is presented to a member 118, the proposal creation sub-system 802 may monitor member interaction with the representative 106 and with the proposal to obtain data that may be used to further train the machine learning algorithm or artificial intelligence. For example, if a representative 106 presents a proposal without any ratings/reviews for a particular business based on the recommendation generated by the proposal creation sub-system 802, and the member 118 indicates (e.g., through messages to the representative 106, through selection of an option in the proposal to view ratings/reviews for the particular business, etc.) that they are interested in ratings/reviews for the particular business, the proposal creation sub-system 802 may utilize this feedback to further train the machine learning algorithm or artificial intelligence to increase the likelihood of recommending presentation of ratings/reviews for businesses selected for similar tasks or task types.


As noted above, the task coordination system 114 maintains a resource library that may be used to automatically populate one or more data fields of a particular proposal template. The resource library may include entries corresponding to businesses and/or products previously used by representatives for proposals related to particular tasks or task types or that are otherwise associated with particular tasks or task types. For instance, when a representative 106 generates a proposal for a task related to repairing a roof near Lynnwood, Wash., the proposal creation sub-system 802 may obtain information associated with the roofer selected by the representative 106 for the task. The proposal creation sub-system 802 may generate an entry corresponding to the roofer in the resource library and associate this entry with “roof repair” and “Lynnwood, Wash.” Thus, if another representative receives a task corresponding to repairing a roof for a member located near Lynnwood, Wash., the other representative may query the resource library for roofers near Lynnwood, Wash. The resource library may return, in response to the query, an entry corresponding to the roofer previously selected by the representative 106. If the other representative selects this roofer, the proposal creation sub-system 802 may automatically populate the data fields of the proposal template with the information available for the roofer from the resource library.


The representative 106 can query the resource library to identify one or more third-party services and other services/entities affiliated with the task-facilitation service 102 from which to solicit quotes for completion of the task. For instance, for a newly created task, the representative 106 may transmit a job request to these one or more third-party services 116 and other services/entities. Through an application or web portal provided by the task-facilitation service 102, a third-party service or other service/entity may review the job offer and determine whether to submit a quote for completion of the task or to decline the job request. If a third-party service or other service/entity opts to reject the job request, the representative 106 may receive a notification indicating that the third-party service or other service/entity has declined the job request.


Alternatively, if a third-party service or other service/entity opts to bid to perform the task, the third-party service or other service/entity may submit a quote for completion of the task. The representative 106 may use any provided quotes from the third-party services 116 and/or other services/entities to generate different proposal options for completion of the task. These different proposal options may be presented as a proposal to the member 118 through the task-specific interface corresponding to the particular task that is to be completed. If the member 118 selects a particular proposal option from the set of proposal options presented through the task-specific interface, the representative 106 may transmit a notification to the third-party service or other service/entity that submitted the quote associated with the selected proposal option to indicate that it has been selected for completion of the task.


As noted above, the representative 106, via a proposal template, may generate additional proposal options for businesses and/or products that may be used for completion of a task. For instance, for a particular proposal, the representative 106 may generate a recommended option, which may correspond to the business or product that the representative 106 is recommending for completion of a task. Additionally, in order to provide the member 118 with additional options or choices, the representative 106 can generate additional options corresponding to other businesses or products that may complete the task. In some instances, if the representative 106 knows that the member 118 has delegated the decision-making with regard to completion of a task to the representative 106, the representative 106 may forego generation of additional proposal options outside of the recommended option. However, the representative 106 may still present, to the member 118, the selected proposal option for completion of the task in order to keep the member 118 informed about the status of the task.


Once the representative 106 has completed defining a proposal via use of a proposal template, the representative 106 may present the proposal to the member 118 through the application or web portal provided by the task-facilitation service. In some instances, the representative 106 may transmit a notification to the member 118 to indicate that a proposal has been prepared for a particular task and that the proposal is ready for review via the application or web portal provided by the task-facilitation service. The proposal presented to the member 118 may indicate the task for which the proposal was prepared, as well as an indication of the one or more options that are being provided to the member 118. For instance, the proposal may include links to the recommended proposal option and to the other options (if any) prepared by the representative 106 for the particular task. These links may allow the member 118 to navigate amongst the one or more options prepared by the representative 106 via the application or web portal. In some instances, the representative 106 may transmit the proposal to the member 118 via other communication channels, such as via e-mail, text message, and the like.


For each proposal option, the member may be presented with information corresponding to the business or product selected by the representative 106 and corresponding to the data fields selected for presentation by the representative 106 via the proposal creation sub-system 802. In some instances, the member 118 may select what details or data fields associated with a particular proposal are presented via the application or web portal. For example, if the member 118 is presented with the estimated total for each proposal option and the member 118 is not interested in reviewing the estimated total for each proposal option, the member 118 may toggle off this particular data field from the proposal via the application or web portal. Alternatively, if the member 118 is interested in reviewing additional detail with regard to each proposal option (e.g., additional reviews, additional business or product information, etc.), the member 118 may request this additional detail to be presented via the proposal.


As noted above, based on member interaction with a provided proposal, the proposal creation sub-system 802 may further train a machine learning algorithm or artificial intelligence used to determine or recommend what information should be presented to the member 118 and to similarly-situated members for similar tasks or task types. The proposal creation sub-system 802 may monitor or track member interaction with the proposal to determine the member's preferences regarding the information presented in the proposal for the particular task. Further, the proposal creation sub-system 802 may monitor or track any messages exchanged between the member 118 and the representative 106 related to the proposal to further identify the member's preferences. In some instances, the proposal creation sub-system 802 may solicit feedback from the member 118 with regard to proposals provided by the representative 106 to identify the member's preferences. This feedback and information garnered through member interaction with the representative 106 regarding the proposal and with the proposal itself may be used to retrain the machine learning algorithm or artificial intelligence to provide more accurate or improved recommendations for information that should be presented to the member 118 and to similarly situated members in proposals for similar tasks or task types. The proposal creation sub-system 802 may further use the feedback and information garnered through member interaction with the representative 106 to update a member profile or model within the user datastore 108 for use in determining recommendations for information that should be presented to the member 118 in a proposal.


In some instances, each proposal presented to the member 118 may specify any costs associated with each proposal option. These costs may be presented in different formats based on the requirements of the associated task or project. For instance, if the proposal corresponds to performance of the task by a third-party service or other service/entity associated with the task-facilitation service 102, the proposal may include a quote submitted by the third-party service or other service/entity in response to the job offer from the representative 106. The quote may indicate any costs associated with different aspects of the task, as well as any additional fees that may be required for performance of the task (e.g., taxes, material costs, etc.). If a member 118 accepts a particular proposal option for a task or project, the representative 106 may communicate with the member 118 to ensure that the member is consenting to payment of the presented costs and any associated taxes and fees for the particular proposal option. In some instances, if a proposal option is selected with a static payment amount, the member 118 may be notified by the representative 106 if the actual payment amount required for fulfillment of the proposal option exceeds a threshold percentage or amount over the originally presented static payment amount.


In some examples, if a member 118 accepts a proposal option from the presented proposal, the task coordination system 114 moves the task associated with the presented proposal to an executing state and the representative 106 can proceed to execute on the proposal according to the selected proposal option. For instance, the representative 106 may contact one or more third-party services 116 and/or other services/entities associated with the task-facilitation service 102 to coordinate performance of the task according to the parameters defined in the proposal accepted by the member 118. Alternatively, if the representative 106 is to perform the task for the benefit of the member 118, the representative 106 may begin performance of the task according to the parameters defined in the proposal accepted by the member 118.


In some examples, the representative 106 utilizes a task monitoring sub-system 804 of the task coordination system 114 to assist in the coordination of performance of the task according to the parameters defined in the proposal accepted by the member 118. The task monitoring sub-system 804 may be implemented using a computer system or as an application or other executable code implemented on a computer system of the task coordination system 114. If the coordination with a third-party service may be performed automatically (e.g., the third-party service provides automated system for ordering, scheduling, payments, etc.), the task monitoring sub-system 804 may interact directly with the third-party service to coordinate performance of the task according to the selected proposal option. The task monitoring sub-system 804 may provide any information from a third-party service to the representative 106. The representative 106, in turn, may provide this information to the member 118 via the application or web portal utilized by the member to access the task-facilitation service. Alternatively, the representative 106 may transmit the information to the member 118 via other communication methods (e.g., e-mail message, text message, etc.) to indicate that the third-party service has initiated performance of the task according to the selected proposal option. If the task is to be performed by the representative 106 for the benefit of the member 118, the task monitoring sub-system 804 may monitor and interact with the representative 106 to coordinate performance of the task according to the parameters defined in the proposal accepted by the member 118. For instance, the task monitoring sub-system 804 may provide the representative 106 with any resources (e.g., payment information, task information, preferred sources for purchases, etc.) that may be required for performance of the task.


In some examples, the task monitoring sub-system 804 can monitor performance of tasks by the representative 106 and/or third-party services 116 for the benefit of the member 118. For instance, the task monitoring sub-system 804 may record any information provided by the third-party services 116 with regard to the timeframe for performance of the task, the cost associated with performance of the task, any status updates with regard to performance of the task, and the like. The task monitoring sub-system 804 may associate this information with a data record corresponding to the task being performed within the task datastore 110. Status updates provided by third-party services 116 may be provided automatically to the member 118 via the application or web portal provided by the task-facilitation service 102 and to the representative 106. Alternatively, the status updates may be provided to the representative 106, which may provide these status updates to the member over the chat session established between the member and the representative 106 or through other communication methods. If the representative 106 is performing the task for the benefit of the member 118, the representative 106 may provide status updates with regard to its performance of the task to the member 118 via the application or web portal provided by the task-facilitation service 102. The task monitoring sub-system 804 may associate these status updates with a data record corresponding to the task being performed within the task datastore 110.


In some instances, the task monitoring sub-system 804 may allow the third-party service or other service/entity engaged in performing the task to communicate with the member 118 directly to provide status updates related to the task. For instance, the task monitoring sub-system 804 may facilitate a communication channel between the member 118 and the third-party service or other service/entity through which the member 118 and the third-party service or other service/entity may exchange messages related to the task being performed. This communications channel may be provided through the interface specific to the task such that the communications channel is distinct from the general communications channel between the member 118 and the representative 106 and from any other task-related communications channels between the member 118 and the representative 106. In some instances, the third-party service or other service/entity may be added to the existing task-specific communications channel between the member 118 and the representative 106. This may allow the member 118 and the representative 106 to actively engage the third-party service or other service/entity as the third-party service or other service/entity performs the assigned task.


As noted above, once a task has been completed, the member 118 may provide feedback with regard to the performance of the representative 106 and/or third-party services 116 or other services/entities associated with the task-facilitation service that performed the task according to the proposal option selected by the member 118. For instance, the member 118 may exchange one or more messages with the representative 106 over the task-specific chat session or other communications channel to indicate its feedback with regard to the completion of the task. In some instances, the task monitoring sub-system 804 provides the feedback to the proposal creation sub-system 802, which may use a machine learning algorithm or artificial intelligence to process feedback provided by the member 118 to improve the recommendations provided by the proposal creation sub-system 802 for proposal options, third-party services 116 or other services/entities that may perform tasks, and/or processes that may be performed by a representative 106 and/or third-party services 116 or other services/entities for completion of similar tasks. For instance, if the proposal creation sub-system 802 detects that the member is unsatisfied with the result provided by a third-party service or other services/entities for a particular task, the proposal creation sub-system 802 may utilize this feedback to further train the machine learning algorithm or artificial intelligence to reduce the likelihood of the third-party service or other services/entities being recommended for similar tasks and to similarly-situated members. As another example, if the proposal creation sub-system 802 detects that the member is pleased with the result provided by a representative 106 for a particular task, the proposal creation sub-system 802 may utilize this feedback to further train the machine learning algorithm or artificial intelligence to reinforce the operations performed by representatives for similar tasks and/or for similarly-situated members.



FIG. 9 depicts an illustrative example of a proposal creation sub-system 902, which generates and ranks proposals of recommended tasks configured to be performed for the benefit of a member in accordance with aspects of the present disclosure. In some instances, a proposal may be an implementation of a task that is configured for execution (e.g., performable by the member, the representative, by one or more third-party service providers, and/or the like). For example, the proposal for an evening activity may include (but is not limited to) an identification of the activity, identification of the cost of the activity, an identification of one or more vendors or service providers to acquire tickets, identification of travel accommodations (e.g., flights, taxis, public transportation, hotels, etc.), cost of travel accommodations, reservations for the travel accommodations (e.g., airline tickets, hotel reservations, metro cards, etc.), food accommodations (restaurant reservations, etc.), and/or the like. In another example, a proposal for a roof repair may include an identification of the roof repair vendor, an identification of the cost, and an identification of the time over which the repair is to occur, and/or the like. In some instances, a proposal may be a complete implementation of the task such that the member need only authorize the performance of the proposal to facilitate performance of the task. In other instances, the proposal may include options and/or fields to be selected by the member.


A proposal specification 904 may include data usable by proposal creation sub-system 902 to generate a proposal such as, but not limited to representative input 908, machine-learning models 912, a task identifier 916, and/or the like. In some instances, the proposal specification 904 may include additional data such as data associated with the member (e.g., such as the user model, etc.), data associated with the selection or generation of the task by the member, data associated with the selection or generation of the task the representative 106, data associated with the selection or generation of the task, by the task creation sub-system 304, or the like. The proposal specification 904 may be generated in response to a selection of task recommendation by the member (e.g., as previously described), by the representative 106 (e.g., if authorized by the member and/or the task-facilitation service 102 to do so), by an automated service (e.g., such as an application or web portal, etc.), and/or the like.


The task ID 916 may identify a task for which a proposal is to be generated. A task template or task recommendation may be retrieved using the task ID 916. Alternatively, the representative 106 may select a task template that corresponds to the task ID 916. The task template or task recommendation may include one or more fields (e.g., a timestamp, third-party service provider, cost, activity, etc.) for which information can be included do define the implementation.


The representative input 908 may include information associated with the task, task template, task recommendations, any fields thereof, and/or the like. In some instances, the representative input 908 may include natural language correspondence (e.g., between the representative 106 and the member, between the representative 106 and another representative, between the representative 106 and other members, between the representative 106 and the task-facilitation service 102, and/or the like). In some instances, the natural language input may be included in the proposal specification 904. In other instances, the natural language input may be processed by the machine-learning models 912 and the output of that processing may be included in the proposal specification 904. Machine-learning models 912 may include one or more machine-learning models trained to process member data (e.g., any of the data described in connection to the proposal specification 904) to identify fields content to be added to a field. The machine-learning models may include, but are not limited to, natural language processors, image processors (e.g., object recognition, computer vision, etc.), classifiers (e.g., that generate single-variate or multivariate predictions based on input features, etc.), combinations thereof, or the like.


The proposal specification 904 may be passed to feature extractor 920, which may derive a set of features from which the proposal generator 924 can generate a proposal. Feature extractor 920 may operate as a filter that refines the raw set of data of the proposal specification 904 into a subset of the set of data that corresponds to the particular proposal being generated. For example, deriving features for all datapoints in the set of data may generate too many features (e.g., more features than are unusable by proposal generator 924 and/or a representative 106, features that may be contradictory or noisy, etc.), which may reduce the accuracy of the proposal generation. In some examples, feature extractor 920 may reduce the quantity of features generated by analyzing the set of data and generating and/or deriving features from the data known or likely to be usable by the proposal generator 924. In some instances, a machine-learning model (e.g., such as a classifier, or the like) may be used to classify datapoints and/or features according to a likelihood of being usable to proposal generator 924. to improve the identification tasks.


The feature extractor 920 may reduce the quantity of features generated by, eliminating features unlikely to be usably by the proposal generator 924 (e.g., below a threshold likelihood, or the like), deriving features from two or more features, applying dimensionality reduction algorithm (e.g., principal component analysis, a discriminant analysis such as linear or general, and/or the like), combinations thereof, or the like. In other examples, feature extractor 920 may add new features derived from features in the set of features to compensate for unbalanced feature weights (e.g., adding additional features to under weighted features may increase those weights to ensure equal representation), or the like.


The features extracted by feature extractor 920 may be passed to proposal generator 924. Proposal generator 924 may include one or more machine-learning models configured to generate a proposal. Alternatively, the proposal generator 924 may include one or more processes operated automatically and/or by the representative 106. The machine-learning models may identify each aspect of the proposal by predicting a likelihood that particular fields of the proposal will be approved by the member (e.g., particular dates, vendors, costs, etc.). For example, the machine-learning model may predict a particular flight and seat assignment that the member would want to select. Each prediction may be associated with a corresponding accuracy metric (e.g., a degree in which the prediction fits the model, training data 928, input features, and/or a likelihood that the prediction will be selected or approve by the member). The machine-learning models may also output a accuracy metric that corresponds to the overall proposal to provide the representative 106 and/or the member with an idea as to how well the overall proposal corresponds to the input features, the training data 928, the models, etc.


The machine-learning models and/or the representative 106 may be trained using unsupervised learning with reinforced learning thereafter. Since little may be known about the member when the member establishes a connection with the representative 106 and/or the task-facilitation service, the training data 928 may that corresponds to the particular member may be too small for supervised learning. The training data 928 may be padded with additional data corresponding to other representatives, other members, procedurally generated data, and/or the like. Once the machine-learning models are trained, the machine-learning models may be refined using reinforcement learning (e.g., executing an intermediate retraining of the proposal generator in regular intervals such a proposal is generated and user input approving, disapproving, and/or modifying the proposal is received). For example, a generated proposal that is approved may refine the machine-learning models (e.g., internal weights, etc.) to ensure a similar set of input features will be more likely to generate the approved proposal. In some instances, the reinforcement learning may also use execution information (e.g., information associated with the entities that performed the tasks and/or portions thereof such as the task-facilitation service 102, the representative 106, other representatives, the third-party service providers, and/or the like).


Once trained, the machine-learning models and/or the representative 106 may be periodically retrained (e.g., every n days, based on the member input, based on the representative's input, based on the accuracy metrics, and/or the like). Since information associated with each generated proposal and the indication as to whether the proposals were approved, disapproved, and/or modified is stored in the training data 928, the training data 928 include more information that is associated with the particular member the longer the proposal creation sub-system 902 operates for a particular member.


In some instances, the training data 928 may store a predetermined quantity of data. Initially, when little may be known about the member, the training data 928 may mostly include information associated with the representative 106, other representatives, other members, procedurally generated data, and/or the like. As new data is stored in the training data 928 (e.g., proposal generated for the particular member), the older data may be removed from the training data 928 to preserve the data limit (e.g., the predetermined quantity of data). If the proposal creation sub-system 902 operates long enough, the training data 928 may be filled with only data corresponding to the particular member, then only recent data corresponding to the particular member, etc. When retraining occurs, the resulting machine-learning models may be more accurate than the machine-learning models trained on the initial data.


The generated proposals may be output to a proposal customization 932. The proposal customization 932 includes interfaces (e.g., graphical user interfaces, application programming interfaces, and/or the like), for presenting the proposal to the representative 106 and/or the member. The proposal customization 932 may also include interfaces that can receive input from the representative 106 and/or to approve, disapprove, and/or modify portions of the proposal and/or the overall proposal. For example, a proposal for task of repairing the HVAC system, may include an identification of a third-party service provider providing the repair, an identification of parts, an identification of a vendor to acquire the parts and at what cost, an identification of the cost, and an identification of a time interval over which the repair is scheduled. The member may provide input selecting a different third-party service provider, a different vendor to acquire the parts and/or different parts, and/or a different time interval over which to conduct the repair.


The proposal customization 932 may receive input from user models 540 and/or representative models 440. The user models 540 may store a user model that corresponds to the particular member, which may be usable to tailor a proposal to the particular member. In some instances, the proposal customization 932 may automatically (e.g., through an automated service) modify the proposal based on the user models 540 and/or representative models 440. In other instances, the representative 106 (and/or member 118) may modify the proposal using the user models 540 representative models 440. The user models 540 may be queried and/or executed to predict values of fields of the proposal. The predicted values may correspond to a value that would be preferred by the member (e.g., values that would have been selected by the member if the member were generating the proposal, etc.). The predicted preferences may be based on previously executed proposals (e.g., such as a vendor that the member has previously acquired an object from, etc.), information associated with the member, information obtained from device and/or applications associated with the member, information obtained from third-party services, user input (e.g., from the member 118, the representative 106, other representatives, etc.), correspondence between the representative 106 and the member 118, combinations thereof, or the like.


The user model may generate or output a single or multivariate output that includes an indication of a likelihood that the proposal will be approved by the member, predicted values for fields of the proposal (e.g., values that the user model predicts that the member would have selected if the member had generated the proposal), a predicted likelihood that the fields of the proposal are populated with values that correspond to member preferences or would be approved by the member, an indication of variances between values of fields and values that would be approved by the member (e.g., confidence scores, predicted deviations, etc.), accuracy metrics, combinations thereof, or the like. For example, predicted values may correspond to values for which the member has selected or approved in previous proposals or probable values (if no historical value is located in the user model) based on information known about the member. In some instances, the proposal generator 924, the representative 106, and/or the user models 504 may use information from the rep models 440 to augment and/or improve the accuracy of predictions generated by the user models 504. The rep models 440 may include information generated by the representative 106, which may include information that is implied and/or inferred from the data stored in user models 504.


Once the proposal customization 932 terminates, the results of the proposal customization 932 may be passed to training data 928 for improving the performance of the proposal generator 924 (e.g., training the machine-learning models and/or the representative 106, retraining the machine-learning models and/or the representative 106, reinforcement learning of the machine-learning models and/or the representative 106, etc.).


Proposals 940 may be a buffer that stores a set of proposals for presentation to the representative 106 for selection (e.g., by the representative 106 and/or the member). Proposals 940 may include an interface (e.g., such as a display interface, communication interface, application programming interface, and/or the like) that can present the proposals generated by proposal generator 928 to the representative 106 and/or the member. In some instances, proposals 940 may rank the proposals in an order determined by proposal generator 928 (e.g., based on the accuracy metrics, or the like), by the member (e.g., via user input, the user model, or the like), and/or by the representative 106. The set of proposals may include a proposal for multiple tasks or multiple proposals for a single task. For example, the proposal generator 924 and/or the representative 106 may generate multiple variations of a proposal for the member 118. A first proposal for a task corresponding to a HVAC repair may include an identification of a first third-party service provider providing the repair over a first time interval. A second proposal for that task may include a different time interval and/or a different third-party service provider providing the repair, or the like. Proposal generator 924 and/or the representative 106 may generate a single proposal for a given task, a predetermined quantity of proposals for a given task (e.g., to prevent overloading the member), or any quantity of proposals for a given task.


The representative may select the proposals from the proposals 936 to present to the member for member approval. In some instances, the member may request further customization of a particular proposal. In those instances, the process may return to proposal customization 932, where the proposal may be customized according to the member input. Approved proposal may be transmitted to the party assigned to execute the proposal (e.g., the representative 106, another representative, the task-facilitation service, third-party service provider, and/or the like identified by the proposal as implementing some or all of the task). The task-facilitation service may transmit the proposal to the assigned party (e.g., using an application programming interface configured to enable communications between the task-facilitation service and the assigned party, etc.). An indication of the approval, disapproval, and/or modification of the set of proposals of proposals 936 may be transmitted to the training data 928 (e.g., to further refine the proposal generator 924 and/or the representative 106) and/or to the user models 540 and/or representative models 440.



FIG. 10 depicts a flowchart of an example process for implementing reinforcement learning within a task-facilitation service in accordance with aspects of the present disclosure. At block 1004, a request to delegate execution of a task may be received. The request may include information associated with the request. For example, the information may include a user identifier corresponding to a user (e.g., member) of the task-facilitation service, an identifier of the task, a task specification (e.g., such as task specification 704, or the like), combinations thereof, or the like. The request may be received by the task-facilitation service (e.g., such as task-facilitation service 102) or device thereof, by the representative 106, and/or the like. In some instances, the request may be received from a device associated with the user. In other instances, the request may be received from a device associated with the representative. In those instances, the representative assigned to the user may anticipate a task that the user will execute and/or suggest a task that the user may want to execute or have executed.


In one illustrative example, a user may request delegation of a task to buy a birthday present for a friend. The user may request that the task-facilitation service and/or the representative facilitate execution of the task to reduce the cognitive load and/or to save time associated with identifying and acquiring the birthday present.


At block 1008, a proposal may be generated using a machine-learning process (e.g., an automated process, a semi-automated process controlled by or receiving input from the representative 106 or the member 118, a machine-learning model, combinations thereof, or the like). For example, the machine-learning process may include processes of an application or web portal operated by the member 118 or the representative 116 when defining tasks and generating a proposal (e.g., the implementation of the task). The machine-learning process may include instructions that when executed are configured to use information associated with the member 118 and/or the representative 116 to prepopulate fields of the task. In some instances, the prepopulated values may correspond to historical values selected by the member 118, selected by the representative 106, approved by the member 118, etc. The machine-learning process may be configured to learn from information associated with the member 118 (e.g., characteristics of the member 118, preferences of the member 118, interests/hobbies of the member, historical tasks/proposals generated or approved by the member 118, and/or any information associated with the member such as information of the user model of the member 118 or information stored in the resource library associated with the member 118, etc.) to predict values that are likely to correspond to values that would be selected or approved by the member 118. The representative 106 and/or the member 118 may use the machine-learning process to automate task recommendation, task generation, proposal generation, etc. while tailoring task recommendation, task generation, proposal generation to the member 118. Alternatively, or additionally, the representative 106 and/or the member 118 may use the machine-learning process to tailor task recommendation, task generation, proposal generation to the member 118 may selecting or predicting values that correspond to the member 118 as previously described. In some instances, the machine-learning process may be or include one or more machine-learning models (e.g., such as, but not limited to any of the aforementioned machine-learning models, task generator 728, proposal generator 924, and/or the like).


The proposal may be generated in response to receiving the request. Alternatively, the proposal may be generated without first receiving the request. For instance, the representative may generate one or more proposals for tasks that the representative (or a representative model corresponding to the representative) anticipates that the user will execute, that the user may want to execute, anticipate a task that the user will execute and/or suggest a task that the user may want to execute or have executed or the like. In some instances, the user may authorize the representative to generate tasks, task recommendations, and/or proposal without the representative (or the task-facilitation service) first receiving a request to do so.


The generating a proposal may include obtaining data associated with the task for which the proposal is to be generated. The task-facilitation service and/or representative may receive data from the user or a user model corresponding to the user (e.g., such user intent, interests, preferences, previous tasks, previous proposals, and/or the like), the representative or representative model, information associated with the task (e.g., indicating what data and data types may be needed to generate the proposal, and/or the like), and/or the like. A feature vector may be extracted from the data associated with the task (e.g., such as by feature extractor 920, or the like). The machine-learning process may execute using the feature vector to generate the proposal.


In some instances, the machine-learning process may be a proposal generator (e.g., such as proposal generator 924 of FIG. 9) or a task generator (e.g., such as task generator 728 of FIG. 7) as previously described. The machine-learning process may be initially trained using supervised or unsupervised learning. The machine-learning process may process sets of features that correspond to tasks and/or proposals and output a proposal. For supervised learning, each set of features may be associated with one or more labels (e.g., an expected output or portion of the output). During each training iteration, the machine-learning process compares the output of the machine-learning process with the corresponding one or more labels associated with the set of features input into the machine-learning process. The machine-learning process modifies internal node weights based on the comparison.


During unsupervised learning, the machine-learning process processes a set of features to identify features that may be related (e.g., using principal component analysis, a clustering analysis, and/or the like). The machine-learning process may organize the features of a set of features into groups indicative of a particular classification. After training, the machine-learning process may process sets of features or feature vectors by identifying the group or groups that the set of features or feature vector corresponds.


In examples in which the machine-learning process is or includes a machine-learning model, the machine-learning model of machine-learning model such as, but not limited to, a classifier (e.g., single-variate or multivariate that is based on k-nearest neighbors, Naïve Bayes, Logistic regression, support vector machine, decision trees, an ensemble network of classifiers, and/or the like), regression model (e.g., such as, but not limited to, linear regressions, logarithmic regressions, Lasso regression, Ridge regression, and/or the like), clustering model (e.g., such as, but not limited to, models based on k-means, hierarchical clustering, DBSCAN, biclustering, expectation-maximization, random forest, and/or the like), deep learning model (e.g., such as, but not limited to, neural networks, convolutional neural networks, recurrent neural networks, long short-term memory (LSTM), multilayer perceptions, etc.), combinations thereof (e.g., disparate-type ensemble networks, etc.), or the like.


The generated proposal may be an implementation of the task including, but is not limited to, information associated with the performing the task, instructions for facilitating performance of the task, logic, and/or the like. Returning to the previous example, the implementation of the task: buying a birthday present for a friend”, may include an identification of an object that is to be the present, an identification of a third-party service provider providing the object, a cost of the object, a process for acquiring the object (e.g., acquiring the object through a storefront, website, etc.), wrapping the object, providing the transporting the present to the friend, an identification of an entity to execute the task (e.g., the representative or third-party service providers that will acquire the object, wrap the object or have it wrapped, and transport the object or have it transported to the friend), an identification of an address associated with the friend, etc. In some instances, the proposal may include one or more instructions that facilitate execution of the task by one or more third-party service providers. In other instances, the proposal may include instructions that facilitate execution of the task or portions thereof by the user, the representative, and/or one or more third-party service providers.


At block 1012, the execution of the task may be facilitated (e.g., by the task-facilitation service, by the representative or device operated by the representative, or the like). Facilitating execution of the task can include causing the task to be executed. Returning to the previous example, facilitating execution of the task may include causing the birthday present to be acquired and transported to the friend. The proposal may include executable instructions that may implement the task. For example, the instructions in the proposal may transmit communications to one or more third-party service providers with requests for implementing the task or portions thereof. Returning to the birthday present example, facilitating execution of the task may include instructing a third-party service provider to obtain the object, wrap the object, and transport the object to an address of the friend.


At block 1016, an execution status of the task may be received. The execution status may indicate the progress of the execution of the task, the results of execution of the task (e.g., success, failure, details of the execution, etc.), feedback from the user (e.g., indicating the user's satisfaction of interacting with the task-facilitation service, the representative, the one or more third-party service providers, and/or the users satisfaction of the task and its execution), feedback from the representative (e.g., corresponding to the details of the execution of the task, the one or more third-party service providers, the user's satisfaction, and/or the like), feedback from the one or more third-party service providers (e.g., indicating success or failure of the task, details of the execution of the task, etc.), any other information associated with the task or its execution, combinations thereof, or the like.


In some instances, at least some of the execution tasks may be in a natural language form. For instance, feedback from the user may be in natural language text, audio, or video. The task-facilitation service may use a natural language processor (e.g., such as the natural language processor described in connection to FIG. 7) to parse the semantic meaning corresponding to the natural language form of the feedback. The semantic meaning may be assigned a numerical value (e.g., between 1-10, 1-100, etc.) indicative of a positivity of portions (e.g., discrete words, phrases, sentences, etc.) of the feedback. In some instances, the portions may be weighted based on the semantic meaning, the length of the feedback, the source of the feedback, and/or the like. The task-facilitation service may then derive an overall positivity score for the feedback. If the overall positivity score is less than a threshold, then it may be determined that the task execution was unsatisfactory to the feedback's source (e.g., the user, representative, third-party service provider, etc.). If the overall positivity score is greater than the threshold, then it may be determined that the task execution was satisfactory to the feedback's source. In addition, the task-facilitation service may identify the particular portions of the feedback that had the largest impact on the overall positivity score (e.g., causing the overall score to be less than or greater than the threshold). For example, the task-facilitation service may determine that the user's feedback was negative (e.g., overall positivity score being less than the threshold) indicating that the user was not satisfied with the task execution. The task-facilitation service may then identify the particular user statements within the user's feedback that impacted the overall positivity score being less then the threshold. In some instances, the task-facilitation service may store, with the overall positivity score and the statements, the natural language processor output indicating the semantic meaning of those statements.


The task-facilitation service may perform a similar process with other natural language data in in the execution status. The task-facilitation service may derive an overall positivity score for each information source contributing to the execution status. The task-facilitation service may derive an execution result that corresponds to a single value derived from the individual overall positivity scores from each information source. The execution result may indicate whether the execution of the task should be repeated (e.g., the task executed successfully to everyone's, and especially the user's, satisfaction) whether the task should not be repeated (e.g., the task executed successfully or failed, the user is not satisfied with the execution of the task, etc.), and/or whether portions of the task should be repeated or not (e.g., whether different third-party service providers should be selected, a different object should be selected, a different entity should execute the task, a different transportation medium should be selected, etc.).


Alternatively, or additionally, the representative assigned to the user and/or another representative of the task-facilitation service may review the execution status and assign overall positivity scores for information sources and an execution result.


At block 1020, the machine-learning process may be trained based on the execution status and the proposal generated by the machine-learning process (and optionally the feature vector). The machine-learning process may be initially trained to generate proposals from feature vectors (e.g., using supervised or unsupervised learning, etc.). In addition to the initial training of the machine-learning process, the machine-learning process may be incrementally trained at runtime using reinforcement learning. The task-facilitation service may determine which outputs from the machine-learning process may be used to reinforce the training of the machine-learning process. In some instances, each execution of the machine-learning process may be used for reinforcement learning. In some instances, only some executions may be used for reinforcement learning. For example, if the execution status is missing, incomplete, or the execution result is inconclusive (e.g., with respect to indicating whether the user was satisfied with the task execution, etc.), then that execution of the machine-learning process may be skipped for reinforcement learning. In those instances, the task-facilitation service may select the output from every nth execution of the machine-learning process for use in reinforcement training.


Reinforcement training may include processing the feature vector, the output of the machine-learning process (e.g., the proposal), and/or the execution result with the machine-learning process to refine the internal node weights or algorithm of the machine-learning process. If a particular output produces a bad result (e.g., negative execution status, etc.), then the machine-learning process may be refined to reduce the likelihood that a same or similar feature vector may generate the same result (e.g., generate a proposal having fields with different values from the previous proposal, etc.). If a particular output produces a good result (e.g., positive execution status, etc.), then the machine-learning process may be refined to increase the likelihood that a same or similar feature vector may generate the same or similar result (e.g., generate the same proposal, generate a proposal having fields with similar or same values as the previous proposal, etc.). In some instances, reinforcement learning may cause the machine-learning process may favor generating proposals having a same or similar field values as those proposals that receive positive execution statuses and generating proposals having different fields and/or field values as those proposals having negative execution statuses. For example, if a particular output produces a negative execution status due to a particular value of a field (e.g., a particular third-party service provider selected as a value for a field), then the machine-learning process may be refined to decrease (and in some cases eliminate) the likelihood that that particular value may be selected for future proposals. Similarly, if a particular output produces a positive execution status due to a particular value of a field (e.g., a particular third-party service provider selected as a value for a field), then the machine-learning process may be refined to increase the likelihood that that particular value may be selected for future proposals.


In some instances, if a particular label (e.g., classification) output from the machine-learning process is associated with a quantity of negative execution results that is greater than a threshold, then the label may be removed to prevent classifying data according to that category. For example, the machine-learning process may generate the proposal by generating predictions for values of fields of a task template (or empty proposal). The task template may include an empty field for a third-party service provider to provide a product. The machine-learning process may process input features to predict a third-party service provider that the user will like and/or that will provide the product efficiently (e.g., quickly, cheaply, and/or the like). The machine-learning process may generate the prediction based on learned third-party service providers (e.g., service providers previously used by the user, by similar user, the representative, other representatives, the task-facilitation service, etc.). If the user is not satisfied by the execution of the task and the execution status indicates that the predicted third-party service provider may be the cause (e.g., due to the frequency with which the third-party service provider is associated with negative execution statuses), then the reinforcement learning may cause the label (e.g., corresponding to the particular third-party service provider) to be removed to prevent the machine-learning process from generating a proposal that includes that predicted label (e.g., the particular third-party service provider). In some instances, the task-facilitation service may reweight the other labels to compensate for the missing labels. Those wights may be further adjusted each time reinforcement learning is applied to the machine-learning process.


The task-facilitation service may store a record of the request (at 1004) that includes an identification of the task, the proposal, an indication as to whether the task was executed, the execution status, and the execution result. The record may be stored in one or more of: the user model corresponding to the user, the representative model corresponding to the representative, a database storing historical tasks, a database storing historical proposals, and/or the like. Storing the record in a user or representative model may include appending the model (e.g., adding a new node or the like (depending on the structure of the respective model) with the record. Alternatively, or additionally, if the user model and/or the representative models are machine-learning process then the respective models may be trained using the record as input (e.g., using reinforcement learning or supervised learning). Alternatively, or additionally, the user models and/or representative models may be regenerated (e.g., a new user model and/or representative model may be generated using the record and the information stored in the previous version of the respective user model or representative model). Storing the record in the user model may enable the task-facilitation service and/or the representative assigned to the user to customize future proposals to the user. Storing the record in the representative model may enable the task-facilitation service and/or the representative to customize future proposals for the user assigned to the representative and/or other users assigned to the representative.


Alternatively, or additionally, the representative and/or other representatives may generate proposals, evaluate proposals, and determine whether proposals and/or aspects thereof are to be reused or not reused, etc.



FIG. 11 illustrates a block diagram of an example environment 1100 for facilitating task execution in accordance with aspects of the present disclosure. In some examples, operations performed by representatives 1104 are partially and/or fully performed using one or more machine-learning algorithms, artificial intelligence systems and/or computational models. For example, as the representatives 1104 perform or otherwise coordinate performance of tasks on behalf of a member 1112, the task-facilitation service 1102 may update a profile of the member 1112 and/or a computational model of the profile of the member 1112.


In some examples, as the representatives 1104 perform or otherwise coordinate performance of tasks on behalf of a member 1112, the task-facilitation service 1102 updates a profile of the member 1112 and/or a computational model of the profile of the member 1112 continuously. For example, as a member 1112 communicates with a system of the task-facilitation service 1102, the task-facilitation service 1102 may update the profile of the member 1112 and/or a computational model of the profile of the member 1112 continuously during the course of the interaction.


In some examples, as the representatives 1104 perform or otherwise coordinate performance of tasks on behalf of a member 1112, the task-facilitation service 1102 updates a profile of the member 1112 and/or a computational model of the profile of the member 1112 dynamically. For example, as a task is performed on behalf of a member 1112, a vendor performing the task may provide regular updates to the task-facilitation service 1102 and the task-facilitation service 1102 may update the profile of the member 1112 and/or a computational model of the profile of the member 1112 dynamically at each update from the vendor.


In some examples, as the representatives 1104 perform or otherwise coordinate performance of tasks on behalf of a member 1112, the task-facilitation service 1102 updates a profile of the member 1112 and/or a computational model of the profile of the member 1112 automatically. For example, when a proposal is generated for the member, the task-facilitation service 1102 may update the profile of the member 1112 and/or a computational model of the profile of the member 1112 automatically as part of the proposal generation process.


In some examples, as the representatives 1104 perform or otherwise coordinate performance of tasks on behalf of a member 1112, the task-facilitation service 1102 updates a profile of the member 1112 and/or a computational model of the profile of the member 1112 in real-time. For example, when a member 1112 accepts a proposal, the task-facilitation service 1102 may update the profile of the member 1112 and/or a computational model of the profile of the member 1112 at the time that the proposal acceptance is provided, rather than delaying the update.


In some examples, the task-facilitation service 1102 updates a profile of the member 1112 and/or a computational model of the profile of the member 1112 using a machine learning sub-system 1106 of the task-facilitation service 1102. In some examples, a machine learning sub-system 1106 is a component of the task-facilitation service 1102 that is configured to implement machine-learning algorithms, artificial intelligence systems, and/or computation models. In an example, a machine learning sub-system 1106 may use various algorithms to train a machine-learning model using sample and/or live data. Additionally, a machine learning sub-system 1106 may update the machine-learning model as new data is received. In another example, the machine learning sub-system 1106 may train and/or update various artificial intelligence systems or generate, train and/or update various computational models. For example, a computational model of the profile of the member 1112 may be generated, trained and/or updated by the machine learning sub-system 1106 as new information is received about the member 1112.


In some examples, after the profile of the member 1112 and/or a computational model of the profile of the member 1112 has been updated over a period of time (e.g., six months, a year, etc.) and/or over a set of tasks (e.g., twenty tasks, thirty tasks, etc.), systems of the task-facilitation service 1102 (e.g., a task recommendation system) utilize one or more machine-learning algorithms, artificial intelligence systems and/or computational models to generate new tasks continuously, automatically, dynamically, and in real-time. For example, the task recommendation system may generate new tasks based on the various attributes of the member's profile (e.g., historical data corresponding to member-representative communications, member feedback corresponding to representative performance and presented tasks/proposals, etc.) with or without representative interaction. In some examples, systems of task-facilitation service 1102 (e.g., a task recommendation system) can automatically communicate with the member 1112 to obtain any additional information needed and can also generate proposals that may be presented to the member 1112 for performance of these tasks.


In the example illustrated in FIG. 11, communications between the member 1112 and the task-facilitation service 1102 may be routed to one or more entities within the task-facilitation service 1102. The example illustrated in FIG. 11 shows a router 1114 (referred to in the illustration as a “router”) however, as may be contemplated and as illustrated in FIG. 11, the router 1114 is an abstract representation of one or more techniques for routing communications between entities. Accordingly, communications from the member 1112 to the task-facilitation service 1102 may be routed to one or more entities of the task-facilitation service and communications from the one or more entities of the task-facilitation service 1102 may be routed back to the member 1112.


In the example illustrated in FIG. 11, the representatives 1104 can monitor communications between task-facilitation service systems and/or sub-systems 1108 and the member 1112 to ensure that the interaction maintains a positive polarity as described herein because the communications can be routed 1116 to the representatives 1104 and also routed 1118 to task-facilitation service systems and/or sub-systems 1108. For example, if a member 1112 is interacting with the task recommendation system, the representatives 1104 can determine whether the member 1112 is satisfied with the interaction. If the representatives 1104 determine that the conversation has a negative polarity (e.g., that the member 1112 is not satisfied with the interaction), the representatives 1104 may intervene to improve the interaction.


Similarly, other interactions between task-facilitation service systems and/or sub-systems 1108 and the member 1112 may be routed 1120 to a member communication sub-system 1122 which may be configured to monitor the interactions between task-facilitation service systems and/or sub-systems 1108 and the member 1112. In some examples, the member communication sub-system 1122 can be configured to intercept the interactions between task-facilitation service systems and/or sub-systems 1108 and the member 1112 (using, for example, the router 1114). In those examples, all such interactions can be routed 1120 between the member 1112 and the member communication sub-system 1122 and can be routed 1124 between the member communication sub-system 1122 and the task-facilitation service systems and/or sub-systems 1108. In those examples, interactions between the task-facilitation service systems and/or sub-systems 1108 and the member 1112 may not be routed 1118 directly. In those examples, the representatives 1104 may still monitor interactions between task-facilitation service systems and/or sub-systems 1108 and the member 1112 to ensure that the interaction maintains a positive polarity as described above (e.g., by routing 1116 the interactions to the representatives 1104).


In some examples, the representatives 1104 can interact with the machine learning sub-system 1106 to update the profile of the member indicating changing member preferences based on an interaction between the representatives 1104 the member 1112. In some examples, the task-facilitation service systems and/or sub-systems 1108 can interact with the machine learning sub-system 1106 to update the profile of the member when, for example, a proposal is accepted or rejected. Additionally, as illustrated in FIG. 11, the interactions between the task-facilitation service 1102 and the member 1112 can be additionally routed 1126 between the member communication sub-system 1122 and the machine learning sub-system 1106. Accordingly, interactions between the member 1112 and, for example, a proposal creation sub-system may be used to update the profile of the member as a proposal is created.


Thus, unlike automated customer service systems and environments, wherein the systems and environment may have little or no knowledge of users interacting with agents and/or other automated systems, task-facilitation service systems and/or sub-systems 1108 can update the profile of the member 1112 and/or a computational model of the profile of the member 1112 continuously, dynamically, automatically, and/or in real-time. For example, task-facilitation service systems and/or sub-systems 1108 can update the profile of the member 1112 and/or a computational model of the profile of the member 1112 using the machine learning sub-system 1106 as described herein. Accordingly, task-facilitation service systems and/or sub-systems 1108 can update the profile of the member 1112 and/or a computational model of the profile of the member 1112 to provide up-to-date information about the member based on the member's automatic interaction with the task-facilitation service 1102, based on the member's interaction with the representative 1104, and/or based on tasks performed on behalf of the member 1112 over time. This information may also be updated continuously, automatically, dynamically, and/or in real-time as tasks and/or proposals are created, proposed, and performed for the member 1112. This information may also be used by the task-facilitation service 1102 to anticipate, identify, and present appropriate or intelligent interactions with the member 1112 (e.g., in response to member 1112 queries, needs, and/or goals).



FIG. 12 illustrates an example computing system architecture including various components in electrical communication with each other using a connection in accordance with aspects of the present disclosure. The example computing system architecture 1200 illustrated in FIG. 12 includes a computing device 1202, which has various components in electrical communication with each other using a connection 1206, such as a bus, in accordance with some implementations. The example computing system architecture 1200 includes a processing 1204 that is in electrical communication with various system components, using the connection 1206, and including the system memory. In some embodiments, the system memory includes read-only memory (ROM), random-access memory (RAM), and other such memory technologies including, but not limited to, those described herein. In some embodiments, the example computing system architecture 1200 includes a cache 1208 of high-speed memory connected directly with, in close proximity to, or integrated as part of the processor 1204. The example computing system architecture 1200 can copy data from the memory 1214 and/or the storage device 1210 to the cache 1208 for quick access by the processor 1204. In this way, the cache 1208 can provide a performance boost that decreases or eliminates processor delays in the processor 1204 due to waiting for data. Using modules, methods and services such as those described herein, the processor 1204 can be configured to perform various actions. In some embodiments, the cache 1208 may include multiple types of cache including, for example, level one (L1) and level two (L2) cache. The memory 1214 may be referred to herein as system memory or computer system memory. The memory 1214 may include, at various times, elements of an operating system, one or more applications, data associated with the operating system or the one or more applications, or other such data associated with the computing device 1202.


Other system memory can be available for use as well. The memory 1214 can include multiple different types of memory with different performance characteristics. The processor 1204 can include any general-purpose processor and one or more hardware or software services, such as service 1212 stored in storage device 1210, configured to control the processor 1204 as well as a special-purpose processor where software instructions are incorporated into the actual processor design. The processor 1204 can be a completely self-contained computing system, containing multiple cores or processors, connectors (e.g., buses), memory, memory controllers, caches, etc. In some embodiments, such a self-contained computing system with multiple cores is symmetric. In some embodiments, such a self-contained computing system with multiple cores is asymmetric. In some embodiments, the processor 1204 can be a microprocessor, a microcontroller, a digital signal processor (“DSP”), or a combination of these and/or other types of processors. In some embodiments, the processor 1204 can include multiple elements such as a core, one or more registers, and one or more processing units such as an arithmetic logic unit (ALU), a floating point unit (FPU), a graphics processing unit (GPU), a physics processing unit (PPU), a digital system processing (DSP) unit, or combinations of these and/or other such processing units.


To enable user interaction with the computing system architecture 1200, an input device 1216 can represent any number of input mechanisms, such as a microphone for speech, a touch-sensitive screen for gesture or graphical input, keyboard, mouse, motion input, pen, and other such input devices. An output device 1218 can also be one or more of a number of output mechanisms known to those of skill in the art including, but not limited to, monitors, speakers, printers, haptic devices, and other such output devices. In some instances, multimodal systems can enable a user to provide multiple types of input to communicate with the computing system architecture 1200. In some embodiments, the input device 1216 and/or the output device 1218 can be coupled to the computing device 1202 using a remote connection device such as, for example, a communication interface such as the network interface 1220 described herein. In such embodiments, the communication interface can govern and manage the input and output received from the attached input device 1216 and/or output device 1218. As may be contemplated, there is no restriction on operating on any particular hardware arrangement and accordingly the basic features here may easily be substituted for other hardware, software, or firmware arrangements as they are developed.


In some embodiments, the storage device 1210 can be described as non-volatile storage or non-volatile memory. Such non-volatile memory or non-volatile storage can be a hard disk or other types of computer readable media which can store data that are accessible by a computer, such as magnetic cassettes, flash memory cards, solid state memory devices, digital versatile disks, cartridges, RAM, ROM, and hybrids thereof.


As described above, the storage device 1210 can include hardware and/or software services such as service 1212 that can control or configure the processor 1204 to perform one or more functions including, but not limited to, the methods, processes, functions, systems, and services described herein in various embodiments. In some embodiments, the hardware or software services can be implemented as modules. As illustrated in example computing system architecture 1200, the storage device 1210 can be connected to other parts of the computing device 1202 using the system connection 1206. In an embodiment, a hardware service or hardware module such as service 1212, that performs a function can include a software component stored in a non-transitory computer-readable medium that, in connection with the necessary hardware components, such as the processor 1204, connection 1206, cache 1208, storage device 1210, memory 1214, input device 1216, output device 1218, and so forth, can carry out the functions such as those described herein.


The disclosed systems and service of a task-facilitation service (e.g., the task-facilitation service 102 described herein at least in connection with FIG. 1) can be performed using a computing system such as the example computing system illustrated in FIG. 12, using one or more components of the example computing system architecture 1200. An example computing system can include a processor (e.g., a central processing unit), memory, non-volatile memory, and an interface device. The memory may store data and/or and one or more code sets, software, scripts, etc. The components of the computer system can be coupled together via a bus or through some other known or convenient device.


In some embodiments, the processor can be configured to carry out some or all of methods and systems for generating proposals associated with a task-facilitation service (e.g., the task-facilitation service 102 described herein at least in connection with FIG. 1) described herein by, for example, executing code using a processor such as processor 1204 wherein the code is stored in memory such as memory 1214 as described herein. One or more of a user device, a provider server or system, a database system, or other such devices, services, or systems may include some or all of the components of the computing system such as the example computing system illustrated in FIG. 12, using one or more components of the example computing system architecture 1200 illustrated herein. As may be contemplated, variations on such systems can be considered as within the scope of the present disclosure.


This disclosure contemplates the computer system taking any suitable physical form. As example and not by way of limitation, the computer system can be an embedded computer system, a system-on-chip (SOC), a single-board computer system (SBC) (such as, for example, a computer-on-module (COM) or system-on-module (SOM)), a desktop computer system, a laptop or notebook computer system, a tablet computer system, a wearable computer system or interface, an interactive kiosk, a mainframe, a mesh of computer systems, a mobile telephone, a personal digital assistant (PDA), a server, or a combination of two or more of these. Where appropriate, the computer system may include one or more computer systems; be unitary or distributed; span multiple locations; span multiple machines; and/or reside in a cloud computing system which may include one or more cloud components in one or more networks as described herein in association with the computing resources provider 1228. Where appropriate, one or more computer systems may perform without substantial spatial or temporal limitation one or more steps of one or more methods described or illustrated herein. As an example and not by way of limitation, one or more computer systems may perform in real time or in batch mode one or more steps of one or more methods described or illustrated herein. One or more computer systems may perform at different times or at different locations one or more steps of one or more methods described or illustrated herein, where appropriate.


The processor 1204 can be a conventional microprocessor such as an Intel® microprocessor, an AMD® microprocessor, a Motorola® microprocessor, or other such microprocessors. One of skill in the relevant art will recognize that the terms “machine-readable (storage) medium” or “computer-readable (storage) medium” include any type of device that is accessible by the processor.


The memory 1214 can be coupled to the processor 1204 by, for example, a connector such as connector 1206, or a bus. As used herein, a connector or bus such as connector 1206 is a communications system that transfers data between components within the computing device 1202 and may, in some embodiments, be used to transfer data between computing devices. The connector 1206 can be a data bus, a memory bus, a system bus, or other such data transfer mechanism. Examples of such connectors include, but are not limited to, an industry standard architecture (ISA” bus, an extended ISA (EISA) bus, a parallel AT attachment (PATA” bus (e.g., an integrated drive electronics (IDE) or an extended IDE (EIDE) bus), or the various types of parallel component interconnect (PCI) buses (e.g., PCI, PCIe, PCI-104, etc.).


The memory 1214 can include RAM including, but not limited to, dynamic RAM (DRAM), static RAM (SRAM), synchronous dynamic RAM (SDRAM), non-volatile random-access memory (NVRAM), and other types of RAM. The DRAM may include error-correcting code (EEC). The memory can also include ROM including, but not limited to, programmable ROM (PROM), erasable and programmable ROM (EPROM), electronically erasable and programmable ROM (EEPROM), Flash Memory, masked ROM (MROM), and other types or ROM. The memory 1214 can also include magnetic or optical data storage media including read-only (e.g., CD ROM and DVD ROM) or otherwise (e.g., CD or DVD). The memory can be local, remote, or distributed.


As described above, the connector 1206 (or bus) can also couple the processor 1204 to the storage device 1210, which may include non-volatile memory or storage and which may also include a drive unit. In some embodiments, the non-volatile memory or storage is a magnetic floppy or hard disk, a magnetic-optical disk, an optical disk, a ROM (e.g., a CD-ROM, DVD-ROM, EPROM, or EEPROM), a magnetic or optical card, or another form of storage for data. Some of this data is may be written, by a direct memory access process, into memory during execution of software in a computer system. The non-volatile memory or storage can be local, remote, or distributed. In some embodiments, the non-volatile memory or storage is optional. As may be contemplated, a computing system can be created with all applicable data available in memory. A typical computer system will usually include at least one processor, memory, and a device (e.g., a bus) coupling the memory to the processor.


Software and/or data associated with software can be stored in the non-volatile memory and/or the drive unit. In some embodiments (e.g., for large programs) it may not be possible to store the entire program and/or data in the memory at any one time. In such embodiments, the program and/or data can be moved in and out of memory from, for example, an additional storage device such as storage device 1210. Nevertheless, it should be understood that for software to run, if necessary, it is moved to a computer readable location appropriate for processing, and for illustrative purposes, that location is referred to as the memory herein. Even when software is moved to the memory for execution, the processor can make use of hardware registers to store values associated with the software, and local cache that, ideally, serves to speed up execution. As used herein, a software program is assumed to be stored at any known or convenient location (from non-volatile storage to hardware registers), when the software program is referred to as “implemented in a computer-readable medium.” A processor is considered to be “configured to execute a program” when at least one value associated with the program is stored in a register readable by the processor.


The connection 1206 can also couple the processor 1204 to a network interface device such as the network interface 1220. The interface can include one or more of a modem or other such network interfaces including, but not limited to those described herein. It will be appreciated that the network interface 1220 may be considered to be part of the computing device 1202 or may be separate from the computing device 1202. The network interface 1220 can include one or more of an analog modem, Integrated Services Digital Network (ISDN) modem, cable modem, token ring interface, satellite transmission interface, or other interfaces for coupling a computer system to other computer systems. In some embodiments, the network interface 1220 can include one or more input and/or output (I/O) devices. The I/O devices can include, by way of example but not limitation, input devices such as input device 1216 and/or output devices such as output device 1218. For example, the network interface 1220 may include a keyboard, a mouse, a printer, a scanner, a display device, and other such components. Other examples of input devices and output devices are described herein. In some embodiments, a communication interface device can be implemented as a complete and separate computing device.


In operation, the computer system can be controlled by operating system software that includes a file management system, such as a disk operating system. One example of operating system software with associated file management system software is the family of Windows® operating systems and their associated file management systems. Another example of operating system software with its associated file management system software is the Linux™ operating system and its associated file management system including, but not limited to, the various types and implementations of the Linux® operating system and their associated file management systems. The file management system can be stored in the non-volatile memory and/or drive unit and can cause the processor to execute the various acts required by the operating system to input and output data and to store data in the memory, including storing files on the non-volatile memory and/or drive unit. As may be contemplated, other types of operating systems such as, for example, MacOS®, other types of UNIX® operating systems (e.g., BSD™ and descendants, Xenix™ SunOS™, HP-UX®, etc.), mobile operating systems (e.g., iOS® and variants, Chrome®, Ubuntu Touch®, watchOS®, Windows 10 Mobile®, the Blackberry® OS, etc.), and real-time operating systems (e.g., VxWorks®, QNX®, eCos®, RTLinux®, etc.) may be considered as within the scope of the present disclosure. As may be contemplated, the names of operating systems, mobile operating systems, real-time operating systems, languages, and devices, listed herein may be registered trademarks, service marks, or designs of various associated entities.


In some embodiments, the computing device 1202 can be connected to one or more additional computing devices such as computing device 1224 via a network 1222 using a connection such as the network interface 1220. In such embodiments, the computing device 1224 may execute one or more services 1226 to perform one or more functions under the control of, or on behalf of, programs and/or services operating on computing device 1202. In some embodiments, a computing device such as computing device 1224 may include one or more of the types of components as described in connection with computing device 1202 including, but not limited to, a processor such as processor 1204, a connection such as connection 1206, a cache such as cache 1208, a storage device such as storage device 1210, memory such as memory 1214, an input device such as input device 1216, and an output device such as output device 1218. In such embodiments, the computing device 1224 can carry out the functions such as those described herein in connection with computing device 1202. In some embodiments, the computing device 1202 can be connected to a plurality of computing devices such as computing device 1224, each of which may also be connected to a plurality of computing devices such as computing device 1224. Such an embodiment may be referred to herein as a distributed computing environment.


The network 1222 can be any network including an internet, an intranet, an extranet, a cellular network, a Wi-Fi network, a local area network (LAN), a wide area network (WAN), a satellite network, a Bluetooth® network, a virtual private network (VPN), a public switched telephone network, an infrared (IR) network, an internet of things (IoT network) or any other such network or combination of networks. Communications via the network 1222 can be wired connections, wireless connections, or combinations thereof. Communications via the network 1222 can be made via a variety of communications protocols including, but not limited to, Transmission Control Protocol/Internet Protocol (TCP/IP), User Datagram Protocol (UDP), protocols in various layers of the Open System Interconnection (OSI) model, File Transfer Protocol (FTP), Universal Plug and Play (UPnP), Network File System (NFS), Server Message Block (SMB), Common Internet File System (CIFS), and other such communications protocols.


Communications over the network 1222, within the computing device 1202, within the computing device 1224, or within the computing resources provider 1228 can include information, which also may be referred to herein as content. The information may include text, graphics, audio, video, haptics, and/or any other information that can be provided to a user of the computing device such as the computing device 1202. In an embodiment, the information can be delivered using a transfer protocol such as Hypertext Markup Language (HTML), Extensible Markup Language (XML), JavaScript®, Cascading Style Sheets (CSS), JavaScript® Object Notation (JSON), and other such protocols and/or structured languages. The information may first be processed by the computing device 1202 and presented to a user of the computing device 1202 using forms that are perceptible via sight, sound, smell, taste, touch, or other such mechanisms. In some embodiments, communications over the network 1222 can be received and/or processed by a computing device configured as a server. Such communications can be sent and received using PHP: Hypertext Preprocessor (“PHP”), Python™, Ruby, Perl® and variants, Java®, HTML, XML, or another such server-side processing language.


In some embodiments, the computing device 1202 and/or the computing device 1224 can be connected to a computing resources provider 1228 via the network 1222 using a network interface such as those described herein (e.g. network interface 1220). In such embodiments, one or more systems (e.g., service 1230 and service 1232) hosted within the computing resources provider 1228 (also referred to herein as within “a computing resources provider environment”) may execute one or more services to perform one or more functions under the control of, or on behalf of, programs and/or services operating on computing device 1202 and/or computing device 1224. Systems such as service 1230 and service 1232 may include one or more computing devices such as those described herein to execute computer code to perform the one or more functions under the control of, or on behalf of, programs and/or services operating on computing device 1202 and/or computing device 1224.


For example, the computing resources provider 1228 may provide a service, operating on service 1230 to store data for the computing device 1202 when, for example, the amount of data that the computing device 1202 exceeds the capacity of storage device 1210. In another example, the computing resources provider 1228 may provide a service to first instantiate a virtual machine (VM) on service 1232, use that VM to access the data stored on service 1232, perform one or more operations on that data, and provide a result of those one or more operations to the computing device 1202. Such operations (e.g., data storage and VM instantiation) may be referred to herein as operating “in the cloud,” “within a cloud computing environment,” or “within a hosted virtual machine environment,” and the computing resources provider 1228 may also be referred to herein as “the cloud.” Examples of such computing resources providers include, but are not limited to Amazon® Web Services (AWS®), Microsoft's Azure®, IBM Cloud®, Google Cloud®, Oracle Cloud® etc.


Services provided by a computing resources provider 1228 include, but are not limited to, data analytics, data storage, archival storage, big data storage, virtual computing (including various scalable VM architectures), blockchain services, containers (e.g., application encapsulation), database services, development environments (including sandbox development environments), e-commerce solutions, game services, media and content management services, security services, server-less hosting, virtual reality (VR) systems, and augmented reality (AR) systems. Various techniques to facilitate such services include, but are not limited to, virtual machines, virtual storage, database services, system schedulers (e.g., hypervisors), resource management systems, various types of short-term, mid-term, long-term, and archival storage devices, etc.


As may be contemplated, the systems such as service 1230 and service 1232 may implement versions of various services (e.g., the service 1212 or the service 1226) on behalf of, or under the control of, computing device 1202 and/or computing device 1224. Such implemented versions of various services may involve one or more virtualization techniques so that, for example, it may appear to a user of computing device 1202 that the service 1212 is executing on the computing device 1202 when the service is executing on, for example, service 1230. As may also be contemplated, the various services operating within the computing resources provider 1228 environment may be distributed among various systems within the environment as well as partially distributed onto computing device 1224 and/or computing device 1202.


Client devices, user devices, computer resources provider devices, network devices, and other devices can be computing systems that include one or more integrated circuits, input devices, output devices, data storage devices, and/or network interfaces, among other things. The integrated circuits can include, for example, one or more processors, volatile memory, and/or non-volatile memory, among other things such as those described herein. The input devices can include, for example, a keyboard, a mouse, a key pad, a touch interface, a microphone, a camera, and/or other types of input devices including, but not limited to, those described herein. The output devices can include, for example, a display screen, a speaker, a haptic feedback system, a printer, and/or other types of output devices including, but not limited to, those described herein. A data storage device, such as a hard drive or flash memory, can enable the computing device to temporarily or permanently store data. A network interface, such as a wireless or wired interface, can enable the computing device to communicate with a network. Examples of computing devices (e.g., the computing device 1202) include, but is not limited to, desktop computers, laptop computers, server computers, hand-held computers, tablets, smart phones, personal digital assistants, digital home assistants, wearable devices, smart devices, and combinations of these and/or other such computing devices as well as machines and apparatuses in which a computing device has been incorporated and/or virtually implemented.


The following examples illustrate various aspects of the present disclosure. As used below, any reference to a series of examples is to be understood as a reference to each of those examples disjunctively (e.g., “Examples 1-4” is to be understood as “Examples 1, 2, 3, or 4”).


Example 1 is a method comprising: receiving a request to delegate an execution of a task, the request including a user identifier corresponding to the task; generating a proposal using a machine-learning process, the proposal including an implementation of the task, wherein the proposal facilitates execution of the task by one or more third-party service providers; facilitating the execution of the task by the one or more third-party service providers according to the proposal; receiving an execution status of the task; and training the machine-learning process using the proposal and the execution status, wherein training the machine-learning process improves subsequent proposals generated by the machine-learning process.


Example 2 is the method of example(s) 1, wherein the execution status is received from a third-party service provider of the one or more third-party service providers that executed the task.


Example 3 is the method of any of example(s) 1-2, wherein the execution status is received from a device associated with the member.


Example 4 is the method of any of example(s) 1-3, wherein the execution status is received from a representative assigned to a user that corresponds to the user identifier.


Example 5 is the method of any of example(s) 1-4, wherein the execution status provides details of the execution of the task.


Example 6 is the method of any of example(s) 1-5, wherein the execution status includes feedback from a user associated with the user identifier.


Example 7 is the method of any of example(s) 1-6, further comprising: training a user model that corresponds to the user identifier, using the proposal and the execution status, wherein the user model is usable by the machine-learning process to customize proposals generated for a user corresponding to the user identifier.


Example 8 is the method of any of example(s) 1-7, further comprising: training, a representative model that corresponds to a representative, the representative being assigned to a user corresponding to the user identifier, wherein the representative model is usable by the machine-learning process to customize proposals generated for a set of users that are assigned to the representative.


Example 9 is the method of any of example(s) 1-8, further comprising: generating, in response to training the machine-learning process, a new proposal using the machine-learning process, the new proposal including a new implementation of the task, wherein the new proposal facilitates execution of the task by a different one or more third-party service providers.


Example 10 is a system comprising: one or more processors; and a non-transitory computer-readable storage medium that stores instructions that, when executed by the one or more processors, cause the one or more processors to perform the operations of any of example(s)s 1-9.


Example 11 is a non-transitory computer-readable storage medium that stores instructions that, when executed by one or more processors, cause the one or more processors to perform the operations of any of example(s)s 1-9.


The techniques described herein may also be implemented in electronic hardware, computer software, firmware, or any combination thereof. Such techniques may be implemented in any of a variety of devices such as general purposes computers, wireless communication device handsets, or integrated circuit devices having multiple uses including application in wireless communication device handsets and other devices. Any features described as modules or components may be implemented together in an integrated logic device or separately as discrete but interoperable logic devices. If implemented in software, the techniques may be realized at least in part by a computer-readable data storage medium comprising program code including instructions that, when executed, performs one or more of the methods described above. The computer-readable data storage medium may form part of a computer program product, which may include packaging materials. The computer-readable medium may comprise memory or data storage media, such as that described herein. The techniques additionally, or alternatively, may be realized at least in part by a computer-readable communication medium that carries or communicates program code in the form of instructions or data structures and that can be accessed, read, and/or executed by a computer, such as propagated signals or waves.


The program code may be executed by a processor, which may include one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, an application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Such a processor may be configured to perform any of the techniques described in this disclosure. A general-purpose processor may be a microprocessor; but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices (e.g., a combination of a DSP and a microprocessor), a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Accordingly, the term “processor,” as used herein may refer to any of the foregoing structure, any combination of the foregoing structure, or any other structure or apparatus suitable for implementation of the techniques described herein. In addition, in some aspects, the functionality described herein may be provided within dedicated software modules or hardware modules configured for implementing a suspended database update system.


As used herein, the term “machine-readable media” and equivalent terms “machine-readable storage media,” “computer-readable media,” and “computer-readable storage media” refer to media that includes, but is not limited to, portable or non-portable storage devices, optical storage devices, removable or non-removable storage devices, and various other mediums capable of storing, containing, or carrying instruction(s) and/or data. A computer-readable medium may include a non-transitory medium in which data can be stored and that does not include carrier waves and/or transitory electronic signals propagating wirelessly or over wired connections. Examples of a non-transitory medium may include, but are not limited to, a magnetic disk or tape, optical storage media such as compact disk (CD) or digital versatile disk (DVD), solid state drives (SSD), flash memory, memory or memory devices.


A machine-readable medium or machine-readable storage medium may have stored thereon code and/or machine-executable instructions that may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, or the like. Further examples of machine-readable storage media, machine-readable media, or computer-readable (storage) media include but are not limited to recordable type media such as volatile and non-volatile memory devices, floppy and other removable disks, hard disk drives, optical disks (e.g., CDs, DVDs, etc.), among others, and transmission type media such as digital and analog communication links.


As may be contemplated, while examples herein may illustrate or refer to a machine-readable medium or machine-readable storage medium as a single medium, the term “machine-readable medium” and “machine-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” and “machine-readable storage medium” shall also be taken to include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by the system and that cause the system to perform any one or more of the methodologies or modules of disclosed herein.


Some portions of the detailed description herein may be presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.


It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or “generating” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within registers and memories of the computer system into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.


It is also noted that individual implementations may be described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram (e.g., the example process 1000 for generating new tasks and for generating a ranking of those tasks that can be used to determine what tasks are to be presented to a member as illustrated in FIG. 10). Although a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process illustrated in a figure is terminated when its operations are completed but could have additional steps not included in the figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination can correspond to a return of the function to the calling function or the main function.


In some embodiments, one or more implementations of an algorithm such as those described herein may be implemented using a machine learning or artificial intelligence algorithm. Such a machine learning or artificial intelligence algorithm may be trained using supervised, unsupervised, reinforcement, or other such training techniques. For example, a set of data may be analyzed using one of a variety of machine learning algorithms to identify correlations between different elements of the set of data without supervision and feedback (e.g., an unsupervised training technique). A machine learning data analysis algorithm may also be trained using sample or live data to identify potential correlations. Such algorithms may include k-means clustering algorithms, fuzzy c-means (FCM) algorithms, expectation-maximization (EM) algorithms, hierarchical clustering algorithms, density-based spatial clustering of applications with noise (DBSCAN) algorithms, and the like. Other examples of machine learning or artificial intelligence algorithms include, but are not limited to, genetic algorithms, backpropagation, reinforcement learning, decision trees, liner classification, artificial neural networks, anomaly detection, and such. More generally, machine learning or artificial intelligence methods may include regression analysis, dimensionality reduction, metalearning, reinforcement learning, deep learning, and other such algorithms and/or methods. As may be contemplated, the terms “machine learning” and “artificial intelligence” are frequently used interchangeably due to the degree of overlap between these fields and many of the disclosed techniques and algorithms have similar approaches.


As an example of a supervised training technique, a set of data can be selected for training of the machine learning model to facilitate identification of correlations between members of the set of data. The machine learning model may be evaluated to determine, based on the sample inputs supplied to the machine learning model, whether the machine learning model is producing accurate correlations between members of the set of data. Based on this evaluation, the machine learning model may be modified to increase the likelihood of the machine learning model identifying the desired correlations. The machine learning model may further be dynamically trained by soliciting feedback from users of a system as to the efficacy of correlations provided by the machine learning algorithm or artificial intelligence algorithm (i.e., the supervision). The machine learning algorithm or artificial intelligence may use this feedback to improve the algorithm for generating correlations (e.g., the feedback may be used to further train the machine learning algorithm or artificial intelligence to provide more accurate correlations).


The various examples of flowcharts, flow diagrams, data flow diagrams, structure diagrams, or block diagrams discussed herein may further be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks (e.g., a computer-program product) may be stored in a computer-readable or machine-readable storage medium (e.g., a medium for storing program code or code segments) such as those described herein. A processor(s), implemented in an integrated circuit, may perform the necessary tasks.


The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the implementations disclosed herein may be implemented as electronic hardware, computer software, firmware, or combinations thereof. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.


It should be noted, however, that the algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the methods of some examples. The required structure for a variety of these systems will appear from the description below. In addition, the techniques are not described with reference to any particular programming language, and various examples may thus be implemented using a variety of programming languages.


In various implementations, the system operates as a standalone device or may be connected (e.g., networked) to other systems. In a networked deployment, the system may operate in the capacity of a server or a client system in a client-server network environment, or as a peer system in a peer-to-peer (or distributed) network environment.


The system may be a server computer, a client computer, a personal computer (PC), a tablet PC (e.g., an iPad®, a Microsoft Surface®, a Chromebook®, etc.), a laptop computer, a set-top box (STB), a personal digital assistant (PDA), a mobile device (e.g., a cellular telephone, an iPhone®, and Android® device, a Blackberry®, etc.), a wearable device, an embedded computer system, an electronic book reader, a processor, a telephone, a web appliance, a network router, switch or bridge, or any system capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that system. The system may also be a virtual system such as a virtual version of one of the aforementioned devices that may be hosted on another computing device such as the computing device 1202.


In general, the routines executed to implement the implementations of the disclosure, may be implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions referred to as “computer programs.” The computer programs typically comprise one or more instructions set at various times in various memory and storage devices in a computer, and that, when read and executed by one or more processing units or processors in a computer, cause the computer to perform operations to execute elements involving the various aspects of the disclosure.


Moreover, while examples have been described in the context of fully functioning computers and computer systems, those skilled in the art will appreciate that the various examples are capable of being distributed as a program object in a variety of forms, and that the disclosure applies equally regardless of the particular type of machine or computer-readable media used to actually effect the distribution.


In some circumstances, operation of a memory device, such as a change in state from a binary one to a binary zero or vice-versa, for example, may comprise a transformation, such as a physical transformation. With particular types of memory devices, such a physical transformation may comprise a physical transformation of an article to a different state or thing. For example, but without limitation, for some types of memory devices, a change in state may involve an accumulation and storage of charge or a release of stored charge. Likewise, in other memory devices, a change of state may comprise a physical change or transformation in magnetic orientation or a physical change or transformation in molecular structure, such as from crystalline to amorphous or vice versa. The foregoing is not intended to be an exhaustive list of all examples in which a change in state for a binary one to a binary zero or vice-versa in a memory device may comprise a transformation, such as a physical transformation. Rather, the foregoing is intended as illustrative examples.


A storage medium typically may be non-transitory or comprise a non-transitory device. In this context, a non-transitory storage medium may include a device that is tangible, meaning that the device has a concrete physical form, although the device may change its physical state. Thus, for example, non-transitory refers to a device remaining tangible despite this change in state.


The above description and drawings are illustrative and are not to be construed as limiting or restricting the subject matter to the precise forms disclosed. Persons skilled in the relevant art can appreciate that many modifications and variations are possible in light of the above disclosure and may be made thereto without departing from the broader scope of the embodiments as set forth herein. Numerous specific details are described to provide a thorough understanding of the disclosure. However, in certain instances, well-known or conventional details are not described in order to avoid obscuring the description.


As used herein, the terms “connected,” “coupled,” or any variant thereof when applying to modules of a system, means any connection or coupling, either direct or indirect, between two or more elements; the coupling of connection between the elements can be physical, logical, or any combination thereof. Additionally, the words “herein,” “above,” “below,” and words of similar import, when used in this application, shall refer to this application as a whole and not to any particular portions of this application. Where the context permits, words in the above Detailed Description using the singular or plural number may also include the plural or singular number respectively. The word “or,” in reference to a list of two or more items, covers all of the following interpretations of the word: any of the items in the list, all of the items in the list, or any combination of the items in the list.


As used herein, the terms “a” and “an” and “the” and other such singular referents are to be construed to include both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context.


As used herein, the terms “comprising,” “having,” “including,” and “containing” are to be construed as open-ended (e.g., “including” is to be construed as “including, but not limited to”), unless otherwise indicated or clearly contradicted by context.


As used herein, the recitation of ranges of values is intended to serve as a shorthand method of referring individually to each separate value falling within the range, unless otherwise indicated or clearly contradicted by context. Accordingly, each separate value of the range is incorporated into the specification as if it were individually recited herein.


As used herein, use of the terms “set” (e.g., “a set of items”) and “subset” (e.g., “a subset of the set of items”) is to be construed as a nonempty collection including one or more members unless otherwise indicated or clearly contradicted by context. Furthermore, unless otherwise indicated or clearly contradicted by context, the term “subset” of a corresponding set does not necessarily denote a proper subset of the corresponding set but that the subset and the set may include the same elements (i.e., the set and the subset may be the same).


As used herein, use of conjunctive language such as “at least one of A, B, and C” is to be construed as indicating one or more of A, B, and C (e.g., any one of the following nonempty subsets of the set {A, B, C}, namely: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, or {A, B, C}) unless otherwise indicated or clearly contradicted by context. Accordingly, conjunctive language such as “as least one of A, B, and C” does not imply a requirement for at least one of A, at least one of B, and at least one of C.


As used herein, the use of examples or exemplary language (e.g., “such as” or “as an example”) is intended to more clearly illustrate embodiments and does not impose a limitation on the scope unless otherwise claimed. Such language in the specification should not be construed as indicating any non-claimed element is required for the practice of the embodiments described and claimed in the present disclosure.


As used herein, where components are described as being “configured to” perform certain operations, such configuration can be accomplished, for example, by designing electronic circuits or other hardware to perform the operation, by programming programmable electronic circuits (e.g., microprocessors, or other suitable electronic circuits) to perform the operation, or any combination thereof.


Those of skill in the art will appreciate that the disclosed subject matter may be embodied in other forms and manners not shown below. It is understood that the use of relational terms, if any, such as first, second, top and bottom, and the like are used solely for distinguishing one entity or action from another, without necessarily requiring or implying any such actual relationship or order between such entities or actions.


While processes or blocks are presented in a given order, alternative implementations may perform routines having steps, or employ systems having blocks, in a different order, and some processes or blocks may be deleted, moved, added, subdivided, substituted, combined, and/or modified to provide alternative or sub combinations. Each of these processes or blocks may be implemented in a variety of different ways. Also, while processes or blocks are at times shown as being performed in series, these processes or blocks may instead be performed in parallel or may be performed at different times. Further any specific numbers noted herein are only examples: alternative implementations may employ differing values or ranges.


The teachings of the disclosure provided herein can be applied to other systems, not necessarily the system described above. The elements and acts of the various examples described above can be combined to provide further examples.


Any patents and applications and other references noted above, including any that may be listed in accompanying filing papers, are incorporated herein by reference. Aspects of the disclosure can be modified, if necessary, to employ the systems, functions, and concepts of the various references described above to provide yet further examples of the disclosure.


These and other changes can be made to the disclosure in light of the above Detailed Description. While the above description describes certain examples, and describes the best mode contemplated, no matter how detailed the above appears in text, the teachings can be practiced in many ways. Details of the system may vary considerably in its implementation details, while still being encompassed by the subject matter disclosed herein. As noted above, particular terminology used when describing certain features or aspects of the disclosure should not be taken to imply that the terminology is being redefined herein to be restricted to any specific characteristics, features, or aspects of the disclosure with which that terminology is associated. In general, the terms used in the following claims should not be construed to limit the disclosure to the specific implementations disclosed in the specification, unless the above Detailed Description section explicitly defines such terms. Accordingly, the actual scope of the disclosure encompasses not only the disclosed implementations, but also all equivalent ways of practicing or implementing the disclosure under the claims.


While certain aspects of the disclosure are presented below in certain claim forms, the inventors contemplate the various aspects of the disclosure in any number of claim forms. Any claims intended to be treated under 35 U.S.C. § 112(f) will begin with the words “means for”. Accordingly, the applicant reserves the right to add additional claims after filing the application to pursue such additional claim forms for other aspects of the disclosure.


The terms used in this specification generally have their ordinary meanings in the art, within the context of the disclosure, and in the specific context where each term is used. Certain terms that are used to describe the disclosure are discussed above, or elsewhere in the specification, to provide additional guidance to the practitioner regarding the description of the disclosure. For convenience, certain terms may be highlighted, for example using capitalization, italics, and/or quotation marks. The use of highlighting has no influence on the scope and meaning of a term; the scope and meaning of a term is the same, in the same context, whether or not it is highlighted. It will be appreciated that same element can be described in more than one way.


Consequently, alternative language and synonyms may be used for any one or more of the terms discussed herein, nor is any special significance to be placed upon whether or not a term is elaborated or discussed herein. Synonyms for certain terms are provided. A recital of one or more synonyms does not exclude the use of other synonyms. The use of examples anywhere in this specification including examples of any terms discussed herein is illustrative only and is not intended to further limit the scope and meaning of the disclosure or of any exemplified term. Likewise, the disclosure is not limited to various examples given in this specification.


Without intent to further limit the scope of the disclosure, examples of instruments, apparatus, methods and their related results according to the examples of the present disclosure are given below. Note that titles or subtitles may be used in the examples for convenience of a reader, which in no way should limit the scope of the disclosure. Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains. In the case of conflict, the present document, including definitions will control.


Some portions of this description describe examples in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are commonly used by those skilled in the data processing arts to convey the substance of their work effectively to others skilled in the art. These operations, while described functionally, computationally, or logically, are understood to be implemented by computer programs or equivalent electrical circuits, microcode, or the like. Furthermore, it has also proven convenient at times, to refer to these arrangements of operations as modules, without loss of generality. The described operations and their associated modules may be embodied in software, firmware, hardware, or any combinations thereof.


Any of the steps, operations, or processes described herein may be performed or implemented with one or more hardware or software modules, alone or in combination with other devices. In some examples, a software module is implemented with a computer program object comprising a computer-readable medium containing computer program code, which can be executed by a computer processor for performing any or all of the steps, operations, or processes described.


Examples may also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, and/or it may comprise a general-purpose computing device selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a non-transitory, tangible computer readable storage medium, or any type of media suitable for storing electronic instructions, which may be coupled to a computer system bus. Furthermore, any computing systems referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.


Examples may also relate to an object that is produced by a computing process described herein. Such an object may comprise information resulting from a computing process, where the information is stored on a non-transitory, tangible computer readable storage medium and may include any implementation of a computer program object or other data combination described herein.


The language used in the specification has been principally selected for readability and instructional purposes, and it may not have been selected to delineate or circumscribe the subject matter. It is therefore intended that the scope of this disclosure be limited not by this detailed description, but rather by any claims that issue on an application based hereon. Accordingly, the disclosure of the examples is intended to be illustrative, but not limiting, of the scope of the subject matter, which is set forth in the following claims.


Specific details were given in the preceding description to provide a thorough understanding of various implementations of systems and components for a contextual connection system. It will be understood by one of ordinary skill in the art, however, that the implementations described above may be practiced without these specific details. For example, circuits, systems, networks, processes, and other components may be shown as components in block diagram form in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.


The foregoing detailed description of the technology has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the technology to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. The described embodiments were chosen in order to best explain the principles of the technology, its practical application, and to enable others skilled in the art to utilize the technology in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the technology be defined by the claim.

Claims
  • 1. A method comprising: receiving a request to delegate execution of a task, the request including a user identifier corresponding to the task;generating a proposal using a machine-learning process, the proposal including an implementation of the task, wherein the proposal facilitates execution of the task by one or more third-party service providers;facilitating the execution of the task by the one or more third-party service providers according to the proposal;receiving an execution status of the task; andtraining the machine-learning process using the proposal and the execution status, wherein training the machine-learning process improves subsequent proposals generated by the machine-learning process.
  • 2. The method of claim 1, wherein the execution status is received from a third-party service provider of the one or more third-party service providers that executed the task.
  • 3. The method of claim 1, wherein the execution status is received from a device associated with the user identifier.
  • 4. The method of claim 1, wherein the execution status is received from a representative assigned to a user that corresponds to the user identifier.
  • 5. The method of claim 1, wherein the execution status provides details of the execution of the task.
  • 6. The method of claim 1, wherein the execution status includes feedback from a user associated with the user identifier.
  • 7. The method of claim 1, further comprising: generating, in response to training the machine-learning process, a new proposal using the machine-learning process, the new proposal including a new implementation of the task, wherein the new proposal facilitates execution of the task by a different one or more third-party service providers.
  • 8. A system comprising: one or more processors; anda non-transitory computer-readable storage medium that stores instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including receiving a request to delegate execution of a task, the request including a user identifier corresponding to the task;generating a proposal using a machine-learning process, the proposal including an implementation of the task, wherein the proposal facilitates execution of the task by one or more third-party service providers;facilitating the execution of the task by the one or more third-party service providers according to the proposal;receiving an execution status of the task; andtraining the machine-learning process using the proposal and the execution status, wherein training the machine-learning process improves subsequent proposals generated by the machine-learning process.
  • 9. The system of claim 8, wherein the execution status is received from a third-party service provider of the one or more third-party service providers that executed the task.
  • 10. The system of claim 8, wherein the execution status is received from a device associated with the user identifier.
  • 11. The system of claim 8, wherein the execution status is received from a representative assigned to a user that corresponds to the user identifier.
  • 12. The system of claim 8, wherein the execution status provides details of the execution of the task.
  • 13. The system of claim 8, wherein the execution status includes feedback from a user associated with the user identifier.
  • 14. The system of claim 8, wherein the operations further include: generating, in response to training the machine-learning process, a new proposal using the machine-learning process, the new proposal including a new implementation of the task, wherein the new proposal facilitates execution of the task by a different one or more third-party service providers.
  • 15. A non-transitory computer-readable storage medium that stores instructions that, when executed by one or more processors, cause the one or more processors to perform operations including: receiving a request to delegate execution of a task, the request including a user identifier that corresponding to the task;generating a proposal using a machine-learning process, the proposal including an implementation of the task, wherein the proposal facilitates execution of the task by one or more third-party service providers;facilitating the execution of the task by the one or more third-party service providers according to the proposal;receiving an execution status of the task; andtraining the machine-learning process using the proposal and the execution status, wherein training the machine-learning process improves subsequent proposals generated by the machine-learning process.
  • 16. The non-transitory computer-readable storage medium of claim 15, wherein the execution status is received from a third-party service provider of the one or more third-party service providers that executed the task.
  • 17. The non-transitory computer-readable storage medium of claim 15, wherein the execution status is received from a device associated with the user identifier.
  • 18. The non-transitory computer-readable storage medium of claim 15, wherein the execution status is received from a representative assigned to a user that corresponds to the user identifier.
  • 19. The non-transitory computer-readable storage medium of claim 15, wherein the execution status provides details of the execution of the task.
  • 20. The non-transitory computer-readable storage medium of claim 15, wherein the operations further include: generating, in response to training the machine-learning process, a new proposal using the machine-learning process, the new proposal including a new implementation of the task, wherein the new proposal facilitates execution of the task by a different one or more third-party service providers.
CROSS-REFERENCE TO RELATED APPLICATIONS

The present patent application claims the benefit of priority to U.S. Provisional Patent Application No. 63/240,635 filed Sep. 3, 2021, which is incorporated herein by reference in its entirety for all purposes.

Provisional Applications (1)
Number Date Country
63240635 Sep 2021 US