Application recommendation method, recommendation model training method and device
Patent Information
- Application Number
- CN202311594954.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-11-27
- Publication Date
- 2026-10-13
- Estimated Expiration
- 2043-11-27
AI Technical Summary
[0025]在上述实施例中,本公开通过获取包括多个用户与多个应用程序进行交互的时间信息和地点信息的交互数据集,之后根据交互数据集获得每个用户和每个应用程序的表征,从而能够根据用户的表征以及用户未使用的应用程序的表征确定向用户推荐的未使用的应用程序。本公开的推荐方法利用了用户与应用程序进行交互的时间信息和地点信息,挖掘不同时空下用户对应用程序的偏好情况以及应用程序的使用模式,为不同用户提供个性化推荐,提高应用程序的推荐的准确性。
Smart Images

Figure CN117493694B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of computer technology, and in particular to a recommendation method for applications, a training method for recommendation models, and an apparatus. Background Technology
[0002] With the rapid development of mobile networks and mobile devices, the number of applications (Apps) is also constantly increasing. Personalized application recommendations refer to mining user behavior characteristics or interests from massive amounts of application usage data, and then using algorithms and artificial intelligence technologies to recommend applications that suit users' preferences.
[0003] In related technologies, application recommendation technology is mostly based on the application's usage frequency, popularity, and user clicks. Summary of the Invention
[0004] The inventors discovered that related application recommendation technologies mainly consider user usage as a whole, without taking into account differences in user behavior habits, and therefore cannot accurately provide personalized application recommendations for different users.
[0005] One of the technical problems this disclosure aims to solve is how to improve the accuracy of application recommendations.
[0006] According to some embodiments of this disclosure, an application recommendation method is provided, comprising: obtaining an interaction dataset of multiple users and multiple applications, wherein the interaction dataset includes time information and location information of the interaction between the multiple users and the multiple applications; determining a first representation of each user among the multiple users and a second representation of each application among the multiple applications based on the interaction dataset; and determining an application to recommend to each user among the multiple users based on the first representation of each user and the second representation of each application.
[0007] In some embodiments, determining the first representation of each user among multiple users and the second representation of each application among multiple applications based on the interaction dataset includes: determining, based on the interaction dataset, interaction information on whether each user among multiple users interacts with each application among multiple applications in preset time slots and regions; constructing an interaction graph sequence between multiple users and multiple applications based on the interaction information, wherein the interaction graph sequence includes the interaction graph corresponding to each time slot; and determining the first representation of each user among multiple users and the second representation of each application among multiple applications based on the interaction graph sequence.
[0008] In some embodiments, each interaction graph in the interaction graph sequence includes: a user node corresponding to each user and an application node corresponding to each application. Each node has node attributes. The node attributes of each user node are generated based on the region where its corresponding user interacts with multiple applications. The node attributes of each application node are generated based on the region where its corresponding application interacts with multiple users. Furthermore, when there is interaction between the user and the application in the time slot corresponding to the interaction graph, an edge is configured between the user node corresponding to the user and the application node corresponding to the application.
[0009] In some embodiments, determining a first representation of each user among multiple users and a second representation of each application among multiple applications, based on an interaction graph sequence, includes: processing the interaction graph sequence through a graph convolutional network to determine a first intermediate representation sequence for each user and a second intermediate representation sequence for each application; and processing the first intermediate representation sequence for each user and the second intermediate representation sequence for each application through a gating logic unit to determine a first representation for each user and a second representation for each application.
[0010] In some embodiments, processing the interaction graph sequence using a graph convolutional network to determine the first intermediate representation sequence for each user and the second intermediate representation sequence for each application includes: determining the adjacency matrix and degree matrix of each interaction graph in the interaction graph sequence; determining the first intermediate representation of each user and the second intermediate representation of each application in each interaction graph using a graph convolutional network based on the adjacency matrix and degree matrix of each interaction graph and the node attributes of each node in each interaction graph; and forming the first intermediate representation sequence for each user and the second intermediate representation sequence for each application by combining the first intermediate representations of each user and the second intermediate representations of each application in all interaction graphs according to the order of the time slots corresponding to each interaction graph.
[0011] In some embodiments, the graph convolutional network includes a preset number of layers. Determining a first intermediate representation of each user and a second intermediate representation of each application in each interaction graph, based on the adjacency matrix and degree matrix of each interaction graph and the node attributes of each node in each interaction graph, involves: for each interaction graph, inputting the adjacency matrix and degree matrix of the interaction graph and the node attributes of each node in the interaction graph into the first layer of the graph convolutional network to obtain the first intermediate representation matrix and the second intermediate representation matrix of the interaction output by the first layer; inputting the adjacency matrix and degree matrix of the interaction, the first intermediate representation matrix and the second intermediate representation matrix of the interaction graph output by the previous layer into the current layer to obtain the first intermediate representation matrix and the second intermediate representation matrix of the interaction graph output by the current layer, until the first intermediate representation matrix and the second intermediate representation matrix of the interaction graph output by the last layer are obtained; and determining the features in the first intermediate representation matrix of the interaction graph output by the last layer as the first intermediate representation of each user in the interaction graph, and determining the features in the second intermediate representation matrix of the interaction graph output by the last layer as the second intermediate representation of each application in the interaction graph.
[0012] In some embodiments, the gating logic unit includes: a first gating logic unit, wherein the first intermediate representation sequence of each user includes the first intermediate representation of each user corresponding to each time slot, and the first intermediate representation sequence of each user and the second intermediate representation sequence of each application are processed by the gating logic unit to determine the first representation and the second representation of each application, including: inputting the first intermediate representation corresponding to the first time slot into the first gating logic unit to obtain the first hidden representation corresponding to the first time slot; inputting the first hidden representation corresponding to the previous time slot and the first intermediate representation corresponding to the current time slot into the first gating logic unit to obtain the first hidden representation corresponding to the current time slot; inputting the first hidden representation corresponding to the current time slot and the first intermediate representation corresponding to the next time slot of the current time slot into the first gating logic unit to obtain the next corresponding first hidden representation of the current time slot; inputting the first hidden feature corresponding to the second-to-last time slot and the first intermediate representation corresponding to the last time slot into the first gating logic unit to obtain the updated first intermediate representation corresponding to the last time slot, and determining it as the first representation.
[0013] In some embodiments, the gating logic unit includes: a second gating logic unit, wherein the second intermediate representation sequence of each application includes the second intermediate representation of each application corresponding to each time slot, and the gating logic unit processes the first intermediate representation sequence of each user and the second intermediate representation sequence of each application to determine the first representation of each user and the second representation of each application, including: inputting the second intermediate representation corresponding to the first time slot into the second gating logic unit to obtain the output second hidden representation corresponding to the first time slot; inputting the second hidden representation corresponding to the previous time slot and the second intermediate representation corresponding to the current time slot into the second gating logic unit to obtain the output second hidden representation corresponding to the current time slot; inputting the second hidden representation corresponding to the current time slot and the second intermediate representation corresponding to the next time slot of the current time slot into the second gating logic unit to obtain the output second hidden representation corresponding to the next time slot of the current time slot; inputting the second hidden feature corresponding to the second-to-last time slot and the second intermediate representation corresponding to the last time slot into the second gating logic unit to obtain the output updated second intermediate representation corresponding to the last time slot, and determining it as the second representation.
[0014] In some embodiments, determining the application to recommend to each of a plurality of users based on a first representation of each user and a second representation of each application includes: for each user: determining a second representation of an application that the user does not use; determining a preference value between the user and the unused application based on the user's first representation and the second representation of the unused application; and determining the unused application to recommend to the user based on the preference value.
[0015] In some embodiments, determining unused applications to recommend to a user based on preference values includes: arranging the user's unused applications in descending order of preference values to form a recommendation form; and sending the recommendation form to the user.
[0016] In some embodiments, the recommended method further includes performing gridding processing on the location information of all interactive data in the interactive dataset and mapping it to a region of preset size; updating the location information of all interactive data to the location information mapped within the region of preset size.
[0017] According to some other embodiments of this disclosure, a method for training a recommendation model for an application is provided, comprising: acquiring a sample interaction dataset of multiple sample users and multiple sample applications, wherein the sample interaction dataset includes time information and location information of the interactions between the multiple sample users and the multiple sample applications; processing the sample interaction dataset using a recommendation model to determine a first representation of each sample user among the multiple sample users and a second representation of each sample application among the multiple sample applications; determining a preference value of each sample user for each sample application based on the first representation of each sample user and the second representation of each sample application; determining a loss function based on the preference value to adjust the recommendation model through the loss function; and completing the training of the recommendation model when a termination condition is met.
[0018] In some embodiments, determining the loss function based on preference values includes: determining the positive preference value of each sample user for each sample application they have interacted with, and the negative preference value for each sample application they have not interacted with; determining the preference value gap of each sample user based on all positive preference values and all negative preference values of each sample user; and determining the loss function based on the preference value gap of all sample users.
[0019] In some embodiments, determining the preference value gap for each sample user based on all positive preference values and all negative preference values for each sample user includes: determining the gap between any positive preference value and any negative preference value for each sample user; and determining the mean of all gaps as the preference value gap for each sample user.
[0020] In some embodiments, the termination condition is that the difference between the value of the adjusted loss function and the value of the loss function before adjustment is less than a preset threshold.
[0021] According to further embodiments of this disclosure, an application recommendation apparatus is provided, comprising: an acquisition module configured to acquire an interaction dataset of multiple users and multiple applications, wherein the interaction dataset includes time information and location information of the interactions between the multiple users and the multiple applications; a first determination module configured to determine a first representation of each of the multiple users and a second representation of each of the multiple applications based on the interaction dataset; and a second determination module configured to determine an application to recommend to each of the multiple users based on the first representation of each user and the second representation of each application.
[0022] According to further embodiments of this disclosure, a training apparatus for a recommendation model of an application is provided, comprising: an acquisition module for acquiring a sample interaction dataset of multiple sample users and multiple sample applications, wherein the sample interaction dataset includes time and location information of the interactions between the multiple sample users and the multiple sample applications; a first determination module for processing the sample interaction dataset using a recommendation model to determine a first representation of each sample user and a second representation of each sample application among the multiple sample users; a second determination module for determining a preference value of each sample user for each sample application based on the first representation of each sample user and the second representation of each sample application; an adjustment module for determining a loss function based on the preference value to adjust the recommendation model using the loss function; and a completion module for completing the training of the recommendation model when a termination condition is met.
[0023] According to further embodiments of this disclosure, an electronic device is provided, including: a processor; and a memory coupled to the processor for storing instructions, which, when executed by the processor, cause the processor to perform a recommendation method for an application as described above or a training method for a recommendation model of an application as described above.
[0024] According to further embodiments of the present disclosure, a computer-readable storage medium is provided having a computer program stored thereon, wherein the program, when executed by a processor, implements steps of a recommendation method for an application as described above or steps of a training method for a recommendation model of an application as described above.
[0025] In the above embodiments, this disclosure acquires an interaction dataset including time and location information of multiple users interacting with multiple applications. Then, based on the interaction dataset, it obtains a representation of each user and each application. This allows it to determine unused applications to recommend to users based on the user's representation and the representation of applications not used by the user. The recommendation method of this disclosure utilizes the time and location information of user interactions with applications to mine user preferences for applications and application usage patterns in different time and space contexts, providing personalized recommendations for different users and improving the accuracy of application recommendations.
[0026] Other features and advantages of this disclosure will become clear from the following detailed description of exemplary embodiments with reference to the accompanying drawings. Attached Figure Description
[0027] To more clearly illustrate the technical solutions in the embodiments of this disclosure or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this disclosure. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0028] Figure 1 A flowchart illustrating a recommended method for an application according to some embodiments of the present disclosure is shown.
[0029] Figure 2 A schematic diagram of an interaction graph sequence between multiple users and multiple applications according to some embodiments of the present disclosure is shown.
[0030] Figure 3 This diagram illustrates the process of processing interactive graph sequences using graph convolutional networks and gated logic units.
[0031] Figure 4 A schematic diagram of the structure of a gated logic unit according to some embodiments of the present disclosure is shown.
[0032] Figure 5 A schematic diagram of the structure of a recommended apparatus for an application according to some embodiments of the present disclosure is shown.
[0033] Figure 6 A schematic diagram of the structure of a recommended apparatus for an application according to some other embodiments of the present disclosure is shown.
[0034] Figure 7 A schematic diagram of the structure of a recommended apparatus for an application according to further embodiments of the present disclosure is shown.
[0035] Figure 8 A flowchart illustrating a method for training a recommendation model for an application according to some embodiments of the present disclosure is shown.
[0036] Figure 9 A schematic diagram illustrating the process from training a recommendation model to using the trained model, according to some embodiments of this disclosure, is shown.
[0037] Figure 10 A schematic diagram illustrating the process from training a recommendation model to using the trained model, according to some other embodiments of this disclosure, is shown.
[0038] Figure 11 A schematic diagram of the structure of a training apparatus for a recommendation model of an application according to some embodiments of the present disclosure is shown.
[0039] Figure 12 A schematic diagram of the structure of a training apparatus for a recommendation model of an application according to other embodiments of the present disclosure is shown.
[0040] Figure 13 A schematic diagram of the structure of a training apparatus for a recommendation model of an application according to further embodiments of the present disclosure is shown. Detailed Implementation
[0041] The technical solutions of the embodiments of this disclosure will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this disclosure, and not all embodiments. The following description of at least one exemplary embodiment is merely illustrative and is in no way intended to limit this disclosure or its application or use. All other embodiments obtained by those skilled in the art based on the embodiments of this disclosure without creative effort are within the scope of protection of this disclosure.
[0042] The inventors discovered that user behavior in using applications is closely related to people's daily lives. Different users exhibit both temporal and spatial consistency and differences in their application usage. For example, on weekends, users significantly increase their use of leisure and entertainment applications such as games, shopping, and videos. However, at tourist attractions, the usage frequency of applications such as photography and maps far exceeds that of shopping applications, while the opposite is true in residential areas.
[0043] Current application recommendation methods are generally based on application usage frequency, popularity, and user clicks, which reduces the personalized experience for users.
[0044] Spatiotemporal context refers to the specific time and space environment in which an event or concept occurs, along with related background information. It encompasses the location, time, social background, and cultural factors of the event, which together constitute the overall context of the event. Dynamic spatiotemporal context, on the other hand, refers to the situational background that changes over time and space. It emphasizes that the context or background of an event may change in different times and places. Considering dynamic spatiotemporal context is crucial for building more accurate models, recommender systems, and natural language processing tasks. By analyzing and mining feature changes across different times and locations, we can better understand and predict people's behavior and needs.
[0045] The inventors' research revealed that existing recommendation methods fail to consider the temporal and spatial consistency and variability of user personalized preferences and application usage patterns. Furthermore, user personalized preferences and application usage patterns (such as trends) are dynamic processes that are constantly updated in response to various complex factors in society.
[0046] Based on this, this disclosure provides a method for recommending applications.
[0047] Figure 1 A flowchart illustrating a recommended method for an application according to some embodiments of this disclosure is shown. Figure 1 As shown, the recommended method for the application includes steps S102 to S106.
[0048] In step S102, an interaction dataset of multiple users and multiple applications is obtained, wherein the interaction dataset includes time information and location information of the interactions between multiple users and multiple applications.
[0049] Obtain a dataset of interactions between multiple users and multiple applications. This dataset includes the time and location information for each user's interaction with each application. For example, at time t, user 1 accesses application 1 at location A.
[0050] Obtaining an interaction dataset that includes time and location information of user interactions with the application can fully uncover the preferences of different users for the application at different locations and times. In other words, it can fully consider the impact of spatiotemporal differences on user application usage, thereby improving the accuracy of application recommendations.
[0051] In some embodiments, the acquired interactive dataset needs to be preprocessed. Preprocessing includes at least one of data cleaning, geographic location gridding, and data filtering to obtain a usable interactive dataset.
[0052] In this context, geographic location gridding refers to mapping the geographic locations (e.g., represented by latitude and longitude) in the interactive dataset to a predefined area, facilitating the subsequent use of location information. For example, the geographic locations in the interactive dataset can be mapped to a rectangular area with sides of 100 meters.
[0053] In some embodiments, the recommended method further includes performing gridding processing on the location information of all interactive data in the interactive dataset and mapping it to a region of preset size; updating the location information of all interactive data to the location information mapped within the region of preset size.
[0054] During the mapping process, the original area containing all geographical locations can be first gridded, and then the gridded original area can be mapped to an area of preset size.
[0055] Mapping all location information in the interactive dataset to a predefined area makes it easier to generate an interaction graph between the user and the application using the location information, reducing computational load.
[0056] In step S104, based on the interaction dataset, a first representation of each user among multiple users and a second representation of each application among multiple applications are determined.
[0057] By mining user and application representations from interaction datasets, it becomes possible to determine which applications to recommend to users based on these representations. As mentioned earlier, interaction datasets include location and time information; therefore, the user and application representations mined from these datasets can reflect spatiotemporal differences, thereby improving the accuracy of application recommendations to users.
[0058] In some embodiments, determining the first representation of each user among multiple users and the second representation of each application among multiple applications based on the interaction dataset includes: determining, based on the interaction dataset, interaction information on whether each user among multiple users interacts with each application among multiple applications in preset time slots and regions; constructing an interaction graph sequence between multiple users and multiple applications based on the interaction information, wherein the interaction graph sequence includes the interaction graph corresponding to each time slot; and determining the first representation of each user among multiple users and the second representation of each application among multiple applications based on the interaction graph sequence.
[0059] In some embodiments, based on the interaction dataset, the interaction information used to determine whether each of the multiple users interacts with each of the multiple applications within preset time slots and regions includes:
[0060] Based on time information, the interactive dataset can be divided into multiple subsets within multiple time slots. For example, if the interactive dataset involves a time length of 10 hours, it can be divided into 10 subsets based on preset time slots, such as 1 hour. Each subset corresponds to one time slot, and each subset includes the interactive data within the corresponding time slot of the interactive dataset.
[0061] Next, the interaction information within each subset is determined, specifically whether and where multiple users interacted with multiple applications. For example, the multiple users include User 1, User 2, and User 3, and the applications include Application 1, Application 2, Application 3, and Application 4. If the interaction data within a subset shows that User 1 interacted with Application 1 at location 1 and User 1 interacted with Application 2 at location 2, then the interaction information is: User 1 interacted with Application 1 at location 1, User 1 interacted with Application 2 at location 2, User 1 did not interact with Applications 3 and 4, and Users 2 and 3 did not interact with Applications 1, 2, 3, or 4.
[0062] Then, based on the interaction information corresponding to all subsets, that is, based on the interaction information corresponding to all time slots, an interaction graph sequence between multiple users and multiple applications is constructed.
[0063] In some embodiments, each interaction graph in the interaction graph sequence includes: a user node corresponding to each user and an application node corresponding to each application. Each node has node attributes. The node attributes of each user node are generated based on the region where its corresponding user interacts with multiple applications. The node attributes of each application node are generated based on the region where its corresponding application interacts with multiple users. Furthermore, when there is interaction between the user and the application in the time slot corresponding to the interaction graph, an edge is configured between the user node corresponding to the user and the application node corresponding to the application.
[0064] In some embodiments, the interaction diagram is a bipartite diagram, and the sequence of interaction diagrams can be used. The expression is represented as follows: where t = 1, 2, ..., T, t represents a time interval (a time slot), and T represents the time series length of the interaction graph sequence. V is a set of nodes, including user nodes and application nodes. Let be the edges between nodes. If there is an edge between a user node and an application node, it means that the user used the application within the current time interval t. This represents the node attributes within the current time interval t, measured by user behavior at different locations and the differences in application usage across these locations. This attribute is a 1×L dimensional vector, where L is the total number of locations. A value of 1 represents location-related behavior, and 0 represents any other location-related behavior. Specifically, for user nodes... If a location has been visited within the current time interval t and ,but The node attributes can be represented as [1, 1, 0, ..., 0]. For the App node... Location within the current time interval t , If both have been used, then The node attributes can be represented as [1,0,1,…,0].
[0065] Figure 2 A schematic diagram illustrating a sequence of interaction graphs between multiple users and multiple applications according to some embodiments of the present disclosure is shown. Figure 2 As shown, the interaction graph sequence 200 includes interaction graphs 210, 220, and 230. Interaction graphs 210, 220, and 230 correspond to three time slots, respectively. For example, interaction graph 210 corresponds to time slot 9:00-10:00, interaction graph 220 corresponds to time slot 14:00-15:00, and interaction graph 230 corresponds to time slot 19:00-20:00.
[0066] Users interact with applications differently during different time slots. For example, compared to time slot 9:00-10:00, users tend to use shopping and other applications at home during time slot 19:00-20:00.
[0067] Figure 2 In the diagram, U1~U3 represent users 1~3, and A1~A8 represent applications 1~8. The left side of interaction diagrams 210, 220, and 230 includes small rectangles, ellipses, and large rectangles representing different locations for users 1~3; for example, small rectangles represent the workplace, ellipses represent studying, and large rectangles represent home. The connection between users and applications indicates interaction between them. In interaction diagram 210, user 1 accessed applications 1 and 3 at the workplace between 9:00 and 10:00. In interaction diagram 230, users 1, 2, and 3 all accessed the applications from home.
[0068] So Figure 2 Each interaction diagram includes three user nodes, eight application nodes, and three regions (company, study, and home). For example, in interaction diagram 210, the node attribute of the user node corresponding to user 1 can be represented as (1, 0, 0), indicating that user 1 only interacted with the application at the company during time slot 9:00-10:00. In interaction diagram 220, the node attribute of the application node corresponding to application 5 can be represented as (1, 1, 0), indicating that application 5 interacted with the user at both the company and school during time slot 14:00-15:00.
[0069] Interaction graph sequences can reflect user behavior in using applications at different time intervals, thereby reflecting the changes in node attributes of users and applications over time. This allows the determined first and second representations to effectively combine spatiotemporal features to reflect user behavior preferences in using applications, and can also alleviate data sparsity problems, improving the accuracy of application recommendations for users.
[0070] In some embodiments, determining a first representation of each user among multiple users and a second representation of each application among multiple applications, based on an interaction graph sequence, includes: processing the interaction graph sequence through a graph convolutional network to determine a first intermediate representation sequence for each user and a second intermediate representation sequence for each application; and processing the first intermediate representation sequence for each user and the second intermediate representation sequence for each application through a gating logic unit to determine a first representation for each user and a second representation for each application.
[0071] Figure 3 This diagram illustrates the process of handling interaction graph sequences using graph convolutional networks and gated logic units. Figure 3 As shown, , … They represent in , … Interaction graph within time slots. After constructing the attribute graph (interaction graph), the interaction graph corresponding to each time slot is processed by a graph convolutional network (represented as GCN in the figure) to extract interaction features, thereby obtaining the first intermediate representation sequence for each user and the second intermediate representation sequence for each application. Then, two gated logic units process the first intermediate representation sequence and the second intermediate representation matrix sequence respectively to extract temporal features, thereby obtaining the representation of each node involved in the interaction graph sequence, i.e., the user representation with temporal features for each user (first representation) and the application (App) representation with temporal features for each application (second representation). Finally, recommendations are made based on the first and second representations, for example, obtaining a recommendation list of the top K applications.
[0072] The first and second intermediate representation sequences obtained by processing the interaction graph sequence through graph convolutional networks can fully reflect the relationship between user nodes and application nodes, thus obtaining a first intermediate representation sequence that combines application node information and a second intermediate representation sequence that combines user node information.
[0073] Then, by processing the first intermediate representation sequence and the second intermediate representation sequence through the gated logic unit, the temporal evolution attributes of the first intermediate representation sequence and the second intermediate representation sequence can be fully explored, thereby obtaining the first representation and the second representation with temporal information.
[0074] In some embodiments, processing the interaction graph sequence using a graph convolutional network to determine the first intermediate representation sequence for each user and the second intermediate representation sequence for each application includes: determining the adjacency matrix and degree matrix of each interaction graph in the interaction graph sequence; determining the first intermediate representation of each user and the second intermediate representation of each application in each interaction graph using a graph convolutional network based on the adjacency matrix and degree matrix of each interaction graph and the node attributes of each node in each interaction graph; and forming the first intermediate representation sequence for each user and the second intermediate representation sequence for each application by combining the first intermediate representation of each user and the second intermediate representation of each application in all interaction graphs according to the order of the time slots corresponding to each interaction graph.
[0075] Each interaction graph in the interaction graph sequence is processed using a graph convolutional network, and the first intermediate representation sequence and the second intermediate representation sequence are formed by using all the output first intermediate representations and second intermediate representations, respectively.
[0076] In some embodiments, the graph convolutional network includes a preset number of layers. Determining a first intermediate representation of each user and a second intermediate representation of each application in each interaction graph, based on the adjacency matrix and degree matrix of each interaction graph and the node attributes of each node in each interaction graph, includes: for each interaction graph, inputting the adjacency matrix and degree matrix of the interaction graph and the node attributes of each node in the interaction graph into the first layer of the graph convolutional network to obtain the first intermediate representation matrix and the second intermediate representation matrix of the interaction graph output by the first layer; inputting the adjacency matrix and degree matrix of the interaction graph, the first intermediate representation matrix and the second intermediate representation matrix of the interaction graph output by the previous layer into the current layer to obtain the first intermediate representation matrix and the second intermediate representation matrix of the interaction graph output by the current layer, until obtaining the first intermediate representation matrix and the second intermediate representation matrix of the interaction graph output by the last layer; determining the features in the first intermediate representation matrix of the interaction graph output by the last layer as the first intermediate representation of each user in the interaction graph, and determining the features in the second intermediate representation matrix of the interaction graph output by the last layer as the second intermediate representation of each application in the interaction graph.
[0077] For example, the pre-defined graph convolutional network has k layers. The adjacency matrix of the interaction graph is determined as follows. The degree matrix is D. The first... The output of a layer graph convolutional network can be used It means that, among them, , No. The first intermediate representation output by the layer graph convolutional network. Indicates the first The second intermediate representation output by the layer graph convolutional network.
[0078] So ,in, It is the first Weight parameters of a layered graph convolutional network. , It is an identity matrix, denoted as an adjacency matrix. Add a self-loop because each node in the interaction graph is 0 distance from itself, and adding a self-loop indicates that the node is connected to itself. .
[0079] In other words, the output of each layer of a graph convolutional network is obtained from the adjacency matrix, degree matrix, and the output of the previous layer. Furthermore, the output of the second layer of the graph convolutional network is obtained from the adjacency matrix, degree matrix, and node attributes. Node attributes can be similarly... The form is represented by a matrix containing user node attributes and application node attributes.
[0080] The first intermediate representation of the last layer As the first intermediate representation for multiple users, and the second intermediate representation at the last layer. As a second intermediate representation for multiple applications, it is possible to obtain the first intermediate representation for each user and the second intermediate representation for each application.
[0081] The first intermediate representation of each user and the second intermediate representation of each application obtained by the graph convolutional network fully combine the information of user nodes and application nodes. Then, the gated logic unit makes full use of the temporal characteristics of users and applications.
[0082] In some embodiments, the gating logic unit includes: a first gating logic unit, wherein the first intermediate representation sequence of each user includes the first intermediate representation of each user corresponding to each time slot, and the process of the first intermediate representation sequence of each user and the second intermediate representation sequence of each application through the gating logic unit to determine the first representation and the second representation of each application includes: inputting the first intermediate representation corresponding to the first time slot into the first gating logic unit to obtain the first hidden representation corresponding to the first time slot; inputting the first hidden representation corresponding to the previous time slot and the first intermediate representation corresponding to the current time slot into the first gating logic unit to obtain the first hidden representation corresponding to the current time slot; inputting the first hidden representation corresponding to the current time slot and the first intermediate representation corresponding to the next time slot of the current time slot into the first gating logic unit to obtain the next corresponding first hidden representation of the current time slot; inputting the first hidden feature corresponding to the second-to-last time slot and the first intermediate representation corresponding to the last time slot into the first gating logic unit to obtain the updated first intermediate representation corresponding to the last time slot, and determining it as the first representation.
[0083] The gating logic unit consists of two gating units, including an update gate and a reset gate, which enable fast and efficient computation. Figure 4 A schematic diagram of the structure of a gated logic unit according to some embodiments of the present disclosure is shown. For example... Figure 4 As shown, the gated logic unit inputs in the current time slot , Output , Used for calculations in the next time slot of the current time slot. Indicates the output of the hidden door. Indicates an update to the door. This indicates that the door is being reset.
[0084] For each first intermediate representation in the first intermediate representation sequence Update the door (referred to as) ) and reset door (denoted as The output of ) is the first hidden representation corresponding to the previous time slot. The first intermediate representation corresponding to the current time slot Determine to obtain the first hidden representation corresponding to the current time slot of the output. Then obtain the first hidden representation corresponding to the next time slot; For example, it can be represented by the following formula.
[0085]
[0086]
[0087]
[0088]
[0089]
[0090] in, Indicates the first gated logic unit. , , , , , as well as Represents the weight parameters. , , This is a bias term.
[0091] The first hidden feature corresponding to the penultimate time slot and the first intermediate representation corresponding to the last time slot are input into the first gated logic unit to obtain the updated first intermediate representation corresponding to the last time slot, which is then determined as the first representation. In this way, the output first representation combines information from all the first intermediate representations in the first intermediate representation sequence, which can improve the accuracy of subsequent application recommendations to the user based on the first representation.
[0092] In some embodiments, processing the first intermediate representation sequence and the second intermediate representation sequence through a gating logic unit to determine the first representation and the second representation includes: processing the second intermediate representation sequence through a second gating logic unit to determine the second representation of each application in the plurality of applications; for each second intermediate representation in the second intermediate representation sequence, combining it with the previous second intermediate representation in the second intermediate representation sequence to determine an updated second intermediate representation; combining it with the updated second intermediate representation to determine the next second intermediate representation in the updated second intermediate representation sequence, until the last updated second intermediate representation in the second intermediate representation sequence is determined; and the last updated second intermediate representation is determined as the second representation.
[0093] Similarly, for each second intermediate representation in the second intermediate representation sequence Update the door (referred to as) ) and reset door (denoted as The output of the first hidden representation corresponding to the previous time slot) The first intermediate representation corresponding to the current time slot Determine to obtain the first hidden representation corresponding to the current time slot of the output. Then obtain the first hidden representation corresponding to the next time slot; For example, it can be represented by the following formula.
[0094]
[0095]
[0096]
[0097]
[0098]
[0099] in, This indicates the second gated logic unit. , , , , , as well as Represents the weight parameters. , , This is a bias term.
[0100] The second hidden feature corresponding to the penultimate time slot and the second intermediate representation corresponding to the last time slot are input into the second gated logic unit to obtain the updated second intermediate representation corresponding to the last time slot, which is then determined as the second representation. This output second representation combines information from all the second intermediate representations in the second intermediate representation sequence, improving the accuracy of subsequent application recommendations to the user based on the first representation.
[0101] The first and second representations fully utilize the feature aggregation and extraction capabilities of graph convolutional networks, and combine the predictive performance of gated logic units on temporal features, thereby effectively mining the dynamic spatiotemporal features of users and applications from interactive datasets, and providing accurate application recommendation schemes.
[0102] In step S106, based on the first representation of each user and the second representation of each application, the application recommended to each of the multiple users is determined.
[0103] In some embodiments, determining the application to recommend to each of a plurality of users based on a first representation of each user and a second representation of each application includes: for each user, determining a second representation of an application that the user has not used; determining a preference value between the user and the unused application based on the user's first representation and the second representation of the unused application; and determining the application to recommend to the user based on the preference value.
[0104] In some embodiments, determining a user's preference value for an unused application based on a first representation of the user and a second representation of an unused application includes performing a vector cross product between the first and second representations and using the cross product result as the user's preference value for the application.
[0105] In some embodiments, determining unused applications to recommend to a user based on preference values includes: arranging the user's unused applications in descending order of preference values to form a recommendation form; and sending the recommendation form to the user.
[0106] Based on the user's first representation and the application's second representation, a preference value between the user and the application is obtained, and applications are recommended to the user based on this preference value. As mentioned above, the first and second representations fully utilize the time and location information of the user's interaction with the application, reflecting spatiotemporal differences. Therefore, applications that match the user's preferences can be recommended based on the first and second representations.
[0107] In the above embodiments, this disclosure acquires an interaction dataset including time and location information of multiple users interacting with multiple applications. Then, based on the interaction dataset, it obtains a representation of each user and each application. This allows it to determine unused applications to recommend to users based on the user's representation and the representation of applications not used by the user. The recommendation method of this disclosure utilizes the time and location information of user interactions with applications to mine user preferences for applications and application usage patterns in different time and space contexts, providing personalized recommendations for different users and improving the accuracy of application recommendations.
[0108] Figure 5 A schematic diagram of the structure of a recommended apparatus for an application according to some embodiments of the present disclosure is shown. For example... Figure 5 As shown, the application's recommendation device 500 includes:
[0109] The acquisition module 510 is configured to acquire an interaction dataset of multiple users and multiple applications, wherein the interaction dataset includes time and location information of the interactions between the multiple users and multiple applications;
[0110] The first determining module 520 is configured to determine a first representation of each user among a plurality of users and a second representation of each application among a plurality of applications based on the interaction dataset.
[0111] The second determining module 530 is configured to determine the application to recommend to each of the multiple users based on the first characterization of each user and the second characterization of each application.
[0112] In some embodiments, the first determining module 520 is configured to determine, based on the interaction dataset, whether each of the multiple users interacts with each of the multiple applications in each preset time slot and region; construct an interaction graph sequence between the multiple users and the multiple applications based on the interaction information, wherein the interaction graph sequence includes the interaction graph corresponding to each time slot; and determine a first representation of each of the multiple users and a second representation of each of the multiple applications based on the interaction graph sequence.
[0113] In some embodiments, each interaction graph in the interaction graph sequence includes: a user node corresponding to each user and an application node corresponding to each application. Each node has node attributes. The node attributes of each user node are generated based on the region where its corresponding user interacts with multiple applications. The node attributes of each application node are generated based on the region where its corresponding application interacts with multiple users. Furthermore, when there is interaction between the user and the application in the time slot corresponding to the interaction graph, an edge is configured between the user node corresponding to the user and the application node corresponding to the application.
[0114] In some embodiments, the first determining module 520 is configured to process the interaction graph sequence through a graph convolutional network to determine a first intermediate representation sequence for each user and a second intermediate representation sequence for each application; and to process the first intermediate representation sequence for each user and the second intermediate representation sequence for each application through a gating logic unit to determine a first representation for each user and a second representation for each application.
[0115] In some embodiments, the first determining module 520 is configured to determine the adjacency matrix and degree matrix of each interaction graph in the interaction graph sequence; determine the first intermediate representation of each user and the second intermediate representation of each application in each interaction graph through a graph convolutional network based on the adjacency matrix and degree matrix of each interaction graph and the node attributes of each node in each interaction graph; and form the first intermediate representation sequence of each user and the second intermediate representation sequence of each application in all interaction graphs according to the order of the time slots corresponding to each interaction graph.
[0116] In some embodiments, the graph convolutional network includes a preset number of layers. The first determining module 520 is configured to, for each interaction graph, input the adjacency matrix and degree matrix of the interaction graph, and the node attributes of each node in the interaction graph into the first layer of the graph convolutional network to obtain the first intermediate representation matrix and the second intermediate representation matrix of the interaction graph output by the first layer; input the adjacency matrix and degree matrix of the interaction graph, and the first intermediate representation matrix and the second intermediate representation matrix of the interaction graph output by the previous layer into the current layer to obtain the first intermediate representation matrix and the second intermediate representation matrix of the interaction graph output by the current layer, until the first intermediate representation matrix and the second intermediate representation matrix of the interaction graph output by the last layer are obtained; the features in the first intermediate representation matrix of the interaction graph output by the last layer are determined as the first intermediate representation of each user in the interaction graph, and the features in the second intermediate representation matrix of the interaction graph output by the last layer are determined as the second intermediate representation of each application in the interaction graph.
[0117] In some embodiments, the gating logic unit includes: a first gating logic unit, wherein the first determining module 520 is configured to input a first intermediate representation corresponding to a first time slot into the first gating logic unit to obtain an output first hidden representation corresponding to the first time slot; input the first hidden representation corresponding to the previous time slot and the first intermediate representation corresponding to the current time slot into the first gating logic unit to obtain an output first hidden representation corresponding to the current time slot; input the first hidden representation corresponding to the current time slot and the first intermediate representation corresponding to the next time slot of the current time slot into the first gating logic unit to obtain an output first hidden representation corresponding to the next time slot of the current time slot; and input the first hidden feature corresponding to the second-to-last time slot and the first intermediate representation corresponding to the last time slot into the first gating logic unit to obtain an output updated first intermediate representation corresponding to the last time slot, and determine it as the first representation.
[0118] In some embodiments, the gating logic unit includes a second gating logic unit, and the first determining module 520 is configured to include: inputting a second intermediate representation corresponding to a first time slot into the second gating logic unit to obtain an output second hidden representation corresponding to the first time slot; inputting a second hidden representation corresponding to the previous time slot and a second intermediate representation corresponding to the current time slot into the second gating logic unit to obtain an output second hidden representation corresponding to the current time slot; inputting a second hidden representation corresponding to the current time slot and a second intermediate representation corresponding to the next time slot of the current time slot into the second gating logic unit to obtain an output second hidden representation corresponding to the next time slot of the current time slot; inputting a second hidden feature corresponding to the second-to-last time slot and a second intermediate representation corresponding to the last time slot into the second gating logic unit to obtain an output updated second intermediate representation corresponding to the last time slot, and determining it as the second representation.
[0119] In some embodiments, the second determining module 530 is configured to, for each user, determine a second representation of an application that the user has not used; determine a preference value between the user and the unused application based on the user's first representation and the second representation of the unused application; and determine an application to recommend to the user based on the preference value.
[0120] In some embodiments, the second determining module 530 is configured to arrange unused applications by the user in descending order of preference values to form a recommendation form; and to send the recommendation form to the user.
[0121] In some embodiments, the recommendation device 500 of the application further includes: performing grid processing on the location information of all interactive data in the interactive dataset and mapping it to a region of preset size; and updating the location information of all interactive data to the location information mapped within the region of preset size.
[0122] This disclosure provides an electronic device including: a processor; and a memory coupled to the processor for storing instructions that, when executed by the processor, cause the processor to perform a recommended method of the application described above.
[0123] The electronic device disclosed herein includes an application recommendation device, which is described below in conjunction with... Figure 6 , Figure 7 Recommended devices for introducing applications.
[0124] Figure 6 A schematic diagram of the structure of a recommended apparatus for an application according to other embodiments of the present disclosure is shown. For example... Figure 6 As shown, the apparatus 600 of this embodiment includes a memory 610 and a processor 620 coupled to the memory 610. The processor 620 is configured to execute a recommended method of an application in any of the embodiments of this disclosure based on instructions stored in the memory 610.
[0125] The memory 610 may include, for example, system memory, fixed non-volatile storage media, etc. The system memory may store, for example, an operating system, application programs, a boot loader, a database, and other programs.
[0126] Figure 7 A schematic diagram of the structure of a recommended apparatus for an application according to further embodiments of the present disclosure is shown. For example... Figure 7As shown, the device 700 of this embodiment includes a memory 710 and a processor 720, which are similar to the memory 610 and processor 620, respectively. It may also include an input / output interface 730, a network interface 740, a storage interface 750, etc. These interfaces 730, 740, 750, and the memory 710 and processor 720 can be connected, for example, via a bus 760. The input / output interface 730 provides a connection interface for input / output devices such as a display, mouse, keyboard, and touchscreen. The network interface 740 provides a connection interface for various networked devices, such as connecting to a database server or cloud storage server. The storage interface 750 provides a connection interface for external storage devices such as SD cards and USB flash drives.
[0127] In the above embodiments, this disclosure acquires an interaction dataset including time and location information of multiple users interacting with multiple applications. Then, based on the interaction dataset, it obtains a representation of each user and each application. This allows it to determine unused applications to recommend to users based on the user's representation and the representation of applications not used by the user. The recommendation method of this disclosure utilizes the time and location information of user interactions with applications to mine user preferences for applications and application usage patterns in different time and space contexts, providing personalized recommendations for different users and improving the accuracy of application recommendations.
[0128] Embodiments of this disclosure also provide a computer-readable storage medium having a computer program stored thereon, characterized in that, when executed by a processor, the program implements the steps of the recommended method of the application described above.
[0129] Figure 8 A flowchart illustrating a training method for a recommendation model of an application according to some embodiments of the present disclosure is shown. Figure 8 As shown, the training method for the recommendation model of the application includes steps S802 to S810.
[0130] In step S802, a sample interaction dataset of multiple applications is obtained, wherein the sample interaction dataset includes time and location information of multiple sample users interacting with multiple sample applications.
[0131] As mentioned earlier, in some embodiments, the acquired interaction dataset needs to be preprocessed during the acquisition process. Preprocessing includes at least one of data cleaning, geographic location gridding, and data filtering to obtain a usable interaction dataset.
[0132] In step S804, the sample interaction dataset is processed by the recommendation model to determine the first representation of each sample user among multiple sample users and the second representation of each sample application among multiple sample applications.
[0133] The accuracy of the recommendation model is measured by its first and second representations. The model is continuously adjusted until a termination condition is met, at which point the first and second representations can identify a more accurate application for the user.
[0134] In step S806, the preference value of each sample user for each sample application is determined based on the first representation of each sample user and the second representation of each sample application.
[0135] In some embodiments, a vector cross product is performed between the first representation of the sample user and the second representation of the sample application, and the result of the cross product represents the sample user's preference value for the sample application.
[0136] In step S808, a loss function is determined based on the preference value, so as to adjust the recommendation model through the loss function.
[0137] In some embodiments, determining the loss function based on preference values includes: determining the positive preference value of each sample user for each sample application they have interacted with, and the negative preference value for each sample application they have not interacted with; determining the preference value gap of each sample user based on all positive preference values and all negative preference values of each sample user; and determining the loss function based on the preference value gap of all sample users.
[0138] The loss function is determined by the difference between the positive and negative preference values of each sample user for all sample applications. This loss function reflects the preference gap between sample users for interacted and uninteracted sample applications, thereby adjusting the recommendation model to fully reflect the preference gap between sample users for interacted and uninteracted sample applications. This allows the recommendation model to discover applications that tend to reflect the user's positive preference.
[0139] In some embodiments, the loss function is a Bayesian personalized ranking function, and an L2 regularization (RidgeRegression) term is added to prevent overfitting.
[0140] In some embodiments, determining the preference value gap for each sample user based on all positive preference values and all negative preference values for each sample user includes: determining the gap between any positive preference value and any negative preference value for each sample user; and determining the mean of all gaps as the preference value gap for each sample user.
[0141] In step S810, if the termination condition is met, the training of the recommendation model is completed.
[0142] In some embodiments, the termination condition is that the difference between the value of the adjusted loss function and the value of the loss function before adjustment is less than a preset threshold. For example, the termination condition could be that the values of the loss functions before and after adjustment are less than... .
[0143] After training the recommendation model, it can be used to recommend applications to users. Figure 9 A schematic diagram illustrating the flow from training a recommendation model to using the trained model, according to some embodiments of this disclosure, is shown. Figure 9 As shown, it includes steps S902 to S906.
[0144] In step S902, an interaction dataset of multiple users and multiple applications is obtained from the base station.
[0145] In some embodiments, obtaining a usable interactive dataset involves processes such as data collection, data cleaning, coordinate gridding (geographical location gridding mentioned above), and data filtering. A training set can be obtained from the interactive dataset for training the recommendation model in the following steps.
[0146] In step S904, an interaction graph (attribute graph) sequence is constructed.
[0147] In some embodiments, constructing an interaction graph sequence includes user space feature extraction (user node attributes mentioned above) and App space feature extraction (application node attributes mentioned above), thereby constructing an interaction graph (attribute graph) and an interaction graph sequence.
[0148] In step S906, the recommendation model for the application (App) is trained.
[0149] In some embodiments, training a recommendation model includes building a recommendation model, training the recommendation model, and obtaining a recommendation list for the user after the recommendation model has been trained, and then sending it to the user.
[0150] The above process can improve the accuracy of application recommendations to users, thereby increasing user satisfaction, user stickiness, mobile data usage, and revenue opportunities.
[0151] Figure 10 Schematic diagrams illustrating the flow from training a recommendation model to using the trained model, according to other embodiments of this disclosure, are shown. Figure 10 As shown, the training method for the recommendation model of the application includes steps S1002 to S1024.
[0152] In step S1002, data about the user's application (App) is obtained. This data includes the user's ID, location information (coordinates of the user's current location, e.g., latitude and longitude), the application ID used by the user (App ID), and the user's time information (current timestamp, e.g., in the format -year-month-day-hour-minute-second).
[0153] In step S1004, the data is cleaned by deleting duplicate data or data with missing fields.
[0154] In step S1006, the location information (geographical location information) in the data is processed into a grid, for example, the latitude and longitude coordinates are mapped to a square area with a side length of 100 meters.
[0155] In step S1008, the processed data is filtered. Considering user activity and location popularity, users who use fewer than 10 applications and locations in the area that use fewer than 15 applications are deleted.
[0156] In step S1010, geographic features are calculated, namely the corresponding node attributes for each user and each application.
[0157] In step S1012, an interaction (attribute) bipartite graph sequence is constructed.
[0158] In step S1014, the adjacency matrix and degree matrix of each bipartite graph in the interactive bipartite graph sequence are determined.
[0159] In step S1016, the basic parameters of the recommendation model are set, such as the sequence stride, the number of neurons in the graph convolutional network and the gated logic unit.
[0160] In step S1018, the recommendation model is trained, and the recommendation model carries spatiotemporal semantic information.
[0161] In step S1020, it is determined whether the stopping condition is met. If so, step S1022 is executed; otherwise, step S1018 is returned.
[0162] In step S1022, the training of the recommendation model is completed, and the user representation and App representation are output.
[0163] In step S1024, a recommendation list for the user is obtained based on the user representation and the App representation.
[0164] Figure 11 A schematic diagram of the structure of a training apparatus for a recommendation model of an application according to some embodiments of the present disclosure is shown. Figure 11As shown, the training device 1100 for the application's recommendation model includes:
[0165] The acquisition module 1110 acquires a sample interaction dataset of multiple sample users and multiple sample applications, wherein the sample interaction dataset includes time information and location information of the interaction between multiple sample users and multiple sample applications;
[0166] The first determining module 1120 processes the sample interaction dataset through a recommendation model to determine the first representation of each sample user among multiple sample users and the second representation of each sample application among multiple sample applications.
[0167] The second determining module 1130 determines the preference value of each sample user for each sample application based on the first representation of each sample user and the second representation of each sample application.
[0168] The adjustment module 1140 determines the loss function based on the preference value, so as to adjust the recommendation model through the loss function;
[0169] Complete module 1150 and, if the termination condition is met, complete the training of the recommendation model.
[0170] In some embodiments, the adjustment module 1140 is configured to determine the positive preference value of each sample user for each sample application they have interacted with and the negative preference value for each sample application they have not interacted with; determine the preference value gap of each sample user based on all positive preference values and all negative preference values of each sample user; and determine a loss function based on the preference value gap of all sample users.
[0171] In some embodiments, the adjustment module 1140 is configured to determine the gap between any positive preference value and any negative preference value for each sample user; and to determine the mean of all gaps as the preference value gap for each sample user.
[0172] In some embodiments, the termination condition is that the difference between the value of the adjusted loss function and the value of the loss function before adjustment is less than a preset threshold.
[0173] In the above embodiments, the loss function is determined by the difference between the positive and negative preference values of each sample user for all sample applications. This loss function can reflect the preference gap between sample users for sample applications they have interacted with and those they have not interacted with. This allows the recommendation model to be adjusted to fully reflect the preference gap between sample users for sample applications they have interacted with and those they have not interacted with, so that the recommendation model can discover applications that tend to show positive preferences of users.
[0174] The electronic device provided in this disclosure includes a memory that stores instructions, which, when executed by a processor, cause the processor to perform a training method for a recommended model of the application as described above.
[0175] The electronic device disclosed herein also includes a training device for the recommendation model of the application, which is described below in conjunction with... Figure 12 , Figure 13 Recommended devices for introducing applications.
[0176] Figure 12 A schematic diagram of the structure of a training apparatus for a recommendation model of an application according to other embodiments of the present disclosure is shown. For example... Figure 12 As shown, the apparatus 1200 of this embodiment includes a memory 1210 and a processor 1220 coupled to the memory 1210. The processor 1220 is configured to execute a recommended method of an application program in any of the embodiments of this disclosure based on instructions stored in the memory 1210.
[0177] The memory 1210 may include, for example, system memory, fixed non-volatile storage media, etc. The system memory may store, for example, an operating system, application programs, a boot loader, a database, and other programs.
[0178] Figure 13 A schematic diagram of the structure of a training apparatus for a recommendation model of an application according to further embodiments of the present disclosure is shown. Figure 13 As shown, the device 1300 of this embodiment includes a memory 1310 and a processor 1320, which are similar to the memory 1210 and processor 1220, respectively. It may also include an input / output interface 1330, a network interface 1340, a storage interface 1350, etc. These interfaces 1330, 1340, 1350, and the memory 1310 and processor 1320 can be connected, for example, via a bus 1360. The input / output interface 1330 provides a connection interface for input / output devices such as a display, mouse, keyboard, and touchscreen. The network interface 1340 provides a connection interface for various networked devices, such as connecting to a database server or cloud storage server. The storage interface 1350 provides a connection interface for external storage devices such as SD cards and USB flash drives.
[0179] In the above embodiments, the loss function is determined by the difference between the positive and negative preference values of each sample user for all sample applications. This loss function can reflect the preference gap between sample users for sample applications they have interacted with and those they have not interacted with. This allows the recommendation model to be adjusted to fully reflect the preference gap between sample users for sample applications they have interacted with and those they have not interacted with, so that the recommendation model can discover applications that tend to show positive preferences of users.
[0180] The embodiments of this disclosure provide a computer-readable storage medium that further stores a computer program, characterized in that, when executed by a processor, the program implements the steps of the training method for the recommendation model of the application described above.
[0181] Those skilled in the art will understand that embodiments of this disclosure can be provided as methods, systems, or computer program products. Therefore, this disclosure can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this disclosure can take the form of a computer program product embodied on one or more computer-usable non-transitory storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0182] This disclosure is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this disclosure. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create a machine for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0183] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0184] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0185] The above description is only a preferred embodiment of this disclosure and is not intended to limit this disclosure. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this disclosure should be included within the protection scope of this disclosure.
Claims
1. A recommendation method for an application, comprising: Obtain an interaction dataset of multiple users and multiple applications, wherein the interaction dataset includes time and location information of the interactions between the multiple users and the multiple applications; Determining a first representation of each of the multiple users and a second representation of each of the multiple applications based on the interaction dataset includes: determining, based on the interaction dataset, whether each of the multiple users interacts with each of the multiple applications in preset time slots and regions; constructing an interaction graph sequence between the multiple users and the multiple applications based on the interaction information, wherein the interaction graph sequence includes interaction graphs corresponding to each time slot, each interaction graph in the interaction graph sequence includes a user node corresponding to each user and an application node corresponding to each application, each node has node attributes, the node attributes of each user node are generated based on the region where its corresponding user interacts with the multiple applications, the node attributes of each application node are generated based on the region where its corresponding application interacts with the multiple users, and when the user and the application interact in the time slot corresponding to the interaction graph, an edge is configured between the user node corresponding to the user and the application node corresponding to the application; and determining the first representation of each of the multiple users and the second representation of each of the multiple applications based on the interaction graph sequence. Based on the first characterization of each user and the second characterization of each application, determine the application to recommend to each of the plurality of users.
2. The recommendation method according to claim 1, wherein, The step of determining the first representation of each of the plurality of users and the second representation of each of the plurality of applications based on the interaction graph sequence includes: The interaction graph sequence is processed by a graph convolutional network to determine the first intermediate representation sequence for each user and the second intermediate representation sequence for each application. The first intermediate representation sequence of each user and the second intermediate representation sequence of each application are processed by the gating logic unit to determine the first representation of each user and the second representation of each application.
3. The recommendation method according to claim 2, wherein, The step of processing the interaction graph sequence through a graph convolutional network to determine the first intermediate representation sequence for each user and the second intermediate representation sequence for each application includes: Determine the adjacency matrix and degree matrix of each interaction graph in the sequence of interaction graphs; Based on the adjacency matrix and degree matrix of each interaction graph, and the node attributes of each node in each interaction graph, a graph convolutional network is used to determine the first intermediate representation of each user and the second intermediate representation of each application in each interaction graph. According to the order of the time slots corresponding to each interaction graph, the first intermediate representation of each user and the second intermediate representation of each application in all interaction graphs are combined to form the first intermediate representation sequence of each user and the second intermediate representation sequence of each application.
4. The recommended method according to claim 3, wherein, The graph convolutional network includes a preset number of layers. The step of determining the first intermediate representation of each user and the second intermediate representation of each application in each interaction graph using the graph convolutional network, based on the adjacency matrix and degree matrix of each interaction graph and the node attributes of each node in each interaction graph, includes: for each interaction graph, The adjacency matrix and degree matrix of the interaction graph, and the node attributes of each node in the interaction graph are input into the first layer of the graph convolutional network to obtain the first intermediate representation matrix and the second intermediate representation matrix of the interaction graph output by the first layer. The adjacency matrix and degree matrix of the interaction graph, the first intermediate representation matrix and the second intermediate representation matrix of the interaction graph output by the previous layer of the current layer are input into the current layer to obtain the first intermediate representation matrix and the second intermediate representation matrix of the interaction graph output by the current layer, until the first intermediate representation matrix and the second intermediate representation matrix of the interaction graph output by the last layer are obtained. The features in the first intermediate representation matrix of the interaction graph output by the last layer are determined as the first intermediate representation of each user in the interaction graph, and the features in the second intermediate representation matrix of the interaction graph output by the last layer are determined as the second intermediate representation of each application in the interaction graph.
5. The recommendation method according to claim 2, wherein, The gating logic unit includes: a first gating logic unit, wherein the first intermediate representation sequence of each user includes the first intermediate representation of each user corresponding to each time slot, and the process of processing the first intermediate representation sequence of each user and the second intermediate representation sequence of each application through the gating logic unit to determine the first representation and the second representation of each application includes: The first intermediate representation corresponding to the first time slot is input into the first gated logic unit to obtain the first hidden representation corresponding to the first time slot output. The first hidden representation corresponding to the previous time slot and the first intermediate representation corresponding to the current time slot are input into the first gate logic unit to obtain the output first hidden representation corresponding to the current time slot; the first hidden representation corresponding to the current time slot and the first intermediate representation corresponding to the next time slot of the current time slot are input into the first gate logic unit to obtain the output next corresponding first hidden representation of the current time slot. The first hidden feature corresponding to the second-to-last time slot and the first intermediate representation corresponding to the last time slot are input into the first gated logic unit to obtain the updated first intermediate representation corresponding to the last time slot and determine it as the first representation.
6. The recommendation method according to claim 2, wherein, The gating logic unit includes a second gating logic unit. The second intermediate representation sequence of each application includes the second intermediate representation of each application corresponding to each time slot. The step of processing the first intermediate representation sequence of each user and the second intermediate representation sequence of each application through the gating logic unit to determine the first representation of each user and the second representation of each application includes: The second intermediate representation corresponding to the first time slot is input into the second gated logic unit to obtain the second hidden representation corresponding to the first time slot output. The second hidden representation corresponding to the previous time slot and the second intermediate representation corresponding to the current time slot are input into the second gate logic unit to obtain the output second hidden representation corresponding to the current time slot; the second hidden representation corresponding to the current time slot and the second intermediate representation corresponding to the next time slot of the current time slot are input into the second gate logic unit to obtain the output second hidden representation corresponding to the next time slot of the current time slot. The second hidden feature corresponding to the penultimate time slot and the second intermediate representation corresponding to the last time slot are input into the second gated logic unit to obtain the updated second intermediate representation corresponding to the last time slot and determine it as the second representation.
7. The recommendation method according to claim 1, wherein, The step of determining the application recommended to each of the plurality of users based on the first representation of each user and the second representation of each application includes: for each user, A second characterization of the applications not used by the user was determined. The user's preference value for the unused applications is determined by the user's first characterization and the user's second characterization of the unused applications. Based on the preference value, determine the application to recommend to the user.
8. The recommended method according to claim 7, wherein, The step of determining the unused applications to recommend to the user based on the preference value includes: The unused applications of the users are arranged in descending order of preference values to form a recommendation form; The recommendation form is sent to the user.
9. The recommended method according to claim 1, further comprising: The location information of all interactive data in the interactive dataset is processed into a grid and mapped to a region of preset size; Update the location information of all the interactive data to the location information mapped within the preset specification area.
10. A method for training a recommendation model for an application, comprising: Obtain a sample interaction dataset of multiple sample users and multiple sample applications, wherein the sample interaction dataset includes time information and location information of the interactions between the multiple sample users and the multiple sample applications; The recommendation model processes the sample interaction dataset to determine a first representation of each sample user and a second representation of each sample application in the plurality of sample applications. This includes: determining, based on the sample interaction dataset, whether each sample user interacts with each sample application in the plurality of sample applications within preset time slots and regions; constructing an interaction graph sequence between the plurality of sample users and the plurality of sample applications based on the interaction information, wherein the interaction graph sequence includes interaction graphs corresponding to each time slot, each interaction graph in the sequence includes a user node corresponding to each sample user and an application node corresponding to each sample application, each node having node attributes, the node attributes of each user node being generated based on the region where its corresponding sample user interacts with the plurality of sample applications, and the node attributes of each application node being generated based on the region where its corresponding sample application interacts with the plurality of sample users, and configuring an edge between the user node corresponding to the sample user and the application node corresponding to the sample application when the sample user and the sample application interact in the time slot corresponding to the interaction graph; and determining the first representation of each sample user and the second representation of each sample application in the plurality of sample applications based on the interaction graph sequence. Based on the first representation of each sample user and the second representation of each sample application, determine the preference value of each sample user for each sample application; A loss function is determined based on the preference values, and the recommendation model is adjusted using the loss function. If the termination condition is met, the training of the recommendation model is completed.
11. The training method according to claim 10, wherein, The determination of the loss function based on the preference value includes: Determine the positive preference value of each sample user for each sample application they have interacted with, and the negative preference value for each sample application they have not interacted with; The preference value gap for each sample user is determined based on all positive preference values and all negative preference values for each sample user. The loss function is determined based on the difference in preference values among all sample users.
12. The training method according to claim 11, wherein, The step of determining the preference value difference for each sample user based on all positive preference values and all negative preference values for each sample user includes: Determine the difference between any positive preference value and any negative preference value for each sample user; The mean of all the gaps is determined as the preference value gap for each sample user.
13. The training method according to claim 11, wherein, The termination condition is that the difference between the value of the loss function obtained after adjustment and the value of the loss function obtained before adjustment is less than a preset threshold.
14. A recommendation device for an application, comprising: The acquisition module is configured to acquire an interaction dataset of multiple users and multiple applications, wherein the interaction dataset includes time and location information of the interactions between the multiple users and the multiple applications; The first determining module is configured to determine, based on the interaction dataset, a first representation of each of the plurality of users and a second representation of each of the plurality of applications, including: determining, based on the interaction dataset, whether each of the plurality of users interacts with each of the plurality of applications in preset time slots and regions; constructing an interaction graph sequence between the plurality of users and the plurality of applications based on the interaction information, wherein the interaction graph sequence includes interaction graphs corresponding to each time slot, each interaction graph in the interaction graph sequence includes a user node corresponding to each user and an application node corresponding to each application, each node having node attributes, the node attributes of each user node being generated based on the region where its corresponding user interacts with the plurality of applications, the node attributes of each application node being generated based on the region where its corresponding application interacts with the plurality of users, and configuring an edge between the user node corresponding to the user and the application node corresponding to the application when the user and the application interact in the time slot corresponding to the interaction graph; and determining, based on the interaction graph sequence, the first representation of each of the plurality of users and the second representation of each of the plurality of applications. The second determining module is configured to determine the application to recommend to each of the plurality of users based on the first characterization of each user and the second characterization of each application.
15. A training apparatus for a recommendation model of an application, comprising: The acquisition module acquires a sample interaction dataset of multiple sample users and multiple sample applications, wherein the sample interaction dataset includes time information and location information of the interactions between the multiple sample users and the multiple sample applications; The first determining module processes the sample interaction dataset using the recommendation model to determine a first representation of each sample user among the plurality of sample users and a second representation of each sample application among the plurality of sample applications. This includes: determining, based on the sample interaction dataset, whether each sample user interacts with each sample application among the plurality of sample applications in preset time slots and regions; and constructing an interaction graph sequence between the plurality of sample users and the plurality of sample applications based on the interaction information, wherein the interaction graph sequence includes interaction graphs corresponding to each time slot, and each interaction graph in the interaction graph sequence includes a user-specific interaction graph corresponding to each sample user. Each user node and each sample application corresponding to a sample application are defined. Each node has node attributes. The node attributes of each user node are generated based on the region where its corresponding sample user interacts with the multiple sample applications. The node attributes of each application node are generated based on the region where its corresponding sample application interacts with the multiple sample users. When there is interaction between the sample user and the sample application in the time slot corresponding to the interaction graph, an edge is configured between the user node corresponding to the sample user and the application node corresponding to the sample application. Based on the interaction graph sequence, a first representation of each sample user among the multiple sample users and a second representation of each sample application among the multiple sample applications are determined. The second determining module determines the preference value of each sample user for each sample application based on the first representation of each sample user and the second representation of each sample application. The adjustment module determines a loss function based on the preference value, and adjusts the recommendation model using the loss function. The module completes the training of the recommendation model if the termination conditions are met.
16. An electronic device comprising: processor; as well as A memory coupled to the processor is used to store instructions that, when executed by the processor, cause the processor to perform a recommendation method for an application as described in any one of claims 1 to 9 or a training method for a recommendation model of an application as described in any one of claims 10 to 13.
17. A computer-readable storage medium having a computer program stored thereon, wherein, When the program is executed by the processor, it implements the steps of the recommendation method of the application as described in any one of claims 1 to 9 or the steps of the training method of the recommendation model of the application as described in any one of claims 10 to 13.
Citation Information
Patent Citations
Multi-behavior recommendation system based on behavior perception fusion graph convolutional network
CN116385077A