Information pushing method, computer equipment and computer program product
By determining account activity and information characteristics in information push and dynamically adjusting information priority, the problem of lack of personalization in existing information push technology is solved, and the reach and response rate of information are improved.
Patent Information
- Application Number
- CN202511303373.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-09-11
- Publication Date
- 2025-11-28
AI Technical Summary
Existing information push methods lack personalization, resulting in poor information push effectiveness and difficulty in meeting users' diverse needs.
By determining the account's activity level at different times and combining it with the characteristics of the information to be pushed, the information priority can be dynamically determined to achieve targeted information push.
It improves the reach and response rate of information, meets users' personalized needs, and avoids the problem of information not meeting user needs caused by general and fixed push methods.
Smart Images

Figure CN121037337A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of Internet technology, and in particular to an information push method, computer equipment, and computer program product. Background Technology
[0002] Currently, most applications (Apps) installed and running on devices have push notification capabilities. For example, e-commerce apps push promotional and advertising information, weather apps push weather updates, and chat apps push real-time information. However, current push notification methods are mostly simple and fixed, failing to consider individual user differences, resulting in poor push notification effectiveness. Summary of the Invention
[0003] This application provides an information push method, a computer device, and a computer program product. The technical solution is as follows:
[0004] On the one hand, embodiments of this application provide an information push method, the method comprising:
[0005] Determine the account activity level of the first account in each of the n time periods, where the account activity level is used to characterize the degree of attention the first account pays to the pushed information, and n is a positive integer;
[0006] Based on the account activity and the information characteristics of the information to be pushed, the information priority of the information to be pushed corresponding to the first account is determined, and the information priority is used to characterize the push order of the information to be pushed.
[0007] Based on the information priority, the information to be pushed is sent to the first account.
[0008] On the other hand, embodiments of this application provide an information push device, the device comprising:
[0009] An activity determination module is used to determine the account activity of the first account in each of the n time periods. The account activity is used to characterize the degree of attention the first account pays to the pushed information, where n is a positive integer.
[0010] The priority determination module is used to determine the information priority of the information to be pushed to the first account based on the account activity and the information characteristics of the information to be pushed. The information priority is used to characterize the push order of the information to be pushed.
[0011] The information push module is used to push the information to be pushed to the first account based on the information priority.
[0012] On the other hand, embodiments of this application provide a computer device, the computer device including a processor and a memory, the memory storing at least one computer instruction, the at least one computer instruction being loaded and executed by the processor to implement the information push method as described above.
[0013] On the other hand, embodiments of this application provide a computer-readable storage medium storing at least one computer instruction, which is executed by a processor to implement the information push method as described above.
[0014] On the other hand, embodiments of this application provide a computer program product, which includes computer instructions, and when a processor executes the computer instructions, it implements the information push method as described above.
[0015] In this embodiment, when pushing information to an account, the computer device can determine the account's activity level in each of n time periods. Based on the account activity level and the information characteristics of the information to be pushed, the computer device can determine the information priority of the information to be pushed to the account, where n is a positive integer, account activity level represents the account's level of attention to the pushed information, and information priority represents the order in which the information to be pushed is pushed. Then, the computer device can push the information to be pushed to the account based on the determined information priority. In this way, by combining the account's level of attention to the pushed information in different time periods, the computer device can dynamically determine the information that should be pushed to the account first, so that the pushed information can be effectively reached, improving the information reach rate and user response rate, and ensuring the information push effect. This avoids the situation where the same information is pushed to all accounts, which makes it difficult to meet the personalized needs of users, when using a general and fixed push method. Attached Figure Description
[0016] Figure 1 A schematic diagram of the system architecture shown in an exemplary embodiment of this application is illustrated.
[0017] Figure 2 A flowchart illustrating an exemplary embodiment of the information push method provided in this application is shown;
[0018] Figure 3 The flowchart illustrates a method for determining the account activity of a first account in each of n time periods within an exemplary embodiment of this application.
[0019] Figure 4 This invention illustrates a flowchart of a method for determining the information priority of information to be pushed to a first account in an exemplary embodiment of the present application.
[0020] Figure 5 A flowchart illustrating the determination of the maximum number of messages a first account can receive is shown in an exemplary embodiment of this application.
[0021] Figure 6 This is a schematic diagram illustrating the cache structure between a time period and an account set, as shown in an exemplary embodiment of this application.
[0022] Figure 7 This is a schematic diagram illustrating the caching structure between account and information priority, as shown in an exemplary embodiment of this application.
[0023] Figure 8 A system flowchart of an information push system provided in an exemplary embodiment of this application is shown;
[0024] Figure 9 This is a flowchart illustrating an exemplary embodiment of the present application, showing the process of determining the account to be pushed and the corresponding information to be pushed to the account;
[0025] Figure 10 This is a flowchart illustrating the information push scheduling process in an exemplary embodiment of this application;
[0026] Figure 11 This invention provides a structural block diagram of an information push device according to an exemplary embodiment of the present application.
[0027] Figure 12 A schematic diagram of the structure of a computer device provided in an exemplary embodiment of this application is shown. Detailed Implementation
[0028] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.
[0029] In this article, "multiple" refers to two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone. The character " / " generally indicates that the preceding and following related objects have an "or" relationship.
[0030] With the rapid development of internet technology, all kinds of information are transmitted to information recipients through various channels. The widespread use of smartphones, tablets, and other devices has made information reception even simpler and easier. Among these, push notifications, as an important means of information delivery, are widely used by major app developers. However, existing push notification technologies largely rely on fixed rules or simple statistical modeling, making it difficult to meet users' personalized needs and resulting in low user interaction rates. At the same time, with the growth of user data, balancing the efficiency and accuracy of push notifications faces significant challenges.
[0031] To address the aforementioned issues, this application provides an information push method that can determine the account activity level of an account at different time periods. Based on the account activity level and the information characteristics of the information to be pushed, the method can determine the information priority of the information to be pushed to that account, and then push the corresponding information to that account based on this information priority. Account activity level represents the account's level of attention to the pushed information, and information priority represents the order in which the information to be pushed. By combining the account's level of attention to the pushed information within different time periods, the method can dynamically determine the information that should be pushed to that account first, ensuring that the pushed information is received or responded to by the account's users as much as possible, improving the information reach and response rate, and guaranteeing the effectiveness of the information push. Furthermore, since each account has its own information priority, and this priority is determined based on the account's level of attention to the pushed information, targeted information pushes can be implemented for different accounts. The pushed information can meet the personalized needs of users, avoiding the situation where the same information is pushed to all accounts, which leads to unmet user needs, when using a general and fixed push method.
[0032] Please refer to Figure 1 This illustration shows a schematic diagram of a system architecture illustrated in an exemplary embodiment of this application. The system architecture includes a terminal 110 and a server 120.
[0033] Terminal 110 can be various electronic devices with a display screen, including but not limited to smartphones, tablets, personal computers (PCs), smart wearable devices, etc. Figure 1 The example given is a smartphone, Terminal 110, but this does not constitute a limitation.
[0034] Server 120 can be a standalone physical server, a server cluster or distributed system consisting of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, content delivery networks (CDN), and big data and artificial intelligence platforms. There are no restrictions here. Figure 1 The example given is server 120 as a server cluster, but this does not constitute a limitation.
[0035] In some embodiments, terminal 110 and server 120 can establish a communication connection via a wireless network or a wired network, and information can be sent or received through this communication connection. The wireless network or wired network can use standard communication technologies and / or protocols. The network is typically the Internet, but can also be any other network, including but not limited to a Local Area Network (LAN), a Metropolitan Area Network (MAN), and a Wide Area Network (WAN).
[0036] In some embodiments, terminal 110 may have client software such as an application installed. This application may be a standalone application or a subroutine within an application. Optionally, the application may have push notification permissions, meaning it is allowed to send push notifications to terminal 110 for the user to view. This application may include, but is not limited to, shopping applications, social applications, news applications, music applications, and lifestyle service applications. It may be a system application or a third-party application; no limitation is made here.
[0037] In some embodiments, server 120 may be a backend server for an application in terminal 110, and may provide backend services such as information push services for the application.
[0038] Optionally, users of terminal 110 can log in to the aforementioned applications using pre-registered accounts to utilize the respective functions provided by the applications. Server 120 can send push notifications corresponding to the currently logged-in account to terminal 110. Upon receiving the push notifications, terminal 110 can display them via a notification bar or other means for user viewing. The push notifications can be advertisements or notifications; no specific limitation is made here.
[0039] The information push method provided in this application embodiment can be executed by a computer device, which refers to a device with data computing, processing, and storage capabilities. Figure 1 Taking the system architecture shown as an example, the computer device can refer to server 120, that is, server 120 can execute the information push method of this application.
[0040] For ease of explanation, the following embodiments use a server as the execution subject for illustration.
[0041] Please refer to Figure 2 The diagram illustrates a flowchart of an exemplary embodiment of an information push method provided in this application. The method may include the following steps:
[0042] Step 201: Determine the account activity level of the first account in each of the n time periods. The account activity level is used to represent the degree of attention the first account pays to the pushed information, where n is a positive integer.
[0043] In this embodiment of the application, the server can push information to at least one account, and when pushing information to different accounts, the pushed information may be the same or different, and the number of pushed information may be the same or different. The aforementioned first account can refer to any one of the at least one accounts.
[0044] Optionally, the aforementioned n time periods can be determined according to a preset time period division method. This method can be reasonably set according to the specific application scenario and is not limited here. For example, a day can be divided into n time periods. Another example is dividing a week into n time periods. The duration of each time period can be the same or different.
[0045] As an example, n is 12, and the duration of each time slot is the same, one hour. The above n time slots can be used to divide the daytime into the following 12 time slots: 8:00–9:00, 9:00–10:00, 10:00–11:00, 11:00–12:00, 12:00–13:00, 13:00–14:00, 14:00–15:00, 15:00–16:00, 16:00–17:00, 17:00–18:00, 18:00–19:00, and 19:00–20:00.
[0046] In some embodiments, the actions of a user using the first account, such as opening, closing, complaining about, and unsubscribing from push notifications, can reflect the user's level of attention to the push notifications. Therefore, the server can determine the account activity level of the first account in each of the n time periods based on the user's historical actions.
[0047] Optionally, the server can use a deep learning model to model the historical operation behavior of the first account, so as to predict the account activity of the first account in each of the n time periods.
[0048] Alternatively, the server can also use a deep learning model to uniformly model the historical operation behavior of multiple accounts, so as to predict the account activity of each account in each time period within n time periods.
[0049] Optionally, the aforementioned deep learning model can be a multi-class classification model. For example, a deep learning model (AFactorization-Machine based Neural Network, DeepFM) can be used, which has the following advantages when dealing with multi-class classification problems: it can automatically learn feature interactions, avoiding complex manual feature engineering; the model integrates deep learning and factorization machines, taking into account both nonlinear and linear features; and it efficiently processes sparse data, improving prediction accuracy. The type of deep learning model is not limited here.
[0050] In one possible implementation, the duration of each time period is 1 hour. The learning objective of the deep learning model can be to predict the probability of each account clicking on the push notification within each hour, meaning the model can output prediction values in hourly increments. When the server uses this deep learning model to predict the first account, the predicted probability of the first account clicking on the push notification within each hour can be used as the account activity level of the first account in each of the n time periods.
[0051] Optionally, when the aforementioned deep learning model models the historical operational behavior corresponding to the first account, it can be based on the multi-dimensional features of the first account. These multi-dimensional features may include, but are not limited to, at least one of the following: time features, user features, application features, device features, etc.
[0052] Among them, time features can refer to time-related features, including hours, days of the week, months, etc., as well as the click probability of push information for each time period obtained statistically.
[0053] User characteristics can refer to features related to the user using the first account, including basic natural attributes such as gender, age, and occupation, as well as the probability of clicking on push notifications to the user in recent times.
[0054] Application features can refer to features related to an application, including statistics on the arrival, exposure, and clicks of push notifications for each application in the past.
[0055] Equipment characteristics can refer to the usage of the equipment, including the number of times it is started each day and the duration of use, as statistically obtained.
[0056] As a way, such as Figure 3 As shown, when the server needs to push information to the first account, it can use a deep learning model to predict the corresponding time characteristics of the first account based on the user characteristics, application characteristics, and device characteristics of the first account. That is, it can predict the probability of the first account clicking on the pushed information in each time period, which is used as the account activity of the first account in each time period.
[0057] Optionally, the time periods can be sorted in descending order of the probability of clicking on the pushed information. This will reveal the time periods with higher account activity.
[0058] For example, when the first account corresponds to n time periods, including the first time period, the second time period, and the third time period, the server can obtain the following through a deep learning model: Figure 3 The time period sorting results shown indicate that the account activity level in the first time period is higher than that in the second time period, and the account activity level in the second time period is higher than that in the third time period.
[0059] In some embodiments, the deep learning model described above can be obtained by training a neural network using at least two sets of sample data. Optionally, each set of sample data in the at least two sets of sample data may include input samples and output samples. The input samples may include user characteristics, application characteristics, and device characteristics of the sample account, and the output samples may include the time characteristics of the sample account, i.e., the probability of clicking on push notifications within a certain time period.
[0060] Optionally, after segmenting the daytime by hour, the time when the user pulls down the notification bar for the first account can be mapped to each time period to obtain the top 3 time periods with the most notification pulls. These top 3 time periods are then randomly sampled as positive samples to train the deep learning model. The proportion of samples from each time period relative to the total positive samples can be kept consistent. Similarly, other time periods not in the top 3 are obtained and randomly sampled as negative samples to train the deep learning model. Again, the proportion of samples from each time period relative to the total negative samples can be kept consistent.
[0061] Optionally, when evaluating the model, since the Area Under the Curve (AUC) reflects overall performance and is not suitable for the case of a single account in this application, the Group Area Under the Curve (GAUC) metric can be used to evaluate the aforementioned deep learning model. The formula for calculating GAUC is as follows:
[0062]
[0063] Where, ω gi For the weight corresponding to the i-th account, AUG gi Let be the AUC evaluation metric for the i-th account.
[0064] Understandably, GAUC (Area Under the Curve) helps differentiate between group and overall performance, ensuring that the predicted click-through rate (pCTR) for each account across different time periods is ordered. The evaluation metric (Area Under the Curve, AUC) reflects overall performance.
[0065] Optionally, the deep learning model described above can output the click probability of the push information in each of the n time periods, or it can output only the click probability of the push information in the top 3 time periods.
[0066] Step 202: Based on account activity and the information characteristics of the information to be pushed, determine the information priority of the information to be pushed for the first account. The information priority is used to represent the order in which the information to be pushed is pushed.
[0067] In some embodiments, after obtaining the account activity level of the first account in various time periods, the server can first determine at least one piece of information to be pushed to the first account. Then, based on the account activity level, the at least one piece of information to be pushed to the first account is prioritized to obtain the information priority of the at least one piece of information to be pushed.
[0068] The information to be pushed can refer to information that the server needs to push to the account but has not yet done so.
[0069] Optionally, the information to be pushed can be information disseminated through various media channels (including text, images, audio, video, etc.). This information can include news reports, social media posts, advertisements, coupons, notification messages, etc. There are no limitations here.
[0070] Optionally, the server can determine the information priority of each message to be pushed based on account activity and the information characteristics of each message. Messages with higher priority will be pushed first.
[0071] Optionally, information characteristics can refer to key factors in the information to be pushed that can affect the effectiveness of the push. For example, content relevance can assess whether users are interested in the information to be pushed; the higher the relevance, the higher the priority of the push. Another example is timeliness, which can assess the time urgency of the information to be pushed; the more urgent the time, the higher the priority of the push. Yet another example is content quality, whether the content of the information to be pushed is of high quality, attractive, and valuable; high-quality content is more likely to be pushed first. Yet another example is media source, whether the source of the information to be pushed is reliable, authoritative, and professional; a reliable source can increase the priority of the push. The information characteristics are not limited here.
[0072] Optionally, since differences in account activity across different time periods reflect varying degrees of user attention to pushed information within those periods, this can be used to assess whether the push time coincides with a time when users are most interested in the information. If so, it indicates that the pushed information is more likely to be accepted or responded to by users, thus giving it a higher priority.
[0073] By comprehensively considering account activity and the characteristics of the information to be pushed, the information priority of the information to be pushed can be accurately determined for users. This allows the information that has the best push effect for users to be pushed first, improving the reach and response rate of information and ensuring the effectiveness of information push.
[0074] Step 203: Based on information priority, push the information to be pushed to the first account.
[0075] In some embodiments, after determining the information priority of at least one piece of information to be pushed to the first account, the server may push the information to be pushed to the first account according to the information priority of the at least one piece of information to be pushed.
[0076] Optionally, the server may push at least one message to be pushed to the first account in order of information priority.
[0077] In one possible implementation, the information to be pushed to the first account may include first information and second information. The information priority of the first information is first priority, and the information priority of the second information is second priority. If the first priority is higher than the second priority, the server may push the first information to the first account first.
[0078] Optionally, when there are a large number of messages to be pushed, the server can push a portion of the messages to the first account according to their priority, rather than all of them. This portion of the messages can be high-priority messages; for example, only the top k messages (Top-K) with the highest priority can be pushed. K can be set appropriately according to the specific application scenario, for example, K=3.
[0079] In some embodiments, the information to be pushed by the server to the first account can be refreshed in real time. Therefore, the information priority of the information to be pushed to the first account, determined by the server based on account activity and the information characteristics of the information to be pushed, is also dynamically refreshed. Thus, the server can push information to be pushed to the first account based on dynamically adjusted information priorities, ensuring that each piece of information with the best push effect is pushed first.
[0080] Optionally, to avoid pushing too much information to users, the server can determine and push the high-priority information in real time, so that only the information with better push effect is pushed to the first account.
[0081] In summary, this application provides an information push method that can determine the account activity level of an account at different time periods and, based on the account activity level and the information characteristics of the information to be pushed, determine the information priority of the information to be pushed to that account. Based on this information priority, the corresponding information to be pushed to that account is then pushed accordingly. Account activity level represents the account's level of attention to the pushed information, and information priority represents the order in which the information to be pushed is pushed. By combining the account's level of attention to the pushed information within different time periods, the information prioritized for that account can be dynamically determined, ensuring that the pushed information is received or responded to by the account's users as much as possible, improving the information reach and response rate, and guaranteeing the effectiveness of the information push. Furthermore, since each account has its own information priority, and this priority is determined based on the account's level of attention to the pushed information, targeted information pushes can be implemented for different accounts. The pushed information can meet the personalized needs of users, avoiding the situation where the same information is pushed to all accounts, resulting in unmet user needs, as is often the case with universal, fixed push methods.
[0082] Regarding the quantification method of information priority, in one possible implementation, the server can assign corresponding weights to account activity and information characteristics of the information to be pushed, so as to quantify the information priority of the information to be pushed through weighted calculation.
[0083] Optionally, the information features of the information to be pushed include features in at least one dimension. The server can determine the account activity level and the weights corresponding to each of the at least one dimension of features. Based on the weights, account activity level, and at least one dimension of features of the information to be pushed, a weighted sum is performed to obtain a priority score for the information to be pushed. Based on the priority score, the information priority of the information to be pushed can be determined. Optionally, the higher the priority score, the higher the information priority of the information to be pushed.
[0084] Optionally, after calculating the priority score of the information to be pushed, the server can sort all the information to be pushed corresponding to the first account in descending order of priority score, with the information ranked higher having a higher priority.
[0085] In one possible implementation, the information characteristics of the information to be pushed may include, but are not limited to, at least one of timeliness characteristics, revenue characteristics, and account association characteristics. The timeliness characteristic is used to characterize the timeliness of the information to be pushed, the revenue characteristic is used to characterize the revenue generated from pushing the information to be pushed, and the account association characteristic is used to characterize the degree of association between the information to be pushed and the first account.
[0086] Optionally, the timeliness characteristic can be a timeliness decay factor for the information to be pushed, which reflects the urgency and importance of the information. It is understood that the urgency and importance of the information to be pushed can decrease over time. As an example, the formula for calculating this timeliness characteristic can be: T(m) = 1 / (1 + k·Δt), where m is the information to be pushed, t is the push time of the information, and k is the business sensitivity coefficient of the information.
[0087] Optionally, the revenue characteristic can refer to the bidding factor of the information to be pushed, which can be used to calculate the revenue of the information to be pushed based on a certain bidding mechanism. For example, revenue characteristic = advertiser bid for the information to be pushed * quality score of the information to be pushed. Optionally, the revenue characteristic can be calculated using the advertising revenue (Effective Cost Per Mille, ECPM) that can be obtained per thousand impressions.
[0088] Optionally, account association features can refer to the degree of matching between the information to be pushed and the first account. The server can determine account association features based on semantic analysis using Natural Language Processing (NLP) and the click-through rate (CTR) of the push information by users using the first account in history.
[0089] Optionally, the server can determine the content characteristics that users are interested in based on the click-through rate (CTR) of push notifications from users using the first account. By matching these characteristics with the content characteristics of the information to be pushed, the server can determine the degree of match between the information to be pushed and the first account. It can be understood that a higher degree of match indicates that the user using the first account is more interested in the information to be pushed.
[0090] In some embodiments, such as Figure 4 As shown, the server can comprehensively determine the information priority of each message to be pushed to the first account based on the account activity level of the first account, as well as the timeliness, revenue characteristics, and account association characteristics of each message to be pushed. This allows the server to obtain the priority queue of messages to be pushed to the first account.
[0091] For example, when the information to be pushed to the first account includes first information, second information, and third information, the server can obtain the following: Figure 4 The priority queue shown has a priority that is higher than that of the second information, and the priority of the second information is higher than that of the third information.
[0092] In this way, the server can combine account activity, the timeliness of the information to be pushed, business revenue, and user preference matching to build an adaptive priority ranking model, and prioritize the information to be pushed to each account, thereby optimizing the information push effect.
[0093] In one possible implementation, when determining information priorities, the server can introduce a dynamic weight adjustment mechanism to dynamically adjust the weight allocation based on system load.
[0094] Optionally, the server can determine the weights of account activity and at least one feature dimension based on system load. System load includes at least one of the following: system resource utilization, system response latency, and backlog of messages to be pushed.
[0095] Optionally, system resource utilization can refer to the real-time node utilization of the server, i.e., the utilization of the Central Processing Unit (CPU). System response latency can refer to the 99th percentile latency of cache read / write, meaning that 99% of cache read / write requests are completed within a specified time, and only 1% of requests may exceed this time. The backlog of information to be pushed can refer to the backlog quantity of information to be pushed, the backlog time, etc.
[0096] Optionally, the server can assign corresponding weights to the system's resource utilization, system response latency, and the backlog of information to be pushed, so as to quantify the system load through weighted calculation.
[0097] As an example, the formula for quantifying system load can be:
[0098] Load_score=w1*CPU_usage+w2*(Redis_p99 / 10ms)+w3*
[0099] (Msg_queue_len / 10000)
[0100] Among them, Load_score is the quantitative value of system load, CPU_usage is the node utilization rate, Redis_p99 is the 99th percentile latency of cache read and write, Msg_queue_len is the backlog of messages to be pushed, and the weights w1 to w3 can be reasonably set according to the business scenario.
[0101] Optionally, when the system is under low load, the server can prioritize account activity when allocating weights, adjusting the weight corresponding to account activity to a higher value, thus accelerating the delivery of push notifications within the time period that users are most interested in. When the system is under normal load, the server can distribute weights evenly. And when the system is under high load, the server can prioritize the timeliness of push notifications when allocating weights, adjusting the weight corresponding to timeliness features to a higher value, in order to accelerate the cleanup of expired push notifications.
[0102] In one possible implementation, the server can determine a first weight α corresponding to account activity, a second weight β corresponding to timeliness, a third weight 0.3 corresponding to revenue, and a fourth weight δ corresponding to account association based on system load. Specifically, when the system load is low, the server can assign the first weight α as the highest weight. When the system load is high, the server can assign the second weight β as the highest weight. Thus, the server can dynamically shift the weights according to changes in system load.
[0103] Optionally, low load can refer to Load_score < first load threshold, normal load can refer to first load threshold ≤ Load_score < second load threshold, and high load can refer to Load_score ≥ second load threshold. The first and second load thresholds can be set appropriately according to the specific application scenario; for example, the first load threshold can be 0.3, and the second load threshold can be 0.7.
[0104] In one possible implementation, the weight allocation corresponding to different system load conditions can be pre-set or automatically generated. No limitation is made here.
[0105] Optionally, the server may pre-store the correspondence between system load and weight allocation, so that the server can determine the current weight allocation corresponding to the current system load based on the correspondence, and determine the weights corresponding to account activity and at least one dimension of features based on the current weight allocation.
[0106] For example, relevant personnel can pre-set the correspondence between system load and weight allocation using the following code:
[0107]
[0108] It's understandable that when load_score < 0.3, the current system load is low, and the weight α corresponding to account activity is set to the highest. When 0.3 ≤ load_score < 0.7, the current system load is normal, and the weights are evenly distributed. For other cases where Load_score ≥ 0.7, the current system load is high, and the weight β corresponding to the timeliness feature is set to the highest.
[0109] In this way, the server can dynamically adjust the weight allocation strategy according to different system load conditions, and then dynamically adjust the evaluation focus of information priority, so as to achieve optimal push while maintaining system stability and ensure a balance between information push efficiency and information push accuracy.
[0110] Regarding the method for determining information priority, in one possible implementation, the server can determine the information priority of the information to be pushed to the first account in each time period based on the account activity level and the information characteristics of the information to be pushed. Then, from the information priorities of each time period, the highest information priority is selected as the information priority of the information to be pushed to the first account.
[0111] Optionally, the server can determine the information priority of the message to be pushed within each of the n time periods based on the account activity level in each of the n time periods. That is, for each message to be pushed, the server will determine n information priorities that correspond one-to-one with the n time periods. The server can then select the highest information priority from the n information priorities as the information priority for the message to be pushed to the first account.
[0112] Optionally, the server may also determine the priority of the information to be pushed only within m active time periods. These m active time periods can be any of the n time periods where account activity is relatively high. m is a positive integer.
[0113] In one possible implementation, the server can determine m active time periods for the first account from n time periods based on account activity levels across different time periods. Then, based on the account activity levels within each of these m active time periods and the information characteristics of the information to be pushed, the server can determine the information priority of the information to be pushed to the first account within each active time period. That is, for each piece of information to be pushed, the server will determine m information priorities that correspond one-to-one with the m active time periods. The server can then select the highest information priority from these m priorities as the information priority of the information to be pushed to the first account.
[0114] Optionally, the server can sort the n time periods according to the account activity in descending order, and determine the top m (TOP-m) time periods with the highest account activity as the m active time periods.
[0115] As an example, if m is 3, and the information to be pushed to the first account includes the first information, such as... Figure 3 As shown, the top three time periods with the highest account activity for the first account are the first time period, the second time period, and the third time period. Based on the account activity levels in each of these three time periods, and the information characteristics of the first information, the server can determine the information priority score for the first information as follows: 80 points in the first time period, 90 points in the second time period, and 70 points in the third time period. The server can then select the highest information priority score, i.e., the second time period score of 90 points, as the information priority for the first information.
[0116] It's understandable that since the first piece of information has the highest priority score in the second time period, it means that pushing the first piece of information to users with the first account during the second time period will have the best push effect. Therefore, the time period corresponding to the highest information priority, i.e., the second time period, can be used as the push time period for the first piece of information. In this way, when the server obtains the information priority of the information to be pushed, it can also obtain the corresponding push time period for that information.
[0117] Optionally, the priority queue of the information to be pushed to the first account generated by the server may include the information priority of the information to be pushed and the corresponding push time period.
[0118] As an example, when the information to be pushed to the first account includes first information, second information, and third information, the server can obtain the following: Figure 4The priority queue shown not only includes the priority order of the first, second, and third information, but also the push time period with the best push effect for each of the first, second, and third information. That is, the push time period corresponding to the first information is the second time period, the push time period corresponding to the second information is the first time period, and the push time period corresponding to the third information is the third time period.
[0119] Optionally, if the information to be pushed is pre-configured with a delivery time strategy, the server can determine at least one time period matching the delivery time strategy from n time periods. This allows the server to determine the information priority of the information to be pushed for each time period based on the account activity level within that at least one time period, and select the highest information priority as the information priority of the information to be pushed for the first account. The delivery time strategy may include a delivery start time and / or a delivery end time.
[0120] For example, if the information to be pushed is pre-configured to be delivered between 9:00 and 15:00, the server can determine the information priority of the information to be pushed in each time period between 9:00 and 15:00 based on the account activity of the first account in each time period between 9:00 and 15:00, and select the highest information priority as the information priority of the information to be pushed to the first account.
[0121] In one possible implementation, after obtaining the information priority of the information to be pushed to the first account, the server can push the information to be pushed to the first account within the time period corresponding to the information priority, based on the order of information priority.
[0122] As an example, such as Figure 4 As shown, since the first message has the highest information priority among the multiple messages to be pushed to the first account, the server can push the first message first and push the first message to the first account in the second time period.
[0123] In this way, by combining account activity and the information characteristics of the information to be pushed, the server can accurately locate the information to be pushed with the best push effect and the corresponding push time period, so as to deliver information that users are interested in during the time period when users can accept or respond, significantly improving user interaction rate and delivery conversion rate.
[0124] In some embodiments, combining the above-described methods for determining information priority and quantifying priority, this application provides a priority quantification formula:
[0125] Priority score P=α·A(u,t)+β·T(m)+γ·B(m)+δ·C(u,m)
[0126] Where A(u,t) is used to characterize the account activity of account u in time period t (0-1 normalization), T(m) is used to characterize the timeliness feature of the information to be pushed m, B(m) is used to characterize the revenue feature of the information to be pushed m, and C(u,m) is used to characterize the account association feature between the information to be pushed m and account u.
[0127] Optionally, the server can adjust the weights α, β, γ, and δ in real time according to the system load. For specific weight adjustment methods, please refer to the foregoing embodiments.
[0128] It is understandable that when the server inputs the account activity level of the first account in each of the n time periods and the information characteristics of the information to be pushed into the above formula, it can obtain the priority score P of each of the n time periods. The server can select the priority score with the highest score and the corresponding time period t as the priority score P and push time period t of the information to be pushed.
[0129] Optionally, the server can also input only the account activity level of the first account in each of the m active time periods and the information characteristics of the information to be pushed into the above formula, so as to obtain the priority score P of each active time period in the m active time periods. Then the server can select the priority score with the highest score and the corresponding active time period t as the priority score P and push time period t of the information to be pushed.
[0130] Optionally, after obtaining the priority score P of each message to be pushed to the first account, the server can sort the messages to be pushed to the first account in descending order of priority score P, thus obtaining a message priority queue for the messages to be pushed to the first account. The message priority queue can then be used to push information to the first account. This message priority queue can be understood as a set of messages to be pushed that are dynamically sorted according to priority score P.
[0131] Thus, by using the priority quantification formula described above, the information priority of each account's corresponding push information can be accurately assessed, so as to deliver information that users are interested in as much as possible during the time period when each user can accept or respond, thereby significantly improving user interaction rate and delivery conversion rate.
[0132] Regarding the information push method for the first account, in one possible implementation, the server can push information to be pushed to the first account based on information priority, even if the number of information received by the first account has not reached the upper limit of the number of information received by the first account.
[0133] It's understandable that pushing too many messages to the primary account can lead to information fatigue among users, resulting in low user interaction rates. Therefore, the server can set a limit on the number of messages the primary account can receive. Messages will only be pushed to the primary account in real-time as long as the number of messages received by the primary account does not exceed this limit.
[0134] Optionally, the number of information received by the first account can refer to the number of information received per unit of time, such as the number of information received in a day or the number of information received in an hour.
[0135] In one possible implementation, the server can dynamically determine the maximum number of messages a first account can receive based on the account's behavioral data. This behavioral data characterizes the first account's operational behavior in historical message push scenarios.
[0136] Optionally, behavioral data may include negative feedback behavior data of users using the first account to push information, session operation behavior of users when logging into the first account, and user blocking behavior of other information push channels.
[0137] It is understandable that user negative feedback behavior data regarding push notifications can include at least one dimension of data, such as the daily average message closure rate and the negative feedback rate. Specifically, the daily average message closure rate = number of messages closed in the past 30 days / total number of messages received. The negative feedback rate = number of messages with negative feedback behavior / total number of messages received. Negative feedback behavior can include, but is not limited to, actions such as clicking "not interested," filing a complaint, or unsubscribing.
[0138] The session actions a user takes when logging into their first account can be used to characterize the activity level of the current login session. This can be expressed as the number of actions performed / duration of the session after login.
[0139] Users' blocking behavior from other information push channels can be used to reflect the cross-platform characteristics of information, which can be obtained by associating external data with device identifiers.
[0140] In one possible implementation, the server can determine the first account's tolerance level for push notifications based on the first account's behavioral data using a classification model, and then determine the first account's maximum number of notifications based on the correspondence between the tolerance level and the maximum number of notifications.
[0141] Optionally, the classification model can be used to predict the first account's tolerance level for push notifications. It can be a Gradient Boosting Decision Tree (GBDT) model or other classification models, which are not limited here.
[0142] Optionally, such as Figure 5As shown, after the server collects the behavioral data of the first account, it can input the behavioral data into the trained classification model, thereby obtaining the classification model's prediction of the first account's tolerance level for push information.
[0143] Optionally, the server may store a mapping between tolerance levels and the maximum number of data that can be received. For example, such as... Figure 5 As shown, when the tolerance levels include Level 1, Level 2, and Level 3, the maximum number of messages that can be received corresponding to Level 1 can be the first maximum, such as 4 messages / day; the maximum number of messages that can be received corresponding to Level 2 can be the second maximum, such as 2 messages / day; and the maximum number of messages that can be received corresponding to Level 3 can be the third maximum, such as 1 message / day. Therefore, the server can determine the maximum number of messages that can be received for the first account based on this correspondence, according to the predicted tolerance level of the first account.
[0144] In some embodiments, if the number of messages received by the first account reaches the upper limit of the number of messages that the first account can receive, the server can reduce the information priority of the message to be pushed to the first account, that is, delay the push of the message to be pushed to the first account, so as to ensure that the message to be pushed will not be pushed first.
[0145] Optionally, relevant personnel can use the following code to reduce the priority of information to be pushed:
[0146]
[0147] It is understandable that the server can determine the upper limit N of the number of messages that an account (user_id) can receive, and determine the number of messages received by the account (user_id) in a recent period (recent_count). When it is determined that the recent_count is about to approach N, the message priority of the messages to be pushed will be gradually reduced, so as to avoid pushing too much information to the account (user_id) in advance, which would prevent the push of messages with better performance in the later push from being pushed.
[0148] Optionally, if the server reaches the maximum number of messages a first account can receive, it can also directly stop pushing messages to the first account to prevent excessive disturbance to the user using the first account.
[0149] In this way, by dynamically and individually determining the upper limit of the number of messages that an account can receive, rather than setting a fixed global value, it is possible to push different amounts of information to users with different tolerance levels. This improves the effectiveness of information delivery while avoiding excessive disturbance to users.
[0150] Regarding the method of pushing information to be pushed, in one possible implementation, the server can push the information to be pushed to the first account based on the priority of the information when the first account's active time period arrives.
[0151] Optionally, the server can scan the accounts that need to be pushed to and the information to be pushed to those accounts in a fixed time window, in chronological order.
[0152] When the server detects that a message needs to be pushed to the first account within the current time window, it can determine the information to be pushed to the first account and, based on the method described in the aforementioned embodiment, determine the information priority of the information to be pushed to the first account. Then, the server can determine whether the current time window belongs to any of the first account's m active time periods to decide whether a message needs to be pushed to the first account.
[0153] Optionally, if the current time window does not fall within any of the m active time periods, the server will batch-push the information to be pushed to the first account at the target time. This avoids poor push results caused by pushing information during the account's inactive period.
[0154] In one possible implementation, the target time can be a pre-configured push delay time for the information to be pushed. When the push delay of the information to be pushed reaches the target time, the server can push the information to be pushed.
[0155] In one possible implementation, the server can group the information to be pushed according to its information type, then compress the grouped information into aggregated information and cache it in the server's storage space. Only when the target time arrives is the aggregated information retrieved and pushed to the first account through a batch push channel. Here, the batch push channel can be understood as a message queue for batch pushes.
[0156] Optionally, the target time can also be the time when the number of cached messages to be pushed reaches a threshold. As one approach, the server can cache the messages to be pushed to a message queue corresponding to the batch push. Thus, the server can push the messages to the first account uniformly when the message queue reaches the threshold.
[0157] In some embodiments, the server can dynamically adjust the compression intensity of batch processing based on system load. For example, under high system load, the information to be pushed can be strongly compressed, that is, more information to be pushed can be compressed into aggregated information, thereby adapting to the high computing and low bandwidth system operating environment. Conversely, under low load, the information to be pushed can be weakly compressed, that is, less information to be pushed can be compressed into aggregated information.
[0158] Optionally, the target time can also be a time when the system load is less than the load threshold. This allows the server to push cached information to be pushed in batches under low load.
[0159] In some embodiments, if the current time window falls within m active time periods, the server can extract the top k (Top-K) messages with the highest priority according to their priority and push them to the first account through a real-time push channel. The real-time push channel can be understood as a real-time push message queue. In this way, the server can accurately deliver information with better push effects during the account's active periods, significantly improving user interaction rates and conversion rates.
[0160] In some embodiments, the server can also dynamically adjust the number of parallel threads in the real-time push channel based on system load. For example, under high system load, the number of parallel threads in the real-time push channel can be reduced to ensure stable system operation. Conversely, under high system load, the number of parallel threads in the real-time push channel can be increased to improve information push efficiency.
[0161] Optionally, the server can also adjust the number of parallel threads in the real-time push channel and the compression intensity of batch processing based on the system load.
[0162] Optionally, if an upper limit is introduced for the number of messages that the first account can receive, since the information received by the first account is limited, only the highest priority messages to be pushed can be extracted and pushed to the first account.
[0163] In some embodiments, based on the method of the foregoing embodiments, after determining the information priority of the information to be pushed corresponding to the first account, the server can also determine the push time period for each information to be pushed. When the server extracts the information to be pushed with the highest priority and pushes it to the first account, it can determine whether the current time window belongs to the push time period of that information to be pushed with the highest priority.
[0164] Optionally, if the information does not belong to the first account, the server may temporarily withhold the highest priority information from the first account until the current time window reaches the push period for the highest priority information. Alternatively, if the current time window has already passed the push period for the highest priority information, the server may immediately push the highest priority information to the first account.
[0165] Optionally, if so, the server can directly push the highest priority information to be pushed to the first account.
[0166] Regarding the information push method for multiple accounts, in some embodiments, the server can determine the active time period corresponding to each account within n time periods, and group the accounts based on the active time periods to obtain the account set corresponding to each of the n time periods. The server can then sequentially scan the account set corresponding to the current time window in chronological order, thereby determining the account to be pushed to in the current time window, and the information to be pushed to that account.
[0167] Optionally, for the set of accounts corresponding to the current time window, the server can push information to each account in the set based on the information priority of the information to be pushed to each account. For example, if the set of accounts corresponding to the current time window includes the first account and the second account mentioned above, the server can push the information to be pushed to the first account based on the information priority of the information to be pushed to the first account, and push the information to be pushed to the second account based on the information priority of the information to be pushed to the second account.
[0168] In one possible implementation, after determining the set of accounts corresponding to each of the n time periods, the server can cache the set of accounts corresponding to each time period.
[0169] Optionally, the server can cache the mapping between time periods and account sets using a database. This database can be a Redis database or other databases; no specific limitation is made here.
[0170] For example, such as Figure 6 As shown, the server can cache the set of accounts corresponding to time period 1: account 1, account 2, account 3, account 4...; it can also cache the set of accounts corresponding to time period 2: account 11, account 22, account 33, account 44...; and it can also cache the set of accounts corresponding to time period n: account 111, account 222, account 333, account 444...
[0171] Optionally, the server can also cache the message priority for each account in a database. This can be a cached mapping between accounts and message priorities. The database can be Redis or another database; no specific limitation is made here.
[0172] Optionally, when caching the information priority of the information to be pushed to each account, the push time period corresponding to each information to be pushed can also be cached.
[0173] For example, such as Figure 7As shown, the server can cache the information priority and corresponding push time period of the information to be pushed to account 1: information 1 - push time period 1, information 2 - push time period 2, information 3 - push time period 3, and so on. Among them, information 1 has a higher priority than information 2, information 2 has a higher priority than information 3, and so on.
[0174] Similarly, the server can also cache the information priority of the information to be pushed to account 2: information 11 - push time period 11, information 22 - push time period 22, information 33 - push time period 33, and so on. Among them, information 11 has a higher priority than information 22, information 22 has a higher priority than information 33, and so on.
[0175] In some embodiments, the server can cache the mapping between time periods and account sets based on Redis's time wheel mechanism. This allows the server to scan the time wheel in real time and trigger corresponding information pushes, effectively reducing scheduling latency in high-concurrency scenarios and ensuring the accuracy and real-time nature of information delivery.
[0176] The time wheel is used to maintain scheduled tasks. It divides the time wheel into scales according to certain time units. When the pointer points to a scale, the corresponding task list is executed. Different time wheels are responsible for different time granularities and ranges.
[0177] In this application, the task list can be a list of accounts to be pushed.
[0178] Optionally, the server can be configured with a time wheel that uses time periods as the granularity, allowing for daily information push tasks. When the pointer reaches a certain mark, it indicates that the corresponding time period has been reached, at which point the server can execute information pushes for the set of accounts corresponding to that time period.
[0179] Optionally, the server can also be configured with a time wheel that uses minutes as the granularity. This time wheel can divide a time period into minutes, and when the pointer points to a certain mark, it indicates that the corresponding minute has been reached. At this point, the information push for the set of accounts corresponding to that minute can be executed. Thus, by setting up multi-level time wheels, when there are many sets of accounts corresponding to a time period, the push for that set of accounts can be distributed to different minutes for execution, effectively reducing scheduling latency in high-concurrency scenarios.
[0180] Optionally, the server divides the target time period into multiple time slices, thereby allocating the set of accounts corresponding to the target time period to these multiple time slices, resulting in a subset of accounts for each time slice. The server can then scan the subset of accounts corresponding to each time slice to push information to each account within that subset. The target time period can be any of the aforementioned n time periods, or any time period in the set of accounts corresponding to the aforementioned time periods where the number of accounts exceeds a preset number.
[0181] Alternatively, the server can also use jump pointers to set direct access pointers for information to be pushed in the near future (e.g., information to be pushed within 5 minutes) to avoid multiple levels of traversal.
[0182] Optionally, the server can also use a hot-cold separation storage for the information to be pushed, that is, the information to be pushed in the near future that is scanned at a high frequency resides in memory, while the information to be pushed in the far future is compressed and stored in the Redis database.
[0183] Optionally, when storing push notifications, the server can divide the time wheel into 1024 virtual partitions according to the account hash and distribute the cache across various data nodes in the database to avoid data storage skew.
[0184] Alternatively, the server can also cache the information to be pushed through a lock-free circular queue, thereby ensuring the atomicity of data node operations through RedisLua atomic scripts.
[0185] Alternatively, the server can also use a delayed deletion marking method to logically delete pushed information, while physical cleanup is performed in batches by a background thread, thereby reducing foreground latency.
[0186] In this way, the server can effectively reduce scheduling latency in high-concurrency scenarios based on the high-performance time wheel scheduling mechanism of the Redis database, ensuring the accuracy and real-time nature of information delivery. Furthermore, it employs a dual caching strategy across time and user dimensions: on the time dimension, it uses the Redis time wheel mechanism to cache the correspondence between time periods and account sets; on the user dimension, it maintains a priority queue for each user's information, ensuring efficient reading and delivery, and effectively reducing the system's storage and computational pressure.
[0187] For information on the overall system scheduling of information push, please refer to [link / reference]. Figure 8 This document illustrates a system flowchart of an information push system provided in an exemplary embodiment of this application. The information push system includes a scheduling service, a priority service, a caching service, and a push service. The system flowchart may include the following steps:
[0188] Step 801: The scheduling service requests priority sorting information from the priority service.
[0189] After the scheduling service obtains the accounts to be pushed and the corresponding information to be pushed to each account, it can request the priority service to sort the information to be pushed according to its priority.
[0190] Step 802: The priority service calculates the priority score for each piece of information in parallel.
[0191] The priority service calculates the priority score P for each message to be pushed to each account in parallel based on the aforementioned priority quantification method.
[0192] Step 803: Priority services are sorted based on priority scores.
[0193] Step 804: The priority service returns the sorted information priority queue.
[0194] Step 805: The scheduling service writes the correspondence between the account and the information priority queue to the cache service.
[0195] Step 806: The scheduling service scans the accounts to be pushed and the corresponding push information for each account from the cache service.
[0196] The scheduling service is based on a fixed time window and scans the cache service for the accounts to be pushed in the current time window, as well as the corresponding push information for each account.
[0197] Step 807: The caching service returns a set of accounts to be pushed to, and the push information corresponding to each account in the set.
[0198] Step 808: The scheduling service pushes the information to be pushed to the push service based on the priority of the information.
[0199] Based on the aforementioned information push method, the scheduling service pushes the information to be pushed to the push service according to the information priority of each account in the account set.
[0200] In some embodiments, such as Figure 9 As shown, the server can store tags and datasets corresponding to each account, which can be used to build user profiles. Based on these user profiles, the server can divide the audience into multiple audience segments, enabling targeted information pushes. When pushing information, the server can poll the targeted audience to determine if the audience segment has been updated and whether the corresponding information push task has been executed. If the audience segment has been updated but the corresponding information push task has not been executed, the server can parse the audience segment to obtain the corresponding account and the information to be pushed, thus enabling information pushes to that audience segment.
[0201] Optionally, when there are a large number of accounts corresponding to a group, the group can be divided into multiple subgroups, and information can be pushed to each subgroup separately.
[0202] Optionally, when the target audience package data for the strategy is ready, the information to be pushed by the strategy is ready, and the strategy execution cycle has begun, the server can store the relevant data such as the account corresponding to the audience package and the information to be pushed into the strategy recall pool for the scheduling service to retrieve.
[0203] Optionally, the server can differentiate between real-time user behavior trigger scenarios and fixed-period trigger scenarios. For fixed-period trigger scenarios, the target audience segment can be parsed based on the above process, and the accounts corresponding to the audience segments can be grouped and stored in the strategy recall pool. For real-time user behavior trigger scenarios, the server can store accounts that meet the trigger conditions and their corresponding push notifications in the strategy recall pool. The trigger condition can be whether the user profile corresponding to the account matches the user profile of the targeted audience.
[0204] Optionally, the scheduling service can obtain accounts and information to be pushed from the strategy recall pool and send them to the priority service. The priority service calculates the information priority of the information to be pushed to the account and the corresponding push time period based on data such as account activity, timeliness characteristics, revenue characteristics, account association characteristics, and the upper limit of the number of messages that the account can receive.
[0205] Optionally, the scheduling service can store each account in a specified time period according to its different active time periods. It can also store the accounts in different data nodes of the database according to their account hashes and record the specific information to be pushed and the push time.
[0206] In some embodiments, such as Figure 10 As shown, the scheduling service can scan the time wheel in real time to obtain the accounts to be pushed to in the current time window and the corresponding push information for each account. It then assembles the information and delivers it to the message queue, where the message channel subscribes to and processes the push tasks, achieving precise information delivery. Specifically, when pushing information, the push frequency can be adjusted based on business rate limiting configurations, system load, and the configured push frequency. For detailed procedures, please refer to relevant technical documentation; they will not be elaborated upon here.
[0207] Optionally, the scheduling service can batch push the push notifications for an account at a target time if the current time window does not fall within the account's active time period. If the current time window falls within the account's active time period, the service can extract the push notifications for that account and push them in real time.
[0208] Thus, through a high-performance distributed scheduling mechanism, accurate delivery of real-time information can be achieved. At the same time, a batch processing strategy for non-real-time information can improve system processing efficiency.
[0209] It should be noted that the above embodiments can be combined to obtain new embodiments, and the embodiments of this application do not limit the combination method.
[0210] Please refer to Figure 11 This illustration shows a structural block diagram of an information push device provided in an exemplary embodiment of this application. The device includes:
[0211] The activity determination module 1101 is used to determine the account activity of the first account in each of the n time periods. The account activity is used to characterize the degree of attention the first account pays to the pushed information, where n is a positive integer.
[0212] The priority determination module 1102 is used to determine the information priority of the information to be pushed to the first account based on the account activity and the information characteristics of the information to be pushed. The information priority is used to characterize the push order of the information to be pushed.
[0213] The information push module 1103 is used to push the information to be pushed to the first account based on the information priority.
[0214] Optionally, the information features of the information to be pushed include features of at least one dimension, and the priority determination module 1102 can be used to:
[0215] Determine the weights corresponding to the account activity level and the features of at least one dimension;
[0216] Based on the weight, the account activity level, and the features of at least one dimension of the information to be pushed, the information priority of the information to be pushed to the first account is determined.
[0217] Optionally, the priority determination module 1102 can be specifically used for:
[0218] Based on system load, the weights corresponding to the account activity and the features of at least one dimension are determined. The system load includes at least one of the following: system resource utilization, system response latency, and backlog of information to be pushed.
[0219] Optionally, the priority determination module 1102 can be specifically used for:
[0220] Based on the correspondence between system load and weight allocation, determine the current weight allocation corresponding to the current system load.
[0221] Based on the current weight allocation, determine the weights corresponding to the account activity level and the features of at least one dimension.
[0222] Optionally, the information features of the information to be pushed include at least one of timeliness features, revenue features, and account association features. The timeliness features are used to characterize the timeliness of the information to be pushed, the revenue features are used to characterize the revenue from pushing the information to be pushed, and the account association features are used to characterize the degree of association between the information to be pushed and the first account.
[0223] Priority determination module 1102 can be specifically used for:
[0224] Based on the system load, a first weight corresponding to the account activity level, a second weight corresponding to the timeliness feature, a third weight corresponding to the revenue feature, and a fourth weight corresponding to the account association feature are determined.
[0225] Wherein, when the system load is low, the first weight is the highest weight; when the system load is high, the second weight is the highest weight.
[0226] Optionally, the priority determination module 1102 can be used for:
[0227] Based on the account activity level and the information characteristics of the information to be pushed in each time period, the information priority of the information to be pushed to the first account in each time period is determined.
[0228] From the information priorities of each time period, the highest information priority is selected as the information priority of the information to be pushed to the first account.
[0229] Optionally, the information push module 1103 can be used for:
[0230] Based on the priority order of the information, the information to be pushed is sent to the first account within the time period corresponding to the information priority.
[0231] Optionally, the priority determination module 1102 can be used for:
[0232] Based on the account activity in each time period, m active time periods of the first account are determined from the n time periods, where m is a positive integer;
[0233] Based on the account activity level in each of the m active time periods and the information characteristics of the information to be pushed, the information priority of the information to be pushed corresponding to the first account in each active time period is determined.
[0234] Optionally, the information push module 1103 can be used for:
[0235] If the current time window belongs to one of the m active time periods, the target information to be pushed to the current time window is determined according to the priority order of the information.
[0236] The target information to be pushed is sent to the first account.
[0237] Optionally, the information push module 1103 can also be used for:
[0238] If the current time window does not belong to the m active time periods, the information to be pushed corresponding to the first account will be pushed in batches at the target time.
[0239] Optionally, the information push module 1103 can also be used for:
[0240] If the number of messages received by the first account does not reach the maximum number of messages that the first account can receive, the message to be pushed is pushed to the first account based on the message priority.
[0241] Optionally, the device may further include an upper limit determination module, which can be used for:
[0242] Based on the behavioral data of the first account, the upper limit of the number of messages that the first account can receive is determined. The behavioral data is used to characterize the operational behavior of the first account in historical information push scenarios.
[0243] Optionally, the upper limit determination module can be specifically used for:
[0244] Based on the behavioral data of the first account, the tolerance level of the first account to the pushed information is determined by a classification model.
[0245] Based on the correspondence between tolerance level and the maximum number of items that can be received, the maximum number of items that the first account can receive is determined.
[0246] Optionally, the information push module 1103 can also be used for:
[0247] If the number of messages received by the first account reaches the upper limit of the number of messages that the first account can receive, the push of the messages to be pushed to the first account will be stopped or delayed.
[0248] Optionally, the information push module 1103 can be used for:
[0249] Determine the active time period for each account within the n time periods;
[0250] Based on the active time period, accounts are grouped to obtain the account set corresponding to each of the n time periods;
[0251] For the set of accounts corresponding to the current time window, information is pushed to each account in the set of accounts based on the information priority of the information to be pushed to each account in the set of accounts, and the set of accounts includes the first account.
[0252] In summary, in this embodiment, when pushing information to an account, the computer device can determine the account's activity level in each of n time periods. Based on the account activity level and the information characteristics of the information to be pushed, the computer device can determine the information priority of the information to be pushed to that account, where n is a positive integer, account activity level represents the account's level of attention to the pushed information, and information priority represents the order in which the information is pushed. Then, the computer device can push the information to be pushed to that account based on the determined information priority. Thus, by combining the account's level of attention to the pushed information in different time periods, the computer device can dynamically determine the information that should be pushed to that account first, ensuring that the pushed information is effectively delivered, improving the information reach rate and user response rate, and guaranteeing the effectiveness of information push. This avoids the situation where a universal, fixed push method pushes the same information to all accounts, making it difficult to meet users' personalized needs.
[0253] It should be noted that the apparatus provided in the above embodiments is only an example of the division of the above functional modules. In practical applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the apparatus can be divided into different functional modules to complete all or part of the functions described above. In addition, the apparatus and method embodiments provided in the above embodiments belong to the same concept, and their implementation process can be found in the method embodiments, which will not be repeated here.
[0254] See Figure 12 , Figure 12 This is a schematic diagram of the structure of a computer device provided in an exemplary embodiment of this application. The computer device may include one or more of the following components: a processor 1210 and a memory 1220.
[0255] Optionally, the processor 1210 connects to various parts of the computer device using various interfaces and lines, and performs various functions of the computer device and processes data by running or executing instructions, programs, code sets or instruction sets stored in the memory 1220, and by calling data stored in the memory 1220. Optionally, the processor 1210 can be implemented in at least one hardware form selected from Digital Signal Processing (DSP), Field-Programmable Gate Array (FPGA), and Programmable Logic Array (PLA).
[0256] The processor 1210 can integrate one or more of the following: a central processing unit (CPU), a graphics processing unit (GPU), a neural network processing unit (NPU), and a baseband chip. The CPU primarily handles the operating system, user interface, and applications; the GPU is responsible for rendering and drawing the content displayed on the touchscreen; the NPU implements artificial intelligence (AI) functions; and the baseband chip handles wireless communication. It is understood that the baseband chip can also be implemented as a separate chip without being integrated into the processor 1210.
[0257] The memory 1220 may include random access memory (RAM) or read-only memory (ROM). Optionally, the memory 1220 may include a non-transitory computer-readable storage medium. The memory 1220 may be used to store instructions, programs, code, code sets, or instruction sets. The memory 1220 may include a program storage area and a data storage area, wherein the program storage area may store instructions for implementing an operating system, instructions for at least one function, instructions for implementing the various method embodiments described above, etc.; the data storage area may store data created according to the use of the computer device, etc.
[0258] In addition, those skilled in the art will understand that the structure of the computer device shown in the above figures does not constitute a limitation on the computer device. The computer device may include more (e.g., microphone, speaker, power supply component, display component, sensor component) or fewer components than shown, or combine certain components, or have different component arrangements.
[0259] This application provides a computer-readable storage medium storing at least one computer instruction, which is executed by a processor to implement the information push method as described in the above embodiments.
[0260] On the other hand, this application provides a computer program product, which includes computer instructions. When the processor executes the computer instructions, it implements the information push method as described in the above embodiments.
[0261] Those skilled in the art will recognize that the functions described in the embodiments of this application in one or more of the above examples can be implemented using hardware, software, firmware, or any combination thereof. When implemented using software, these functions can be stored in a computer-readable medium or transmitted as one or more instructions or code on a computer-readable medium. Computer-readable media include computer storage media and communication media, wherein communication media include any medium that facilitates the transfer of a computer program from one place to another. Storage media can be any available medium that can be accessed by a general-purpose or special-purpose computer.
[0262] The above description is merely an optional embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.
Claims
1. An information push method, characterized in that, The method includes: Determine the account activity level of the first account in each of the n time periods, where the account activity level is used to characterize the degree of attention the first account pays to the pushed information, and n is a positive integer; Based on the account activity and the information characteristics of the information to be pushed, the information priority of the information to be pushed corresponding to the first account is determined, and the information priority is used to characterize the push order of the information to be pushed. Based on the information priority, the information to be pushed is sent to the first account.
2. The method according to claim 1, characterized in that, The information features of the information to be pushed include features of at least one dimension. Determining the information priority of the information to be pushed for the first account based on the account activity and the information features of the information to be pushed includes: Determine the weights corresponding to the account activity level and the features of at least one dimension; Based on the weight, the account activity level, and the features of at least one dimension of the information to be pushed, the information priority of the information to be pushed to the first account is determined.
3. The method according to claim 2, characterized in that, Determining the account activity level and the weights corresponding to each of the at least one dimension of features includes: Based on system load, the weights corresponding to the account activity and the features of at least one dimension are determined. The system load includes at least one of the following: system resource utilization, system response latency, and backlog of information to be pushed.
4. The method according to claim 3, characterized in that, The determination of the account activity level and the weights corresponding to each of the at least one dimension of features based on system load includes: Based on the correspondence between system load and weight allocation, determine the current weight allocation corresponding to the current system load. Based on the current weight allocation, determine the weights corresponding to the account activity level and the features of at least one dimension.
5. The method according to claim 3, characterized in that, The information features of the information to be pushed include at least one of timeliness features, revenue features, and account association features. The timeliness features are used to characterize the timeliness of the information to be pushed, the revenue features are used to characterize the revenue from pushing the information to be pushed, and the account association features are used to characterize the degree of association between the information to be pushed and the first account. The determination of the account activity level and the weights corresponding to each of the at least one dimension of features based on system load includes: Based on the system load, a first weight corresponding to the account activity level, a second weight corresponding to the timeliness feature, a third weight corresponding to the revenue feature, and a fourth weight corresponding to the account association feature are determined. Wherein, when the system load is low, the first weight is the highest weight; when the system load is high, the second weight is the highest weight.
6. The method according to claim 1, characterized in that, The step of determining the information priority of the information to be pushed to the first account based on the account activity level and the information characteristics of the information to be pushed includes: Based on the account activity level and the information characteristics of the information to be pushed in each time period, the information priority of the information to be pushed to the first account in each time period is determined. From the information priorities of each time period, the highest information priority is selected as the information priority of the information to be pushed to the first account; The step of pushing the information to be pushed to the first account based on the information priority includes: Based on the priority order of the information, the information to be pushed is sent to the first account within the time period corresponding to the information priority.
7. The method according to claim 1, characterized in that, The step of pushing the information to be pushed to the first account based on the information priority includes: Based on the behavioral data of the first account, the tolerance level of the first account to the pushed information is determined by a classification model. The behavioral data is used to characterize the operational behavior of the first account in historical information push scenarios. Based on the correspondence between tolerance level and the maximum number of received items, the maximum number of received items for the first account is determined. If the number of messages received by the first account does not reach the upper limit of the number of messages that the first account can receive, the message to be pushed is pushed to the first account based on the message priority.
8. The method according to any one of claims 1-7, characterized in that, The step of pushing the information to be pushed to the first account based on the information priority includes: Determine the active time period for each account within the n time periods; Based on the active time period, accounts are grouped to obtain the account set corresponding to each of the n time periods; For the set of accounts corresponding to the current time window, information is pushed to each account in the set of accounts based on the information priority of the information to be pushed to each account in the set of accounts, and the set of accounts includes the first account.
9. A computer device, characterized in that, The computer device includes a processor and a memory, the memory storing at least one computer instruction, which is loaded and executed by the processor to implement the information push method as described in any one of claims 1 to 8.
10. A computer program product, characterized in that, The computer program product includes computer instructions, and when the processor executes the computer instructions, it implements the information push method as described in any one of claims 1 to 8.