WO2021077814A1 - 一种由用户终端执行的推送模型优化方法和装置 - Google Patents

一种由用户终端执行的推送模型优化方法和装置 Download PDF

Info

Publication number
WO2021077814A1
WO2021077814A1 PCT/CN2020/102340 CN2020102340W WO2021077814A1 WO 2021077814 A1 WO2021077814 A1 WO 2021077814A1 CN 2020102340 W CN2020102340 W CN 2020102340W WO 2021077814 A1 WO2021077814 A1 WO 2021077814A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
vector
gradient vector
embedding vector
neighbor
Prior art date
Application number
PCT/CN2020/102340
Other languages
English (en)
French (fr)
Inventor
陈超超
王力
周俊
Original Assignee
支付宝(杭州)信息技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 支付宝(杭州)信息技术有限公司 filed Critical 支付宝(杭州)信息技术有限公司
Publication of WO2021077814A1 publication Critical patent/WO2021077814A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9536Search customisation based on social or collaborative filtering

Definitions

  • the embodiments of this specification aim to provide a more effective privacy-protecting push model optimization solution.
  • this specification provides a method for optimizing a push model executed by a user terminal.
  • the terminal corresponds to a first user.
  • the terminal locally includes the current push model.
  • the push model is predicted based on a matrix decomposition method. Methods include:
  • the push model includes the current embedding vector of the first user and the current embedding vector of the first object
  • the first gradient vector is respectively sent to the respective terminals of the predetermined number of neighbor users, so that the terminals of each neighbor user respectively optimize its local embedding vector of the first object based on the first gradient vector.
  • calculating the first gradient vector used to optimize the embedding vector of the first object includes calculating an initial gradient vector used to optimize the embedding vector of the first object, and calculating the initial gradient vector by a random algorithm
  • the vector is converted into a first gradient vector, wherein the signs of the elements of the first gradient vector are determined based on the coincidence of the corresponding elements of the initial gradient vector, and the absolute values of the elements of the first gradient vector take multiple discrete values.
  • the terminal locally records the number of optimization times of the push model, and the method further includes, after using the first gradient vector to update the local embedding vector of the first object, determining the number of optimization times If it is equal to a predetermined value, if it is determined that the number of optimizations is equal to a predetermined value, stop the next optimization of the embedded model.
  • the neighbor users are first-order neighbor users, and the neighbor users include a second user.
  • the method further includes receiving, from the terminal of the second user, a gradient vector for optimizing the second object and the The degree of the neighbor corresponding to the gradient vector is determined whether the degree of the neighbor is equal to a predetermined value, and when it is determined that the degree of the neighbor is not equal to the predetermined value, 1 is added to the degree of the neighbor, and the sum of the gradient vectors used to optimize the second object
  • the neighbor degree is sent to a terminal of a first-order neighbor user other than the second user.
  • Another aspect of this specification provides a push model optimization device executed by a user terminal, the terminal corresponds to a first user, the terminal locally includes the current push model, and the push model is predicted based on the matrix decomposition method, so
  • the device includes:
  • the obtaining unit is configured to obtain the score of the first user for the first object locally, wherein the push model includes the current embedding vector of the first user and the current embedding vector of the first object;
  • the first calculation unit is configured to calculate a first gradient vector for optimizing the embedding vector of the first object based on the score, the current embedding vector of the first user, and the current embedding vector of the first object ;
  • the first determining unit is configured to determine a current predetermined number of neighbor users of the first user, where the neighbor users have a predetermined association relationship with the first user;
  • the first sending unit is configured to send the first gradient vector to the respective terminals of the predetermined number of neighboring users, so that the terminals of each neighboring user optimize its local first gradient vector based on the first gradient vector.
  • the embedding vector of an object is configured to send the first gradient vector to the respective terminals of the predetermined number of neighboring users, so that the terminals of each neighboring user optimize its local first gradient vector based on the first gradient vector.
  • the device further includes an optimization unit configured to, after calculating an initial gradient vector for optimizing the embedding vector of the first object, use the initial gradient vector to optimize the local first object Embedding vector.
  • the device further includes a second calculation unit configured to, after obtaining the score of the first user for the first object, based on the score, the current embedding vector of the first user, and the The current embedding vector of the first object is calculated, and a gradient vector used to optimize the embedding vector of the first user is calculated to optimize the embedding vector of the first user.
  • a second calculation unit configured to, after obtaining the score of the first user for the first object, based on the score, the current embedding vector of the first user, and the The current embedding vector of the first object is calculated, and a gradient vector used to optimize the embedding vector of the first user is calculated to optimize the embedding vector of the first user.
  • Fig. 2 shows a flowchart of a method for optimizing a push model executed by a user terminal according to an embodiment of the present specification
  • Figure 3 schematically shows a network diagram of relationships between users
  • Fig. 1 shows an object pushing system 100 according to an embodiment of the present specification.
  • the system 100 includes a server 11 and a plurality of user terminals 12, wherein each user terminal 12 is connected to the server 11 through a network.
  • Each user terminal 12 includes a locally trained push model.
  • the push model is a prediction model based on a matrix decomposition method. That is, the push model includes the embedding vector of the user corresponding to the terminal and the platform.
  • the embedding vector of each object, the platform is, for example, a shopping platform, a film review and book review platform, etc.
  • a certain terminal 12 corresponds to a first user, and when the first user performs an operation (such as clicking, purchasing, rating, etc.) on the first object in the platform, the terminal 12 may obtain the first object based on the operation of the first user.
  • the user s scoring data for the first object, so that the local push model can be trained based on the scoring data, that is, based on the scoring data, the current embedding vector of the first user, and the current embedding vector of the first object, the calculation is used for updating
  • the gradient data of the embedding vector of the first object is used to optimize the local embedding vector of the first object, and the gradient data is sent to the terminals of other neighboring users in the platform, so that the terminals of other users can be used locally
  • the gradient data optimizes the push model.
  • Step S202 Obtain the score of the first user for the first object locally, where the push model includes the current embedding vector of the first user and the current embedding vector of the first object;
  • Step S204 calculating a first gradient vector for optimizing the embedding vector of the first object based on the score, the current embedding vector of the first user, and the current embedding vector of the first object;
  • Step S206 Determine a current predetermined number of neighbor users of the first user, where the neighbor users have a predetermined association relationship with the first user;
  • the method is executed locally in, for example, the terminal of the first user, for example, it can be executed by a predetermined program in an APP in the terminal, or can be executed by a predetermined program in a system in the terminal, and so on.
  • the terminal locally includes a push model that predicts based on a matrix decomposition method, that is, the push model includes the user embedding vector corresponding to the terminal user and the object embedding vector of each object in the APP platform or system .
  • the parameters of the push model are randomly determined, that is, the user embedding vector and each object embedding vector are randomly determined.
  • the push model is trained.
  • the user embedding vector and each object embedding vector are constantly updated, so that the prediction of the push model is more accurate.
  • the user embedding vector of the first user can be used to do a dot product with the object embedding vector of each object in the candidate push object, so as to obtain the first user's prediction of each candidate push object Score, and push the object based on the predicted score of each object.
  • step S202 the score of the first user for the first object is obtained locally, wherein the push model includes the current embedding vector of the first user and the current embedding vector of the first object.
  • the score may be the actual score of the user on the object, or may be obtained based on the historical behavior mapping of the user on the object.
  • the method is executed by a local APP of the terminal.
  • the APP platform is, for example, a film review and book review platform.
  • the terminal can pass the first object locally.
  • the scoring behavior of a user in the APP obtains the score of the first user on the first object.
  • the APP platform is a shopping platform
  • the first object can be any commodity in the platform.
  • the behavior can be mapped to The score of the first object, for example, if the full score is 5 points, the click can be mapped to 3 points, the purchase can be mapped to 5 points, etc., so that the terminal can be obtained locally based on the specific behavior of the first user in the APP The first user's rating for the first object.
  • the terminal locally can calculate the first user’s score on the first object based on all the historical behaviors of the first user on the first object in a predetermined period of time (such as a week) stored in the APP, for example, based on The first user calculates the score for the number of clicks and the number of purchases of the first object.
  • the push model includes the embedding vector of the end user and the embedding vector of each object in the platform or system. Since the first object is an object in the platform or system, the push model includes the first user’s embedding vector. The embedding vector and the embedding vector of the first object. Before starting the training of the push model, initialize the embedding vector of the first user and the embedding vector of each object. For example, the embedding vector of the first user and the embedding vector of each object can be randomly determined.
  • the model optimization method is a decentralized matrix decomposition method, in which both the scoring data and the model data are stored in the user terminal, wherein the model data includes the terminal The embedding vector of the corresponding user and the embedding vector of each object in the platform.
  • step S204 based on the score, the current embedding vector of the first user, and the current embedding vector of the first object, a first gradient vector for optimizing the embedding vector of the first object is calculated.
  • the embedding vector is usually optimized by the loss function shown in formula (1):
  • U i is the embedding vector of user i, which is used to represent the latent feature of user i
  • V j i is the embedding vector of the object rated by user i, which is used to represent the latent feature of the object.
  • the push model locally included in the terminal corresponding to the first user is predicted based on the matrix decomposition method, that is, the push model is also optimized by formula (1).
  • the terminal can only Obtain the score of the terminal user (ie, the first user) for each object. Assume that the first user is user i. Therefore, in formula (1), only sum j, not i, is specifically used for
  • the loss function of the local push model of the training terminal is shown in formula (2):
  • j is a natural number from 1 to N, where N is the number of objects rated by the first user i.
  • the first gradient vector may be an initial gradient vector as shown in formula (4), and the first gradient vector is gradient data to be sent to other terminals in a subsequent step.
  • each element of the initial gradient vector is a real number.
  • the real number can be converted into a multi-bit binary number, which will result in the amount of communication data between the terminals. More, which will cause the user terminal to consume too much traffic.
  • sgn(G d ) is the sign (positive or negative) of the value G d
  • the random algorithm ⁇ (G d , k) is, for example, as shown in formula (8):
  • the value of G′ d may be more than two discrete values, and the multiple discrete values are binary numbers with the same number of digits, such as 00, 01, 10, and 11.
  • the multiple discrete numerical values respectively correspond to multiple endpoints in the value range of
  • is [0,9], then 00, 01, 10, and 11 correspond to 0, 3, 6, and 9, respectively, where 0, 3, 6 and 9 will take the value of
  • the value range is divided into three intervals of equal length.
  • the random algorithm when the original data falls into one of the intervals, similar to formula (8), the random algorithm includes, based on the position of
  • 1, it falls into the interval [0,3], so that it corresponds to the random variable shown in the following formula (9):
  • G′ d can be calculated as shown in the following formula (10):
  • the APP is, for example, a film review platform, and users in the platform have a relationship network based on friend relationships. Therefore, the APP in the terminal of the first user can obtain the first user-centric information from the server.
  • a friend relationship network, and a predetermined number of neighbor users of the first user is determined from the friend relationship network.
  • the neighbor users are not limited to first-order neighbors, and may also be neighbor users in the industry with a predetermined order.
  • the terminal of the first user is not limited to obtaining the friend relationship network from the server, and the terminal can store the friend list of the first user locally through the APP, so that the terminal of the first user can be downloaded locally.
  • a predetermined number of first-order neighbor users are determined in the saved friend table.
  • the APP is, for example, a shopping platform, and users of the platform have a relationship network based on a bipartite graph network of users and commodities, so that the APP in the terminal of the first user can be obtained from the server as the first
  • the user is a central bipartite network, and a predetermined number of neighbor users of the first user are determined from the network.
  • the predetermined number of neighbor users includes the second user m
  • the first user terminal may send the first gradient vector to the second user terminal through the relay of the server.
  • the identification or account of the second user is determined in the APP of the first user terminal, so that the first gradient vector can be sent to the account of the second user through the APP, so that the terminal where the second user account is located receives the first Gradient vector.
  • V j m represents the embedding vector of the first object j saved in the local push model of the terminal corresponding to the second user, that is, even if the second user m does not score the first object j, it has a strong correlation with it.
  • the sexual user i scores the first object j, so that the terminal corresponding to the second user receives the first gradient vector from the terminal corresponding to user i
  • the local push model can also be trained.
  • the neighbor user of the first user is a first-order neighbor user
  • the first user is calculating the first gradient vector
  • the neighbor degree D may also be sent.
  • D 1, indicating that the second user is a first-order neighbor of the first user.
  • the third user’s terminal is receiving After sum D, in the case where it is determined that D is equal to the predetermined value 2, the gradient will no longer be sent to its own first-order neighbor terminal.
  • the terminal of the first user may also receive, for example, the gradient vector of the second object and the corresponding neighbor degree D from the terminal of its first-order neighbor (for example, the second user). In the case where it is determined that D is not equal to 2. , The D plus 1 and the gradient vector may be sent to the terminal of the first-order neighbor user of the first user except the second user.
  • the obtaining unit 501 is configured to obtain a score of a first user for a first object locally, wherein the push model includes a current embedding vector of the first user and a current embedding vector of the first object;
  • the device further includes an optimization unit 505 configured to, after calculating an initial gradient vector for optimizing the embedding vector of the first object, use the initial gradient vector to optimize the local first object The embedding vector.
  • the terminal locally records the number of times of optimization of the push model
  • the device further includes a second determining unit 506 configured to update the local first object's value by using the first gradient vector After embedding the vector, it is determined whether the number of optimization times is equal to a predetermined value, and the stopping unit 507 is configured to stop the next optimization of the embedding model when it is determined that the number of optimization times is equal to the predetermined value.
  • the neighboring user is a first-order neighboring user
  • the neighboring user includes a second user
  • the apparatus further includes a receiving unit 509 configured to receive a second user terminal for optimizing the second user
  • the third determining unit 510 is configured to determine whether the neighbor degree is equal to a predetermined value
  • the second sending unit 511 is configured to determine whether the neighbor degree is not equal to In the case of a predetermined value, 1 is added to the neighbor degree, and the gradient vector used to optimize the second object and the neighbor degree are sent to terminals of first-order neighbor users other than the second user.
  • Another aspect of this specification provides a computer-readable storage medium on which a computer program is stored.
  • the computer program is executed in a computer, the computer is caused to execute any of the above methods.
  • the distributed training of the push model is performed on each user terminal, and each user terminal has its own model parameter, and the parameter gradient is transferred between neighbor users with a predetermined association relationship, so that the While leaking user privacy, collaborative training of model parameters between users with close associations improves the accuracy of model prediction.
  • the element value of the parameter gradient is converted into a binary value of predetermined digits by a random algorithm.
  • the potential characteristics of the parameter gradient are retained, so that while the push model is optimized, the amount of communication between user terminals is greatly reduced.
  • the steps of the method or algorithm described in the embodiments disclosed herein can be implemented by hardware, a software module executed by a processor, or a combination of the two.
  • the software module can be placed in random access memory (RAM), internal memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disks, removable disks, CD-ROMs, or any other technical field Any other known storage media.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种由用户终端执行的推送模型优化方法,所述终端与第一用户相对应,所述终端包括当前的推送模型,所述推送模型基于矩阵分解方法进行预测,所述方法包括:从本地获取第一用户针对第一对象的评分(S202);基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一对象的嵌入向量的第一梯度向量(S204);确定所述第一用户的当前的预定数目的邻居用户(S206);将所述第一梯度向量分别发送给所述预定数目的邻居用户各自的终端(S208)。

Description

一种由用户终端执行的推送模型优化方法和装置 技术领域
本说明书实施例涉及机器学习技术领域,更具体地,涉及一种由用户终端执行的推送模型优化方法和装置。
背景技术
在推送系统中,矩阵分解方法被广泛应用。传统的矩阵分解技术都属于集中式(centralized)训练。也就是说,在传统的矩阵分解技术中,首先,构建该推荐系统的平台需要获取用户对物品的行为(如购买,点击,评分等行为)数据,然后利用这些数据来构建一个矩阵分解推送系统。也就是说,所有用户对物品的行为历史数据,都要集中式的存储在某个服务端,另外,在训练矩阵分解模型时,需要在服务端机器上训练。而所述用户对物品的历史行为数据可能包括用户的隐私数据。
因此,需要一种更有效的保护隐私的推送模型优化方案。
发明内容
本说明书实施例旨在提供一种更有效的保护隐私的推送模型优化方案。
本说明书一方面提供一种由用户终端执行的推送模型优化方法,所述终端与第一用户相对应,所述终端本地包括当前的推送模型,所述推送模型基于矩阵分解方法进行预测,所述方法包括:
从本地获取第一用户针对第一对象的评分,其中,所述推送模型中包括所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量;
基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一对象的嵌入向量的第一梯度向量;
确定所述第一用户的当前的预定数目的邻居用户,其中,所述邻居用户与所述第一用户具有预定关联关系;
将所述第一梯度向量分别发送给所述预定数目的邻居用户各自的终端,以使得每个邻居用户的终端基于所述第一梯度向量分别优化其本地的第一对象的嵌入向量。
在一个实施例中,计算用于优化所述第一对象的嵌入向量的第一梯度向量包括,计算用于优化所述第一对象的嵌入向量的初始梯度向量,通过随机算法将所述初始梯度向量转换为第一梯度向量,其中,所述第一梯度向量的元素的符号基于所述初始梯度向量的相应元素的符合确定,所述第一梯度向量的元素绝对值的取值为多个离散数值中的一个数值,其中,所述随机算法使得所述第一梯度向量的元素的期望值与所述初始梯度向量的相应元素的值相对应。
在一个实施例中,所述多个离散数值为位数相同的二进制数值。
在一个实施例中,所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量包括的各个元素值都在-1到1之间,所述多个离散数值为0和1。
在一个实施例中,所述方法还包括,在计算用于优化所述第一对象的嵌入向量的初始梯度向量之后,使用所述初始梯度向量优化本地的第一对象的嵌入向量。
在一个实施例中,所述终端本地记录有所述推送模型的优化次数,所述方法还包括,在使用所述第一梯度向量更新本地的第一对象的嵌入向量之后,确定所述优化次数是否等于预定数值,在确定所述优化次数等于预定数值的情况中,停止对所述嵌入模型的下一次优化。
在一个实施例中,所述预定关联关系为地理位置关联关系。
在一个实施例中,所述方法还包括,在获取第一用户针对第一对象的评分之后,基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一用户的嵌入向量的梯度向量,以优化所述第一用户的嵌入向量。
在一个实施例中,所述邻居用户为一阶邻居用户,所述邻居用户中包括第二用户,所述方法还包括,从第二用户的终端接收用于优化第二对象的梯度向量和该梯度向量对应的邻居度数,确定所述邻居度数是否等于预定数值,在确定所述邻居度数不等于预定数值的情况中,对该邻居度数加1,并将用于优化第二对象的梯度向量和所述邻居度数发送给除所述第二用户之外的一阶邻居用户的终端。
本说明书另一方面提供一种由用户终端执行的推送模型优化装置,所述终端与第一用户相对应,所述终端本地包括当前的推送模型,所述推送模型基于矩阵分解方法进行预测,所述装置包括:
获取单元,配置为,从本地获取第一用户针对第一对象的评分,其中,所述推送模型中包括所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量;
第一计算单元,配置为,基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一对象的嵌入向量的第一梯度向量;
第一确定单元,配置为,确定所述第一用户的当前的预定数目的邻居用户,其中,所述邻居用户与所述第一用户具有预定关联关系;
第一发送单元,配置为,将所述第一梯度向量分别发送给所述预定数目的邻居用户各自的终端,以使得每个邻居用户的终端基于所述第一梯度向量分别优化其本地的第一对象的嵌入向量。
在一个实施例中,所述第一计算单元包括,计算子单元,配置为,计算用于优化所述第一对象的嵌入向量的初始梯度向量;转换子单元,配置为,通过随机算法将所述初始梯度向量转换为第一梯度向量,其中,所述第一梯度向量的元素的符号基于所述初始梯度向量的相应元素的符合确定,所述第一梯度向量的元素绝对值的取值为多个离散数值中的一个数值,其中,所述随机算法使得所述第一梯度向量的元素的期望值与所述初始梯度向量的相应元素的值相对应。
在一个实施例中,所述装置还包括,优化单元,配置为,在计算用于优化所述第一对象的嵌入向量的初始梯度向量之后,使用所述初始梯度向量优化本地的第一对象的嵌入向量。
在一个实施例中,所述终端本地记录有所述推送模型的优化次数,所述装置还包括,第二确定单元,配置为,在使用所述第一梯度向量更新本地的第一对象的嵌入向量之后,确定所述优化次数是否等于预定数值,停止单元,配置为,在确定所述优化次数等于预定数值的情况中,停止对所述嵌入模型的下一次优化。
在一个实施例中,所述装置还包括,第二计算单元,配置为,在获取第一用户针对第一对象的评分之后,基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一用户的嵌入向量的梯度向量,以优化所述第一用户的嵌入向量。
在一个实施例中,所述邻居用户为一阶邻居用户,所述邻居用户中包括第二用户,所述装置还包括,接收单元,配置为,从第二用户的终端接收用于优化第二对象的梯度向量和该梯度向量对应的邻居度数,第三确定单元,配置为,确定所述邻居度数是否等于预定数值,第二发送单元,配置为,在确定所述邻居度数不等于预定数值的情况中,对该邻居度数加1,并将用于优化第二对象的梯度向量和所述邻居度数发送给除所述第 二用户之外的邻居用户。
本说明书另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项方法。
本说明书另一方面提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。
在本说明书实施例中,在各个用户终端进行对基于矩阵分解的推送模型的分布式的训练,各个用户终端具有其各自的模型参数,而通过在具有预定关联关系的邻居用户之间传递参数梯度,使得在不泄露用户隐私的同时,对关联关系较近的用户之间的模型参数进行协同训练,提高了模型预测准确性,另外,通过以随机算法将参数梯度的元素值转换为预定位数的二进制数,同时保留参数梯度的潜在特征,使得在优化推送模型的同时,使得用户终端之间的通信量大大减小。
附图说明
通过结合附图描述本说明书实施例,可以使得本说明书实施例更加清楚:
图1示出根据本说明书实施例的对象推送系统;
图2示出根据本说明书实施例的一种由用户终端执行的推送模型优化方法流程图;
图3示意示出用户之间的关系网络图;
图4示出通过邻居用户之间的梯度传递更新各个用户的对象嵌入向量的示意图;
图5示出根据本说明书实施例的一种由用户终端执行的推送模型优化装置。
具体实施方式
下面将结合附图描述本说明书实施例。
图1示出根据本说明书实施例的对象推送系统100。如图1中所示,系统100包括服务器11和多个用户终端12,其中,各个用户终端12通过网络与服务器11连接。在每个用户终端12中,都包括本地训练的推送模型,所述推送模型为基于矩阵分解方法进行预测的模型,即,在所述推送模型中,包括该终端对应的用户的嵌入向量和平台中各个对象的嵌入向量,所述平台例如为购物平台、影评书评平台等。例如,某个终端12与第一用户对应,当第一用户对平台中的第一对象进行操作(如点击、购买、评分等) 时,该终端12可基于第一用户的操作获取该第一用户对第一对象的评分数据,从而可基于该评分数据进行对本地推送模型的训练,即,基于所述评分数据、第一用户的当前嵌入向量、第一对象的当前嵌入向量计算用于更新第一对象的嵌入向量的梯度数据,以使用该梯度数据优化本地的第一对象的嵌入向量,并将该梯度数据发送给平台中其他邻居用户的终端,以使得其他用户的终端在其本地使用该梯度数据优化推送模型。其中,所述邻居用户与第一用户具有预定关联关系,例如,所述邻居用户与第一用户为地理位置较近的邻居用户,或者所述邻居用户与第一用户具有好友关系,等等。其中,第一用户的终端可通过服务器确定其邻居用户,或者,第一用户的终端可基于本地保存的数据(如好友名单)确定其邻居用户。
可以理解,上述参考图1的描述仅仅是示意性的,而不是用于限定本说明书实施例的范围。下面将详细描述根据上述模型优化过程。
图2示出根据本说明书实施例的一种由用户终端执行的推送模型优化方法流程图,所述终端与第一用户相对应,所述终端本地包括当前的推送模型,所述推送模型基于矩阵分解方法进行预测,所述方法包括:
步骤S202,从本地获取第一用户针对第一对象的评分,其中,所述推送模型中包括所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量;
步骤S204,基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一对象的嵌入向量的第一梯度向量;
步骤S206,确定所述第一用户的当前的预定数目的邻居用户,其中,所述邻居用户与所述第一用户具有预定关联关系;
步骤S208,将所述第一梯度向量分别发送给所述预定数目的邻居用户各自的终端,以使得每个邻居用户的终端基于所述第一梯度向量分别优化其本地的第一对象的嵌入向量。
该方法在例如第一用户的终端本地执行,例如,可由终端中的APP中的预定程序执行,或者可由终端中的系统中的预定程序执行等等。所述终端本地包括推送模型,该推送模型基于矩阵分解方法进行预测,也就是说,所述推送模型中包括与该终端用户对应的用户嵌入向量和APP平台或系统中的各个对象的对象嵌入向量。在初始,该推送模型的参数是随机确定的,即,所述用户嵌入向量和各个对象嵌入向量是随机确定的,随着终端不断地基于用户的行为数据获取训练样本对该推送模型进行训练,不断更新所述 用户嵌入向量和各个对象嵌入向量,从而使得推送模型的预测更加准确。当使用该推送模型对第一用户进行对象推送时,可使用第一用户的用户嵌入向量与候选推送对象中各个对象的对象嵌入向量进行点积,从而获得第一用户对各个候选推送对象的预测评分,并基于各个对象的预测评分进行对象推送。
首先,在步骤S202,从本地获取第一用户针对第一对象的评分,其中,所述推送模型中包括所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量。
所述评分可以为用户对对象的实际打分,也可以基于用户对对象的历史行为映射获取。例如,该方法由终端本地的APP执行,例如,所述APP平台例如为影评书评平台,当第一用户通过该APP进行对第一对象(例如某电影)的打分时,该终端本地可通过第一用户在该APP中的打分行为获取第一用户对第一对象的评分。例如,所述APP平台例如为购物平台,则该第一对象可以为平台中的任一商品,当第一用户对该第一对象进行例如点击、购买等行为时,可将该行为映射为对第一对象的评分,例如,假设评分满分为5分,则可以将点击映射为3分,将购买映射为5分等等,从而,终端本地可基于第一用户在该APP中的具体行为获取第一用户对第一对象的评分。在一个实施例中,终端本地可基于APP中存储的第一用户在预定时段(如一周)内对第一对象的全部历史行为,计算第一用户对第一对象的评分,例如,基于一周内第一用户对第一对象的点击次数和购买次数计算所述评分。
如上文所述,所述推送模型包括终端用户的嵌入向量和平台或系统中各个对象的嵌入向量,由于该第一对象为平台或系统中的一个对象,因此,推送模型中包括第一用户的嵌入向量和第一对象的嵌入向量。在还未开始对该推送模型的训练时,初始化第一用户的嵌入向量和各个对象的嵌入向量,例如,可随机确定第一用户的嵌入向量和各个对象的嵌入向量。
也就是说,根据本说明书实施例的模型优化方法即为一种去中心化式的矩阵分解方法,其中,将评分数据和模型数据都保存在用户终端中,其中,所述模型数据包括该终端对应的用户的嵌入向量和平台中各个对象的嵌入向量。
在步骤S204,基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一对象的嵌入向量的第一梯度向量。
在矩阵分解方法中,通常通过如公式(1)所示的损失函数来优化嵌入向量:
Figure PCTCN2020102340-appb-000001
其中,U i为用户i的嵌入向量,用于表示用户i的潜在特征,V j i表示用户i所评分的对象的嵌入向量,用于表示该对象的潜在特征。
在本说明书实施例中,第一用户对应的终端本地包括的推送模型基于矩阵分解方法进行预测,即,该推送模型也通过公式(1)进行优化,所不同的是,由于在该终端只能获取该终端用户(即第一用户)对各个对象的评分,假设第一用户为用户i,因此,在公式(1)中,仅对j求和,而不对i求和,具体是,用于训练终端本地推送模型的损失函数如公式(2)所示:
Figure PCTCN2020102340-appb-000002
在公式(2)中对第一用户i的嵌入向量U i和第一对象j的嵌入向量V j i分别求导,即可得到分别如公式(3)和(4)所示的损失函数对第一用户和第一对象的梯度向量:
Figure PCTCN2020102340-appb-000003
Figure PCTCN2020102340-appb-000004
其中,在公式(3)中,j取值为1到N中任一自然数,其中N为第一用户i所评分的对象的数目。
也就是说,如公式(3)和(4)所示,在获取第一用户针对第一对象的评分R ij之后,可基于所述评分R ij、所述第一用户的当前嵌入向量U i和所述第一对象的当前嵌入向量V j i,通过公式(4)计算用于优化所述第一对象的嵌入向量的梯度向量,并基于该梯度向量通过如下的公式(5)优化V j i
Figure PCTCN2020102340-appb-000005
同时,可基于所述评分R ij、所述第一用户的当前嵌入向量U i和所述第一用户所评分的各个对象的当前嵌入向量V j i,通过公式(3)计算用于优化所述第一用户的嵌入向量的梯度向量,并基于该梯度向量通过如下的公式(6)优化U i
Figure PCTCN2020102340-appb-000006
也就是说,所述第一梯度向量可以为如公式(4)所示的初始梯度向量,所述第一梯度向量为在后续步骤中将发送给其他终端的梯度数据。然而,如果将所述初始梯度向量 发送给其他终端,该初始梯度向量的每个元素都为实数,例如,该实数可以转换为多位的二进制数,从而,将导致终端之间的通信数据量较多,从而会导致用户终端消耗过多流量。
在一个实施例中,在计算出所述初始梯度向量之后,可通过随机算法将所述初始梯度向量转换为第一梯度向量,其中,所述第一梯度向量的元素的符号基于所述初始梯度向量的相应元素的符合确定,所述第一梯度向量的元素绝对值的取值为多个离散数值中的一个数值,其中,所述随机算法使得所述第一梯度向量的元素的期望值等于所述初始梯度向量的相应元素的值。
例如,假设所述初始梯度向量
Figure PCTCN2020102340-appb-000007
为元素数值在[-k,k]之间的d维向量,假设
Figure PCTCN2020102340-appb-000008
包括的元素为G d,则通过如下的公式(7)对
Figure PCTCN2020102340-appb-000009
包括的各个G d进行随机算法转换,以获取第一梯度向量
Figure PCTCN2020102340-appb-000010
的各个元素G′ d
G ′d=k·sgn(G d)·σ(G d,k)       (7)
其中,sgn(G d)为值G d的符号(正号或负号),所述随机算法σ(G d,k)例如如公式(8)所示:
Figure PCTCN2020102340-appb-000011
其中P1、P2表示σ(G d,k)分别取1和0的概率。如公式(8)所示,通过|G d|在范围0到k中的位置确定σ(G d,k)取1或0的概率P1和P2。结合公式(7)和公式(8)可证明,G′ d的期望值为G d。即,经过上述公式(7)的转换后,将原始数据G d转换G′ d,G′ d的取值为离散的0或k,并且G′ d的期望值等于G d的值。当k取值为1时,G′ d的取值为离散的0或1,从而可减少终端之间的传输数据量。
在一个实施例中,上述G′ d的取值可以为大于两个的离散数值,该多个离散数值为位数相同的二进制数,其例如为00、01、10和11。所述多个离散数值与|G d|的取值范围中的多个端点分别对应。例如|G d|的取值范围为[0,9],则00、01、10和11分别对应于0、3、6和9,其中0、3、6和9将|G d|的取值范围划分为等长的三个区间。例如,当原始数据落入其中一个区间时,与公式(8)类似地,所述随机算法包括,基于|G d|在该区间中的位置,确定将|G d|转换为与该区间的端点a或b对应的离散数值的概率。例如,当|G d|=1时,其落入区间[0,3]中,从而,其对应如下面公式(9)所示的随机变量:
Figure PCTCN2020102340-appb-000012
可如下面的公式(10)所示计算G′ d
G′ d=sgn(G d)·σ(G d,k)      (10)
基于公式(10)计算的G′ d的期望值为与G d成比例,例如,对于上述|G d|的取值范围为[0,9]、且|G d|=1的实例,结合公式(9)和(10)可算出G′ d的期望值为
Figure PCTCN2020102340-appb-000013
其为|G d|的
Figure PCTCN2020102340-appb-000014
倍。如果|G d|的范围在[0,3]之间,则基于公式(10)计算的G′ d的期望值等于G d
通过公式(10)获取G′ d,使得传输的梯度向量
Figure PCTCN2020102340-appb-000015
的各个元素绝对值为00、01、10和11中的任一个,从而可减少终端传输数据量,同时,
Figure PCTCN2020102340-appb-000016
各个元素的期望值与
Figure PCTCN2020102340-appb-000017
相应元素值成比例,从而可体现出
Figure PCTCN2020102340-appb-000018
的潜在特征。
在一个实施例中,所述随机算法通过随机选取用于所述原始数据的散列函数而实现。例如,与公式(8)对应地,可以以概率
Figure PCTCN2020102340-appb-000019
选取散列函数y=1,以概率
Figure PCTCN2020102340-appb-000020
选取散列函数y=0,从而实现与公式(8)相同的效果。
在步骤S206,确定所述第一用户的当前的预定数目的邻居用户,其中,所述邻居用户与所述第一用户具有预定关联关系。
在本说明书实施例中,可基于特定场景确定所述预定关联关系。在一个实施例中,所述APP例如为外卖平台,在该情况中,推送的对象(外卖商家)与用户的地理位置有较强的相关性,因此,可将预定关联关系设定为地理位置关联关系,也就是说,所述邻居用户是地理位置离第一用户较近的用户。例如,通常,例如手机、平板等用户终端都具有GPS模块,从而,服务器端可基于各个终端的GPS信息构建各个用户的地理位置邻接图,从而,第一用户的终端中的APP可从服务器端获取以第一用户为中心的地理位置邻接图,并从该邻接图确定第一用户的当前的预定数目的邻居用户。例如,可基于所述邻接图,将距离第一用户的距离小于预定阈值的用户确定为所述邻居用户。
在一个实施例中,所述APP例如为影评平台,平台中的用户之间具有基于好友关系的关系网络,从而,第一用户的终端中的APP可从服务器端获取以第一用户为中心的好友关系网络,并从该好友关系网络确定所述第一用户的预定数目的邻居用户,该邻居用户不限于为一阶邻居,也可以为预定阶数业内的邻居用户。在所述APP为影评平台的情况中,第一用户的终端不限于从服务器端获取所述好友关系网络,所述终端本地可 通过所述APP保存有第一用户的好友表,从而可从本地保存的好友表中确定预定数目的一阶邻居用户。
在一个实施例中,所述APP例如为购物平台,平台的用户之间具有基于用户与商品的二部图网络的关系网络,从而,第一用户的终端中的APP可从服务器获取以第一用户为中心的二部图网络,并从该网络中确定所述第一用户的预定数目的邻居用户。
图3示意示出用户之间的关系网络图,该关系网络图示出各个用户之间的连接关系,其可以上述地理位置连接关系、好友关系等。例如,在第一用户的终端进行模型优化时,仅需要获取该关系网络图中以第一用户为中心的预定阶数内的关系网络图,以用于获取第一用户的预定数目的邻居用户。
在步骤S208,将所述第一梯度向量分别发送给所述预定数目的邻居用户各自的终端,以使得每个邻居用户的终端基于所述第一梯度向量分别优化其本地的第一对象的嵌入向量。
例如,所述预定数目的邻居用户中包括第二用户m,所述第一用户终端可通过服务器的中转将所述第一梯度向量发送给第二用户的终端。具体是,第一用户终端的APP中确定第二用户的标识或账户,从而可通过APP将第一梯度向量发送给第二用户的账户,从而使得第二用户账户所在的终端接收到该第一梯度向量。
第二用户m的终端在接收到所述第一梯度向量
Figure PCTCN2020102340-appb-000021
之后,通过如下的公式(11)更新第二用户对应的终端本地的推送模型中第一对象V j m的嵌入向量:
Figure PCTCN2020102340-appb-000022
其中,V j m表示第二用户对应的终端本地的推送模型中保存的第一对象j的嵌入向量,也就是说,即使第二用户m未对第一对象j进行评分,由于与其具有强相关性的用户i对该第一对象j进行了评分,从而,与第二用户对应的终端通过从用户i对应的终端接收所述第一梯度向量
Figure PCTCN2020102340-appb-000023
从而也可以训练本地的推送模型。
在一个实施例中,第一用户的邻居用户为一阶邻居用户,第一用户在将第一梯度向量
Figure PCTCN2020102340-appb-000024
发送给第二用户终端的同时,还可以发送邻居度数D,此时D=1,表示第二用户为第一用户的一阶邻居。第二用户在接收到
Figure PCTCN2020102340-appb-000025
和D之后,确定D是否等于预定数值,例如所述预定数值为2,即预定将梯度传到最多二阶邻居,从而在确定D不等于2之后,第二用户终端对D加1(即,此时D=2),并将
Figure PCTCN2020102340-appb-000026
和D发送给第二用户的除第一用户之 外的一阶邻居的终端(例如第三用户的终端)。第三用户的终端在接收到
Figure PCTCN2020102340-appb-000027
和D之后,在确定D等于预定数值2的情况中,将不再继续将该梯度发送给其自身的一阶邻居终端。相对应地,第一用户的终端也可以从其一阶邻居(例如所述第二用户)的终端接收例如第二对象的梯度向量和相应的邻居度数D,在确定D不等于2的情况中,可将该D加1与所述梯度向量一起发送给第一用户的除第二用户之外的一阶邻居用户的终端。
图4示出通过邻居用户之间的梯度传递更新各个用户的对象嵌入向量的示意图。如图4中所示,用户i 0的终端将
Figure PCTCN2020102340-appb-000028
和D=1发送给其一阶邻居用户i 2、用户i 3和用户i 1各自的终端。用户i 1在确定D不等于2之后,对D加1,并继续将
Figure PCTCN2020102340-appb-000029
和D=2发送给其一阶邻居用户i 4的终端,用户i 4的终端在确定D=2之后,将不再继续将
Figure PCTCN2020102340-appb-000030
发送给其一阶邻居的终端。
在一个实施例中,所述第一用户终端本地记录有所述推送模型的优化次数T,所述方法还包括,在使用所述第一梯度向量更新本地的第一对象的嵌入向量之后,确定所述T是否等于预定数值(例如十万次),在T等于预定数值的情况中,停止对所述嵌入模型的下一次优化。在确定T不等于所述预定数值的情况中,可对所述T加1,并进行下一次优化。
图5示出根据本说明书实施例的一种由用户终端执行的推送模型优化装置500,所述终端与第一用户相对应,所述终端本地包括当前的推送模型,所述推送模型基于矩阵分解方法进行预测,所述装置包括:
获取单元501,配置为,从本地获取第一用户针对第一对象的评分,其中,所述推送模型中包括所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量;
第一计算单元502,配置为,基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一对象的嵌入向量的第一梯度向量;
第一确定单元503,配置为,确定所述第一用户的当前的预定数目的邻居用户,其中,所述邻居用户与所述第一用户具有预定关联关系;
第一发送单元504,配置为,将所述第一梯度向量分别发送给所述预定数目的邻居用户各自的终端,以使得每个邻居用户的终端基于所述第一梯度向量分别优化其本地的第一对象的嵌入向量。
在一个实施例中,所述第一计算单元502包括,计算子单元5021,配置为,计算用于优化所述第一对象的嵌入向量的初始梯度向量;转换子单元5022,配置为,通过随机 算法将所述初始梯度向量转换为第一梯度向量,其中,所述第一梯度向量的元素的符号基于所述初始梯度向量的相应元素的符合确定,所述第一梯度向量的元素绝对值的取值为多个离散数值中的一个数值,其中,所述随机算法使得所述第一梯度向量的元素的期望值与所述初始梯度向量的相应元素的值相对应。
在一个实施例中,所述装置还包括,优化单元505,配置为,在计算用于优化所述第一对象的嵌入向量的初始梯度向量之后,使用所述初始梯度向量优化本地的第一对象的嵌入向量。
在一个实施例中,所述终端本地记录有所述推送模型的优化次数,所述装置还包括,第二确定单元506,配置为,在使用所述第一梯度向量更新本地的第一对象的嵌入向量之后,确定所述优化次数是否等于预定数值,停止单元507,配置为,在确定所述优化次数等于预定数值的情况中,停止对所述嵌入模型的下一次优化。
在一个实施例中,所述装置还包括,第二计算单元508,配置为,在获取第一用户针对第一对象的评分之后,基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一用户的嵌入向量的梯度向量,以优化所述第一用户的嵌入向量。
在一个实施例中,所述邻居用户为一阶邻居用户,所述邻居用户中包括第二用户,所述装置还包括,接收单元509,配置为,从第二用户的终端接收用于优化第二对象的梯度向量和该梯度向量对应的邻居度数,第三确定单元510,配置为,确定所述邻居度数是否等于预定数值,第二发送单元511,配置为,在确定所述邻居度数不等于预定数值的情况中,对该邻居度数加1,并将用于优化第二对象的梯度向量和所述邻居度数发送给除所述第二用户之外的一阶邻居用户的终端。
本说明书另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项方法。
本说明书另一方面提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。
在本说明书实施例中,在各个用户终端进行对推送模型的分布式的训练,各个用户终端具有其各自的模型参数,而通过在具有预定关联关系的邻居用户之间传递参数梯度,使得在不泄露用户隐私的同时,对关联关系较近的用户之间的模型参数进行协同训练,提高了模型预测准确性,另外,通过以随机算法将参数梯度的元素值转换为预定位数的 二进制值,同时保留参数梯度的潜在特征,使得在优化推送模型的同时,使得用户终端之间的通信量大大减小。
需要理解,本文中的“第一”,“第二”等描述,仅仅为了描述的简单而对相似概念进行区分,并不具有其他限定作用。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执轨道,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (20)

  1. 一种由用户终端执行的推送模型优化方法,所述终端与第一用户相对应,所述终端本地包括当前的推送模型,所述推送模型基于矩阵分解方法进行预测,所述方法包括:
    从本地获取第一用户针对第一对象的评分,其中,所述推送模型中包括所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量;
    基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一对象的嵌入向量的第一梯度向量;
    确定所述第一用户的当前的预定数目的邻居用户,其中,所述邻居用户与所述第一用户具有预定关联关系;
    将所述第一梯度向量分别发送给所述预定数目的邻居用户各自的终端,以使得每个邻居用户的终端基于所述第一梯度向量分别优化其本地的第一对象的嵌入向量。
  2. 根据权利要求1所述的方法,其中,计算用于优化所述第一对象的嵌入向量的第一梯度向量包括,计算用于优化所述第一对象的嵌入向量的初始梯度向量,通过随机算法将所述初始梯度向量转换为第一梯度向量,其中,所述第一梯度向量的元素的符号基于所述初始梯度向量的相应元素的符合确定,所述第一梯度向量的元素绝对值的取值为多个离散数值中的一个数值,其中,所述随机算法使得所述第一梯度向量的元素的期望值与所述初始梯度向量的相应元素的值相对应。
  3. 根据权利要求2所述的方法,其中,所述多个离散数值为位数相同的二进制数值。
  4. 根据权利要求3所述的方法,其中,所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量包括的各个元素值都在-1到1之间,所述多个离散数值为0和1。
  5. 根据权利要求2所述的方法,还包括,在计算用于优化所述第一对象的嵌入向量的初始梯度向量之后,使用所述初始梯度向量优化本地的第一对象的嵌入向量。
  6. 根据权利要求5所述的方法,所述终端本地记录有所述推送模型的优化次数,所述方法还包括,在使用所述第一梯度向量更新本地的第一对象的嵌入向量之后,确定所述优化次数是否等于预定数值,在确定所述优化次数等于预定数值的情况中,停止对所述嵌入模型的下一次优化。
  7. 根据权利要求1所述的方法,其中,所述预定关联关系为地理位置关联关系。
  8. 根据权利要求1所述的方法,还包括,在获取第一用户针对第一对象的评分之后,基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一用户的嵌入向量的梯度向量,以优化所述第一用户的嵌入向量。
  9. 根据权利要求1所述的方法,其中,所述邻居用户为一阶邻居用户,所述邻居用 户中包括第二用户,所述方法还包括,从第二用户的终端接收用于优化第二对象的梯度向量和该梯度向量对应的邻居度数,确定所述邻居度数是否等于预定数值,在确定所述邻居度数不等于预定数值的情况中,对该邻居度数加1,并将用于优化第二对象的梯度向量和所述邻居度数发送给除所述第二用户之外的一阶邻居用户的终端。
  10. 一种由用户终端执行的推送模型优化装置,所述终端与第一用户相对应,所述终端本地包括当前的推送模型,所述推送模型基于矩阵分解方法进行预测,所述装置包括:
    获取单元,配置为,从本地获取第一用户针对第一对象的评分,其中,所述推送模型中包括所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量;
    第一计算单元,配置为,基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一对象的嵌入向量的第一梯度向量;
    第一确定单元,配置为,确定所述第一用户的当前的预定数目的邻居用户,其中,所述邻居用户与所述第一用户具有预定关联关系;
    第一发送单元,配置为,将所述第一梯度向量分别发送给所述预定数目的邻居用户各自的终端,以使得每个邻居用户的终端基于所述第一梯度向量分别优化其本地的第一对象的嵌入向量。
  11. 根据权利要求10所述的装置,其中,所述第一计算单元包括,计算子单元,配置为,计算用于优化所述第一对象的嵌入向量的初始梯度向量;转换子单元,配置为,通过随机算法将所述初始梯度向量转换为第一梯度向量,其中,所述第一梯度向量的元素的符号基于所述初始梯度向量的相应元素的符合确定,所述第一梯度向量的元素绝对值的取值为多个离散数值中的一个数值,其中,所述随机算法使得所述第一梯度向量的元素的期望值与所述初始梯度向量的相应元素的值相对应。
  12. 根据权利要求11所述的装置,其中,所述多个离散数值为位数相同的二进制数值。
  13. 根据权利要求12所述的装置,其中,所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量包括的各个元素值都在-1到1之间,所述多个离散数值为0和1。
  14. 根据权利要求11所述的装置,还包括,优化单元,配置为,在计算用于优化所述第一对象的嵌入向量的初始梯度向量之后,使用所述初始梯度向量优化本地的第一对象的嵌入向量。
  15. 根据权利要求14所述的装置,所述终端本地记录有所述推送模型的优化次数,所述装置还包括,第二确定单元,配置为,在使用所述第一梯度向量更新本地的第一对 象的嵌入向量之后,确定所述优化次数是否等于预定数值,停止单元,配置为,在确定所述优化次数等于预定数值的情况中,停止对所述嵌入模型的下一次优化。
  16. 根据权利要求10所述的装置,其中,所述预定关联关系为地理位置关联关系。
  17. 根据权利要求10所述的装置,还包括,第二计算单元,配置为,在获取第一用户针对第一对象的评分之后,基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一用户的嵌入向量的梯度向量,以优化所述第一用户的嵌入向量。
  18. 根据权利要求10所述的装置,其中,所述邻居用户为一阶邻居用户,所述邻居用户中包括第二用户,所述装置还包括,接收单元,配置为,从第二用户的终端接收用于优化第二对象的梯度向量和该梯度向量对应的邻居度数,第三确定单元,配置为,确定所述邻居度数是否等于预定数值,第二发送单元,配置为,在确定所述邻居度数不等于预定数值的情况中,对该邻居度数加1,并将用于优化第二对象的梯度向量和所述邻居度数发送给除所述第二用户之外的一阶邻居用户的终端。
  19. 一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-9中任一项的所述的方法。
  20. 一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-9中任一项所述的方法。
PCT/CN2020/102340 2019-10-23 2020-07-16 一种由用户终端执行的推送模型优化方法和装置 WO2021077814A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201911014064.6 2019-10-23
CN201911014064.6A CN110766166B (zh) 2019-10-23 2019-10-23 一种由用户终端执行的推送模型优化方法和装置

Publications (1)

Publication Number Publication Date
WO2021077814A1 true WO2021077814A1 (zh) 2021-04-29

Family

ID=69333338

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/102340 WO2021077814A1 (zh) 2019-10-23 2020-07-16 一种由用户终端执行的推送模型优化方法和装置

Country Status (2)

Country Link
CN (2) CN113077058B (zh)
WO (1) WO2021077814A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114168446A (zh) * 2022-02-10 2022-03-11 浙江大学 一种面向移动端运行算法模型的模拟评测方法及设备

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113077058B (zh) * 2019-10-23 2022-07-15 支付宝(杭州)信息技术有限公司 一种由用户终端执行的推送模型优化方法和装置
CN115081024B (zh) * 2022-08-16 2023-01-24 杭州金智塔科技有限公司 基于隐私保护的去中心化业务模型训练方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103246672A (zh) * 2012-02-09 2013-08-14 中国科学技术大学 对用户进行个性化推荐的方法和装置
CN104090932A (zh) * 2014-06-24 2014-10-08 海信集团有限公司 一种内容推荐方法及装置
US20170075908A1 (en) * 2015-09-10 2017-03-16 Adobe Systems Incorporated Incorporating Social-Network Connections Information into Estimated User-Ratings of Videos for Video Recommendations
CN108520303A (zh) * 2018-03-02 2018-09-11 阿里巴巴集团控股有限公司 一种推荐系统构建方法及装置
CN109376901A (zh) * 2018-09-07 2019-02-22 苏州大学 一种基于去中心化矩阵分解的服务质量预测方法
CN110766166A (zh) * 2019-10-23 2020-02-07 支付宝(杭州)信息技术有限公司 一种由用户终端执行的推送模型优化方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108596774B (zh) * 2018-04-24 2021-10-01 山东师范大学 基于深层次网络嵌入特征的社会化信息推荐算法及系统
CN109740655B (zh) * 2018-12-26 2021-06-01 西安电子科技大学 基于矩阵分解及神经协同过滤的物品评分预测方法
CN110275881B (zh) * 2019-04-15 2023-01-17 创新先进技术有限公司 基于哈希嵌入向量向用户推送对象的方法和装置
CN110321494B (zh) * 2019-06-26 2021-08-31 北京交通大学 基于矩阵分解与网络嵌入联合模型的社会化推荐方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103246672A (zh) * 2012-02-09 2013-08-14 中国科学技术大学 对用户进行个性化推荐的方法和装置
CN104090932A (zh) * 2014-06-24 2014-10-08 海信集团有限公司 一种内容推荐方法及装置
US20170075908A1 (en) * 2015-09-10 2017-03-16 Adobe Systems Incorporated Incorporating Social-Network Connections Information into Estimated User-Ratings of Videos for Video Recommendations
CN108520303A (zh) * 2018-03-02 2018-09-11 阿里巴巴集团控股有限公司 一种推荐系统构建方法及装置
CN109376901A (zh) * 2018-09-07 2019-02-22 苏州大学 一种基于去中心化矩阵分解的服务质量预测方法
CN110766166A (zh) * 2019-10-23 2020-02-07 支付宝(杭州)信息技术有限公司 一种由用户终端执行的推送模型优化方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114168446A (zh) * 2022-02-10 2022-03-11 浙江大学 一种面向移动端运行算法模型的模拟评测方法及设备

Also Published As

Publication number Publication date
CN110766166B (zh) 2021-03-23
CN110766166A (zh) 2020-02-07
CN113077058B (zh) 2022-07-15
CN113077058A (zh) 2021-07-06

Similar Documents

Publication Publication Date Title
WO2021077814A1 (zh) 一种由用户终端执行的推送模型优化方法和装置
US11087413B2 (en) Identity mapping between commerce customers and social media users
WO2019090954A1 (zh) 一种预测方法及终端、服务器
TWI712963B (zh) 推薦系統建構方法及裝置
US10824608B2 (en) Feature generation and storage in a multi-tenant environment
WO2019114344A1 (zh) 一种基于图结构模型的异常账号防控方法、装置以及设备
CN108399564B (zh) 信用评分方法及装置
CN112085172B (zh) 图神经网络的训练方法及装置
WO2022152161A1 (zh) 混合图神经网络模型的训练、预测
WO2022100518A1 (zh) 一种基于用户画像的物品推荐方法和装置
WO2019019385A1 (zh) 跨平台数据匹配方法、装置、计算机设备和存储介质
CN111008335A (zh) 一种信息处理方法、装置、设备及存储介质
WO2021139335A1 (zh) 物理机销售数据预测方法、装置、计算机设备及存储介质
JP6910229B2 (ja) 情報処理装置および信用度算出方法
WO2022188534A1 (zh) 信息推送的方法和装置
CN113689270B (zh) 黑产设备的确定方法、电子设备、存储介质及程序产品
CN116911953B (zh) 物品推荐方法、装置、电子设备及计算机可读存储介质
CN113450167A (zh) 一种商品推荐方法和装置
CN110795631B (zh) 一种基于因子分解机的推送模型优化、预测方法和装置
US11601509B1 (en) Systems and methods for identifying entities between networks
CN114493674A (zh) 一种广告点击率预测模型及方法
CN113076450A (zh) 一种目标推荐列表的确定方法和装置
US9536267B2 (en) Resolving pairwise links to groups
CN110046258B (zh) 用于确定针对实体的用户关联度量值的方法及装置
CN113807749B (zh) 一种对象评分方法和装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20879450

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20879450

Country of ref document: EP

Kind code of ref document: A1