CN110766166B - 一种由用户终端执行的推送模型优化方法和装置 - Google Patents
一种由用户终端执行的推送模型优化方法和装置 Download PDFInfo
- Publication number
- CN110766166B CN110766166B CN201911014064.6A CN201911014064A CN110766166B CN 110766166 B CN110766166 B CN 110766166B CN 201911014064 A CN201911014064 A CN 201911014064A CN 110766166 B CN110766166 B CN 110766166B
- Authority
- CN
- China
- Prior art keywords
- user
- vector
- neighbor
- gradient vector
- gradient
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9536—Search customisation based on social or collaborative filtering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本说明书实施例提供了一种由用户终端执行的推送模型优化方法,所述终端与第一用户相对应,所述终端本地包括当前的推送模型,所述推送模型基于矩阵分解方法进行预测,所述方法包括:从本地获取第一用户针对第一对象的评分;基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一对象的嵌入向量的第一梯度向量;确定所述第一用户的当前的预定数目的邻居用户;将所述第一梯度向量分别发送给所述预定数目的邻居用户各自的终端,以使得每个邻居用户的终端基于所述第一梯度向量分别优化其本地的第一对象的嵌入向量。
Description
技术领域
本说明书实施例涉及机器学习技术领域,更具体地,涉及一种由用户终端执行的推送模型优化方法和装置。
背景技术
在推送系统中,矩阵分解方法被广泛应用。传统的矩阵分解技术都属于集中式(centralized)训练。也就是说,在传统的矩阵分解技术中,首先,构建该推荐系统的平台需要获取用户对物品的行为(如购买,点击,评分等行为)数据,然后利用这些数据来构建一个矩阵分解推送系统。也就是说,所有用户对物品的行为历史数据,都要集中式的存储在某个服务端,另外,在训练矩阵分解模型时,需要在服务端机器上训练。而所述用户对物品的历史行为数据可能包括用户的隐私数据。
因此,需要一种更有效的保护隐私的推送模型优化方案。
发明内容
本说明书实施例旨在提供一种更有效的保护隐私的推送模型优化方案。
本说明书一方面提供一种由用户终端执行的推送模型优化方法,所述终端与第一用户相对应,所述终端本地包括当前的推送模型,所述推送模型基于矩阵分解方法进行预测,所述方法包括:
从本地获取第一用户针对第一对象的评分,其中,所述推送模型中包括所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量;
基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一对象的嵌入向量的第一梯度向量;
确定所述第一用户的当前的预定数目的邻居用户,其中,所述邻居用户与所述第一用户具有预定关联关系;
将所述第一梯度向量分别发送给所述预定数目的邻居用户各自的终端,以使得每个邻居用户的终端基于所述第一梯度向量分别优化其本地的第一对象的嵌入向量。
在一个实施例中,计算用于优化所述第一对象的嵌入向量的第一梯度向量包括,计算用于优化所述第一对象的嵌入向量的初始梯度向量,通过随机算法将所述初始梯度向量转换为第一梯度向量,其中,所述第一梯度向量的元素的符号基于所述初始梯度向量的相应元素的符合确定,所述第一梯度向量的元素绝对值的取值为多个离散数值中的一个数值,其中,所述随机算法使得所述第一梯度向量的元素的期望值与所述初始梯度向量的相应元素的值相对应。
在一个实施例中,所述多个离散数值为位数相同的二进制数值。
在一个实施例中,所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量包括的各个元素值都在-1到1之间,所述多个离散数值为0和1。
在一个实施例中,所述方法还包括,在计算用于优化所述第一对象的嵌入向量的初始梯度向量之后,使用所述初始梯度向量优化本地的第一对象的嵌入向量。
在一个实施例中,所述终端本地记录有所述推送模型的优化次数,所述方法还包括,在使用所述第一梯度向量更新本地的第一对象的嵌入向量之后,确定所述优化次数是否等于预定数值,在确定所述优化次数等于预定数值的情况中,停止对所述嵌入模型的下一次优化。
在一个实施例中,所述预定关联关系为地理位置关联关系。
在一个实施例中,所述方法还包括,在获取第一用户针对第一对象的评分之后,基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一用户的嵌入向量的梯度向量,以优化所述第一用户的嵌入向量。
在一个实施例中,所述邻居用户为一阶邻居用户,所述邻居用户中包括第二用户,所述方法还包括,从第二用户的终端接收用于优化第二对象的梯度向量和该梯度向量对应的邻居度数,确定所述邻居度数是否等于预定数值,在确定所述邻居度数不等于预定数值的情况中,对该邻居度数加1,并将用于优化第二对象的梯度向量和所述邻居度数发送给除所述第二用户之外的一阶邻居用户的终端。
本说明书另一方面提供一种由用户终端执行的推送模型优化装置,所述终端与第一用户相对应,所述终端本地包括当前的推送模型,所述推送模型基于矩阵分解方法进行预测,所述装置包括:
获取单元,配置为,从本地获取第一用户针对第一对象的评分,其中,所述推送模型中包括所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量;
第一计算单元,配置为,基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一对象的嵌入向量的第一梯度向量;
第一确定单元,配置为,确定所述第一用户的当前的预定数目的邻居用户,其中,所述邻居用户与所述第一用户具有预定关联关系;
第一发送单元,配置为,将所述第一梯度向量分别发送给所述预定数目的邻居用户各自的终端,以使得每个邻居用户的终端基于所述第一梯度向量分别优化其本地的第一对象的嵌入向量。
在一个实施例中,所述第一计算单元包括,计算子单元,配置为,计算用于优化所述第一对象的嵌入向量的初始梯度向量;转换子单元,配置为,通过随机算法将所述初始梯度向量转换为第一梯度向量,其中,所述第一梯度向量的元素的符号基于所述初始梯度向量的相应元素的符合确定,所述第一梯度向量的元素绝对值的取值为多个离散数值中的一个数值,其中,所述随机算法使得所述第一梯度向量的元素的期望值与所述初始梯度向量的相应元素的值相对应。
在一个实施例中,所述装置还包括,优化单元,配置为,在计算用于优化所述第一对象的嵌入向量的初始梯度向量之后,使用所述初始梯度向量优化本地的第一对象的嵌入向量。
在一个实施例中,所述终端本地记录有所述推送模型的优化次数,所述装置还包括,第二确定单元,配置为,在使用所述第一梯度向量更新本地的第一对象的嵌入向量之后,确定所述优化次数是否等于预定数值,停止单元,配置为,在确定所述优化次数等于预定数值的情况中,停止对所述嵌入模型的下一次优化。
在一个实施例中,所述装置还包括,第二计算单元,配置为,在获取第一用户针对第一对象的评分之后,基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一用户的嵌入向量的梯度向量,以优化所述第一用户的嵌入向量。
在一个实施例中,所述邻居用户为一阶邻居用户,所述邻居用户中包括第二用户,所述装置还包括,接收单元,配置为,从第二用户的终端接收用于优化第二对象的梯度向量和该梯度向量对应的邻居度数,第三确定单元,配置为,确定所述邻居度数是否等于预定数值,第二发送单元,配置为,在确定所述邻居度数不等于预定数值的情况中,对该邻居度数加1,并将用于优化第二对象的梯度向量和所述邻居度数发送给除所述第二用户之外的邻居用户。
本说明书另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项方法。
本说明书另一方面提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。
在本说明书实施例中,在各个用户终端进行对基于矩阵分解的推送模型的分布式的训练,各个用户终端具有其各自的模型参数,而通过在具有预定关联关系的邻居用户之间传递参数梯度,使得在不泄露用户隐私的同时,对关联关系较近的用户之间的模型参数进行协同训练,提高了模型预测准确性,另外,通过以随机算法将参数梯度的元素值转换为预定位数的二进制数,同时保留参数梯度的潜在特征,使得在优化推送模型的同时,使得用户终端之间的通信量大大减小。
附图说明
通过结合附图描述本说明书实施例,可以使得本说明书实施例更加清楚:
图1示出根据本说明书实施例的对象推送系统100;
图2示出根据本说明书实施例的一种由用户终端执行的推送模型优化方法流程图;
图3示意示出用户之间的关系网络图;
图4示出通过邻居用户之间的梯度传递更新各个用户的对象嵌入向量的示意图;
图5示出根据本说明书实施例的一种由用户终端执行的推送模型优化装置500。
具体实施方式
下面将结合附图描述本说明书实施例。
图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)所示的损失函数来优化嵌入向量:
其中,Ui为用户i的嵌入向量,用于表示用户i的潜在特征,Vj i表示用户i所评分的对象的嵌入向量,用于表示该对象的潜在特征。
在本说明书实施例中,第一用户对应的终端本地包括的推送模型基于矩阵分解方法进行预测,即,该推送模型也通过公式(1)进行优化,所不同的是,由于在该终端只能获取该终端用户(即第一用户)对各个对象的评分,假设第一用户为用户i,因此,在公式(1)中,仅对j求和,而不对i求和,具体是,用于训练终端本地推送模型的损失函数如公式(2)所示:
在公式(2)中对第一用户i的嵌入向量Ui和第一对象j的嵌入向量Vj i分别求导,即可得到分别如公式(3)和(4)所示的损失函数对第一用户和第一对象的梯度向量:
其中,在公式(3)中,j取值为1到N中任一自然数,其中N为第一用户i所评分的对象的数目。
也就是说,如公式(3)和(4)所示,在获取第一用户针对第一对象的评分Rij之后,可基于所述评分Rij、所述第一用户的当前嵌入向量Ui和所述第一对象的当前嵌入向量Vj i,通过公式(4)计算用于优化所述第一对象的嵌入向量的梯度向量,并基于该梯度向量通过如下的公式(5)优化Vj i:
同时,可基于所述评分Rij、所述第一用户的当前嵌入向量Ui和所述第一用户所评分的各个对象的当前嵌入向量Vj i,通过公式(3)计算用于优化所述第一用户的嵌入向量的梯度向量,并基于该梯度向量通过如下的公式(6)优化Ui:
也就是说,所述第一梯度向量可以为如公式(4)所示的初始梯度向量,所述第一梯度向量为在后续步骤中将发送给其他终端的梯度数据。然而,如果将所述初始梯度向量发送给其他终端,该初始梯度向量的每个元素都为实数,例如,该实数可以转换为多位的二进制数,从而,将导致终端之间的通信数据量较多,从而会导致用户终端消耗过多流量。
在一个实施例中,在计算出所述初始梯度向量之后,可通过随机算法将所述初始梯度向量转换为第一梯度向量,其中,所述第一梯度向量的元素的符号基于所述初始梯度向量的相应元素的符合确定,所述第一梯度向量的元素绝对值的取值为多个离散数值中的一个数值,其中,所述随机算法使得所述第一梯度向量的元素的期望值等于所述初始梯度向量的相应元素的值。
G′d=k·sgn(Cd)·σ(Gd,k) (7)
其中,sgn(Gd)为值Gd的符号(正号或负号),所述随机算法σ(Gd,k)例如如公式(8)所示:
其中P1、P2表示σ(Gd,k)分别取1和0的概率。如公式(8)所示,通过|Gd|在范围0到k中的位置确定σ(Gd,k)取1或0的概率P1和P2。结合公式(7)和公式(8)可证明,G′d的期望值为Gd。即,经过上述公式(7)的转换后,将原始数据Gd转换G′d,G′d的取值为离散的0或k,并且G′d的期望值等于Gd的值。当k取值为1时,G′d的取值为离散的0或1,从而可减少终端之间的传输数据量。
在一个实施例中,上述G′d的取值可以为大于两个的离散数值,该多个离散数值为位数相同的二进制数,其例如为00、01、10和11。所述多个离散数值与|Gd|的取值范围中的多个端点分别对应。例如|Gd|的取值范围为[0,9],则00、01、10和11分别对应于0、3、6和9,其中0、3、6和9将|Gd|的取值范围划分为等长的三个区间。例如,当原始数据落入其中一个区间时,与公式(8)类似地,所述随机算法包括,基于|Gd|在该区间中的位置,确定将|Gd|转换为与该区间的端点a或b对应的离散数值的概率。例如,当|Gd|=1时,其落入区间[0,3]中,从而,其对应如下面公式(9)所示的随机变量:
可如下面的公式(10)所示计算G′d:
G′d=sgn(Gd)·σ(Gd,k) (10)
基于公式(10)计算的G′d的期望值为与Gd成比例,例如,对于上述|Gd|的取值范围为[0,9]、且|Gd|=1的实例,结合公式(9)和(10)可算出G′d的期望值为其为|Gd|的倍。如果|Gd|的范围在[0,3]之间,则基于公式(10)计算的G′d的期望值等于Gd。
在步骤S206,确定所述第一用户的当前的预定数目的邻居用户,其中,所述邻居用户与所述第一用户具有预定关联关系。
在本说明书实施例中,可基于特定场景确定所述预定关联关系。在一个实施例中,所述APP例如为外卖平台,在该情况中,推送的对象(外卖商家)与用户的地理位置有较强的相关性,因此,可将预定关联关系设定为地理位置关联关系,也就是说,所述邻居用户是地理位置离第一用户较近的用户。例如,通常,例如手机、平板等用户终端都具有GPS模块,从而,服务器端可基于各个终端的GPS信息构建各个用户的地理位置邻接图,从而,第一用户的终端中的APP可从服务器端获取以第一用户为中心的地理位置邻接图,并从该邻接图确定第一用户的当前的预定数目的邻居用户。例如,可基于所述邻接图,将距离第一用户的距离小于预定阈值的用户确定为所述邻居用户。
在一个实施例中,所述APP例如为影评平台,平台中的用户之间具有基于好友关系的关系网络,从而,第一用户的终端中的APP可从服务器端获取以第一用户为中心的好友关系网络,并从该好友关系网络确定所述第一用户的预定数目的邻居用户,该邻居用户不限于为一阶邻居,也可以为预定阶数业内的邻居用户。在所述APP为影评平台的情况中,第一用户的终端不限于从服务器端获取所述好友关系网络,所述终端本地可通过所述APP保存有第一用户的好友表,从而可从本地保存的好友表中确定预定数目的一阶邻居用户。
在一个实施例中,所述APP例如为购物平台,平台的用户之间具有基于用户与商品的二部图网络的关系网络,从而,第一用户的终端中的APP可从服务器获取以第一用户为中心的二部图网络,并从该网络中确定所述第一用户的预定数目的邻居用户。
图3示意示出用户之间的关系网络图,该关系网络图示出各个用户之间的连接关系,其可以上述地理位置连接关系、好友关系等。例如,在第一用户的终端进行模型优化时,仅需要获取该关系网络图中以第一用户为中心的预定阶数内的关系网络图,以用于获取第一用户的预定数目的邻居用户。
在步骤S208,将所述第一梯度向量分别发送给所述预定数目的邻居用户各自的终端,以使得每个邻居用户的终端基于所述第一梯度向量分别优化其本地的第一对象的嵌入向量。
例如,所述预定数目的邻居用户中包括第二用户m,所述第一用户终端可通过服务器的中转将所述第一梯度向量发送给第二用户的终端。具体是,第一用户终端的APP中确定第二用户的标识或账户,从而可通过APP将第一梯度向量发送给第二用户的账户,从而使得第二用户账户所在的终端接收到该第一梯度向量。
其中,Vj m表示第二用户对应的终端本地的推送模型中保存的第一对象j的嵌入向量,也就是说,即使第二用户m未对第一对象j进行评分,由于与其具有强相关性的用户i对该第一对象j进行了评分,从而,与第二用户对应的终端通过从用户i对应的终端接收所述第一梯度向量从而也可以训练本地的推送模型。
在一个实施例中,第一用户的邻居用户为一阶邻居用户,第一用户在将第一梯度向量发送给第二用户终端的同时,还可以发送邻居度数D,此时D=1,表示第二用户为第一用户的一阶邻居。第二用户在接收到和D之后,确定D是否等于预定数值,例如所述预定数值为2,即预定将梯度传到最多二阶邻居,从而在确定D不等于2之后,第二用户终端对D加1(即,此时D=2),并将和D发送给第二用户的除第一用户之外的一阶邻居的终端(例如第三用户的终端)。第三用户的终端在接收到和D之后,在确定D等于预定数值2的情况中,将不再继续将该梯度发送给其自身的一阶邻居终端。相对应地,第一用户的终端也可以从其一阶邻居(例如所述第二用户)的终端接收例如第二对象的梯度向量和相应的邻居度数D,在确定D不等于2的情况中,可将该D加1与所述梯度向量一起发送给第一用户的除第二用户之外的一阶邻居用户的终端。
图4示出通过邻居用户之间的梯度传递更新各个用户的对象嵌入向量的示意图。如图4中所示,用户i0的终端将和D=1发送给其一阶邻居用户i2、用户i3和用户i1各自的终端。用户i1在确定D不等于2之后,对D加1,并继续将和D=2发送给其一阶邻居用户i4的终端,用户i4的终端在确定D=2之后,将不再继续将发送给其一阶邻居的终端。
在一个实施例中,所述第一用户终端本地记录有所述推送模型的优化次数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 (18)
1.一种由用户终端执行的推送模型优化方法,所述终端与第一用户相对应,所述终端本地包括当前的推送模型,所述推送模型基于矩阵分解方法进行预测,所述方法包括:
从本地获取第一用户针对第一对象的评分,其中,所述推送模型中包括所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量;
基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一对象的嵌入向量的第一梯度向量;
确定所述第一用户的当前的预定数目的邻居用户,其中,所述邻居用户与所述第一用户具有预定关联关系;
将所述第一梯度向量分别发送给所述预定数目的邻居用户各自的终端,以使得每个邻居用户的终端基于所述第一梯度向量分别优化其本地的第一对象的嵌入向量;
其中,计算用于优化所述第一对象的嵌入向量的第一梯度向量包括,计算用于优化所述第一对象的嵌入向量的初始梯度向量,通过随机算法将所述初始梯度向量转换为第一梯度向量,其中,所述第一梯度向量的元素的符号基于所述初始梯度向量的相应元素的符号确定,所述第一梯度向量的元素绝对值的取值为多个离散数值中的一个数值,其中,所述随机算法使得所述第一梯度向量的元素的期望值与所述初始梯度向量的相应元素的值相对应。
2.根据权利要求1所述的方法,其中,所述多个离散数值为位数相同的二进制数值。
3.根据权利要求2所述的方法,其中,所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量包括的各个元素值都在-1到1之间,所述多个离散数值为0和1。
4.根据权利要求1所述的方法,还包括,在计算用于优化所述第一对象的嵌入向量的初始梯度向量之后,使用所述初始梯度向量优化本地的第一对象的嵌入向量。
5.根据权利要求4所述的方法,所述终端本地记录有所述推送模型的优化次数,所述方法还包括,在使用所述第一梯度向量更新本地的第一对象的嵌入向量之后,确定所述优化次数是否等于预定数值,在确定所述优化次数等于预定数值的情况中,停止对所述嵌入模型的下一次优化。
6.根据权利要求1所述的方法,其中,所述预定关联关系为地理位置关联关系。
7.根据权利要求1所述的方法,还包括,在获取第一用户针对第一对象的评分之后,基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一用户的嵌入向量的梯度向量,以优化所述第一用户的嵌入向量。
8.根据权利要求1所述的方法,其中,所述邻居用户为一阶邻居用户,所述邻居用户中包括第二用户,所述方法还包括,从第二用户的终端接收用于优化第二对象的梯度向量和该梯度向量对应的邻居度数,确定所述邻居度数是否等于预定数值,在确定所述邻居度数不等于预定数值的情况中,对该邻居度数加1,并将用于优化第二对象的梯度向量和所述邻居度数发送给除所述第二用户之外的一阶邻居用户的终端。
9.一种由用户终端执行的推送模型优化装置,所述终端与第一用户相对应,所述终端本地包括当前的推送模型,所述推送模型基于矩阵分解方法进行预测,所述装置包括:
获取单元,配置为,从本地获取第一用户针对第一对象的评分,其中,所述推送模型中包括所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量;
第一计算单元,配置为,基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一对象的嵌入向量的第一梯度向量;
第一确定单元,配置为,确定所述第一用户的当前的预定数目的邻居用户,其中,所述邻居用户与所述第一用户具有预定关联关系;
第一发送单元,配置为,将所述第一梯度向量分别发送给所述预定数目的邻居用户各自的终端,以使得每个邻居用户的终端基于所述第一梯度向量分别优化其本地的第一对象的嵌入向量;
其中,所述第一计算单元包括,计算子单元,配置为,计算用于优化所述第一对象的嵌入向量的初始梯度向量;转换子单元,配置为,通过随机算法将所述初始梯度向量转换为第一梯度向量,其中,所述第一梯度向量的元素的符号基于所述初始梯度向量的相应元素的符号确定,所述第一梯度向量的元素绝对值的取值为多个离散数值中的一个数值,其中,所述随机算法使得所述第一梯度向量的元素的期望值与所述初始梯度向量的相应元素的值相对应。
10.根据权利要求9所述的装置,其中,所述多个离散数值为位数相同的二进制数值。
11.根据权利要求10所述的装置,其中,所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量包括的各个元素值都在-1到1之间,所述多个离散数值为0和1。
12.根据权利要求9所述的装置,还包括,优化单元,配置为,在计算用于优化所述第一对象的嵌入向量的初始梯度向量之后,使用所述初始梯度向量优化本地的第一对象的嵌入向量。
13.根据权利要求12所述的装置,所述终端本地记录有所述推送模型的优化次数,所述装置还包括,第二确定单元,配置为,在使用所述第一梯度向量更新本地的第一对象的嵌入向量之后,确定所述优化次数是否等于预定数值,停止单元,配置为,在确定所述优化次数等于预定数值的情况中,停止对所述嵌入模型的下一次优化。
14.根据权利要求9所述的装置,其中,所述预定关联关系为地理位置关联关系。
15.根据权利要求9所述的装置,还包括,第二计算单元,配置为,在获取第一用户针对第一对象的评分之后,基于所述评分、所述第一用户的当前嵌入向量和所述第一对象的当前嵌入向量,计算用于优化所述第一用户的嵌入向量的梯度向量,以优化所述第一用户的嵌入向量。
16.根据权利要求9所述的装置,其中,所述邻居用户为一阶邻居用户,所述邻居用户中包括第二用户,所述装置还包括,接收单元,配置为,从第二用户的终端接收用于优化第二对象的梯度向量和该梯度向量对应的邻居度数,第三确定单元,配置为,确定所述邻居度数是否等于预定数值,第二发送单元,配置为,在确定所述邻居度数不等于预定数值的情况中,对该邻居度数加1,并将用于优化第二对象的梯度向量和所述邻居度数发送给除所述第二用户之外的一阶邻居用户的终端。
17.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-8中任一项的所述的方法。
18.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-8中任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911014064.6A CN110766166B (zh) | 2019-10-23 | 2019-10-23 | 一种由用户终端执行的推送模型优化方法和装置 |
CN202110460791.6A CN113077058B (zh) | 2019-10-23 | 2019-10-23 | 一种由用户终端执行的推送模型优化方法和装置 |
PCT/CN2020/102340 WO2021077814A1 (zh) | 2019-10-23 | 2020-07-16 | 一种由用户终端执行的推送模型优化方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911014064.6A CN110766166B (zh) | 2019-10-23 | 2019-10-23 | 一种由用户终端执行的推送模型优化方法和装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110460791.6A Division CN113077058B (zh) | 2019-10-23 | 2019-10-23 | 一种由用户终端执行的推送模型优化方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110766166A CN110766166A (zh) | 2020-02-07 |
CN110766166B true CN110766166B (zh) | 2021-03-23 |
Family
ID=69333338
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110460791.6A Active CN113077058B (zh) | 2019-10-23 | 2019-10-23 | 一种由用户终端执行的推送模型优化方法和装置 |
CN201911014064.6A Active CN110766166B (zh) | 2019-10-23 | 2019-10-23 | 一种由用户终端执行的推送模型优化方法和装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110460791.6A Active CN113077058B (zh) | 2019-10-23 | 2019-10-23 | 一种由用户终端执行的推送模型优化方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN113077058B (zh) |
WO (1) | WO2021077814A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113077058B (zh) * | 2019-10-23 | 2022-07-15 | 支付宝(杭州)信息技术有限公司 | 一种由用户终端执行的推送模型优化方法和装置 |
CN114168446B (zh) * | 2022-02-10 | 2022-07-22 | 浙江大学 | 一种面向移动端运行算法模型的模拟评测方法及设备 |
CN115081024B (zh) * | 2022-08-16 | 2023-01-24 | 杭州金智塔科技有限公司 | 基于隐私保护的去中心化业务模型训练方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108596774A (zh) * | 2018-04-24 | 2018-09-28 | 山东师范大学 | 基于深层次网络嵌入特征的社会化信息推荐算法及系统 |
CN109740655A (zh) * | 2018-12-26 | 2019-05-10 | 西安电子科技大学 | 基于矩阵分解及神经协同过滤的物品评分预测方法 |
CN110275881A (zh) * | 2019-04-15 | 2019-09-24 | 阿里巴巴集团控股有限公司 | 基于哈希嵌入向量向用户推送对象的方法和装置 |
CN110321494A (zh) * | 2019-06-26 | 2019-10-11 | 北京交通大学 | 基于矩阵分解与网络嵌入联合模型的社会化推荐方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246672B (zh) * | 2012-02-09 | 2016-06-08 | 中国科学技术大学 | 对用户进行个性化推荐的方法和装置 |
CN104090932B (zh) * | 2014-06-24 | 2017-10-20 | 海信集团有限公司 | 一种内容推荐方法及装置 |
US10878029B2 (en) * | 2015-09-10 | 2020-12-29 | Adobe Inc. | Incorporating social-network connections information into estimated user-ratings of videos for video recommendations |
CN108520303A (zh) * | 2018-03-02 | 2018-09-11 | 阿里巴巴集团控股有限公司 | 一种推荐系统构建方法及装置 |
CN109376901B (zh) * | 2018-09-07 | 2021-09-03 | 苏州大学 | 一种基于去中心化矩阵分解的服务质量预测方法 |
CN113077058B (zh) * | 2019-10-23 | 2022-07-15 | 支付宝(杭州)信息技术有限公司 | 一种由用户终端执行的推送模型优化方法和装置 |
-
2019
- 2019-10-23 CN CN202110460791.6A patent/CN113077058B/zh active Active
- 2019-10-23 CN CN201911014064.6A patent/CN110766166B/zh active Active
-
2020
- 2020-07-16 WO PCT/CN2020/102340 patent/WO2021077814A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108596774A (zh) * | 2018-04-24 | 2018-09-28 | 山东师范大学 | 基于深层次网络嵌入特征的社会化信息推荐算法及系统 |
CN109740655A (zh) * | 2018-12-26 | 2019-05-10 | 西安电子科技大学 | 基于矩阵分解及神经协同过滤的物品评分预测方法 |
CN110275881A (zh) * | 2019-04-15 | 2019-09-24 | 阿里巴巴集团控股有限公司 | 基于哈希嵌入向量向用户推送对象的方法和装置 |
CN110321494A (zh) * | 2019-06-26 | 2019-10-11 | 北京交通大学 | 基于矩阵分解与网络嵌入联合模型的社会化推荐方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113077058A (zh) | 2021-07-06 |
WO2021077814A1 (zh) | 2021-04-29 |
CN110766166A (zh) | 2020-02-07 |
CN113077058B (zh) | 2022-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110766166B (zh) | 一种由用户终端执行的推送模型优化方法和装置 | |
CN109754105B (zh) | 一种预测方法及终端、服务器 | |
CN109446171B (zh) | 一种数据处理方法和装置 | |
CN110162692B (zh) | 用户标签确定方法、装置、计算机设备和存储介质 | |
CN107818514B (zh) | 一种控制在线社交网络信息传播的方法、装置及终端 | |
CN111241850B (zh) | 提供业务模型的方法及装置 | |
CN112214677B (zh) | 一种兴趣点推荐方法、装置、电子设备及存储介质 | |
CN104765793A (zh) | 一种软件推荐方法及服务器 | |
CN112819073B (zh) | 分类网络训练、图像分类方法、装置和电子设备 | |
CN113656699B (zh) | 用户特征向量确定方法、相关设备及介质 | |
CN110659394A (zh) | 基于双向邻近度的推荐方法 | |
CN111325340A (zh) | 信息网络关系预测方法及系统 | |
CN110795558B (zh) | 标签获取方法和装置、存储介质及电子装置 | |
CN110457387B (zh) | 一种应用于网络中用户标签确定的方法及相关装置 | |
CN115994226A (zh) | 基于联邦学习的聚类模型训练系统及方法 | |
CN110704754A (zh) | 一种由用户终端执行的推送模型优化方法和装置 | |
CN113850669A (zh) | 用户分群方法、装置、计算机设备及计算机可读存储介质 | |
CN112417874A (zh) | 命名实体的识别方法和装置、存储介质、电子装置 | |
CN114443824B (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
JP7024687B2 (ja) | データ分析システム、学習装置、方法、及びプログラム | |
CN110795631B (zh) | 一种基于因子分解机的推送模型优化、预测方法和装置 | |
CN110019715B (zh) | 应答确定方法、装置、设备、介质和系统 | |
CN113409096B (zh) | 目标对象识别方法、装置、计算机设备及存储介质 | |
CN111459990B (zh) | 对象处理方法、系统及计算机可读存储介质和计算机设备 | |
CN112434527B (zh) | 一种关键词的确定方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |