Application recommendation method, electronic equipment, storage medium and program product

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

CN120994719AActive Publication Date: 2025-11-21ZHUHAI XH SMARTCARD CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202511508852.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-10-22
Publication Date
2025-11-21
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 CN120994719A_ABST
    Figure CN120994719A_ABST
Patent Text Reader

Abstract

The invention discloses an application program recommendation method, electronic equipment, a storage medium and a program product. The method comprises the steps of obtaining an application use behavior sequence, and determining a target application reasoning model; reasoning based on the application use behavior sequence and a target application reasoning model to determine a candidate application set; creating a target application program set; generating a first to-be-processed behavior sequence according to the candidate application use behavior sequence and the candidate application set, and updating the target application 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 perform application program recommendation according to each target application program, thereby solving the problem that application program recommendation cannot be accurately performed for the user, correcting the candidate application program set according to the candidate application program use behavior sequence, and improving the user experience. Accurate recommendation of the application program is realized, and the user experience is improved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of computer, and in particular, to an application program recommendation method, an electronic device, a storage medium and a program product. BACKGROUND

[0002] With the development of technology, the application of intelligent devices is more and more extensive, for example, smart phones, smart watches and the like. Users can install different application programs on intelligent devices according to needs, preferences and the like to meet different use requirements. However, if the number of application programs of the intelligent device is relatively large, how to determine the application program to be used by the user and recommend the corresponding application program to the user becomes a problem to be solved. SUMMARY

[0003] The present application provides an application program recommendation method, an electronic device, a storage medium and a program product, which accurately recommend application programs to users.

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

[0005] obtaining an application program use behavior sequence and determining a target application program inference model;

[0006] performing inference based on the application program use behavior sequence and the target application program inference model to determine a candidate application program set, the candidate application program set including a preset number of candidate application programs;

[0007] creating a target application program set;

[0008] generating a first to-be-processed behavior sequence according to the candidate application program use behavior sequence and the candidate application program set, updating the target application program set according to the first to-be-processed behavior sequence to realize correction of the candidate application program set;

[0009] determining a preset number of target application programs based on the updated target application program set, so as to recommend application programs according to each target application program.

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

[0011] at least one processor, and a memory connected to the at least one processor in communication;

[0012] The memory stores a computer program executed by the at least one processor, and the computer program is executed by the at least one processor to enable the at least one processor to execute the application program recommendation method according to any one of the embodiments of the present application.

[0013] According to another aspect of the present application, there is provided a computer readable storage medium storing computer instructions for causing a processor to implement the application recommendation method according to any of the embodiments of the present application when executed.

[0014] According to another aspect of the present application, there is provided a computer program product comprising a computer program for implementing the application recommendation method according to any of the embodiments of the present application when executed by a processor.

[0015] The technical solution of the embodiments of the present application comprises the following steps: obtaining an application usage behavior sequence and determining a target application reasoning model; performing 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 comprises a preset number of candidate applications; creating a target application set; generating a first to-be-processed behavior sequence according to the candidate application usage behavior sequence and the candidate application set, updating the target application set according to the first to-be-processed behavior sequence to correct the candidate application set; and determining a preset number of target applications based on the updated target application set, so as to recommend applications according to the target applications. The embodiments of the present application solve the problem of being unable to accurately recommend applications to users. Based on the application usage behavior sequence, the target application reasoning model is used to perform reasoning to obtain a candidate application set comprising a preset number of candidate applications, to preliminarily determine the applications to be recommended. Then, the target application set is created, the candidate application set is further corrected according to the candidate application usage behavior sequence to generate a first to-be-processed behavior sequence, the target application set is updated according to the first to-be-processed behavior sequence, the final target applications are determined according to the updated target application set to recommend applications, the accurate recommendation of applications is achieved, and the user experience is improved.

[0016] It should be understood that the content described in this section is not intended to identify key or important features of the embodiments of the present application, nor is it used to limit the scope of the present application. Other features of the present application will become apparent from the following description. BRIEF DESCRIPTION OF DRAWINGS

[0017] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings needed in the embodiment description will be briefly introduced. Obviously, the drawings in the following description are only some embodiments of the present application, and other drawings can be obtained by those skilled in the art without creative effort.

[0018] Figure 1 is a flow chart of an application program recommendation method according to an embodiment of the present application;

[0019] Figure 2 is a flow chart of an application program recommendation method according to an embodiment of the present application;

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

[0021] Figure 4 is an example diagram of a history use behavior sequence provided by the present application;

[0022] Figure 5 is an implementation schematic diagram of a sliding window segmentation provided by the present application;

[0023] Figure 6 is an implementation flow chart of an application program recommendation provided by the present application;

[0024] Figure 7 is an implementation flow chart of generating a recommendation list by a TOP selection algorithm provided by the present application;

[0025] Figure 8 is a structural schematic diagram of an application program recommendation device according to an embodiment of the present application;

[0026] Figure 9 is a structural schematic diagram of an electronic device implementing an application program recommendation method of an embodiment of the present application. DETAILED DESCRIPTION

[0027] In order to enable persons 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 drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by persons skilled in the art without creative labor should fall within the scope of protection of the present application.

[0028] It should be noted that the terms "first", "second", and the like in the description and in the claims of the present application and above accompanying drawings are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchanged under appropriate circumstances, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein. In addition, the terms "include" and "have" and any variations thereof are intended to cover non-exclusive inclusion, for example, a process, method, system, product or device that includes a series of steps or units does not necessarily have to be limited to those steps or units clearly listed, but can include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.

[0029] Embodiment one

[0030] Figure 1 A flowchart of an application recommendation method provided for embodiment one of the present application, the present embodiment can be applicable to the application recommendation situation, the method can be executed by an application recommendation device, the application recommendation device can be realized in the form of hardware and / or software, and the application recommendation device can be configured in an electronic device. As shown in the figure, the method comprises: Figure 1

[0031] S101, obtaining an application usage behavior sequence and determining a target application reasoning model.

[0032] In the present embodiment, the application usage behavior sequence can be understood as a sequence formed by information of the user's use of the application, and can include the user's use behavior of the application at different times. The target application reasoning model can be understood as a model used for reasoning and predicting the application to be used by the user, for example, a hidden Markov model (HMM).

[0033] The data formed by the user's use of the application is collected in advance, and the model is trained according to this part of data to generate the target application reasoning model. In the training process, only one model can be generated or retained, or multiple models can be trained and retained. When recommending the application, one or more models generated in advance can be selected, and one of them can be selected as the target application reasoning model.

[0034] ​The use behavior of the user on the application in the intelligent device in a period of time is collected, for example, the use behavior of the user on the application in the intelligent device is monitored in real time; when the recommendation condition of the application is met, the use behavior of the user on the application in the intelligent device in a preset time before the current time is obtained, the application used by the user is sorted according to the order to form an application use behavior sequence. One of one or more models generated in advance is selected as a target application reasoning model, and the filtering condition can be set in advance, or can be set according to different needs of different users, or can be set according to the parameters, state and other information of the intelligent device, and the like.

[0035] In this embodiment, the candidate application can be understood as an application that can be used for recommendation to the user; the candidate application set can be understood as a data set saving the candidate application; the preset number can be set in advance, can be determined according to the number of all applications in the intelligent device, can be determined according to the size of the display screen of the intelligent device, or can be determined according to the number of commonly used applications of the user, or can be determined according to the needs of the downstream calling algorithm, and the like.

[0036] In this embodiment, the candidate application can be understood as an application that can be used for recommendation to the user; the candidate application set can be understood as a data set saving the candidate application; the preset number can be set in advance, can be determined according to the number of all applications in the intelligent device, can be determined according to the size of the display screen of the intelligent device, or can be determined according to the number of commonly used applications of the user, or can be determined according to the needs of the downstream calling algorithm, and the like.

[0037] The application use behavior sequence is taken as the input of the target application reasoning model, or the application use sequence is processed according to the preset processing mode, and the processing result is taken as the input of the target application reasoning model. The target application reasoning model combines the input data based on the knowledge learned in advance to infer, predict the application that the user is likely to use and output, take the application output by the target application reasoning model as the candidate application, and form the candidate application set based on the candidate application; wherein, the target application reasoning model can directly output a preset number of candidate applications, or the target application reasoning model predicts all applications that the user is likely to use and the probability of each application, selects a preset number of applications as candidate applications according to the probability size, and the like.

[0038] S103, creating a target application set.

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

[0040] S104, generating a first to-be-processed behavior sequence according to the candidate application usage behavior sequence and the candidate application set, and updating the target application set according to the first to-be-processed behavior sequence to correct the candidate application set.

[0041] In the embodiment, the candidate application usage behavior sequence can be understood as a sequence generated in advance according to the usage behavior of the user to the application. The candidate application usage behavior sequence can be generated by counting the historical usage data of the user to the application in a long time, or the application usage behavior sequence can be used as the candidate application usage behavior sequence, and the like. The first to-be-processed behavior sequence can be understood as a sequence formed by the operation behavior of the user to the application.

[0042] The candidate application usage behavior sequence is generated in advance according to the usage behavior of the user to the application. The candidate application usage behavior sequence can be updated in real time. When the application recommendation is performed, the candidate application usage behavior sequence generated at present is directly acquired, or the candidate application usage behavior sequence generated at present is acquired. The candidate application usage behavior sequence can be acquired simultaneously with the application usage behavior sequence, or can be acquired in sequence. The embodiment of the application does not limit this. The candidate application usage behavior sequence can directly reflect the usage behavior of the user to the application in a period of time. Based on the application in the candidate application usage behavior sequence and the candidate application in the candidate application set, the usage frequency and time of the user to the application are determined, the application with a higher usage probability is screened out, and the first to-be-processed behavior sequence is generated based on the part of the application. The application in the first to-be-processed behavior sequence is added to the target application set, and the update of the target application set is realized. The new target application set is generated through the candidate application usage behavior sequence, and the correction of the candidate application set is realized.

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

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

[0045] Based on the updated target application set, the application that the user can be interested in or use is determined, and the part of the application is used as the target application. Each target application can be used to recommend to the user, for example, a preset number of target applications are recommended to the user, and the user is facilitated to operate the target application.

[0046] The embodiment of the application provides an application program recommendation method, acquires an application program use behavior sequence, and determines a target application program inference model; carries out inference based on the application program use behavior sequence and the target application program inference model, determines a candidate application program set, and the candidate application program set includes a preset number of candidate application programs; a target application program set is created; a first to-be-processed behavior sequence is generated according to the candidate application program use behavior sequence and the candidate application program set, and the target application program set is updated according to the first to-be-processed behavior sequence, so that the candidate application program set is corrected; a preset number of target application programs are determined based on the updated target application program set, so that the application program is recommended according to each target application program, and the problem that the application program cannot be accurately recommended for a user is solved; based on the application program use behavior sequence, the target application program inference model is used for inference, a candidate application program set including a preset number of candidate application programs is obtained, the application program to be recommended is preliminarily determined, then the target application program set is created, the candidate application program set is further corrected according to the candidate application program use behavior sequence, the first to-be-processed behavior sequence is generated, the target application program set is updated according to the first to-be-processed behavior sequence, the final target application program is determined according to the updated target application program, so that the application program is recommended, the accurate recommendation of the application program is realized, and the user experience is improved.

[0047] Embodiment two

[0048] Figure 2 A flowchart of an application program recommendation method provided for the second embodiment of the application is shown in the embodiment, which is refined on the basis of the above-mentioned embodiment. As shown in the figure, the method comprises the following steps. Figure 2

[0049] S201, acquiring an application program use behavior sequence.

[0050] S202, screening at least one version of the pre-stored application program inference model according to a model screening strategy, and determining a target application program inference model.

[0051] In the embodiment, the model screening strategy can be understood as a condition and strategy for screening the model. Different versions of the application program inference model are pre-stored, and different versions of the application program inference model can be labeled according to parameters such as performance and training time. The model screening strategy is pre-set, the pre-stored at least one version of the application program inference model is screened based on the model screening strategy, and the matched application program inference model is determined as the target application program inference model.

[0052] The model screening strategy comprises at least one of the following:

[0053] ​Screening according to version numbers;

[0054] Screening according to model evaluation results;

[0055] Screening according to model sizes;

[0056] Screening according to operation instructions.

[0057] For example, according to the latest version number, the latest updated version model is selected for inference; according to the highest model evaluation, the best quality version model is selected for inference; according to the smallest model size, the most space-saving version model is selected for inference; according to the instructions of the algorithm invoker, the specified version model is selected for inference.

[0058] Embodiments of the present application 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 to the device. The model parameters can represent a model. A version manager can be set up, which can record and manage information of different version models, including but not limited to version numbers, generation times, training data, training results, model evaluation levels, etc. A version selector can be set up, which can select a version model meeting the requirements from the version manager as a target application inference model to perform an inference task according to a certain strategy or user instructions.

[0059] S201 and S202 can be executed in parallel or sequentially, and there is no strict sequence; Figure 2 Taking sequential execution as an example.

[0060] S203, a set of observation states is obtained, and the set of observation states is generated based on installed applications on a user device.

[0061] In this embodiment, the set of observation states can be understood as a set formed by applications that need to be used for usage probability prediction. The user device can be an IOT device, a smart phone, a smart watch, etc. The set of observation states in the present embodiment can be generated according to the applications already installed on the user device, that is, the applications already installed on the user device are determined, and the part of the applications is added to the set to generate the set of observation states.

[0062] S204, an input set is constructed according to the set of observation states and the application usage behavior sequence, and the input set includes at least one to-be-predicted behavior sequence.

[0063] In this embodiment, the to-be-predicted behavior sequence can be understood as a sequence used for predicting the application usage behavior of the user; the input set can be understood as a data set saving the to-be-predicted behavior sequence.

[0064] According to the set of observation states, determine the application programs that need to be predicted, and integrate this part of the application programs with the application programs in the application program usage behavior sequence to form a to-be-predicted behavior sequence, for example, splice each application program with the application program usage behavior sequence respectively to obtain the to-be-predicted behavior sequence; or determine the application programs that are used recently according to the application program usage behavior sequence, filter the application programs in the set of observation states according to this part of the application programs, splice the application programs reserved after the filtering with the application program usage behavior sequence to obtain the to-be-predicted behavior sequence; and generate an input set according to all the to-be-predicted behavior sequences obtained.

[0065] As an optional embodiment, the optional embodiment further optimizes the construction of the input set according to the set of observation states and the application program usage behavior sequence, including: taking each application program in the set of observation states as the last one of the application program usage behavior sequence respectively, splicing the application program usage behavior sequence to generate a to-be-predicted behavior sequence; and generating an input set based on the to-be-predicted behavior sequences.

[0066] Determine each application program in the set of observation states, for each application program, splice the application program as the last one of the application program usage behavior sequence with the application program usage behavior sequence to generate a to-be-predicted behavior sequence; and generate an input set based on all the to-be-predicted behavior sequences generated.

[0067] S205, input the to-be-predicted behavior sequences in the input set into the target application program inference model for inference to obtain the observation probability of the application program.

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

[0069] S206, compare the observation probabilities of the application programs, select a preset number of candidate application programs according to the size of the observation probability, and generate a candidate application program set.

[0070] Compare the observation probabilities of the application programs, determine the preset number of application programs with the largest observation probability as the candidate application programs according to the size of the observation probability, and generate a candidate application program set.

[0071] The embodiments of the present application can control the model to perform reasoning in the manner of calling an interface. For example, when an algorithm user calls a model reasoning interface to control a target application program to perform APP prediction, the probability of each to-be-predicted behavior sequence (APP sequence) needs to be estimated according to an HMM model and its parameters, so as to obtain K APPs with the maximum probability that are most likely to be used by a user next time. Therefore, APP prediction is regarded as a problem of evaluating the probability of an observation sequence.

[0072] Firstly, input of a hidden Markov model is constructed based on a historical application program usage behavior sequence L (which can be obtained through a data access module) and a set of observation states O (all installed APPs in a user device). The APPs installed by a user in the device are spliced as the last position of the behavior sequence L respectively, so that the input xi of the hidden Markov model is xi = Concat[L, Oi], Oi∈O. That is, the length of the input X is L+1, and Oi is the i th APP installed by the user. In this way, the input set X = [x1, x2, … xN] of the hidden Markov model can be generated.

[0073] Then, each to-be-predicted behavior sequence in the input set X is taken as the input of the hidden Markov model, and the observation probability of each to-be-predicted behavior sequence in the input set X is obtained through a forward algorithm. The observation probability of the data xi is considered as the observation probability of the i th APP installed in the user device, Oi.

[0074] According to the observation probability, the N APPs installed by the user are sorted, and the TOPK APPs with the highest observation probability can be obtained, that is, a candidate application program set output based on the hidden Markov model, which is denoted as S HMM_TOPK , wherein the K APPs in S HMM_TOPK are arranged in order from left to right, and the observation probability is arranged in order from low to high.

[0075] S207, creating a target application program set.

[0076] S208, generating a first to-be-processed behavior sequence according to a candidate application program usage behavior sequence and the candidate application program set, and updating the target application program set according to the first to-be-processed behavior sequence to realize correction of the candidate application program set.

[0077] S209, determining a preset number of target application programs based on the updated target application program set.

[0078] S210, displaying each target application program at a preset position on a screen of a user device; and / or, preloading each target application program.

[0079] The preset position can be set according to the operation habit of the user or set at a conspicuous position in the screen of the device, for example, each target application is displayed at a negative one screen or a home page of the screen of the user device, so as to facilitate the user to quickly find the application to be used and improve the user experience. After the target application is determined, each target application can also be loaded in the background in advance, so as to improve the starting speed of the application and improve the user experience.

[0080] As an optional embodiment, the optional embodiment further optimizes the determination of the 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, a new candidate application usage behavior sequence is generated, and the step of generating the first to-be-processed behavior sequence according to the candidate application usage behavior sequence and the candidate application set and updating the target application set according to the first to-be-processed behavior sequence is returned until the stop condition is met.

[0082] In this embodiment, the stop condition can be understood as a condition for judging whether to stop updating the candidate application usage behavior sequence, for example, the number of updates exceeds a certain threshold, the update time exceeds a certain threshold, a user's stop updating control instruction is received, and the like.

[0083] The number of applications in the target application set is counted, and if the number is not less than the preset number, the step A4 is executed. If the number is less than the preset number, it is judged whether the stop condition is met, if not, the candidate application usage behavior sequence is updated, for example, the candidate application usage behavior sequence is updated by obtaining new user operation data, or the candidate application usage behavior sequence is divided to obtain a new candidate application usage behavior sequence, and the step A2 is returned. If the stop condition is met, the updating is stopped, at this time, the number of applications in the target application set is less than the preset number, the target application can be directly determined according to the applications in the target application set, at this time, the number of target applications obtained is less than the preset number, or the applications in the target application set are supplemented, and the like.

[0084] A2, if the number of applications in the updated target application set is not less than the preset number, the preset number of target applications is selected according to 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 a preset number of target applications are selected, for example, applications with higher probabilities, higher use frequencies, and more recent use times are selected as target applications, and the like.

[0086] As an optional embodiment, the optional embodiment further optimizes generating the first to-be-processed behavior sequence according to the candidate application use behavior sequence and the candidate application set, including B1-B3:

[0087] B1, the candidate application use behavior sequence is segmented to obtain a first behavior sequence and a second behavior sequence.

[0088] In this embodiment, the first behavior sequence and the second behavior sequence can be understood as sequences formed by the use behavior of the user to the application. The candidate application use behavior sequence is segmented according to certain rules, for example, segmented according to a certain length, or segmented according to a certain length ratio, to obtain the first behavior sequence and the second behavior sequence.

[0089] B2, the second behavior sequence is spliced with the candidate applications in the candidate application set to obtain a second to-be-processed behavior sequence.

[0090] Splicing the second behavior sequence with the candidate application sequence in the candidate application set can be splicing the second behavior sequence before the first application in the candidate application sequence, or splicing the second behavior sequence after the last application in the candidate application sequence, to obtain the second to-be-processed behavior sequence.

[0091] B3, the applications in the second to-be-processed behavior sequence are processed according to the occurrence frequency and the use time of the application to generate the first to-be-processed behavior sequence.

[0092] The applications in the second to-be-processed behavior sequence are reordered according to the occurrence frequency and the use time of the application, the application with higher occurrence frequency is arranged in front, and for the applications with the same occurrence frequency, the application with the closest use time is arranged in front, to generate the first to-be-processed behavior sequence. The first to-be-processed behavior sequence in the embodiment of the application is a sequence obtained by repeating filtering the second to-be-processed behavior sequence, which can also not be sorted according to the occurrence frequency and the use time, and only the occurrence frequency and the use time of each application can be recorded. In the subsequent data processing process, the occurrence frequency and the use time are used to assist in judgment.

[0093] The application records the application program included in the second to-be-processed behavior sequence as a second application program, processes the second application program in the second to-be-processed behavior sequence according to the appearance frequency and use time of the second application program, and generates the first to-be-processed behavior sequence.

[0094] As an optional embodiment, the optional embodiment further optimizes updating the target application program set according to the first to-be-processed behavior sequence, including: recording the application program in the first to-be-processed behavior sequence as a first application program; for each first application program, if the first application program is not in the target application program set, the first application program is added to the target application program set.

[0095] In the embodiment, the first application program can be understood as an application program. All application programs contained in the to-be-processed behavior sequence are analyzed, each application program in the first to-be-processed behavior sequence is recorded as a first application program, for each first application program, it is judged whether the first application program is in the target application program set, if not, the first application program is added to the target application program set, if yes, the first application program does not need to be added to the target application program set, and the next first application program is processed.

[0096] As an optional embodiment, the optional embodiment further optimizes selecting a preset number of target application programs according to the application programs in the target application program set, including C1-C2:

[0097] C1, if the number of application programs in the target application program set is equal to the preset number, each application program in the target application program set is selected as a target application program.

[0098] C2, if the number of application programs in the target application program set is greater than the preset number, the use time and appearance frequency of each application program in the target application program set are compared, and a preset number of application programs are selected as target application programs.

[0099] If the number of application programs in the target application program set is greater than the preset number, the use time of each application program in the target application program set is compared, and a preset number of application programs with the highest appearance frequency and the most recent use time are selected as target application programs.

[0100] For example, the application programs in the target application program set are sorted according to the rule of the highest frequency and the most recent use time, the application programs with higher appearance frequency are arranged in front, and for the application programs with the same appearance frequency, the application programs with the most recent use time are arranged in front, at this time, the target application program set formed can directly select a preset number of application programs from front to back as target application programs.

[0101] Optionally, the new candidate application usage behavior sequence is generated by: taking the first behavior sequence as the new candidate application usage behavior sequence, the first behavior sequence being a sequence obtained by segmenting the candidate application usage behavior sequence.

[0102] Optionally, the stop condition is that the length of the first behavior sequence is 0.

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

[0104] D1, obtaining a preset application set.

[0105] In this embodiment, the preset application set can be understood as a pre-generated data set for saving applications, which can be generated according to pre-installed applications in the user device.

[0106] When the stop condition is that the length of the first behavior sequence is 0, if the stop condition is met, the number of applications in the target application set is less than the preset number, and the applications need to be supplemented. The pre-generated preset application set is obtained.

[0107] D2, selecting non-repeated candidate applications from the preset application set and the target application set.

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

[0109] D3, selecting a second number of candidate applications from all candidate applications and adding 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.

[0110] The number of applications in the target application set is counted, the difference between the preset number and the number is calculated, and the difference is taken as the second number. A second number of candidate applications are selected from all candidate applications and added to the target application set, and the number of applications in the target application set is the preset number.

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

[0112] As an optional embodiment, the optional embodiment further optimizes the generation step of the preset application set, including E1-E2:

[0113] E1, obtaining a pre-installed application list of the user equipment.

[0114] In the embodiment, the pre-installed application list can be understood as a list formed by built-in applications pre-installed in the equipment, wherein the built-in applications are built-in applications that cannot be deleted by the user. The built-in applications are installed in the equipment at the time of factory delivery, and the pre-installed application list is formed according to the built-in applications and stored, and is obtained directly from the corresponding storage space in use.

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

[0116] The frequency of occurrence of each application in the application usage behavior sequence and the pre-installed application list is counted, a preset number of applications with higher frequency of occurrence are selected, and a preset application set is formed.

[0117] Exemplarily, the embodiment of the application provides an implementation process for correcting the inference result of the candidate application set and determining a preset number of target applications, including the following steps:

[0118] 1, obtaining a pre-installed application list on the user equipment, which is an internal application that cannot be deleted by the user, denoted as A 预装 .

[0119] 2, from the application usage behavior sequence L and A 预装 , get the K most commonly used pre-installed Apps of the user, and take them as a preset application set, denoted as A 预TOPK , the order of the K Apps in A 预TOPK is from left to right, and the frequency of occurrence is from low to high.

[0120] 3, using the candidate application set S HMM_TOPK output by the hidden Markov model and the proposed segmented prediction method to calculate K applications that the user may use in the future, wherein the segmented prediction method is as follows;

[0121] a) First, based on the candidate application usage behavior sequence A, the A2 length subsequence is cut based on windows_size, denoted as the second behavior sequence, and the remaining part is defined as A1, denoted as the first behavior sequence, that is, 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, get the second to-be-processed behavior sequence: A2'=concat(A2, S HMM_TOPK );

[0123] c) Sort the Apps appearing in the A2' sequence according to the distance from the current time (right near left far), and arrange the Apps closer to the current time in front.

[0124] d) Count the frequency of the Apps in the A2' sequence, and arrange the Apps with higher frequency in front.

[0125] e) According to the frequency in step d and the distance in step c, respectively, remove the duplicate APPs to determine the set D composed of the remaining m Apps as the Apps most likely to be used next by the user, and the selection rule is: frequency is given priority, and if the frequency of multiple Apps is the same, the App closer to the time is selected. The order of the Apps in the set D is from left to right, that is, the App selected first is on the left side of the App selected later.

[0126] Remove the duplicate APPs to obtain the sequence composed of the remaining m Apps, which is the first to-be-processed behavior sequence, and update the set D, that is, the target application set, according to the first to-be-processed behavior sequence. In 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., a target application set) composed of m Apps can be obtained.

[0128] a) If m

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

[0130] When the length of A1 is 0, the length of the updated A is 0 at this moment, and the set D cannot be updated any more, and it is determined that the stop condition is met.

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

[0132] 5. If step 4a) cannot meet m>=K after the length of A is 0, use A 预TOPK in step 2, first in A 预TOPKThe App already existing in the set D is deleted, and the remaining A 预TOPK K-m Apps are selected to supplement into the set D, so as to ensure that the size of the finally output set D is K.

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

[0134] F1, when it is detected that the state information of the device meets the model training condition, obtaining model parameters from a model candidate pool and obtaining training data.

[0135] In the embodiment, the model training condition can be set in advance according to requirements, for example, according to the resources required for model training, according to the power required for model training, and the like. The model candidate pool saves model parameters of different versions of models, and the model parameters can represent the models. The training data are training samples.

[0136] Real-time monitoring of the state information of the device, or monitoring the state information of the device when certain conditions are met, to determine whether the state information of the device meets the model training condition. When it is detected that the state information of the device meets the model training condition, a group of model parameters are selected from the model candidate pool, and the model candidate pool can save one or more groups of model parameters, for example, the model parameters obtained after each training are saved to the model candidate pool, or it is determined whether to save the model parameters obtained in this training, and if necessary, the model parameters are saved to the model candidate pool. At the same time, the training data generated in advance are obtained.

[0137] Optionally, the state information includes at least one of the following: power, network connection state, central processing unit occupation, memory occupation, and hibernation state.

[0138] The embodiment of the application can provide a device state monitor, which monitors the state of the user device, including but not limited to power, network connection, CPU occupation, memory occupation, hibernation state, etc. A model training condition is set in advance, which means that when the user device meets certain conditions, the model training task can be executed. For example, when the user device is in a charging state, the network connection is good, the CPU occupation is low, the memory occupation is low, and the hibernation state is good. Set a timer, which can detect whether the user device meets the model training condition according to a certain time interval or triggering event. If it is met, the model training task is executed; if it is not met, the next detection is continued.

[0139] F2, calling the computing resources of the user device, performing model training based on the model parameters and the training data, generating an application inference model, and releasing the computing resources of the user device.

[0140] invoke computing resources of the user device, train the model parameters based on the training data, generate the application inference model, and release the computing resources of the user device after the training is completed. The generated application inference model can be saved as the updated model parameters in the model candidate pool.

[0141] In the prior art, a neural network model is usually deployed on a server side for modeling and prediction. This approach can use a complex model and does not need to consider the power consumption and other limitations, but there is a problem of communication delay between the intelligent device (for example, a smart watch) and the server side. The application prediction list obtained from the server side may not be able to be issued due to the network environment in which the intelligent device is located. Alternatively, the neural network model is deployed on the personal device side of the user through a model compression technology. This approach is currently gradually applied to devices with relatively large computing power such as smartphones, but there are still deployment difficulties in more miniaturized devices such as smart watches, wristbands, and the like, and various miniaturization technologies that depend on the effect of the model itself are used.

[0142] Once the miniaturized neural network model is deployed on the personal device side of the user, the parameter update of the model is usually performed through the cloud server side. This approach has a timeliness problem. The neural network model updated periodically by the cloud server side cannot capture the latest user behavior habits of the user. Secondly, due to cost and other considerations, the cloud server side cannot train a separate model for each user, so the model issued is usually a unified model without personalization, which cannot meet the personalized APP prediction needs of different users.

[0143] The method provided in the embodiments of the present application can perform model training on an intelligent device, control the training of the model by setting a model training condition, reduce the difficulty of model training, enable miniaturized devices to also perform model training, and make model deployment more convenient. Moreover, the model training and prediction are both completed on the user device, communication delay needs to be considered, prediction and recommendation can be performed in a timely manner, the user device regularly performs model training according to the use behavior of the user, captures the latest user behavior habits of the user in a timely manner, and can also perform personalized training of the model to meet the prediction needs of different users.

[0144] As an optional embodiment, the optional embodiment further includes: obtaining evaluation data; and evaluating the generated application inference model according to the evaluation data to generate an evaluation result.

[0145] In this embodiment, the evaluation data can be understood as data used for evaluating the model, which can be generated by collecting the real use behavior of the user on the application. The evaluation data can be generated in advance and saved, and directly obtained from the corresponding storage space when used. The way of evaluating the generated application inference model according to the evaluation data can be to evaluate the accuracy of the application inference model, and generate an evaluation result according to the accuracy, for example, taking the accuracy as the evaluation result, if the accuracy exceeds a preset threshold, the evaluation result is passed, otherwise, the evaluation result is failed; or, according to the evaluation data, the accuracy of the application inference model generated this time and the accuracy of the model parameters used in this training (i.e. the model of historical training) are determined respectively, the two accuracies are compared, and an evaluation result is generated, if the accuracy of the newly generated model is higher, the evaluation result is passed, otherwise, the evaluation result is failed, and the like.

[0146] When generating the evaluation result, the application embodiment can take the HR@K index as the criterion, that is, whether the label of the data is in the preset number of candidates predicted by the model.

[0147] As an optional embodiment, the further optimization of the optional embodiment includes G1-G3:

[0148] G11, if the evaluation result meets the first preset condition, the generated application inference model is marked with high priority.

[0149] G2, if the evaluation result meets the second preset condition, the generated application inference model is marked with low priority, the application inference model is deleted or the priority of the application inference model is reduced.

[0150] G3, if the evaluation result meets the third preset condition, the generated application inference model is marked with medium priority.

[0151] In this embodiment, the first preset condition, the second preset condition and the third preset condition can be set in advance, for example, the accuracy exceeds a certain threshold. The preset condition met by the evaluation result is judged, and the generated application inference model is marked with corresponding priority. The model with higher priority can be recommended for use in inference first.

[0152] The application can set a feedback device, which can generate a model evaluation level according to the evaluation result and feed back the updated model parameters. The feedback can be in various ways, for example:

[0153] a) If the evaluation result meets or exceeds the expectation, the updated model parameters can be marked as excellent and recommended to the version selector as the preferred version in inference.

[0154] b) If the evaluation result does not reach or is lower than the expectation, the updated model parameter can be marked as unqualified and deleted from the version manager or reduced in priority.

[0155] c) If the evaluation result is between the expectation and lower than the expectation, the updated model parameter can be marked as general and retained in the version manager, but not as the preferred version during reasoning.

[0156] Exemplary, Figure 3 An implementation architecture diagram of an application recommendation is provided, mainly divided into two parts: an on-end model learning system and a model reasoning system.

[0157] Among them: the on-end model learning system is mainly responsible for the training, updating and maintenance of the model parameters, which is subdivided into the following modules:

[0158] 1. Data access module: this module is mainly responsible for preprocessing the original user behavior data and processing it into sample input form required by the HMM model;

[0159] 2. Hmm training engine: this module is the training engine of the Hmm-based App prediction model, responsible for completing the training task of the Hmm model;

[0160] 3. Model training job flow: this module is mainly responsible for model training scheduling, training hyperparameter tuning, training parameter saving and other tasks;

[0161] 4. On-end model candidate pool: this module is responsible for saving model parameters obtained under different training hyperparameters;

[0162] 5. Model evaluation strategy: this module is mainly responsible for the performance evaluation of new and old models, models with different hyperparameters, and obtains the performance data of new and old models;

[0163] 6. Model update strategy: this module is mainly responsible for the update strategy of the model;

[0164] Among them, the model reasoning system is mainly responsible for the execution of the App prediction task, and outputs K (i.e. the preset number) App predicted by the model, which is subdivided into the following modules:

[0165] 1. Model reasoning module: this module is mainly responsible for calling the optimal Hmm model parameter and outputting the predicted TopK App (i.e. candidate application);

[0166] 2. Post-processing strategy module: this module is mainly responsible for processing (i.e. correcting) the TopK App output by Hmm, and outputting the required App set to the calling party (i.e. target application).

[0167] Among them, the data access module provides an APP usage data acquisition and processing method, which includes:

[0168] 1. Receive APP usage data from outside for a preset time period, generate sequence data of user using APP, and the sequence data is expressed as App historical usage behavior sequence on time axis, then generate training set and test set required by App historical usage behavior sequence model training:

[0169] a) The preset time period is represented as: the time span from the time node of calling the training task to the past;

[0170] b) App historical usage behavior sequence contains all App click event of IOT device in the preset time period, and the time information associated with each App click event. It can be understood that the associated time information includes the time of clicking App, the time of exiting App, the use time of App, etc.; In this scheme, the time sequence of App historical usage behavior sequence is represented as from left to right, denoted as sequence P;

[0171] c) App historical usage behavior sequence is represented as sorting App click events of the same user according to time sequence in the preset time period to obtain App historical usage behavior sequence with time sequence of click event;

[0172] d) The length of App historical usage behavior sequence received by the data access module is 6, which is composed of App set ABCD, and the starting order of APP is A, B, C, D, A, C. Exemplarily, Figure 4 An example diagram of historical usage behavior sequence is provided.

[0173] 2. Construct training set and test set according to App historical usage behavior sequence;

[0174] a) Filter App usage history behavior sequence P according to blacklist, and remove Apps not participating in algorithm operation. The sequence after removal is denoted as application time sequence behavior sequence M, and the length is L;

[0175] i. The blacklist refers to a set of Apps that do not participate in operation and prediction, which includes two parts, namely self-defined blacklist and built-in blacklist. The self-defined blacklist refers to the blacklist submitted by the downstream developer calling the algorithm of the scheme, and the built-in blacklist refers to the blacklist set by the algorithm developer in advance;

[0176] b) Divide application time sequence behavior sequence M into two parts according to the fixed ratio of training set and test set, the first part from left is the original sequence required to generate training set, and the second part from left is the original sequence required to generate test set;

[0177] c) Sliding window cutting of the original sequence to generate several equal-length subsequences;

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

[0179] Exemplarily, Figure 5 An implementation schematic diagram of sliding window cutting is provided.

[0180] ii. Randomly shuffle the full amount of training samples of users cut by the above cutting method to obtain a dataset file;

[0181] d) Using the cutting 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] In the Hmm training engine module, the learning method of the Hmm model required for App prediction is implemented, and the method comprises:

[0183] 1. Building a hidden Markov model, which includes five elements: hidden state S, observable state O, initial state probability matrix Π, hidden state transition probability matrix A, and observation state matrix B, and specifically includes the following processes.

[0184] a) Building hidden state S. The number of hidden states is a hyperparameter that can be obtained by tuning, and in APP prediction, the number of hidden states usually represents how many user intention habits exist in the APP sequence, so the hyperparameter setting is usually heuristic based on user data.

[0185] b) Building observable state O. The observable state O is set to include all installed apps in the user's IOT device, and the number of installed apps is set to N.

[0186] c) Building the initial state probability matrix Π, which defines the initial transition probability of each state in the state probability matrix Π to another state.

[0187] d) Building the hidden state transition probability matrix A, which is trained by the training data obtained in step 2 to obtain the hidden state transition probability matrix A.

[0188] e) Building the observation state matrix B, which is trained by the training data obtained in step 2 to obtain the observation state matrix B.

[0189] f) traverse the data samples in the training dataset in the data access module, re-estimate the hidden Markov model using each App usage sequence and the initialized hidden Markov model, and repeatedly iteratively re-estimate the re-estimated hidden Markov model until convergence, to obtain the trained hidden Markov model. Specifically, the learning algorithm of the hidden Markov model uses the commonly used Baum-Welch algorithm in the industry to estimate the three parameters (Π, A, B) of the hidden Markov model.

[0190] 2、The learning algorithm of the hidden Markov model uses the commonly used Baum-Welch algorithm in the industry to optimize 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, which is used to estimate the three parameters of the HMM model. The EM algorithm is an iterative algorithm that maximizes the likelihood function by alternately performing the E step and the M step. In the HMM, the E step calculates the probability of being in each state at each time given the current parameters; the M step updates the model parameters using these probabilities. Specifically, the process of the Baum-Welch algorithm is as follows:

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

[0193] ii. Calculate the probability of being in each observation state at each time given the current parameters using the forward algorithm and the backward algorithm;

[0194] iii. Update the model parameters using these probabilities, 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] In the model training job flow module, a method for training the model at a fixed time is provided, which determines whether to start the model training by detecting whether the state information of the device meets the model training conditions.

[0198] In the model evaluation strategy module, a method is provided for evaluating the effect of the updated model parameters after each execution of the model training task, which evaluates the trained model using evaluation data and provides feedback based on the evaluation results.

[0199] In the end-to-end model candidate pool module, a method for managing different version model parameters in a smart device is provided, and different versions of the model are managed by a version manager.

[0200] In the model update strategy module, a method for selecting model parameters in a smart device is provided, and different versions of the model are selected by a version selector.

[0201] In the model inference module, a model inference method is provided, which calls the selected model parameters to realize model inference by constructing an input set as the input of the model.

[0202] In the post-processing strategy module, a method is provided for generating K application programs that the user may use in the future according to the candidate application program set output by the hidden Markov model and the segmentation post-processing method, that is, the target application program is obtained by modifying the candidate application program set.

[0203] Exemplarily, Figure 6 An application recommendation implementation flowchart is provided. S301, S302-S303 are executed in parallel.

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

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

[0206] S302, obtain the sequence of loaded APP usage behaviors and the Map of its 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] The list A is the candidate application usage behavior sequence.

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

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

[0212] The recommendation list Set D is the target application program set.

[0213] S307, return the recommendation list Set D.

[0214] S308, complement K recommended application programs according to the preset APP set.

[0215] S309, split list A into first action sequence A1 and second action sequence A2.

[0216] Wherein, the interval of A1 is A[: -windows size], and the interval of A2 is A[-windows size:]

[0217] S310, splice A2 and S HMM_TOPK .

[0218] S311, generate a recommended list D through a TOP selection algorithm.

[0219] S312, incrementally write the recommended list D, and update Set D.

[0220] The recommended list D is incrementally written into the recommended list Set D, the recommended list Set D is a Set without repeated elements, and is in order.

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

[0222] S314, take A1 as a new A, and return to execute S305.

[0223] S315, return the recommended list Set D.

[0224] After returning the Set D, the first K in the recommended list Set D can be selected as the output target application program.

[0225] Exemplarily, Figure 7 An implementation flowchart for generating a recommended list through a TOP selection algorithm is provided.

[0226] S401, obtain an APP sequence list X.

[0227] Any application program use sequence can be taken as List X, and a recommended list is generated through the manner provided in the embodiment, for example, the sequence obtained after splicing A2 and S HMM_TOPK is taken as List X.

[0228] S402, remove duplicates from list X to obtain an App set C.

[0229] The set C includes non-repeated Apps.

[0230] S403, count the appearance frequency of the APPs in list X.

[0231] S404, count the index of the first occurrence in reverse order of the App in list X.

[0232] The index can be a timestamp, and the index of the first occurrence in reverse order of the App in list X is counted, that is, the time of the last (i.e., the latest) use of each App in list X is counted.

[0233] S405, sort the App in set C according to the frequency of occurrence and the index, and the App with a larger frequency of occurrence and a smaller index is placed in front.

[0234] During the sorting process, the frequency of occurrence is sorted first, and the App with a larger frequency of occurrence is sorted in front. If the frequency of occurrence of multiple Apps is the same, the App with a smaller index in reverse order is placed in front, that is, for each App, the higher the frequency of occurrence, the closer the time of occurrence.

[0235] S406, get the recommended list D.

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

[0237] The application embodiment provides an application program recommendation method, solves the problem that the application program cannot be accurately recommended for the user, realizes accurate recommendation of the application program, and improves user experience. The idle computing resources of the user equipment can be effectively utilized, the efficiency and frequency of model training are improved, and the computing overhead of the cloud and the local is saved. According to different strategies or user instructions, a suitable version model can be selected for inference, the effect and efficiency of model inference are optimized, and the flexibility and adaptability of model inference are increased.

[0238] Embodiment three

[0239] Figure 8 A structural schematic diagram of an application program recommendation device provided for the application embodiment three. As shown in the figure, the device comprises a sequence and model acquisition module 31, a model inference module 32, a target set creation module 33, a first to-be-processed sequence generation module 34, and a target application program determination module 35. Figure 8 ​

[0240] The sequence and model obtaining module 31 is configured to obtain an application usage behavior sequence and determine a target application inference model.

[0241] The model inference module 32 is configured to perform inference based on the application usage behavior sequence and the target application inference model to determine a candidate application set including a preset number of candidate applications.

[0242] The target set creating module 33 is configured to create a target application set.

[0243] The first to-be-processed sequence generating module 34 is configured to generate a first to-be-processed behavior sequence according to a candidate application usage behavior sequence and the candidate application set, and update the target application set according to the first to-be-processed behavior sequence to correct the candidate application set.

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

[0245] The application embodiment provides an application recommendation device, which solves the problem of inaccurate application recommendation for users, performs inference based on an application usage behavior sequence and a target application inference model to obtain a candidate application set including a preset number of candidate applications, preliminarily determines the applications to be recommended, then creates a target application set, further corrects the candidate application set according to a candidate application usage behavior sequence to generate a first to-be-processed behavior sequence, updates the target application set according to the first to-be-processed behavior sequence, determines the final target applications according to the updated target applications to recommend the applications, realizes accurate application recommendation, and improves user experience.

[0246] Optionally, the sequence and model obtaining module 31 is specifically configured to: screen at least one version of the pre-stored application inference model according to a model screening strategy to determine the target application inference model.

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

[0248] Screening according to a version number;

[0249] Screening according to a model evaluation result;

[0250] Screening according to a model size;

[0251] Filtering according to the operation instructions.

[0252] Optionally, the model inference module 32 comprises:

[0253] An observation state acquisition unit is configured to acquire a set of observation states, the set of observation states being generated based on applications installed on the user equipment;

[0254] An input set construction unit is configured to construct an input set according to the set of observation states and the application usage behavior sequence, the input set comprising at least one to-be-predicted behavior sequence;

[0255] An observation probability determination unit is configured to input the to-be-predicted behavior sequence in the input set into a target application inference model respectively for inference to obtain an observation probability of the application;

[0256] A candidate set determination unit is configured to compare the observation probabilities of the applications, select a preset number of candidate applications according to the sizes of the observation probabilities, and generate a candidate application set.

[0257] Optionally, the input set construction unit is specifically configured to: splice each application in the set of observation states as the last position of the application usage behavior sequence and the application usage behavior sequence respectively to generate a to-be-predicted behavior sequence; and generate an input set based on the to-be-predicted behavior sequences.

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

[0259] A sequence updating unit is configured to, 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, and return to execute the step of generating a first to-be-processed behavior sequence according to the candidate application usage behavior sequence and the candidate application set, updating the target application set according to the first to-be-processed behavior sequence until a cutoff condition is met.

[0260] A target program determination unit is configured to, if the number of applications in the updated target application set is not less than the preset number, select a preset number of target applications according to the applications in the target application set.

[0261] Optionally, the first sequence generating unit is specifically configured to: split the candidate application usage behavior sequence to obtain a first behavior sequence and a second behavior sequence; splice the second behavior sequence with a candidate application in the candidate application set to obtain a second to-be-processed behavior sequence; and process the applications in the second to-be-processed behavior sequence according to the appearance frequency and usage time of the applications to generate a first to-be-processed behavior sequence.

[0262] Optionally, the first sequence generating unit is specifically configured to: record the applications in the first to-be-processed behavior sequence 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 determining unit is specifically configured to: if the number of applications in the target application set is equal to the preset number, take each application in the target application set as a target application; and if the number of applications in the target application set is greater than the preset number, compare the usage time and appearance frequency of each application in the target application set, and select a preset number of applications as target applications.

[0264] Optionally, the sequence updating unit is specifically configured to: take the first behavior sequence as a new candidate application usage behavior sequence, the first behavior sequence being a sequence obtained by splitting the candidate application usage behavior sequence.

[0265] Optionally, the stop condition is that the length of the first behavior sequence is 0.

[0266] Optionally, when the stop condition is met, the apparatus further includes:

[0267] a preset program set obtaining module, configured to obtain a preset application set;

[0268] an alternative program screening module, configured to screen out alternative applications that are not repeated with the applications in the target application set from the preset application set;

[0269] an alternative program adding module, configured to screen out a second number of alternative applications from all the alternative applications and add the alternative applications to the target application set, wherein the second number is a difference between the preset number and the number of applications in the target application set;

[0270] a target program determining module, configured to take the applications in the target application set after addition as target applications.

[0271] Optionally, the apparatus further includes:

[0272] The preset set generation module is configured to acquire a pre-installed application list of the user equipment; and filter a preset number of applications from the candidate application set and the pre-installed application list according to occurrence frequencies to generate a preset application set.

[0273] Optionally, the apparatus further comprises:

[0274] The training judgment module is configured to acquire model parameters from a model candidate pool and acquire training data when detecting that state information of the user equipment satisfies a model training condition.

[0275] The training module is configured to invoke computing resources of the user equipment, perform model training based on the model parameters and the training data, generate an application inference model, and release the computing resources of the user equipment.

[0276] Optionally, the state information comprises at least one of the following: power, network connection state, central processing unit occupation, memory occupation, and hibernation state.

[0277] Optionally, the apparatus further comprises:

[0278] The evaluation data acquisition module is configured to acquire evaluation data.

[0279] The model evaluation module is configured to evaluate the generated application inference model according to the evaluation data to generate an evaluation result.

[0280] Optionally, the apparatus further comprises:

[0281] The first marking module is configured to mark the generated application inference model with a high priority if the evaluation result satisfies a first preset condition.

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

[0283] The third marking module is configured to mark the generated application inference model with a medium priority if the evaluation result satisfies a third preset condition.

[0284] Optionally, the apparatus further comprises:

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

[0286] The preloading module is configured to preload each of the target applications.

[0287] The application program recommendation device provided by the embodiment of the present application can execute the application program recommendation method provided by any embodiment of the present application, and has the function modules and beneficial effects corresponding to the execution method.

[0288] Embodiment Four

[0289] Figure 9 A structural schematic diagram of an electronic device 40 that can be used to implement embodiments of the present application is shown. The electronic device is intended to represent various forms of digital computers, such as laptops, desktops, tablets, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. The electronic device can also represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smartphones, wearable devices (e.g., headsets, glasses, watches, etc.), and other similar computing devices. The components shown here, their connections and relationships, and their functions, are meant to be examples only, and are not meant to limit implementations of the present application described and / or claimed in this document.

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

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

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

[0293] In some embodiments, the application recommendation method can be implemented as a computer program tangibly embodied in a computer readable storage medium, such as the storage unit 48. In some embodiments, part or all of the computer program can be loaded and / or installed onto the electronic device 40 via the ROM 42 and / or the communication unit 49. When the computer program is loaded onto the RAM 43 and executed by the processor 41, one or more steps of the application recommendation method described above can be performed. Alternatively, in other embodiments, the processor 41 can be configured to perform the application recommendation method by any other appropriate means, such as by means of firmware.

[0294] Various implementations of the systems and techniques described above can be realized in digital electronic circuitry, integrated circuitry, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), a system on a chip (SOC), a programmable logic device (CPLD), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and / or interpretable on a programmable system including at least one programmable processor, which can be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.

[0295] Computer programs used to implement the methods of the present application can be written in any combination of one or more programming languages. These computer programs can be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the computer program, when executed by the processor, implements the functions / acts specified in the flowcharts and / or block diagrams. The computer program can be executed entirely on a machine, partially on a machine, partially on a machine as a stand-alone software package, partially on a machine and partially on a remote machine or entirely on a remote machine or server.

[0296] The embodiment of the present application provides a computer program product, the computer program product comprises a computer program, the computer program realizes the application program recommendation method described in any embodiment of the present application when being executed by a processor.

[0297] In the context of the present application, the computer-readable storage medium can be a tangible medium that can contain or store a computer program for use by or in connection with an instruction execution system, apparatus, or device. The computer-readable storage medium can include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. Alternatively, the computer-readable storage medium can be a machine-readable signal medium. More specific examples of the machine-readable storage medium will include one or more wires, portable computer disks, hard disk drives, random access memories (RAM), read-only memories (ROM), erasable programmable read-only memories (EPROM or flash memory), optical fiber, portable compact disc read-only memories (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.

[0298] To provide for interaction with a user, the systems and techniques described here 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 a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the electronic device. Other kinds of devices can be used to provide for interaction with a user as well; 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 acoustic, speech, or tactile input.

[0299] The systems and techniques described here can be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a user computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), a blockchain network, and the Internet.

[0300] The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. The server can be a cloud server, also known as a cloud computing server or cloud host, which is a host product in the cloud computing service system, to solve the defects of large management difficulty and weak business scalability in traditional physical host and VPS service.

[0301] It should be understood that the various forms of flow shown above can be reordered, added to, or have steps deleted. For example, the steps described in the present application can be performed in parallel, in series, or in a different order, as long as the desired results of the technical solutions of the present application can be achieved, which are not limited herein.

[0302] The above detailed description does not constitute a limitation on the protection scope of the present application. 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 replacements, and improvements made within the spirit and principles of the present application shall be included in the protection scope of the present application.

Claims

1. An application program recommendation method characterized by comprising: The application comprises the following steps: acquiring an application usage behavior sequence and determining a target application inference model; performing inference based on the application usage behavior sequence and the target application inference model to determine a candidate application set, which comprises a preset number of candidate applications; creating a target application set; generating a first to-be-processed behavior sequence according to the candidate application usage behavior sequence and the candidate application set, updating the target application set according to the first to-be-processed behavior sequence to correct the inference result of the candidate application set; determining a preset number of target applications based on the updated target application set, so as to recommend applications according to the target applications.

2. The method of claim 1, wherein, The determination of the target application inference model comprises the following steps: screening at least one version of the pre-stored application inference model according to a model screening strategy to determine the target application inference model; The model screening strategy comprises at least one of the following: screening according to the version number; screening according to the model evaluation result; screening according to the model size; screening according to the operation instruction.

3. The method of claim 1, wherein, The inference based on the application usage behavior sequence and the target application inference model to determine the candidate application set comprises the following steps: acquiring a set of observation states, which are generated based on the applications installed on the user equipment; constructing an input set according to the set of observation states and the application usage behavior sequence, which comprises at least one to-be-predicted behavior sequence; inputting the to-be-predicted behavior sequence in the input set into the target application inference model for inference to obtain the observation probability of the application; comparing the observation probabilities of the applications, selecting a preset number of candidate applications according to the observation probability, and generating a candidate application set.

4. The method of claim 3, wherein, The construction of the input set according to the set of observation states and the application usage behavior sequence comprises the following steps: splicing each application in the set of observation states as the last one of the application usage behavior sequence to generate a to-be-predicted behavior sequence; generating an input set based on the to-be-predicted behavior sequence.

5. The method of claim 1, wherein, The generation of the first to-be-processed behavior sequence according to the candidate application usage behavior sequence and the candidate application set comprises the following steps: segmenting the candidate application usage behavior sequence to obtain a first behavior sequence and a second behavior sequence; splicing the second behavior sequence with the candidate applications in the candidate application set to obtain a second to-be-processed behavior sequence; processing the applications in the second to-be-processed behavior sequence according to the frequency and usage time of the applications to generate a first to-be-processed behavior sequence.

6. The method of claim 1, wherein, The updating of the target application set according to the first to-be-processed behavior sequence comprises the following steps: marking the applications in the first to-be-processed behavior sequence as first applications; For each first application, if the first application is not in the target application set, the first application is added to the target application set.

7. The method of claim 1, wherein, The determining of the preset number of target applications based on the updated target application set comprises: 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 step of executing the generation of a first to-be-processed behavior sequence based on the candidate application usage behavior sequence and the candidate application set, and the updating of the target application set based on the first to-be-processed behavior sequence is returned until a cutoff condition is met; If the number of applications in the updated target application set is not less than the preset number, the preset number of target applications is selected from the applications in the target application set.

8. The method of claim 7, wherein, The selection of the preset number of target applications from the applications in the target application set comprises: If the number of applications in the target application set is equal to the preset number, 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, the usage time and the occurrence frequency of each application in the target application set are compared, and the preset number of applications is selected as target applications.

9. The method of claim 7, wherein, The generation of the new candidate application usage behavior sequence comprises: The first behavior sequence is taken as a new candidate application usage behavior sequence, and the first behavior sequence is a sequence obtained by segmenting the candidate application usage behavior sequence; Correspondingly, the cutoff condition is that the length of the first behavior sequence is 0.

10. The method of claim 9, wherein, When the cutoff condition is met, the method further comprises: Obtaining a preset application set; Filtering out candidate applications that are not repeated with the applications in the target application set from the preset application set; Filtering out a second number of candidate applications from all candidate applications and adding 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; Taking the applications in the added target application set as target applications.

11. The method of claim 10, wherein, The generation step of the preset application set comprises: Obtaining a pre-installed application list of a user device; Filtering out a preset number of applications from the application usage behavior sequence and the pre-installed application list according to the occurrence frequency to generate a preset application set.

12. The method of claim 2, wherein, The generation step of the application inference model comprises: When it is detected that the state information of the user device meets the model training condition, model parameters are obtained from a model candidate pool, and training data are obtained; Computing resources of the user device are called, model training is performed based on the model parameters and the training data, an application inference model is generated, and the computing resources of the user device are released.

13. The method of claim 12, wherein, The state information comprises at least one of the following: power, network connection state, central processing unit occupation, memory occupation, and hibernation state.

14. The method of claim 12, wherein, Further comprising: acquiring evaluation data; evaluating the generated application inference model according to the evaluation data, and generating an evaluation result.

15. The method of claim 14, wherein, Further comprising: if the evaluation result meets a first preset condition, marking the generated application inference model as high priority; if the evaluation result meets a second preset condition, marking the generated application inference model as low priority, deleting the application inference model or reducing the priority of the application inference model; if the evaluation result meets a third preset condition, marking the generated application inference model as medium priority.

16. The method according to any one of claims 1 to 15, characterized in that, Further comprising: displaying each of the target application programs at a preset position in the screen of the user device; and / or, preloading each of the target application programs.

17. An electronic device, comprising: The electronic device comprises: at least one processor, and a memory connected in communication with the at least one processor; wherein the memory stores a computer program executed by the at least one processor, and the computer program is executed by the at least one processor to enable the at least one processor to execute the application recommendation method of any one of claims 1-16.

18. A computer-readable storage medium, characterized in that, The computer readable storage medium stores computer instructions for enabling the processor to execute the application recommendation method of any one of claims 1-16 when executed by the processor.

19. A computer program product, characterised in that, The computer program product comprises a computer program for implementing the application recommendation method according to any one of claims 1-16 when executed by the processor. The computer program product comprises a computer program for implementing the application recommendation method according to any one of claims 1-16 when executed by the processor.

Citation Information

Patent Citations

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

    CN118332189A

  • Recommendation method and device of vehicle-mounted application program, equipment, storage medium and program product

    CN118568347A

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

    CN120197737A