An application recommendation method, an electronic device, a storage medium, and a program product

By acquiring the behavioral sequences and inference models of applications on smart devices, a set of candidate applications is generated and refined, solving the problem of inaccurate application recommendations on smart devices, achieving precise application recommendations, and improving the user experience.

CN120994719BActive Publication Date: 2026-02-03ZHUHAI XH SMARTCARD CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511508852.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-10-22
Publication Date
2026-02-03
Estimated Expiration
2045-10-22

AI Technical Summary

Technical Problem

How to accurately recommend apps to meet user needs on smart devices, especially when there are many apps available.

Method used

By acquiring the application usage behavior sequence, a target application inference model is determined. Inference is then performed based on this model to generate a candidate application set. The set is then revised using the candidate application usage behavior sequence, and finally, a preset number of target applications are determined and recommended.

Benefits of technology

It enables accurate recommendations for applications, improving the user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120994719B_ABST
    Figure CN120994719B_ABST
Patent Text Reader

Abstract

The application discloses an application program recommendation method, an electronic device, a storage medium and a program product; the method comprises the following steps: acquiring an application program use behavior sequence, determining a target application program inference model; performing inference based on the application program use behavior sequence and the target application program inference model, and determining a candidate application program set; creating a target application program set; generating a first to-be-processed behavior sequence according to the candidate application program use behavior sequence and the candidate application program set, and updating the target application program set according to the first to-be-processed behavior sequence; and determining a preset number of target application programs based on the updated target application program set, so as to recommend the application programs according to the target application programs, solve the problem that the application programs cannot be accurately recommended for users, correct the candidate application program set according to the candidate application program use behavior sequence, realize accurate recommendation of the application programs, and improve user experience.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of computer technology, and in particular to an application recommendation method, electronic device, storage medium, and program product. Background Technology

[0002] With the development of technology, smart devices are becoming increasingly widespread, such as smartphones and smartwatches. Users can install different applications on their smart devices according to their needs and preferences to meet various usage requirements. However, if there are many applications on a smart device, determining which application a user wants to use and recommending the appropriate application becomes a problem that needs to be solved. Summary of the Invention

[0003] This invention provides an application recommendation method, electronic device, storage medium, and program product that accurately recommends applications to users.

[0004] According to one aspect of the present invention, an application recommendation method is provided, comprising:

[0005] Obtain the application's usage behavior sequence and determine the target application's inference model;

[0006] Based on the behavioral sequence used by the application and the reasoning model of the target application, a set of candidate applications is determined, which includes a preset number of candidate applications;

[0007] Create a collection of target applications;

[0008] A first sequence of behaviors to be processed is generated based on the candidate application usage behavior sequence and the candidate application set. The target application set is then updated based on the first sequence of behaviors to be processed to correct the candidate application set.

[0009] A preset number of target applications are determined based on the updated set of target applications, so as to recommend applications based on each of the target applications.

[0010] According to another aspect of the present invention, an electronic device is provided, the electronic device comprising:

[0011] At least one processor, and a memory communicatively connected to said at least one processor;

[0012] The memory stores a computer program that is executed by the at least one processor, which enables the at least one processor to perform the application recommendation method described in any embodiment of the present invention.

[0013] According to another aspect of the present invention, a computer-readable storage medium is provided, the computer-readable storage medium storing computer instructions for causing a processor to execute and implement the application recommendation method described in any embodiment of the present invention.

[0014] According to another aspect of the present invention, a computer program product is provided, the computer program product comprising a computer program that, when executed by a processor, implements the application recommendation method described in any embodiment of the present invention.

[0015] The technical solution of this invention obtains an application usage behavior sequence and determines a target application inference model; performs inference based on the application usage behavior sequence and the target application inference model to determine a candidate application set, which includes a preset number of candidate applications; creates a target application set; generates a first behavior sequence to be processed based on the candidate application usage behavior sequence and the candidate application set; updates the target application set based on the first behavior sequence to correct the candidate application set; and determines a preset number of target applications based on the updated target application set to recommend applications based on each target application. This solves the problem of inaccurate application recommendations for users. Based on the application usage behavior sequence, inference is performed through the target application inference model to obtain a candidate application set including a preset number of candidate applications, initially determining the applications to be recommended. Then, a target application set is created, the candidate application set is further corrected based on the candidate application usage behavior sequence to generate a first behavior sequence to be processed, the target application set is updated based on the first behavior sequence to be processed, and the final target applications are determined based on the updated target applications for application recommendation, achieving accurate application recommendations and improving user experience.

[0016] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of the present invention, nor is it intended to limit the scope of the invention. Other features of the invention will become readily apparent from the following description. Attached Figure Description

[0017] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0018] Figure 1 This is a flowchart of an application recommendation method provided according to Embodiment 1 of the present invention;

[0019] Figure 2 This is a flowchart of an application recommendation method provided according to Embodiment 2 of the present invention;

[0020] Figure 3 This is a diagram of an application recommendation implementation architecture provided by the present invention;

[0021] Figure 4 This is an example diagram of a historical usage behavior sequence provided by the present invention;

[0022] Figure 5 This is a schematic diagram illustrating the implementation of a sliding window segmentation method provided by the present invention;

[0023] Figure 6 This is a flowchart illustrating the implementation of an application recommendation method provided by the present invention;

[0024] Figure 7 This is a flowchart illustrating the implementation of a recommendation list generation method using the TOP selection algorithm provided by the present invention.

[0025] Figure 8 This is a schematic diagram of the structure of an application recommendation device according to Embodiment 3 of the present invention;

[0026] Figure 9 This is a schematic diagram of the structure of an electronic device that implements the application recommendation method of this invention. Detailed Implementation

[0027] To enable those skilled in the art to better understand the present application, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present application, and not all embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative effort should fall within the scope of protection of the present application.

[0028] It should be noted that the terms "first," "second," etc., in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of this application described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.

[0029] Example 1

[0030] Figure 1 This is a flowchart of an application recommendation method provided in Embodiment 1 of the present invention. This embodiment is applicable to application recommendation scenarios. The method can be executed by an application recommendation device, which can be implemented in hardware and / or software and can be configured in an electronic device. Figure 1 As shown, the method includes:

[0031] S101. Obtain the application usage behavior sequence and determine the target application inference model.

[0032] In this embodiment, the application usage behavior sequence can be understood as a sequence of information formed by the user's use of the application, which may include the user's usage behavior of the application at different times. The target application inference model can be understood as a model used to infer and predict the application that the user intends to use, such as a hidden Markov model (HMM).

[0033] Data on user interaction with the application is collected beforehand. This data is then used to train a model, generating a reasoning model for the target application. During training, only one model can be generated or retained, or multiple models can be trained and retained. When recommending applications, one or more pre-generated models can be selected as the target application's reasoning model.

[0034] The system collects user behavior data on smart devices over a specific period, such as real-time monitoring of user activity. When application recommendation criteria are met, it retrieves user activity data from a preset timeframe prior to the current moment, sorting the applications used by the user in sequence to form an application usage behavior sequence. It then selects one or more pre-generated models as the target application inference model. The selection criteria can be preset, tailored to different user needs, or based on smart device parameters, status, and other information.

[0035] S102. Based on the application's behavior sequence and the target application's reasoning model, reason to determine a set of candidate applications, which includes a preset number of candidate applications.

[0036] In this embodiment, a candidate application can be understood as an application that can be recommended to a user; a candidate application set can be understood as a dataset that stores candidate applications; the preset number can be preset, determined according to the total number of applications in the smart device, or according to the display screen size of the smart device, or according to the number of applications that the user frequently uses, or according to the needs of downstream calling algorithms, etc.

[0037] The application uses a sequence of behavioral behaviors as input to the target application inference model, or the application usage sequence is processed according to a preset processing method, and the processing result is used as input to the target application inference model. The target application inference model uses pre-learned knowledge combined with the input data to infer and predict the applications that the user may use and outputs them. The applications output by the target application inference model are used as candidate applications, and a candidate application set is formed based on the candidate applications. Among them, the target application inference model can directly output a preset number of candidate applications, or the target application inference model can predict all applications that the user may use and the probability of each application, and select a preset number of applications as candidate applications according to the probability, and so on.

[0038] S103, Create a collection of target applications.

[0039] In this embodiment, the target application set can be understood as a dataset storing the target applications. An empty set is created as the target application set.

[0040] S104. Generate a first action sequence to be processed based on the action sequence of candidate applications and the set of candidate applications, and update the set of target applications based on the first action sequence to be processed, so as to correct the set of candidate applications.

[0041] In this embodiment, the candidate application usage behavior sequence can be understood as a sequence pre-generated based on the user's usage behavior of the application. The candidate application usage behavior sequence can be generated by statistically analyzing historical user usage data of the application over a long period, or it can be a sequence of application usage behavior used as a candidate application usage behavior sequence, and so on. The first behavior sequence to be processed can be understood as a sequence formed by the user's operational behavior towards the application.

[0042] Candidate application usage behavior sequences are generated in advance based on user behavior when using applications. These sequences can be updated in real time. When recommending applications, either the currently generated candidate application usage behavior sequences or the latest generated ones can be retrieved directly. Candidate application usage behavior sequences can be retrieved simultaneously or sequentially with application usage behavior sequences; this embodiment does not limit this. Candidate application usage behavior sequences directly reflect user behavior towards applications over a period of time. Analysis is performed on applications in the candidate application usage behavior sequences and candidate applications in the candidate application set to determine the frequency and duration of user application usage. Applications with high usage probabilities are selected, and a first set of behaviors to be processed is generated based on these applications. Applications in the first set of behaviors to be processed are added to the target application set, updating the target application set. A new target application set is generated using the candidate application usage behavior sequences, refining the candidate application set.

[0043] S105. Determine a preset number of target applications based on the updated set of target applications, so as to recommend applications based on each target application.

[0044] In this embodiment, the target application can be understood as an application that can ultimately be recommended to the user.

[0045] Based on the updated set of target applications, applications that the user may be interested in or use are identified, and these applications are designated as target applications. Each target application can be used to make recommendations to the user; for example, a preset number of target applications can be recommended to facilitate user interaction with those applications.

[0046] This invention provides an application recommendation method. The method involves obtaining an application usage behavior sequence and determining a target application inference model. Based on the application usage behavior sequence and the target application inference model, a candidate application set is determined, including a preset number of candidate applications. A target application set is created. A first pending behavior sequence is generated based on the candidate application usage behavior sequence and the candidate application set. The target application set is then updated based on the first pending behavior sequence to correct the candidate application set. Based on the updated target application set, a preset number of target applications are determined for application recommendation. This method solves the problem of inaccurate application recommendations for users. By inferring from the target application inference model based on the application usage behavior sequence, a candidate application set including a preset number of candidate applications is obtained, initially determining the applications to be recommended. Then, a target application set is created, and the candidate application set is further corrected based on the candidate application usage behavior sequence to generate a first pending behavior sequence. The target application set is updated based on the first pending behavior sequence, and the final target applications are determined based on the updated target applications for application recommendation, achieving accurate application recommendation and improving user experience.

[0047] Example 2

[0048] Figure 2 This is a flowchart of an application recommendation method provided in Embodiment 2 of the present invention. This embodiment is a refinement based on the above embodiments. Figure 2 As shown, the method includes:

[0049] S201. Obtain the application usage behavior sequence.

[0050] S202. Based on the model screening strategy, screen at least one version of the application inference model stored in advance to determine the target application inference model.

[0051] In this embodiment, the model selection strategy can be understood as the conditions and strategies for selecting models. Different versions of application inference models are pre-stored, and these different versions can be labeled based on parameters such as performance and training time. A model selection strategy is pre-set, and based on this strategy, at least one pre-stored version of the application inference model is selected to determine the matching application inference model, which is then used as the target application inference model.

[0052] The model selection strategy includes at least one of the following:

[0053] Filter by version number;

[0054] Screening is based on model evaluation results;

[0055] Filter by model size;

[0056] Filter according to the operation instructions.

[0057] For example, based on the latest version number, the latest updated version model is selected for inference; based on the highest model evaluation, the highest quality version model is selected for inference; based on the smallest model size, the most space-saving version model is selected for inference; based on the instructions from the algorithm caller, the specified version model is selected for inference.

[0058] This application embodiment can generate a unique version number for the updated model parameters each time a model training task is performed, and save the version number and model parameters together to the device's internal memory. The model parameters can represent a model. A version manager can be set up to record and manage information about different version models, including but not limited to version number, generation time, training data, training results, model evaluation level, etc. A version selector can be set up to select a suitable version model from the version manager as the target application inference model for inference tasks based on certain strategies or user instructions.

[0059] S201 and S202 can be executed in parallel or sequentially, without a strict order. Figure 2 Taking sequential execution as an example.

[0060] S203. Obtain a set of observation states, which is generated based on the applications installed on the user's device.

[0061] In this embodiment, the set of observation states can be understood as a set formed by applications that require usage probability prediction. User devices can be IoT devices, smartphones, smartwatches, etc. The set of observation states in this embodiment can be generated based on applications already installed on the user device; that is, the applications already installed on the user device are determined, and these applications are added to the set to generate the set of observation states.

[0062] S204. Construct an input set based on the set of observed states and the application using a sequence of behaviors, wherein the input set includes at least one sequence of behaviors to be predicted.

[0063] In this embodiment, the sequence of behaviors to be predicted can be understood as the sequence used to predict the user's application usage behavior; the input set can be understood as the dataset that stores the sequence of behaviors to be predicted.

[0064] Based on the set of observed states, identify the applications that need to be predicted. Combine these applications with the applications in the application behavior sequence to form the behavior sequence to be predicted. For example, concatenate each application with the application behavior sequence to obtain the behavior sequence to be predicted; or, identify recently used applications based on the application behavior sequence, filter the applications in the set of observed states based on these applications, and concatenate the remaining applications with the application behavior sequence to obtain the behavior sequence to be predicted; generate an input set based on all the behavior sequences to be predicted.

[0065] As an optional embodiment, this optional embodiment further optimizes the construction of an input set based on the set of observed states and the application use behavior sequence, including: taking each application in the set of observed states as the last character of the application use behavior sequence and concatenating it with the application use behavior sequence to generate a behavior sequence to be predicted; generating an input set based on each behavior sequence to be predicted.

[0066] For each application in the set of observed states, concatenate this application as the last element of the application's behavior sequence with the application's behavior sequence to generate a behavior sequence to be predicted; generate an input set based on all generated behavior sequences to be predicted.

[0067] S205. Input the sequences of behaviors to be predicted in the input set into the inference model of the target application for inference to obtain the observation probability of the application.

[0068] In this embodiment, the observation probability can be understood as the predicted probability that the application will be used by the user. For each sequence of behaviors to be predicted in the input set, each sequence of behaviors to be predicted is input into the target application inference model for inference to obtain the observation probability of the application. The obtained observation probability is the observation probability of the application already installed on the user's device.

[0069] S206. Compare the observation probabilities of each application, select a preset number of candidate applications based on the magnitude of the observation probabilities, and generate a set of candidate applications.

[0070] Compare the observation probabilities of each application, determine the preset number of applications with the highest observation probabilities as candidate applications based on the magnitude of the observation probabilities, and generate a set of candidate applications.

[0071] In this application embodiment, the model can be controlled to perform inference by calling an interface. For example, when the algorithm user calls the model inference interface to control the target application inference model to predict the APP, it needs to estimate the probability of each predicted behavior sequence (APP sequence) based on the HMM model and its parameters, so as to obtain the K most likely APPs that users will use next with the highest probability. Therefore, APP prediction is regarded as a problem of evaluating the probability of the observed sequence.

[0072] First, the input of the Hidden Markov Model (HMM) is constructed based on the application's historical usage behavior sequence L (obtainable through the data access module) and the set of observed states O (all installed apps on the user's device). Each app installed by the user on their device is concatenated as the last element of the behavior sequence L, resulting in the HMM input xi = Concat[L, Oi], where Oi ∈ O. That is, the length of the input X is L+1, and Oi represents the i-th app installed by the user. In this way, the input set X = [x1, x2, ..., xN] of the HMM can be generated.

[0073] Then, each sequence of behaviors to be predicted in the input set X is used as the input of the Hidden Markov Model. Through the forward algorithm, the observation probability of each sequence of behaviors to be predicted in the input set X is obtained. The observation probability of data xi is considered to be the observation probability of the i-th App installed on the user's device, Oi.

[0074] Based on the observed probabilities, the N apps installed by the user are sorted to obtain the TOPK apps with the highest observed probabilities. This set of apps, labeled S, is the candidate application set output by the Hidden Markov Model. HMM_TOPK , among which, S HMM_TOPK The K Apps in the table are arranged from left to right with observation probabilities ranging from low to high.

[0075] S207. Create a collection of target applications.

[0076] S208. Generate a first sequence of behaviors to be processed based on the candidate application usage behavior sequence and the candidate application set, and update the target application set based on the first sequence of behaviors to be processed to correct the candidate application set.

[0077] S209. Determine a preset number of target applications based on the updated set of target applications.

[0078] S210, Display each target application at a preset position on the screen of the user device; and / or, Preload each target application.

[0079] Pre-set preset locations. These locations can be customized based on user habits or placed in prominent positions on the device's screen. For example, target applications can be displayed on the user's device's negative one screen or the home screen, allowing users to quickly find the applications they want and improving the user experience. After determining the target applications, they can also be pre-loaded in the background to improve application startup speed and enhance the user experience.

[0080] As an optional embodiment, this optional embodiment further optimizes the determination of a preset number of target applications based on the updated target application set, including A1-A2:

[0081] A1. If the number of applications in the updated target application set is less than the preset number, generate a new candidate application usage behavior sequence, return to the execution of the steps of generating a first pending behavior sequence based on the candidate application usage behavior sequence and the candidate application set, and updating the target application set based on the first pending behavior sequence, until the cutoff condition is met.

[0082] In this embodiment, the cutoff condition can be understood as a condition used to determine whether to stop updating the candidate application's behavior sequence, such as the number of updates exceeding a certain threshold, the update time exceeding a certain threshold, receiving a user's control command to stop updating, etc.

[0083] Count the number of applications in the target application set. If this number is not less than a preset number, proceed to step A4. If this number is less than the preset number, determine if the cutoff condition is met. If not, update the candidate applications using behavior sequences. For example, obtain new user operation data to update the candidate applications using behavior sequences, or divide the candidate applications using behavior sequences to obtain new candidate application behavior sequences, and return to proceed to step A2. If the cutoff condition is met, stop updating. At this point, the number of applications in the target application set is less than the preset number. The target application can be directly determined based on the applications in the target application set, resulting in a smaller number of target applications than the preset number. Alternatively, the applications in the target application set can be supplemented, and so on.

[0084] A2. If the number of applications in the updated target application set is not less than the preset number, select the preset number of target applications based on the applications in the target application set.

[0085] If the number of applications in the target application set is not less than the preset number, the applications in the target application set are filtered, and the preset number of target applications are selected. For example, applications with higher probability, more frequent use, or more recent use are selected as target applications, etc.

[0086] As an optional embodiment, this optional embodiment further optimizes the generation of a first sequence of behaviors to be processed based on the candidate application usage behavior sequence and the candidate application set, including B1-B3:

[0087] B1. The candidate applications are segmented using behavior sequences to obtain the first behavior sequence and the second behavior sequence.

[0088] In this embodiment, the first behavior sequence and the second behavior sequence can be understood as sequences formed by user behavior in using the application. The candidate application behavior sequences are segmented according to certain rules, such as segmenting them according to a certain length or a certain length ratio, to obtain the first behavior sequence and the second behavior sequence.

[0089] B2. Concatenate the second action sequence with the candidate applications in the candidate application set to obtain the second action sequence to be processed.

[0090] The second action sequence can be concatenated with the candidate application sequence in the candidate application set by concatenating the second action sequence before the first application in the candidate application sequence or by concatenating the second action sequence after the last application in the candidate application sequence, thus obtaining the second action sequence to be processed.

[0091] B3. Process the applications in the second pending behavior sequence according to the frequency of application occurrence and usage time to generate the first pending behavior sequence.

[0092] The applications in the second sequence of pending behaviors are reordered based on their frequency of occurrence and usage time, with applications appearing more frequently ranked first. For applications with the same frequency, those with the closest usage time are ranked first, generating the first sequence of pending behaviors. In this embodiment, the first sequence of pending behaviors is obtained by repeatedly filtering the second sequence of pending behaviors. Alternatively, the ordering can be simplified; simply recording the frequency of occurrence and usage time for each application is sufficient. The frequency of occurrence and usage time can then be used to assist in subsequent data processing.

[0093] In this embodiment of the application, after obtaining the second sequence of behaviors to be processed, the applications included in the second sequence of behaviors to be processed can be denoted as the second applications. The second applications in the second sequence of behaviors to be processed are processed according to the frequency of occurrence and usage time of the second applications to generate the first sequence of behaviors to be processed.

[0094] As an optional embodiment, this optional embodiment further optimizes the updating of the target application set according to the first action sequence to be processed, including: denoteing the applications in the first action sequence to be processed as first applications; for each first application, if the first application is not in the target application set, then adding the first application to the target application set.

[0095] In this embodiment, the first application can be understood as an application. All applications contained in the sequence of behaviors to be processed are analyzed, and each application in the first sequence of behaviors to be processed is denoted as the first application. For each first application, it is determined whether the first application is in the target application set. If not, the first application is added to the target application set; if it is, there is no need to add this first application to the target application set, and the next first application is processed.

[0096] As an optional embodiment, this optional embodiment further optimizes the selection of a preset number of target applications based on the applications in the target application set, including C1-C2:

[0097] C1. If the number of applications in the target application set is equal to the preset number, then each application in the target application set will be used as the target application.

[0098] C2. If the number of applications in the target application set is greater than the preset number, compare the usage time and frequency of each application in the target application set, and select the preset number of applications as the target applications.

[0099] If the number of applications in the target application set is greater than the preset number, compare the usage time of each application in the target application set, and select the preset number of applications with the highest frequency of occurrence and the most recent usage time as the target applications.

[0100] For example, the applications in the target application set can be sorted according to the rule of highest frequency and most recent usage time, with the applications that appear more frequently placed first. For applications with the same frequency, those that were used most recently are placed first. In this case, a preset number of applications can be selected directly from the target application set.

[0101] Optionally, generating a new candidate application usage behavior sequence includes: using the first behavior sequence as a new candidate application usage behavior sequence, wherein the first behavior sequence is a sequence obtained by segmenting the candidate application usage behavior sequence.

[0102] Optionally, the cutoff condition is that the length of the first row of the sequence is 0.

[0103] Optionally, when the cutoff condition is met, the method also includes D1-D4:

[0104] D1. Get the set of pre-installed applications.

[0105] In this embodiment, the pre-built application set can be understood as a pre-generated dataset of saved applications, which can be generated based on the applications pre-installed on the user's device.

[0106] If the cutoff condition is that the length of the first row of the sequence is 0, and the cutoff condition is met, then the number of applications in the target application set is less than the preset number, and applications need to be added. Obtain the pre-generated set of preset applications.

[0107] D2. Select alternative applications from the preset application set that do not overlap with applications in the target application set.

[0108] In this embodiment, the candidate application can be understood as an application that may be recommended to the user; the applications in the preset application set and the target application set are compared, and applications that do not overlap with applications in the target application set are selected from the preset application set as candidate applications.

[0109] D3. Select a second number of candidate applications from all candidate applications and add them to the target application set, where the second number is the difference between the preset number and the number of applications in the target application set.

[0110] The system counts the number of applications in the target application set, calculates the difference between a preset number and this preset number, and uses this difference as the second number. From all candidate applications, the system selects the second number of candidate applications and adds them to the target application set. At this point, the number of applications in the target application set is the preset number.

[0111] D4. Use the applications in the added target application set as target applications.

[0112] As an optional embodiment, this optional embodiment further optimizes the generation steps of the pre-built application set, including E1-E2:

[0113] E1. Obtain the list of pre-installed applications on the user's device.

[0114] In this embodiment, the pre-installed application list can be understood as a list formed by the built-in applications pre-installed in the device, wherein the built-in applications are those that the user cannot delete. The device is pre-installed with these built-in applications at the factory, and the pre-installed application list is formed and stored based on these built-in applications. When needed, the applications are retrieved directly from the corresponding storage space.

[0115] E2. Based on the frequency of occurrence, select a preset number of applications from the application usage behavior sequence and the list of pre-installed applications to generate a set of pre-installed applications.

[0116] The statistical application uses the behavior sequence and the frequency of occurrence of each application in the pre-installed application list to select a preset number of applications with high frequency of occurrence, forming a pre-installed application set.

[0117] For example, this application provides an implementation process for correcting the inference results of a candidate application set and determining a preset number of target applications, including the following steps:

[0118] 1. Obtain a list of pre-installed applications on the user's device. Pre-installed refers to built-in applications that the user cannot delete, denoted as A. 预装 .

[0119] 2. From the application, use the behavioral sequences L and A 预装 In the process, the K most frequently used pre-installed apps are obtained and treated as a set of pre-installed applications, labeled as A. 预TOPK A 预TOPK The K apps in the list are arranged from left to right according to their frequency of occurrence, from low to high.

[0120] 3. The set of candidate applications S output by the Hidden Markov Model HMM_TOPK The proposed segmented prediction method calculates the K applications that a user may use in the future, and the details of the segmented prediction method are as follows;

[0121] a) First, based on the candidate application using the behavior sequence A, divide it into the nearest subsequence of length A2 according to windows_size, and denote it as the second behavior sequence. The remaining part is defined as A1 and denotes it as the first behavior sequence, i.e. P=concat(A1,A2), len(A2)= windows_size, len(A1)= len(A) - windows_size.

[0122] b) At the beginning of the A2 subsequence, concatenate S HMM_TOPKThe apps in the set are used to obtain the second to-be-processed behavior sequence: A2’ = concat(A2, S HMM_TOPK );

[0123] c) Sort the apps that appear in the A2’ sequence according to their distance from the current time (the closer to the right is the nearer, and the left is the farther), and arrange the apps closer to the current time in the front.

[0124] d) Count the frequencies of the apps in the A2’ sequence, and arrange the apps with higher frequencies in the front.

[0125] e) Remove duplicates from the obtained apps respectively according to the frequencies in step d and the distances in step c, and determine the set D composed of the remaining m apps as the apps that the user is most likely to use next. The selection rule is: prioritize frequencies. If there are multiple apps with the same frequency, select the app with a closer distance. The order of the apps in set D is sorted from left to right, that is, the app selected first is on the left of the app selected later according to the rule.

[0126] Remove duplicates from the obtained apps. The sequence composed of the remaining m apps is the first to-be-processed behavior sequence. Update the set D, that is, the target application set, according to the first to-be-processed behavior sequence. At the first processing, the set D is empty, and the m apps can be directly added to the set D.

[0127] 4. According to step 3, a recommended set D (i.e., the target application set) composed of m apps can be obtained.

[0128] a) If m < K, repeat the following steps until m >= K or until the length of A is 0:

[0129] i. Take A1 as the new A, repeat step 3, obtain the recommended set D1 composed of m1 apps, and after removing the apps that already exist in the set D, perform concat on D1 and the set D (i.e., update the target application set); then at this moment D = concat(D, D1);

[0130] When the length of A1 is 0, the length of the updated A is 0 at this time, and it is impossible to continue updating the set D, and the termination condition is determined to be satisfied.

[0131] b) If m >= K, take the first K of the recommended set D as the output set;

[0132] 5. If step a) in step 4 still cannot satisfy m >= K after the length of A becomes 0, use A in step 2 预TOPK , first in A 预TOPKRemove apps that already exist in set D, and then remove the remaining apps from set A. 预TOPK Select Km apps to add to set D, ensuring that the final output set D has a size of K.

[0133] As an optional embodiment, this optional embodiment further optimizes the generation steps of the application inference model, including F1-F2:

[0134] F1. When the device status information is detected to meet the model training conditions, model parameters are obtained from the model candidate pool, and training data is obtained.

[0135] In this embodiment, model training conditions can be preset according to requirements, such as the resources required for model training, the power consumption required for model training, etc. The model candidate pool stores model parameters for different versions of the model; these parameters represent the model. Training data refers to the training samples.

[0136] The system monitors the device's status information in real time, or monitors it under certain conditions to determine if the device's status meets the model training requirements. When the device's status meets the training requirements, a set of model parameters is selected from the model candidate pool. The model candidate pool can store one or more sets of model parameters. For example, the model parameters obtained after each training session are saved to the model candidate pool, or it is determined whether to save the model parameters obtained in this training session. If so, they are saved to the model candidate pool. Simultaneously, pre-generated training data is acquired.

[0137] Optionally, the status information includes at least one of the following: battery level, network connection status, CPU usage, memory usage, and sleep status.

[0138] This application embodiment provides a device status monitor to monitor the status of a user device, including but not limited to battery level, network connection, CPU usage, memory usage, and sleep state. A model training condition is pre-set, which refers to the conditions under which the user device can execute a model training task. For example, the user device may be in a charging state, have a good network connection, low CPU usage, low memory usage, or be in a sleep state. A timer is set to detect whether the user device meets the model training condition at regular time intervals or triggered events. If the condition is met, the model training task is executed; otherwise, the system waits for the next detection.

[0139] F2. Call upon the computing resources of the user device to train the model based on the model parameters and training data, generate the application inference model, and release the computing resources of the user device.

[0140] The system utilizes the computing resources of the user device to train the model parameters based on the training data, generating an application inference model. After training is complete, the computing resources of the user device are released. The generated application inference model can be saved as updated model parameters to the model candidate pool.

[0141] Current technologies typically use neural network models deployed on servers for modeling and prediction. This approach can use complex models without considering power consumption limitations, but it suffers from communication latency issues between smart devices (e.g., smartwatches) and the server. The application prediction list obtained from the server may fail to be delivered due to the network environment of the smart device. Alternatively, neural network models can be deployed on users' personal devices using model compression techniques. This approach is gradually being adopted in devices with greater computing power, such as smartphones, but deployment challenges remain in smaller devices like smartwatches and fitness trackers, and it relies on various miniaturization techniques that reduce the effectiveness of the model itself.

[0142] Once a miniaturized neural network model is deployed to a user's personal device, its parameters are typically updated uniformly via a cloud server. This approach has timeliness issues; the neural network model updated periodically by the cloud server cannot capture the user's latest behavioral habits. Secondly, due to cost and other considerations, the cloud server cannot train a separate model for each user. Therefore, the distributed model is usually a uniform, impersonal model, which cannot reflect the personalized prediction needs of apps designed for individual user needs.

[0143] The method provided in this application allows model training to be performed on smart devices. By setting model training conditions, the training process can be controlled, reducing the difficulty of model training and enabling even miniaturized devices to perform model training, thus making model deployment more convenient. Furthermore, model training and prediction are all completed on the user's device, taking into account communication latency, allowing for timely prediction and recommendations. The user's device periodically trains the model based on user behavior, promptly capturing the latest user habits and enabling personalized model training to meet the prediction needs of different users.

[0144] As an optional embodiment, this optional embodiment is further optimized by: acquiring evaluation data; evaluating the generated application inference model based on the evaluation data, and generating evaluation results.

[0145] In this embodiment, evaluation data can be understood as data used to evaluate the model, which can be generated by collecting real user behavior of the application. Evaluation data can be pre-generated and saved, and retrieved directly from the corresponding storage space when needed. The evaluation of the generated application inference model based on the evaluation data can be done by evaluating the accuracy of the application inference model and generating an evaluation result based on the accuracy. For example, the accuracy can be used as the evaluation result; if the accuracy exceeds a preset threshold, the evaluation result is "passed"; otherwise, the evaluation result is "failed." Alternatively, the accuracy of the newly generated application inference model and the accuracy of the model parameters used in the current training (i.e., the historically trained model) can be determined based on the evaluation data, and the two accuracy rates can be compared to generate an evaluation result. If the accuracy of the newly generated model is higher, the evaluation result is "passed"; otherwise, the evaluation result is "failed," and so on.

[0146] In the embodiments of this application, when generating evaluation results, the evaluation results can be based on the HR@K index, that is, whether the label of the data is among the preset number of candidates predicted by the model.

[0147] As an optional embodiment, this optional embodiment is further optimized by including G1-G3:

[0148] G11. If the evaluation result meets the first preset condition, mark the generated application reasoning model with high priority.

[0149] G2. If the evaluation result meets the second preset condition, mark the generated application inference model as low priority, delete the application inference model or reduce the priority of the application inference model.

[0150] G3. If the evaluation result meets the third preset condition, mark the generated application reasoning model as medium priority.

[0151] In this embodiment, the first, second, and third preset conditions can be preset, for example, the accuracy rate exceeding a certain threshold. The preset conditions satisfied by the evaluation result are determined, and the generated application inference model is assigned a corresponding priority label. Models with higher priority are recommended for use during inference.

[0152] This application can set up a feedback mechanism that generates a model evaluation level based on the evaluation results and provides feedback to the updated model parameters. The feedback can take various forms, such as:

[0153] a) If the evaluation results meet or exceed expectations, the updated model parameters can be marked as excellent and recommended to the version selector as the preferred version for inference.

[0154] b) If the evaluation results do not meet or fall short of expectations, the updated model parameters can be marked as unqualified and removed from the version manager or their priority reduced.

[0155] c) If the evaluation results fall between the expected and below-expected range, the updated model parameters can be marked as general and kept in the version manager, but not as the preferred version for inference.

[0156] For example, Figure 3 An implementation architecture diagram for application recommendation is provided, which is mainly divided into two parts: the on-device model learning system and the model inference system.

[0157] The on-device model learning system is primarily responsible for training, updating, and maintaining model parameters, and it is further divided into the following modules:

[0158] 1. Data Access Module: This module is mainly responsible for preprocessing the raw user behavior data and converting it into the sample input format required by the HMM model;

[0159] 2. Hmm Training Engine: This module is a training engine for Hmm-based App prediction models, responsible for completing the training tasks of the Hmm model;

[0160] 3. Model Training Workflow: This module is mainly responsible for tasks such as model training scheduling, hyperparameter tuning, and parameter saving.

[0161] 4. On-device model candidate pool: This module is responsible for storing model parameters obtained under different training hyperparameters;

[0162] 5. Model Evaluation Strategy: This module is mainly responsible for evaluating the performance of new and old models, as well as models with different hyperparameters, and obtaining performance data of the new and old models;

[0163] 6. Model Update Strategy: This module is mainly responsible for the model update strategy;

[0164] The model inference system is primarily responsible for executing the App prediction task, outputting K (i.e., a preset number) Apps predicted by the model. It is further divided into the following modules:

[0165] 1. Model Inference Module: This module is mainly responsible for calling the optimal Hmm model parameters and outputting the predicted Top K Apps (i.e., candidate applications).

[0166] 2. Post-processing strategy module: This module is mainly responsible for processing (i.e. correcting) the Top K Apps output by Hmm and outputting a set of Apps that meet the requirements to the caller (i.e. the target application).

[0167] The data access module provides a method for acquiring and processing data used by the APP, the method including:

[0168] 1. Receive app usage data within a preset time period from external sources, generate sequence data of user app usage, which is represented as a sequence of historical app usage behavior on a timeline. Then, generate the training and test sets required for model training based on the historical app usage behavior sequence.

[0169] a) The preset time period is defined as the time span tracing back from the time node when the training task is invoked;

[0170] b) The App historical usage behavior sequence includes all App click events of the user on the IoT device within a preset time period, as well as the time information associated with each App click event. This can be understood as the associated time information including the time of clicking the App, the time of exiting the App, and the duration of App usage. In this solution, the time order of the App historical usage behavior sequence is represented from left to right, denoted as sequence P.

[0171] c) The App historical usage behavior sequence is represented by sorting the App click events of the same user in chronological order within a preset time period, resulting in an App historical usage behavior sequence with the chronological order of the click events.

[0172] d) The data access module receives a sequence of App historical usage behavior of length 6, consisting of an App set ABCD, with the Apps launched in the order A, B, C, D, A, C respectively. For example, Figure 4 An example graph of a historical usage behavior sequence is provided.

[0173] 2. Construct training and testing sets based on the App's historical usage behavior sequences;

[0174] a) Filter the historical behavior sequence P of the App based on the blacklist, remove the Apps that do not participate in the algorithm calculation, and denote the sequence after removal as the application time-series behavior sequence M with a length of L;

[0175] i. A blacklist refers to a pre-defined collection of apps that are excluded from computation and prediction. This includes two parts: a custom blacklist and a built-in blacklist. The custom blacklist is submitted by downstream developers who call this algorithm, while the built-in blacklist is a pre-defined blacklist set by the algorithm developer.

[0176] b) Divide the application timing behavior sequence M into two segments according to a fixed ratio of the training set and the test set. The first segment from the left is the original sequence required to generate the training set, and the second segment from the left is the original sequence required to generate the test set.

[0177] c) Perform sliding window segmentation on the original sequence to generate several equal-length subsequences;

[0178] i. Sliding window segmentation is used to segment each application timing behavior sequence M. Assuming that an application timing behavior sequence consists of L records, the segmentation window size is W, and the sliding window step size is S, then M equal-length subsequences can be generated. The corresponding relationship is: M=⌊(LW) / S⌋+1.

[0179] For example, Figure 5 A schematic diagram illustrating the implementation of sliding window segmentation is provided.

[0180] ii. Randomly shuffle all training samples of users segmented by the above method to obtain the dataset file;

[0181] d) By using the segmentation method in step c) on the two original sequences in step b), the training set and test set required for model training and testing can be obtained respectively.

[0182] The Hmm training engine module implements the learning method for the Hmm model required for App prediction. The method includes:

[0183] 1. Construct a Hidden Markov Model. A Hidden Markov Model consists of five elements: hidden state S, observable state O, initial state probability matrix Π, hidden state transition probability matrix A, and observation state matrix B. The specific process includes the following steps.

[0184] a) Constructing hidden states S. The number of hidden states is a hyperparameter that can be obtained through parameter tuning. In app prediction, the number of hidden states usually represents how many user intent habits exist in the app sequence. Therefore, hyperparameter settings are usually heuristically set based on user data.

[0185] b) Construct observable state O. Observable state O is defined as all installed apps on the user's IoT devices, with the number of installed apps set to N.

[0186] c) Construct an initial state probability matrix Π, and define that the initial transition probability from each state to another state in the state probability matrix Π is equal.

[0187] d) Construct the hidden state transition probability matrix A. Train the model using the training data obtained in step 2 to obtain the hidden state transition probability matrix A.

[0188] e) Construct the observation state matrix B by training with the training data obtained in step 2 to obtain the observation state matrix B.

[0189] f) Traverse the data samples from the training dataset in the data access module, re-evaluate the Hidden Markov Model (HMM) using each App usage sequence and the initialized HMM, and iterate the re-evaluated HMM repeatedly until convergence, obtaining the trained HMM. Specifically, the learning algorithm for the HMM uses the industry-standard Baum-Welch algorithm to estimate the three parameters (Π, A, B) of the HMM.

[0190] 2. The learning algorithm for the Hidden Markov Model uses the industry-standard Baum-Welch algorithm, which optimizes the three parameters (Π, A, B) of the Hidden Markov Model.

[0191] a) The Baum-Welch algorithm is an unsupervised learning algorithm based on the EM algorithm, used to estimate the three parameters of a Hidden Markov Model (HMM). The EM algorithm is an iterative algorithm that solves for the parameters by maximizing the likelihood function through alternating E-steps and M-steps. In an HMM, the E-step calculates the probability of being in each state at each time step, given the current parameters; the M-step updates the model parameters using these probabilities. Specifically, the Baum-Welch algorithm works as follows:

[0192] i. Randomly initialize the model parameters (Π, A, B);

[0193] ii. Use the forward and backward algorithms to calculate the probability of being in each observation state at each time step, given the current parameters;

[0194] iii. Use these probabilities to update the model parameters, specifically, update the initial state probability vector π, the state transition probability matrix A, and the observation probability matrix B;

[0195] iv. Repeat steps ii and iii until the model parameters converge.

[0196] 3. The Hmm training engine module implements the Baum-Welch algorithm based on Java.

[0197] The model training workflow module provides a method for timed model training, which determines whether to start model training by detecting whether the device status information meets the model training conditions.

[0198] The model evaluation strategy module provides a method to evaluate the effectiveness of the updated model parameters after each model training task. The trained model is evaluated using evaluation data, and feedback is provided based on the evaluation results.

[0199] The on-device model candidate pool module provides a method for managing the parameters of different versions of models in smart devices, and manages different versions of models through a version manager.

[0200] The model update strategy module provides a method for selecting model parameters in smart devices, using a version selector to choose different versions of the model.

[0201] The model inference module provides a way to call the selected model parameters for model inference, and realizes model inference by constructing an input set as the input of the model.

[0202] The post-processing strategy module provides a way to generate K applications that the user may use in the future based on the candidate application set output by the Hidden Markov Model and the segmented post-processing method, that is, to modify the candidate application set to obtain the target application.

[0203] For example, Figure 6 A recommended implementation flowchart for the application is provided. S301, S302-S303 are executed in parallel.

[0204] S301. Merge the custom blacklist B1 and the built-in blacklist B2 to obtain blacklist B.

[0205] After obtaining blacklist B, execute step S304.

[0206] S302. Obtain a Map containing the sequence of APP usage behaviors and their context information.

[0207] S303. Select the App sequence list from the Map to obtain the original App sequence list.

[0208] S304. Filter the original APP sequence list according to the blacklist B to obtain the APP sequence list A.

[0209] List A represents the sequence of behaviors used by candidate applications.

[0210] S305. Determine if the length of list A is greater than 0. If not, execute S306; if yes, execute S309.

[0211] S306. Determine if the length of the recommendation list Set D is not less than the expected number of recommendations K. If yes, execute S307; otherwise, execute S308.

[0212] The recommended list Set D is the set of target applications.

[0213] S307, Return to the recommended list Set D.

[0214] S308: Supplement the list with K recommended applications based on the pre-set APP set.

[0215] S309. Divide list A into a first row sequence A1 and a second row sequence A2.

[0216] Where A1 has a range of A[:-windows size], and A2 has a range of A[-windows size:]

[0217] S310, Connect A2 and S HMM_TOPK Then, the parts are assembled.

[0218] S311. Generate a recommendation list D using the TOP selection algorithm.

[0219] S312. Incrementally write to the recommendation list D and update Set D.

[0220] Recommendation list D is incrementally written into recommendation list Set D, which is a Set with no duplicate elements and is ordered.

[0221] S313. Determine whether the length of the recommendation list Set D is not less than the expected number of recommendations K. If not, execute S314; if yes, execute S315.

[0222] S314. Set A1 as the new A and return to execute S305.

[0223] S315, Return to the recommended list Set D.

[0224] After returning Set D, you can select the top K recommended applications from Set D as the target applications for output.

[0225] For example, Figure 7 A flowchart is provided to illustrate the implementation of generating a recommendation list using the TOP selection algorithm.

[0226] S401, Get the APP sequence list X.

[0227] Any sequence of application usage can be used as List X. A recommendation list can be generated using the method provided in this embodiment. For example, A2 and S... HMM_TOPK The concatenated sequence is used as List X.

[0228] S402, deduplicat list X to get set C of App.

[0229] Set C includes unique Apps.

[0230] S403. Count the frequency of occurrence of APP in list X.

[0231] S404. Calculate the index of the first app that appears in reverse order in list X.

[0232] Index can be a timestamp. This step counts the index of the first app in reverse order in list X, that is, the last (i.e., most recent) time of use of each app in list X.

[0233] S405. Sort the Apps in set C according to their frequency of occurrence and index, and put the Apps with higher frequency and lower index at the top.

[0234] During the sorting process, apps are first sorted by frequency of occurrence. Apps with higher frequency of occurrence are ranked higher. If multiple apps have the same frequency of occurrence, the app with the smaller index is ranked higher in descending order. In other words, for each app, the higher the frequency of occurrence, the higher the ranking. If the frequencies of occurrence are the same, the apps that appeared more recently are ranked higher.

[0235] S406, Obtain the recommended list D.

[0236] It should be noted that the embodiments provided in this application... Figures 3-7 This can be applied to any embodiment of this application. All sequences described in the embodiments of this application are sequences formed by the behavior of using the APP at different times, but the sequences used in different purposes are usually different sequences, such as model training, inference, correction of inference results, etc.

[0237] This invention provides an application recommendation method that solves the problem of inaccurate application recommendations for users, achieving precise application recommendations and improving user experience. It enables the periodic training, management, evaluation, and selection of target application inference models on user devices, improving the model's real-time performance, accuracy, reliability, and effectiveness. It effectively utilizes the idle computing resources of user devices, increasing the efficiency and frequency of model training and saving on cloud and local computing overhead. It can select appropriate model versions for inference based on different strategies or user instructions, optimizing the model's inference effect and efficiency, and increasing the model's flexibility and adaptability.

[0238] Example 3

[0239] Figure 8 This is a schematic diagram of an application recommendation device provided in Embodiment 3 of the present invention. Figure 8 As shown, the device includes: a sequence and model acquisition module 31, a model inference module 32, a target set creation module 33, a first sequence to be processed generation module 34, and a target application determination module 35.

[0240] The sequence and model acquisition module 31 is used to acquire the application usage behavior sequence and determine the target application reasoning model.

[0241] Model reasoning module 32 is used to perform reasoning based on the application usage behavior sequence and the target application reasoning model to determine a candidate application set, wherein the candidate application set includes a preset number of candidate applications;

[0242] Target set creation module 33 is used to create a target application set;

[0243] The first pending sequence generation module 34 is used to generate a first pending behavior sequence based on the candidate application usage behavior sequence and the candidate application set, and to update the target application set based on the first pending behavior sequence to correct the candidate application set.

[0244] The target application determination module 35 is used to determine a preset number of target applications based on the updated set of target applications, so as to recommend applications according to each of the target applications.

[0245] This invention provides an application recommendation device that solves the problem of inaccurate application recommendations for users. Based on application usage behavior sequences, it uses a target application inference model to obtain a candidate application set including a preset number of candidate applications, initially determining the applications to be recommended. Then, a target application set is created, and the candidate application set is further refined based on the candidate application usage behavior sequences to generate a first behavior sequence to be processed. The target application set is updated based on the first behavior sequence to be processed, and the final target application is determined based on the updated target application set for application recommendation, achieving accurate application recommendation and improving user experience.

[0246] Optionally, the sequence and model acquisition module 31 is specifically used to: filter at least one version of the application inference model stored in advance according to the model screening strategy to determine the target application inference model;

[0247] The model selection strategy includes at least one of the following:

[0248] Filter by version number;

[0249] Screening is based on model evaluation results;

[0250] Filter by model size;

[0251] Filter according to the operation instructions.

[0252] Optional, model inference module 32 includes:

[0253] An observation state acquisition unit is used to acquire a set of observation states, which is generated based on an application installed on the user device.

[0254] An input set construction unit is configured to construct an input set based on the set of observed states and the behavioral sequence used by the application, wherein the input set includes at least one behavioral sequence to be predicted;

[0255] An observation probability determination unit is used to input the sequences of behaviors to be predicted in the input set into the target application inference model for inference, and obtain the observation probability of the application.

[0256] The candidate set determination unit is used to compare the observation probabilities of each application, select a preset number of candidate applications based on the magnitude of the observation probabilities, and generate a candidate application set.

[0257] Optionally, the input set construction unit is specifically used to: take each application in the set of observed states as the last character of the application's behavior sequence, concatenate them with the application's behavior sequence to generate a behavior sequence to be predicted; and generate an input set based on each behavior sequence to be predicted.

[0258] Optionally, the target application determination module 35 includes:

[0259] The sequence update unit is used to generate a new candidate application usage behavior sequence if the number of applications in the updated target application set is less than the preset number, return to the execution of the steps of generating a first pending behavior sequence based on the candidate application usage behavior sequence and the candidate application set, and updating the target application set based on the first pending behavior sequence, until the cutoff condition is met.

[0260] The target application determination unit is used to select a preset number of target applications based on the applications in the target application set if the number of applications in the updated target application set is not less than the preset number.

[0261] Optionally, the first sequence generation unit is specifically used for: segmenting the candidate applications using behavior sequences to obtain a first behavior sequence and a second behavior sequence; concatenating the second behavior sequence with the candidate applications in the candidate application set to obtain a second behavior sequence to be processed; and processing the applications in the second behavior sequence to be processed according to the frequency of occurrence and usage time of the applications to generate a first behavior sequence to be processed.

[0262] Optionally, the first sequence generation unit is specifically used to: denote the applications in the first sequence of behaviors to be processed as first applications; and for each first application, if the first application is not in the target application set, add the first application to the target application set.

[0263] Optionally, the target program determination unit is specifically used for: if the number of applications in the target application set is equal to a preset number, then each application in the target application set is taken as a target application; if the number of applications in the target application set is greater than the preset number, comparing the usage time and frequency of occurrence of each application in the target application set, and selecting a preset number of applications as target applications.

[0264] Optionally, the sequence update unit is specifically used to: use the first behavior sequence as a new candidate application use behavior sequence, wherein the first behavior sequence is a sequence obtained by segmenting the candidate application use behavior sequence.

[0265] Optionally, the cutoff condition is that the length of the first action sequence is 0.

[0266] Optionally, when the cutoff condition is met, the device further includes:

[0267] The pre-installed application set acquisition module is used to acquire the pre-installed application set;

[0268] The alternative application filtering module is used to filter out alternative applications from the preset application set that do not overlap with the applications in the target application set;

[0269] The alternative application addition module is used to filter out a second number of alternative applications from all alternative applications and add them to the target application set, wherein the second number is the difference between the preset number and the number of applications in the target application set;

[0270] The target application determination module is used to identify applications from the added set of target applications as target applications.

[0271] Optionally, the device may also include:

[0272] A preset application set generation module is used to obtain a list of pre-installed applications on a user device; and to select a preset number of applications from the candidate application set and the list of pre-installed applications based on their frequency of occurrence, thereby generating a preset application set.

[0273] Optionally, the device may also include:

[0274] The training judgment module is used to obtain model parameters from the model candidate pool and obtain training data when the user device's state information is detected to meet the model training conditions.

[0275] The training module is used to call upon the computing resources of the user device, train the model based on the model parameters and the training data, generate the application inference model, and release the computing resources of the user device.

[0276] Optionally, the status information includes at least one of the following: battery level, network connection status, CPU usage, memory usage, and sleep status.

[0277] Optionally, the device may also include:

[0278] The evaluation data acquisition module is used to acquire evaluation data;

[0279] The model evaluation module is used to evaluate the generated application inference model based on the evaluation data and generate evaluation results.

[0280] Optionally, the device may also include:

[0281] The first marking module is used to mark the generated application reasoning model with high priority if the evaluation result meets the first preset condition;

[0282] The second marking module is used to mark the generated application inference model as low priority, delete the application inference model or reduce the priority of the application inference model if the evaluation result meets the second preset condition.

[0283] The third marking module is used to mark the generated application reasoning model as having medium priority if the evaluation result meets the third preset condition.

[0284] Optionally, the device may also include:

[0285] A display module is configured to display each of the target applications at a preset position on the screen of a user device; and / or,

[0286] A preloading module is used to preload each of the target applications.

[0287] The application recommendation device provided in this embodiment of the invention can execute the application recommendation method provided in any embodiment of the invention, and has the corresponding functional modules and beneficial effects of the method execution.

[0288] Example 4

[0289] Figure 9 A schematic diagram of an electronic device 40 that can be used to implement embodiments of the present invention is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital assistants, cellular phones, smartphones, wearable devices (e.g., helmets, glasses, watches, etc.), and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the invention described and / or claimed herein.

[0290] like Figure 9 As shown, the electronic device 40 includes at least one processor 41 and a memory, such as a read-only memory (ROM) 42 or a random access memory (RAM) 43, communicatively connected to the at least one processor 41. The memory stores computer programs executable by the at least one processor. The processor 41 can perform various appropriate actions and processes based on the computer program stored in the ROM 42 or loaded from storage unit 48 into the RAM 43. The RAM 43 may also store various programs and data required for the operation of the electronic device 40. The processor 41, ROM 42, and RAM 43 are interconnected via a bus 44. An input / output (I / O) interface 45 is also connected to the bus 44.

[0291] Multiple components in electronic device 40 are connected to I / O interface 45, including: input unit 46, such as keyboard, mouse, etc.; output unit 47, such as various types of monitors, speakers, etc.; storage unit 48, such as disk, optical disk, etc.; and communication unit 49, such as network card, modem, wireless transceiver, etc. Communication unit 49 allows electronic device 40 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.

[0292] Processor 41 can be a variety of general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of processor 41 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various processors running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. Processor 41 performs the various methods and processes described above, such as application recommendation methods.

[0293] In some embodiments, the application recommendation method may be implemented as a computer program tangibly contained in a computer-readable storage medium, such as storage unit 48. In some embodiments, part or all of the computer program may be loaded and / or installed on electronic device 40 via ROM 42 and / or communication unit 49. When the computer program is loaded into RAM 43 and executed by processor 41, one or more steps of the application recommendation method described above may be performed. Alternatively, in other embodiments, processor 41 may be configured to execute the application recommendation method by any other suitable means (e.g., by means of firmware).

[0294] Various embodiments of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-a-chip (SoCs), payload-programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include implementations in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which may be a dedicated or general-purpose programmable processor, capable of receiving data and instructions from a storage system, at least one input device, and at least one output device, and transmitting data and instructions to the storage system, the at least one input device, and the at least one output device.

[0295] Computer programs used to implement the methods of the present invention may be written in any combination of one or more programming languages. These computer programs may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, such that when executed by the processor, the computer programs cause the functions / operations specified in the flowcharts and / or block diagrams to be performed. The computer programs may be executed entirely on a machine, partially on a machine, or as a standalone software package, partially on a machine and partially on a remote machine, or entirely on a remote machine or server.

[0296] This invention provides a computer program product, which includes a computer program that, when executed by a processor, implements the application recommendation method described in any embodiment of this invention.

[0297] In the context of this invention, a computer-readable storage medium can be a tangible medium that may contain or store a computer program for use by or in conjunction with an instruction execution system, apparatus, or device. A computer-readable storage medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination thereof. Alternatively, a computer-readable storage medium may be a machine-readable signal medium. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.

[0298] To provide interaction with a user, the systems and techniques described herein can be implemented on an electronic device having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the electronic device. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including sound input, voice input, or tactile input).

[0299] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as data servers), or middleware components (e.g., application servers), or frontend components (e.g., user computers with graphical user interfaces or web browsers through which users can interact with implementations of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., communication networks). Examples of communication networks include local area networks (LANs), wide area networks (WANs), blockchain networks, and the Internet.

[0300] A computing system can include clients and servers. Clients and servers are generally located far apart and typically interact through communication networks. The client-server relationship is created by computer programs running on the respective computers and having a client-server relationship with each other. The server can be a cloud server, also known as a cloud computing server or cloud host, which is a hosting product within the cloud computing service system to address the shortcomings of traditional physical hosts and VPS services, such as high management difficulty and weak business scalability.

[0301] It should be understood that the various forms of processes shown above can be used, with steps reordered, added, or deleted. For example, the steps described in this invention can be executed in parallel, sequentially, or in different orders, as long as the desired result of the technical solution of this invention can be achieved, and this is not limited herein.

[0302] The specific embodiments described above do not constitute a limitation on the scope of protection of this invention. Those skilled in the art should understand that various modifications, combinations, sub-combinations, and substitutions can be made according to design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of this invention should be included within the scope of protection of this invention.

Claims

1. An application recommendation method, characterized in that, Applied to user equipment, including: The application usage behavior sequence is obtained, and the target application inference model is determined. The target application inference model is obtained by filtering at least one version of the application inference model that is pre-stored according to the model filtering strategy. Each version of the application inference model is trained on the user device according to the user's usage behavior. Based on the application's behavior sequence and the target application's inference model, a candidate application set is determined. The candidate application set includes a preset number of candidate applications. The input to the target application's inference model is an input set, which includes at least one behavior sequence to be predicted. The behavior sequence to be predicted is constructed based on the set of observed states and the application's behavior sequence. Create a collection of target applications; A first behavior sequence to be processed is generated based on the behavior sequence of the candidate applications and the set of candidate applications. The set of target applications is then updated based on the first behavior sequence to be processed, so as to correct the inference results of the candidate application set. A preset number of target applications are determined based on the updated set of target applications, so as to recommend applications based on each of the target applications; The step of generating a first sequence of behaviors to be processed based on the candidate application usage behavior sequence and the candidate application set includes: The candidate application is segmented using a behavior sequence to obtain a first behavior sequence and a second behavior sequence. The candidate application is segmented using the behavior sequence according to a certain length or length ratio. The second behavior sequence is the nearest subsequence obtained from the segmentation. The first behavior sequence is the remaining part of the candidate application's behavior sequence excluding the second behavior sequence. The second behavior sequence is concatenated with the candidate applications in the candidate application set to obtain the second behavior sequence to be processed; The applications in the second sequence of pending behaviors are processed according to their frequency of occurrence and usage time to generate a first sequence of pending behaviors. The order of the applications in the first sequence of pending behaviors is as follows: applications with high frequency of occurrence are listed first, and among applications with the same frequency of occurrence, those with the closest usage time are listed first.

2. The method according to claim 1, characterized in that, The model selection strategy includes at least one of the following: Filter by version number; Screening is based on model evaluation results; Filter by model size; Filter according to the operation instructions.

3. The method according to claim 1, characterized in that, The step of determining a candidate application set based on the application's behavior sequence and the target application's inference model includes: Obtain a set of observation states, which is generated based on applications installed on the user device; An input set is constructed based on the set of observed states and the application using a sequence of behaviors, the input set including at least one sequence of behaviors to be predicted; The sequences of behaviors to be predicted in the input set are respectively input into the inference model of the target application for inference to obtain the observation probability of the application. The observation probabilities of each application are compared, a preset number of candidate applications are selected based on the magnitude of the observation probabilities, and a set of candidate applications is generated.

4. The method according to claim 3, characterized in that, The step of constructing an input set based on the set of observed states and the application using a sequence of behaviors includes: Each application in the set of observed states is taken as the last character of the application's behavior sequence and concatenated with the application's behavior sequence to generate the behavior sequence to be predicted. An input set is generated based on each of the predicted behavior sequences.

5. The method according to claim 1, characterized in that, The step of updating the target application set according to the first sequence of behaviors to be processed includes: The application in the first sequence of behaviors to be processed is referred to as the first application. For each first application, if the first application is not in the target application set, then the first application is added to the target application set.

6. The method according to claim 1, characterized in that, The determination of a preset number of target applications based on the updated set of target applications includes: If the number of applications in the updated target application set is less than the preset number, a new candidate application usage behavior sequence is generated, and the process returns to the previous steps of generating a first pending behavior sequence based on the candidate application usage behavior sequence and the candidate application set, and updating the target application set based on the first pending behavior sequence, until the cutoff condition is met. If the number of applications in the updated target application set is not less than the preset number, select the preset number of target applications based on the applications in the target application set.

7. The method according to claim 6, characterized in that, The step of selecting a preset number of target applications from the target application set includes: If the number of applications in the target application set is equal to the preset number, then each application in the target application set is taken as the target application; If the number of applications in the target application set is greater than a preset number, the usage time and frequency of each application in the target application set are compared, and a preset number of applications are selected as target applications.

8. The method according to claim 6, characterized in that, The generation of new candidate applications uses a sequence of behaviors, including: The first behavior sequence is used as a new candidate application behavior sequence, where the first behavior sequence is a sequence obtained by segmenting the candidate application behavior sequence. Accordingly, the cutoff condition is that the length of the first row sequence is 0.

9. The method according to claim 8, characterized in that, When the cutoff condition is met, the method further includes: Get the set of pre-installed applications; Select alternative applications from the preset application set that do not overlap with applications in the target application set; A second number of candidate applications are selected from all candidate applications and added to the target application set, wherein the second number is the difference between the preset number and the number of applications in the target application set; Use the applications from the added target application set as the target applications.

10. The method according to claim 9, characterized in that, The steps for generating the pre-built application set include: Get the list of pre-installed applications on the user's device; A preset set of applications is generated by filtering a predetermined number of applications from the application usage behavior sequence and the pre-installed application list based on their frequency of occurrence.

11. The method according to claim 2, characterized in that, The steps for generating the application inference model include: When the user device's status information is detected to meet the model training conditions, model parameters are obtained from the model candidate pool, and training data is acquired. The computing resources of the user device are invoked to train the model based on the model parameters and the training data, generate the application inference model, and then release the computing resources of the user device.

12. The method according to claim 11, characterized in that, The status information includes at least one of the following: battery level, network connection status, CPU usage, memory usage, and sleep status.

13. The method according to claim 11, characterized in that, Also includes: Obtain evaluation data; The generated application reasoning model is evaluated based on the evaluation data, and evaluation results are generated.

14. The method according to claim 13, characterized in that, Also includes: If the evaluation result meets the first preset condition, the generated application reasoning model is marked with high priority; If the evaluation result meets the second preset condition, the generated application inference model is marked as low priority, and the application inference model is deleted or its priority is reduced. If the evaluation result meets the third preset condition, the generated application reasoning model is marked with a medium priority.

15. The method according to any one of claims 1-14, characterized in that, Also includes: Display each of the target applications at a preset position on the user device's screen; And / or, Preload each of the target applications.

16. An electronic device, characterized in that, The electronic device includes: At least one processor, and a memory communicatively connected to said at least one processor; The memory stores a computer program that is executed by the at least one processor to enable the at least one processor to perform the application recommendation method according to any one of claims 1-15.

17. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions that cause a processor to execute the application recommendation method according to any one of claims 1-15.

18. A computer program product, characterized in that, The computer program product includes a computer program that, when executed by a processor, implements the application recommendation method according to any one of claims 1-15.

Citation Information

Patent Citations

  • APP prediction method based on pre-training user representation vector and self-attention mechanism

    CN118332189A

  • Application sequence prediction method and device, electronic equipment and storage medium

    CN120197737A