Recall model generation, recall method and device, electronic equipment and storage medium
Patent Information
- Application Number
- CN202110443178.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-04-23
- Publication Date
- 2026-10-09
- Estimated Expiration
- 2041-04-23
AI Technical Summary
但是,该种召回模型的性能较差,召回结果的准确度较低
[0040] In this embodiment of the invention, sample data is acquired, including sample user features of sample users, sample object features of sample objects, and sample labels. In a preset initial model, based on the sample user features and pre-stored sample user augmentation vectors of the sample users, a sample user representation vector of the sample users is generated and output. Based on the sample object features and pre-stored sample object augmentation vectors of the sample objects, a sample object representation vector of the sample objects is generated and output. The output of the initial model and the sample labels are used to determine whether training is complete. The trained model is then used as the recall model. Therefore, the recall model in this embodiment of the invention no longer analyzes user features and object features independently, but rather performs joint analysis of user features and user augmentation vectors, and joint analysis of object features and object augmentation vectors. The user augmentation vectors can represent object information related to the user, and the object augmentation vectors can represent user information related to the object, thus enabling interactive analysis, which improves the performance of the recall model and increases the accuracy of the recall results.
Smart Images

Figure CN115239404B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of Internet technology, and in particular to a recall model generation, recall method, apparatus, electronic device, and storage medium. Background Technology
[0002] Recommender systems are widely used in e-commerce, where they can filter out items of interest to users from a large pool of candidates. One of the core challenges of this large-scale recommendation system is accurately rating tens of millions or even hundreds of millions of items in real time.
[0003] A common industry practice is to view recommender systems as a two-stage architecture: a recall stage and a ranking stage. The recall stage first retrieves a small subset of relevant candidates from a large corpus, while the ranking stage ranks these candidates based on previously collected user behavior data. Clearly, the quality of the candidates retrieved in the recall stage significantly impacts the performance of subsequent modules in the recommender system. Therefore, improving the recall effectiveness on a large corpus is crucial for enhancing the overall performance of the recommender system.
[0004] Currently, recall models are typically used in the recall phase. Existing recall models usually analyze user characteristics and object characteristics independently, and then recall objects based on the analysis results. However, this type of recall model has poor performance and low accuracy of the recall results. Summary of the Invention
[0005] In view of the above problems, embodiments of the present invention provide a recall model generation, recall method, apparatus, electronic device and storage medium that overcomes or at least partially solves the above problems.
[0006] In a first aspect, embodiments of the present invention disclose a recall model generation method, comprising:
[0007] Acquire sample data; the sample data includes sample user characteristics of sample users, sample object characteristics of sample objects, and sample tags;
[0008] In the preset initial model, based on the sample user features and the pre-stored sample user augmentation vector of the sample user, the sample user representation vector of the sample user is generated and output; based on the sample object features and the pre-stored sample object augmentation vector of the sample object, the sample object representation vector of the sample object is generated and output.
[0009] Determine whether training is complete based on the output of the initial model and the sample labels;
[0010] The trained model is used as the recall model.
[0011] Optionally, the sample label is used to indicate the degree of preference of the sample user for the sample object; if training is not completed, the method further includes: for each sample user, obtaining the target sample object representation vector corresponding to the sample user as the preference indicated by the sample label, and fitting the sample user augmentation vector of the sample user to approximate the target sample object representation vector; for each sample object, obtaining the target sample user representation vector corresponding to the sample object as the preference indicated by the sample label, and fitting the sample object augmentation vector of the sample object to approximate the target sample user representation vector.
[0012] Optionally, determining whether training is complete based on the output of the initial model and the sample labels includes: calculating a first loss function based on the sample user augmentation vector and the sample object representation vector; calculating a second loss function based on the sample object augmentation vector and the sample user representation vector; calculating a third loss function based on the sample user representation vector, the sample object representation vector, and the sample labels; calculating a model loss function based on the first loss function, the second loss function, and the third loss function; and determining whether training is complete based on the model loss function.
[0013] Optionally, both the sample user representation vector and the sample object representation vector are L2-normalized vectors; based on the sample user representation vector, the sample object representation vector, and the sample label, a third loss function is calculated, including: calculating the dot product similarity between the sample user representation vector and the sample object representation vector; and calculating the cross-entropy loss function based on the dot product similarity and the sample label, as the third loss function.
[0014] Optionally, the initial model includes a user-side sub-model and an object-side sub-model. In the preset initial model, based on the sample user features and pre-stored sample user enhancement vectors of the sample users, a sample user representation vector of the sample user is generated and output; based on the sample object features and pre-stored sample object enhancement vectors of the sample objects, a sample object representation vector of the sample object is generated and output. This includes: inputting the sample user features into the user-side sub-model, generating and outputting the sample user representation vector of the sample user based on the sample user features and pre-stored sample user enhancement vectors of the sample users in the user-side sub-model; and inputting the sample object features into the object-side sub-model, generating and outputting the sample object representation vector of the sample object based on the sample object features and pre-stored sample object enhancement vectors of the sample objects in the object-side sub-model.
[0015] Optionally, generating a sample user representation vector for a sample user based on the sample user features and a pre-stored sample user augmentation vector of the sample user includes: performing a first processing on the sample user features to obtain a sample user embedding vector; concatenating the sample user embedding vector with the sample user augmentation vector to obtain a sample user augmentation embedding vector; and performing a second processing on the sample user augmentation embedding vector to obtain the sample user representation vector. Similarly, generating a sample object representation vector for a sample object based on the sample object features and a pre-stored sample object augmentation vector of the sample object includes: performing a first processing on the sample object features to obtain a sample object embedding vector; concatenating the sample object embedding vector with the sample object augmentation vector to obtain a sample object augmentation embedding vector; and performing a second processing on the sample object augmentation embedding vector to obtain the sample object representation vector.
[0016] Secondly, embodiments of the present invention disclose a recall method, including:
[0017] Obtain the user characteristics of the user to be processed;
[0018] The user features are input into the user-side sub-model of the pre-generated recall model to obtain the user representation vector of the user to be processed output by the user-side sub-model; the recall model is generated by the recall model generation method described in any of the above items;
[0019] Obtain the object representation vectors of each object that are stored in advance; the object representation vector of any object is obtained by inputting the object features of the object into the object-side sub-model in the recall model, and obtaining the object representation vector of the object output by the object-side sub-model;
[0020] Based on the user representation vector and the object representation vectors, target objects are recalled for the user to be processed.
[0021] Optionally, both the user representation vector and the object representation vector are L2-normalized vectors; the step of recalling target objects for the user to be processed based on the user representation vector and each object representation vector includes: calculating the dot product similarity between the user representation vector and each object representation vector; and selecting the multiple objects with the largest dot product similarity as the target objects.
[0022] Thirdly, embodiments of the present invention disclose a recall model generation apparatus, comprising:
[0023] The first acquisition module is used to acquire sample data; the sample data includes sample user characteristics of sample users, sample object characteristics of sample objects, and sample tags.
[0024] The generation module is used to generate and output the sample user representation vector of the sample user based on the sample user features and the sample user augmentation vector of the sample user in a preset initial model, and to generate and output the sample object representation vector of the sample object based on the sample object features and the sample object augmentation vector of the sample object in a preset initial model.
[0025] The judgment module is used to determine whether training is complete based on the output of the initial model and the sample labels;
[0026] The determination module is used to select the trained model as the recall model.
[0027] Optionally, the sample label is used to indicate the degree of preference of the sample user for the sample object; the device further includes: a first update module, used to, in the absence of completed training, for each sample user, obtain the target sample object representation vector whose sample label indicates preference, and fit the sample user augmentation vector of the sample user to approximate the target sample object representation vector; a second update module, used to, for each sample object, obtain the target sample user representation vector whose sample label indicates preference, and fit the sample object augmentation vector of the sample object to approximate the target sample user representation vector.
[0028] Optionally, the judgment module includes: a first calculation unit, configured to calculate a first loss function based on the sample user augmentation vector and the sample object representation vector; a second calculation unit, configured to calculate a second loss function based on the sample object augmentation vector and the sample user representation vector; a third calculation unit, configured to calculate a third loss function based on the sample user representation vector, the sample object representation vector, and the sample label; a fourth calculation unit, configured to calculate a model loss function based on the first loss function, the second loss function, and the third loss function; and a function judgment unit, configured to determine whether training is complete based on the model loss function.
[0029] Optionally, both the sample user representation vector and the sample object representation vector are L2-normalized vectors; the third calculation unit is specifically used to calculate the dot product similarity between the sample user representation vector and the sample object representation vector; and to calculate the cross-entropy loss function based on the dot product similarity and the sample label, as the third loss function.
[0030] Optionally, the initial model includes a user-side sub-model and an object-side sub-model; the generation module includes: a first generation unit, configured to input the sample user features into the user-side sub-model, generate and output the sample user representation vector of the sample user based on the sample user features and a pre-stored sample user augmentation vector of the sample user in the user-side sub-model; and a second generation unit, configured to input the sample object features into the object-side sub-model, generate and output the sample object representation vector of the sample object based on the sample object features and a pre-stored sample object augmentation vector of the sample object in the object-side sub-model.
[0031] Optionally, the first generation unit is specifically configured to perform a first processing on the sample user features to obtain a sample user embedding vector, concatenate the sample user embedding vector with the sample user augmentation vector to obtain a sample user augmentation embedding vector, and perform a second processing on the sample user augmentation embedding vector to obtain the sample user representation vector; the second generation unit is specifically configured to perform a first processing on the sample object features to obtain a sample object embedding vector, concatenate the sample object embedding vector with the sample object augmentation vector to obtain a sample object augmentation embedding vector, and perform a second processing on the sample object augmentation embedding vector to obtain the sample object representation vector.
[0032] Fourthly, embodiments of the present invention disclose a recall device, characterized in that it comprises:
[0033] The second acquisition module is used to acquire the user characteristics of the user to be processed;
[0034] The prediction module is used to input the user features into the user-side sub-model of the pre-generated recall model to obtain the user representation vector of the user to be processed output by the user-side sub-model; the recall model is generated by the recall model generation method described in any of the above items;
[0035] The third acquisition module is used to acquire the object representation vectors of each object that are stored in advance; the object representation vector of any object is obtained by inputting the object features of the object into the object-side sub-model in the recall model, and obtaining the object representation vector of the object output by the object-side sub-model.
[0036] The recall module is used to recall target objects for the user to be processed based on the user representation vector and the object representation vectors.
[0037] Optionally, both the user representation vector and the object representation vector are L2-normalized vectors; the recall module is specifically used to calculate the dot product similarity between the user representation vector and each object representation vector; and select the multiple objects with the largest dot product similarity as the target objects.
[0038] Fifthly, embodiments of the present invention disclose an electronic device, comprising: one or more processors; and one or more machine-readable media having instructions stored thereon; wherein when the instructions are executed by the one or more processors, the processors cause the processors to perform a recall model generation method as described in any of the preceding claims, or to perform a recall method as described in any of the preceding claims.
[0039] Sixthly, embodiments of the present invention disclose a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the recall model generation method as described in any of the preceding claims, or implements the recall method as described in any of the preceding claims.
[0040] In this embodiment of the invention, sample data is acquired, including sample user features of sample users, sample object features of sample objects, and sample labels. In a preset initial model, based on the sample user features and pre-stored sample user augmentation vectors of the sample users, a sample user representation vector of the sample users is generated and output. Based on the sample object features and pre-stored sample object augmentation vectors of the sample objects, a sample object representation vector of the sample objects is generated and output. The output of the initial model and the sample labels are used to determine whether training is complete. The trained model is then used as the recall model. Therefore, the recall model in this embodiment of the invention no longer analyzes user features and object features independently, but rather performs joint analysis of user features and user augmentation vectors, and joint analysis of object features and object augmentation vectors. The user augmentation vectors can represent object information related to the user, and the object augmentation vectors can represent user information related to the object, thus enabling interactive analysis, which improves the performance of the recall model and increases the accuracy of the recall results. Attached Figure Description
[0041] Figure 1 This is a schematic diagram of the structure of a recall model based on existing technology.
[0042] Figure 2 This is a schematic diagram of the structure of a recall model according to an embodiment of the present invention.
[0043] Figure 3 This is a flowchart of the steps of a recall model generation method according to an embodiment of the present invention.
[0044] Figure 4 This is a flowchart of a recall method according to an embodiment of the present invention.
[0045] Figure 5 This is a schematic diagram illustrating the offline effect of a model according to an embodiment of the present invention.
[0046] Figure 6 This is a schematic diagram illustrating the online effect of a model according to an embodiment of the present invention.
[0047] Figure 7 This is a structural block diagram of a recall model generation device according to an embodiment of the present invention.
[0048] Figure 8 This is a structural block diagram of a recall device according to an embodiment of the present invention. Detailed Implementation
[0049] To make the above-mentioned objects, features and advantages of the present invention more apparent and understandable, the present invention will be further described in detail below with reference to the accompanying drawings and specific embodiments.
[0050] Existing industrial-grade recall methods mainly use dual-tower deep neural networks to build recall models. Figure 1 This is a structural diagram of a recall model based on existing technology. For example... Figure 1 As shown, the left and right towers encode users and items respectively. Model training is performed simultaneously in two different "towers," which are essentially two different neural networks. The user-side tower generates user representation vectors, with user features as input. The item-side tower generates item representation vectors, with item features as input. Each tower provides its input features to its respective deep neural network. User and item features are transformed into user and item representation vectors after passing through their respective deep neural networks. During model training, the loss function is calculated based on cosine similarity to check if the network converges. However, because the item and user towers in the above model are independent, the model lacks information interaction between the two towers (information crossover between users and items), thus hindering model performance.
[0051] To address the aforementioned issues, this invention proposes a bidirectional enhanced dual-tower model as a recall model. The bidirectional enhanced dual-tower model is based on the dual-tower model, designing two enhancement vectors to capture user and object interaction information in the other tower, thereby modeling the information interaction between the two towers. Figure 2 This is a schematic diagram of the structure of a recall model according to an embodiment of the present invention. Figure 2As shown, the recall model includes a user-side sub-model (also known as the user tower) and an object-side sub-model (also known as the object tower). In the user-side sub-model, user features are no longer analyzed separately; instead, user features and user augmentation vectors are jointly analyzed. Similarly, in the object-side sub-model, object features are no longer analyzed separately; instead, object features and object augmentation vectors are jointly analyzed. A detailed analysis of the recall model will be provided below. Figure 2 Please provide an explanation.
[0052] It should be noted that the recall model in this embodiment of the invention can be applied to the object recall process. Object recall can be applied to various scenarios such as users watching movies and browsing web pages, and the recalled objects can include, but are not limited to, at least one of the following: products, movies, etc.
[0053] Reference Figure 3 The diagram illustrates a flowchart of a recall model generation method according to an embodiment of the present invention.
[0054] like Figure 3 As shown, the recall model generation method may include the following steps:
[0055] Step 301: Obtain sample data, which includes sample user characteristics of sample users, sample object characteristics of sample objects, and sample tags.
[0056] A large amount of historical data is obtained from the Internet, and a sample set is constructed based on this historical data. Each sample data in the sample set can include a pair of related information between a sample user and a sample object. Specifically, a sample data can include the sample user characteristics of a sample user, the sample object characteristics of a sample object, and a sample label.
[0057] Sample labels are used to indicate the degree of preference of sample users in the sample data for sample objects in the sample data. Optionally, the degree of preference can be either a yes or a no preference, or a preference score. For example, if the degree of preference of sample users in the sample data for sample objects in the sample data is yes, then the sample label indicates preference, such as setting the sample label to "1"; if the degree of preference of sample users in the sample data for sample objects in the sample data is no, then the sample label indicates no preference, such as setting the sample label to "0", and so on.
[0058] The characteristics of the sample users may include, but are not limited to, at least one of the following: user description characteristics, scenario characteristics, etc. User description characteristics may include, but are not limited to, at least one of the following: basic user information (such as user identifier (ID), user historical behavior records (such as browsing time), etc. Scenario characteristics include, but are not limited to, at least one of the following: geographical location, time, weather, and various environmental characteristics, etc. It should be noted that the use of user-related information in this embodiment is with the user's consent and is legal.
[0059] Sample object features may include, but are not limited to, at least one of the following: object description features, object content features, etc. Object description features may include, but are not limited to, at least one of the following: object identifier (ID), category, price, etc. Object content features may include, but are not limited to, at least one of the following: object reviews, description of the merchant to which the object belongs, etc.
[0060] Optionally, when constructing the sample set, multiple positive user object pairs (i.e., sample labels indicating preference) can be selected. For each user in a positive user object pair, S objects can be randomly selected from the object corpus to form S negative user object pairs (i.e., sample labels indicating no preference) with this user, thereby obtaining the data of these S+1 user object pairs and adding them to the sample set.
[0061] After obtaining the sample set, the initial model is trained using the sample set. The initial model refers to the model that has not yet been trained; once the initial model is trained, the recall model is obtained. The initial model may include user-side sub-models, object-side sub-models, etc.
[0062] Step 302: In the preset initial model, based on the sample user features and the pre-stored sample user augmentation vector of the sample user, generate and output the sample user representation vector of the sample user; based on the sample object features and the pre-stored sample object augmentation vector of the sample object, generate and output the sample object representation vector of the sample object.
[0063] During model training, the sample user features are input into the user-side sub-model. In the user-side sub-model, based on the input sample user features and the pre-stored sample user augmentation vector of the sample user, a sample user representation vector of the sample user is generated, and the user-side sub-model outputs the sample user representation vector.
[0064] Optionally, the process of generating the sample user representation vector of the sample user based on the sample user features and the pre-stored sample user augmentation vector of the sample user may include: performing a first processing on the sample user features to obtain a sample user embedding vector, concatenating the sample user embedding vector with the sample user augmentation vector to obtain a sample user augmentation embedding vector, and performing a second processing on the sample user augmentation embedding vector to obtain the sample user representation vector.
[0065] like Figure 2 As shown, the user-side sub-model may include a mapping embedding layer and a two-layer enhancement layer (not specifically labeled in the figure). The two-layer enhancement layer may include multiple fully connected layers ( Figure 2 The middle layer is a fully connected layer, but in reality, the number of fully connected layers is not limited to one, L2 regularization layer (also known as L2 normalization layer), etc.
[0066] The mapping embedding layer in the user-side sub-model performs mapping embedding operations (corresponding to the first processing mentioned above) on the input user features (referred to as sample user features during model training and user features during model usage for distinction) to obtain user embedding vectors (referred to as sample user embedding vectors during model training and user embedding vectors during model usage for distinction). In implementation, user features can include dense and sparse features. Dense features undergo one-hot encoding, while sparse features are embedded and dimensionality-reduced into a low-dimensional dense vector through the mapping embedding layer. The resulting features are then concatenated into a fixed-length vector. The mapping embedding layer primarily defines an embedding matrix E∈R. K×D Here, matrix E is the one that needs to be learned and updated during training, D represents the number of unique features in all user data, and K is the dimension of the vector. The embedding vector of the i-th feature is the i-th column of this embedding matrix E, i.e., e i ∈R K .
[0067] The two-layer enhancement layer in the user side model is used to process the user embedding vector to obtain the user representation vector.
[0068] For each specific user, a unique user enhancement vector a can be created using their ID. u (For distinction, it is called the sample user augmentation vector during model training and the user augmentation vector during model usage), and the user augmentation vector corresponding to each user is stored. Initially, the user augmentation vector a u The settings are randomized, and the user augmentation vectors will be updated during model training, which will be detailed later.
[0069] First, the user embedding vector output by the mapping embedding layer is compared with the pre-stored user augmentation vector a corresponding to that user. u Concatenating these vectors yields the user-enhanced embedding vector z, which is input to the upper-layer network. u (To distinguish them, they are referred to as sample user augmentation embedding vectors during model training and user augmentation embedding vectors during model usage.)
[0070] For example, if the user features are "uid=253, city=SH, gender=male, …", then the user-enhanced embedding vector z can be obtained. u for:
[0071] z u =[e 253 ||e sh ||e male ||...||a u ]
[0072] Here, || denotes the vector concatenation operation. This allows the user to enhance the embedding vector z. u It not only contains information about the current user, but also includes user augmentation vector a u It includes information about historical positive interactions (such as information about clicked objects).
[0073] Then, the user-enhanced embedding vector z u The input to the upper-layer network mainly consists of stacked fully connected layers with ReLU (Rectified Linear Unit) to achieve this through a u To enable information exchange between the two towers, the output of the fully connected layer is then passed through an L2 normalization layer to obtain the user representation vector p. u (For distinction, it is called the sample user representation vector during model training and the user representation vector during model usage.) This process corresponds to the second processing described above. The formula for this process is defined as follows:
[0074] h 1u =ReLU(W1z) u +b1),…
[0075] h Lu =ReLU(W l h Lu-1 +b l ),
[0076] p u =L2Norm(h Lu )
[0077] Among them, W l and bl These represent the weight matrix and bias vector of the l-th layer of the fully connected layer, respectively. The specific values can be set based on practical experience.
[0078] During model training, the features of the sample object are input into the object-side sub-model. In the object-side sub-model, a sample object representation vector of the sample object is generated based on the input sample object features and the pre-stored sample object augmentation vector of the sample object. The object-side sub-model outputs the sample object representation vector.
[0079] Optionally, the process of generating a sample object representation vector based on the sample object features and the pre-stored sample object augmentation vector of the sample object may include: performing a first processing on the sample object features to obtain a sample object embedding vector, concatenating the sample object embedding vector with the sample object augmentation vector to obtain a sample object augmentation embedding vector, and performing a second processing on the sample object augmentation embedding vector to obtain the sample object representation vector.
[0080] like Figure 2 As shown, the object-side sub-model can include a mapping embedding layer and a two-layer enhancement layer (not specifically labeled in the figure). The two-layer enhancement layer can include multiple fully connected layers ( Figure 2 The middle layer is a fully connected layer, but in reality, the number of fully connected layers is not limited to one, L2 regularization layer (also known as L2 normalization layer), etc.
[0081] The mapping embedding layer in the object-side sub-model is used to perform mapping embedding operations (corresponding to the first processing mentioned above) on the input object features (for distinction, referred to as sample object features during model training and object features during model usage), obtaining object embedding vectors (also referred to as sample object embedding vectors during model training and object embedding vectors during model usage). In implementation, object features can include dense and sparse features. Dense features undergo one-hot encoding, while sparse features are embedded and dimensionality-reduced into a low-dimensional dense vector through the mapping embedding layer. The resulting features are then concatenated into a fixed-length vector. The mapping embedding layer primarily defines an embedding matrix E∈R. K×D Here, matrix E is the one that needs to be learned and updated during training, D represents the number of unique features in all object data, and K is the dimension of the vector. The embedding vector of the i-th feature is the i-th column of this embedding matrix E, i.e., e i ∈R K .
[0082] The two-layer enhancement layer in the object side model is used to process the object embedding vector to obtain the object representation vector.
[0083] For each specific object, a unique object enhancement vector a can be created using its ID. v (For distinction, it is called the sample object augmentation vector during model training and the object augmentation vector during model usage), and the object augmentation vector corresponding to each object is stored. Initially, the object augmentation vector a v The settings are randomized, and the object augmentation vectors will be updated during model training, which will be detailed later.
[0084] First, the object embedding vector output by the mapping embedding layer is compared with the pre-stored object augmentation vector a corresponding to that object. v Concatenating them together yields the object augmentation embedding vector z, which is input to the upper-layer network. v (To distinguish them, they are called sample object augmentation embedding vectors during model training and object augmentation embedding vectors during model usage.)
[0085] For example, if the object features are "iid=149, price=10, class=cata, …", then the object augmentation embedding vector z can be obtained. v for:
[0086] z v =[e 149 ||e p10 ||e cate ||...||a v ]
[0087] Here, || denotes the vector concatenation operation. This enhances the object's embedding vector z. v It not only contains information about the current object, but also enhances the object's vector a v It includes information about historical positive interactions (such as user information that has been clicked).
[0088] Then, the object is enhanced by embedding the vector z. v The input to the upper-layer network mainly consists of stacked fully connected layers with ReLU (Rectified Linear Unit) to achieve this through a v To enable information exchange between the two towers, the output of the fully connected layer is then passed through an L2 normalization layer to obtain the user representation vector p. vv (For distinction, it is called the sample object representation vector during model training and the object representation vector during model usage.) This process corresponds to the second processing described above. The formula for this process is defined as follows:
[0089] h 1v =ReLU(W1z) v +b1),…
[0090] h Lv =ReLU(W l h Lv-1 +b l ),
[0091] p v =L2Norm(h Lv )
[0092] Among them, W l and b l These represent the weight matrix and bias vector of the l-th layer of the fully connected layer, respectively. The specific values can be set based on practical experience.
[0093] It should be noted that the network structures of the user-side sub-model and the object-side sub-model are similar, but the specific network parameters (such as W) are different. l and b l The dimensions (etc.) may differ, and the number of network layers and dimensions within each tower may also differ. However, the dimensions of the resulting user representation vector and object representation vector are the same.
[0094] Step 303: Determine whether training is complete based on the output of the initial model and the sample labels.
[0095] The process of determining whether training is complete based on the output of the initial model and the sample labels may include: calculating the model loss function based on the sample user augmentation vector, the sample object augmentation vector, the sample user representation vector, the sample object representation vector, and the sample labels; and determining whether training is complete based on the model loss function.
[0096] Optionally, the process of calculating the model loss function based on the sample user augmentation vector, the sample object augmentation vector, the sample user representation vector, the sample object representation vector, and the sample label may include the following steps A1 to A4:
[0097] A1. Calculate the first loss function based on the sample user augmentation vector and the sample object representation vector.
[0098] A2, calculate the second loss function based on the sample object augmentation vector and the sample user representation vector.
[0099] To update the augmentation vector a for each user and object u and a v(Each user and object has its own unique augmentation vector), an adaptive imitation mechanism was designed, mainly consisting of an imitation loss function and a gradient stopping strategy. The purpose of the imitation loss is to use the augmentation vector to fit all positive interactions (clicked objects / clicked users, etc.) of the corresponding object or user in another tower. The imitation loss is defined as the mean squared error between the augmentation vector and the representation vector when the label indicates preference (label is 1):
[0100]
[0101]
[0102] Where T is the number of user-object pairs in the training dataset (i.e., the number of sample data), and y∈{0,1} is the true label. It can be seen from the above formula that if the true label value is equal to 1, then the user augmentation vector a... u It will fit and approximate the object representation vector p v Object enhancement vector a v It will fit and approximate the user representation vector p u If the true label value is 0, then this loss function is invalid with a value of 0. For example... Figure 2 As shown, the augmentation vector is used as a feature in one tower, while the representation vector is generated from another tower. That is, the augmentation vector a... u and a v Extract high-level abstract information from another tower that summarizes the content that the corresponding user or object may match. Since the above loss function only needs to update a... u and a v Therefore, the gradient stopping strategy is applied to p. u and p v .
[0103] In this embodiment of the invention, the above-mentioned loss u As the first loss function, the above loss v As the second loss function.
[0104] A3. Calculate the third loss function based on the sample user representation vector, the sample object representation vector, and the sample label.
[0105] The process of calculating the third loss function based on the sample user representation vector, the sample object representation vector, and the sample label may include the following steps B1 to B2:
[0106] B1, calculate the dot product similarity between the sample user representation vector and the sample object representation vector.
[0107] Since both the sample user representation vector and the sample object representation vector are L2 normalized vectors, L2 normalization is used to normalize the norm of the representation vector to 1. Thus, the cosine similarity of the vectors can be simplified to the dot product similarity, thereby reducing the computation time cost of online services.
[0108] Therefore, the sample user representation vector p is obtained. u and sample object representation vector p v Then, the sample user representation vector p can be calculated. u and sample object representation vector p v Dot product similarity s between u,v :
[0109] s u,v = <p u ,p v >
[0110] Among them, s u,v This represents the click similarity between users and objects provided by the bidirectional augmented dual-tower model. The dot product similarity can characterize the degree of user preference for an object. The higher the dot product similarity, the stronger the preference.
[0111] B2, calculate the cross-entropy loss function based on the dot product similarity and the sample label, as the third loss function.
[0112] The cross-entropy loss function is used to calculate the third loss function on the sample set. p :
[0113]
[0114] T = D × (S + 1)
[0115] Where D is the number of positive user-object pairs, T is the total number of user-object pairs in the training dataset (i.e., the number of sample data), S refers to the S mentioned in step 301 above, and σ() represents the sigmoid activation function.
[0116] A4. Calculate the model loss function based on the first loss function, the second loss function, and the third loss function.
[0117] The model loss function is mainly composed of the third loss function. p First loss function u Second loss function v get:
[0118] loss = loss p +λ1loss u +λ2loss v
[0119] Here, λ1 and λ2 are hyperparameters that can be manually adjusted.
[0120] After calculating the model loss function, we can determine whether it meets preset conditions to indicate whether training is complete. If the model loss function meets the preset conditions, training is considered complete; if it does not, training is considered incomplete. These preset conditions can be set according to specific circumstances, such as setting the model loss function to be less than a certain threshold.
[0121] To make user augmentation vectors and object augmentation vectors more accurate, they can be updated during model training.
[0122] Optionally, after one round of training on a sample set, if training is not yet complete, the process may further include: for each sample user, obtaining the sample label indicating the preferred target sample object representation vector, and fitting the sample user augmentation vector of the sample user to approximate the target sample object representation vector. For each sample object, obtaining the sample label indicating the preferred target sample user representation vector, and fitting the sample object augmentation vector of the sample object to approximate the target sample user representation vector.
[0123] For any given sample user, a sample label indicating preference (i.e., a sample label equal to 1) indicates that the sample user has a preference for a sample object. Therefore, the sample object representation vector corresponding to the sample user with a sample label indicating preference is obtained and used as the target sample object representation vector. The sample user augmentation vector of the sample user is set to be close to the target sample object representation vector, so that the sample user augmentation vector can indicate the relevant information of the sample user's preferred sample object.
[0124] For any given sample object, a sample label indicating preference (i.e., a sample label equal to 1) indicates that the sample user has a preference for that sample object. Therefore, the sample user representation vector with the sample label indicating preference for that sample object is obtained and used as the target sample user representation vector. The sample object augmentation vector of that sample object is set to be close to the target sample user representation vector, so that the sample object augmentation vector of that sample object can indicate the relevant information of the sample user who has a preference for that sample object.
[0125] The user enhancement vectors for each user and the object enhancement vectors for each object obtained from the final update are stored.
[0126] Step 304: Use the trained model as the recall model.
[0127] After the model training is complete, it can be evaluated to obtain the recall model that passes the evaluation. For example, evaluation metrics such as HitRate can be used for evaluation. The specific process will not be discussed in detail here.
[0128] After obtaining the recall model, the object representation vectors of all objects in the object corpus can be calculated using the object-side sub-model within the recall model. The obtained object representation vectors for each object are then stored in an in-memory database on the online service machine. The recall model is then deployed to the online machine for subsequent online object recall.
[0129] The object representation vector of any object is obtained as follows: The object features of the object are acquired, and these features are input into the object-side sub-model of the recall model to obtain the object representation vector output by the object-side sub-model. Similar to step 301 above, object features may include, but are not limited to, at least one of the following: object description features, object content features, etc. The object features are input into the object-side sub-model of the generated recall model. In the object-side sub-model, relevant processing is performed on the object features; the specific processing procedure is described in step 302 above.
[0130] Reference Figure 4 The diagram illustrates a flowchart of a recall method according to an embodiment of the present invention.
[0131] like Figure 4 As shown, the recall method may include the following steps:
[0132] Step 401: Obtain the user characteristics of the user to be processed.
[0133] Similar to the description of step 301 above, user features may include, but are not limited to, at least one of the following: user description features, scene features, etc.
[0134] Step 402: Input the user features into the user-side sub-model in the pre-generated recall model to obtain the user representation vector of the user to be processed output by the user-side sub-model.
[0135] Input the user features into the user-side sub-model of the recall model generated above, and perform relevant processing on the user features in the user-side sub-model. The specific processing process is described in step 302 above.
[0136] Step 403: Obtain the object representation vectors of each object that have been stored in advance.
[0137] Read the object representation vectors of each object from the in-memory database. For example, it can be done according to... Figure 2The object representation vector memory index is shown, and the object representation vector of each object is read.
[0138] Step 404: Based on the user representation vector and the object representation vectors, recall the target objects for the user to be processed.
[0139] Optionally, since both the user representation vector and the object representation vector are L2-normalized vectors, the process of recalling target objects for the user to be processed based on the user representation vector and the object representation vectors may include the following steps C1 to C2:
[0140] C1, calculate the dot product similarity between the user representation vector and each object representation vector.
[0141] Let p be the user representation vector of user u. u The object representation vector of the object is p. v Using p u and p v The similarity measure between objects is the degree of preference between user u and object v. u,v =p u ·p v = <p u ,p v >。 s u,v The larger the value, the higher the user u's preference for object v.
[0142] C2, select the multiple objects with the highest dot product similarity as the target object.
[0143] like Figure 2 As shown, the top N nearest objects are selected for recall and used as candidate objects to recommend to the user, where N is a natural number.
[0144] In this embodiment of the invention, the recall model used in the recall process is improved by modeling the information interaction between the two towers. An adaptive imitation mechanism is designed to customize an enhancement vector as its feature for each user and object to extract the corresponding positive interaction in the other tower. In this way, the enhancement vector, which is the input feature of one tower, carries the information of the other tower, thereby implicitly modeling the information interaction between the two towers and improving the recall effect.
[0145] Figure 5 This is a schematic diagram illustrating the offline effect of a model according to an embodiment of the present invention. For example... Figure 5 As shown, the bidirectional augmented dual-tower model, compared with several commonly used recall models in the industry, shows significant improvements in both HitRate and MRR (Mean Reciprocal Rank) using two industry datasets.
[0146] Figure 6 This is a schematic diagram illustrating the online effect of a model according to an embodiment of the present invention. For example... Figure 6 As shown, the click funnel data for the "You May Also Like" section on the app's homepage (average of online performance over 5 days) shows a significant improvement in recall performance.
[0147] Reference Figure 7 The diagram shows a structural block diagram of a recall model generation device according to an embodiment of the present invention.
[0148] like Figure 7 As shown, the recall model generation device may include the following modules:
[0149] The first acquisition module 701 is used to acquire sample data; the sample data includes sample user characteristics of sample users, sample object characteristics of sample objects, and sample tags.
[0150] The generation module 702 is used to generate and output the sample user representation vector of the sample user based on the sample user features and the sample user enhancement vector of the sample user in a preset initial model, and to generate and output the sample object representation vector of the sample object based on the sample object features and the sample object enhancement vector of the sample object in a preset initial model.
[0151] The judgment module 703 is used to determine whether training is complete based on the output of the initial model and the sample labels;
[0152] The determination module 704 is used to select the trained model as the recall model.
[0153] Optionally, the sample label is used to indicate the degree of preference of the sample user for the sample object; the device further includes: a first update module, used to, in the absence of completed training, for each sample user, obtain the target sample object representation vector whose sample label indicates preference, and fit the sample user augmentation vector of the sample user to approximate the target sample object representation vector; a second update module, used to, for each sample object, obtain the target sample user representation vector whose sample label indicates preference, and fit the sample object augmentation vector of the sample object to approximate the target sample user representation vector.
[0154] Optionally, the judgment module 703 includes: a first calculation unit, configured to calculate a first loss function based on the sample user augmentation vector and the sample object representation vector; a second calculation unit, configured to calculate a second loss function based on the sample object augmentation vector and the sample user representation vector; a third calculation unit, configured to calculate a third loss function based on the sample user representation vector, the sample object representation vector, and the sample label; a fourth calculation unit, configured to calculate a model loss function based on the first loss function, the second loss function, and the third loss function; and a function judgment unit, configured to determine whether training is complete based on the model loss function.
[0155] Optionally, both the sample user representation vector and the sample object representation vector are L2-normalized vectors; the third calculation unit is specifically used to calculate the dot product similarity between the sample user representation vector and the sample object representation vector; and to calculate the cross-entropy loss function based on the dot product similarity and the sample label, as the third loss function.
[0156] Optionally, the initial model includes a user-side sub-model and an object-side sub-model; the generation module 702 includes: a first generation unit, configured to input the sample user features into the user-side sub-model, generate and output the sample user representation vector of the sample user based on the sample user features and a pre-stored sample user augmentation vector of the sample user in the user-side sub-model; and a second generation unit, configured to input the sample object features into the object-side sub-model, generate and output the sample object representation vector of the sample object based on the sample object features and a pre-stored sample object augmentation vector of the sample object in the object-side sub-model.
[0157] Optionally, the first generation unit is specifically configured to perform a first processing on the sample user features to obtain a sample user embedding vector, concatenate the sample user embedding vector with the sample user augmentation vector to obtain a sample user augmentation embedding vector, and perform a second processing on the sample user augmentation embedding vector to obtain the sample user representation vector; the second generation unit is specifically configured to perform a first processing on the sample object features to obtain a sample object embedding vector, concatenate the sample object embedding vector with the sample object augmentation vector to obtain a sample object augmentation embedding vector, and perform a second processing on the sample object augmentation embedding vector to obtain the sample object representation vector.
[0158] Reference Figure 8 The diagram shows a structural block diagram of a recall device according to an embodiment of the present invention.
[0159] like Figure 8 As shown, the recall device may include the following modules:
[0160] The second acquisition module 801 is used to acquire the user characteristics of the user to be processed;
[0161] Prediction module 802 is used to input the user features into the user-side sub-model in the pre-generated recall model to obtain the user representation vector of the user to be processed output by the user-side sub-model; the recall model is generated by the recall model generation method described in any of the above embodiments;
[0162] The third acquisition module 803 is used to acquire the object representation vectors of each object that are stored in advance; the object representation vector of any object is obtained by inputting the object features of the object into the object-side sub-model in the recall model, and obtaining the object representation vector of the object output by the object-side sub-model.
[0163] The recall module 804 is used to recall target objects for the user to be processed based on the user representation vector and the object representation vectors.
[0164] Optionally, both the user representation vector and the object representation vector are L2-normalized vectors; the recall module 804 is specifically used to calculate the dot product similarity between the user representation vector and each object representation vector; and select the multiple objects with the largest dot product similarity as the target objects.
[0165] In this embodiment of the invention, the recall model no longer analyzes user features and object features independently, but instead performs joint analysis of user features and user augmentation vectors, and joint analysis of object features and object augmentation vectors. The user augmentation vector can represent the object information related to the user obtained in the object-side sub-model, and the object augmentation vector can represent the user information related to the object obtained in the user-side sub-model. Thus, the user-side sub-model and the object-side sub-model interact and analyze, which can improve the performance of the recall model and increase the accuracy of the recall results.
[0166] As the device embodiment is basically similar to the method embodiment, the description is relatively simple, and relevant parts can be found in the description of the method embodiment.
[0167] In embodiments of the present invention, an electronic device is also provided. The electronic device may include one or more processors and one or more machine-readable media storing instructions thereon, such as an application program. When the instructions are executed by the one or more processors, the processors cause the processors to perform the recall model generation method as described in any of the preceding claims, or to perform the recall method as described in any of the preceding claims.
[0168] In embodiments of the present invention, a non-transitory computer-readable storage medium is also provided, on which a computer program is stored, which can be executed by a processor of an electronic device to implement the recall model generation method as described in any of the preceding claims, or to implement the recall method as described in any of the preceding claims. For example, the non-transitory computer-readable storage medium may be a ROM, random access memory (RAM), CD-ROM, magnetic tape, floppy disk, and optical data storage device, etc.
[0169] It should be noted that all actions involving the acquisition of signals, information, or data in this application are carried out in compliance with the relevant data protection laws and policies of the country where the application is located, and with the authorization granted by the owner of the relevant device.
[0170] The various embodiments in this specification are described in a progressive manner, with each embodiment focusing on the differences from other embodiments. The same or similar parts between the various embodiments can be referred to each other.
[0171] Those skilled in the art will understand that embodiments of the present invention can be provided as methods, apparatus, or computer program products. Therefore, embodiments of the present invention can take the form of entirely hardware embodiments, entirely software embodiments, or embodiments combining software and hardware aspects. Furthermore, embodiments of the present invention can take the form of computer program products implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0172] This invention is described with reference to flowchart illustrations and / or block diagrams of methods, terminal devices (systems), and computer program products according to embodiments of the invention. It will 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 terminal device to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing terminal device, generate instructions 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.
[0173] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing terminal device to operate 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 1The function specified in one or more boxes.
[0174] These computer program instructions can also be loaded onto a computer or other programmable data processing terminal equipment, causing a series of operational steps to be performed on the computer or other programmable terminal equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable terminal 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.
[0175] Although preferred embodiments of the present invention have been described, those skilled in the art, upon learning the basic inventive concept, can make other changes and modifications to these embodiments. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments as well as all changes and modifications falling within the scope of the embodiments of the present invention.
[0176] Finally, it should be noted that in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or terminal device that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or terminal device. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or terminal device that includes said element.
[0177] The foregoing has provided a detailed description of the recall model generation, recall method, apparatus, electronic device, and storage medium provided by the present invention. Specific examples have been used to illustrate the principles and implementation methods of the present invention. The descriptions of the above embodiments are only for the purpose of helping to understand the method and core ideas of the present invention. At the same time, for those skilled in the art, there will be changes in the specific implementation methods and application scope based on the ideas of the present invention. Therefore, the content of this specification should not be construed as a limitation of the present invention.
Claims
1. A method for generating a recall model, characterized in that, include: Obtain sample data; The sample data includes sample user characteristics of sample users, sample object characteristics of sample objects, and sample tags, wherein the sample tags are used to indicate the degree of preference of the sample users for the sample objects; In the preset initial model, based on the sample user features and the pre-stored sample user augmentation vector of the sample user, the sample user representation vector of the sample user is generated and output; based on the sample object features and the pre-stored sample object augmentation vector of the sample object, the sample object representation vector of the sample object is generated and output. Wherein, the sample user augmentation vector is used to represent object information related to the sample user, and the sample object augmentation vector is used to represent user information related to the sample object; Determine whether training is complete based on the output of the initial model and the sample labels; The trained model is used as the recall model.
2. The method according to claim 1, characterized in that, The sample labels are used to indicate the degree of preference of the sample users for the sample objects; In the event that training is not yet complete, the method further includes: For each sample user, obtain the sample label indicator corresponding to the sample user as the target sample object representation vector of preference, and fit the sample user augmentation vector of the sample user to approximate the target sample object representation vector; For each sample object, obtain the target sample user representation vector that indicates the preference of the sample label corresponding to the sample object, and fit the sample object augmentation vector of the sample object to approximate the target sample user representation vector.
3. The method according to claim 1, characterized in that, Determining whether training is complete based on the output of the initial model and the sample labels includes: Based on the sample user augmentation vector and the sample object representation vector, calculate the first loss function; A second loss function is calculated based on the sample object augmentation vector and the sample user representation vector; A third loss function is calculated based on the sample user representation vector, the sample object representation vector, and the sample label; The model loss function is calculated based on the first loss function, the second loss function, and the third loss function; The training completion status is determined based on the model's loss function.
4. The method according to claim 3, characterized in that, Both the sample user representation vector and the sample object representation vector are L2-normalized vectors. Based on the sample user representation vector, the sample object representation vector, and the sample label, a third loss function is calculated, including: Calculate the dot product similarity between the sample user representation vector and the sample object representation vector; The cross-entropy loss function is calculated based on the dot product similarity and the sample labels, and is used as the third loss function.
5. The method according to claim 1, characterized in that, The initial model includes a user-side sub-model and an object-side sub-model; In the preset initial model, based on the sample user features and the pre-stored sample user augmentation vectors of the sample users, a sample user representation vector of the sample user is generated and output. Based on the sample object features and the pre-stored sample object augmentation vectors of the sample objects, a sample object representation vector of the sample object is generated and output, including: The sample user features are input into the user-side sub-model. Based on the sample user features and the pre-stored sample user augmentation vector of the sample user, the user-side sub-model generates and outputs the sample user representation vector of the sample user. The sample object features are input into the object-side sub-model. Based on the sample object features and the pre-stored sample object enhancement vector of the sample object, the sample object representation vector of the sample object is generated and output in the object-side sub-model.
6. The method according to claim 1 or 5, characterized in that, Based on the sample user features and the pre-stored sample user augmentation vectors of the sample users, a sample user representation vector for the sample users is generated, including: The sample user features are first processed to obtain a sample user embedding vector. The sample user embedding vector is concatenated with the sample user augmentation vector to obtain a sample user augmentation embedding vector. The sample user augmentation embedding vector is then processed secondly to obtain the sample user representation vector. Based on the features of the sample object and the pre-stored sample object augmentation vector of the sample object, a sample object representation vector of the sample object is generated, including: The sample object features are processed in a first step to obtain a sample object embedding vector. The sample object embedding vector is then concatenated with the sample object augmentation vector to obtain a sample object augmentation embedding vector. The sample object augmentation embedding vector is then processed in a second step to obtain the sample object representation vector.
7. A recall method, characterized in that, include: Obtain the user characteristics of the user to be processed; The user features are input into the user-side sub-model in the pre-generated recall model to obtain the user representation vector of the user to be processed output by the user-side sub-model; The recall model is generated by the method described in any one of claims 1-6; Retrieve the object representation vectors of each pre-stored object; The object representation vector of any object is obtained as follows: The object features of the object are input into the object-side sub-model in the recall model to obtain the object representation vector of the object output by the object-side sub-model; Based on the user representation vector and the object representation vectors, target objects are recalled for the user to be processed.
8. The method according to claim 7, characterized in that, Both the user representation vector and the object representation vector are L2-normalized vectors. The step of recalling target objects for the user to be processed based on the user representation vector and the object representation vectors includes: Calculate the dot product similarity between the user representation vector and each object representation vector; Select the objects with the highest dot product similarity as the target objects.
9. A recall model generation device, characterized in that, include: The first acquisition module is used to acquire sample data; The sample data includes sample user characteristics of sample users, sample object characteristics of sample objects, and sample tags, wherein the sample tags are used to indicate the degree of preference of the sample users for the sample objects; The generation module is used to generate and output the sample user representation vector of the sample user based on the sample user features and the sample user augmentation vector of the sample user in a preset initial model, and to generate and output the sample object representation vector of the sample object based on the sample object features and the sample object augmentation vector of the sample object in a preset initial model. Wherein, the sample user augmentation vector is used to represent object information related to the sample user, and the sample object augmentation vector is used to represent user information related to the sample object; The judgment module is used to determine whether training is complete based on the output of the initial model and the sample labels; The determination module is used to select the trained model as the recall model.
10. A recall device, characterized in that, include: The second acquisition module is used to acquire the user characteristics of the user to be processed; The prediction module is used to input the user features into the user-side sub-model in the pre-generated recall model to obtain the user representation vector of the user to be processed output by the user-side model; The recall model is generated by the method described in any one of claims 1-6; The third acquisition module is used to acquire the object representation vectors of each object that have been stored in advance; The object representation vector of any object is obtained as follows: The object features of the object are input into the object-side sub-model in the recall model to obtain the object representation vector of the object output by the object-side sub-model; The recall module is used to recall target objects for the user to be processed based on the user representation vector and the object representation vectors.
11. An electronic device, characterized in that, include: One or more processors; and one or more machine-readable media on which instructions are stored; When the instructions are executed by the one or more processors, the processors perform the method as described in any one of claims 1 to 6, or the method as described in any one of claims 7 to 8.
12. A computer-readable storage medium, characterized in that, It stores a computer program that, when executed by a processor, implements the method as described in any one of claims 1 to 6, or implements the method as described in any one of claims 7 to 8.
Citation Information
Patent Citations
Information recommendation method and device, electronic device and storage medium
CN110457581A
Recommendation system recall method based on attention mechanism
CN111062775A