[发明专利]基于同态加密的矩阵分解推荐方法有效
申请号: | 201910339962.2 | 申请日: | 2019-04-25 |
公开(公告)号: | CN110209994B | 公开(公告)日: | 2022-12-23 |
发明(设计)人: | 李先贤;李东城;王利娥;刘鹏;李春培 | 申请(专利权)人: | 广西师范大学 |
主分类号: | G06F17/16 | 分类号: | G06F17/16;H04L9/00;G06F16/953;G06Q30/02;G06Q30/06 |
代理公司: | 桂林市持衡专利商标事务所有限公司 45107 | 代理人: | 陈跃琳 |
地址: | 541004 广西壮*** | 国省代码: | 广西;45 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 同态 加密 矩阵 分解 推荐 方法 | ||
1.基于同态加密的矩阵分解推荐方法,其特征是,包括步骤如下:
步骤1、服务器使用符合正态分布的随机变量生成项目特征矩阵,并将该项目特征矩阵发送给每个用户,作为初始的项目特征矩阵V0;同时,每个用户使用符合正态分布的随机变量生成每个用户的特征,作为初始的用户特征ui0;
步骤2、令迭代次数t=1;
步骤3、每个用户基于上一迭代的项目特征矩阵Vt-1和上一迭代的用户特征uit-1,计算该用户的用户特征梯度和该用户关于各个项目的项目特征梯度;
步骤4、每个用户生成一个随机明文,并使用统一的加密函数对该随机明文加密后形成随机密文,发送到服务器;
步骤5、服务器随机选取2个用户所发送来的随机密文进行相加后,形成噪声密文,并将该噪声密文的正值发送给这2个用户 中 的其中一个用户,而将该噪声密文的负值发送给这2个用户中 的另一个用户;
步骤6、用户收到服务器发送回来的噪声密文的正值或负值,并对其进行解密后形成噪声,并利用该噪声对该用户关于敏感项目的项目特征梯度进行加噪;
步骤7、服务器使用符合高斯分布的随机变量生成随机矩阵,并将发送给每个用户;
步骤8、每个用户利用服务器发来的随机矩阵对所有项目特征梯度进行降维后,发送到服务器进行聚合,求得所有降维后的项目特征梯度的项目梯度均值;
步骤9、服务器将项目梯度均值发送给每个用户,每个用户利用随机矩阵的逆矩阵将项目梯度均值恢复到原始的维度后,并据此得到当前迭代的项目特征矩阵Vt和当前迭代的用户特征uit;
步骤10、每个用户计算当前迭代的项目特征矩阵Vt和当前迭代的用户特征uit的内积所对应的损失函数,并发送给服务器;
步骤11、服务器判断所有用户损失函数之和是否小于预设损失值或迭代次数是否达到预设迭代次数;
如果满足,则迭代终止,此时每个用户计算该用户的预测评分矩阵Mi,并将评分矩阵Mi中选出k个最高的预测评分所对应的项目推荐给该用户;其中k为设定值;
否则,迭代次数t+1,并返回步骤3,继续迭代。
2.根据权利要求1所述的基于同态加密的矩阵分解推荐方法,其特征是,步骤3中,第i个用户的用户特征梯度为:
式中,rij表示第i个用户对第j个项目的评分,vjt-1表示上一次迭代的项目特征矩阵Vt-1的第j列,uit-1表示第i个用户上一次迭代的用户特征,j=1,2,…,m,m为项目个数;i=1,2,…,n,n为用户个数,t表示迭代次数。
3.根据权利要求1所述的基于同态加密的矩阵分解推荐方法,其特征是,步骤3中,第i个用户对第j个项目的项目特征梯度为:
式中,rij表示第i个用户对第j个项目的评分,vjt-1表示上一次迭代的项目特征矩阵Vt-1的第j列,uit-1表示第i个用户上一次迭代的用户特征,j=1,2,…,m,m为项目个数;i=1,2,…,n,n为用户个数,t表示迭代次数。
4.根据权利要求1所述的基于同态加密的矩阵分解推荐方法,其特征是,步骤4中,随机明文的取值范围为[-1,1]。
5.根据权利要求1所述的基于同态加密的矩阵分解推荐方法,其特征是,步骤4中,所有用户所采用的加密函数相同。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广西师范大学,未经广西师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910339962.2/1.html,转载请声明来源钻瓜专利网。