Messaging selection systems in networked environments
Patent Information
- Application Number
- JP2024190408
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2019-04-17
- Filing Date
- 2024-10-30
- Publication Date
- 2025-02-12
- Estimated Expiration
- 2040-04-16
Smart Images

Figure 2025020244000001_ABST
Abstract
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is based on the application filed on April 17, 2019 entitled "Trust Value and MESSAGE SELECTION AND TRANSMISSION BASED ON COOLDOWN FACTOR SION BASED ON CONFIDENCE VALUES AND COOL DOWN FACTORS IN A NETWORKED ENVIRONMENT No. 62 / 835,267, filed on April 17, 2019, entitled "U.S. Provisional Patent Application ... The patent application, "Indirect Update for Messaging System in Network Environment" ``INDIRECT UPDATES TO MESSAGING SYSTEMS IN A NETWORKED ENVIRONMENT'' This application claims priority to U.S. Provisional Patent Application No. 62 / 835,271, entitled "Comparative Patent Application No. 62 / 835,271," both of which are hereby incorporated by reference in their entirety. The body is incorporated herein by reference. [Background technology]
[0002] Users of customized messaging systems suffer from message fatigue. This can reduce the effectiveness of the message to its intended recipients. Messages sent to a user's client device through the network are Message fatigue is a waste of computing resources and bandwidth because devices are not being served. The app with the desired user interactions and responses For applications, customized messaging is - It can be a tool to achieve engagement goals. Summary of the Invention
[0003] The present disclosure provides a method for selecting and sending messages based on a trust value and a cool-down factor. The present invention relates to a messaging system for sending and receiving related messages. can be sent to users at relevant times. The messaging system will increase user engagement and application effectiveness. The right content is delivered to each user at the right time. It can have a positive impact on user engagement with your application. Personalized relevance delivered to each user in a timely manner via the application Certain messages are designed to improve your health, happiness, fitness, and overall quality of life. This can lead to actual actions taken by users to improve their experience.
[0004] To address some of the challenges associated with message fatigue and other related issues The present disclosure provides a method for generating multiple messages when invoked at any one time. The present invention relates to a message selection system that can call a message object. The trust value associated with each message is used to determine the trust of the message. You can select one or more messages to send to an application on the client device. The message selection system performs a cool-down on each selected message based on a cool-down factor. The message selection system uses a cooldown factor. The time since the last message was received by the client device, the total number of messages that users of the Ant Device choose to receive in a given period of time; and the length of time that the user of the client device is awake or active. The reliability of each selected message may vary based on a variety of factors, including but not limited to: The reliability value of each selected message can then be adjusted. Based on the adjusted trust value of Sage, one or more selected based on the adjusted trust value The user may decide to send a message to the other user.
[0005] The message selection system is designed to reduce the likelihood of users experiencing message fatigue. , based on the time since the last message was delivered to the client device. Based on the likelihood that a message will achieve a desired endpoint or target value, adjusting The message selection system allows users to select messages based on their intended Send messages to users' client devices based on the likelihood of delivering a desired effect. By selectively sending or emitting messages, users are less likely to experience message fatigue. The number and frequency of messages that cause message fatigue varies for each user. This allows us to track each user's messaging preferences, application engagement, and and similar messages to provide timely and accurate responses. Develop a framework or model for delivering personalized messages It is possible.
[0006] A message selection system sends messages to each user's client device. The received message executes an application on each client device. It can be opened through an application running on the client device. The option displays messages from the message selection system to the user on the client device. prompting the user to perform an action or elicit a user response The application can then send the message when it is received on the client device. When the application displays a message, the user activities performed by users on their client devices, etc. and feeding information including data corresponding to the The message selection system can collect messages from the user's client device. Converting collected or received information into messages or individual actions that prompt users to take action To improve the personalization of messages sent to users of the In some embodiments, a user interface is provided to monitor users and their actions on messages. can be used to evaluate the effectiveness of the content and timing of user responses. .
[0007] In a particular embodiment, the message selection system includes a user profile for a plurality of users. For each user profile, a message selection system can be The system uses an invoker ( Each message object is associated with a user profile. Uses message templates that are candidates for sending to the attached client device. Message object evaluation in the message selection system can generate message candidates. The implementer incorporates the context data into the model of the message object to Outputs the confidence value associated with the candidate messages generated by the message object. The confidence value indicates the likelihood that a candidate message sent to a user will have the intended effect. The message object evaluator can then determine whether a message satisfies certain constraints. Message object evaluator can output the confidence value of a message object. evaluates the trust value associated with each candidate message based on certain criteria and Update the confidence value based on the Wong coefficient, and if the updated confidence value exceeds a certain value, The candidate message may be sent to the client device if the candidate message is received.
[0008] The message selection system is configured to use the client device associated with the user profile. Response data from the reporting agents of applications running on the device. The response evaluator of the message selection system can receive the previous message. Based on the response data corresponding to each message, we will improve the performance of the model by The response data can be incorporated into the model of the message object. The goal of message objects is to improve the model of message objects. value (or the desired endpoint). In this way, the message The selection system learns from users' message preferences and responses and optimizes future messages. We improve the message candidate selection process and the reliability of the calculated future message candidates. In this way, the message selection system can improve the quality of the message. Therefore, fewer messages can be selected and sent to the user's client device. At the same time, users can engage with or respond to messages and reach desired endpoints of messages. This can increase the likelihood of achieving your goal.
[0009] In accordance with at least one aspect of the present disclosure, a method includes, by one or more processors, The method may include identifying a number of users and a number of message objects. The method includes: performing, by one or more processors, each of the one or more message objects. The method may include retrieving context data of a plurality of users. One or more message objects and context data are processed by one or more processors. The method may include generating candidate messages based on the one or more The processor calculates the confidence value for each candidate message based on a cooldown factor. and generating an updated confidence value. The message candidates are selected by one or more processors based on their updated trust values. The method may include selecting, by the one or more processors, a complement. A candidate message is selected based on the updated confidence value exceeding a predetermined threshold. The method may include transmitting:
[0010] This disclosure indirectly applies the model of message objects in a messaging system. The present invention relates to a system and method for updating a messaging system. Use responses to rhetorical messages to generate message objects related to non-rhetorical messages. Rhetorical messages are used to update the model of the object based on the user response. The messaging system does not induce any reaction, so the message is related to the rhetorical message. It may not be possible to update the model of the message object. The effectiveness of a rhetorical message is determined by the lack of response from users who receive the message. No information is provided regarding the effectiveness or ineffectiveness of the product. Without it, messaging systems would be unable to define the benefits that rhetorical messages provide to users. It may not be possible to quantify.
[0011] Addressing some of the challenges associated with the lack of response data from rhetorical messages To this end, the present disclosure provides an indirect model of the message object of the message selection system. The message selection system is about updating non-rhetorical messages. The response data of the model of the message object related to the message is passed to the rhetorical message. A response event that can be incorporated into the model of the message object associated with the message. In this way, the message selection system can be Response data for non-messages is replaced with response data for rhetorical messages (or In this way, the message selection The selection system does not receive direct feedback about the rhetorical message. Selecting and sending a customized rhetorical message to a user's client device The message selection system also allows you to select a message from a list of selected messages to prevent message fatigue. Sending a rhetorical message to a user's client device at a customized time It is possible.
[0012] The message selection system is designed to reduce the likelihood that users will experience message fatigue. Based on the likelihood that a message is about to achieve a desired endpoint or goal, Selects messages based on the number of messages that were delivered to the client device, while The message selection system can adjust the likelihood based on the time since the message was received. The user's client device will determine the likelihood that the message will have the intended effect. By selectively sending or forwarding messages to devices, users can avoid experiencing message fatigue. This reduces the likelihood that individual users will experience message fatigue. Since the number and frequency of messages varies, the message selection system must be Message preferences, application engagement, and response to similar messages Incorporate information about the response you receive to deliver tailored messages at the right time. It is possible to build a framework or model for delivering content in a timely manner.
[0013] The message selection system sends messages to each of the users' client devices. The received message is sent to the application running on each client device. Applications running on the client device can open messages. Display messages from the message selection system to the user of the client device and It can prompt a user to take action or elicit a response. The application can then send a notification to the client device when the message is received. When the application displays the message, the action the user performed on the application activity, which corresponds to the activities that the user performed on the client device, etc. The message selection system may be configured to feed back information including data on the message selection. The message selection system may collect or transmit information from a user's client device. The effectiveness of the message in persuading users to take action using the information they receive or evaluate the content and timing of the user's response and send it to each individual user. Improve personalization of messages sent to users, and in some embodiments, You can monitor users and their activity on your messages.
[0014] In a particular embodiment, the message selection system includes a user profile for a plurality of users. For each user profile, a message selection system can be The system creates an invoker that can invoke a message object at a given time interval. Each message object is associated with a user profile. Message templates that are candidates for sending to the assigned client device are used to Message candidates can be generated. The object evaluator incorporates context data into its model of the message object. The message object outputs the confidence value associated with the generated message candidate. The confidence value indicates the likelihood that a candidate message sent to a user will have the intended effect. The message object evaluator can then determine whether a message satisfies certain constraints. You can output the trust value of a message object. The valuator evaluates the confidence value associated with each candidate message based on certain criteria and The trust value is updated based on the down-down coefficient, and the updated trust value is If a threshold is exceeded, determining to transmit the candidate message to the client device. It is possible.
[0015] The message selection system is configured to use the client device associated with the user profile. Response data from reporting agents of applications running on the device. The response evaluator of the message selection system can receive Based on the response data corresponding to the previous message sent to the client device To improve the model performance, we use the response data as a model of the message object. The response data can be incorporated into the model of the message object. Compare the message object to the target value (or desired endpoint) to improve it. In this way, the message selection system can select the user's message It learns from user preferences and responses to improve the selection process for future message candidates and In addition, it is possible to improve the quality of the confidence values calculated for future candidate messages. In this way, the message selection system selects fewer messages to It can be sent to client devices at the same time that users can engage with or can respond and increase the likelihood of achieving the desired endpoint of the message.
[0016] The response evaluator uses the message object associated with the non-rhetorical message. The response data in the model is then converted into a message object associated with the rhetorical message. In this way, the message selection system can be The response data of the rhetorical message is the response data of the rhetorical message (or In this way, the message selection system can be used as a proxy for the absence of The system is designed to allow the user to select a message when the user receives a rhetorical message. Even if you don't receive direct feedback, you can still receive appropriate, personalized rhetorical feedback. Messages can be selected and sent to the user's client device.
[0017] According to at least one aspect of the present disclosure, the method includes: The method may include identifying a plurality of non-rhetorical messages based on the non-rhetorical messages. The message is configured to generate a response message on the remote device that is sent to the server. The method may include the first set of requests being made to the one or more processors of the server. The method may include identifying a rhetorical message by: A second request is configured not to generate a response message on the remote device. The method may include, by one or more processors of the server, modifying The method may include identifying a rhetorical message model. The rhetorical message model may include The method may include: Thus, the method may include identifying a plurality of non-rhetorical message models. The message model may correspond to a rhetorical message model. A response message to a non-rhetorical message is generated by one or more processors in the server. The method can include receiving a received response to the non-rhetorical message. updating the rhetorical message model based on the sponsored message. This can be done.
[0018] In accordance with at least one aspect, the present disclosure provides a method for transmitting a message over a network environment. The present invention is directed to a system and method for receiving at least one A server may identify multiple message object candidates. A candidate object is a user-defined object that is used to realize one or more of multiple endpoints. At least one server may be associated with a selection criterion for presenting to the remote user. From the activity logs of users associated with a computing device One or more actions by a user recorded via a remote computing device. At least one server may obtain one or more recorded Used to identify one of multiple possible message objects from the action. The at least one server may determine a user state to be used for the message. For each object candidate, select the user state and message object candidates. A confidence value may be determined based on the comparison to the selection criteria. the effectiveness of the corresponding candidate message to the user in achieving one or more of the following: At least one server may indicate a prediction of each of the plurality of message object candidates. For the complement, at least one message object candidate corresponding to at least one of the multiple message object candidates is Based on at least one elapsed time between the sending time of the previous message and the current time At least one server may update the trust value of multiple message objects. From the candidate objects, the message object is selected based on the trust value of the message. At least one server may select from a plurality of message objects. The message may be generated based on the message object. The server presents the information to a remote computing device associated with the user. The user may send a message to
[0019] In some embodiments, at least one server is a remote computing device. and one or more subsequent actions by a user in response to presentation of the message via the device. In some embodiments, at least one server may record the activity in an activity log. The server determines the user state based on one or more subsequent actions in response to the presentation of the message. You may update the following.
[0020] In some embodiments, at least one server uses the training data set. The training data set may be used to establish a message object model. A user request for a message corresponding to one or more of the multiple message object candidates. In some embodiments, the response data may include historical response data from users. A single server can use the message object model to store user state and multiple messages. The confidence value may then be applied to the selection criteria for the candidate page objects to determine a confidence value.
[0021] In some embodiments, each message object of the plurality of message object candidates A candidate message is generated by a message template and a trust value. A model for determining when to send a message and the corresponding time constraints for the message to be sent. Define one or more of multiple endpoints to be achieved within a time window. and selection criteria for determining whether the
[0022] In some embodiments, at least one server is a remote computing device. Multiple user states for a user associated with a device can be used to A user state corresponding to at least one of the above may be determined. At least one server has a time corresponding to the time elapsed between the last transmission time and the current time. A cool-down factor may be specified and applied to the confidence value.
[0023] In some embodiments, at least one server may Based on the comparison of the confidence value of each message object with a threshold, a message object is selected from multiple message object candidates. The threshold is determined by the delivery policy for sending messages. In some embodiments, at least one server may be configured to From the activity log, one or more of the message object candidates are found. Capture one or more actions taken by the user in response to the previous presentation of the message good.
[0024] In some embodiments, at least one server may include a distribution server for transmitting messages. Sends a message to a remote computing device at the current time defined by the sending policy. In some embodiments, the at least one server may transmit the Select multiple message objects based on their status not matching the selection criteria for each subset. At least a subset of the candidate objects may be removed from the selection.
[0025] In accordance with at least one aspect, the present disclosure provides a method for controlling a message transmission over a network environment. The present invention contemplates a system and method for selecting a page. A server may identify multiple message objects. Each message object in the object represents one of multiple endpoints to be achieved. At least one server may be associated with a plurality of message objects. For each message object in the object, multiple remotes to which the corresponding message was presented are A plurality of entities of a message object associated with a remote computing device. may determine the number of users that satisfy at least one of one or more of the endpoints. At least one server may have multiple message objects, each of which may For each message, a corresponding message is presented, and multiple action entries of the message object are Based on the number of users who satisfied at least one of the points, A performance score may be determined for each of the at least one server. Generates multiple message objects based on their corresponding performance scores. At least one server may rank a number of message objects. Based on the ranking, at least a subset of the plurality of message objects is To generate messages for transmission to a plurality of remote computing devices may restrict the use of
[0026] In some embodiments, the at least one server receives a plurality of messages of the first message type. A plurality of messages of a first message type may be identified. Each message object in the message object is a message object that is used to generate the corresponding message. A message template may be defined. The corresponding message may be sent to multiple remote computers. When presented on a computing device, the interface may have one or more input elements.
[0027] In some embodiments, at least the server receives a second plurality of message objects. wherein each message object of the second plurality of message objects , associated with one or more endpoints to be achieved. At least the server selects a subset of the second plurality of message objects for transmission. The message objects of the first message type are then divided into a plurality of message objects of the first message type following removal of at least a subset of the message objects. Of the multiple endpoints to be achieved that are associated with the remaining subset of the object The selection may be based on one or more of the following:
[0028] In some embodiments, each message object of the second plurality of message objects The object contains a second message type that is different from the first message type of the multiple message object. A second plurality of message objects of the second message type. Each message object in the object is a message object that is used to generate the corresponding message. A message template may be defined that can be sent to multiple remote computers. When presented on a visual display device, the display may lack input elements.
[0029] In some embodiments, each message object of the plurality of message objects At least one server is connected to one of a plurality of remote computing devices. Each response to a message corresponding to a message object when presented together In the process, the input for one or more input elements of the corresponding message may be identified. In some embodiments, for each message object of a plurality of message objects, For each response to a corresponding message, at least one server , which returns multiple entries for a message object based on input on one or more input elements of the message. It may be determined that at least one of the endpoints is satisfied. In some embodiments, at least one server receives a message object for each of the plurality of messages. For each object, at least one of the multiple endpoints of the message object Based on the determination that one is satisfied, the number of users may be determined.
[0030] In some embodiments, at least one server uses the training data set. A performance model may be established to determine a performance score using the training The message object dataset is a set of user responses to one or more of a number of message object candidates. In some embodiments, at least one The server responds to the presentation of a corresponding message by a plurality of remote computing A performance model may be applied to responses received from the devices.
[0031] In some embodiments, at least one server receives a plurality of message objects. For each message object in Returns multiple endpoints for a message object based on input to one or more input elements. In some embodiments, the method may determine that at least one of the following conditions is satisfied: At least one server is responsible for each message object of multiple message objects. For each object, at least one of the multiple endpoints of the message object is A performance model for determining a performance score with a determination of whether the requirements are met You may update the following.
[0032] In some embodiments, at least one server responds to the submission of a corresponding message by and based on responses received from the plurality of remote computing devices in response to the Multiple message objects with multiple endpoints for each message object In some embodiments, at least one server may have one or more attributes. removes multiple message objects based on their performance scores against a threshold. In some embodiments, at least one of the subsets may be restricted. The server exchanges multiple message objects between multiple remote computing devices. A scalable network may allow the sending of multiple messages corresponding to a subset of the remaining
[0033] The foregoing and other objects, aspects, features, and advantages of the present disclosure, taken in conjunction with the accompanying drawings, This will become clearer and be better understood by referring to the following description. cormorant. [Brief description of the drawings]
[0034] [Figure 1A] FIG. 1 is a block diagram illustrating an embodiment of a network environment including a local device in communication with a remote device. [Figure 1B] FIG. 1 is a block diagram illustrating one embodiment of a computer useful in connection with the methods and systems described herein. [Figure 1C] FIG. 1 is a block diagram illustrating one embodiment of a computer useful in connection with the methods and systems described herein. [Figure 1D] FIG. 1 is a block diagram illustrating one embodiment of a computer useful in connection with the methods and systems described herein. [Diagram 2] FIG. 1 is a block diagram illustrating one embodiment of a system for sending relevant messages to a user. [Diagram 3] FIG. 11 is a flow diagram illustrating an example method for contention message selection. [Figure 4] 1 is a graph of confidence values versus time with sharp peaks. [Diagram 5] 13 is a graph of confidence versus time using upper and lower thresholds. [Figure 6] This shows the distribution of the number of messages sent per day. [Figure 7] FIG. 1 is a block diagram illustrating one embodiment of a system for sending relevant messages to a user. [Figure 8] FIG. 1 is a flow diagram illustrating an example of a method for updating an indirect learning model. [Figure 9A] 1 is a block diagram of a system for selecting and sending messages in a network environment using trust values. [Figure 9B] FIG. 1 is a sequence diagram of a system for selecting and sending messages in a network environment using trust values. [Figure 9C] FIG. 1 is a sequence diagram of a system for selecting and sending messages in a network environment using trust values. [Figure 9D]FIG. 1 is a sequence diagram of a system for selecting and sending messages in a network environment using trust values. [Figure 10] 1 is a flow diagram of a method for selecting and sending messages in a network environment using trust values. [Figure 11A] 1 is a block diagram of a system for selecting and sending different types of messages in a network environment. [Figure 11B] FIG. 1 is a sequence diagram of a system for selecting and sending different types of messages in a network environment. [Figure 11C] FIG. 1 is a sequence diagram of a system for selecting and sending different types of messages in a network environment. [Figure 11D] FIG. 1 is a sequence diagram of a system for selecting and sending different types of messages in a network environment. [Figure 12] 1 is a flow diagram of a method for selecting and sending different types of messages in a networked environment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0035] The features and advantages of the present invention may be better understood by reading the following detailed description in conjunction with the drawings in which: In the drawings, like reference characters indicate corresponding elements throughout. In the drawings, like reference numbers generally indicate identical, functionally similar, or structurally similar items. Show similar elements.
[0036] For purposes of reading the following description of the various embodiments, the sections and respective contents of this specification The following list may be helpful:
[0037] Section A describes network and methodology useful for practicing the embodiments described herein. and the computing environment.
[0038] In Section B, we consider the reliability and cooldown factor in a network environment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0003] Embodiments of a system and method for selecting and sending a message via a do.
[0039] Section C describes a system for indirect updates to the messaging system. Embodiments of systems and methods are described.
[0040] In Section D, we use trust values to select and send messages across a network environment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Embodiments of a system and method for receiving a signal are described.
[0041] In Section E, you will learn to select and send different types of messages in a network environment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Embodiments of a system and method are described.
[0042] A. Network and Computing Environment
[0043] In addition to describing specific embodiments of the present solution, the methods and and systems, aspects of the operating environment, as well as related system components (e.g. It is useful to explain the network components (e.g., hardware elements) in the network. In brief overview, a network environment includes one or more One or more servers 106a to 106n (generally, servers (multiple servers)) are connected via the network 104. 106, also referred to as a remote machine number 106, a node 106, or a remote machine(s) 106. One or more clients 102a-102n (typically local machines 10 2, client (multiple) 102, client node (multiple) 102, client master Thin(s) 102, Client Computer(s) 102, Client Device (plural) 102, endpoint (plural) 102, or endpoint node (plural) 1 In some embodiments, the client 102 may include a as a client node seeking access to resources provided by the Provides access to hosted resources for clients 102a-102n It has the ability to act as both a server and a
[0044] FIG. 1A shows a network 104 between a client 102 and a server 106. However, the client 102 and the server 106 may be on the same network 104. In some embodiments, multiple networks may be used between the client 102 and the server 106. In one of these embodiments, a network 104' (not shown) is present. is a private network and network 104 is a public network. In another of these embodiments, the network 104 may be a private network. The network 104 may be a public network. In yet another of these embodiments, networks 104 and 104' are both private. Referring to FIG. 1A, an embodiment of a network environment is shown. In brief overview, a network environment is one or more networks. 4, one or more servers 106a to 106n (generally, servers (multiple) 106, nodes 106, or remote machine(s) 106. Clients 102a to 102n (typically, local machines (multiple) 102, clients (multiple) 102, client node (multiple) 102, client machine (multiple) 10 2, client computer (plurality) 102, client device (plurality) 102, Endpoints 102, also called endpoint nodes 102 In some embodiments, the client 102 includes a As a client node seeking access to resources that are shared among multiple clients, As a server providing access to hosted resources for 02a-102n It has the ability to function as both.
[0045] The network 104 may be connected via wired or wireless links. A line link may include a Digital Subscriber Line (DSL), a coaxial cable line, or a fiber optic line. The wireless link may be BLUETOOTH (registered trademark), Wi-Fi (registered trademark), Worldwide Interoperability for Microwave Access (Wi MAX®, infrared channels, or satellite bands. The network includes communications between mobile devices, including 1G, 2G, 3G, and 4G standards. Network standards include the cellular network standards used in the International Telecommunications By meeting standards such as the specifications established by the alliance, it will be the first or more generation of mobile communication standards. For example, the 3G standard is the International Mobile Telecommunications It supports the International Mobile Telecommunications (IMT-2000) standard, and the 1G standard supports the International Mobile Telecommunications (IMT-2000) standard. Compatible with IMT-Advanced specifications Examples of cellular network standards include AMPS, GSM, GPRS, and UMT. S, LTE, LTE Advanced, Mobile WiMAX, and WiMAX Advanced Cellular network standards include FDMA, TDMA, CDMA, SDMA, etc. Any of a variety of channel access schemes may be used. In some embodiments, different The types of data may be transmitted over different links and standards. The same type of data may be transmitted over different links and standards.
[0046] The network 104 may be any type or form of network. The geographical scope of the network 104 may vary widely, and the network 104 may include Rear network (BAN), personal area network (PAN), local area Area networks (LANs), e.g. intranets, metropolitan area networks (MAN), wide area network (WAN), or the Internet. The topology of the network 104 may be of any type, for example, It can be either point-to-point, bus, star, ring, mesh, or tree. The network 104 may be virtual and may be connected to one or more of the other networks 104'. The network 104 may be an overlay network located on the layer. Any such device as known to those skilled in the art capable of supporting the operations described herein. Such a network topology may be used. Ethernet Protocol, Internet Protocol Suite (TCP / IP), ATM ( Asynchronous Transfer Mode (Asynchronous Transfer Mode) technology, Synchronous Optical Network (SONET) protocol, or SDH ( Layers of different technologies and protocols, including the Synchronous Digital Hierarchy (SDH) protocol The TCP / IP Internet protocol suite is Application layer, transport layer, Internet layer (including IPv6, for example), The network 104 may include a broadcast network, a communication network, It may be a type of network, data communication network, or computer network. stomach.
[0047] In some embodiments, the system includes multiple logically grouped servers 106 In one of these embodiments, a logical grouping of servers may include a server file. In another of these embodiments, the machine farm 38 may be referred to as a machine room 38 or a machine farm 38. The servers 106 may be geographically distributed. In other embodiments, the machine farm 38 In yet another embodiment, the machine family may be managed as a single entity. The farm 38 includes multiple machine farms 38. Within each machine farm 38, a server 106 The servers 106 or machines 106 may be heterogeneous, with one or more of the servers 106 or machines 106 running one type of operating system. Operating system platforms (e.g., Microsoft Corporation, Redmond, Washington) Manufactured by OFT, it can operate according to WINDOWS NT; , one or more of the other servers 106 may run a different type of operating system platform. It must operate according to the operating system (e.g. Unix, Linux, or Mac OS X). can.
[0048] In one embodiment, the servers 106 in the machine farm 38 have associated storage systems may be housed in a high-density rack system with the In this embodiment, by integrating the server 106 in this manner, the server 106 and the high performance The storage system is placed on a local high-performance network, improving system manageability, data integrity, and Improving data security, physical security of the system, and system performance It is possible to centralize the servers 106 and storage systems and use advanced system management tools and Combining allows for more efficient use of server resources.
[0049] Each server 106 in the machine farm 38 may communicate with other servers 106 in the same machine farm 38. They do not need to be physically close to each other. Therefore, they can be logically grouped together as a machine farm38. The looped group of servers 106 may be connected via a wide area network (WAN) connection or may be interconnected using metropolitan area network (MAN) connections. For example, the machine farm 38 may be divided into different continents or regions, such as a country, state, city, campus, room, etc. The machine farm 38 may include servers 106 physically located in different regions. The data transmission speed between the servers 106 in the local area network ( If connected using a LAN (Local Area Network) connection or any form of direct connection, In addition, heterogeneous machine farms38, each of which is managed by a single operating system, can be The system includes one or more servers 106 that operate in accordance with the operating It can run one or more types of hypervisor rather than a rating system. In these embodiments, the hypervisor provides emulation of virtual hardware, Partitioning of physical hardware, virtualization of physical hardware, and computing It may be used to run virtual machines that provide access to a computing environment that supports multiple operating systems. It allows multiple operating systems to run simultaneously on a host computer. A hypervisor can run directly on the host computer. The vendor is VMware, a company based in Palo Alto, California. ESX / ESXi, an open source XE developed by Citrix Systems, en Hypervisor, HYPER-V hypervisor provided by Microsoft, etc. A hosted hypervisor is a second software application within the operating system. An example of a hosted hypervisor is VMware Workstation. Examples include kstation and VIRTUALBOX.
[0050] The management of machine farm 38 may be distributed. For example, one or more servers 106 may , a component supporting one or more management services for a machine farm 38; In one of these embodiments, one These servers 106 provide failover, data replication, and robustness for the machine farm 38. Each server 106 provides dynamic data management capabilities, including processing techniques to enhance data integrity. , may communicate with fixed storage, and in some embodiments may communicate with dynamic storage. The server 106 may be a file server, an application server, a web server, a proxy server, or the like. Servers, appliances, network appliances, gateways, gateway servers server, virtualization server, deployment server, SSL VPN server, or firewall. In one embodiment, the server 106 may also be referred to as a remote machine or node. can.
[0051] Referring to FIG. 1B, a cloud computing environment is depicted. A computing environment is a computing environment that uses one or more resources provided by a network environment. The cloud computing environment may include one or more One or more clients 10 communicating with the cloud 108 via the network 104 The client 102 may include, for example, a thick client. These may include clients, thin clients, and zero clients. , even if it is disconnected from the cloud 108 or server 106, it still has at least some functionality. A thin or zero client may provide the following functionality: The zero client may rely on a connection to the cloud 108 or server 106. Cloud 10 to retrieve operating system data of client devices 8 or other networks 104 or servers 106. The back-end platform, e.g., server 106, storage, server farm This may include a system or data center.
[0052] The cloud 108 may be public, private, or hybrid. The public cloud provides the services to the client 102 or to a third party to the client's owner. The server 106 may include a public server 106 maintained by the As otherwise disclosed, it may be located off-site at a remote geographic location. The brick cloud may be connected to the server 106 via a public network. A private cloud may be managed by a client 102 or an owner of the client. A private cloud may include a private server 106 that is physically maintained. , may be connected to the server 106 via a private network 104. The lid cloud 108 is connected to the private network 104 and the public network 106. 106 may be included.
[0053] Cloud 108 further includes cloud-based delivery, e.g., software as a service (Sa aS: Software as a Service) 110, Service-based Platform (PaaS: Platform orm as s Service)112 and Infrastructure as a Service (IaaS) Infrastructure as a Service (IaaS) may include infrastructure as a service (IaaS)114. It may refer to a user who rents the use of infrastructure resources. A service provider provides storage, network, server, or virtualization resources at scale. pool, users can access more resources as needed for faster processing. An example of IaaS is the company Sharpe, Washington. AMAZON WEB SERVICES, POWERED BY AMAZON, TEXAS RACKSPACE CLOU provided by Rackspace US, San Antonio D, Google Co., provided by Google Inc., Mountain View, California mpute Engine, RightScale, Santa Barbara, California PaaS providers provide storage, network, and In addition to the functions provided by IaaS, such as networks, servers, and virtualization, You can provide additional resources such as systems, middleware, and runtime resources. An example of PaaS is the Redmond, Washington-based Microsoft WINDOWS AZURE, Google App Engine provided by Google ine, Heroku provided by Heroku Inc. of San Francisco, California SaaS providers provide storage, network, servers, virtualization, and operations. PaaS provides the operating system, middleware, or runtime resources. In some embodiments, the SaaS provider may provide resources, e.g. For example, additional resources may be provided, including data and application resources. Examples of SaaS include GOOGLE APPS provided by Google, SALESFORC provided by Salesforce, Inc., San Francisco, California E, or OFFICE 365 provided by Microsoft. Also, examples of SaaS include Data storage providers, such as Dolomite, a company based in San Francisco, California, DROPBOX provided by Dropbox, M Microsoft SKYDRIVE, Google Drive provided by Google, or and Apple ICLOUD, provided by Apple Inc. of Cupertino, California. obtain.
[0054] The client 102 may be, for example, an Amazon Elastic Compute Cloud loud(EC2), Open Cloud Computing Interface (OCCI), Cloud Infrastructure Management I One or more Ia interfaces, including CIMI, or OpenStack standards A client may use IaaS standards to access IaaS resources. Some IaaS standards It may allow clients to access resources via HTTP and Repr Representational State Transfer (REST) protocol or Using SOAP (Simple Object Access Protocol) The client 102 may use different PaaS interfaces to access the PaaS resources. Some PaaS interfaces may be accessed through HTTP packets. Java API, JavaMail API, Java Data Observ jects (JDO), Java Persistence API (JPA), Pyt hon API, such as Rack for Ruby, WSGI for Python, or Perl Web integration APIs for different programming languages, including PSGI for I / O, or REST, Using HTTP, XML, or other APIs that may be built on top of other protocols The client 102 uses a web browser (e.g., GOOGLE CHROME , Microsoft Internet Explorer, or Mount Mozilla Firefox is a web browser provided by Mozilla Inc. A user may access SaaS resources using a user interface based on the The client 102 may also be, for example, a Salesforce Sales Cloud or a Smartphone or tablet applications, including the Eagle Drive app The client 102 may also access the SaaS resources via, for example, Dropbox Inc. Dropbox Windows file system included Even if SaaS resources are accessed through a client operating system, good.
[0055] In some embodiments, access to IaaS, PaaS, or SaaS resources may be For example, the server or authentication server may use a security certificate, HTTPS, Alternatively, the user may be authenticated via an API key. The API key may be implemented using a highly encrypted It includes various encryption standards such as the Advanced Encryption Standard (AES). Data resources are encrypted using Transport Layer Security (TLS). SSL (Secure Socket Layer) or Secure Socket Layer r).
[0056] The client 102 and the server 106 may be, for example, a computer, a network device, or the like. or equipment communicating over a network of any type and form and performing the operations described herein. Deployed as any type and form of computing device capable of executing 1C and 1D may be implemented by a client 102 or a server 10 6 is a block diagram of a computing device 100 useful for practicing an embodiment of the present invention. As shown in FIGS. 1C and 1D, each computing device 100 includes: It includes a central processing unit 121 and a main memory unit 122. As shown in FIG. 1C, The computing device 100 includes a storage device 128, an installation device 116, Network interface 118, I / O controller 123, display device a keyboard 126 and a pointing device 127 (e.g., The storage device 128 may include, but is not limited to, an operating system. Message Selection System (MSS) 197 Software Also, as shown in FIG. 1D, each computing device 100 may include , additional optional elements, such as memory port 103, bridge 170, one or more I / O devices 130a-130n (collectively referred to using the reference numeral 130), and and a cache memory 140 in communication with the central processing unit 121.
[0057] The central processing unit 121 responds to instructions fetched from the main memory device 122. In many embodiments, the central processing unit 121 is , provided by a microprocessor unit, For example, the Intel Corporation of Mountain View, California Manufactured by Motorola Corporation of Schaumburg, Illinois, California ARM processors and TEGR manufactured by Nvidia, Santa Clara, Nevada A system on a chip (SoC), POWER7 processor , International Business Machines Corporation, White Plains, New York Manufactured by Advanced BM Corporation, Sunnyvale, California Some are manufactured by Advanced Micro Devices. Computing device 100 may be based on any of these processors. or may be based on other processors capable of operating as described herein. The central processing unit 121 performs parallel processing at the instruction level, parallel processing at the thread level, and different The processor may utilize a number of different levels of cache and multi-core processors. A processor contains two or more processing units on a single computing component. Examples of multi-core processors are AMD PHENOM IIX2, INT There are EL CORE i5 and INTEL CORE i7.
[0058] The main memory device 122 can store data and any memory location can be One or more memory chips that allow direct access by the processor 121 The main memory unit 122 is volatile and may include more memory than the storage 128 memory. The main memory device 122 may be dynamic random access memory (DRAM). Dynamic Random Access Memory (DRAM) or Static Random Access Memory (SRAM) , Burst SRAM or Synchronous Burst SRAM (BSRAM), Fast Page Mode D RAM (FPM DRAM), Enhanced DRAM (EDRAM), Extended Data Output R AM (EDO RAM), Extended Data Output DRAM (EDO DRAM), Burst Extension Data Output DRAM (BEDO DRAM), Single Data Rate Synchronous DRAM (S DR SDRAM), Double Data Rate SDRAM (DDR SDRAM), Direct Extreme Data Rate DRAM (DRDRAM) or Extreme Data Rate DRAM In some embodiments, the memory may be any variant including XDR DRAM. The in-memory 122 or storage 128 may be non-volatile, e.g. Non-volatile static random access memory (NVRAM), flash memory nvSRAM), Ferroelectric RAM (FeRAM), Magnetoresistive RAM (MRAM), Phase Change Memory (PRAM), Conductive Bridge RAM (CBRAM), Silicon-Oxide-Nitride-Oxide Silicon (SONOS), Resistive RAM (RRAM), Racetrack k), nanoRAM (NRAM), or millipede memory. may be based on any of the memory chips mentioned above or may be based on any of the memory chips described herein. The embodiment shown in FIG. 1C may be based on other available memory chips that can operate in the same manner. In the present embodiment, the processor 121 communicates with the main FIG. 1D shows that the processor communicates with the main memory 122 via the memory port 103. An embodiment of a computing device 100 in direct communication with memory 122 is shown. For example, in FIG. 1D, main memory 122 may be DRDRAM.
[0059] FIG. 1D illustrates how a main processor 121 communicates with a secondary bus, sometimes called a backside bus. 1 shows an embodiment in which the cache memory 140 communicates directly with the EEPROM 110 via a EEPROM 112. In this embodiment, the main processor 121 uses the system bus 150 to access the cache memory 1 40. The cache memory 140 typically provides a faster response than the main memory 122. The time is typically provided by SRAM, BSRAM, or EDRAM. In the illustrated embodiment, the processor 121 communicates with various The central processing unit 121 communicates with the I / O device 130. To connect to either the PCI bus, PCI-X bus, or PCI-Express bus, A variety of buses can be used, such as the SPI bus, USB bus, or NuBus. In an embodiment in which the display is a video display 124, the processor 121 may Display 124 or Display 124 using Advanced General Purpose Port (AGP) The main processor 121 may communicate with the I / O controller 123. HYPERTRANSPORT, RAPIDIO, or Infrastructure I / O device 130b or other process via INFINIBAND communication technology. 1 shows an embodiment of a computer 100 in direct communication with a processor 121'. 1D shows an embodiment with a mix of local bus and direct communication, where the processor 121 The local interconnect bus is used to communicate with the I / O device 130a, while the I / O communicates directly with device 130b.
[0060] The computing device 100 includes a wide variety of I / O devices 130a-130b. n may be present. Input devices include keyboard, mouse, trackpad, track Ball, touch pad, touch mouse, multi-touch pad and touch mouse, micro Phones, multi-array microphones, drawing tablets, cameras, single-lens reflex cameras ( SLR), digital single-lens reflex camera (DSLR), CMOS sensor, acceleration sensor, infrared Light sensor, pressure sensor, magnetic sensor, angular velocity sensor, depth sensor, proximity sensor, ambient light sensor The output device may include a video sensor, a gyro sensor, or other sensor. Displays, graphic displays, speakers, headphones, inkjets This may include printers, laser printers, 3D printers, and the like.
[0061] The devices 130a to 130n may be, for example, a Microsoft KINECT or a Nintendo Wii Remote Wiimote, Nintendo Wii U Gamepad, or Up The device may include a combination of multiple input devices or output devices, including an iPhone. Some devices 130a-130n may be combined with some of the inputs and outputs. Some of the devices 130a to 130n include Provides facial recognition that can be used as input for different purposes, including authentication and other commands. Some of the devices 130a-130n are, for example, Microsoft KINECT, SIRI, Google Now or Google Voice for iPhone by Apple Provides voice recognition and input, including search (Google Voice Search).
[0062] The additional devices 130a-130n may be, for example, haptic feedback devices, touch A display that has both input and output capabilities, such as a screen display or a multi-touch display. Touch screens, multi-touch displays, touch pads, touch mice The touch sensor or other touch sensing device may be, for example, a capacitive, surface capacitive, projected capacitive touch sensor. (PCT), In-cell Capacitive, Resistive, Infrared, Waveguide, Distributed Signal Touch (DST), In-cell These include optical, surface acoustic wave (SAW), bending wave touch (BWT), or force-based sensing technologies. Multi-touch devices may use different technologies for sensing touch, including: By providing two or more contact points on the surface, you can pinch, spread, rotate, scrub, and Some of them can achieve advanced functions including gestures such as roll. For example, Soft PIXELSENSE or Multi-Touch Collaboration Wall (Multi-Touch Some touchscreen devices, including the Touch Collaboration Wall, can be placed on a table. It may have a larger surface area, such as on a desk or wall, and may also interact with other electronic devices. Some of the I / O devices 130a to 130n, the display device 124 The I / O device or device group may be an augmented reality device. The device may be controlled by an I / O controller 123, as shown in FIG. 1C. The I / O controller includes, for example, a keyboard 126 and a pointer such as a mouse or optical pen. The device may control one or more I / O devices, such as the interfacing device 127. The I / O device may be a storage or interface for the computing device 100. In yet another embodiment, a computing device 116 may be provided. The receiving device 100 is a USB 2.0 port for receiving a handheld USB storage device. In a further embodiment, the I / O device 130 may provide a B connection (not shown). , system bus 150 and external communication bus (e.g., USB bus, SCSI bus, FireW ire bus, ethernet bus, gigabit ethernet bus, fibre channel bus, or a Thunderbolt bus).
[0063] In some embodiments, the display devices 124a-124n are connected to an I / O controller. The display device may be, for example, a liquid crystal display ( LCD), thin film transistor LCD (TFT-LCD), blue phase LCD, electronic paper (e -ink display, flexible display, light-emitting diode display (LE D), Digital Light Processing (DLP) displays, Liquid Crystal on Silicon (LCOS) displays ray, organic light-emitting diode (OLED) display, active matrix organic light-emitting diode AMOLED display, liquid crystal laser display, time multiplexed optical shutter The display may include a three-dimensional (3D) display, a three-dimensional (3D) display, or a three-dimensional (3D) display. Examples of such techniques include stereoscopy, polarizing filters, active shutters, or autofocus. In addition, stereoscopy may be used. may be a head mounted display (HMD). The display devices 124a to 124n or the corresponding I / O controller 123 Through PENGL or DIRECTX API or other graphics libraries The processor may be controlled by a processor or may have hardware support.
[0064] In some embodiments, the computing device 100 includes multiple displays. The device 124a-124n may include or be connected to Each may be of the same type or of different types or forms. Then, any one of the I / O devices 130a to 130n or the I / O controller 123: A computing device 100 includes multiple display devices 124a-124 n connection and use, in any type or form, to support, enable, or provide Appropriate hardware, software, or combination of hardware and software For example, the computing device 100 may include a display device. To interface, communicate, connect, or otherwise use the Any type or form of video adapter, video card, driver, or In one embodiment, the video adapter may include a plurality of display libraries. A plurality of connectors for interfacing with play devices 124a-124n are included. In other embodiments, the computing device 100 may include multiple video Each video adapter includes one or more display devices 124a-124b. n. In some embodiments, the computing device 10 Any part of the operating system of the system may include multiple displays 124a-124n. In another embodiment, the display device 124a may be configured to use One or more of the computing devices 104 to 124n communicate with each other via the network 104. One or more other computing devices 100a or 100b connected to the device 100 In some embodiments, the software may be provided by another computer. The display device of the computer is used as a second display device for the computing device 100. For example, in one embodiment, The Apple iPad is connected to the computing device 100 and The display of the viewing device 100 can be used as an extended desktop. It can be used as an additional display screen. The display device 100 is configured to have a plurality of display devices 124a to 124n. One will recognize and understand the various ways and embodiments that may be implemented.
[0065] Referring again to FIG. 1C, the computing device 100 includes an operating system For storing the system or other related software, and for storing the software of the distribution scheduler 198 application software programs, such as any programs related to the Storage device 128 (e.g., one or more hard disk drives or separate Examples of storage devices 128 include, for example, hard disks. Hard disk drive (HDD); CD drive, DVD drive, or Blu-ray drive Including optical drives; solid state drives (SSD); USB flash drives or any other device suitable for storing data. The storage device may include multiple volatile and non-volatile memories, for example a hard disk. Solid-state hybrid drive that combines a solid-state disk and a solid-state cache Some storage devices 128 may be non-volatile, alterable, or read-only. Several storage devices 128 are internal and can be accessed via a bus 150. Some storage devices 128 may be external to the device 100. The computing device 100 is connected to an I / O device 130 that provides an external bus. Some storage devices 128 may be connected to the Network Interface on Network 104, including remote disk for K AIR Some clients may connect to the computing device 100 via an interface 118. The client device 100 does not require a non-volatile storage device 128 and is a thin client. In addition, some storage devices 128 may be installed on the installation server or on a zero client 102. Used as a tall device 116, suitable for installing software and programs In addition, the operating system and software may be stored on a bootable medium. A bootable CD, such as the GNU / Linux A bootable CD for GNU / Linux available as a distribution It can be run from KNOPPIX.
[0066] The client device 100 downloads software from an application distribution platform. You can also install software and applications. Examples of platforms include the App Store for iOS provided by Apple Inc. The Mac App Store provided by Apple, and Android provided by Google GOOGLE PLAY for id OS, CHROME O provided by Google Chrome Webstore for S, Android O provided by Amazon There is also the Amazon Appstore for S and Kindle Fire. The application distribution platform distributes software to the client device 102. The application distribution platform may facilitate the installation of the application on the client. The servers 106 or clients 102a to 102n access the servers 106 via the network 104. It may also include a repository of applications on the loudspeaker 108. Application Distribution The Platform includes applications developed and provided by various developers. The user of the client device 102 may An application may be selected, purchased or downloaded via a form.
[0067] Additionally, the computing device 100 may include, but is not limited to, a standard telephone Line LAN or WAN links (e.g., 802.1, T1, T3, Gigabit Ethernet Infiniband), broadband connections (e.g., ISDN, Frame Relay , ATM, Gigabit Ethernet, Ethernet-over-SONET, ADS Fiber optics including L, VDSL, BPON, GPON, FiOS), wireless connectivity, The connections include, but are not limited to, any or all of the above in combination. ,Various communication protocols (e.g. TCP / IP, Ethernet, ARCNET, SON ET, SDH, Fiber Distributed Data Interface( FDDI), IEEE 802.1a / b / g / n / ac CDMA, GSM, WiMa x, direct asynchronous connection). The receiving device 100 may be any type or form of gateway or tunneling processor. Protocols, such as Secure Sockets Layer (SSL) or Transport Layer Security (TLS) TLS, or Citizen Security, Fort Lauderdale, Florida Citrix Gateway Protocol (Citr IX Gateway Protocol) with other computing devices 100' The network interface 118 may be a built-in network adapter, a network Interface card, PCMCIA network card, EXPRESSCARD network card network cards, cardbus network adapters, wireless network adapters, A USB network adapter, modem, or other device that communicates with the computing device 100 Any type of network capable of running the network and performing the operations described herein. It may also consist of other devices suitable for interfacing with the work.
[0068] A computing device 100 of the type depicted in FIGS. 1B and 1C may be used to An operating system that controls scheduling and access to system resources. The computing device 100 may be operated under the control of a microcomputer. Any version of Windows operating system, Unix and Linux Different releases of the ux operating system, MA for Macintosh computers Any version of C OS, any embedded operating system, any real Time Operating System, any open source operating system , any dedicated operating system, any for mobile computing devices or a computing device running the operating system described herein. Any other operating system capable of performing the described operations, etc. Any operating system can be executed. Systems include, but are not limited to, Microelectronics of Redmond, Washington Windows 2000 and Windows Server 2012 manufactured by Microsoft Corporation 2, WINDOWS CE, WINDOWS Phone, WINDOWS XP, WI Windows Vista, Windows 7, Windows RT, Windows WS 8, MAC OS and iO manufactured by Apple Inc. of Cupertino, California S, as well as the freely available operating system Linux, e.g. Linux Mint is a distribution of the Linux distribution company Canonical, a company based in London, Ireland. distribution (hereinafter "Distro") or Ubuntu, or any Unix or Other Unix-like derivatives, as well as Google's For example, Google's Chrome Some operating systems, including the OS, include CHROMEBOOKS. It can be used with zero or thin clients.
[0069] The computer system 100 may be a workstation, a telephone, a desktop computer, or any other laptop or notebook computer, netbook, ULTRABOOK , tablet, server, handheld computer, mobile phone, smartphone or Other portable telecommunications devices, media playback devices, gaming systems computer, mobile computing device, or other type or form of communication capable Any form of computing, telecommunications or media device The computing system 100 may be any of the systems described herein. It has enough processor power and memory capacity to perform the operations you are performing. In an embodiment, the computing device 100 may include different processors that correspond to the device. The Samsung Electronics Co., Ltd. For example, the Samsung GALAXY smartphone is a smartphone developed by Google. It operates under the control of the Android operating system. The phone receives input via a touch interface.
[0070] In some embodiments, the computing device 100 is a gaming system. For example, computer system 100 may be manufactured by Sony Corporation of Tokyo, Japan. PLAYSTATION 3 or PERSONAL PLAYSTATION PO PLAYSTATION VITA device, Kyoto, Japan Nintendo DS, Nintendo 3DS, Nintendo WII, or Nintendo WI manufactured by Nintendo Co., Ltd. IU device, Xbox manufactured by Microsoft Corporation, Redmond, Washington, USA It may be configured as a 360 device.
[0071] In some embodiments, the computing device 100 is Pacino's Apple IPOD manufactured by Apple Computer, IPOD To Digital audio players such as the Huawei Mate 6, Huawei Mate 6 Plus, and the IPOD NANO line of devices Some digital audio players are used in games systems and digital apps. Any functionality available to the application from the application delivery platform Some have other functions, including the ability to use a smartphone. For example, the IPOD Touch is In some embodiments, the computer may access the App Store. The audio device 100 supports MP3, WAV, M4A / AAC, WMA protected AAC, IFF, Audible audiobook, Apple Lossless Audio file formats, including .mov, .m4v, and .mp4 MPEG-4 (H.264 / MPEG-4 AVC) video file formats, including but not limited to Portable media player or digital camera that supports any file format. It is a portable audio player.
[0072] In some embodiments, the computing device 100 is a tablet, For example, the IPAD line of devices by Apple, the GA line of devices by Samsung LAXY TAB FAMILY or KINDL by Amazon, Inc., Seattle, Washington In another embodiment, the computing device 100 may be A child book reader, such as the Amazon KINDLE family of devices, Barnes & Noble, Inc., New York City, New York It is a NOOK family device.
[0073] In some embodiments, the communications device 102 may be a combination of devices, e.g. Smartphones combined with digital audio players or portable media players For example, one of these embodiments is a smartphone, e.g. The iPhone family of smartphones manufactured by PLU, and the Samsung family of smartphones Samsung GALAXY family or Motorola DROID family smartphones In yet another embodiment, the communication device 102 includes a web browser and a A laptop or In these embodiments, the communication device 102 is a desktop computer. In some embodiments, the device is web-enabled and can receive and initiate calls. , laptop or desktop computer allows video chat and video calling The device may also be equipped with a webcam or other video capture device that allows
[0074] In some embodiments, one or more of the machines 102, 106 in the network 104 The status is typically monitored as part of network management. First, the machine status is displayed as load information (e.g., the number of processes on the machine, the CPU and and memory usage), port information (e.g., number of available communication ports and port address) or session status (e.g. duration and type of process , as well as whether the process is active or idle. In another of these embodiments, this information can be identified by multiple metrics. Multiple metrics may be used in conjunction with any aspect of the operation of the solution described herein. In load balancing, network traffic management, and network failure recovery, as well as in the The above operating environment and computer Aspects of the present invention are apparent in the context of the systems and methods disclosed herein. It will be.
[0075] B. Message selection based on trust value and cooldown factor in a network environment send
[0076] Users of personalized messaging systems suffer from message fatigue This can reduce the effectiveness of the message to the intended recipient. Message fatigue is a type of spam sent over a network to a user's client device. The messages do not play a role on the client device, so they consume less computing resources. and wastes bandwidth. Requires user interaction and response. In the application, personalized messaging engages users It serves as a tool to achieve the goals of the organization.
[0077] In this disclosure, a method for selecting and sending messages based on a confidence value and a cooldown factor is provided. A system and method for a personalized messaging system is described. The system can send relevant messages to users at relevant times. A smart messaging system improves user engagement and app This can improve the effectiveness of the application by providing appropriate information to each user at the right time. Relevant content that is delivered has a positive impact on user engagement with your application. Relevant personalized messages can be delivered to the application. By delivering information to each user in a timely manner through the app, the app will help improve health, well-being, and fitness. and translate it into real actions that users can take to improve their overall quality of life. do.
[0078] To address some of the challenges associated with message fatigue, as well as other related challenges, The display is based on a message selection system that can access multiple message objects. These message objects generate multiple messages when called. The message selection system generates a confidence value for each message, The trust value associated with each message is used to determine whether the application on the client device A message selection system allows users to select one or more messages to send to a adjusts the trust value associated with each selected message based on the cooldown factor. The message selection system uses a cooldown factor to adjust the The time since the last message was received by the client device. The total number of messages that users of the service choose to receive in a given period of time, and the The length of time that a user of a client device is awake or active, including Adjust the confidence value of each selected message based on various factors, including but not limited to: The message selection system then selects each of the selected messages. Based on the adjusted trust value of each, the system makes a decision to send one or more of the selected messages. It is possible to do so.
[0079] A message selection system reduces the likelihood that users will experience message fatigue. based on the time since the last message was delivered to the client device, The client device evaluates the likelihood of a message achieving a desired endpoint or goal. Based on that probability, adjusting based on the time since the last message was delivered to the The message selection system allows users to select messages based on their meaning. A message is sent to the user's client device based on the likelihood of achieving the effect shown. By selectively sending or forwarding messages, users are less likely to experience message fatigue. The types of messages that cause individual users to experience message fatigue can be Since the number and frequency of messages varies, the message selection system must be able to determine each user's message preferences. , application engagement, and responses to similar messages. to incorporate information to deliver personalized messages at the right time. A framework or model can be constructed.
[0080] The message selection system sends messages to each of the users' client devices. The received message is sent to the application running on each client device. Applications running on the client device can open the Displaying messages from the message selection system to users of client devices prompts users to take action or elicits a response The application can then wait until the message is received on the client device. When the application is started, when the application displays a message, activities performed on the client device, and activities performed by users on the client device and feeding back information including data corresponding to the activity, etc., to the message selection system. The message selection system may be configured to: We use the information we collect or receive from your device to provide you with the information you need to take action. Evaluate the effectiveness of messages and the content and timing of users’ responses to individual users Improve personalization of messages sent to users and implement several In this state, you can monitor users and their actions regarding messages.
[0081] In a particular embodiment, the message selection system includes a user profile for a plurality of users. For each user profile, a message selection system can be The system uses an invoker ( Each message object can be executed in the user profile. Message templates that are candidates for sending to client devices associated with the file. Message selection system messages can be generated using The message object evaluator passes the context data to the message object model. The message object then incorporates the confidence value associated with the generated message candidate into the model. The confidence value is the degree to which a candidate message sent to a user is likely to be effective. The message object evaluator can indicate the possibility of having a particular effect. It can output the trust value of message objects that satisfy the constraints. The object evaluator evaluates whether a message candidate is relevant to each of the candidates based on certain criteria. Evaluate the trust value, update the trust value based on the cooldown factor, and If the confidence value exceeds a predetermined threshold, the candidate message is sent to the client device. It may be decided to do so.
[0082] The message selection system is configured to use the client device associated with the user profile. Response data from reporting agents of applications running on the device. The response evaluator of the message selection system can receive Based on the response data corresponding to the previous message sent to the client device To improve the model performance, we use the response data as a model of the message object. The response data can be incorporated into the model of the message object. Compare the message object to the target value (or desired endpoint) to improve it. In this way, the message selection system can select the user's message It learns from user preferences and responses to improve the selection process for future message candidates and In addition, it is possible to improve the quality of the confidence values calculated for future candidate messages. This allows the message selection system to select the class associated with the user profile. Message templates are candidates for sending to client devices. Increase the likelihood that a user will engage with or respond to a message and achieve the desired endpoint of the message. At the same time, fewer messages are selected and sent to the user client device. It is possible.
[0083] In accordance with at least one aspect of the present disclosure, a method includes, by one or more processors: This can include identifying a plurality of users and a plurality of message objects. The method includes, by one or more processors, transmitting a message to one or more message objects. The method may include retrieving context data for each of the plurality of users. One or more message objects and context data are processed by one or more processors. The method can include generating candidate messages based on the one or more The processor calculates the confidence value for each candidate message by a cooldown factor and generating an updated confidence value based on The method further comprises: determining, by the one or more processors, whether or not the message is a message based on the updated trust value. The method may include selecting candidate messages by one or more processors. Therefore, the selected message is based on the updated trust value exceeding a predefined threshold. The method may include transmitting a message candidate.
[0084] FIG. 2 illustrates a block diagram of an environment 200 for contention message selection. The environment 200 includes: A message selection system 202 and at least one remote computing device The message selection system 202 includes a remote control 270 via the network 104. and selecting one or more messages to send to the remote computing device 270. From the home computing device 270 to the remote computing device 270 Contains data corresponding to actions taken in response to one or more messages sent to It is possible to receive data such as
[0085] The environment 200 may include a number of remote computing devices 270. Multiple remote computing devices 270 may belong to the same user. or belong to different users or entities of the message selection system 202. Each remote computing device may include a message selection system 20. 2. In response to receiving a message from the message selection system 202, the selection 272 to provide data corresponding to actions performed on a computing device. In some implementations, the reporting agent 274 may include a reporting agent configured as follows: In one embodiment, the application 272 is generated and executed by the message selection system 202. In addition to displaying the sent message, the data is sent to the message selection system 202. The application 272 and the reporting agent can be configured to provide Additional details regarding the Gent are provided below.
[0086] Now, referring to the message selection system 202, the message selection system 202 The system includes a memory 204. The memory 204 includes a plurality of message objects 206. Each of the plurality of message objects 206 includes a message template 208, a model 21, and a 0, constraints 212, and targets 214. The memory 204 may also include at least The content may include a user profile 222 and history data 224. The memory also includes message candidates 240 and each message candidate A confidence value 242 for each of the complements 240 may be stored. The message selection system 202 uses the message objects to select message candidates. 240 and further calculates a confidence value 242 for each candidate message 240. Cut.
[0087] To evaluate each candidate message 240, the message selection system 202 also: Invocator 250, Message Object Evaluator 252, and Threshold Manager The invoker 250 includes a message object 206. , identify and invoke applications, applets, scripts, services, data The Invocator 250 may be a program, a routine, or other executable logic. is a call initiated by a cron job scheduled at regular intervals. cron is a standard operating system for Unix-like computer operating systems. A time-based job scheduler in an operating system that schedules jobs (e.g., It can be used to schedule a program (a command, or a shell script). The call out process can be based on time (e.g., call out at 8 a.m. on Mondays). run the call process every 30 minutes, or run the call process every other Thursday The calling process can be executed on an event. (For example, the calling process can be based on the message selection system 2 02 receives data from a remote computing device 270 as described below. The Invocator 250 can be used to For example, the invoker 250 can initiate an invocation process to 272 to a subset of users using a given feature of the application The Invocator 250 can initiate different processes for different users. The invocation process can then be initiated. For example, the invocator 250 can A first call process is initiated at a first time for a user and a second call process is initiated at a first time for a second user. A second invocation process can be started at a second time to 250 is for getting active users, getting user data, and making calls to the database. A request can be broken down into many asynchronous requests, such as writing an output record.
[0088] An example of the invocation process can be shown in the following pseudocode:
number
[0089] The calling process as shown by the pseudocode above is done at regular time intervals (e.g. For example, every 30 minutes. The calling process is Identifying the store data 220 (described in more detail herein) (e.g., getDat a(u)), and specifying the current time (e.g., Date.now()). The calling process may include a hash of the context data 220. A call to the database to write a record (for example, db.write(u.id , ts, hash(d)). The call record can include user identity, tag timestamp and each user's data (e.g. application data and user The application data may include application tension data. It can contain user actions in response to messages received by the The application data includes one-time metrics such as how often users respond to messages they receive in the application. This can include the user's acceptance throughout the day. The call log is As shown in the Amazon Simple Storage Service (AWS S3), It can be stored in the Amazon Simple Storage Service.
[0090] Active users (e.g. users of an application, responding to messages) The user (user) can be identified by contacting the application 272 and messaging the The user data may include obtaining active users who have enabled the Obtaining the data may include obtaining data for each user, which may include This data may include user location data and user interest data. Used to filter out message objects 206 that do not satisfy hard constraints Writing a record of the call to a database allows future evaluations to be performed by the group. Decision-making of message objects 206 for further model training and for For example, the timestamp of a call record can be The message, user application data, and user attention data are The response evaluator 256 uses the The hash of the context data 220 is stored in the remote object for storage. This reduces database space for message objects 206. By storing some data remotely, messages can be The page selection system 202 may be configured to reduce performance degradation as a result of scarce disk space. The message object evaluator 252 evaluates the message object Read from message object 206 to a remote database (e.g. AWS S3) Message selection system that can unload read request traffic. 202 can store user data through the use of a hash table. The table can store unique changes of the context data 220. This is space efficient, for example it avoids storing duplicate data. By storing the data in a remote database, the Invocator 250 can This reduces the frequency with which data must be copied from the The data 250 is obtained from a remote database during offline training of the model 210. The invoke architecture includes parallel user processing. This can include multiple processes for obtaining user data.
[0091] As mentioned above, the environment 200 may include one or more remote computing devices 27 0. More specifically, the remote computing device 270 may include , can receive messages from the message selection system 202. Computing device 270 may be a remote Internet-enabled device. For example, the remote computing device 270 may be connected to the Internet of Things. An IoT device may be a remote motion sensor ("IoT") device. Remote monitoring devices including sensors, temperature sensors, soil condition sensors, or video cameras In some implementations, the remote computing device 270 is a mobile phone, smartphone, laptop, or tablet computer, etc. The mobile computing device (or a component thereof) may be The remote computing device 270 may have limited computing resources. The remote computing device 270 can measure, perform activities, At predetermined intervals, the way Do not tag, ping, message, or otherwise contact In some implementations, the remote computing device 270 may , requests can be received at regular, predetermined intervals.
[0092] The remote computing device 270 is a remote computing device To enable the application 270 to communicate with the message selection system 202, For example, the application 272 may include a message selection Receives a message from the system 202 and sends a response to the message to a response engine. The application 272 can then return the value to the valuator 256. The messaging device 270 communicates with the message selection system 202 via the network 104. When a data packet is received from, the message can be received. When the system 202 sends a message to the application 272, the application The application 272 may be executed on a remote computing device 270. The application 272 pings the remote computing device 270 and Waking, messaging, or other remote computing devices 270 Notifications can be sent to contact users of the application. The application 272 can launch and display messages from the message selection system 202. The application 272 may include a reporting agent 274. The application 272 may be used by a user of the remote computing device 270. It can include a graphical user interface for engaging with In some embodiments, application 272 may be a digital therapeutic application. A smoking cessation application or any other digital device that can send messages to a target audience. The present invention may include a therapeutic application.
[0093] The reporting agent 274 of the application 272 72 configured to monitor activity within an application, applet, It may be a script, a service, a daemon, a routine, or other executable logic. An activity can include one or more user-performed actions. For example, the actions you perform can be recorded as breathing exercises, meditation sessions, yoga sessions, walking, etc. Walking sessions, jogging sessions, running sessions, communication with colleagues sessions, telephone sessions, communication with medical advisors, or reports Any other action that can be detected, determined, or inferred by the sensing agent 274. In some implementations, the reporting agent 274 may include The time when the activity started, the time when the activity completed, the time when the computing device The activity was interrupted by another computer function occurring in another process on the The time of day when the application was started or the application's 272 interaction with its environment may cause the activity to temporarily It is possible to monitor the time when an application is stopped or stopped. For example, application 272 uses acceleration data from a remote computing device 270 to The start of a king session and the completion of a walking session can be detected. The application 272 is configured to allow a user of the remote computing device 270 to Start a walking session and record the data of the completed walking session. The application may be relayed or otherwise provided to the porting agent 274. The application 272 transmits data on the remote computing device 270 to the user. For example, the application can be used to correlate responses generated by the application. The application may display information that requires a response from the user. The application 272 checks the user's password to ensure that the user has completed the activity. A message may be displayed on the screen prompting the user to make a selection on option 272. The application 272 checks to see if the user has completed the activity. The application 272 prompts the user to make a selection to The application 272 may display to the user a message that is relevant to the appropriateness of the message. A message can be displayed requesting feedback on the user. For example, the user , messages sent during events scheduled on the user's calendar are now properly The application 27 may choose to notify the reporting agent 274 that it is not 2. Users can view scheduled meetings on their calendars. Reporting Agent 274 confirms that the message sent after the meeting is appropriate. The notification option can be selected on the application 272 .
[0094] The remote computing device 270 assigns a timestamp to the activity. The reporting agent 274 can be used to report information related to the activity. Users can access the data and timestamps associated with the activities. The porting agent 274 allows the user to access the remote computing device 2 It can detect over 70 instances of activity accessing data. The reporting agent 274 receives from the application 272 the information that the user is running. You can receive reports detailing the activities performed by the The reporting agent 274 sends the reporting data to the message selection system. One or more messages may be generated for transmission to the system 202 .
[0095] Referring again to the message object 206, the message object 206: A data structure that can be a framework for message-centric optimization The data structure of a message object is the message template 208 and the model 21. 0, constraints 212, and targets 214. The invoker 250 may include a plurality of The message object 206 can be invoked. is a message template that is evaluated by the message object evaluator 252. Based on the rates 208, candidate messages 240 may be generated.
[0096] A message object 206 may contain one or more message templates 208. The message template 208 can include a text string. The message object 206 uses the context data 220 to generate a message template. You can insert fields from the plate 208. The data processor 252 uses the message templates 208 to generate candidate messages 240. Message templates 208 can be static text, templates, or instructions for generating a message string. The instructions may include instructions to retrieve data from a data library stored in the data library 204 . Data from the data library is substituted into the template before being sent to the user. For example, the template can be a message template 208 sent to a remote computer. The template is filled in or replaced before being installed on the computing device 270. It can contain placeholders or variables. For example, a message can contain an image, a video, A processor executable that is sent to the remote computing device 270 for execution. The message of the first message object 206 may include instructions or metadata. The message template 208 is the message template of the second message object 206. It may be the same as or different from rate 208 .
[0097] The model 210 of the message object 206 takes as input the context data 220. Trust, which indicates the predicted effectiveness of a message to achieve a goal214 For example, the context data 220 may output a value 242. The context data can be input to the model 210 of the model object 206. The data can include user-specific data, date, time, day of the week, weather-related data, etc. Model 210 can receive inputs and output a variety of outputs. The inputs can include historical data 224 or user data, and the outputs can be based on the input data. The model may include a calculated success rate or confidence value 242 based on: History data 224, which specifies the timestamp of the user's response, is added to the validity of the message. The response evaluator 256 can be based on historical data. For example, the response evaluator can update the model 210. A user of a remote computing device 270 running an application 272 Reporting Agent 2 reports data showing that the user does not respond to messages on weekends. 74, the response evaluator 256 determines that the message should be sent on a weekend. The model 210 can be updated to reduce the probability of , and can receive updates to learn from past data. The 256 user interface is based on certain demographic and time-based data. Used to generate messages for responses generated based on patterns. For example, the response evaluator 210 can be updated. 56 can determine that users over a certain age are more likely to become dehydrated on hot days. The response evaluator 256 sends a message to the user encouraging them to drink more water. You can update your Model 210 to include this.
[0098] The model 210 may be a machine learning model (e.g., a reinforcement learning model, a k-nearest neighbor method, a backpropagation model, etc.). gation model, q-learning model, genetic algorithm model, neural network The model 210 may be a machine learning model, a supervised learning model, or an unsupervised learning model. The feature set can include features that are available to the learning model. application data, temporal context, validity of similar messages, and The model 210 can be re-run with new data or time series. By training, a model 210 related to the message object 206 is improved. The response evaluator 256 can take into account more user context. Model 2 can include updating the data service to return the 10. The response evaluator 256 evaluates each history Data points can be filled with new feature values at the timestamp, which This may include recalculating the historical user context, and the response evaluator 256 retrains the model on all historical data with the newly added features. This makes it possible.
[0099] The message selection system 202 is a remote computing device that receives messages. The message selection system 2 uses the feedback received from the message selection device 270. It should be appreciated that the message generation and selection capabilities of 02 can be improved. For example, the message selection system 202 may be generated by a message object 206. Generate message candidates 240 based on historical data related to the message candidates 240. Update the model 210 of the message object 206 that is used to The success or failure of the message object 206 in the past can be The loss can improve the predictive ability of the model 210 in the future. During the learning phase of the model 210, the sent messages and their corresponding results and feature sets are Many different supervised machine learning models can be used online or offline. Model 210 training can be done by choosing the optimal model parameters. A cross-validation approach can be used to find the message object. Retraining of the object model 210 occurs at each iteration (e.g., training cycle). Several models 210 (e.g., tree-based models, neural networks, The work) can be trained on a rolling basis as new data arrives, Existing models can be adapted to new data without having to be retrained using the entire dataset. The message object 206 can incorporate the beliefs of the message candidates 240. The model 210 may include a model for predicting a reliability value 242 .
[0100] The message object 206 may include a set of constraints 212. whether a message candidate 240 should be generated from the message object 206 or restrictions or constraints that govern whether the generated message candidates 240 can be sent. The constraints 212 may include a predetermined time or The constraints 212 may include a time window. The time window may include a determined time and day of the week that defines a time window during which the 08 may be transmitted. The constraints 212 may include user type (e.g., gender, occupation, company, or affiliation). The constraints 212 can include regular days of the week for sending messages. For example, the constraint 212 of the message object 206 is The times between 10:00 a.m. and 4:00 p.m. when Ryuta 252 can send messages The message object evaluator 252 may be a time-based window. When processing a message object 206 having the above constraints, the message object The toevaluator 252 determines whether to generate candidate messages 240 based on the current time. (or send a message candidate 240 generated from the message object 206) The message object 206 can determine whether a particular Messages can be sent only on certain days of the week (for example, only on Mondays or only on Fridays). The message object evaluator 252 checks the message object on weekends, etc. The message object may contain a date or time when the message 206 is prohibited from being sent. 206 says that you can send a message on Monday unless Monday is a holiday. A message object 206 may have a constraint 212, in which case the message object 206 may The constraints 212 include holidays, leap years, time of day, time of week, time of month, It may contain information about the time of year or other calendar-related subjects. 12 indicates that the message object evaluator 252 can send a message. A specific time or time window can be specified. Constraints 212 include a minimum confidence value 242. It is possible to do so.
[0101] The message object 206 may include a target value 214. The target value 214 may be , can correspond to an action (e.g., a user in application 272 (to cause the user to perform a specific action). The target value 214 is The target value 214 can be determined by the remote computing device 270. The target value 214 may include a numerical value corresponding to the validity of the received message. Corresponding to actions in the application 272 and the desired completion rate of the action. For example, the first action in application 272 is a breathing exercise. The second action in the application 272 may be jogging. In addition, the target value 214 corresponding to the first action is 80%, and the target value 214 corresponding to the second action is 100%. The target value 214 may be 15%. For example, a task in the application 272 A message that asks the user to act includes a prompt to perform a task within a certain time period. The number of times a user performed a task as a percentage of the number of messages sent to the user You can assign a numeric value to each of the Messages containing subjects inviting users to After the task is completed, a numeric value can be assigned that corresponds to the time that the user performed the task. In another example, a message inviting a user to reply may be By determining whether the user has responded to the message or not The target value of the rhetorical message 214 can be measured by the They may not be easily defined because their messages do not elicit a measurable user response. do.
[0102] The failure of a message or its ability to elicit the intended action depends on the Message Object Model. The first message object 206 can be used as an input to the rule 210. The first message can have a goal of getting the user to stay hydrated. Sage Object 206 sends the message "Hello [name], have a cup of tea." The second message object 206 can have a message template 208. The second message can have a goal of 214, which is to get the user to drink water. The object 206 is a message template for "Hello [name], have a glass of iced water" The message object evaluator 252 can have an external Using contextual data 220 related to temperature and the user's tendency to forget to drink water The first message object 206 and the second message object 206 are If the outside temperature is 20° F., it may be determined that a candidate message 240 should be generated. If so, the first message object 206 is the first message object with a high trust value 242. A candidate message 240 may be generated, but a second candidate message 240 with a lower confidence value 242 may be generated. 0. The object 206 may generate a second candidate message 240 with a higher confidence value 242. The message object evaluator 252 recently generated a message related to hydration. If the message is sent, the message object evaluator 252 The confidence score 242 of the candidate 240 and the confidence score 24 2. The first candidate message 240 is an updated message that passes the threshold. If the message has a confidence score 242, the message object evaluator 252 The message template 208 is populated with data from the user profile 222 and the message The message candidate 240 is connected to a remote computing device that executes the application 272. This can be sent to 270 device users.
[0103] Referring again to the message object evaluator 252, the message object The message evaluator 252 can generate message candidates 240. The object evaluator 252 is generated from the message object 206. For each candidate message 240, a confidence value 242 can be generated or assigned. The message object evaluator 252 determines a confidence value associated with the candidate message 240. 242 to send a message to a user of a remote computing device 270 Refrain from sending a message to the user of the remote computing device 270 or The message candidates 240 can be determined to be messages that exceed a threshold. The message candidates 240 may have a higher confidence value 242 than the message candidates 240. The message object 206 is generated from the execution of the message object 206 by the object evaluator 252. A candidate message 240 may be a message that has a confidence value 242 below a threshold. The message object evaluator 252 can include a message that By passing the context data 220 (and other data) to the message object 206 The message object 206 can generate a message candidate 240. The data provided to each message object 206 is If the constraints 212 of the message 206 are satisfied, the message candidate 240 is output or otherwise processed. The message object evaluator 252 can generate Input data 220 into the message object model 210 to generate candidate messages 240 The message object evaluator 252 can generate a confidence value 242 for the message object. is calculated based on the cooldown factor to generate an updated trust value 242. The candidate message 240 can then update its trust value 242. 42 for transmission to the remote computing device 270. The message candidates 240 are evaluated by a message object evaluator 252. It can be generated by:
[0104] The message candidates 240 may include confidence values 242. The confidence values 242 may be normalized and the message is intended for the user of the remote computing device 270 It may include 242 between 0 and 1 (inclusive) indicating the likelihood of producing an effect. The confidence value 242 may include other ranges, such as between 0 and 100 (inclusive). Message relevance is determined by message content, user data, user attention, and It can include a combination of temporal contexts: Estimating the effectiveness of a particular message may involve a supervised machine learning approach. The current temporal context (e.g., time of day, day of week, or is the week of the year), user application data, and user attention are supervised It can be used as a function of the machine learning model. The type of decision model (e.g., polynomial The method (regression, decision tree, or pairwise comparison analysis) may be different for each message object 206 . The model 210 for each message object 206 includes a confidence value 214 that indicates the confidence of the target value 214. The message object evaluator 252 can output the When the vocator 250 starts the invocation process, it updates the trust value 242. can be done.
[0105] The message selection system 202 uses the confidence values as input to the model 210 to generate the confidence values. It should be appreciated that the context data 220 can be used in a variety of ways. This can include a user profile 222 and historical data 224. The data 220 may include the validity of similar messages. For example, The object 206 receives the context data 220 as input for generating the confidence value 242. The message object 206 can use the context data 220 Constraints 212 can be evaluated using the Similar messages may be used to improve the quality of a message or to improve the quality of a message. They can be grouped by subject. The purpose of the message is a call to action. Option (to engage the user in the functionality of the application 272) or call-to-action It can contain replies (to allow users to respond to the message). Topics can be, at a high level, functional (e.g., mission), informational, health The context data 220 may be health-related or financial. They may be generated manually or by an unsupervised machine learning approach.
[0106] The context data 220 may include a user profile 222. The user profile 222 may contain data related to a particular user. User Profile222 records user's name, location, historical data, habits, applications, User metrics, such as application usage, application interactions, and response rates. The user profile 222 may include a digital representation of the user's identity. The data may include data obtained from the use of the application 272. The app also collects information about the number of times a user smoked a cigarette and the timestamp of when the user smoked a cigarette. This data may include user event data specific to the application 272. The data may be important for applications including smoking cessation. More granular user engagement data, such as when 272 was opened In some implementations, the message selection system 202 may include Depending on the type of rule 210, a derived function can be generated from the raw data. For example, The feature uses the user's cigarette smoking events instead of the raw number of smoking events per day. It may contain a list of time stamps.
[0107] The context data 220 may include historical data 224. 4 may include the current time. Historical data 224 may include a temporal context. The temporal context includes the time of day, day of the week, and season, adjusted for time zone. The historical data 224 may include information available at the current time, such as The reporting agent 274 may generate the report. The client 274 can assign a timestamp to a user action or response. The reporting agent 274 can transmit historical data via the network 104. 224 to the response evaluator 256. The agent 274 detects whether the message is received by the remote computing device 270. When a report is received, it can be assigned a timestamp. The message 274 is generated by a user of the remote computing device 270. A timestamp can be assigned to the message when it was received.
[0108] The context data 220 may include a user tension indicator. Tension can include the user's receptivity throughout the day, which is related to the message User attention can be highly specific and can be a factor in whether a The message object evaluator 252 evaluates the message object 206. Various features of user tensions are input to the model 210 for training. The message object evaluator 252 can identify the message object. As input to the model 210 for training the object 206, the initial guess , historical user time preferences, and application engagement data The initial guess may include an initial hypothesis about the user's interest. When a user first signs up for the application 272, Because there may not be historical data for the message object evaluator 252 The initial hypothesis can be generated randomly or based on human guesses. The estimates can be based on data from other users. For example, a user may 272 on weekday mornings or evenings. Best human guess The data may be based on demographic data. For example, if there are clear patterns, The metric evaluator 256 creates clusters of users based on demographic data. The response evaluator 256 can generate an initial hypothesis for the user's tension. The response evaluator 256 can use the time model as You can visualize user attention over a span of a day or a week. The Pons Evaluator 256 will determine whether more messages 208 are sent to the user over time. Once sent to the user, it can display the user's time preferences historically. Many messages are sent and once the results are received, the user has the possibility to accept the message. The model 210 can build a more accurate picture of time with high accuracy. It is possible to weight the history inputs based on the amount of history input present in the database and their effect on the success rate. This can improve the predictiveness of the model 210. The response evaluator 256 , the learning rate is used by the message selection system 202 to learn the user's time of day preferences. The response evaluator 256 controls the speed of engagement. Avoid overfitting patterns and learn user preferences as quickly as possible. You can choose the learning rate to improve engagement. This can lead to overfitting the input pattern and capturing random noise. Using a low learning rate can make it take too long to learn the user's time preferences. Application engagement data can take time. 272 The response evaluator 256 is responsible for the engagement of the application 272. You can use the event data to predict the effectiveness of your messages, which can help you Application engagement data can be used as a proxy for user interest. The context data 220 is generated by the reporting agent 274. The reporting agent 274 can collect feedback from users. You can receive it.
[0109] Referring again to the message object evaluator 252, in more detail, determining when to generate message candidates and sending one or more of the message candidates 240; Applications, applets, scripts, services, daemons, routines, or can be any other executable logic. Message Object Evaluator 252 passes the context data 220 to the message object 206 to The message object evaluator 252 can generate candidate messages 240. , a confidence value 242 for the candidate message 240 can be generated. The page object evaluator 252 takes a set of trust values 242 and calculates the trust value 2 42 to one or more thresholds, as described further below, to transmit candidate messages 240. The message object evaluator 252 can determine whether determines whether any of the message candidates 240 are For example, which messages should be sent to the users of the remote computing devices 270? It is possible to determine whether
[0110] The message object evaluator 252 evaluates message candidates that meet a predetermined threshold. A particular invocation of a set of message objects 206 based on the trust values 242 of 240 Select a message candidate 240 from a pool of message candidates 240 generated by The candidate messages 240 can be weighted by confidence values 242. The message object evaluator 252 applies a cooldown function to the trust value 242. By multiplying the number by the number, the confidence value 242 of the selected message candidate 240 is adjusted. The message object evaluator 252 can cool the trust value 242. Adjust the confidence value 242 of the selected message candidate 240 by adjusting the Wong coefficient. In some embodiments, the message object evaluator 2 52 was selected by scaling the trust value 242 by the cooldown factor. The confidence value 242 of the message candidate 240 can be adjusted. The evaluator 252 evaluates the selected message based on the confidence value 242 exceeding a threshold. For example, a confidence level of 0.8 can be used to determine whether a message candidate 240 should be sent. The value 242 exceeds the threshold of 0.7. The message object evaluator 252 Sending a message if the message object 206 satisfies the constraint 212 The constraint 212 can be as follows:
number
[0111] Each message object 206 (or the message candidates 240 generated by it) ) can compete directly with each other for a particular user at regular time intervals. A conflict between candidate messages 240 may occur, for example, if a message is sent to a remote computing device. Based on a confidence score of 242, which indicates the likelihood of the device having the intended effect on 270 users , ranking the candidate messages 240. The message evaluator 252 ranks the candidate messages 240 based on their confidence values 242. The message object evaluator 252 can generate a confidence value 242. The candidate messages 240 can be ranked from highest to lowest. The message object evaluator 252 ranks the message candidates 240. Based on this, a candidate message 240 may be selected for transmission. In this case, the message object 206 can include a trust value 242. The objects 206 may be sorted or ranked, for example, by trust value 242. The message object evaluator 252 evaluates one of the message objects 206. One or more of the candidates may be selected to generate candidate messages 240. In some implementations, The message object evaluator 252 runs the message object 206. The message object evaluator 252 evaluates and sorts the message objects. When the object evaluator 252 completes the evaluation of the message object 206 In some implementations, the generated message can be sent to the The candidate messages 240 are ranked and sorted, and the selected candidate messages 240 are The portion is sent to the client device or a remote computing device 270. It can be done.
[0112] Conflicts between message objects 206 are resolved by dividing the message objects based on their trust values 242. You can sort the objects 206 or based on the message object 206 category. Selecting a subset of message objects 206 For example, sorting the message objects 206 may include The categories are fitness workouts, breathing exercises, stress relief activities, and hydration reminders. Message Object Evaluator 25 2 is a subset of message objects 206 related to fitness workouts to prompt the user of the remote computing device 270 to perform a workout. A message candidate 240 prompting a line can be selected. The calculator 252 selects the highest trust value 24 generated by the message object 206. 2. The candidate message 240 having the highest confidence value 242 can be selected. A message candidate 240 is selected if its associated confidence value 242 exceeds or meets a predefined threshold. If so, a message object is generated for transmission to the remote computing device 270. The toevaluator 252 may select the toevaluator 252 .
[0113] The message object evaluator 252 is a process for evaluating the message candidates 240. The evaluation process is carried out by the Message Object Evaluator 2. 52 can make a decision as to whether or not to send a candidate message 240. The message object evaluator 252 may include the context data. The message object 206 is passed data 220 and constraints 212 are evaluated to generate the message. For example, a message object 252 can generate a candidate message 240. ,contextual data 220 related to the user's smoking habits and,history related to the time of day. The message object 206 can take message candidates and history data 224. Generate complement 240 and say, "Hi Jim! Instead of smoking, try taking a walk. A message candidate 240 can be generated as follows: Constraint 212 states that the message is not appropriate during the user's typical sleeping hours. User profile 222 may be configured so that the user typically works from 7 a.m. to 1 p.m. It can show that the current time is 1 p.m. If constraint 212 is satisfied, then the message object The message candidate generator 252 generates message candidates 240 and creates a database of the message candidates 240. At regular intervals, the message object evaluation The message object generator 252 generates a message candidate 240 for a message object that has not yet generated a message candidate 240. 2. Identify the message object 206 and generate message candidates 240 for the message object 206. The message object evaluator 240 can A confidence value 242 of 40 can be determined by the message object evaluator 2. 52 identifies candidate messages 240 and weights the candidate messages 240 with confidence values 242. 2. sort or sort the candidate messages 240, scale them by a cooldown factor, and then The message object evaluator 25 can select a message candidate 240. 2 uses the trust value 242 and the threshold policy 234 to determine whether to send the candidate message 240. For example, the trust value 242 may be determined according to the threshold policy 234. If the threshold is exceeded, the message object evaluator 252 Deciding to transmit the candidate message 240 to a remote computing device 270 If the trust value 242 is less than or equal to a threshold according to the threshold policy 234, the message is The message object evaluator 252 transmits the message candidates 240 to the remote computer. The message object may decide not to send the message to the communication device 270. When the evaluator 252 decides to send a candidate message 240, it may In an embodiment, the message object evaluator 252 evaluates the message candidates 240 as The messenger service of the message selection system 202 or the message selection system 2 02, which is communicatively coupled to the user's device or a remote computer. This facilitates sending candidate messages 240 to the reporting device 270. The agent 274 is a remote computing device that receives the message candidate 240. You can record the actions of the message object evaluator. If the evaluator 252 decides not to send the message, the message object evaluator Data 252 does not send a message.
[0114] Referring again to Response Evaluator 256, Response Evaluator 256 may analyze a response from a user of the remote computing device 270. The response evaluator 256 determines whether the message object goal value 214 is reached. A message object 206 is sent to the user, such as the success or failure of the The response evaluator 256 can record the results of the message. The results of the messages are recorded to provide a target value 214 for the algorithm to optimize. Each message object 206 can be a message to achieve a goal value 214. The success of the message object 206 can be defined. The calculation of the result is It can be implemented as a stream or real-time streaming process.
[0115] Response Evaluator 256 allows you to add new features to Model 210. This updates the data service to return more user context information. The response evaluator 256 may include evaluating past user At each historical timestamp, which may include recalculating the context, The response evaluator 256 can fill in the data points with new feature values. The model can be retrained on all historical data with newly added features. The response evaluator 256 classifies users into classes based on demographic data. The response evaluator 256 can create a response that evaluates the initial user attention. As a hypothesis, a time model can be used. The response evaluator 256 You can graph the user's attention over a one-day or one-week span. The Pons Evaluator 256 uses the When sent to the user, it is possible to obtain a historical picture of the user's time preferences. The suevaluator 256 uses a learning rate to determine whether the message selection system 202 is You can control how quickly the Response Evaluator learns your time preferences. 6. Avoid overfitting engagement patterns and match user preferences You can choose the learning rate to learn the response as quickly as possible. The 256 application engagement model predicts the effectiveness of messages. You can use your engagement data to improve your application engagement. The account data may be used as a proxy for user preferences.
[0116] The response evaluator 256 is recorded by the reporting agent 274. The resulting action can be used to determine the cooldown factor for future evaluations. The cool-down factor is specific to each individual user of the application 270. The cool-down factor may be set by the remote computing device 270. The time since the message was received by the remote computing device 270 The total number of messages that a user chooses to receive in a given period of time, and the number of messages that a user chooses to receive from a remote computer The length of time that the user of the computing device 270 is awake or active. This can reflect a variety of factors, including but not limited to: The number indicates the number of times a message was last sent to a user of the remote computing device 270. Decrease the confidence value 242 of a candidate message 240 based on how recently it was received. For example, at time t=t1, the message object evaluator The fitness tracker 252 provides a fitness tracker to a user of a remote computing device 270. A message can be sent to encourage users to take part in the workout. Meanwhile, the message object evaluator 252 was generated at time t=t1+1. The reliability value of message 2 candidate 40, 242, is multiplied by the cooldown factor 1 / 2 and updated. The updated trust value 242 is set to be half the trust value 242 before the update. At time t=t1+4 hours, the message object evaluator 252 240 candidate messages generated in 4 hours have a confidence value of 242, with a cooldown factor of 5 / 8 Therefore, the updated trust value 242 is 5 times the trust value 242 before the update. The message object evaluator 252 receives the message at time t=t1+4. The response evaluator 256 is more likely to send a message. Update the cooldown factor based on user actions taken in response to For example, the response evaluator 256 can be Based on this, it can be determined that the user is likely to experience message fatigue. Therefore, the response evaluator 256 can decrease the cooldown factor. The cooldown interval that can be used to access the device can be increased. The cooldown factor is defined as The determination may be made by one or more policies 230 defined.
[0117] The message selection system 202 determines whether to send a message based on the calculation of the trust value 242. A policy 230 may be stored to govern whether and when the The policies 230 may include a cooldown policy 232 and a threshold policy 234. The cooldown policy 232 can include a cooldown factor. The down factor is the confidence value 242 of each candidate message 240, calculated by multiplying the confidence value 242 of the last message by the Lowering relative to recent conditions received by the computing device 270 For example, application 272 can be made to take message fatigue into account by A clock equal to the user's wake-up time period w that can be reported or monitored by the user via A linear cooldown rate with a cooldown interval that the user has chosen to receive per day. is the maximum number of messages a user can receive divided by r. Alternatively, the message selection system 202 may choose to reduce message fatigue. You can decide how many messages you want to send to a user without waking them up. If you choose r=4 and w=14 hours, the cooldown interval will be 14 / 4=3.5 hours. The cooldown interval is 1 hour, the cooldown rate is linear, and the last message is 10 If it was received within minutes, the cooldown factor is 1 / 6, lowering the overall trust value by 242. The cooldown rate and cooldown interval can be adjusted in the model 210. For example, the model 210 may be a linear model, an exponential model, or decay model. The type of model is Message Object Evaluator 252 developed a model to predict the effectiveness of a message in eliciting a user response. This may be important for building Dell 210.
[0118] The target values 214 are calculated using the response evaluator 2 It should be understood that the target value 214 may be used by the This can indicate whether the call to action (user 272) or to prompt the user for a response ( The application data may include a can be used to monitor and record the results of the intended effect. The target value 214 may be a binary value. One goal is to promote the effectiveness of the message object 206 in achieving the goal value 214. Calls to action and calls to response are in direct competition with each other. The intended effect may include success in categories that are equally valued. The intended effect may include success in different weighted categories. can.
[0119] The message selection system 202 may include one or more threshold managers 254. The threshold manager 254 is an application for managing the threshold policy 234. An applet, script, service, daemon, routine, or other executable logic. The threshold manager 254 may be configured to detect whether a particular user, a particular context (e.g., time of day) or threshold policy 234 to apply to message object 206 The threshold manager 254 can be configured to use fixed thresholds, dynamic thresholds, weighted thresholds, and Choose from a variety of threshold policies 234, including random thresholds and fuzzy constant thresholds. The threshold manager 254 can be used to set the cooldown rate, the cooldown interval, the final Message intervals, cool-down factors, and distribution control factors can be selected or determined. .
[0120] The policy 230 may include a threshold policy 234. The threshold manager 254 For example, by selecting message candidates 240 that have a value greater than a threshold, You can control the quality of messages sent to users. A quantitative indication of the usefulness of a message to users or the likelihood that users will act on a message The threshold manager 254 may be a representative display of the number of remote computing In one embodiment, the user can control the approximate number of messages sent to the user device 270. For example, given a desired number of messages per day, the threshold manager 254 may predict The calculation can be based on the history of the trust values 242 that have been assigned. The number of predictions that exceed the threshold is equal to the number of messages desired to be delivered per day. The threshold manager 254 manages the message objects. The threshold can be set by relaying the threshold to the message evaluator 252. The message object evaluator 252 retrieves the threshold value from the stored memory 204, or You can get multiple thresholds. The thresholds are based on probability, so you can get a The number of messages can be approximate. The exact number of messages delivered depends on the desired delivery. For example, the message selection system 202 may select a value By sending messages with high quality, the message sent will be delivered with the desired quality. It is okay to send high-value messages even if the number of messages sent is larger than the number of messages sent. The message selection system 202 reduces the number of messages sent by sending low-value messages. Do not send low-value messages, even if the number of messages results in a desirable number of delivered messages. The message object evaluator 252 may be based on the threshold policy 234. Based on this, sending or refraining from sending messages may be a problem related to message fatigue or Will it lead to positive user engagement with the application? The distribution of the confidence values 242 can be determined by the invocation process of the invoker 250. This can be obtained from mathematical simulations or mock-ups performed during the process. The number of messages per day for users of Message Object Evaluator is 25 This is the parameter entered in 2. Messages sent to a specific user per day The number may be a default number, such as 3, or it may be explicitly provided as a preference by the user, or Other models learned the optimal number of messages per day by taking into account user context. 210.
[0121] The threshold policy 234 may include a certain threshold. Find the threshold for a given day that is any value above the threshold that indicates the best time to send The threshold is calculated for a given day and does not change. The effect of a non-changing threshold The advantage of this method is that the candidate messages 240 to be sent are effectively optimized. The object evaluator 252 frequently evaluates if the threshold policy 234 is a certain threshold. Figure 4 shows a graph of confidence versus time with a sharp peak. Graph 400 shows a sharp peak 402. 2 is a message candidate 240 that has a high confidence value 242 for the set of message candidates. It can be shown that the distribution of messages is toward a specific time. The object evaluator 252 detects that messages with high confidence values 242 are gathered at time 404. If so, the user-specified number of messages or message selection system 202 You can choose not to send the number of messages determined by the message object. The evaluator 252 can adjust the confidence value 242 based on the cooldown factor. This gives the message at time 406 a higher degree of reliability than the message at time 408. Even if it has a value, it may be less likely that the message will be sent at time 406. If the threshold is set to a confidence value 242 of 0.8 depicted by line 410, the message The message object evaluator 252 detects time 406 with a confidence value 242 of 0.7. The message at time 406 is not sent compared to the message at time 408. Even if the message object evaluator 252 has a high trust value 242, A certain threshold may prevent a single peak 406 message from being sent. 2) Users should be cautious about a few messages (e.g., 2 or 3) a day. It shows that messages have power and that any more messages would cause message fatigue. However, the message object evaluator 252 does not A message with a high confidence value below 10 may miss the opportunity to send at time 406 .
[0122] The threshold policy 234 may include dynamic thresholds. A minimum number of messages per day should be sent to the remote computing device. If the thresholds are included in the current time of day, dynamic thresholds can be used. A dynamic threshold can be recalculated based on the next future peak or peaks. If the confidence values are biased at the beginning of the day, Dynamic thresholding solves the problem of missing a firing window. The object evaluator 252 can send a message at least once in the future. This ensures that users can receive the desired number of messages per day. Dynamic thresholds mean that the threshold manager 254 automatically schedules the number of times per day to send a message. Timeout by waiting until the end of the cooldown period and sending a message based on the cooldown rate The dynamic threshold may cause the message selection system 202 to send Although control over the number of messages to send may be achieved, the threshold manager 254 may You can choose the time of day and make a decision about how many messages you want to send per day. For example, the threshold manager 254 may set threshold lines 444 for different times of day. 10 can be recalculated. The threshold line 410 is 0.8 between 1001 and 1800 hours, 0.9 between 1801 and 2100 hours The interval between can be 0.7. The threshold is set to the number of times that the user is most likely to be Higher in the morning and evening, and lower in the evening. Dynamic threshold policies allow users to Receive fewer messages during the day and more at the beginning and end of the day. This is useful in situations where
[0123] The threshold policy 234 can include a weighted random threshold. The weighted random threshold can be: The message candidate confidence value 242 may include a probability of sending the message. The page object evaluator 252 scales the weight of the probability to the confidence value 242. The parameters to the algorithm are a weighted random threshold per day. The distribution is derived from data (based on empirical distribution) such that the desired number of messages is sent approximately every The probability-based threshold is a threshold that is highly probable at the peak of the confidence level 402 and at the valley of the confidence level 41. A weighted random threshold of 2 means that a message is allowed to be sent with a low probability. The advantage is that the message object evaluator 252 can evaluate messages during non-peak times of the day. There is still a possibility to send a message, which is evaluated by the message object evaluator 252. The advantage is that it allows you to introduce more randomness into your decisions. This means it becomes harder to control the number of messages sent per day. The envocator 250 activates the message object 206 and Changing the rate at which the valuator 252 evaluates the message objects 206 can If the weights are held constant, the number of messages sent to a user per day changes. The message selection system 202 recalculates the probability weight parameters and Each time the system 202 changes the call time interval, the recalculated probability weight parameters are can be applied to ensure the same number of messages sent per day.
[0124] The threshold policy 234 can include a fuzzy constant threshold. The graph shows a graph of confidence value versus time with a lower and upper threshold. The fuzzy constant threshold is The lower threshold 504 may include a value equal to or less than the upper threshold 502 selected with a certain probability. sets the probability of sending a message to zero if the trust value 242 is too low. For example, a threshold of 0.5 will cause a message to be sent with a probability of 1. The threshold of 0.15 means that messages with a probability smaller than 1 and greater than 0 are A threshold of 0.1 means that the message will be sent with a probability of 0. The fuzzy constant threshold is different from the constant threshold without a hard threshold. Similar, with a confidence value of 242 or more, the message object evaluator 2 52 sends a message, below which the message object evaluator 25 2 Refrain from sending messages.
[0125] Using a distribution control factor, the probability of sending a message decreases relative to the distance below a threshold. The distribution control factor controls the distribution of the number of messages per day. The larger the distribution control factor, the more likely it is that a message object will be This increases the probability that the evaluator 252 will send the desired number of messages per day. The G constant threshold may include the following algorithm: T=(CV DCF) × CV, CV∈[0,1] (Equation 3) Here, CV is the confidence value, DCF is the distribution control coefficient, and T is the threshold value.
[0126] The fuzzy constant threshold is set by the message object evaluator 252 at an upper threshold of 50 Send message candidates 240 with low confidence values 242 below 2, but not below the lower threshold 504 This can have the effect of refraining from sending messages with a trust value below 242. There is a chance to send a message during non-peak hours, and the decision to send the message is It allows you to introduce some randomness. Message Object Evaluator 2 52 transmits message candidates 240 having a trust value 242 not exceeding a threshold to a remote computer. The sending of a message below the threshold may be sent to the calling device 270. , to pull the user tension in situations not predicted by the model 210. It may be advantageous to change the rate at which message objects 206 are called and evaluated. By doing so, if the distribution control coefficient is kept constant, the number of users sent per day is The number of messages sent per day can be changed. The Invocator 250 changes the activation time interval so that the number of messages sent remains the same. Each time, the distribution control coefficient parameters may be recalculated and applied.
[0127] 6A-6B are diagrams showing the distribution of the number of messages sent in a day. A specific,mean of 3 and low variance,corresponding to the large number of messages sent around,3:00 on a particular day. Figure 6B depicts the distribution of messages sent on a given day. 1 depicts the distribution of messages sent on a particular day with a variance of 100%. 4 is the distribution of FIG. 6B with a distribution control factor of 2 to obtain the distribution of FIG. 6C with a distribution control factor of 2. By applying the distribution control coefficients to the distribution, the threshold manager 254 can reduce the variance of the distribution of the number of messages sent.
[0128] Edge cases can occur where the values around the threshold are highly repetitive. For example, A hypothetical list could contain: [0.95,0.95,0.95,0.9 6, 0.96, 0.96, 0.96, 0.96, 0.96, 0.97] threshold is confidence value 24 If the item is drawn between the 6th and 7th elements of the list in 2 (based on the number of messages / day = 3), (based on the number of messages sent per day), you are likely to send more messages than you want to send in a day. This occurs because there are many confidence values of 0.96 both above and below the threshold. The simple calculation of simply looking for values above the threshold is that more messages are generated. The computation of the message object 206 is highly repetitive. For example, 24 calls may be distributed evenly throughout the day, but If a user uses application 272 only at the beginning and end of the day, the non-use period The evaluation of the message object 206 during the process calculates a trust value 242 based on the same data. The message selection system 202 calculates the trust value 242 and ends up generating the same trust value 242. Since we have data showing that message candidate 240 repeats 42, the confidence value of message candidate 240 is 24 Even if 2 is greater than the threshold, you can still limit the number of messages sent to a user. .
[0129] FIG. 3 illustrates a flow diagram of an example method 300 for contention message selection. 0 supports multiple users and multiple message objects by one or more processors. The method 300 may include identifying a target (block 302). allows multiple users to access one or more message objects in each of their contexts. The method 300 may include retrieving the data (block 304). based on one or more message objects and context data. Method 3 may include generating candidate messages based on the results of the method (block 306). 00, by one or more processors, to generate updated trust values. updating the confidence value for each candidate message based on a cooldown factor; (Block 308). The method 300 may include, by one or more processors: and selecting candidate messages based on the updated confidence values. (Block 310). The method 300 determines whether the confidence value exceeds a predetermined threshold. The method 300 may include, by one or more processors, and transmitting the selected candidate message according to the received message (block 314). .
[0130] As described above, the method 300 may include processing a plurality of users and a plurality of message objects. Identifying the plurality of users (block 302) may include , accessing a database to determine active accounts. Referring to FIG. 2, among other things, the reporting agent 274 is A response evaluation device capable of analyzing responses from the measuring device 270. The report can be sent to the computer 256. This can include accessing user profiles 222 of multiple users. Identifying the plurality of message objects includes storing the plurality of message objects in the message selection system 202. The method may include identifying a plurality of the message objects 206 that have been generated. Identifying the message object 206 includes storing the message object 206 in the message selection system 202. The message object 206 may include accessing a plurality of message objects 206 that are stored in the message object 206. The invoker 250 queries the application 272 to determine whether messaging is enabled. You can get active users who are enabled on the account.
[0131] The method 300 performs a process for obtaining a message for each of a plurality of users for one or more message objects. The context may include retrieving context data associated with the context (block 304). Retrieving the search data includes user profile 222 or history data 224. The message object evaluation may include retrieving the context data 220. Data 252 looks for contextual data and decides whether to send a message to the user. The context data can be retrieved and used to determine whether and when to send it. , retrieving context data for each of the plurality of users identified in block 302. Retrieving the context data may include: For each of the multiple users, the context data 222 of the user profile 222 For example, for an identified user, The message object evaluator 252 evaluates the user profile of the identified user. By accessing the file 222, the context data 220 of the user is collected. The Invocator 250 collects application data and user templates. This data is available for each user, including metrics on their usage. 2. to filter out message objects 206 that do not satisfy can be done.
[0132] The method 300 comprises: The message object may include generating candidate messages (block 306). The evaluator 252 can generate candidate messages. 0 is based on one or more message objects 206 and context data 220 For example, the first candidate message 240 may be the first candidate message for the identified user. The second message candidate can be generated by the first message object 206. The complement 240 is generated by the second message object 206 for the identified user. A third candidate message 240 may be generated for the identified user. 3 message object 206. 240 based on the user's user profile 222 and the user's time preferences. The second candidate message 240 can be generated based on the user's user profile. The third message may be generated based on the availability of email 222 and similar messages. The message candidates 240 are based on the temporal context of the message and the user application data. The message object 206 generates a message based on The candidate message can be sent to a remote computing device. 0. Candidate messages 240 are generated and associated with confidence values 242. The confidence value 242 associated with the message candidate 240 is 206 indicates how confident the message object is of achieving its goal 214 A message object 206 is a first or original message associated with a message. A confidence value 242 may be generated. The message object 206 may be Based on the message object 206, a candidate message 240 can be generated. is not a candidate message because message object 206 does not satisfy constraint 212. There is a possibility that the generation of the complement 240 will fail.
[0133] The method 300 increases the confidence value for each candidate message based on a cool-down factor. The threshold manager 254 may include updating the threshold (block 308). Update the confidence value 242 for each candidate message 240 based on the downgrade coefficient. The act of doing so may include generating an updated trust value 242. Updating the value 242 determines the cooldown policy of the message selection system 202. 232 and obtains an updated trust value 24 for the message candidate 240. 2. Generating an updated confidence value 242 based on the Wong coefficient may include updating the first confidence value or can be applied to the original trust value. The updated trust value 242 is The first trust value 242 generated by the object 206 can be stored separately. For example, there are scenarios where different cooldown policies may be applied at different times. In this case, the original or first trust value is stored together with any updated trust values. The cool-down factor increases the confidence value 242 for each candidate message 240. It can be a scaling factor for dating.
[0134] The method 300 includes selecting candidate messages based on the updated confidence values. The message object evaluator 252 may include A candidate message 240 may be selected, and the selected candidate message 240 may be The selected message candidate 240 can be sent to the user's messaging device. Among the set of 240 candidate messages that can be sent to the user, 2. Candidate messages 240 may include messages that can be sent to a user. The candidate may not have the highest confidence value 242 among the set of candidate messages 240. One candidate message 240 has a lower confidence value 242 than the second candidate message 240. However, the first candidate message 240 may be rejected by the user due to the threshold policy 234. The message object evaluator 252 evaluates the message candidate 2 The timing of executing the message object 206 to generate the selected The message object 2 determines the timing of sending the message candidate 240. 06 indicates that the message candidate 240 has a maximum confidence value in the pool of message candidates 240. It may decide not to send the message of message object 206 even if This can be done.
[0135] The method 300 may include determining whether the confidence value exceeds a predetermined threshold. If the confidence value 242 exceeds or meets a predetermined threshold, the message is The object evaluator 252 can then send the selected message candidates. If the confidence value does not exceed or meet a predefined threshold, the system will discard multiple messages. Identifying a message object 206 or selecting a new message candidate 240 can be done.
[0136] The method 300 transmits the selected message candidates to the remote computing device 27. 0 (block 314). The trust estimator 252 compares the updated trust value 242 with a threshold and determines the selected message. The threshold can be set to determine whether to send a message candidate 240 before the section. This can be based on various threshold policies 234 described in section 2.
[0137] After the message is sent, the remote computing device 270 The remote computing device 270 can receive the application. The message can be displayed in the message section 272. The user can receive the message. This can trigger a response or reply from the user. Users can receive messages, which elicit actions from the user. It can be produced.
[0138] C. Indirect updates to messaging systems.
[0139] The messaging system focuses on health, wellbeing, fitness, and overall It can deliver messages that improve the quality of life. The system aims to avoid overwhelming users with messages that can lead to message fatigue. There is a risk of the message being mis-trusted. Use the model to choose when to send a message. This allows you to customize the time and content of future messages. The messaging system can send non-rhetorical messages and Non-rhetorical messages are used to inform the users of the application. It can prompt for a response or other input. It does not prompt the user for a response or other input. For example, a rhetorical message may It may provide information or data to users or may provide useful information regarding the effectiveness of a rhetorical message. Without user response data to support this, messaging systems would be forced to use rhetorical messages. Unable to update the model for choosing when to send messages There are cases.
[0140] This disclosure indirectly applies the model of message objects in a messaging system. The present invention describes a system and method for updating a messaging system. Since the system may not receive a response to a rhetorical message, it is recommended to use a non-rhetorical message. To update the model of the message object associated with the message, Rhetorical messages are used in response to rhetorical messages. It does not generate responses from users, so it is based on responses to rhetorical messages. It is not possible to judge the effectiveness or ineffectiveness of a rhetorical message based on the If there is no response from the user, the messaging system will send a rhetorical message to the user. In some cases, it may be difficult to quantify the benefits to users.
[0141] Addressing some of the challenges associated with the lack of response data from rhetorical messages To this end, the present disclosure provides a method for selecting a message object from a message selection system. Regarding indirect updates. The message selection system is related to rhetorical messages. To update the model of the message object that It includes a response evaluator that can incorporate response data related to In this way, the message selection system can select the level of non-rhetorical messages. Response data as a proxy for response data (or lack thereof) in rhetorical messages In this way, the message selection system can be used as a rhetorical Even if you don’t receive direct feedback on your target message, A rhetorical message can be selected and sent to the user's client device. The message selection system also offers customized time-saving features to prevent message fatigue. Rhetorical messages can be sent to the user's client device at any time.
[0142] FIG. 7 is a block diagram of a system environment 200 for sending messages to users. The environment 200 includes a number of modules, components, and methods that execute within a message selection system 202. Components of the message selection system 202 An application is an application that runs on a device, such as a mobile device, a computer, or a server. Applications, programs, libraries, scripts, services, processes, tasks, The message selection system may include any type and format of executable instructions. The system 202 may also include other message selection methods described herein, such as those described in connection with FIG. The system may include any of the components of the system 202 described in connection with FIG. In addition to the components described in connection with the message selection system 202, the message selection system The system 202 includes a similar message object selector 712 and a response classifier 714. may include.
[0143] The message selection system 202 may include a number of message objects 206. A message object 206 can be a non-rhetorical message object 206 or It may be a rhetorical message object 206. 6 may have a message template 208 from which a non-rhetorical message is generated. A non-rhetorical message is one that is sent to a remote computing device. A message that, when received by 0 users, elicits a user response. For example, a non-rhetorical message may be transmitted by a remote computing device 270. When executed, the remote computing device 270 may receive, for example, a prompt or input to a user. Activation of the input or key causes the remote computing device 270 to A response message can be generated to be sent to the selection system 202. The message object 206 has a non-rhetorical message model 210. 10 is a remote computing device 2 generated in response to a non-rhetorical message It can be updated based on responses from 70. The object 206 receives a response from a user of a remote computing device 270. The target value 214 corresponds to the response or reply. It may correspond.
[0144] Message objects 206 may also include rhetorical message objects. The rhetorical message object 206 is the message from which the rhetorical message is generated. The rhetorical message may have a message template 208. When received by a user of the user computing device 270, the user For example, a rhetorical message may be a message that does not elicit a response from the user. without prompting the user to record their water intake or without the user being prompted to record their water intake. It tells users to drink more water without asking them to confirm that they have done so. In another example, the rhetorical message may be When rendered by the application 272 on the device 270, the user The rhetorical message object 206 can display information or data in a The rhetorical message object 206 has a rhetorical message model 210. The message selection system 202 has a target value 214 that can correspond to a non-rhetorical Based on the response from the remote computing device 270 to the message Based on the above, a target value 214 associated with the rhetorical message object 206 can be determined. can.
[0145] The message selection system 202 may include a response classifier 714. The response classifier 714 is an algorithm for classifying responses from non-rhetorical messages. application, applet, script, service, daemon, routine, or other implementation The response classifier 714 may be executable logic. 2 to search the database of responses in model 2 of message object 206 A feature set can be generated to train or update the model 10. The function set includes responses to messages sent from the message selection system 202. The feature set includes information related to the quality score of the message. When sent to the remote computing device 270, a response to the message A time series showing when (or if) the response was received and the quality score of the response The quality score can include a measure of a user's engagement with a received message. The response classifier 714 can indicate the level of From sending a message to the receiving device, the message selection system 202 selects the message Determine the quality score of a response based on the time it takes to receive a response. For example, the response classifier 714 may be configured to It assigns a high quality score to responses received within a given time duration and In some implementations, the quality score may be assigned to a low In some implementations, the response classifier 714 may be based on a decay function. A quality score can be generated based on the content of the sponsor. For example, a message can be If the response includes an input box for the user to enter text, the response classifier 714 can assign a quality score based on the amount of text entered into the input box. can.
[0146] The response classifier 714 classifies non-rhetorical messages according to a response policy 716. The response classifier 714 can classify responses from Response times, amount of interaction or engagement with a message (e.g., input button the amount of text entered into the box), or a combination of both. The response policy 716 can indicate whether the quality score is time-based. For example, response policy 716 can indicate that the remote computer from receiving non-rhetorical messages by the reporting device 270; It can be based on the time that elapses until the agent 274 records the user's response. For example, the remote computing device 270 may send a message at 7:00 a.m. Non-rhetorical messages can be received by remote computing devices. We asked users of our 270-series to do five minutes of stretching before heading out to the office. Non-rhetorical messages can encourage users to complete a five-minute stretching session. A button may be included that asks the user to confirm that they have engaged in the activity. The routing agent 274 notifies the user immediately after the user receives the message. indicates that they engaged in a stretching session between 7:00am and 7:10am, Receives confirmation that user engaged in a 5-minute stretching session at 7:10 AM The response policy 716 may be time-based and may be used to respond to non-rhetorical messages. For example, the response policy 716 can rank responses to provides rapid responses to non-rhetorical messages and rapid responses to non-rhetorical messages. Responses that are too slow can be ranked higher than those that are too slow. It may include a time limit for the user to respond to the message.
[0147] Response policy 716 indicates that quality scores are engagement-based For example, a high quality score indicates active user engagement. This can be a high level response. The message is, “How do you evaluate the activity?” "Would you like another reminder to drink water?" You can prompt the user to answer a few questions about the content of the message. Responses with active user engagement include those prompted by the message. The responses may include responses that the user can answer to most of the questions asked.
[0148] The message selection system 202 includes a similar message object selector 712. The similar message object selector 712 can select a message object message object 206 based on its similarity to another message object 206 206 Select Applications, Applets, Scripts, Services, Daemons, Rules The similar message object selector may be a routine, a 712 can identify the rhetorical message object 206 to update. The similar message object selector 712 is If you have not updated model 210 within the specified time, A message object 206 can be selected. For example, a similar message object The object selector 712 can update the model 210 daily, weekly, or monthly. The similar message object selector 712 is a rhetorical message object selector. The similar message object selector 712 can determine the classification of the message object 206. , determining a classification of the rhetorical message object, and Similar non-rhetorical messages that can be used to update Model 210 of 6 In the example shown in FIG.
[0149] The similar message object selector 712 selects the rhetorical message to be updated. Identifying non-rhetorical message objects 206 that are similar to object 206 The feature set of the non-rhetorical message object 206 (e.g., response data) The data processor 205 can update the rhetorical message object 206 of a similar classification. The similar message object selector 712 selects the rhetorical message to be updated. Identifying non-rhetorical message objects 206 that are similar to the message object 206 The non-rhetorical message object 206 can be Non-rhetorical message object 2 if it has the same classification, tag, or category as 06 06 can be similar to a rhetorical message object 206. For example, The message object selector 712 selects the rhetorical message object to be updated. 206 tag (e.g., breathing technique) and one or more non-rhetorical messages having the same tag. A message object 206 can be searched for. The tag 712 can identify message objects 206 that have the same tag. For example, a message object may have a "breathing exercises" tag or a "hydration" tag. The similar message object selector 712 can select non-rhetorical message objects. rhetorical message object 206 based on the similarity of the object to the rhetorical message object 206 Similar Message Objects The selector 712 selects groups of message objects 206 that have the same tag or classification. can be identified.
[0150] Referring back to Response Evaluator 256, Response Evaluator 256 receives information and data from the reporting agent 274 via the network 104 and generates updates to the model 210 of the message object 206. As described in the previous section of this disclosure, the model 2 of the message object 206 10 receives context data 220 as input and performs a calculation to achieve a target value 214 The model can output a confidence value 242 indicating the predicted validity of the message. 10 is a machine learning model (e.g., reinforcement learning model, k-nearest neighbor method, backpropagation model, q-learning model, genetic algorithm model, neural network, supervised The response evaluator 256 may be a learning model, a supervised learning model, or an unsupervised learning model. Based on a set of features generated from past responses to messages, model 2 10. A model 210 for each message object 206 can be trained. may output a confidence value 242 indicating the confidence of the target value 214 .
[0151] The response evaluator 256 evaluates the model 210 of the message object 206 The message object 206 to be updated is Based on the classification by the response classifier 714, a similar message object selector 71 2. The response evaluator 256 selects the response policy. Based on the responses classified by the response classifier according to C716, The model 210 of the message object 206 can be updated. For example, The similar message object selector 712 selects the rhetorical message to be updated. A non-rhetorical message object 206 that has the same tag or classification as object 206 The similar message object selector 712 can identify the identified non- Message selection system in response to messages from rhetorical message objects 206 202 identifies the received response message and the response evaluator 256 Rhetorical Message Object 206 and a Model of Rhetorical Message Object 206 A feature set can be generated that can be used to update 210.
[0152] The response evaluator 256 trains or retrains the model 210. By doing so, the model 210 of the message object 206 is updated. The response evaluator can use the non-rhetorical message object 206 Based on these feature sets, we develop a model 210 of rhetorical message objects 206. As described above, the response evaluator 210 can be The received report for the message created by the dictionary message object 206. Based on the response, the model 210 of the non-rhetorical message object 206 is updated. The response evaluator 256 can generate similar message objects. Based on the model 210 of the message object 206 identified by the message selector 712, The model 210 of the rhetorical message object 206 can be updated. For example, the response evaluator 256 may The model is then transferred from one of the models 206 to the rhetorical message object 206 to be updated. Dell 210 can be imported or copied.
[0153] The response evaluator 256 is generated by the non-rhetorical message object 206. Based on the response to the generated message, a rhetorical message object 2 For example, you can update the model 210 of 06. The object selector 712 is the same as the rhetorical message object 206 being updated. A number of non-rhetorical message objects 206 having classifications can be identified. The sponsor evaluator 256 responds to the identified non-rhetorical message object 206 by It is possible to identify multiple past messages and responses to a response The rhetorical agent 256 generates a plurality of rhetorical expressions for the identified non-rhetorical message object 206. A feature set can be generated based on past messages and responses. The response evaluator 256 then evaluates the identified non-rhetorical message object 256 as a Based on a feature set generated from multiple past messages and responses to 06 A model of the rhetorical message object 206 can be trained using the above-mentioned methods.
[0154] The message selection system 202 can determine the effectiveness of a rhetorical message. The response evaluator 256 is a subset of the users of the application 272. receive a rhetorical message, and a subset of users of application 272 A / B testing (e.g. split testing or bucket testing) where no targeted message is received In this manner, the message selection system 202 can implement rhetorical For example, you can measure the effectiveness of targeted messaging on a subset of users (e.g. ,half) (Group A) received the rhetorical message, and a subset of users (e.g. Half of the users in Group A (Group B) may not receive the rhetorical message. The users in group A may be different from those in group B, and group A may be different from the users in group B. The message selection system 202 may include different people who receive the message at the same time. The impact of informative messages on user engagement with the application272 The effectiveness of the rhetorical messages in improving health, wellbeing, and fitness Other variables (e.g., message) can be used to determine whether a user's actions lead to a The number of messages sent and the time at which the messages are sent can be kept constant. The selection system 202 determines the action or response of a user who receives a rhetorical message. By comparing the performance of users who received the rhetorical message with those who did not, This allows the effectiveness of targeted messages to be measured.
[0155] FIG. 8 illustrates a flow diagram of an example method 800 for indirectly updating a learning model. The method 800 includes processing, by one or more processors of a server, a plurality of non-rhetorical messages and and identifying a plurality of rhetorical messages (Block 802). 800 identifies, by one or more processors of the server, a rhetorical message model. The method 800 may include, for example, executing the one or more processes of the server. and identifying, by the processor, a plurality of non-rhetorical message models (block 806). The method 800 may include transmitting, by one or more processors of a server, a non-rhetorical message. The process may include receiving a response message to the message (block 80). 8). The method 800 comprises: This may include updating the rhetorical message model for the 10).
[0156] As described above, the method 800 includes generating a plurality of non-rhetorical messages and a plurality of rhetorical messages. The non-rhetorical message may include identifying a message that the user It can contain a message that generates a prompt for the user to respond. Messages may include messages that do not generate a prompt for the user to respond. For example, rhetorical messages can be messages that encourage users or messages that It can contain multiple non-rhetorical messages, such as messages displaying interesting facts. Identifying the message and rhetorical message involves searching a database of messages. The non-rhetorical messages in the database are classified by a response classifier. Rhetorical messages in the database can be tagged or categorized as rhetorical. It can be tagged as being
[0157] The method 800 may include identifying a rhetorical message model (block 804). Identifying a rhetorical message model involves identifying rhetorical message objects and Identifying tagged, grouped, or categorized message objects using and selecting or identifying a model of a rhetorical message object. For example, a rhetorical message object is a rhetorical message that has a rhetorical message model. The message selection system is a rhetorical message selection system. It can identify that the model of a given object needs to be updated. For example, The message selection system selects rhetorical and non-rhetorical message objects. Both models of the message selection system can be updated periodically. The system processes message objects to update them daily, weekly, monthly, etc. You can then select a message object for the message.
[0158] The method 800 can include identifying a plurality of non-rhetorical message models (e.g., The message selection system selects the rhetorical message object to be updated. Multiple non-rhetorical messages with the same classification or grouping as the object (and model) For example, a message selection system can identify rhetorical messages. Sage objects have the "hydration" tag and the "hydration" Determining that the message object has a plurality of non-rhetorical message objects tagged with a tag. The representation of each message object can be stored in a relational database or other It can be stored in a database. Attributes of the message object in the database Or the column can be a tag or a classification tag. The object determines the tag of the rhetorical message object to be updated and sets the same tag to The database can be queried for non-rhetorical message objects that have
[0159] The method 800 includes receiving a response message to the non-rhetorical message. The response evaluator may then generate the response (block 808). A non-rhetorical message generated by one of the rhetorical message objects In some implementations, the response The evaluator is then adapted to evaluate the non-rhetorical message object identified in block 806. You can get previous responses to previous messages generated by the The response classifier may be configured to classify the received response or the non-rhetorical message identified in block 806. Based on past responses to messages generated by the object, For example, a feature set can be created when a message is the time the response was sent to the remote computing device, the time the response was received, and A quality score for the response can be shown. The response classifier can also be used to select messages. The system can generate a set of functions for messages for which it did not receive a response. The feature set includes the time when a message was sent to a remote computing device. and an indication that no response was received.
[0160] The method 800 can include updating the rhetorical message model ( Block 810. The response evaluator evaluates the identified rhetorical message object. Based on the non-rhetorical model of the project, the rhetorical model can be updated. For example, in some implementations, the response evaluator may ) The feature set generated according to the responses is used as training data to You can retrain the model for the lexical message object. The valuator updates the model by retraining it with the updated feature set. The resulting rhetorical message object can then be copied to the corresponding object. The response evaluator evaluates the received response message for a non-rhetorical message. Based on the message, the rhetorical message model can be updated. A model of a lexical message object based on the responses to that message. Update the model and copy the updated model to the rhetorical message object. Instead, the response evaluator uses multiple identified non-rhetorical message objects to One or more messages generated based on responses to messages generated by the The response evaluator can then use the identified set of features to Based on the response to the message generated by the non-rhetorical message object Model a rhetorical message object using one or more feature sets generated using the You can train your team.
[0161] D. SYSTEM FOR SELECTING AND SENDING MESSAGES IN A NETWORK ENVIRONMENT USING TRUST VALUES AND How to
[0162] A message may instruct a user to take a particular action or provide information. may be presented via a computing device to inform the user. However, if the message is presented repeatedly, the user may not take any action from the message. This can lead to message fatigue on the part of users. This reduces the effectiveness of messages to inform users and reduces the computational complexity of presenting messages. Degrading the quality of human-computer interaction (HCI) on computing devices A message is sent over a network and a computing device Because the process is handled by the network, the inefficiency translates into wasted computing resources and network bandwidth. There is a possibility of a connection.
[0163] To address these and other challenges with message fatigue, The message selection system may provide a message selection function for each user. A set of message objects may be maintained, each of which represents a corresponding It provides templates that define how messages are generated and the corresponding messages. and selection criteria describing one or more endpoints (or objectives) to be achieved by If a message is to be delivered to a specific user, the message selection system Using user activity logs to derive or identify user state (or "intent") Activity logs record how users responded to previously presented messages. The user status may include an entry indicating whether the user responded to the It may be used to select one of the message objects to create.
[0164] The message selection system selects, for each message object, a corresponding message A confidence value may be generated that indicates the likelihood that the presentation of the message to the user will achieve its purpose. The message selection system is configured to select a message that is provided to a user's computing device. the time that has elapsed since the computing device was configured to receive the The total number of messages shown in the specified user profile and the number of messages the user Message objects are automatically updated based on tuning factors such as the length of time they are active or With the adjusted trust value, the message selection system The message selection system may then select one of the message objects. Generates a message according to the message object and sends it to the user's computing device. The user's answers may be provided to the computing device. The results are recorded and provided to the message selection system to be used in the next round of selection. This is also fine.
[0165] In this way, the message selection system responds to user actions at the right time. This allows you to send messages that are more likely to lead to engagement with your users. HCI between computing devices and messaging on computing devices This can improve the effectiveness of the presentation of the message. It may also lead to user action. By selecting messages with high relevance, the computational effort required to deliver and present the messages can be reduced. This can reduce the waste of network resources and bandwidth. By delivering the right content at the right time, users can Increase engagement with your content with personalized relevance. High-quality messages are delivered to each user in a timely manner through the application. , user experience to improve health, wellbeing, fitness and quality of life This can lead to action.
[0166] Referring now to FIG. 9A, trust values are used to select messages between network environments. 9 illustrates a block diagram of a system 900 for transmitting a 900 includes at least one message selection system 902 and one or more remote computers. Remote computing devices 904A to 904N (hereinafter, collectively referred to as remote computing devices) The message selection system 902 and the remote control 904 may include a The computing devices 904 communicate with each other via at least one network 906. The message selection system 902 may be communicatively coupled to at least one state A tracker 908, at least one object evaluator 910, at least one one model trainer 912, at least one message distributor 914, at least one one message generator 916, at least one response handler 918, and at least At least one evaluation model 920, at least one delivery policy 922, at least one activity database 924, and at least one message database 9 26. The activity database 924 may include one or more activities Maintains or includes logs 928A-N (hereinafter generally referred to as activity logs 928) The message database 926 may store one or more message objects 930A. -N (hereinafter generally referred to as message object 930). Each remote computing device 904 may run at least one application 9 32. An application running on the remote computing device 904 may include The application 932 may include at least one reporting agent 934. The remote computing device 904 is associated with at least one user 936. They may be connected.
[0167] Each component of the system 900 (e.g., the message selection system 902 and its components) , and the remote computing device 904 and its components) are described in Section A hardware or combination of hardware such as the system 100 detailed herein in A. The system 900 may be implemented, processed, or performed using a combination of the above. The device performs, processes, or implements the functionality detailed in Sections B and C of this specification. For example, the message selection system 902 may be used to select a message. The system may include the functionality described above in relation to the system 202. The message object 930 is described herein in conjunction with the message object 206. The object evaluator 912 may include functionality detailed in, among other things, The remote computing device may include the functionality of the page object evaluator 252. The computing device 904 is described herein in relation to the remote computing device 270. It may include or perform the functions described in.
[0168] Referring now to FIG. 9B, the message selection system 902, and in particular the status tracker 90 8. System with the operation of model trainer 910 and object evaluator 912 9 shows a sequence diagram of a message selection system 900. The state tracker 908 accesses the activity database 924 to of a user 936, an application 932, or a Any activity log 928 may be obtained or identified. The activity log 928 maintained in the database 924 contains one or more entries 9 40A-N (hereinafter generally referred to as entries 940). Each entry 940 in the group 928 represents a remote computer associated with the user 936. At least one action by a user 936 recorded via a computer-readable recording device 904. Actions by the user 936 may identify or include actions to be taken by the remote computer. Previous presentation of the message via the application 932 on the mobile device 904 For example, on the remote computing device 904 The application 932 being executed may be the last application presented on the application 932. The user 936 inputs through one or more user interface elements of the message Interactions with user interface elements may be detected. The button may indicate an action performed by the user 936. The application 932 retrieves the activity log 924 from the activity database 924. 28 to send an instruction of the interaction to the message selection system 902 for recording. The instructions may include a timestamp identifying the time the interaction was entered. Upon receipt, the instructions from the remote computing device 904 may Activity database 92 as one of entries 940 in activity log 928 4.
[0169] Upon identification from the activity database 924, the state tracker 908 The activity log 928 may be parsed to identify or obtain entries 940. By identifying 940, the state tracker 908 may As shown in entry 940, via a remote computing device 904 Determine, identify, or retrieve actions performed by a user 936 that have been recorded using the In some embodiments, the state tracker 908 may Entry 940 in activity log 928 based on the timestamp of entry 940 The defined time window may be relative to the current time. For example, the status tracker 90 may be 8 is the activity log of 928 from the past week, as indicated by the timestamps. A subset of the entries 940 may be selected. At the time of the form, the state tracker 908 records the user 9 36 may identify the action taken.
[0170] Based on the action indicated in entry 940, the state tracker 908 At least one user ID for a user 936 of the remote computing device 904 User state 942 (sometimes referred to herein as “intent” or “user intent”) ) may be identified or determined. Inferring from the action recorded in entry 940 of activity log 928 above, Classifying or identifying the desired objective (e.g., behavioral endpoint) on the part of the user 936 User status 942 may include various usage actions shown in entries 940. It may also be related to an aspect, for example application navigation events (e.g. application 932), registration provided via application 932 One such example is the completion of application 932, which belongs to a specific milestone in compliance with the standard. Engagement patterns or interaction rates with the above features, and surveys ( For example, user input data from a user's device (such as those related to the user's health). The user state 942 corresponds to the message that is provided for presentation to the user 936. It may also be used as one of the parameters in selecting one of the message objects 930. In some embodiments, the user state 942 may be any of the states discussed in Sections B and C. The state tracker 908 may correspond to the context data 220 as Based on the actions identified from the activity log 928, the session of the user state 942 A user may select or determine a user state 942 from the set. A may be defined as corresponding to one or more actions. For example, an activity The actions identified from the teelog 928 are defined for the user states 942 in the set. If the action matches one of the defined actions, the state tracker 908 A corresponding user state 942 for the
[0171] Relatedly, the object evaluator executing on the message selection system 902 910 retrieves one or more message objects 930 from a message database 926. The identified message object 930 may be for selecting and generating corresponding messages to provide for presentation on the viewing device 904. Each message object 930 may function as a message candidate object. , whether to generate and send a corresponding message for presentation to the user 936. It may also contain a set of executable instructions (e.g., a script) for evaluating In this embodiment, the message object 930 is the message object 930 described above in sections B and C. The message object 206 and its components may correspond to the message object 206 .
[0172] Each message object 930 contains, among other things, at least one message template. The method includes a route 944, at least one constraint 946, and at least one selection criterion 948. The message template 944 may include one or more user interface elements. For example, the message may include instructions for generating a corresponding message to include the The template 944 is presented via the remote computing device 904. The graphical user interface elements of the message Constraint 946 may identify a placeholder for inserting content. 930, one or more constraints for generating or sending a message corresponding to the message object. The constraints 946 may define or include restrictions on the generation and and one or more time windows during which transmission is permitted (eg, time of day or weekends vs. weekdays). The selection criteria 948 are used to present messages corresponding to the message objects 930. The user 936 may define or include one or more endpoints to be achieved. The selection criteria 948 may identify or define a time window within which the endpoint should be achieved. The endpoints of the selection criteria 948 are digitally generated and provided via the application 932. To allow for optimal delivery of therapeutic therapy, the user is encouraged to engage in a regimen pattern. 936 includes behavioral goals that users are expected to achieve, such as motivating The selection criteria 948 may motivate the user 936 to receive a greater therapeutic benefit. The selection criteria 948 may be preconfigured or pre-set for the purpose of The behavior objects defined in the above example are used for application navigation events ( 932), a particular action on the part of the user 936 (e.g., opening the application 932), For example, breathing, exercise, or dieting) and via application 932 Scheduling a specific activity (for example, specifying a future time to perform an exercise) and the like.
[0173] For each message object 930, the object evaluator 910 Calculate at least one confidence value 952 based on the user state 942 and the selection criteria 948. The trust value 952 may be generated or determined for the message object 930. Specific user 93 objectives to achieve the endpoints defined by the selection criteria 948 6. Identify and represent the predicted effect of the message corresponding to the message object 930 on The trust value 952 may also indicate whether the user 936 believes the selection criteria 948 The predicted behavior corresponds to at least one of the endpoints defined in the A trust value 952 for the message object 930 may be determined. In so doing, the object evaluator 910 selects the entities defined by the selection criteria 948. The endpoint may be compared to the user state 942 of the user 938. 942 may identify the intent on the part of the user 936, as defined by the selection criteria 948. The endpoint may correspond to one of the endpoints defined by the selection criteria 948. If at least one of the points matches or corresponds to the user state 942, the object The toevaluator 910 may determine a relatively high confidence value 942. Any of the endpoints defined by 948 match or correspond to the user state 942. If not, the object evaluator 910 determines a relatively low confidence value 942. In some embodiments, the message distributor 914 may also Object 930 may be removed from further processing.
[0174] To facilitate the determination of the trust value 952, a process is performed on the message selection system 902. The model trainer 912 may maintain an evaluation model 920. The evaluation model 920 may , may be used to determine a trust value 952 for the message object 930. The estimation model 920 may be, for example, a regression model (e.g., a linear regression model or a logistic regression model). Regression model), Support Vector Machine (SVM), Artificial Neural Network (ANN ), Naive Bayes classifiers, and classification models (e.g., k-nearest neighbors). In general, the assessment model 920 comprises a set of inputs and a set of outputs related to each other via a set of weights. In some embodiments, the valuation model 920 may include a message object. The model may be part of or dedicated to one of the models 930 (e.g., model 210). In some embodiments, the reputation model 920 evaluates the individual message objects 930 Apart from the message object 93, which is stored in the message database 926, It may be general to the set of 0s.
[0175] The model trainer 912 uses the training dataset to evaluate the model 920. The training of the evaluation model 920 may be initiated or established. For example, if the evaluation model 920 is a classification model, In this case, training may be performed iteratively until convergence. The training dataset is a set of responses to previously presented messages from users (e.g. , user 936). The messages in the thread may correspond to one or more of the message objects 930. A training dataset is a set of messages that correspond to messages previously provided to the user. The message template 944, constraints 946, and selection criteria 94 8. The response data history is pointed to by the message object 930. The model may indicate success or failure in achieving a specified endpoint. When training, the model trainer 912 trains the training data set on the evaluation model 920. The model trainer 912 may apply the output to generate an output indicating success or failure. Weighting of the assessment model 920 based on a comparison with the results shown in the force and response data history The weights of the evaluation model 920 may be adjusted or modified and the application may be repeated until convergence. The positive results are based on the learnings on the architecture used to implement the evaluation model 920. It may also be something like that.
[0176] Upon establishment, the object evaluator 910 receives the user state 942 and the message Applying the object 930 to the evaluation model 920 to generate or determine a confidence value 952 In some embodiments, the object evaluator 910 may 20, message templates 944, constraints 946, and selection criteria 948 , or any combination thereof may be considered (eg, in a feature space representation). For example, the object evaluator 910 may, when applied to the evaluation model 920, The message object 930's user state 942 and selection criteria 948 define the message object 930's user state 942 and selection criteria 948. To apply the endpoint, the object evaluator 910 takes user state 942 and message object , as input to evaluation model 920. 930 (e.g., in their feature space representation). The data processor 910 processes the input using the weights of the evaluation model 920. The object evaluator 910 may generate an output based on the output of the evaluation model 920. may be identified as the trust value 952 of the message object 930. At least one of the endpoints defined by the selection criteria 948 is in the user state 942 Conversely, when the selection criteria 948 correlates with If none of the endpoints defined by the user state 942 correlates with the user state, the trust The value 942 may be relatively low.
[0177] In some embodiments, the message distributor 914 receives the message object 930 9. Transform one or more of the message objects 930 based on the constraints 946 defined for For each message object 930, the message The message distributor 914 may identify constraints 946. As described above, constraints 946 may One or more controls for generating or sending messages corresponding to the message object 930. In some embodiments, the message may define or include a time window. The message distributor 914 determines when a message corresponding to the message object 930 is to be sent. The message distributor 914 may specify the current time corresponding to the message. compared to the restricted time window defined by the constraints 946 of the message object 930. If the current time is not within the restricted time window defined by the constraint 946, the message The message distributor 914 distributes the message objects for further processing, as described below. If not, the current time is not the time defined by the constraint 946. When the message is within the limited time window, the message distributor 914 Port 930 may be deleted from further processing.
[0178] Referring now to FIG. 9C, the message selection system 902 includes a message distributor 9 is a sequence diagram of the system 900 with the operation of the message generator 914 and the message generator 916. A message distributor 914 running on the message selection system 902 is depicted. 9. The message object 930 is delivered according to at least one delivery policy 922. The delivery policy 922 may identify or select at least one of the following: Based on the trust value 952 for the message object 930, 930. In some embodiments, the delivery The policy 922 may be specified in one of the message objects 930. In some embodiments, the delivery policy 922 is a set of message objects 930. may be generally applied to
[0179] The delivery policy 922 may, among other things, include at least one update factor 960, at least A threshold value 962 and at least one delivery time 964 are identified, defined, or otherwise determined. The update factor 960 may include a The confidence value 952 may specify or define the value or amount by which the confidence value 952 should be modified or adjusted. In some embodiments, the update factor 960 is the time at which the confidence value 952 is adjusted (e.g., , increase or decrease) in any message to the remote computing device 904. A user may specify that the update is based on the time since the last update. The update factor of 960 is the cooldown policy of 2, as explained in sections B and C. The threshold 962 may serve as a threshold for determining whether a message object 930 is to be processed further. A user may specify the value of the trust value 952 that is allowed to be selected for processing. In an embodiment, the threshold 962 is set based on the number of messages stored in the message database 926. may be defined relative to the confidence value 952 determined for the object 930. For example, the threshold 962 may be set to 0 if the message object 93 has a confidence value of 5% or more. It may be specified that 0 is permitted to be selected for further processing. In some embodiments, the threshold 962 corresponds to the threshold policy 234 as discussed in Sections B and C. The delivery time 964 may function as a time stamp corresponding to one of the message objects 930. A message may be sent or provided to the remote computing device 904. A time or a time window may be specified.
[0180] In determining which message object 930 to select, the message distributor 9 14 uses the update factor 960 of the delivery policy 922 to update each message object. The trust value 952 of some of the objects 930 may be modified or otherwise updated. In an embodiment, the message distributor 914 corresponds to one of the message objects 930. The last time any message was sent to the remote computing device 904 The amount of time that elapses between the current time and the specified time may be specified. 922 may be specified by an update factor 960. Based on the amount of time that has passed, The message distributor 914 updates the update factor 960 of the message object 930. Using the update factor 960, the message distributor 914 may determine The trust value 952 of the message object 930 may be modified or updated. For example, The message distributor 914 uses an update factor 960 to adjust the trust value 952. It may be multiplied by the confidence value 952 .
[0181] In some embodiments, in addition to the specification of the delivery policy 922, the message deliverer 91 4 determines whether a message is generated based on the constraints 946 defined for the message object 930. One or more of the message objects 930 may be kept or removed from the selection. For the object 930 , the message distributor 914 may identify constraints 946 . As described above, the constraint 946 restricts the message corresponding to the message object 930 to May define or include one or more constraints (e.g., time windows) for generation or transmission In some embodiments, the message distributor 914 sends a message object 930 A time stamp may specify the current time corresponding to the time at which a message corresponding to the time is to be sent. In this embodiment, the message distributor 914 sends the current time to the message object 93 0 constraint 946. If the message is not within the restricted time window defined by 946, the message distributor 914 The message object 930 is maintained for further processing, as described below. Otherwise, the current time is within a restricted time window defined by constraint 946. , the message distributor 914 routes the message object 930 for further processing. may be deleted from
[0182] Based on the updated trust value 952, the message distributor 914 At least one of the set of objects 930 may be identified or selected. In some embodiments, the message distributor 914 may use the updated trust value 952 to The set of message objects 930 may be ranked using the ranking. The message distributor 914 then sends one of the message objects 930 (e.g., Even if we select the message object 930 with the highest trust value 952 in the ranking, In some embodiments, the message distributor 914 may The updated trust value 952 of 30 is then applied to the threshold 962 defined in the delivery policy 922. If the confidence value 952 meets (e.g., is greater than) a threshold 962, If so, the message distributor 914 may select the corresponding message object 930. Conversely, if the confidence value 952 does not meet (e.g., is less than) the threshold 962, the message The message distributor 914 may refrain from selecting the corresponding message object 930 .
[0183] Selection of the message object 930 causes a The message generator 916 executing on the remote computing device 9 04 to generate at least one corresponding message 916 for presentation to user 936. The message generator 916 may generate or generate a selected message object. The message template 944 of the object 930 may be identified. The message generator 916 generates a message template for the message object 930. In parsing, the message generator 916 may parse the specification of , the message template 944 may be executed to generate the message 966. The message 966 is then displayed on one or more user interface elements 968A-N ( 968), which are collectively referred to as user interface elements 968. The interface element 968 may be presented via the remote computing device 904. The message 966 may correspond to a graphical user interface element. , may include functionality that is activated in response to detection of an interaction by a user 936. .
[0184] Referring now to FIG. 9D, a message selection system 902 and a remote computer Among the message generators 914, the message generators 916 and the response handlers 916 A sequence diagram of the system 900 is depicted having 18 operations. The generator 916 communicates with a remote computing device via the network 906. The user may provide, transmit, or otherwise send a message 966 to the device 904. In some embodiments, the message distributor 914 may use the current time as a distribution time for the delivery policy 922. The current time may be compared to a specified time window defined by the broadcast time 964. When within a specified time window defined by the policy 922, the message distributor 9 14 sends the message object 930 to the remote computing device 904 Otherwise, the current time is determined by the instruction defined by the delivery policy 922. If the current time is outside the defined time window, the message distributor 914 checks whether the current time is equal to the delivery time 964 You can wait until it matches.
[0185] Upon receipt, the application executing on the remote computing device 904 The application 932 may present a message 966 for the user 936. The application 932 is adapted to communicate with the message selection system 902 via the network 906. The remote computing device 904 may be configured as follows: 932 parses the message 966 and transmits the message via the remote computing device 904 966 that includes a user interface element 968 (e.g., When message 966 is presented, application 9 The reporting agent 934 of the 32 is connected to the remote computing device 90 Message 966 user interface via 4 input / output (I / O) devices The device may monitor one or more interactions with the service element 968. The interactions may include: The action may be performed by a user 936, and may include a user 936 responding to a message 966 being presented. The device may be used to record one or more activities performed by the device 36. For example, a message 96 presented via a remote computing device 904 If 6 indicates that the user 936 is to perform a breathing exercise, the user 936 A command button may be selected to indicate that a puff has been performed. Based on the interactions, the reporting agent 934 may generate at least one A single response 970 may be generated and sent. Messages recorded using interactions via a computing device 904 Identify one or more actions taken by the user 936 when presented with the message 966 The response 970 may also include a step of determining whether the action is performed on a remote computing device. The generated file may specify or include a timestamp corresponding to the time recorded in 904. The application 932 communicates with the message selection system 902 via the network 906. The response 970 may be sent or transmitted to the
[0186] The response handler 918 running on the message selection system 902 then: A response from the remote computing device 904 over the network 906 The response handler 918 may identify or receive the response 970. The analysis revealed one performed by user 936 as shown in response 970. The above actions may be identified. The response handler 918 then logs the activity log 928 of the user 936 using One or more entries 940'A-N (hereinafter collectively referred to as entries 940') to include Entry 940 may generate a message to a user in response to the presentation of message 966. Entry 940 may identify the action that user 936 performed. Include a timestamp corresponding to the time the action was recorded on the application 932. The response handler 918 may be stored in a message database 924. Add or insert a new entry 940' into the activity log 928 of the user 936 By adding entry 940', the response handler 918 A user responds to presentation of a message 966 via a remote computing device 904. The user 936 may record the actions that he or she has taken. The added entry 940' updates the user state 942 for the user 936. It may also be used to
[0187] In this way, the message selection system 902 can select the remote control The system may include a plurality of devices that may be interacted with by a user 936 associated with the computing device 906. The selection and generation of the message 966 having the highest reliability may be performed. The generation may be performed by the user 936 as well as the entire system 900 (including remote computing devices). Quality of Human-Computer Interaction (HCI) between the user and the computer (including the 904 Selection and generation may also be based on behavioral endpoints or This may result in an increased likelihood of the desired outcome. Additionally, message 966 may be read and interacted with. As such, the message selection system 902 may be able to avoid wasting computing resources. This allows for better utilization and reduction of data and network bandwidth.
[0188] Referring now to Figure 10, trust values are used to select and distribute messages in a network environment. 10 illustrates a flow diagram of a method 1000 for transmitting a signal. The method 1000 is shown in conjunction with FIGS. The present invention may be implemented using any of the components as detailed herein. 1-9D. In brief, the server takes action from the activity log. The server may obtain (1005) the user state. The server may determine (1010) the user state. The server may identify candidate message objects (1015). The server may then determine the trust value. The server may determine the reliability of the certificate (1020). The server updates the reliability value according to the elapsed time. The server may select a message object (103). 0). The server may generate a message (1035). The server may send the message. You may trust this (1040).
[0189] More specifically, a server (e.g., message selection system 902) may The action may be obtained from a data log (e.g., activity log 928) (100 5). The activity log contains one or more entries (e.g., entry 940). Each entry in the activity log indicates whether a user responded to the previous message prompt. may identify one or more actions performed by a user (e.g., a user 936) The server parses the activity log entry to identify one or more actions. The server may determine the user state (e.g., user state 942). Using the action specified, the server determines the user's user state. Users may choose to use the identity of their choice when performing actions recorded in the activity log. The server may also indicate the user's intent from a set of defined user states. Each user state represents one or more actions that the user has performed. It may be possible to respond.
[0190] The server sends a message object candidate (e.g., message object 930) to Each message object may identify (1015) a message template. The templates (e.g., message templates 944), constraints (e.g., constraints 946), and selections The message template may include selection criteria (e.g., selection criteria 948). It may specify the generation of messages and user interface elements on the messages. A constraint may specify conditions that limit the selection of message objects. Selection criteria are A message object is a set of one or more actions that should be performed when presenting a message corresponding to the message object. You may define endpoints.
[0191] The server may determine 1020 a trust value (e.g., trust value 952). To determine the trust value of a message object, the server transfers the user state to the message object. The trust value may be compared to the endpoints defined by the selection criteria of the object. Actions taken to achieve the endpoints identified by the message object selection criteria The server may also provide a trust value to indicate the predicted effect of the message on the user. To generate the message object and the user state, we use the evaluation model (e.g. The server may update the trust value according to the time elapsed. Yes (1025). The server will then determine the time since the last time the message was presented to the user. The server may modify the trust value based on the time elapsed. The amount of the ion exchange resin may be increased or decreased.
[0192] The server may select a message object (1030). The server may select a trust value The server may select one of the message objects based on the The confidence value of the object may be compared to a threshold (e.g., threshold 962). If so, the server may select the message object. When the value does not meet the threshold, the server may refrain from selecting the message object. The server may generate (1035) a message, such as message 966. The server generates a message using the template in the selected message object. The message may be generated by one or more user interface elements (e.g., The server may also include an interface element 968. 1040). The message may be sent to a remote computing device (e.g., Upon receipt, the remote computing device 904 may transmit the The messaging device may present the message.
[0193] E. A system and method for selecting and sending different types of messages throughout a network environment and method
[0194] However, repeated presentation of messages can lead to message fatigue on the part of users. The user does not take any action from the presentation of the message, and the message notifies the user. This may lead to a decrease in the effectiveness of the message. Human-Computer Interaction (HCI) Quality of Control Devices This can lead to slower performance. Also, messages are sent over a network and When processed by a computing device, the loss of effectiveness is due to the use of computing resources and network This can lead to a waste of network bandwidth, even if the information is intended for users. , messages that are not configured to receive input via a user interface element This is particularly problematic when evaluating the performance of a message (sometimes referred to herein as a rhetorical message). A user interface element configured to receive input. In messages that are not rhetorical (sometimes referred to herein as non-rhetorical messages), A Sage's performance score may be determined based on the recorded responses. In contrast, a message that is not configured to receive input has a report for the message. There is no need to record the sponsorship.
[0195] To address these and other technical challenges in assessing message effectiveness, ,The performance score of the message with the recorded response is used to, Even if we estimate the predicted performance scores of user interface elements that lack a page, The message selection system should be able to select the responses recorded for the corresponding messages. A set of message objects can be specified. Each message object is , which defines the endpoint that should be achieved on the user's side to present the corresponding message. The message selection system may select a response from the user as a message object. From the comparison, the message selection system may It satisfies the endpoint of the message object that corresponds to the message presented to the The number of users who have been
[0196] Based on the number of users, the message selection system selects the performance of each message object. A performance score may be determined based on the message to the user. This decision may determine the effectiveness of the message selection system. The system may rank message objects by their performance scores. Using the ranking, the message selection system can select messages based on the You may select a set of message objects that are allowed to use the message. The selection system is a set of message object categories that restrict their use when generating messages. From the set of permitted message objects, The selection system is different from other systems that lack the ability to record responses due to their input-less configuration. The identification of other message objects may be done by The message selection system may be based on the endpoint that the identified message is The message object may be added to the set of permitted message objects.
[0197] In this manner, the message selection system generates and This extends the set of messages that can be delivered to the device, thereby expanding the functionality of the messages. The message enhancements may be implemented by the user and the remote computing device. Improve the quality of human-computer interaction (HCI) between users and the Messages can also be sent (even if not logged) about user actions. Because of the high probability of delays, the message selection system must be designed to This makes more effective use of wasted computing resources and network bandwidth, It can be reduced.
[0198] Referring now to FIG. 11A, trust values are used to identify different types of 11 is a block diagram of a system 1100 for selecting and sending messages. In summary, the system 1100 includes at least one message selection system 1102; One or more remote computing devices 1104A-N (hereinafter collectively referred to as remote The message selection device 1104 may include a The selection system 1102 and the remote computing device 1104 include at least one The message selection may be communicatively coupled to one another via a network 1106. The system 1102 includes at least one response tracker 1108, at least one an object evaluator 1110, at least one model trainer 1112, At least one distribution controller 1114 and at least one message correlator 1115. 116, at least one performance model 1118, at least one response database 1120, and at least one message database 1122. The response database 1120 stores response data 1124A to 1124N (hereinafter, The message database may also include a message database (generally referred to as response data 1124). The source 1122 stores a set of message objects 1126A-N of one type (hereinafter , collectively referred to as message objects 1126), and other types of message objects. A set of objects 1126'A to N (hereinafter, collectively referred to as message objects 1126 Each remote computing device 110 may maintain or include a 4 may include at least one application 1128. The application 1128 running on the operating device 1104 may include at least one A reporting agent 1130 may be included. The chair 1104 may be associated with at least one user 1132 .
[0199] Each component of the system 1100 (e.g., the message selection system 1102 and its components) components, and remote computing device 1104 and its components) The hardware or hardware components may be implemented in a manner similar to that described in Section A. The system 110 may be implemented, processed, or performed using a combination of software. The components of this specification perform, process, and / or implement the functionality detailed in Sections B and C of this specification. For example, the message selection system 1102 may be used to The database may include the functionality described in connection with the message selection system 202. The message object 1126 or 1126' held in 120 is a message object The object evaluation may include the functionality detailed herein with respect to object 206. The message object evaluator 1110 includes the functions of the message object evaluator 252. The remote computing device 1104 may be a remote computing In conjunction with the processing device 270, the processing device 270 may include or perform the functions described herein.
[0200] Referring now to FIG. 11B, the response traffic of the message selection system 1102 the object evaluator 1110, and the model trainer 1112. 11 is a sequence diagram of a system 1100 having the following operations: The response tracker 1108 running on the system 1102 stores the response database 1 120 to obtain or identify response data 1112. The service data 1112 may be transmitted to a remote computing device 1104, an application 1126, or one or more entries 1140 across one or more of the users 1130. A through N (collectively referred to below as entries 1140). Then, the response tracker 1108 extracts the end of the response data 1124 within a time window. The time window may be defined relative to the current time. Response data collected over a time window may be anywhere from one hour to one month. 124 corresponds to a message object 1126 that was previously presented to the user 1130 The information may be used to evaluate or assess the performance of a message.
[0201] Each entry 1140 of the response data 1120 (sometimes referred to herein as a response) The remote computing device 11 associated with the user 1132 Identify or identify at least one action by user 1132 recorded via 04 Actions by the user 1132 may include in response to a previous presentation of the message via application 1128 on device 1104. For example, the remote computing device 1104 may be running The application 1128 being displayed is the last application presented on the application 1128. By the user 1132 via one or more of the message user interface elements. The previous message may be of the first type. The user interface may be generated using the message object 1126. Interaction with a face element indicates an action performed by a user 1132. If detected, the application 1128 may The message selection system 1102 is then contacted to record the response data 1124 above. The display may include the time when the interaction was entered. Upon receipt, the remote computing device may include a timestamp identifying the The instruction from the device 1104 is stored as one of the entries 1140 in the response data 1124. The response may be stored and maintained in the response database 1120.
[0202] In some embodiments, the response tracker 1108 tracks the responses of the user 1132. The entry 1140 in the response data 1112 is used to determine the user status of each user 1132. Identifying or determining a user's intent (sometimes referred to herein as "intent" or "user intent") The determination of the user state by the response tracker 1108 is based on the state tracker described above. The determination of user state 942 by car 908 is performed in a similar manner. The action recorded in the response data 1124 entry 1140 is inferred to determine whether the user Categorize or identify the desired objectives (e.g., behavioral endpoints) on the part of the user 1132 The user status may include various usage activities as indicated in entry 1140. The entry 1140 may be related to an aspect, for example, an application navigation application events (e.g., opening application 1128), application 9 Applications that belong to specific milestones that comply with the regimes provided through 32 Engagement patterns or interactions with one or more features, such as completion of an action 932 user-entered data from surveys (e.g., related to the user’s health) In some embodiments, the response tracker 1108 may The user state for the user 1132 before the presentation of the page is The subset may be used to determine the entry 1140 from the response data 1124. A subset of the messages may be used, for example, to select messages or to provide The response tracker 1140 may contain a set number of entries 1140 prior to display. 108, based on the timestamp of the entry 1140, In some embodiments, the response tracker 1108 may identify Based on the action identified from the user data 1124, a user action is selected from a set of user states. Each user state in the set may be selected or determined by one or more actions. It may be defined as corresponding to the
[0203] An object evaluator 1110 running on the message selection system 1102 Retrieves a message of a first type (sometimes referred to herein as a non-rhetorical type) from the message database 1122. Each message may identify one or more message objects 1126 of a type. The message object 1126 stores the corresponding message for presentation to the user 1132. Executable instructions (e.g., scripts) for generating and evaluating whether to send 1146 In some embodiments, the message object 11 may include a set of 26 includes the message object 206 and its components described above in Sections B and C. In some embodiments, the object evaluator 11 10 may identify a first type of message object 1126 .
[0204] Each message object 1126 is associated with at least one message template 1126. 42 and at least one selection criterion 1144. The first type of small object 1142 may be configured to include one or more user interface elements. 1146. For example, the message template 1142 may be Text in a graphical user interface element for messages presented via or visual content. The reference 1144 presents a message 1146 corresponding to the message object 1126. The user 1132 may define or include one or more endpoints to be achieved when The selection criteria 1144 may also identify or define a time window in which the endpoint should be achieved. The endpoints of the selection criteria 1144 may be defined, for example, by the selection criteria 948. As described above with respect to the behavioral goals that are expected to be achieved on the part of the user 1132, The selection criteria 1144 may also include a behavioral goal that is expected to be met by one or more of the endpoints. Indicate which actions should be performed by user 1132 to satisfy the above. Good too.
[0205] A message template 1142 for each message object 1126 of the first type may correspond to at least one message 1146 or may include at least one message A first type of message object may be used to generate a message 1146. For each object 1126, each message 1146 may include one or more non-interactive elements. 1148A-N (hereinafter collectively referred to as non-interactive elements 1148) and one or more The above interactive elements 1150A to 1150N (hereinafter collectively referred to as interactive elements 115 Each non-interactive element 1148 may include a remote computer. Detected by the user 1132 when presented via the mobile device 1104 It may lack the structure to respond to interactions that are not interactive. The element 1148 may be configured to record interactions by the user 1132 without In contrast, each interactive element 1150 may be connected to a remote computing Detected interactions by user 1132 when presented via device 1104 The interactive element 11 may also have a configuration for responding to user input. 50 records interactions by user 1132 and The message selection system 1102 may be configured to communicate with the message selection system 1102.
[0206] For each message object 1126, the object evaluator 1110 When a message 1146 corresponding to the message object 1126 is presented, the user The response data 1124 may include a record of the actions taken by the user 1130. In identifying the response data, the object evaluator 1110 Response database 1120 is accessed to respond to the presentation of a corresponding message 1146 Identify one or more of the entries 1140 of the response data 1124 corresponding to the response. For each entry 1140 identified, the object evaluator 1 110, a user response to one or more of the interactive elements 1152 of the message 1146 The input may be specified by the user 1132. The input may be the interactive input of the message 1146. The input may be recorded via an interaction with one of the active elements 1152. , when the corresponding message 1146 is presented, the remote computing device The event may also show actions taken by the user 1132 that were recorded via the service 1104. In some embodiments, the object evaluator 1110 includes a response tracker In cooperation with the user 1108, the entry 1140 is analyzed to determine whether the entry is executed by the user 1132. The user may specify the recorded action that was taken.
[0207] Based on the input from each entry 1140 of the message object 1126, the object The object evaluator 1110 determines the selection criteria 1144 of the message object 1126. Determines whether at least one of the endpoints defined by is satisfied. To determine this, the object evaluator 1110 may The action indicated in is determined by the selection criteria 1144 of the message object 1126. You may compare it to a defined endpoint. As mentioned above, the message object The selection criteria 1144 of the 1126 determine whether the user 11 In some embodiments, the object may specify one or more actions that the object 32 performs. The object evaluator 1110, when comparing the behavior with the endpoints, The entries 1140 of the object 1126 may be traversed.
[0208] The actions identified from the entries 1140 are selected by the endpoints of the selection criteria 1144. When one of the specified actions is matched, the object evaluator 1110 sends a message Even if it determines that at least one of the endpoints of the message object 1126 is satisfied, Based on that determination, the object evaluator 1110 Each patient who met at least one of the endpoints specified in the selection criteria 1144 of 1126 The number of users 1130 of the message object 1126 may be counted or determined. Conversely, the action identified from the entry 1140 may be the endpoint of the selection criteria 1144. If the action does not match any of the actions specified by the The data object 1110 does not satisfy any of the endpoints of the message object 1126. From this determination, the object evaluator 1110 may determine that the The endpoints specified by the selection criteria 1144 of the message object 1126 For each message object 1126 that is not satisfied, the user 113 The number of zeros may be counted or determined.
[0209] The endpoints defined by the selection criteria 1144 of the message object 1126 The number of users who satisfied at least one of the criteria was 1130. The data 1110 contains at least one performance statement for the message object 1126. In some embodiments, a performance score 1154 may be calculated, generated, or determined. The selection criteria for message objects in determining the performance score Calculate the number of users 1130 who did not meet any of the endpoints defined by 4. The performance score 1152 is based on the end result defined by the selection criteria 1144. Identifying, expressing, or indicating the effectiveness of the corresponding message 1146 in achieving points The performance score 1152 may also be used to determine the selection of the message object 1126. A user 11 who meets one or more endpoints defined by the selection criteria 1144 30. In some embodiments, the object evaluator 11 10 determines the performance score 1152 using a function (e.g., weighted average) The function may include the number of users 1130 who satisfied at least one of the endpoints, The number of users 1,130 who were not satisfied with any of the endpoints, among other factors, was also considered. Generally, the selection criteria 1144 of the message object 1142 may be used. If a large number of users are determined to have met at least one of the defined endpoints, In this case, the performance score 1152 may be relatively high. At least one of the endpoints defined by the selection criteria 1144 of the object 1142 If the number of users who are judged to have satisfied one of the criteria is small, the performance score of 1152 will be It may be relatively low.
[0210] In some embodiments, the performance score 1152 may be determined by the object. The evaluation valuator 1110 evaluates the entry 114 before presenting the corresponding message 1146. 0, the user status of user 1132 associated with the corresponding message object. The user status may be compared to the endpoints defined for the message 1126. The number of endpoints defined in the selection criteria 1144 for the message object 1126 When the object evaluator 1110 determines that the object matches or corresponds to at least one of the A high performance score 1152 may be determined. Conversely, if the user status is Any of the endpoints defined in the selection criteria 1144 for the If neither of the , ... A lower performance score 1152 may be determined.
[0211] To facilitate the determination of the performance score 1152, a message selection system 1 A model trainer 1112 running on 102 may maintain a performance model 1118. The performance model 1118 calculates a performance score of 1 for the message object 1126. 152. The performance model 1118 may be, for example, a regression model (e.g., linear regression or logistic regression models), support vector machines (SVM), Artificial Neural Networks (ANN), Naive Bayes Classifiers, and Classification In general, the performance model 1118 may include a set of The weights of the inputs and outputs may be related to each other through the weights of the inputs and outputs. In an embodiment, the performance model 1118 is represented by one of the message objects 1126 (e.g., In some implementations, the 210 may be dedicated to one or more of the 210 models. In this embodiment, the performance model 1118 is separate from the individual message objects 1126. The message object 1126 (and the message object 1126' ) may be generalized to the set of
[0212] The model trainer 1112 uses the training dataset to train the performance model 111 The training of the performance model 1118 may be initiated or established by the performance model 111 8 architecture. For example, the performance model 1118 may be a classification model If so, learning may be repeated until convergence. The training dataset is a set of responses to previously presented messages from users (e.g. , users 1132). The messages in the set may correspond to one or more of the message objects 1130. The training dataset consists of messages that correspond to messages previously provided to the user. The message template 1142 and selection criteria 1144 of the message object 1130 The response data history may be specified by the message object 1130. It may also indicate success or failure in achieving a set endpoint. In the training, the model trainer 1112 trains the training data set to generate a performance model 1112. 18 to generate an output indicating success or failure. Based on a comparison of the output and response data history, the performance model The weights in the performance model 1118 may be adjusted or modified and the application may be repeated until convergence. The modification of the weights is a function of the architecture used to implement the performance model 1118. It may be based on learning.
[0213] In some embodiments, the model trainer 1112 analyzes the response data 1124 At least some of the data may be used to modify or update the performance model 1118. The application of sponsored data 1124 shall be made prior to the determination of performance scores 1152. This may be performed in conjunction with or subsequent to the above. Training of the performance model 1118. In some embodiments, the response data 1124 At least a portion of may be included as part of the training data set. In this embodiment, the model trainer 1112 uses entry 1 of the response data 1124 140 to the endpoint defined by the message object 1126. Based on the determination of whether is satisfied, the performance model 1118 may be updated. For example, in training, the model trainer 1112 may train the entries 1140 as performance models. 1118 to generate an output indicating success or failure. 12 is based on a comparison of the output with a determination of whether the endpoint is met. The weights of the performance model 1118 may be adjusted or modified and the application may be repeated until convergence. The modification of the weights of the performance model 1118 may be performed by modifying the architecture used to implement the performance model 1118. It may be based on learning about the architecture.
[0214] By establishing the performance model 1118, the object evaluator 1110 To determine the performance score 1152, a specific In some embodiments, the object may apply the response data 1124. The project evaluator 1110 may use the message evaluator 1110 in determining the performance score 1152. Also consider the message template 1142 and the selection criteria 1144 for the message object 1126. In some embodiments, the object evaluator 1110 may Also considers the user state determined from entry 1140 of message object 1126. To do so, the object evaluator 1110 evaluates the message object The response data 1124 entries 1140 and messages specified for the object 1126 The message object 1126 may itself be provided as an input to the performance model 1118 . The object evaluator 1110 evaluates the input using the weights of the performance model 1118. The object evaluator 11 may process the performance model 1118 output. 10 converts the output of the performance model 1118 into the performance In general, the selection of a message object 1142 may be specified as a score 1152. The study was judged to have met at least one of the endpoints defined by the selection criteria 1144. If the number of users is large, the performance score of 1152 may be relatively high. Conversely, the entries defined by the selection criteria 1144 of the message object 1142 If the number of users who are judged to have satisfied at least one of the end points is small, the performance A performance score of 1152 may be relatively low.
[0215] In some embodiments, the object evaluator 1110 evaluates the message object Based on the response data 1124 to the object 1126, the message object At least one of the selection criteria 1144 of 1126 includes one or more additional endpoints. The object evaluator 1110 may assign or attribute a message. Entry 1140 is executed before the presentation of message 1146 corresponding to message object 1126. Based on the identification of the user state, the object evaluator may The proxy 1110 may identify an endpoint that corresponds to the user state. In some embodiments, the object evaluator 1110 uses the user state to define The endpoint may be selected from a set of predefined endpoints. For inclusion in criterion 1144, a mapping between a user state and one or more endpoints must be established. The mapping may define a message object 1126 or a message The user status and one or more endpoints may be defined in the database 1122. If it finds a match between the message object and the message object, the object evaluator 1110 An endpoint may be added or inserted into the definition of the selection criteria 1144 of the object 1126. In some embodiments, the object evaluator 1110 evaluates the message object. The performance score 1152 of the target 1126 meets the threshold score (e.g., is equal to or greater than the threshold score). ) the identified endpoint may be added. The threshold score is Performance Scenario for Adding Endpoints to Selection Criteria 1144 of Object 1126 A value for the core 1152 may be defined.
[0216] Referring now to FIG. 11C, the message selection system 1102 includes a delivery control 11 illustrates a sequence diagram of the system 1100 with the operation of the message processor 1114. A delivery controller 1114 running on the message selection system 1102 controls the corresponding performance. Based on the performance score 1152, each message object 1126 is assigned an allowed session. 1160 or restricted set 1162. Both the permitted set 1160 and the restricted set 1162 can The messages are maintained on the message selection system 1102 (e.g., in a message database 1122). The message object 1126 assigned to the permitted set 1160 may is selected for generation and provision to the remote computing device 1104 In some embodiments, the assigned to the permitted list 1160 The received message object 1126 is sent to the remote computing device 11 It is likely to be selected for production and provision for presentation via 04 On the other hand, the restricted set 11 may be The message object 1126 assigned to 62 is generated and Selection for transmission to the computing device 1104 may be limited or prevented. In this embodiment, the message object 1162 is assigned to the restricted set 1162. 126 is generated and provided for presentation to the remote computing device 1104. The selection may be made less likely (e.g., weighted lower).
[0217] To determine the allocation, the delivery controller 1114 uses the performance score 11 52. The message objects 1126 may be ranked based on the message The ranking of the objects 1126 may be performed using, among others, an insertion sort, a merge sort, a heap sort, Sorting algorithms such as quicksort, bubble sort, radix sort, or bucket sort Based on the ranking, the distribution controller 1114 , the message object 1126 is classified into an allowed set 1160 or a restricted set In some embodiments, the distribution controller 1114 may assign The message objects 1126 with the highest n performance scores 1152 A subset may be selected and assigned to the permitted set 1160, and the remaining messages Objects 1126 may be assigned to restricted sets 1162. Conversely, the delivery controller 11144 may select the lowest n performance scores. A limited subset of message objects 1126 having 1152 is selected. The remaining message objects 1126 may be assigned to the granted may be assigned to set 1160.
[0218] In some embodiments, the delivery controller 1114 may 2 and a threshold score. The threshold score may be determined based on whether the message object 1126 is allowed to be processed. Performance considerations when assigning to the restricted set 1160 or the restricted set 1162 The value of the core 1152 may be defined. If it is determined that the score 1152 meets (e.g., is equal to or greater than) the threshold score, the distribution control The controller 1114 adds the message object 1126 to the allowed set 1160. Conversely, a performance score of 11 for message object 1126 may be assigned. If it is determined that 52 does not meet the threshold score (e.g., is less than), the distribution control The controller 1114 assigns the message object 1126 to a restricted set 1162. Based on assignment to the permitted set 1160 or restricted set 1162 Based on this, the message selection system 1102 generates and transmits the message 1148. (e.g., as described in Section D).
[0219] Referring now to FIG. 11D, the message selection system 1102 also includes a message selection A sequence diagram of the system 1100 is illustrated with the operation of the interrogator 1116. The message correlator 1116 running on the message selection system 1102 is of the second type ( One or more message objects 1126 of a type (sometimes referred to herein as a rhetorical type) Each message object 1126 may be presented to a user 1132. 1146' to evaluate whether to generate and send a corresponding message 1146' It may include a set of executable instructions (e.g., a script). The message object 1126' is the message object described above in sections B and C. 206 and its components.
[0220] Each message object 1126' contains at least one message template 1126. 142' and at least one selection criterion 1144'. The template 1142' may be configured to include one or more user interface elements. and instructions for generating at least one corresponding message 1146' of the type For example, the message template 1142' may be A graphical user interface for messages presented via the device 1104 Identifies a placeholder for inserting text or visual content into an element. The selection criteria 1144' may be a message object corresponding to the message object 1126'. One or more endpoints that the user 1132 must achieve when presenting the message 1146 The selection criteria 1144' may also define or include the criteria by which the endpoint should be achieved. The end points of the selection criteria 1144' may be, for example, It may also include behavioral goals that the user 1132 is expected to achieve. The quasi-status 1144 'determines which rows the user 1132 can use to satisfy one or more of the endpoints. It may also indicate whether action should be taken.
[0221] The message template 114 for each message object 1126' of the second type 2' may correspond to at least one message 1146', and at least one A second type of message object may be used to generate a message 1146'. For an object 1126', each message 1146' may include one or more non-interactive Interactive elements 1148'A to 1148'N (hereinafter collectively referred to as non-interactive elements 1148) A message generated from a first type message object 1126 may include Unlike the message object 1146, the message object 1126' is generated from the second type of message object 1126'. The message 1146′ may be missing one or more interactive elements 1150. Each non-interactive element 1148' may include a remote computing device 1 Detected interactions by user 1132 when presented via 104 The non-interactive element 1148' may lack the structure to respond to user input. The system may lack a mechanism for recording interactions by the user 1132. For this purpose, message 1146' sends the recorded interaction to the message selection system. For example, the message 1146' may be sent back to the system 1102. When the application 1104 is provided to the remote computing device 1104, 28 may present the message 1146' to the user 1132. 1128 parses the message 1146′ to include a non-interactive element 1148 The message 1146' may be presented (e.g., rendered or played). 1146' is presented, the reporting agent of application 1128 The client 1130 may monitor interactions with the message 1146'. The message selection system 1102 does not have a mechanism for reporting the response. This prevents the reporting agent 1130 from returning a response. This is also fine.
[0222] The message correlator 1116 detects a message of a first type in the permitted set 1160. and at least one message object of a second type. At least one correspondence 1170 between the object 1126′ and the object 1126 may be determined or identified. The correspondence 1170 is between the message object 1126 and the message object 11 26' is similar or identical as defined in selection criteria 1144 and selection criteria 1144', respectively. The identification of the correspondence 1170 may indicate that the first tag has an endpoint that corresponds to the first tag. The selection criteria 1144 for the message object 1126 of the first type and the The selection criteria 1144 of the object 1126 may be based on the selection criteria 1144 of the object 1126. In this embodiment, the message correlator 1116 checks the selection criteria 1126 for each message object 1126. 144 may be compared with the selection criteria 1144' of the message object 1126'. If the selection criteria 1144 are not met, the message correlator 1116 Correspondence between message object 1126 and message object 1126' 70. Additionally, the message correlator 1116 may compare Even if you specify another message object 1126 from the set 1160 permitted for In some embodiments, the message correlator 1116 may 1126 ′ may be included in the restricted list 1162 .
[0223] Otherwise, when the selection criteria 1144 are determined to be met, the message correlator 1 116 is between message object 1126 and message object 1126' The correspondence 1170 may be determined or identified. The message correlator 1116 selects the message objects 1114 for inclusion in the permitted set 1160. 26'. In some embodiments, the message correlator 1116 may select A correspondence 1170 is created between one of the message objects 1126 in the set 1160. A subset of the message objects 1126' determined to have the message object 1126 may be selected. Optionally, the message correlator 1116 may also include a second type of message object 1114. 26', together with the first type of message object 1126, By including it in the permitted set 1160, The message object 1126' is generated and transmitted to the remote computing device 1126. 104. In some embodiments, The message object 1126' assigned to the permitted list 1160 is Generation and presentation via a remote computing device 1104 are more likely to be selected for delivery (e.g., are given a higher weighting) It is also possible to do so.
[0224] Now, referring to Figure 12, we use trust values to compare different types of media across a network environment. 12 depicts a flow diagram of a method 1200 for selecting and sending a message. The method 1200 includes: Implemented using any of the components as detailed herein in conjunction with FIGS. 1-9D. In brief overview, a server may receive a first type of message object. The server may identify the user's request to satisfy the endpoint (1205). The server may determine a performance score (1210). 1215). The server ranks message objects by their performance score. The server may also allow or restrict message objects (1220). The server identifies a corresponding message object of the second type (1225). (1230).
[0225] More specifically, a server (e.g., the message selection system 1102) may select a first type Even if you identify the message object of the group (e.g., message object 1126), Each message object is a message template (e.g., message template 1142) and selection criteria (e.g., selection criteria 1144). The message template may be a template for a corresponding message and a user on the message. The selection criteria may specify the creation of interface elements for a message object. It may define one or more endpoints that should be achieved when presenting a corresponding message. .
[0226] The server receives the user (e.g., user 1132) that satisfies the endpoint (1210). To do so, the server may determine the number of Response data (e.g., response From each entry, the server may identify the user's Using the identification information, the server may assign the action to the message. The action may be compared against the endpoint specified by the endpoint object. When an endpoint matches, the server increments the number of users that fulfill the endpoint. This is also fine.
[0227] The server determines a performance score (e.g., a performance score of 1154). Based on the number of users that satisfy the endpoint, the server may For each message object, a performance score may be calculated. In one embodiment, the server uses a performance model (e.g., performance model 1116) to determine the performance. The server may determine a performance score for the message. The server may rank the message objects (1220). The performance score may be compared to a threshold.
[0228] The server may allow or restrict (1225) message objects. Based on this, the server may allow or restrict message objects. The server selects the top ranked message objects as authorized, while The remaining message objects may be restricted. The message object creates and sends the corresponding message (e.g., message 1146). may be permitted or made more likely to be used to trust A message object that is identified as being associated with a corresponding message is generated and sent. The information may be prevented or made less likely to be used to
[0229] The server receives a corresponding message object of a second type (e.g., A second type of message object (1126') is identified (1230). specifies the absence of an interactive element (e.g., interactive element 1150) may have message templates (e.g., message templates 1144') The server sends the second task if the endpoints of the two message objects match. A message object of the first type is converted to a message object of the second type. may be specified as.
[0230] While this disclosure has been described with respect to specific embodiments, numerous modifications will occur to those skilled in the art. For example, rules (either trigger conditions or resulting actions) Specific examples of proposed rules (including proposals) and the process for generating the proposed rules are described. However, other rules and processes may be implemented. Various computer systems and communication technologies are contemplated, including but not limited to the specific examples described herein. This can be achieved by using
[0231] The embodiments of the present disclosure may be implemented using dedicated components or programmable processors or other programs. This can be accomplished using any combination of programmable devices. The various processes depicted may be executed on the same processor or on different processors in any combination. Components can be configured to perform specific actions. When described as being implemented, such a configuration may, for example, be implemented by configuring electronic circuits to perform an operation. By designing a path, a program (such as a microprocessor) is made to perform an action. by programming programmable electronic circuits, or by any combination thereof. Furthermore, the above-described embodiments may be achieved by using specific hardware and software. Although references are made to software components, those skilled in the art will recognize that Different combinations of software components can also be used and implemented in hardware. that certain operations described as being implemented in software may also be implemented in software, or vice versa You will understand that it is.
[0232] A computer program incorporating various features of the present disclosure may be implemented using various computer-readable media. It can be encoded and stored on a storage medium. Suitable media include magnetic disks or tape. Optical discs such as 3G, compact discs (CDs) or DVDs (digital versatile discs) This includes storage media, flash memory, and other non-transitory media. The encoded computer readable medium is packaged with a compatible electronic device. The program code may be provided separately from the electronic device (e.g., in the form of an electronic device). Downloaded from the Internet or on a separately packaged computer-readable storage medium provided as a body).
[0233] Although the specification contains many specific embodiment details, these are not intended to be limiting of the invention. should not be construed as a limitation on the scope or what may be claimed. Rather, it should be construed as a description of features specific to a particular embodiment of a particular invention. Certain features that are described herein in the context of separate embodiments may also be combined in a single embodiment. Conversely, various features that are described in the context of a single embodiment may also be implemented in combination. may be carried out separately in multiple embodiments or in any suitable subcombination. Moreover, features may be described above as acting in specific combinations. , even if initially so asserted, one or more from the asserted combination Functions may be extracted from combinations in some cases, and the claimed combination may be It may be directed to a sub-combination or a variation of a sub-combination. do.
[0234] Similarly, although the figures depict operations in a particular order, it is understood that in order to achieve a desired result, To perform such operations in a particular order shown, or sequentially; or It should not be understood as a requirement to perform all of the operations illustrated. In some cases, multitasking or parallel processing may be advantageous. The separation of various system components in the It should not be understood that the above-described program components and systems are required. are generally integrated into a single software product or distributed across multiple software products. It should be understood that the present invention can be packaged.
[0235] References to "or" include the singular, plural, and all meanings of the terms described with "or." may be interpreted inclusively to refer to any of the described terms. .
[0236] Thus, certain embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. It is within the scope of the present invention to provide a method and apparatus for performing the actions recited in the claims in a different order in some cases. The desired results can be obtained by the process depicted in the accompanying diagram. The particular order, or sequential order, shown must not necessarily be followed to achieve desirable results. No. In certain embodiments, multitasking and parallel processing may be advantageous.
[0237] Although specific embodiments of methods and systems have been described, other embodiments incorporating the concepts of the present invention are contemplated. It will be apparent to those skilled in the art that the embodiments may be used. may provide any or a plurality of each of these components, A component may be a standalone machine or, in some embodiments, multiple machines in a distributed system. It should be understood that the above-described systems and methods may be provided on any of a variety of machines. The Act provides that software, firmware, hardware, or any combination thereof using programming or engineering techniques to create a method, apparatus, or The above-described systems and methods may be implemented as an article of manufacture. One or more computer readable programs embodied on or in an article of manufacture. As used herein, an "article of manufacture" may be provided in grams. The term "software" refers to one or more computer readable devices, firmware, programs, Programmable logic, memory devices (EEPROM, ROM, PROM, RAM, SRA M, etc.), hardware (e.g., integrated circuit chips, field programmable gate arrays, FPGAs, application-specific integrated circuits (ASICs), electronic devices , computer readable non-volatile storage devices (CD-ROMs, floppy disks, Code or logic embedded in and accessible from a hard disk drive The article of manufacture is intended to include network transmission lines, wireless transmission lines, Computer-readable via a medium, a signal propagating through space, radio waves, infrared signals, etc. The file may be accessible from a file server that provides access to various programs. The article of manufacture may also be a flash memory card or a magnetic tape. In addition to hardware logic, the present invention also includes a computer-readable medium that can be executed by a processor. This includes embedded software or programmable code. Computer-readable programs include LISP, PERL, C, C++, C#, PROLOG, etc. Implemented in any programming language or any bytecode language such as JAVA The software program may be distributed as object code on one or more articles of manufacture. Or it may be stored within an article of manufacture.
[0238] Thus, while the present disclosure has been described with respect to specific embodiments, the present disclosure also encompasses the following claims. It is understood that the intention is to cover all modifications and equivalents within the scope of the claims. It would be.
Claims
1. 1. A method for transmitting a message over a network environment, comprising: A plurality of message objects are generated by at least one server having one or more processors. identifying candidate message objects, each of the plurality of candidate message objects comprising: Choices presented to the user to achieve one or more of multiple behavioral endpoints the identifying step being associated with a reference; The at least one server associates the remote computing device with From the activity logs of users who have been obtaining one or more actions by the user recorded according to the The at least one server records the one or more actions by the user. used to identify one of the plurality of message object candidates from the determining a user state to be by the at least one server, for each of the plurality of message object candidates determining a trust value based on the user state and the message; one of the plurality of endpoints based on a comparison of the candidate object to a selection criterion; To achieve the above, a predicted effectiveness of the corresponding candidate message for the user. determining said confidence value, said confidence value being indicative of by the at least one server, for each of the plurality of message object candidates Then, a previous message corresponding to at least one of the plurality of message object candidates is selected. The trust value is calculated based on at least one elapsed time from a transmission time of the message to a current time. and updating the The at least one server selects a message object candidate from the plurality of message object candidates. selecting a message object based on said trust value for said message; P and Selected by the at least one server from the plurality of message objects. generating a message based on the message object; and The at least one server accesses the remote computer associated with the user. sending the message to a computing device for presentation; A method comprising:
2. The method of claim 1 further comprising: by the at least one server via the remote computing device. one or more subsequent actions by the user in response to the presentation of the message. recording said activity log; and said at least one server, updating the user's state based on subsequent actions; A method comprising:
3. 2. The method of claim 1, further comprising: The user can then select a message object corresponding to one or more of the message object candidates. A training dataset containing historical response data from users is used to Steps to Establish an Object Model Also equipped with The step of determining the trust value further comprises: The object model is a set of the user state and the plurality of message object candidates. applying said selection criteria to said
4. 2. The method of claim 1, wherein each message of the plurality of candidate message objects is A message object contains a message template to generate the corresponding message, and a a model for determining the trust value and a time constraint for sending the corresponding message; and determining whether or not to achieve one of the behavioral endpoints within a defined time window. and said selection criteria defining one or more of said selection criteria.
5. 2. The method of claim 1, wherein the step of determining a user state further comprises: a plurality of users of said users associated with said remote computing devices; The state of the user corresponding to at least one of the plurality of behavioral endpoints. determining a user state.
6. 2. The method of claim 1, wherein the step of updating the confidence value comprises: determining a cool-down factor corresponding to the elapsed time between the transmission time of the , applying the confidence value.
7. 2. The method of claim 1, wherein the step of selecting a message object comprises: and further comprising: a step of: determining whether or not a message object is a duplicate based on a comparison of the trust value for the message object with a threshold value; selecting a message object from a number of candidate message objects; The threshold is defined by a delivery policy for sending messages. A method comprising the steps of:
8. 2. The method of claim 1, wherein the step of obtaining one or more actions comprises: Among the plurality of message object candidates from the activity log of the user, by the user in response to presentation of a previous message corresponding to one or more of the The method includes the step of obtaining an action.
9. 2. The method of claim 1, wherein the step of sending the message further comprises: At the current time defined by a delivery policy for sending the message, transmitting a message to the remote computing device.
10. 2. The method of claim 1, further comprising: A user state meets the selection criteria for each subset of the plurality of candidate message objects. Based on the lack of a match, at least one of the plurality of candidate message objects is selected. removing the subset from the selection.
11. one or more memory devices connected to the memory for transmitting messages across a network environment A system comprising at least one server having a processor, The other server does the following: identifying a plurality of candidate message objects; The supplement presents the user with a set of behavioral endpoints to achieve one or more of the following: said identifying being associated with a selection criterion for Activity logs of users associated with remote computing devices from one by the user recorded via a remote computing device. Get more action, The one or more recorded actions by the user include: determining a user state to be used to identify one of the object candidates; by the at least one server, for each of the plurality of message object candidates based on a comparison of the user state with the message object candidate selection criteria. , a corresponding message for achieving one or more of the plurality of endpoints. determining a confidence value indicative of the predicted validity of the candidate page for the user; For each of the plurality of message object candidates, At least one of the candidates for the message has been sent at least once between the sending time of the previous message and the current time. updating the confidence value based on at least one elapsed time; From the plurality of message object candidates, a message object candidate is selected based on the trust value for the message. Select the message object based on the Based on the message object selected from the plurality of message objects Generate a message for Present to the remote computing device associated with the user. Sending said message; The system is configured as follows:
12. 12. The system of claim 11, wherein the at least one server further comprises: in response to the presentation of the message via the remote computing device. recording the activity log of one or more subsequent actions by the user; and based on the one or more subsequent actions in response to presentation of the message, Update the user's status, The system is configured as follows:
13. 12. The system of claim 11, wherein the at least one server further comprises: For messages corresponding to one or more of the plurality of message object candidates A training data set containing historical response data from said users is used to Establish a message object model; and The message object model is a set of the user state and the plurality of message objects. applying said selection criteria to candidate objects to determine said confidence value. The system is configured as follows:
14. 12. The system of claim 11, wherein each of the plurality of message object candidates A message object is a message template used to generate the corresponding message. a model for determining the trust value; and a time constraint for transmitting the corresponding message. and determining whether or not said plurality of behavioral endpoints are to be achieved within a defined time window. and the selection criteria defining one or more of:
15. 12. The system of claim 11, wherein the at least one server further comprises: A plurality of user states of the user associated with a remote computing device. The user's behavioral endpoints corresponding to at least one of the plurality of behavioral endpoints are A system configured to determine a state of a network.
16. 12. The system of claim 11, wherein the at least one server further comprises: determining a cool-down factor corresponding to the elapsed time between a last transmission time and the current time; and applying the confidence value to the confidence value.
17. 12. The system of claim 11, wherein the at least one server further comprises: A plurality of messages are identified based on a comparison of the confidence values for the message objects to a threshold value. a message object candidate selection unit configured to select a message object from the message object candidate candidates, The value is defined by the delivery policy for sending the message through the system.
18. 12. The system of claim 11, wherein the at least one server further comprises: From the activity log of the user, among the plurality of message object candidates, by the user in response to presentation of a previous message corresponding to one or more of the The system that is configured to retrieve the action.
19. 12. The system of claim 11, wherein the at least one server sends a message to The message is sent to the destination at the current time defined by a delivery policy. The system is configured to transmit to a remote computing device.
20. 12. The system of claim 11, wherein the at least one server further comprises: A user state is applied to the selection criteria of each subset of the plurality of candidate message objects. Based on the lack of a match, determining whether at least one of the plurality of candidate message objects is a match. The system is configured to remove the subset from the selection.
Citation Information
Patent Citations
Activity Recognition with Activity Reminders
JP2016529981A
Control method of information terminal and information system
JP2017041202A
Optimized selection and delivery of content
US10242381B1