A method and system for notifying a user of a message
Patent Information
- Application Number
- CN202611393357.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-09-09
- Publication Date
- 2026-10-16
AI Technical Summary
上述处理方式未充分考虑通知发送时间改变后预期效用的变化,容易造成多个通知集中到达,或者使低优先级通知在延后发送后与其他通知再次发生冲突,影响通知调度结果的合理性
本发明获取用户情景数据并形成情景特征向量,利用用户行为模型获得用户在候选时间的可打扰概率,同时结合通知类型、内容相关性及历史交互情况获得用户针对不同通知的行动概率,从而将用户是否适合接收通知与用户接收具体通知后是否采取行动分别进行量化,为不同通知的发送时机判断提供相应的数据依据。
Smart Images

Figure CN122933591A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of information push technology, and more specifically, to a method and system for notifying users of messages. Background Technology
[0002] With the widespread adoption of mobile devices and applications, the number of notification messages received by user devices is constantly increasing. Notification types include news updates, social interaction reminders, application update notifications, service reminders, and non-urgent emails. Different notifications are usually generated and sent independently by the respective applications, and the timing of notification sending is mostly determined by the message generation time, fixed sending time periods, or pre-configured sending rules.
[0003] While existing notification delivery methods can schedule notifications based on notification type, source, or preset priority, they still don't fully utilize the user's current location, activity status, device usage, and historical interaction habits. Some methods determine whether a user is suitable to receive a notification based on whether the notification is opened or clicked, but whether a user is in a state where they can be disturbed and whether a user will take action after receiving a specific notification are different dimensions of judgment. Relying on a single feedback indicator cannot simultaneously reflect the user's current state and the actual value of the notification content to the user. Therefore, notifications may be sent when a user is driving, in a meeting, or focused on work, or they may go unnoticed even when the user is in a state where they can receive notifications due to insufficient relevance of the notification content.
[0004] When multiple applications generate notifications around the same time, existing technologies typically handle this by sending them in the order they were generated, in batches, or according to a fixed priority. These methods do not adequately consider the changes in expected utility after the notification sending time changes, which can easily lead to multiple notifications arriving at the same time, or cause low-priority notifications to conflict with other notifications after being sent later, affecting the rationality of the notification scheduling result.
[0005] Furthermore, some notification scheduling methods use fixed sending thresholds to determine whether to send a notification. These fixed thresholds are difficult to adjust according to notification waiting times and changes in user context. Notifications that haven't reached the threshold may remain pending for extended periods, while inefficient notifications that have reached the threshold may be sent at inappropriate times. Therefore, determining the timing of notification sending by combining user context, notification characteristics, and waiting time, and coordinating the scheduling of multiple notifications when their sending times conflict, becomes a technical problem that needs to be solved. Summary of the Invention
[0006] In view of this, the present invention proposes a method and system for notifying users of messages, aiming to solve the above-mentioned problems.
[0007] To achieve the above objectives, the present invention provides the following solution: On one hand, the present invention provides a method for notifying users of messages, comprising: S100: Obtain multiple non-urgent notification messages to be sent, and determine their priority based on the content relevance and time urgency of each non-urgent notification message; S200: Obtain the user's current context data, preprocess the context data, and form a current feature vector; S300: Utilize a user behavior model to predict the probability of a user being disturbed at each candidate sending time; determine the probability of not being disturbed based on the probability of being disturbed; utilize an action probability model to determine the probability of the user taking action; query the notification action value mapping relationship based on the notification type and notification target to determine the notification action value; determine the scenario sensitivity score based on the scenario features associated with the candidate sending time; determine the corrected disturbance cost based on the probability of not being disturbed and the scenario sensitivity score; determine the expected utility value based on the probability of the user taking action, the notification action value, and the corrected disturbance cost; and determine the candidate sending time with the highest expected utility value and the corresponding maximum expected utility value as the candidate scheduling result. S400: Determine a dynamic utility threshold based on the user's historical average utility value, notification waiting time, and time decay coefficient associated with the notification type; identify non-urgent notification messages whose maximum expected utility value exceeds the dynamic utility threshold as notifications to be scheduled, and determine the candidate sending time in the corresponding candidate scheduling results as the optimal sending time; add non-urgent notification messages whose maximum expected utility value does not exceed the dynamic utility threshold to the waiting queue and re-evaluate them at subsequent decision times; S500: Detect whether the optimal sending time of each scheduled notification is within the same conflict time window; if a conflict exists, retain the optimal sending time of the scheduled notification with higher priority, exclude the conflict time window, recalculate the expected utility value of the scheduled notification with lower priority in the remaining candidate sending times, and determine the remaining candidate sending time with the largest expected utility value as the re-determined sending time; re-execute the dynamic utility threshold judgment based on the expected utility value associated with the re-determined sending time, add scheduled notifications that do not exceed the dynamic utility threshold to the waiting queue, and re-execute conflict detection for scheduled notifications that exceed the dynamic utility threshold; S600: Send the corresponding notification message to the user terminal according to the final determined sending time.
[0008] Further, in step S100, before obtaining the non-urgent notification message, urgent messages are identified sequentially based on the emergency flag carried by the notification message, the notification source rule, and the notification content. Notification messages identified as urgent messages or whose message type cannot be determined are sent directly, while the remaining notification messages are identified as non-urgent notification messages. The content relevance is determined based on the user's historical open rate of similar notification messages, the frequency of use of the notification source application, and the preference for notification content categories. The time urgency is determined based on the mapping relationship between notification type and maximum tolerable delay.
[0009] Further, in step S200, the scenario data includes location coordinates, activity status, temperature, humidity, wind speed, heart rate, steps, and user operation frequency; the current feature vector includes horizontal location coordinates, vertical location coordinates, activity status value, temperature value, humidity value, wind speed value, heart rate value, steps value, and user operation frequency; the scenario data is aligned according to timestamps, and outliers and missing values are processed.
[0010] Further, in step S300, the user behavior model is constructed using a long short-term memory network. The historical feature vector sequence is used as input, and the network is trained using a disturbable status label generated based on the user's feedback to historical notification messages and the activity state when sending historical notification messages. The trained network outputs a disturbable probability. The action probability model determines the probability of the user taking action based on contextual features, notification type, content relevance, and the user's historical open rate for the corresponding type of notification message.
[0011] Further, in step S300, the notification action value mapping relationship records the notification type, notification target, and notification action value, where the notification target is the user behavior indicated by the notification message; the notification action value mapping relationship is queried according to the notification type and notification target of the notification message to be processed to determine the notification action value; the corresponding disturbance score is determined according to the current state of each scenario feature, and the sum of the products of each disturbance score and its corresponding weight is determined as the scenario sensitivity score; the product of the proportional coefficient and the probability of not being disturbed is determined as the basic disturbance cost, the product of the basic disturbance cost and the scenario sensitivity score is determined as the corrected disturbance cost, and the product of the probability of the user taking action and the notification action value is subtracted from the corrected disturbance cost to obtain the expected utility value.
[0012] Further, in step S400, the dynamic utility threshold is determined according to the following relationship: ; in, The dynamic utility threshold is t, where t is the current decision time. Based on the basic threshold parameter, This represents the user's historical average utility value. The time decay factor associated with the notification type. To notify of the waiting time; When the notification waiting time exceeds the maximum waiting time, the notification content becomes invalid, or the user has already viewed information associated with the notification content, the sending of the corresponding non-urgent notification message will be stopped.
[0013] Further, in step S500, at least two pending notifications whose interval between optimal sending times is less than the conflict time window are identified as conflicting pending notifications; they are processed sequentially in descending order of priority; when priorities are the same, the processing order is determined based on the maximum expected utility value within the conflict time window; candidate sending times that conflict with the already determined sending time are excluded, the expected utility values of the remaining candidate sending times are recalculated, and the remaining candidate sending time with the largest expected utility value is determined as the re-determined sending time; when the expected utility value associated with the re-determined sending time does not exceed the dynamic utility threshold, the corresponding pending notification is added to the waiting queue; when it exceeds the dynamic utility threshold, conflict detection is performed again; when conflicts still exist after reaching the set number of processing times, the corresponding pending notification is added to the waiting queue.
[0014] Further, before step S600, a notification template is selected from the notification template library based on the user's current context data and historical preferences, and the notification template is filled with the user's historical behavior data and current context data to generate the notification text to be sent.
[0015] Further, after step S600, the open rate, click rate, unsubscribe rate and disturbance score of the sent notification messages are collected. By comparing user groups using different parameter schemes, the weight of the context sensitivity score, the proportional coefficient of the basic disturbance cost, the value of the notification action, the conflict time window, and the basic threshold parameters of the dynamic utility threshold, as well as the calculation parameters of the time decay coefficient and priority are updated according to the comparison results.
[0016] Compared with the prior art, the beneficial effects of the present invention are as follows: This invention acquires user context data and forms a context feature vector. It uses a user behavior model to obtain the probability of a user being disturbed at a candidate time. At the same time, it combines notification type, content relevance, and historical interaction to obtain the probability of user action for different notifications. This allows for the quantification of whether a user is suitable to receive a notification and whether the user will take action after receiving a specific notification, providing corresponding data basis for judging the timing of sending different notifications.
[0017] This invention determines the value of a notification action based on the notification type and notification objective, determines the cost of disturbance based on the probability of non-interference, and corrects the cost of disturbance using a context sensitivity score. Then, based on the action probability, the value of the notification action, and the corrected cost of disturbance, the expected utility of each candidate time is determined, forming a candidate scheduling result. The optimal sending time is determined only after the maximum expected utility value passes a dynamic utility threshold. Therefore, the determination of the notification sending time can simultaneously consider the user's current state, the value of the notification to the user, and the interference caused by the notification, reducing the bias caused by determining the sending time solely based on a fixed time or a single feedback indicator.
[0018] This invention determines a dynamic utility threshold based on the notification waiting time, adds notifications that fail the threshold judgment to a waiting queue, and evaluates them on a rolling basis in subsequent decision cycles; at the same time, it sets a lower limit of the threshold, a maximum waiting time, and message expiration conditions, so that waiting notifications can re-participate in the judgment as the user's status and waiting time change, and stops scheduling notifications that have exceeded the validity period, thereby reducing the problems of inefficient notifications being sent directly or notifications being delayed for a long time.
[0019] This invention only performs conflict detection on notifications determined by a dynamic utility threshold. When multiple notifications are sent within the same conflict window, based on the notification priority and the change in expected utility over time, a corresponding sending time is reserved for high-priority notifications, while a new sending time outside the conflict window is determined for low-priority notifications. After the new sending time is determined, the dynamic utility threshold is re-evaluated to avoid the expected utility after time adjustment no longer meeting the sending conditions. This reduces mutual interference caused by multiple notifications being sent simultaneously while accommodating the sending needs of notifications with different priorities.
[0020] This invention can also generate personalized notification content based on the user's current context and historical preferences, and collect feedback on notification opening, clicking, and unsubscribing to update the user behavior model and notification scheduling parameters, so that the notification sending strategy can be adjusted according to changes in user behavior habits.
[0021] On the other hand, the present invention provides a system for notifying users of messages, comprising: The message processing module is used to acquire notification messages to be sent, identify urgent messages, and determine the priority of each non-urgent notification message. The context processing module is used to acquire the user's current context data, preprocess the context data, and form a current feature vector; The model processing module is used to predict the probability of disturbance using a user behavior model and to determine the probability of a user taking action using an action probability model. The notification prediction module is used to query the notification action value mapping relationship according to the notification type and notification target, determine the notification action value, determine the expected utility value of each candidate sending time according to the disturbance probability, the probability of user taking action, the context sensitivity score and the notification action value, and form a candidate scheduling result including the candidate sending time with the largest expected utility value and the corresponding candidate scheduling result with the largest expected utility value. The threshold judgment module is used to determine non-urgent notification messages as pending notifications based on the dynamic utility threshold and determine the candidate sending time in the candidate scheduling result as the optimal sending time, or to add non-urgent notification messages to the waiting queue, and to re-execute the dynamic utility threshold judgment based on the expected utility value associated with the re-determined sending time. The conflict resolution module is used to detect whether the optimal sending time of each notification to be scheduled is within the same conflict time window, and when a conflict exists, to re-determine the sending time and the corresponding expected utility value according to the priority. The notification sending module is used to send corresponding notification messages to the user terminal according to the finally determined sending time.
[0022] It should be noted that the system and method for notifying users of messages provided by this invention have the same beneficial effects, and will not be described in detail here. Attached Figure Description
[0023] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0024] Figure 1 A flowchart illustrating a method for notifying a user of a message, as provided in an embodiment of the present invention; Figure 2 This is a functional framework diagram of a system for notifying users of messages, provided as an embodiment of the present invention. Detailed Implementation
[0025] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0026] To make the above-mentioned objects, features and advantages of the present invention more apparent and understandable, the present invention will be further described in detail below with reference to the accompanying drawings and specific embodiments.
[0027] This invention is primarily used to schedule the delivery time of non-urgent notification messages that are allowed to be delayed. Non-urgent notification messages include news updates, social interaction reminders, application update notifications, service reminders, promotional messages, and non-urgent emails. Urgent messages involving device alarms, account security, payment verification, or emergency contact information are not included in the delayed scheduling process.
[0028] The method described in this embodiment can be executed by a user terminal or jointly by a user terminal and a notification scheduling server. The user terminal is used to receive notification messages, collect user context data, display notification messages, and record user feedback; the notification scheduling server is used to process context data, run user behavior models and action probability models, determine the sending time of notification messages, and perform conflict resolution.
[0029] See Figure 1 As shown in the figure, this embodiment provides a method for notifying users of messages, including the following steps.
[0030] S100: Obtain multiple non-urgent notification messages to be sent, and determine their priority based on the relevance of their content and the urgency of their time.
[0031] After receiving a notification message, the user terminal establishes a message record for the notification message. The message record includes the notification identifier, notification source, notification type, sender, generation time, notification content, emergency flag, maximum tolerable delay, content expiration time, and processing status. The processing status includes pending identification, awaiting scheduling, pending delivery, delivered, and expired.
[0032] Before classifying a notification message as non-urgent, emergency messages are identified sequentially based on the emergency flag, notification source rules, and notification content.
[0033] First, read the system notification priority or emergency flag carried in the notification message. When the notification message carries a high priority flag, a highest priority flag, or metadata indicating an emergency message, the notification message is identified as an emergency message.
[0034] When a notification message does not carry an emergency tag, the notification source rule is queried. The notification source rule records the application, sender, and message type that are identified as an emergency source. For example, alarm messages sent by a device alarm application, account risk messages sent by a banking application, and messages sent by emergency contacts can be marked as emergency messages in the notification source rule.
[0035] When a notification message does not match the notification source rule, text recognition is performed on the notification content to determine if it contains words such as "alarm," "crisis," "immediate action," "account abnormality," or words with the same urgent meaning. If the notification message is identified as an urgent message, it is sent directly. If the message type still cannot be determined after the above recognition, it is also sent directly, and the recognition result is recorded as data to be reviewed. Other notification messages are determined to be non-urgent notification messages and enter the sending time scheduling process.
[0036] For the Non-urgent notification messages are scored based on content relevance. and time urgency score Calculate priority :
[0037] Where γ is the content relevance weight and δ is the time urgency weight, and the sum of the two is 1. In this embodiment, γ is set to 0.4 and δ is set to 0.6.
[0038] Content relevance score indicates the degree to which notification content matches user interests and usage habits. Using the 30 days prior to the current date as the statistical period, it tracks the historical open rate of similar notification messages, the frequency of user use of the notification source application, and user preferences for notification content categories. The content relevance score is calculated using the following formula:
[0039] in, The historical open rate of similar notification messages for users. This is a normalized value representing the frequency of a user's use of the notification source app. Calculate user preference scores for notification content categories.
[0040] Historical open rate is the ratio of the number of similar notification messages opened by a user within the statistical period to the total number of similar notification messages sent. Application usage frequency is the average number of times a user opens the application from which the notification originates per day within the statistical period, mapped to 0-1 using a min-max normalization method. Content category preference score is the ratio of the number of notifications clicked by a user in a specific content category to the total number of notifications displayed in that content category.
[0041] When the highest and lowest app usage frequencies participating in the normalization are the same, the app usage frequency normalization value is set to 0.5. When a user lacks personal history, the statistical results of a user group with the same app version and notification type are used as the initial value; when no group statistical results are available, the content relevance score is set to 0.5.
[0042] The time urgency score is determined based on the mapping relationship between notification type and maximum tolerable delay. The shorter the maximum tolerable delay for a notification type, the higher the corresponding time urgency score. In this embodiment, the time urgency score is set to 0.7 for meeting and schedule reminders, 0.4 for news notifications, 0.2 for social interaction notifications, and 0.1 for application updates and promotional notifications. The mapping relationship is stored by the notification scheduling server and can be updated according to the validity period provided by the notification source.
[0043] For example, if the non-urgent notifications to be sent include news notifications, app update notifications, and social interaction notifications, and their content relevance scores are 0.8, 0.5, and 0.7 respectively, and their time urgency scores are 0.4, 0.1, and 0.2 respectively, then their priorities are as follows: P1 = 0.4 × 0.8 + 0.6 × 0.4 = 0.56; P2 = 0.4 × 0.5 + 0.6 × 0.1 = 0.26; P3 = 0.4 × 0.7 + 0.6 × 0.2 = 0.40; Therefore, the priority of news notifications, social interaction notifications, and application update notifications decreases in that order.
[0044] S200: Obtain the user's current context data, preprocess the context data, and form the current feature vector.
[0045] After obtaining user authorization, the system acquires the user's current contextual data through the user terminal's positioning interface, activity recognition interface, wearable device interface, weather data interface, and application programming interface.
[0046] Contextual data includes location coordinates, activity status, temperature, humidity, wind speed, heart rate, steps, and user operation frequency. Location coordinates are obtained from a positioning interface; activity status is determined based on activity recognition results provided by an accelerometer, gyroscope, or terminal operating system; temperature, humidity, and wind speed are obtained from a weather data interface; heart rate and steps are obtained from a wearable device connected to the user's terminal; and user operation frequency is determined based on the number of times the user has opened, liked, commented on, and shared apps in the past hour.
[0047] Each scenario data point carries a timestamp of its collection. Using one minute as the basic time granularity, each scenario data point is mapped to its corresponding minute. For continuous numerical data with a sampling frequency higher than once per minute, the average value within the corresponding minute is taken; for data with a sampling frequency lower than once per minute, the latest value no later than the end of the corresponding minute is taken; for activity states, if multiple activity states exist within the corresponding minute, the activity state with the longest duration is taken.
[0048] Outlier handling is performed on the time-aligned scenario data. When applied to China, this embodiment marks location data outside the range of 73.6°E to 135.1°E or 3.8°N to 53.6°N as outliers, and heart rate data below 30 beats / minute or above 220 beats / minute as outliers. The outlier ranges for temperature, humidity, wind speed, and step count are determined based on the effective range of the corresponding data interface.
[0049] When the missing time for continuous numerical data does not exceed one decision period, linear interpolation is performed using valid data before and after the missing position. When the missing time exceeds one decision period, the average value of the same period over the past 7 days is used to fill the gap. When an activity status is missing, the activity status that occurred most frequently in the past hour is used to fill the gap. When the user operation frequency cannot be obtained, the user operation frequency is set to 0.
[0050] The processed numerical data is normalized to convert the activity state into numerical values, forming the current feature vector at time t: ; in, The horizontal position coordinates are... The vertical position coordinates are: This represents the activity status value. This is a temperature value. This is a humidity value. This is the wind speed value. This is the heart rate value. This represents the number of steps. Frequency of user operations.
[0051] When a user refuses to grant certain data permissions, the wearable device is offline, or the weather data interface is unavailable, the corresponding scenario features are marked as missing. If fewer than three valid scenario features are available, the user behavior model and action probability model are suspended. The rule scheduling table is queried based on the time period of the candidate sending time and the notification type, and non-urgent notification messages are scheduled to be sent during the allowed time period recorded in the rule scheduling table. Once three valid scenario features are available, model calculation resumes.
[0052] S300: Generate candidate scheduling results for each non-urgent notification message.
[0053] First, candidate sending times are generated. The system performs a notification scheduling decision every 10 minutes, using the current decision time as the starting point, defining the next 2 hours as the prediction time domain, and generating a set of candidate sending times with a time step of 5 minutes. ; The time units mentioned above are minutes.
[0054] To ensure that the temporal granularity of the historical feature vectors aligns with the time step of the candidate sending time, five consecutive minute-level feature vectors are aggregated into a single 5-minute feature vector. Continuous numerical features are represented by their average value over the past five minutes, and activity states are selected based on their longest duration within that five-minute period. A historical feature vector sequence is formed by selecting 24 consecutive 5-minute feature vectors prior to the current decision time.
[0055] The user behavior model is constructed using a Long Short-Term Memory (LSTM) network. The LTM network takes a sequence of historical feature vectors as input, includes 64 hidden layer neurons, and outputs the probability of a user being in a disturbable or undisturbed state through a Softmax output layer. The user behavior model is trained using the Adam optimizer with a learning rate of 0.001 and a maximum training epoch of 100.
[0056] The "can be disturbed" status label is generated based on the user's feedback to historical notification messages and their activity state when the messages were sent. If the user actively sets "Do Not Disturb," clears the notification directly, or is driving when the notification is sent, the corresponding historical record will be marked as "can be disturbed." If the user opens the notification within 2 minutes of it being sent, and is resting or walking when opening the notification, the corresponding historical record will be marked as "can be disturbed." If the user simply does not open the notification and there is no other evidence of their activity state, the corresponding historical record will not be directly used as a sample of "cannot be disturbed."
[0057] For each candidate transmission time within the prediction time domain, the user behavior model progressively updates the hidden state based on the historical feature vector sequence, predicting the contextual features and disturbance probability associated with each candidate transmission time. The prediction result of the previous candidate transmission time is used to generate the input for the next candidate transmission time, thus sequentially obtaining the contextual features and disturbance probability of each candidate transmission time within the prediction time domain.
[0058] For candidate sending time The user behavior model outputs the probability of being disturbed. The probability of not being disturbed is determined according to the following formula: ; in, Candidate sending time The probability of not being disturbed.
[0059] The action probability model is used to determine the probability that a user will take action after receiving a specific non-urgent notification message at a candidate sending time. The action probability model employs a logistic regression model, whose inputs include contextual features associated with the candidate sending time, notification type, content relevance score, and the user's historical open rate for the corresponding type of notification message. The output is the probability P that the user will take action. act,i (tq).
[0060] If a user clicks on a notification and stays on it for more than 3 seconds within 2 minutes of it being sent, or completes the action indicated by the notification, the corresponding historical record will be marked as a positive action sample. If a user does not perform any action or clears the notification within the observation period, the corresponding historical record will be marked as a negative action sample. If a user opens a notification but stays on it for no more than 3 seconds, the corresponding record will not be used to train the action probability model.
[0061] When new users lack individual training data, the user behavior model and action probability model are trained using group data of similar users. Once a user has accumulated 100 valid notification interaction records, the individual model is trained using these individual notification interaction records, and the individual model replaces the group model.
[0062] For each candidate sending time, the disturbance score for each scenario feature is obtained by querying the status-disturbance score mapping table based on the current state of the corresponding scenario feature. The status-disturbance score mapping table is established based on the number of disturbable and non-disturbable status tags for each scenario feature in the past 30 days. When the k-th scenario feature is in the r-th state, its disturbance score is expressed as: ; in, Let be the number of samples marked as uninterruptible when the k-th scenario feature is in the r-th state. This represents the number of samples marked as disturbable. When the number of individual samples is insufficient, a state-disturbance score mapping table is established using group samples.
[0063] For location coordinates, the location is first divided into residence, workplace, transportation area and other areas based on the user's historical location, and then disturbance score is calculated for each area. For activity status, the status is divided into rest, walking, running and driving. For temperature, humidity, wind speed, heart rate and steps, the status interval is divided according to the value range of the past 30 days. For user operation frequency, it is divided into three statuses: 0 times / hour, 1 to 10 times / hour and more than 10 times / hour.
[0064] The sum of the products of the disturbance scores of each situation feature and their corresponding weights is used to determine the situation sensitivity score: ; in, Candidate sending time Situational sensitivity score A set of scenario features with valid data. The weight of the k-th context feature. The corresponding disturbance score is assigned. Initially, all scenario features are assigned the same weight; subsequently, the weights are updated based on the comparison results of user groups. When scenario features are missing, the remaining weights are normalized using the denominator.
[0065] Determine the base disturbance cost based on the probability of not being disturbed: ; in, The basic disturbance cost is represented by α, which is a scaling factor. In this embodiment, the scaling factor is set to 10.
[0066] The base disturbance cost is adjusted based on the context sensitivity score: ; in, This is the revised cost of disruption.
[0067] The i-th non-urgent notification message is determined at the candidate sending time based on the probability of user action, the value of the notification action, and the adjusted disturbance cost. Expected utility value: ; in, The expected utility value, Let be the notification action value of the i-th non-urgent notification message. The notification action value is a dimensionless numerical value. The system establishes a notification action value mapping table, which records the relationship between notification type, notification target, and notification action value. The notification target is the user behavior indicated by the notification message. When the notification source accesses the system, it configures an initial notification action value for each notification type based on the notification target. After receiving a non-urgent notification message, it queries the notification action value mapping table based on the notification type and notification target to obtain the corresponding notification action value. In this embodiment, the notification action values for news notifications, application update notifications, and social interaction notifications are set to 12, 6, and 10, respectively. After the notification message is sent, the notification action value is updated based on the open rate, click-through rate, unsubscribe rate, and disturbance score under different parameter schemes.
[0068] Calculate the expected utility value of each candidate sending time in sequence, and determine the candidate sending time with the highest expected utility value and the corresponding maximum expected utility value as the candidate scheduling result for the corresponding non-urgent notification message: ; At the same time, the candidate scheduling result is written into the scheduling record of the notification message.
[0069] S400: Determine the notification to be scheduled based on the dynamic utility threshold.
[0070] The maximum expected utility value of notification messages sent within the 30 days prior to the current moment is calculated, and the arithmetic mean of these maximum expected utility values is determined as the user's historical average utility value. When a user lacks sufficient historical data, the average historical utility value of similar users is used.
[0071] The time decay coefficient is queried based on the notification type. In this embodiment, the time decay coefficients for news notifications, social interaction notifications, and application update notifications are set to 0.5, 0.3, and 0.1, respectively. The shorter the maximum tolerable delay for a notification type, the larger the corresponding time decay coefficient.
[0072] The dynamic utility threshold is determined according to the following formula: ; in, The dynamic utility threshold is β, which is a basic threshold parameter determined based on historical user feedback statistics. λ represents the user's historical average utility value, λ is the time decay coefficient pre-configured according to the timeliness level of the notification type, and Δt is the notification waiting time from the generation time of the notification message to the current decision time, with the unit of notification waiting time being hours. In this embodiment, the basic threshold parameter is set to 0.5.
[0073] Setting 0 as the lower limit of the dynamic utility threshold prevents the dynamic utility threshold from becoming negative as the notification wait time increases.
[0074] When the maximum expected utility value of a non-urgent notification message is greater than the dynamic utility threshold, the corresponding non-urgent notification message is identified as a notification to be scheduled, and the candidate sending time in the corresponding candidate scheduling result is determined as the optimal sending time; when the maximum expected utility value is less than or equal to the dynamic utility threshold, the corresponding non-urgent notification message is added to the waiting queue.
[0075] Non-urgent notification messages in the waiting queue will be re-executed in steps S200 to S400 at the next decision time, and the current feature vector, candidate scheduling results and dynamic utility threshold will be re-determined based on the newly acquired scenario data.
[0076] Each notification type has a maximum waiting time. In this embodiment, the maximum waiting time for non-urgent notification messages is set to 24 hours. News and information notifications also have a content expiration time; if the publication time of the news and information exceeds 6 hours, the corresponding notification content is determined to be invalid. If the notification waiting time exceeds the maximum waiting time, the notification source marks the notification content as invalid, or the user has viewed information associated with the notification content during the waiting period, the processing status of the corresponding notification message is updated to invalid, and sending is stopped.
[0077] S500: Detects whether there is a time conflict between the notifications to be scheduled, and re-determines the time of transmission if a conflict occurs.
[0078] In this embodiment, the conflict time window is set to 5 minutes. When the interval between the optimal sending times of at least two pending notifications is less than 5 minutes, it is determined that the optimal sending times of the corresponding pending notifications are within the same conflict time window.
[0079] For scheduling notifications within the same conflict time window, they are processed sequentially in descending order of priority. First, the optimal transmission time for the highest priority scheduling notification is retained. For lower priority scheduling notifications, candidate transmission times with an interval less than the conflict time window between them and the already retained optimal transmission time are excluded. The expected utility value is then recalculated among the remaining candidate transmission times, and the time with the highest expected utility value among the remaining candidate transmission times is determined as the recalculated transmission time.
[0080] When two notifications to be scheduled have the same priority, their maximum expected utility values within the conflict time window are obtained, and the notification with the larger maximum expected utility value is prioritized. When both priority and maximum expected utility value are the same, the processing order is determined by the order in which the notification messages were generated.
[0081] When three or more pending notifications fall within the same conflicting time window, their transmission times are allocated sequentially according to the above processing order. After resetting the transmission time for a pending notification, the reset transmission time is compared with all previously allocated transmission times. If the reset transmission time still conflicts with other pending notifications, the corresponding conflicting time window is excluded again, and the transmission time is reset.
[0082] After resetting the sending time for lower-priority notifications awaiting scheduling, the expected utility value associated with the reset sending time is obtained, and the dynamic utility threshold judgment is re-executed. If the expected utility value is less than or equal to the dynamic utility threshold, the corresponding notification awaiting scheduling is added to the waiting queue; if the expected utility value is greater than the dynamic utility threshold and conflicts still exist with the reset sending time, the corresponding conflicting time window is excluded again, and the sending time is reset. If conflicts still exist after three resettings of the sending time, the corresponding notification awaiting scheduling is added to the waiting queue and re-evaluated at the next decision time.
[0083] For scheduled notifications without time conflicts, their optimal sending time is directly determined as the final sending time. For scheduled notifications that have completed conflict resolution, the reserved or re-determined sending time is determined as the final sending time.
[0084] S600: Send the corresponding notification message to the user terminal according to the final determined sending time.
[0085] Before sending a notification message, a notification template is selected from the notification template library based on the user's current context data and historical preferences. The notification templates are categorized according to notification type and content style, and include fields for title, body summary, notification source, and action entry.
[0086] Based on the text length and content type of notification messages opened by users in the past 30 days, determine the user's historical preferences. Fill in the title, summary, operation prompts, and validity period provided by the notification source into the corresponding notification template, and adjust the notification text according to the current context data.
[0087] For example, if the user is currently driving, only the notification title and core message are retained, and a "view later" prompt is added; if the user is currently resting and the history indicates that the user prefers summary content, the notification text retains both the title and summary.
[0088] After the notification text is generated, format validation, field integrity validation, and privacy validation are performed. If the notification text contains location, health, or application behavior information that has not been authorized by the user, the corresponding content is deleted; if any required fields in the notification template are missing, the original notification text provided by the notification source is used.
[0089] After the notification text passes verification, it is written to the sending queue. The sending queue records the notification identifier, the final sending time, the notification text, and the sending status. When the final sending time is reached, the corresponding notification message is sent to the user terminal, and the actual sending time, sending success status, or sending failure status are recorded.
[0090] After a notification message is sent, user feedback is collected. Feedback data includes whether the user opened the notification, clicked on the notification, unsubscribed, and the user's feedback rating of the disturbance. Based on this, open rate, click-through rate, and unsubscribe rate are calculated.
[0091] Users using different parameter schemes were divided into experimental and control groups. During grouping, users with similar or identical application versions, regions, and notification types were selected and randomly assigned to groups. The test period was set to 7 days. Open rate was used as the primary evaluation metric, with click-through rate, unsubscribe rate, and disturbance rating used as secondary evaluation metrics.
[0092] When the open rate or click-through rate of the experimental group is higher than that of the control group, and the unsubscription rate and disturbance score do not increase, the parameter scheme used by the experimental group will be determined as the updated parameter scheme. The updated parameters include the weight of the context sensitivity score, the proportional coefficient of the basic disturbance cost, the value of the notification action, the conflict time window, and the basic threshold parameters and time decay coefficients of the dynamic utility threshold, as well as the content relevance weight and time urgency weight in the priority calculation. The updated parameters will take effect from the next decision point.
[0093] This embodiment illustrates the notification scheduling process using a set of calculated data. The current decision time is denoted as t0, and the non-urgent notification messages to be sent include news notifications, application update notifications, and social interaction notifications.
[0094] Based on content relevance and time urgency, the priorities of the three factors were calculated to be 0.56, 0.26, and 0.40, respectively. The user behavior model and action probability model calculated the candidate sending times for the next two hours.
[0095] For the candidate sending times associated with the corresponding maximum expected utility value, the probabilities of being disturbable for news notifications, app update notifications, and social interaction notifications are 0.75, 0.80, and 0.70, respectively, and the probabilities of users taking action are 0.60, 0.30, and 0.70, respectively. Based on the contextual characteristics of the corresponding candidate sending times, a status-disturbance score mapping table is queried, and a weighted calculation is performed, resulting in a contextual sensitivity score of 0.38.
[0096] When the base disturbance cost ratio is 10, the adjusted disturbance cost for news and information notifications is: C1′=0.38×10×(1−0.75)=0.95; The maximum expected utility of news and information notifications is: U1 = 0.60 × 12 − 0.95 = 6.25; The revised disruption cost and maximum expected utility of application update notifications are as follows: C2′=0.38×10×(1−0.80)=0.76; U2 = 0.30 × 6 − 0.76 = 1.04; The revised disruption cost and maximum expected utility of social interaction notifications are as follows: C3′=0.38×10×(1−0.70)=1.14; U3 = 0.70 × 10−1.14 = 5.86; Assuming a user's historical average utility value is 3.0, a base threshold parameter of 0.5, and a notification wait time of 0.5 hours for each of the three notification messages, the dynamic utility thresholds for news notifications, application update notifications, and social interaction notifications are as follows: ; ; ; The maximum expected utility values of news notifications and social interaction notifications both exceed the corresponding dynamic utility thresholds, so they are identified as notifications to be scheduled, and the candidate sending time t0+15 minutes from the candidate scheduling results is determined as the optimal sending time. The maximum expected utility value of application update notifications, 1.04, does not exceed the dynamic utility threshold of 1.425, so application update notifications are added to the waiting queue.
[0097] The optimal sending time for both news notifications and social interaction notifications is t0+15 minutes, and they fall within the same conflicting time window. News notifications have a higher priority (0.56) than social interaction notifications (0.40), therefore, news notifications are reserved for sending at t0+15 minutes.
[0098] After excluding candidate sending times with a time interval of less than 5 minutes from t0+15 minutes, the expected utility value of social interaction notifications at the remaining candidate sending times was recalculated, and t0+25 minutes was determined as the re-determined sending time. The expected utility value of social interaction notifications at t0+25 minutes still exceeds the corresponding dynamic utility threshold, and there is no conflict with the sending time of news and information notifications. Therefore, t0+25 minutes was determined as the final sending time for social interaction notifications.
[0099] At the next decision time t0+10 minutes, the user's current context data is retrieved again, and steps S200 to S400 are re-executed for application update notifications in the waiting queue until the application update notification is determined to be a notification to be scheduled, the maximum waiting time is reached, the notification content becomes invalid, or the user has already viewed the information associated with the notification content.
[0100] See Figure 2 As shown, this embodiment provides a system for notifying users of messages, including a message processing module, a scenario processing module, a model processing module, a notification prediction module, a threshold judgment module, a conflict resolution module, and a notification sending module.
[0101] The message processing module receives notification messages and identifies them as urgent based on the emergency flag, notification source rules, and notification content. Urgent messages and notifications whose message type cannot be determined are sent directly, while the remaining notifications are classified as non-urgent. The message processing module also prioritizes non-urgent notifications based on content relevance and time urgency.
[0102] The scenario processing module acquires location coordinates, activity status, temperature, humidity, wind speed, heart rate, steps, and user operation frequency from the user terminal. It aligns the scenario data according to timestamps, processes outliers and missing values, and forms the current feature vector. When the number of valid scenario features is less than the set number, the scenario processing module outputs the rule scheduling result based on time and notification type.
[0103] The model processing module is used to run the user behavior model and the action probability model. The user behavior model predicts the probability of being disturbed by candidate sending times based on historical feature vector sequences, and determines the probability of not being disturbed based on the probability of being disturbed; the action probability model determines the probability of the user taking action based on contextual features, notification type, content relevance, and historical open rate.
[0104] The notification prediction module generates candidate sending times, queries the notification action value mapping relationship based on the notification type and notification target, and determines the notification action value. It determines a scenario sensitivity score based on the scenario characteristics associated with the candidate sending times, determines the corrected disturbance cost based on the non-disturbing probability and the scenario sensitivity score, and determines the expected utility value based on the probability of user action, the notification action value, and the corrected disturbance cost. The notification prediction module also identifies the candidate sending time with the highest expected utility value and its corresponding maximum expected utility value as the candidate scheduling result.
[0105] The threshold determination module determines a dynamic utility threshold based on the user's historical average utility value, notification waiting time, and time decay coefficient. Non-urgent notification messages whose maximum expected utility value exceeds the dynamic utility threshold are identified as pending scheduling notifications, and the candidate sending time from the corresponding candidate scheduling results is determined as the optimal sending time. Other non-urgent notification messages are added to the waiting queue. The threshold determination module also re-executes the dynamic utility threshold determination based on the expected utility value associated with the redefined sending time, and identifies notification messages that have exceeded the maximum waiting time, whose notification content is invalid, or whose associated information has been viewed by the user, and stops sending the corresponding notification messages.
[0106] The conflict resolution module detects whether the optimal sending times of each scheduled notification fall within the same conflict time window. When a conflict exists, the module retains the optimal sending time of the notification with higher priority, excludes the corresponding conflict time window, recalculates the expected utility value of the notification with lower priority among the remaining candidate sending times, and redetermines the sending time. If a conflict still exists after the expected utility value associated with the redetermined sending time is determined by a dynamic utility threshold, the conflict resolution module repeats the conflict detection and sending time allocation process.
[0107] The notification sending module selects a notification template and generates notification text based on the user's current context data and historical preferences. It then sends the corresponding notification message to the user's terminal at the final determined sending time and records the sending status and user feedback. The model processing module, notification prediction module, threshold judgment module, and conflict resolution module update their respective parameters based on the user group comparison results.
[0108] The modules described above can be deployed on the user terminal, or separately on the user terminal and the notification scheduling server. The modules communicate with each other through notification identifiers, linking notification records, contextual data, model outputs, scheduling results, and user feedback to determine the sending time, resolve conflicts, and send non-urgent notification messages.
[0109] The embodiments described above are merely preferred embodiments of the present invention and are not intended to limit the scope of the present invention. Various modifications and improvements made to the technical solutions of the present invention by those skilled in the art without departing from the spirit of the present invention should fall within the protection scope defined by the present invention.
Claims
1. A method for notifying users of messages, characterized in that, include: S100: Obtain multiple non-urgent notification messages to be sent, and determine their priority based on the content relevance and time urgency of each non-urgent notification message; S200: Obtain the user's current context data, preprocess the context data, and form a current feature vector; S300: Utilize a user behavior model to predict the probability of a user being disturbed at each candidate sending time; determine the probability of not being disturbed based on the probability of being disturbed; utilize an action probability model to determine the probability of the user taking action; query the notification action value mapping relationship based on the notification type and notification target to determine the notification action value; determine the scenario sensitivity score based on the scenario features associated with the candidate sending time; determine the corrected disturbance cost based on the probability of not being disturbed and the scenario sensitivity score; determine the expected utility value based on the probability of the user taking action, the notification action value, and the corrected disturbance cost; and determine the candidate sending time with the highest expected utility value and the corresponding maximum expected utility value as the candidate scheduling result. S400: Determine the dynamic utility threshold based on the user's historical average utility value, notification waiting time, and time decay coefficient associated with the notification type; Non-urgent notification messages whose maximum expected utility value exceeds the dynamic utility threshold are identified as notifications to be scheduled, and the candidate sending time in the corresponding candidate scheduling results is determined as the optimal sending time. Non-urgent notification messages whose maximum expected utility value does not exceed the dynamic utility threshold are added to the waiting queue and re-evaluated at subsequent decision-making times; S500: Detect whether the optimal sending time of each scheduled notification is within the same conflict time window; if a conflict exists, retain the optimal sending time of the scheduled notification with higher priority, exclude the conflict time window, recalculate the expected utility value of the scheduled notification with lower priority in the remaining candidate sending times, and determine the remaining candidate sending time with the largest expected utility value as the re-determined sending time; re-execute the dynamic utility threshold judgment based on the expected utility value associated with the re-determined sending time, add scheduled notifications that do not exceed the dynamic utility threshold to the waiting queue, and re-execute conflict detection for scheduled notifications that exceed the dynamic utility threshold; S600: Send the corresponding notification message to the user terminal according to the final determined sending time.
2. The method for notifying users of messages according to claim 1, characterized in that, In step S100, before obtaining the non-urgent notification message, urgent messages are identified sequentially based on the emergency flag carried by the notification message, the notification source rule, and the notification content. Notification messages identified as urgent messages or whose message type cannot be determined are sent directly, while the remaining notification messages are identified as non-urgent notification messages. The content relevance is determined based on the user's historical open rate of similar notification messages, the frequency of use of the notification source application, and the preference for notification content categories. The time urgency is determined based on the mapping relationship between notification type and maximum tolerable delay.
3. The method for notifying users of messages according to claim 1, characterized in that, In step S200, the scenario data includes location coordinates, activity status, temperature, humidity, wind speed, heart rate, steps, and user operation frequency; the current feature vector includes horizontal location coordinates, vertical location coordinates, activity status value, temperature value, humidity value, wind speed value, heart rate value, steps value, and user operation frequency; the scenario data is aligned according to timestamps, and outliers and missing values are processed.
4. The method for notifying users of messages according to claim 1, characterized in that, In step S300, the user behavior model is constructed using a long short-term memory network. It takes a sequence of historical feature vectors as input and uses a disturbable status label generated based on the user's feedback to historical notification messages and the activity state when sending historical notification messages as training labels to train the long short-term memory network. The trained network outputs a disturbable probability. The action probability model determines the probability of the user taking action based on contextual features, notification type, content relevance, and the user's historical open rate for the corresponding type of notification message.
5. The method for notifying users of messages according to claim 1, characterized in that, In step S300, the notification action value mapping relationship records the notification type, notification target, and notification action value, wherein the notification target is the user behavior indicated by the notification message; The notification action value is determined by querying the notification action value mapping relationship based on the notification type and notification target of the pending notification message; the corresponding disturbance score is determined based on the current state of each scenario feature, and the sum of the products of each disturbance score and its corresponding weight is determined as the scenario sensitivity score; the product of the proportional coefficient and the probability of not being disturbed is determined as the basic disturbance cost, and the product of the basic disturbance cost and the scenario sensitivity score is determined as the corrected disturbance cost; the expected utility value is obtained by subtracting the corrected disturbance cost from the product of the probability of the user taking action and the notification action value.
6. The method for notifying users of messages according to claim 1, characterized in that, In step S400, the dynamic utility threshold is determined according to the following relationship: ; in, The dynamic utility threshold is t, where t is the current decision time. Based on the basic threshold parameter, This represents the user's historical average utility value. The time decay factor associated with the notification type. To notify of the waiting time; When the notification waiting time exceeds the maximum waiting time, the notification content becomes invalid, or the user has already viewed information associated with the notification content, the sending of the corresponding non-urgent notification message will be stopped.
7. The method for notifying users of messages according to claim 1, characterized in that, In step S500, at least two pending notifications with an interval between their optimal sending times that is less than the conflict time window are identified as conflicting pending notifications. They are processed sequentially in descending order of priority. When priorities are the same, the processing order is determined based on the maximum expected utility value within the conflict time window. Candidate sending times that conflict with the already determined sending time are excluded, and the expected utility values of the remaining candidate sending times are recalculated. The remaining candidate sending time with the largest expected utility value is determined as the re-determined sending time. If the expected utility value associated with the re-determined sending time does not exceed the dynamic utility threshold, the corresponding pending notification is added to the waiting queue. If it exceeds the dynamic utility threshold, conflict detection is performed again. If a conflict still exists after a set number of processing steps, the corresponding pending notification is added to the waiting queue.
8. The method for notifying users of messages according to claim 1, characterized in that, Before step S600, a notification template is selected from the notification template library based on the user's current context data and historical preferences, and the notification template is filled with the user's historical behavior data and current context data to generate the notification text to be sent.
9. The method for notifying users of messages according to claim 1, characterized in that, After step S600, the open rate, click rate, unsubscribe rate and disturbance score of the sent notification messages are collected. By comparing user groups using different parameter schemes, the weight of the context sensitivity score, the proportional coefficient of the basic disturbance cost, the value of the notification action, the conflict time window, and the basic threshold parameters of the dynamic utility threshold, as well as the calculation parameters of the time decay coefficient and priority, are updated according to the comparison results.
10. A system for notifying users of messages, characterized in that, include: The message processing module is used to acquire notification messages to be sent, identify urgent messages, and determine the priority of each non-urgent notification message. The context processing module is used to acquire the user's current context data, preprocess the context data, and form a current feature vector; The model processing module is used to predict the probability of disturbance using a user behavior model and to determine the probability of a user taking action using an action probability model. The notification prediction module is used to query the notification action value mapping relationship according to the notification type and notification target, determine the notification action value, determine the expected utility value of each candidate sending time according to the disturbance probability, the probability of user taking action, the context sensitivity score and the notification action value, and form a candidate scheduling result including the candidate sending time with the largest expected utility value and the corresponding candidate scheduling result with the largest expected utility value. The threshold judgment module is used to determine non-urgent notification messages as pending notifications based on the dynamic utility threshold and determine the candidate sending time in the candidate scheduling result as the optimal sending time, or to add non-urgent notification messages to the waiting queue, and to re-execute the dynamic utility threshold judgment based on the expected utility value associated with the re-determined sending time. The conflict resolution module is used to detect whether the optimal sending time of each notification to be scheduled is within the same conflict time window, and when a conflict exists, to re-determine the sending time and the corresponding expected utility value according to the priority. The notification sending module is used to send corresponding notification messages to the user terminal according to the finally determined sending time.