Directed Trajectories Through Communication Decision Trees Using Recurrent Artificial Intelligence
The communication decision tree with machine learning adapts to user data variations, optimizing content delivery and engagement by dynamically defining user-specific communication trajectories.
Patent Information
- Application Number
- JP2023198199
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2018-06-13
- Filing Date
- 2023-11-22
- Publication Date
- 2025-06-25
- Estimated Expiration
- 2038-09-18
AI Technical Summary
Existing communication systems lack the ability to dynamically adapt to variations in user data requests, leading to sub-optimal handling of data transmissions due to the use of static rules that do not account for individual user characteristics.
A communication decision tree is implemented using machine learning techniques to dynamically define individual user trajectories, allowing for real-time adaptation of communication specifications based on user attributes and learned data, enabling dynamic content transmission through various channels.
This approach enhances the effectiveness of communication by optimizing content delivery based on current user data, improving engagement and achieving targeted outcomes by dynamically adjusting communication strategies.
Smart Images

Figure 0007698689000001 
Figure 0007698689000002 
Figure 0007698689000003
Abstract
Description
Technical Field
[0001] Cross - Reference to Related Applications This application claims priority to U.S. Application No. 16 / 007,677, filed Jun. 13, 2018, which claims the benefit and priority of U.S. Provisional Application No. 62 / 566,026, filed Sep. 29, 2017. Each of these applications is hereby incorporated by reference in its entirety for all purposes into this specification.
[0002] Field Embodiments relate to configuring artificial - intelligence (AI) decision nodes throughout a communication decision tree. The decision nodes may support successive iterations of an AI model to dynamically define iterative data corresponding to a trajectory through the tree.
Background Art
[0003] Background Technological advancements have improved the accessibility and complexity of multiple types of communication channels. Further, advancements in data storage and networks have increased capacity such that an increased amount (and variety) of data can be stored at a data source for potential transmission. Thus, a data source can be positioned to deliver many types of data across any of a plurality of data channels at many potential times. When considering multiple related content deliveries instead of a single distribution, the array of content delivery options explodes. Content providers often send the same content to each data ingester through the same communication channel. One or more static rules are configured to provide the data without distinction. The communication specification may vary across different received data requests, but the rules may be configured to consistently respond to data requests without distinction. This approach provides simplicity of configuration and deterministic behavior, but may handle requests sub-optimally as it cannot react to potential variations across the population of data ingestors.
SUMMARY OF THE INVENTION
[0004] Summary In some embodiments, a method implemented by a computer is provided. A data structure representing a communication decision tree configured to dynamically define individual trajectories through the communication decision tree using machine learning techniques is accessed to represent a series of communication specifications. The communication decision tree includes a set of branch nodes. Each branch node of the set of branch nodes corresponds to an action point configured to identify a direction for a given trajectory. It is detected at a first time that a trajectory has reached a first branch node of the set of branch nodes. The trajectory is associated with a particular user. In response to detecting that the trajectory has reached the first branch node, first learned data generated by processing first user data using machine learning techniques is extracted. The first user data includes user attributes for a set of other users. Further, in response to detecting that the trajectory has reached the first branch node, one or more specific user attributes associated with a particular user are extracted, one or more first communication specifications are identified based on the first learned data and the one or more specific user attributes, and first content is transmitted to a user device associated with the particular user according to the one or more first communication specifications. It is detected at a second time after a first time that a trajectory through a communication decision tree has reached a second branching node of a set of branching nodes. In response to detecting that the trajectory has reached the second branching node, second learned data generated by processing second user data using machine learning techniques is extracted. The second user data includes at least some user attributes not included in the first user data. Further, in response to detecting that the trajectory has reached the second branching node, based on the second learned data and at least some of one or more specific user attributes, one or more second communication specifications are identified, and second content is transmitted to a user device according to the one or more second communication specifications.
[0005] In some embodiments, a computer program product tangibly embodied in a non-transitory machine-readable storage medium is provided. The computer program product can include instructions configured to cause one or more data processors to perform some or all of the operations of one or more of the methods disclosed herein.
[0006] In some embodiments, a system is provided that includes one or more data processors and a non-transitory computer-readable storage medium that includes instructions. When executed on the one or more data processors, the instructions cause the one or more data processors to perform some or all of the operations of one or more of the methods disclosed herein.
[0007] Exemplary embodiments of the present invention are described in detail below with reference to the following drawings.
Brief Description of the Drawings
[0008]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
DETAILED DESCRIPTION OF THE INVENTION
[0009] Description In some embodiments, a system and method are provided that use iterative machine learning data to facilitate the iterative identification of communication specifications. More specifically, a communication decision tree is generated that includes a set of nodes. Each node detects (for example) corresponds to an event or branch node that is connected to a plurality of next nodes representing communications corresponding to communication specification determination and corresponding to one or more specific communication specifications. Each individual trajectory through the communication decision tree may correspond to an individual user and / or one or more specific user devices. Each individual trajectory may extend across a specific subset of a set of nodes. The nodes in the subset represent specific actions initiated by the user and / or specific actions initiated at a specific user device of one or more specific devices, represent specific characteristics of communications sent to a specific user device of one or more specific devices, and / or represent decisions made regarding the specifications of future communications. For example, the specifications of future communications may indicate when it should be sent, the device to which it should be sent, the type of communication channel over which it should be sent, and / or the type of content it should include. In some cases, natural language processing may be used to assign one or more categories to each of one or more content objects transmitted in the learning set and / or to each of one or more content objects available for transmission. The communication specification may then identify a specific category of content to be transmitted.
[0010] Each communication specification determination may be made based on current data corresponding to the user and / or specific user device, a machine learning model, and one or more learned parameters for the machine learning model. The parameters may be user data associated with a set of other users, and for each of the set of other users, may be learned based on user data indicating one or more attributes and / or sets of events of the other users (e.g., actions initiated by the user or characteristics of communications sent to the user). The parameters may further be learned based on a specific node within the communication decision tree and / or a trajectory target corresponding to a specific action initiated by the user (e.g., identified by the client).
[0011] A communication decision tree can be configured to include a plurality of branch nodes such that a plurality of communication specification decisions can be made for a single trajectory. In some cases, each decision is made using the same type of machine learning algorithm (e.g., a supervised regression algorithm). However, the algorithm may be configured differently at each of the branch nodes, such that the branch nodes are different with respect to, for example, the type of input being processed for each trajectory, and / or the learned parameters used to process the input corresponding to the trajectory. In various cases, the algorithms for different branch nodes can be learned to optimize the same or different variables (e.g., based on the identification of the same or different target nodes). Not only can the branch nodes vary with respect to the type of input configured to be processed by the algorithm, but also the type of profile data potentially available for processing for a given user can vary (e.g., profile data can be accumulated over time by interaction monitoring). Further, the learned data associated with any given node can change over time (by continuous and / or repeated learning).
[0012] As an example, a trajectory for a user can be initialized when it is detected that the profile data corresponding to the user includes information for at least a predefined set of fields. The profile data can be collected using one or more web servers via one or more sessions associated with the user and / or extracted from a remote data source. In some cases, the user device automatically detects at least some of the profile data (e.g., unique device identifier, MAC address, browser type, browser version, operating system type, operating system version, device type, the device is Communicate it to a web server via header information that is automatically populated in communication to identify things such as the language to be set. In some cases, the communication includes data representing user input (for example, text entered into a web form, link selection, page navigation, etc.), and such data can be logged as profile data.
[0013] Initializing a trajectory may include identifying a first node within a communication decision tree that may include a first branch node. The first decision node may correspond to a decision regarding which of a plurality of content objects should be sent within an email communication to a user's device (for example, identifying various groups of items and / or information associated with a website). The first decision node may further correspond to a decision regarding when an email should be sent within a two-day period. The decision may be made based on first learned data indicating, for a particular type of user, which type of object and / or communication time is most likely to be associated with the targeted outcome. For example, the targeted outcome may include the occurrence of the user activating a link within an email to access a page on a website and / or the occurrence of the user interacting with the website in a manner corresponding to a conversion (for example, purchasing an item represented on the website). The first learned data may indicate that the predictive factors regarding which of three content objects is more effective in obtaining the targeted outcome include whether the user most frequently uses a mobile device (versus a laptop or computer), the user's age, and previous email interaction indications regarding which type of content object the user clicked on a link for.
[0014] Once an email is sent, the trajectory can extend to the node representing the sent content until the next event is detected. The next event can include, for example, the activation of a link within a website, indicating that the user is engaging in the current session with the website. Upon detecting this event, the trajectory can extend to a second decision node to determine how to configure the requested web page on the website (e.g., whether to include dynamic content objects and / or how to arrange various content objects). In this example, the second learned data indicates for a particular type of user which configuration is most likely to lead to the targeted outcome. For example, the second learned data can indicate that the predictive factors regarding which of four configurations is more effective in achieving the targeted outcome include whether the user most frequently uses a mobile device (versus a laptop or computer), the browser type, the current location of the user device, and the current time of day at the user location. Once the web page (configured according to the decision made at the second decision node) is sent, the trajectory can extend to the node representing the configuration of the sent web page. The trajectory can continue to extend when various user-initiated events, system-initiated events, or external events (e.g., the elapse of a predefined time interval from a previous event) are detected.
[0015] In this example, the targeted outcome remains the same across multiple decisions. However, the technology disclosed in this specification does not identify a static workflow of actions to be performed, or determine a complete sequence specific to the user of actions to be performed, but rather bases the decisions related to individual actions on current profile data, current learned data, and current event detection. Machine learning is repeatedly executed throughout the entire life cycle of a particular trajectory to identify the piecemeal actions to be taken. This approach can facilitate high utilization of data (such as in intermediate process decisions where extended and / or evolved learned data and / or profile data can be utilized), thereby facilitating the achievement of the targeted objective. Further, this approach enables changes to the definition and / or constraints of machine learning techniques (such as initiated by a client) to be made quickly (such as when the changes can affect an already initiated trajectory). For example, a client can change the targeted objective from conversion to retaining the user device on the website for at least a threshold session duration. Modified parameters for the machine learning models associated with various branch nodes can then be determined to affect the trajectories initiated prior to reaching that node and can be executed immediately. (such as in intermediate process decisions where extended and / or evolved learned data and / or profile data can be utilized), thereby facilitating the achievement of the targeted objective. Further, this approach enables changes to the definition and / or constraints of machine learning techniques (such as initiated by a client) to be made quickly (such as when the changes can affect an already initiated trajectory). For example, a client can change the targeted objective from conversion to retaining the user device on the website for at least a threshold session duration. Modified parameters for the machine learning models associated with various branch nodes can then be determined to affect the trajectories initiated prior to reaching that node and can be executed immediately.
[0016] Communication decisions (and / or partial steering through a communication decision tree) can be based on anonymized data or partially anonymized data. Either or both of the anonymized data or partially anonymized data can be constructed from anonymized data, partially anonymized data, or non-anonymized data provided by one or more providers or clients. For example, a remote user data management system can receive partially anonymized data or non-anonymized data from one or more data providers, obscure or remove fields in individual records according to data privacy rules, and / or aggregate field values across user sub-populations to comply with data privacy rules. As described herein, anonymized data or partially anonymized data is data from which PII has been removed and / or data in which individual data values have been aggregated such that they cannot be associated with a particular person or user with a probability exceeding a certain threshold. Thus, anonymized data or partially anonymized data can lack or obscure sufficient data values to prevent identifying a particular person as a particular user or to prevent identifying a particular person as having at least a threshold probability of being a particular user. For example, anonymized data or partially anonymized data can lack a name, email address, IP address, physical address, and / or phone number from profile data. Anonymized data or partially anonymized data can include or exclude certain demographic data such as age, city, occupation, etc. In some cases, anonymized data or partially anonymized data is useful for collecting while allowing some of the data to be processed and while complying with privacy rules, regulations, and laws. Anonymized data or partially anonymized data can include information collected from devices based on, for example, IP address ranges, postal codes, dates, categories of previous online inquiries, race, gender, age, purchase history, and / or browsing history.The information may have been collected in accordance with various privacy policies and laws that restrict the flow of personally identifiable information (PII).
[0017] In some cases, anonymized or partially anonymized data is used to generate and / or update learned data (e.g., one or more parameters) associated with individual machine learning configurations. This type of learning does not necessarily require data fields such as (e.g.) contact information, or benefit from such data fields, so data records can be removed from these fields. As another example, one or more sub-populations can be generated based on values for a particular field, and the particular values for that field may then be replaced with identifiers for the sub-populations.
[0018] In some cases, the profile data corresponding to a particular user for whom a decision is being made includes anonymized or partially anonymized data. For example, the system It may be detected that a trajectory has reached a branch node and data from a user data management system may be requested (e.g., using a device identifier or other identifier associated with the trajectory). The system may return profile data including, for example, one or more specific non-anonymized field values, one or more generalized (e.g., assigned to a category) field values, and / or removed field values. Non-anonymized field data may be included in the profile data if such field values were supplied (e.g., when collected using a data collection mechanism constructed to a web page and / or via a transmission from the client) by the client for which a determination is made, or if such field values were accessible to the client (e.g., via consent for data sharing). The system may further return population data (e.g., that may itself be learned and / or may evolve over time) indicating relationships between field values that may be used to infer values or categories for missing field values.
[0019] FIG. 1 shows a block diagram of an interaction system 100. The machine learning data platform 105 may include one or more cloud servers and may be configured to receive user data from one or more client systems 105. The user data may include anonymized user data or partially anonymized user data (stored in the anonymized user data store 115) and / or secure client usage user data (stored in the secure client usage user data store 120). The secure client usage user data may be less anonymized or not anonymized at all compared to the anonymized user data. The secure client usage user data, when received, may be securely stored in association with the client's identifier so that other clients cannot obtain access to the data. The data may be stored in a multi-tenant cloud storage system such that multiple clients can log in to a central location to access the server or a set of servers, where specific access to the data is controlled depending on which client authenticated to the cloud storage system. The anonymized user data or partially anonymized user data may in particular be configured or not configured for different clients (e.g., depending on which data the client supplied and / or depending on the consent for data sharing associated with the client). Thus, the profile data populator 122 in the machine learning data platform 105 may generate profile data corresponding to one or more individual users for a particular client and may customize which field values are included in the profile data for an individual client.
[0020] In some cases, the profile data populater 122 enhances the profile data set to supplement the client usage user data with partially anonymized user data that (when aggregated) may define client-specific learned data (stored in the client-specific learned data store 130) for a given user. For example, since data from a profile in the client usage data can be mapped to one or more data sets in the anonymized user data or partially anonymized user data, a richer data set can be used in machine learning analysis. The mapping can be done using overlapping data (e.g., an IP address (if included in the anonymized user data or partially anonymized user data), a purchase time, a pseudo-random user identifier assigned by the client, etc.).
[0021] The machine learning model configurator 123 can configure a given machine learning model based on, for example, an identified target outcome, available learning data, one or more client identification constraints, and / or potential actions as indicated by the communication decision tree and / or the client. Configuring the machine learning model can include defining one or more parameters for a particular instance of the model (e.g., the instance is associated with a particular branch node, client, and / or time period).
[0022] Each parameter may indicate a relationship and / or correlation between user attributes (stored in the learned parameter data store 125). The parameter may include a weight indicating how a first user attribute predicts a second user attribute and / or the degree to which the first user attribute predicts the second user attribute. The second user attribute corresponds to an indication of whether a targeted outcome has occurred or an indication of the degree to which the targeted outcome has occurred. The weight may be defined along a discrete value range or a continuous value range, or may be binary.
[0023] As an example, a parameter may indicate which of a set of attributes predicts the future occurrence of a particular type of conversion event. For example, visiting more than two web pages associated with the "travel" tag in the previous month may be determined to be an indication of a likelihood to purchase a travel bag. As another example, visiting a movie review web page within a given day may be determined to be an indication of a likelihood to subsequently purchase an online rental of a movie. Indirect associations and trends, such as identifying an inverse correlation between a user's age and the average time spent online each day, may also be learned. Each parameter may be associated with a strength and / or confidence of the relationship and may optionally be associated with a continuous relevance between the collected data points and the conclusions made. Each continuous relevance holds a certain probability that the data at the beginning of the relevance is accurate about what it indicates and another certain probability that the relevance itself is accurate.
[0024] Composition may be done using client usage profile data and / or to create client-specific parameters, but it is not necessary to do so. Client-specific parameters may be, for example, a modified version of a parameter generated using anonymized profile data or partially anonymized profile data.
[0025] To generate the learned data, various machine learning techniques may be used. For example, the machine learning techniques may use decision tree learning, association rule learning, artificial neural networks, deep learning, inductive logic programming, support vector machines, clustering, Bayesian networks, reinforcement learning, representation learning, similarity and distance learning, sparse dictionary learning, genetic algorithms, or rule-based machine learning. In some cases, the machine learning techniques include ensemble techniques that learn inter-ensemble weights to be applied to the results produced from various existing techniques (such as two or more of those described above). The inter-ensemble weights can be identified based on, for example, the accuracy, speed, and / or resource usage associated with the existing techniques. (For example) can be identified based on the accuracy, speed, and / or resource usage associated with the existing techniques.
[0026] (To identify one or more parameters) training the machine learning techniques can include identifying how a set of observed inputs (such as the content of a marketing email, the content of a promotion, and / or the configuration of a website) corresponds to a set of corresponding outputs (such as the outcome for a corresponding marketing email, such as the presence or absence of a certain conversion event, the corresponding promotion, and / or the corresponding website configuration ). These observed observations can be used to identify modeled relationships and / or trends for the purpose of predicting candidate factual information (such as the predicted next input to be received, or the predicted output based on a certain input) that leads to candidate factual information that has not yet occurred. Each prediction can carry a confidence level or probability, and the chain of predictions has a combined confidence level or probability.
[0027] Accordingly, the machine learning model configurator 123 can identify model parameters for a particular client system 110 based on, for example, a targeted outcome, client-specific profile data, and / or machine learning techniques. Client-specific learned data can be selectively shared with the client systems that provided the existing client usage profile data. The client system 110 can include a system that hosts one or more websites, hosts one or more applications, and / or sends emails. For example, the client system 110 can include a web server 135 that receives and responds to HTTP requests for pages on one or more domains, and an email server 140 that delivers emails to a user's email address. The client system 110 can further include, or alternatively include, an application server 145 that receives and responds to requests received via an application executed on a user device. Accordingly, one or more servers in the client system 110 can be configured to detect requests from one or more user devices 150-1, 150-2 and / or trigger the transmission of content to one or more user devices 150-1, 150-2. The user devices 150-1, 150-2 can include, for example, a computer, a smartphone, a tablet, etc. It will be understood that in various situations, a single user device may be associated with a single user or more than one user. Further, a single user may be associated with a single user device or more than one user device.
[0028] Web server 135 and / or application server 145 may store, as user data, an indication of a request for content (e.g., a web page or an app page) from content library 153 in client management user data store 150. The data stored may include information included in the request (e.g., device identifier, IP address, requested web page, input entered by the user, etc.) as well as information automatically detected (e.g., request time). Storing the data may include updating the profile to include the data. Web server 135, email server 140, and / or application server 145 may further store, in client management user data store 150, data indicating which content has been distributed to a particular user device (e.g., by identifying the transmission time, user device identifier, content object identifier, and / or type of communication).
[0029] Client system 110 may send at least a portion of the user data from client management user data store 150 to machine learning data platform 105, and machine learning data platform 105 may store it in secure client usage user data store 120. The sending may occur periodically, such as at regular time intervals, during a request for client-specific learned data. In some cases, client system 110 may at least partially anonymize some or all of the user data (such that it is stored in the platform as, for example, anonymized user data or partially anonymized user data), for example, by omitting or obscuring values for at least some fields before sending it to the machine learning data platform. In some cases, the data is at least partially is not anonymized, and the data is either stored in the Secure Client Usage User Data Store 120 or at least partially anonymized in the Machine Learning Data Platform 105. In the case of some data sets, the anonymized or partially anonymized data is received from a third party, removed from the PII, and stored by the Client System 110 without accessing the non-anonymized data. In some embodiments, the anonymized or partially anonymized data is natively anonymized or partially anonymized. In these embodiments, the website may execute an embedded script on the website that collects anonymized or partially anonymized data regarding access to the website by the user when executed. The script may collect only information stored in a data cloud that can be collected without knowing the user's personal information and that guarantees that the user identity cannot be inferred beyond a certain probability.
[0030] The client system 110 may store machine learning data in the machine learning data store 155. In some cases, the machine learning data includes instructions for one or more decisions made at a branch node for a given trajectory, and one or more content specifications identified using a communication decision tree and / or one or more parameters. The machine learning data may be requested, received, and / or derived from data from the machine learning platform 105. For example, in some cases, the machine learning model configurator 123 causes the client system 110 to transmit parameters generated for the client and / or parameters applicable to the client. As another example, the machine learning model implementer 157 applies a machine learning model composed of specific parameters to specific profile data to identify one or more specific communication specifications to define communication actions taken for a client (and / or the next node of the trajectory) corresponding to the profile data. The machine learning model implementer 157 may then cause the identified communication actions and / or instructions for the next node to be transmitted in relation to the identifiers of the trajectory, user, and / or user device.
[0031] Identifying the next node and / or communication specification may include executing a machine learning model (associated with the current branch node) using specific profile data and one or more learned parameters. The results may indicate which of various content presentation characteristics, for example, are associated with a high (e.g., above a threshold) or highest probability of leading to a particular targeted outcome (e.g., target conversion). In some cases, the analysis includes identifying one or more content presentation characteristics associated with the highest probability of leading to a particular conversion-targeted outcome. In some cases, the analysis balances the probabilities leading to a particular conversion result by a predefined cost metric associated with various content presentation characteristics.
[0032] In some cases, (e.g., in the machine learning data platform 105 or the client system 110), executing a machine learning model using parameters may include, for example, performing a regression analysis using profile data and parameters to generate a number that can be compared to one or more thresholds. The one or more thresholds may define two or more ranges (e.g., open-ended ranges or closed ranges), each range corresponding to a particular next node and / or communication action. In some cases, executing a machine learning model using parameters includes processing at least a portion of the profile data and at least a portion of the parameters to produce a result that can be compared (e.g., via calculation of differences, calculation of costs using a cost function, etc.) to each of a set of reference data variables (e.g., a single value, vector, matrix, time series, etc.), each associated with a particular next node and / or communication action and each potentially defined at least in part based on the parameters. A node or communication associated with the reference data variable showing the closest match in the comparison may be selected. The dynamic content generator 147 may trigger the presentation of content objects according to the selected communication specification. To generate appropriate instructions, the dynamic content generator 147 may first identify which communication channel is used to send the object, the type of object to be sent, the version of the content to be sent, and / or when the content object should be sent. The identification may be determined based on, for example, the result of the implementation of the machine learning model, the configuration of the machine learning model (which may suppress potential options for one or more of these options, for example), and / or one or more parameters.
[0033]
[0034] The dynamic content generator 147 can identify the type of communication to be sent (e.g., email, SMS message, pop-up browser window, or push sent app alert) that can inform which of (for example) the web server 135, email server 140, and / or app server 145 will send the communication. The identification can be made explicitly (e.g., based on machine learning results, parameters, and / or machine learning model configuration), or implicitly (e.g., by the selected content object being of a particular type).
[0035] Identifying a content object can include selecting from a set of existing content objects or generating a new content object. A content object can include, for example, a web page, an object within a web page, an image, a text message, an e-mail, an object and / or text within an e-mail. In some cases, the result of executing a machine learning model configured over profile data identifies a particular content object. In some cases, the result identifies features of the content (e.g., having a particular metadata category) and / or identifies particular techniques for selecting the content. For example, the result may indicate that a “tool” item should be featured in the content object and / or that a communication should include four content objects corresponding to four different (but unspecified) categories. In such cases, the dynamic content generator 147 can select from a set of potential content objects using, for example, selection techniques indicated via the result of a machine learning implementation, selection techniques indicated via parameters, and / or selection techniques indicated via predefined settings. For example, the selection techniques can include a pseudo-random selection technique, a technique for identifying the most recently added object, a technique for identifying the highest conversion object within a set of potential content objects having one or more attributes (such as indicated in a machine learning result).
[0036] In some cases, the time at which a communication is to be sent is explicitly identified (e.g., based on machine learning results, parameters, and / or machine learning model configurations). For example, the time range can be defined as starting from the current time and ending at the maximum time identified by the client. The model can evaluate a set of potential transmission times that are regularly spaced within the time range. (In some cases, each potential transmission time is considered multiple times in combination with other potential specifications such as content categories or communication channels.) The machine learning model results can identify the transmission time associated with the highest probability of leading to the target outcome. (Note that if combinations of specifications are considered, the transmission time can include the time in the combination associated with the highest probability.) In some cases, the communication is sent immediately upon receiving the next request for content (e.g., corresponding to a given website or app) from the user device associated with the machine learning results, or is sent according to a predefined transmission schedule.
[0037] In some cases, each specification corresponding to a communication is identified when or before the communication is sent (e.g., during a task and / or using a machine learning model, machine learning configuration, parameters, client rules, etc.). Thus, the configuration controlled by all or some of the clients of the communication and / or its transmission can be performed prior to the transmission of the communication. In some cases, after the communication is sent, at least one specification corresponding to the communication is identified (e.g., during a task and / or using a machine learning model, machine learning configuration, parameters, client rules, etc.). Thus, the configuration controlled by at least some of the clients of the communication and / or its transmission can be performed after the transmission of the communication. Thus, this post - transmission configuration can be based on learned data and / or profile data that was not available prior to the transmission of the communication. For example, additional profile data corresponding to a user can become available between the first time an email is sent and the second time the email is opened and rendered. The sent email can include a script to execute when the email is to be rendered. The script can issue requests to identify device properties such as layout and / or application type. The script can pass these properties along with requests for the content to be presented to the server. Thus, the server can identify one or more display configurations based on specific rendering information, current profile data, and / or current parameters so as to select the content and / or instruct the selection of specific content.
[0038] As an additional or alternative example, the communication may include one or more references or links to a page that renders the content for display when opened (e.g., in a web browser). The page targeted by the link may include some content determined by a machine learning engine before or at the time the communication is generated. The page may further be configured to include content to be selected or generated when a request to render the page is detected (e.g., when a script detects activation of the link), and / or content to be selected or generated when the page is being generated or rendered (e.g., as indicated by executing a script as part of loading the page). In some cases, a script in an email identifies the content configuration at the time of rendering or when rendering is requested. In some cases, a script executed on the linked page identifies the content configuration.
[0039] As an example, a client system may offer online purchase of food delivery. It may be detected that a particular user viewed the menu of a given restaurant at 2 pm. The client system may extract a set of user attributes from profile data for the user from the user data managed by that client. Client-specific learned data may indicate that there is a 76% probability that the user will make a purchase from the restaurant if an email containing a discount code is sent to the user at night (compared to a lower probability associated with other types of communications and other times). In response to determining that the 76% probability exceeds a 65% threshold for sending a discount threshold, email server 140 sends an email to the user device. The email includes a script that, when executed, identifies the restaurant and discount to be presented. The user opens the email at 10 am the next day. The code is executed to request the restaurant and discount from the client system. Cli The Antosystem updates the public learned correlation data after receiving it. The Client system inputs time, the user's location (if currently at the workplace), and previous purchase information into a decision tree built based on the learned data. The discount is 10% (e.g., to maintain the conversion threshold probability), and it is determined that the restaurant is a deli near the user's workplace (e.g., to maximize the conversion probability). On the other hand, if the user opened an email the previous night, a 15% discount is obtained from an Indian restaurant near the user's home based on different user attributes and the learned data (e.g., to maintain the threshold probability). The email contains a link to an order from the deli. When the user clicks the link, the web server determines which content should be shown, specifically, which food items should be recommended. The recommendation is based on more recently updated public learned correlation data indicating that salads and sandwiches should be recommended over soup and entrees as the former options are more popular recently (predicted to be more popular due to warmer weather). Thus, this example shows how content presentation can be dynamically customized for a given user based on very recent learned data and user attributes.
[0040] The machine learning data platform 105 can generate updated client data based on any communication received from a user device (e.g., in response to a workflow action). For example, the updated client data can include data in the header or payload of the received communication, an indication of whether a particular event was detected (and, e.g., when it was detected), and / or one or more new fields generated based on the current or final stage of the workflow to which the profile is assigned. The machine learning data platform 105 makes the updated client data available to the client system 110 (e.g., along with a corresponding profile identifier), and the client system 110 can store the updated data in the client-specific learned data store 165. The client system 110 may store the updated data separately from the existing profile, but it is not necessary to store it.
[0041] In some cases, it will be understood that some or all of the machine learning data platforms can be incorporated within the client system 110. In some cases, the client system 110 communicates with the machine learning data platform during the iteration of the communication decision tree. For example, the client system 110 (e.g., the web server 135 or the app server 145 in the client system 110) can detect a flag (e.g., included in the URL) in a request for web content or app content received from a user device. The flag indicates its relevance to a machine learning-based workflow. Thereafter, the client system 110 can alert the machine learning model implementer 157 of the request so that the appropriate trajectory can be updated.
[0042] The machine learning data platform, the client system 110 and the user devices 150-1, 150-2 may communicate over a network 160. The network 160 may include, for example, the Internet, local area networks, wide area networks, and the like. It will be understood that various alternatives to the embodiments shown and described are possible. For example, some or all of the machine learning may be performed in the client system 110. The client system 110 may periodically receive anonymized or partially anonymized user data for processing using machine learning techniques.
[0043] Another technique for using and configuring communication decision trees is described in US Pat. No. 6,393,366 issued Jun. 13, 2018 (having the title "Methods and Systems for Configuring Communication Decision Trees based on Connected Positionable Elements on Canvas"). No. 6,333,513 filed on June 2018 (entitled “Machine-Learning Based Processing of De-Obfuscated Data for Data Enrichment”). No. 6,399,433, filed on May 13, 2003, and U.S. application Ser. No. 09 / 02 / 2003, each of which is incorporated by reference in its entirety and for all purposes.
[0044] Figures 2 and 3 show interfaces 200 and 300 for constructing templates 202 and 302 for communication that is configured to detect a rendering process or is configured to be partially constructed during rendering. Constructing may include executing a configured machine learning model using the current learned configuration of the model and current profile data. Template 202 shown in Figure 2 includes a template used to generate email communication, and template 302 shown in Figure 3 includes a template used to generate app notification communication.
[0045] Template 202 includes static text (such as text 205) and interaction mechanisms (such as button 210). Template 202 further represents a specific layout in which three items are linearly represented above text 205. Template 202 further includes dynamic components (such as dynamic text 215 and dynamic image 220) configured to be identified when or if email rendering is requested. Thus, when an email communication is sent, the static components may be sent together with code configured to locally identify at least a portion of the current profile data (when detecting a request to render an email), request at least a portion of the current profile data, request identification of dynamic components, receive or extract dynamic components (such as identified using current profile data, current anonymized or partially anonymized data, and / or current learned parameters), and / or generate a complete email based on the template and the dynamic components. Thereafter, the generated email may be presented.
[0046] Template 302 includes a static layout and a plurality of dynamic text components (e.g., dynamic title section 310). Template 302 can be configured to be sent with a script that facilitates dynamically identifying each dynamic text component. For example, when the script detects a request to present a notification (e.g., in response to opening an app, clicking a notification app element, etc.), it locally identifies at least a portion of the current profile data, requests at least a portion of the current profile data, requests identification of the dynamic text component, receives or extracts the dynamic text component (identified, for example, using the current profile data, the current anonymized or partially anonymized data, and / or the current learned parameters), and / or generates a complete notification based on the template and the dynamic text component. Thereafter, the generated notification can be presented. Interface 300 shows an example of a dynamically generated notification 315, which includes a static layout and specific dynamic text.
[0047] Figure 4 shows a representation of a communication decision tree 400. Communication decision tree 400 includes a start node 405 where each trajectory begins. A particular trajectory can be initialized when it is detected that the user has completed two particular actions (e.g., initialized two website sessions, purchased two items from a website, navigated to at least two web pages on a website, etc.) in this example.
[0048] The communication decision tree 400 includes three branch nodes 410, 415, and 420. Each of the three branch nodes 410, 415, and 420 branches to connect to three nodes representing three different actions. A trajectory can automatically and immediately extend from the initial node 405 to the first branch node 410, thereby triggering the making of a first decision. Specifically, the first decision may include identifying a communication channel to be used to send an alert about the characteristics of a website. The alert may include a static header that is automatically presented (e.g., generally) indicating that a product or discount is available in relation to the website. The alert may further be associated with dynamic content (e.g., specifically identifying one or more products and / or discounts) to be identified at the second branch node 415 when a request to open the notification is detected.
[0049] The first branch node 410 is connected to a first action node 425a representing an email communication channel, a second action node 425b representing an SMS message communication channel, and a third action node 425c representing an app-based communication channel (where the notification is push sent to the user device and / or push sent by an app installed on the user device).
[0050] The first determination can be made using a machine learning model configured based on one or more first parameters. The one or more first parameters can be determined dynamically based on anonymized user data and / or partially anonymized user data and / or client-specific data. For example, the anonymized user data and / or partially anonymized user data can indicate how effective it was in triggering a user to start a session at a corresponding website (such as determined based on using a tracking link in an alert) and complete a transaction during that session for each of various user sub-populations (such as defined based on one or more user attributes), for each of three types of communication channels. The anonymized user data and / or partially anonymized user data can correspond to many different websites and / or websites having one or more specific characteristics. Client-specific data can include data tracked by a given client for a particular website of interest and can include data specifically identifying each user and the results for which various alerts were sent. Thus, client-specific data can be richer in some respects than anonymized data and / or partially anonymized data, but the number of users represented in client-specific data can be less than the number of users represented in anonymized data and / or partially anonymized data. Additionally, client-specific data may lack combinations of relevant attributes. For example, a given client may not have previously used app-based alerts, which can reduce the accuracy with which the machine learning model can predict the potential impact of such alerts.
[0051] A machine learning model (configured by a first parameter) may use profile data associated with a trajectory to determine which communication channel to provide to a user. The profile data may include profile data collected by a client (using, for example, metadata, cookies and / or inputs associated with previous HTML requests from a user device associated with the trajectory). The profile data may further include other profile data requested and received from a remote user profile data store that may collect and manage profile data from multiple web hosts, clients, etc. When identifying a communication channel, the directory extends to a corresponding action node (425a, 425b or 425c). An alert is then sent using the corresponding communication channel. The alert may be configured to automatically identify restricted content and extend the directory to a second branch node 410 when a request to open the alert is detected. A determination may then be made at the second branch node 410 to determine the specific content to be presented in the body of the alert.
[0052]
[0053] Accordingly, the second branch node 415 is connected to a first notification content node 430a representing content that identifies the product most recently viewed by the user on the website, a second notification content node 430b representing content that identifies four of the products most viewed (across multiple users) on the website during the previous week, and a third notification content node 430c representing content that includes the identification of a discount. A second determination may be made using a machine learning model configured based on one or more second parameters. Accordingly, in some (but not all) cases, the general type of machine learning model used at various branch nodes to make decisions may be the same, but the specific configuration (e.g., the weights to be assigned to various user attributes, which user attributes should all be considered, and / or which target outcomes to indicate) may vary.
[0054] One or more second parameters may be dynamically determined based on anonymized user data and / or partially anonymized user data and / or client-specific data. However, each of the anonymized user data and / or partially anonymized user data and / or client-specific data may change after the first determination is made, which may contribute to the difference between the first and second parameters. Further, the potential actions considered at the second branch node 415 are different from the potential actions considered at the first branch node 410. Accordingly, the first and second configurations may vary. Further, the profile data being processed may vary between the first and second branch nodes. For example, an application associated with the client may be installed on the user device (such that, for example, application-based notifications are an option at the second branch node but not an option at the first branch node) between the processing performed at the first branch node and the processing performed at the second branch node.
[0055] Once the content is identified, the trajectory extends to the corresponding content node (430a, 430b, or 430c). Thereafter, the corresponding content is sent to the user device so that it can be presented on the user device.
[0056] The content may include one or more tracking links to web pages on a website. When it is detected that a tracking link has been activated, the trajectory may extend to a third branch node 420. Thereafter, a determination may be made at a third branch node 415 to determine the specific content to be presented on the requested web page.
[0057] Thus, the third branch node 420 is connected to a first web page content node 435a representing content that identifies four representative products, each associated with a different category, a second web page content node 435b representing content that identifies four representative products, each associated with the same category, and a third web page content node 435c representing content that identifies a single product predicted to be of interest to a given user based on previous web page interaction data. The third determination may be made using a machine learning model configured based on one or more third parameters. The third parameters may differ from the first and / or second parameters as a result of anonymized user data and / or partially anonymized user data, temporary changes to client-specific data, and / or differences in potential actions. Further, the profile data processed at the third branch node 420 may differ from the profile data processed at the first branch node 410 and / or the second branch node 415 (e.g., as a result of detecting new metadata in communications from the user device and / or receiving new information corresponding to the profile from a remote system).
[0058]
[0059] When identifying content, the trajectory extends to the corresponding content node (435a, 435b, or 435c). Thereafter, the corresponding content is sent to the user device so that it can be presented within the corresponding web page on the user device.
[0060] Although the communication decision tree 400 shown in FIG. 4 indicates that a single decision is made at each communication stage (when a notification should be sent, when the body of the notification should be presented, and when a web page should be shown), it will be understood that instead, multiple decisions may be made using a machine learning model. For example, at the branch node 410, decisions may be made (by identifying, for example, a time within a time period or a time from a set of potential times) regarding which communication channel to use and when to send a notification. As another example, separate decisions may be made before or after the communication channel decision that identifies the transmission time. Thus, a machine learning model may be configured to generate multiple outputs, or multiple machine learning models may have multiple configurations (each corresponding to different parameters and / or hyperparameters, each being learned separately, and / or each producing a different type of output).
[0061] FIG. 5 shows an example of a trajectory 500 that corresponds to a user device and extends through the communication decision tree 400. In this case, the machine learning result made at the first branch node 410 indicates that the email communication channel should be used to send a notification, and the trajectory 500 extends to the first action node 425a. Thereafter, an email notification is sent to the user device. A request for email content indicating that the user is attempting to view the email is detected, and the trajectory 500 extends to the second branch node 415. There, a decision is made to include content that includes the identification of a discount in the email. Accordingly, the trajectory 500 extends to the third notification content node 430c, and the corresponding content is sent to the user device.
[0062] Thereafter, a request for a web page corresponding to a target link in the email is detected, and the trajectory 500 extends to the third branch node 420. A machine learning result is generated indicating that the web page should include content identifying four representative products, each associated with a different category. Accordingly, the trajectory 500 extends to the first email content node 435a, and at the first email content node 43 5a, the corresponding web page content is sent to the user device.
[0063] As shown, the decisions at the first branch node, the second branch node, and the third branch node are shown to have been made at 5 pm on the first day, 12 pm on the second day, and 6 pm on the second day, respectively. Thereafter, the corresponding actions are taken immediately. It will be understood that the action time may be further determined according to machine learning model execution, client rules, or other techniques.
[0064] Furthermore, it will be understood that identifying machine learning-based decisions may involve implementing one or more additional constraints and / or factors. Alternatively or additionally, machine learning-based decisions may be further modified based on one or more additional constraints and / or factors. For example, U.S. Application No. 14 / 798,293, filed Jul. 13, 2015 (incorporated herein by reference in its entirety for all purposes), further details additional techniques for dynamically identifying communication characteristics that may be combined with the machine learning techniques disclosed herein.
[0065] In some embodiments, systems and methods are provided that utilize a canvas to facilitate constructing a sequence of machine learning implementations to partially define a communication exchange. More specifically, a canvas is utilized that accepts positioning and connection of individual switch visual elements relative to a corresponding set of communication visual elements. A communication decision tree may then be generated based on the set of visual elements that are positioned and connected. The canvas may be configured to accept identification of one or more communication specifications associated with each communication visual element. Each switch visual element may represent machine learning techniques (to be associated with specific parameters learned through learning) used to select a particular communication visual element from a set of communication visual elements connected to the switch visual element. The canvas may be configured to accept identification of a target outcome (e.g., for each switch visual element, or generally) that may direct machine learning selections (e.g., representing an event or communication initiated by a user). Thus, the particular communication visual elements selected using machine learning techniques may correspond to communication specifications that are predicted to lead to a target outcome (e.g., representable as an event visual element in a communication decision tree).
[0066] A machine learning model can be defined for each represented switch visual element. The machine learning model can be learned using previous trajectories related to other communication decision trees (however, for example, leveraging other communication decision trees having communication visual elements corresponding to the same or similar communication specifications as those represented by the communication visual elements in the learned model). For example, the model can learn for trajectories that are routed to trigger communications having a particular communication specification, what subsequent events were represented by those trajectories initiated by a user (and, for example, which part of the trajectory represented the occurrence of an outcome targeted by the client). The model can also or alternatively learn using trajectories related to the generated communication decision tree as they occur.
[0067] In some cases, the model can be learned using a dataset that reflects previous events (for example, other indications of trajectories and / or event sequences through the same or different communication decision trees) and enhanced with new data. The new data can be newly available (for example, via newly received form inputs or metadata detection), but can correspond to variable types that are static or are presumed to change predictably. For example, if the user's age is identified at time X, the user's age at time X - 3 years can be calculated, but the accuracy of retrospective estimation of variables of interest or location over extended time periods may be less reliable. Learning can determine whether the various attributes represented in the new data predicted whether a particular event occurred or not.
[0068] The interface can be configured to receive instructions regarding biases to be applied at various machine learning stages. For example, with respect to a given switch element connected to a particular set of communication visual elements, the client can interact with a slider control visually associated with the first visual element to indicate that path selection should be boosted (or suppressed from) the first visual element. The metadata fed into the machine learning model can be set based on the interaction to enable the execution of the corresponding bias. In some cases, the metadata can then correspond to unlearned hyperparameters used to adjust or constrain the learned parameters (e.g., weights). In some cases, the metadata can be used to define post - processing adjustments to be applied to the results generated by the machine learning model. In some cases, the client or system implements a bias towards a given communication visual element when the learning data corresponding to the communication specifications represented by the element is relatively low (e.g., generally and / or in relation to a given communication stage).
[0069] In some cases, the interface may enable a client to define the structure of the communication decision tree and / or, for each decision node, define one or more hyperparameters of the machine learning model to be executed at that node. Note that the machine learning model can be defined based on one or more hyperparameters and one or more parameters. Each of the one or more hyperparameters includes variables that have not been learned through the learning of the machine learning model, while the one or more parameters include one or more variables that have been learned through the learning of the machine learning model. Thus, the interface can be configured to enable the client to specify, for example, hyperparameters indicating many branch nodes, actions corresponding to each branch connected to each branch node, other node connections, and one or more constraints observed during the execution of an individual machine learning model.
[0070] FIG. 6 shows an exemplary interface 600 for defining a communication decision tree. Specifically, the interface includes a canvas 605 on which representations of various nodes can be positioned and connected. Interface 600 may include a set of icons that can be selected and positioned on canvas 605 to represent a particular sequential operation. The set of icons may include a start icon 610 representing the start of the communication decision tree. The start icon 610 is associated with configuration logic that can receive a definition of a condition indicating that a trajectory through the communication decision tree should be started when satisfied.
[0071] The set of icons may further include an end icon 615. The communication decision tree may be defined to indicate that a given trajectory is completed when reaching the end icon 615. The client may connect action definition icons and / or event detection icons between the positioned start icon 610 and the positioned end icon 615 to represent various operations and assessments to be performed during trajectory observation.
[0072] The action definition icon included in the set of icons may be a switch icon 620. The switch icon 620 corresponds to a branch node where a branch is selected or "switched". The selection may be made using the configured machine learning model and profile data. Often, the switch icon 620 is connected to multiple potential paths. The potential paths may intersect with other icons (such as communication icons, event detection icons, other switch icons, and / or end icons).
[0073] Exemplary communication icons include an email icon 625 indicating that an email should be sent to the user device, a text message icon 630 indicating that a text or SMS message should be sent to the user device, and an app message icon 635 indicating that an alert should be shown via an app installed on the user device. In some cases, the potential path indicates that no action is taken (via the absence of a communication icon). In the shown canvas, the positioned switch icon is connected to three paths: two email paths (associated with different content and / or send times, for example), and one no-action path.
[0074] The event detection icons included in the icon set may include a target detection icon 637 that indicates that an event corresponding to an outcome targeted for one or more machine learning techniques has been detected. The target detection icon 637 and / or another event detection icon may indicate, for example, that a notification has been opened, that a target link included in the notification has been activated, that a user device associated with a trajectory has initiated a session with a website, that a product (e.g., any product or a specific product) has been purchased on the website, that additional profile information corresponding to the trajectory has been provided, and so on.
[0075] The interface 600 may include a connection tool 640 that can be used to connect a plurality of icons in a directional manner. Each connection may indicate that the communication decision tree is configured to allow the trajectory to extend in the direction indicated across the connected nodes. However, each connection may be associated with a condition that, when satisfied, causes the trajectory to simply extend across the connection. For example, the connection may be configured such that the condition is satisfied when a decision is made at a branch node (connected to one end of the connection) to perform an action represented by a communication icon (connected to the other end of the connection). As another example, the condition may be configured to be satisfied when a particular type of interaction is detected in relation to a user device associated with the trajectory.
[0076] Each action definition icon may be associated with one or more action parameters that define the detailed action to be performed when the trajectory reaches the icon. For example, the parameter definition interface may be presented as part of the interface 600 when the icon is clicked, and / or the parameter definition interface may be opened in a pop-up window when the icon is right-clicked and / or double-clicked.
[0077] In some cases, each action definition icon and / or event detection icon corresponds to a widget or code that can be executed independently. The canvas 605 can function as a communication fabric such that the result produced by one widget (e.g., an instruction from a machine learning model corresponding to a switch icon that a communication should be sent according to a specific communication specification) can be utilized by another widget (e.g., a widget corresponding to a communication icon corresponding to a specific communication specification). Thus, the canvas 605 can extend a trajectory in response to a widget result and can adjust the context of communication exchange. The situation of communication exchange can be adjusted.
[0078] Although not shown in FIG. 6, it will be understood that in some cases, a plurality of switch icons 620 can be positioned on the canvas 605. Each switch icon 620 can correspond to a separate instance of a machine learning model that can be configured or operated separately.
[0079] FIG. 7 shows an exemplary parameter definition interface 700 for a switch icon. The parameter definition interface 700 includes a field for a stage label that accepts text input. The text input can be subsequently displayed next to the associated icon in an interface for defining a communication decision tree. A description that can be displayed in an interface for defining a communication decision tree in response to detecting a single click or double click (for example) associated with an icon can be further input via the text input. The situation of communication exchange can be adjusted.
[0080] For a switch icon configured to identify selection or action specifications and / or configured to implement a machine learning model, the parameter definition interface 700 may include a field that defines the target outcome. For example, a pull-down menu may identify a set of events that are tracked and available for identification as the target outcome. The target outcome may include actions initiated on the user device, notifications initiated by the system, etc. For example, the target outcome may include detecting that a link within a communication utilized by the user device has been clicked, that a communication utilized by the user device has been opened, that a purchase (i.e., conversion) has been made in relation to the user device for a communication, that a chat session has been initiated, that a form has been completed, etc.
[0081] For a switch icon configured to identify selection or action specifications and / or configured to implement a machine learning model, the parameter definition interface 700 may further include one or more fields indicating the potential results to be identified. For example, the interface 700 includes fields corresponding to three paths or branches extending from the icon. In this case, the stage label name of another action definition icon is identified for each path. In some cases, the path information is automatically updated in the parameter definition interface 700 when it is detected that the switch is connected to one or more other icons in an interface for defining a communication decision tree. It will also be understood that the parameter definition interface 700 may include options such as adding additional paths, removing paths, etc.
[0082] In some cases, one of the paths can be identified as the default path. The machine learning model predicts that the directory will generally be routed to the default path if, for example, another path does not have at least a threshold degree of greater probability of leading to the outcome targeted, and additional data for the threshold path (such as that indicated by a predicted improvement in the confidence of subsequent predictions) will be created by traversing through another path. In some cases, whether the default path is selected (for example, if another path has at least a 60% probability of leading to the targeted outcome and this probability is not predicted to have at least a 50% confidence) depends on the confidence associated with the probability that the targeted outcome will occur.
[0083] In some cases, the switch icon can be configured to select a path and / or the next action (or its absence) and the time to extend the path to the next icon (and, for example, execute any next action). The time can be selected from a plurality of times and / or along an open or closed continuum. In the case shown, the parameter definition interface 700 includes the maximum time for which a trajectory is extended to the next action definition icon. Thus, here, the trajectory should be extended within one day after reaching the switch icon if the decision logic executed in relation to the switch icon does not indicate that another time period is sufficiently more advantageous (for example, a higher probability of leading to the targeted outcome and / or an increase in learning data). In some cases, the switch icon can be configured to select a path and / or the next action (or its absence) and the time to extend the path to the next icon (and, for example, execute any next action). The time can be selected from a plurality of times and / or along an open or closed continuum. In the case shown, the parameter definition interface 700 includes the maximum time for which a trajectory is extended to the next action definition icon. Thus, here, the trajectory should be extended within one day after reaching the switch icon if the decision logic executed in relation to the switch icon does not indicate that another time period is sufficiently more advantageous (for example, a higher probability of leading to the targeted outcome and / or an increase in learning data). In some cases, the switch icon can be configured to select a path and / or the next action (or its absence) and the time to extend the path to the next icon (and, for example, execute any next action). The time can be selected from a plurality of times and / or along an open or closed continuum. In the case shown, the parameter definition interface 700 includes the maximum time for which a trajectory is extended to the next action definition icon. Thus, here, the trajectory should be extended within one day after reaching the switch icon if the decision logic executed in relation to the switch icon does not indicate that another time period is sufficiently more advantageous (for example, a higher probability of leading to the targeted outcome and / or an increase in learning data).
[0084] Machine learning techniques and / or other selected techniques can be configured to identify a path associated with the highest probability of resulting in a targeted outcome from a plurality of potential paths. In some cases, the techniques are often selected to introduce some degree of noise and / or variability in order to facilitate continuing to learn a model where a sub-optimal path exists.
[0085] In some cases, a client may have a reason to introduce a bias towards or against the selection of a particular path. For example, a particular path may be (e.g., computationally and / or financially) costly to use compared to another path. As another example, a particular path may have a high availability compared to another path. As yet another example, a client may desire to quickly obtain information regarding the efficiency of a given path so as to inform subsequent resource allocation decisions.
[0086] Accordingly, the parameter definition interface 700 may include one or more options for implementing a bias towards or against an individual path. As shown, a slider is provided for each path. When the slider is positioned towards the right "boost" side, the path selection technique may be adjusted such that a bias is applied towards the corresponding path. When the slider is positioned towards the left "constraint" side, the path selection technique may be adjusted such that a bias is applied against the corresponding path. There are limitations imposed on such boost options and / or constraint options, and (for example) moving the slider to the leftmost constraint position does not prevent the selection of the corresponding path. Such limitations may enable the machine learning model to continue to collect data related to various options and to continue to modify one or more parameters through learning. If only two options exist, a single interface component may be provided to identify the relative bias towards one option over the other option. On the other hand, if more than two options exist, option-specific boost / constraint options may provide more intuitive control.
[0087] FIG. 8 shows another parameter definition interface 800 that includes options for implementing a bias towards or against representing various contents in communication. In the case shown, nine content items (each representing a corresponding product) are represented. A slider is provided in visual association with the representation of each content item. When the slider is positioned towards the right "boost" side, the content selection (which may correspond to, for example, selecting between multiple paths representing different contents or selecting content after identifying a communication channel) may be adjusted such that a bias is applied towards the corresponding content item. When the slider is positioned on the left "constraint" side, the path selection technique may be adjusted such that a bias is applied against the corresponding item.
[0088] When shown, the slider is positioned at the far left. This triggers the presentation of the "no offer" option. In some cases, if the no offer option is not selected, the first content item may still be selected at least sometimes.
[0089] Based on the relative biases indicated by the slider and the history communication count, the system can predict the number of times an individual content item will be represented on a given day. Thus, when the client moves one or more sliders, the interface 800 can automatically update the estimated count of the number of times an individual content item will be presented (e.g., per day) given the slider positions.
[0090] It will be understood that different types of biases can be further identified and implemented. For example, one or more sliders may be provided to indicate a bias related to when a communication is sent. For example, the slider may bias the decision towards immediate transmission (and / or towards transmission at another time such as a capped time). to the extent shown.
[0091] Implementing a bias (such as a bias towards or against a type of communication channel, a bias towards or against representing a particular type of content, a bias towards or against sending a communication at a particular time, etc.) can include modifying one or more weights and / or one or more thresholds in a (e.g.,) machine learning model. In some cases, implementing a bias includes performing post-processing (e.g., to redistribute portions of the results to improve the extent to which the distribution of communication attributes matches a target distribution indicated based on the bias).
[0092] Figure 9 shows yet another parameter definition interface 900 that includes options to perform biases that direct or oppose the use of various communication channels for sending communications. When shown, three communication channels are represented: email, app-based notifications, and SMS messages. Visually associated with the representation of each channel is a slider. When the slider is positioned towards the "boost" side on the right, the content transmission can be adjusted such that it is biased towards using the corresponding type of channel. When the slider is positioned towards the "constraint" side on the left, the path selection technique can be adjusted such that it is biased against the corresponding channel.
[0093] Interface 900 further shows a time series representation indicating the number of communications sent using each channel within a recent time period, and further indicating the number of communications scheduled for sending using each channel over a future time period. The current time is represented by a vertical line. The communications can be scheduled according to a selection technique that selects between multiple potential transmission times (which can be included in the same or different machine learning models, for example, for those selecting a communication channel). Thus, a client can view the load scheduled across various channels and determine whether to adjust any biases set to direct towards or against a particular channel.
[0094] Figure 10 is a flowchart illustration of a process 1000 for using machine learning to direct a trajectory through a communication decision tree according to some embodiments of the present invention. Process 1000 begins at block 1005, where a data structure representing the communication decision tree is accessed. The communication decision tree can be configured to dynamically define individual trajectories through the communication decision tree using machine learning techniques to represent a series of communication specifications. More specifically , A communication decision tree may include a set of nodes. In response to detecting an event that will result in an extension, a given trajectory may be extended across nodes. The event may include, for example, detecting a specific type of action or communication from a user event, or identifying a specific decision (corresponding to node identification) in a trajectory management system or a machine learning data platform. The set of nodes may include a set of branch nodes. Each branch node in the set of branch nodes may correspond to an action point configured to identify a direction for a given trajectory and / or identify a specific action to be initiated in a trajectory management system or a machine learning data platform. The branch nodes may be configured to identify directions or actions using a configured machine learning model.
[0095] In block 1010, it is detected that a trajectory (associated with a specific user and / or a specific user device) extends to reach a branch node of the communication decision tree. The specific user may be one of a set of users included in a target group of communication recipients or a target audience (e.g., each associated with one or more predefined attributes each identified by a client). The target group of communication recipients or target audience need not be statically defined (although it may be). For example, at various times, it may represent a dynamic set corresponding to a profile representing each of one or more predefined attributes. The trajectory may extend to the branch node as a result of detecting a specific type of event initiated at the user device (e.g., a communication indicating that the user device engages in a session on a website associated with the client, a communication indicating that the user has completed the submission of a profile form, etc.) and / or as a result of the completion of an action initiated by a specific system.
[0096] In block 1015, the learned data generated by processing other user data is extracted. The other user data may correspond to data associated with at least a portion of a target group of communication recipients and / or a target audience. The learned data may include data generated during learning of machine learning techniques. The learning may be performed during another time for using machine learning techniques to direct one or more trajectories, or it will be understood that the learning and utilization of machine learning techniques may be performed simultaneously. The other user data may include trajectory data associated with one or more trajectories through the same or different communication decision trees. For example, for any of at least a portion of the target group of a communication recipient, the other user data may indicate whether the corresponding trajectory has reached a target node in the communication decision tree as being identified for a predefined trajectory purpose (e.g., indicating success of a workflow). The target node may represent, for example, interacting with content, conversion, or responding to communication. As another alternative or additional example, for any of at least a portion of the target group, the other user data may indicate that the corresponding trajectory has reached a pre-identified node representing an undesired result (e.g., lack of response to communication, lack of conversion, or lack of interaction with content). The other user data may indicate profile data and / or attributes corresponding to one or more users, and may further indicate various events detected and / or initiated in relation to individual trajectories. Thus, for example, the other user data may indicate the probability of detecting a particular type of event (e.g., identified as an outcome targeted by a client) when various situations exist.
[0097] In block 1020, one or more user attributes associated with the user corresponding to a trajectory (detected as extending to a branch node) are extracted. User attributes can include, for example, the type of user device, the geographical location of the user device, the type of browser being used on the user device, the operating system used on the user device, a partial or complete history of interactions between the user device and a particular website, interactions between the user device and one or more other websites associated with the user device, cookie data, and historical data indicating the type of notifications (such as types of e-mails, text messages, and / or app messages) that were opened and led to the activation of links included in the user device. One or more specific user attributes can be collected and / or extracted locally and / or requested and received from a remote source.
[0098] In block 1025, one or more communication specifications are identified based on the learned data and one or more user attributes. For example, the learned data can include one or more parameters of a machine learning model (such as a regression model). The machine learning model can further be defined based on one or more hyperparameters. The machine learning model can be configured to process user attributes using the parameters, hyperparameters, and / or existing structure. The result of the model implementation may identify a selection from a plurality of available options that is predicted to be the most successful in achieving the targeted outcome. The plurality of available options can correspond to, for example, different types of communication channels to be used, different types of content to be sent, and / or different timings of transmission. In some cases, the plurality of available options share one or more other communication specifications.
[0099] In block 1030, the transmission of content to a user device associated with a trajectory is triggered. The content transmission is performed according to one or more communication specifications.
[0100] In block 1035, it is determined whether the trajectory extends to reach another branch node within the communication decision tree. The determination may include, for example, determining whether a threshold amount of time has elapsed since the last communication was sent to a particular user (or corresponding device), determining whether the last communication sent to a particular user (or corresponding device) interacted with the particular user, and / or determining whether the particular user interacted with the target content regardless of whether the interaction with the target content was a result of the last communication sent to the particular user (or corresponding device). In some cases, each of two or more of these determinations is associated with the criteria of different branch nodes. Block 1035 may include identifying to which other branch node the trajectory extends.
[0101] If it is determined that the trajectory extends to reach another branch node, process 1000 returns to block 1015 and blocks 1015 - 1035 are repeated. However, the repeated iteration of block 1015 may include extracting different learned data generated by processing other user data (for example, but potentially not necessarily, in combination with at least some of the user data). The different learned data may have been generated using the same or different configurations of machine learning techniques (having, for example, the same or different values and / or the same or different types of parameters and / or the same or different types of hyperparameters). The repeated iteration of block 1020 may include extracting at least one other user attribute. The repeated iteration of block 1025 is based on the different learned data and at least one other user attribute to generate at least one It may include identifying other communication specifications (and / or from different sets of potential communication specifications). At least one other communication specification may be identified using existing models of the same or different types. Also, the repeated iteration of block 1030 may include triggering another transmission of other content according to at least one other communication specification.
[0102] When it is determined that the trajectory does not extend to reach another branch node, process 1000 proceeds to block 1040 to determine whether the trajectory is complete. This determination may be made by determining whether the current end of the trajectory is associated with a trajectory lacking an extending connection. If it is determined that the trajectory is complete, the processing of the trajectory may be terminated. If it is determined that the trajectory is not complete, process 1000 returns to block 1035 and waits for a determination that the trajectory has reached another branch node (e.g., as a result of an action initiated by the user or an external event).
[0103] Thus, process 1000 facilitates the repeated use of differently configured machine learning models to identify specifications corresponding to different stages in a communication exchange. At different stages, the model may use different profile data (e.g., values for different fields, or values that change over time), and / or different model parameters (e.g., learned based on different inputs and / or outputs related to the model and / or learned based on temporary changes). This iterative application of the machine learning model facilitates dynamically directing the communication exchange for individual users.
[0104] Figure 11 shows a flowchart for process 1100 for defining a machine learning-based communication decision tree using an interface that supports positionable visual elements. Process 1100 begins at block 1105, where an interface is utilized that includes a set of visual elements and a canvas for positioning the elements. Each of the set of visual elements may be positionable on the canvas. For example, the interface may be configured to enable a user to click on a representation of a visual element and, while maintaining the click, drag the cursor to another location on the canvas to drop the visual element at another location. As another example, a representation may be selected (e.g., via a click or double-click), and another input received while the cursor is at another location (e.g., another click or double-click) may position the visual element at another location.
[0105] The set of visual elements may include a set of action-defining visual elements. Each of the action-defining visual elements of the set of action-defining visual elements may be a specific action to be performed if a given trajectory extends to the action-defining visual element. The set of action-defining visual elements may include switch visual elements representing decision actions to identify communication specifications using machine learning techniques (e.g., performed using a machine learning model). The set of action-defining visual elements may further include a set of communication visual elements. Each of the set of communication visual elements may represent a specific communication specification (e.g., type of communication channel, specific content, transmission time, etc.). The set of visual elements may further include connection visual elements configured to connect a plurality of positioned visual elements directionally. Each of the plurality of positioned visual elements may correspond to an action-defining visual element of the set of action-defining visual elements. The directional connection may indicate the order in which the specific actions represented by the plurality of positioned visual elements are to be performed.
[0106] In block 1110, an update to the canvas is detected. The updated canvas may include a switch visual element positioned at a first position within the canvas, a first communication visual element of a set of communication visual elements positioned at a second position within the canvas, and a second communication visual element of a set of communication visual elements positioned at a third position within the canvas. The first communication visual element may represent a first specific communication specification, and the second communication visual element may represent a second specific communication specification.
[0107] The updated canvas may further include a set of connection visual elements. Each of the set of connection visual elements may include an instance of a connection visual element. A first connection of the set of connection visual elements may be positioned to connect the switch visual element to the first communication visual element. A second connection of the set of connection visual elements may be positioned to connect the switch visual element to the second communication visual element. The set of connection visual elements may indicate that potential results of the execution of machine learning techniques at the switch visual element include a first result that triggers a communication transmission having a first specific communication specification and a second result that triggers a communication transmission having a second specific communication specification.
[0108] In block 1115, a specific communication decision tree is defined based on the canvas to be updated. In block 1120, it is detected that a given trajectory associated with specific profile data extends to a specific decision action represented by switch visual elements. In response to the detection, in block 1125, machine learning techniques (composed of learned parameter data and / or static data) are used to process specific profile data to produce machine learning results. The learned parameter data may include data learned during separate or ongoing learning of the machine learning model based on a set of trajectories associated with other users and / or trajectories associated with the same or different communication decision trees. The processing of specific profile data using machine learning techniques may indicate which of the first and second specific communication specifications should be applied for content transmission.
[0109] Accordingly, in block 1130, the content is transmitted to the user device associated with the trajectory. The transmission is performed according to one of the first and second specific communication specifications as indicated in the machine learning results. For example, the first and second communication visual elements may correspond to different types of communication channels. Block 1125 may include identifying one of the two types of communication channels, and the content may be transmitted via the identified channel.
[0110] Accordingly, the canvas facilitates defining a configuration for a communication decision tree. However, the client need not correspond to all users and / or define a communication exchange that includes only one or more deterministic rules. Rather, the interface supports generally identifying options for various communication specifications, the order of communication events, and / or constraints. The specification communication specifications can be automatically and dynamically generated using machine learning techniques. This approach can facilitate configuring the communication system to comply with the client's priorities, but can enable the communication system to dynamically adapt to specific user characteristics, resource loads, recent interaction patterns, and the like.
[0111] It will be understood that variations of the disclosed technology are possible. For example, the branching node may use a different type of artificial intelligence model other than a machine learning model to select the communication specification to be used for communication. As another example, the interface may be configured to accept the selection of a specific type of artificial intelligence model or a more general type of artificial intelligence model to be used in the trajectory stage corresponding to the switch element. As yet another example, the interface may be configured to be able to indicate which data (e.g., in terms of corresponding to one, more, or all switch elements corresponding to one or more communication decision trees, one or more time periods, and / or one or more user population segments) should be used to learn a machine learning model positioned on the canvas. It will be understood that variations of the disclosed technology are possible. For example, the branching node may use a different type of artificial intelligence model other than a machine learning model to select the communication specification to be used for communication. As another example, the interface may be configured to accept the selection of a specific type of artificial intelligence model or a more general type of artificial intelligence model to be used in the trajectory stage corresponding to the switch element. As yet another example, the interface may be configured to be able to indicate which data (e.g., in terms of corresponding to one, more, or all switch elements corresponding to one or more communication decision trees, one or more time periods, and / or one or more user population segments) should be used to learn a machine learning model positioned on the canvas.
[0112] It will be understood that the techniques disclosed herein can be used to support various types of decision trees. For example, visual elements represented on nodes and / or the canvas in the tree (in some cases) correspond to elements generally associated with logic that evaluates whether a given condition is met (e.g., whether a particular type of device - to - device communication is detected, whether a non - client - related application indicates that an action has been taken, whether a particular time has elapsed), and when detected as being met, a particular action is taken. For a subset of nodes and / or visual elements, a given action for which a condition is provided can include executing a machine - learning model based on profile data to select from a set of connecting nodes (or visual elements) to proceed to, such that another particular action associated with the selected node (or visual element) can be performed. For example, a machine - learning - based selection of a trajectory path can be integrated into an If This Then That environment It may be. The branches can identify different applications to be used for storing data, rather than having, for example, branch nodes connected to nodes that identify communication specifications. Thus, the decision framework can be established to allow an artificial - intelligence applet and / or plug - in to communicate with one or more other applets or to return through the canvas.
[0113] Furthermore, although some of the disclosures herein indicate that the results targeted to shape machine - learning learning and execution can be used, it will be understood that more complex cases are considered. For example, alternatively or additionally, negative results (e.g., subscription cancellation requests or complaints) can be identified and used. In some cases, scores can be assigned to various results based on the amount or degree to which one or more target results and / or one or more negative results have occurred. The score can then be used to learn and implement one or more machine - learning models.
[0114] Certain details are provided in the above description to provide a complete understanding of the embodiments. However, it is understood that the embodiments can be practiced without these specific details. For example, the circuits may be shown in block diagrams so as not to obscure unnecessary details of the embodiments. In other cases, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary details so as not to obscure the embodiments.
[0115] The implementation examples of the technologies, blocks, steps, and means described above can be carried out in various ways. For example, these technologies, blocks, steps, and means can be implemented in hardware, software, or a combination thereof. In the case of a hardware implementation example, the processing unit is one or more application specific integrated circuits (ASICs), digital signal processors (DSPs ), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, other electronic units designed to perform the above functions, and / or combinations thereof. can be implemented within.
[0116] Note that the embodiments may also be described as processes shown as flowcharts, flow diagrams, data flow diagrams, structure diagrams, or block diagrams. A flowchart may describe the operations as a sequential process, but many of the operations may be executed in parallel or simultaneously. Further, the order of the operations may be reconfigured. A process is terminated when its operations are completed, but may have additional steps not included in the figure. A process may correspond to a method, function, procedure, subroutine, subprogram, etc. When a process corresponds to a function, its termination corresponds to the return of the function to the calling function or the main function.
[0117] Furthermore, the embodiments may be implemented by hardware, software, script languages, firmware, middleware, microcode, hardware description languages, and / or any combination thereof. When implemented in software, firmware, middleware, script languages, and / or microcode, the program code or code segments for performing the necessary tasks may be stored in a machine-readable medium such as a storage medium. A code segment or machine-executable instruction may represent a procedure, function, subprogram, program, routine, subroutine, module, software package, script, class, or any combination of instructions, data structures, and / or program statements. A code segment may be coupled to another code segment or hardware circuit by passing and / or receiving information, data, arguments, parameters, and / or memory contents. The information, arguments, parameters, data, etc. may be passed, transferred, or transmitted via any suitable means including memory sharing, message passing, ticket passing, network transmission, etc.
[0118] Regarding firmware and / or software implementation examples, a method can be implemented by modules (such as procedures and functions) that execute the functions described in this specification. Any machine-readable medium that tangibly embodies instructions can be used to implement the methods described in this specification. For example, software code can be stored in memory. The memory can be implemented within a processor or externally to the processor. As used in this specification, the term "memory" refers to any type of long-term, short-term, volatile, non-volatile, or other storage medium, and is not limited to any particular type of memory, any particular number of memories, or any particular type of medium in which the memory is stored.
[0119] Furthermore, as disclosed in this specification, the term "storage medium" can represent one or more memories for storing data, including read-only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage media, optical storage media, flash memory devices, and / or other machine-readable media for storing information. The term "machine-readable medium" includes, but is not limited to, portable or fixed storage devices that can store or carry instructions and / or data, optical storage devices, wireless channels, and / or various other storage media.
[0120] Although the principles of the present disclosure have been described above in relation to specific devices and methods, it should be clearly understood that this description is not intended to limit the scope of the present disclosure and is provided by way of example only.
Claims
Claim 1 A method implemented by a computer, comprising: utilizing an interface for defining a communication decision tree in which a trajectory corresponding to a communication exchange is extended, the interface comprising: a set of communication visual elements, each communication visual element of the set of communication visual elements representing a specific operation to be performed when a trajectory is extended to the communication visual element, the set of communication visual elements comprising: a switch visual element representing a decision operation for identifying a communication specification using machine learning techniques, each of the set of communication visual elements representing a specific type of communication channel from a set of multiple types of communication channels, the interface further comprising: a canvas configured to receive one or more positionings of the set of communication visual elements, the method further comprising: detecting an update to the canvas, the updated canvas comprising: a switch visual element disposed at a first position; and a first communication visual element of the set of communication visual elements disposed at a second position, the first communication visual element representing a first specific type of communication channel, the first communication visual element being connected to the switch visual element, the updated canvas further comprising: a second communication visual element of the set of communication visual elements disposed at a third position, the second communication visual element representing a second specific type of communication channel, the second communication visual element being connected to the switch visual element, the method further comprising: defining a specific communication decision tree based on the updated canvas, the updated canvas detecting that a specific trajectory implemented and associated with specific profile data of a user has been extended to a specific decision operation represented by the switch visual element, and in response thereto: extracting one or more specific user attributes associated with the user based on the specific profile data; Applying a machine learning model associated with the switch visual element to the one or more specific user attributes to generate an output indicating that the content should be transmitted across the first specific type of communication channel represented by the first communication visual element, and triggering, where the machine learning model is trained using user attributes for a set of other users, and the updated canvas further A method of triggering, based on the output, the transmission of the content via the first specific type of communication channel. **Claim 2** The set of communication visual elements further includes another set of communication visual elements, each of the other sets of communication visual elements representing a specific category of content from a set of categories of content, and the method further Includes detecting an additional update to the canvas, where the additionally updated canvas Includes another switch visual element located at a fourth position, the other switch visual element being associated with the first and second communication visual elements, and the additionally updated canvas further Includes a third communication visual element of the other set of communication visual elements located at a fifth position, the first communication visual element representing a first specific category of content, the first communication visual element being connected to the other switch visual element, and the additionally updated canvas further Includes a fourth communication visual element of the other set of communication visual elements located at a sixth position, the second communication visual element representing a second specific category of content, the second communication visual element being connected to the other switch visual element, Includes defining an updated communication decision tree based on the additionally updated canvas, where the additionally updated canvas, when implemented, in response to detecting that another specific trajectory associated with the specific profile data of the user has been extended to another specific decision operation represented by the other switch visual element Applying another machine learning model associated with the other switch visual elements to one or more specific user attributes of the specific profile data to trigger the generation of another output indicating the first specific category of the content, the other machine learning model being trained using other user attributes for a set of other users, the other user attributes including at least some user attributes not included in the user attributes of the set of other users, and the additionally updated canvas is, Based on the other output, selecting another content from the first specific category of the content; Triggering the transmission of the other content via the first specific type of communication channel. The method according to claim 1.
3. The interface or the other interface further includes one or more input components configured to receive the identification of one or more specific user attributes from a plurality of specific user attributes, and the specific profile data selectively includes the one or more specific user attributes. The method according to claim 1.
4. The interface is configured such that each individual visual element of the set of communication visual elements can be dragged and dropped to a position within the canvas. The method according to claim 1.
5. Receiving an indication of a bias for a specific communication attribute; Further including adjusting one or more parameters of the machine learning model based on the indication of the bias, and the output is generated using the machine learning model having the adjusted parameters. The method according to claim 1.
6. The output further indicates a specific time within a time range, and causing the content to be transmitted includes causing the content to be transmitted at the specific time. The method according to claim 1.
7. Detecting that the specific trajectory associated with the specific profile data has been extended to the specific decision operation represented by the switch visual element is, That a communication including an address or number associated with the user has been received from the device, or, That an email previously sent to an address associated with the user has been opened. The method according to claim 1.
8. A computer program for causing one or more data processors to execute the method according to any one of claims 1 to 7.
9. A memory storing the computer program according to claim 8, A system comprising one or more data processors for executing the computer program.
Citation Information
Patent Citations
Machine learning generated action plan
US20140358828A1
Accelerating engagement of potential buyers based on big data analytics
US20160063560A1