CN110209994B - 基于同态加密的矩阵分解推荐方法 - Google Patents

基于同态加密的矩阵分解推荐方法 Download PDF

Info

Publication number
CN110209994B
CN110209994B CN201910339962.2A CN201910339962A CN110209994B CN 110209994 B CN110209994 B CN 110209994B CN 201910339962 A CN201910339962 A CN 201910339962A CN 110209994 B CN110209994 B CN 110209994B
Authority
CN
China
Prior art keywords
user
matrix
gradient
iteration
item
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
Application number
CN201910339962.2A
Other languages
English (en)
Other versions
CN110209994A (zh
Inventor
李先贤
李东城
王利娥
刘鹏
李春培
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangxi Normal University
Original Assignee
Guangxi Normal University
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 Guangxi Normal University filed Critical Guangxi Normal University
Priority to CN201910339962.2A priority Critical patent/CN110209994B/zh
Publication of CN110209994A publication Critical patent/CN110209994A/zh
Application granted granted Critical
Publication of CN110209994B publication Critical patent/CN110209994B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0255Targeted advertisements based on user history
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption

Abstract

本发明公开一种基于同态加密的矩阵分解推荐方法,采用同态加密算法,在用户计算梯度传输到服务器进行数据聚合之前,进行加密传输,在数据发送到服务器上后,由于每个用户的梯度是经过加密的,服务器无法根据梯度推断用户信息;针对在梯度下降矩阵分解的计算时需要进行多次迭代,用户端计算压力大且传输数据通信量大的问题,本发明采用小批量梯度方法与随机投影降维相结合的方法,在降低计算量和数据通信量的同时,保证了数据效用性。

Description

基于同态加密的矩阵分解推荐方法
技术领域
本发明涉及推荐系统技术领域,具体涉及一种基于同态加密的矩阵分解推荐方法。
背景技术
互联网的出现和普及给用户带来便利的同时存储了大量的信息,在一个信息过载,用户需求的多样性也在不断提升的时代,如何能在海量数据中,根据用户的偏向性,提取出与用户兴趣一致的信息,以满足用户个性化需求的信息,已成为一大难题,而推荐系统正是解决该问题的一个有力工具,受到了学术界与工业界众多的关注和研究。推荐系统应用于不同的领域,它推荐的对象也各不相同,面对信息的多元化、多样化,通常推荐系统需要收集与挖掘用户的历史行为数据,对用户历史行为数据进行建模分析,并以此为基础预测用户未来的行为,例如Google利用搜索历史数据提供个性化广告服务,Amazon利用购买历史提供购买推荐,Netflix根据历史观影提供视频推荐等等。
传统的推荐算法有:基于内容推荐、协同过滤推荐和混合推荐算法等。相比传统的推荐算法,基于矩阵分解的推荐算法有更低的均方根误差(RMES),更高的推荐精确度,因此受到了越来越多的关注。然而,无论是基于何种推荐算法,都必须依赖于用户的个人信息,用户需要把各自的历史数据提供给服务器,如此一来,这就存在隐私泄露的风险,随着人们对隐私保护问题的重视,更多的数据拥有者不愿意提供自身的数据。
为解决以上问题,基于同态加密的矩阵分解算法被提了出来,其主要思想是用户历史数据保存在本地,然后利用梯度下降的方法在用户端与服务器(推荐系统)之间,根据原始评分矩阵,迭代计算分解的用户特征矩阵与项目特征矩阵,填补空缺评分,最后在用户端本地进行推荐。相当于每个用户根据自己的历史数据记录对空缺项目做评分预测,然后在本地做推荐,以保证数据的安全性。不过在这样的分布式场景下做矩阵分解,在数据交互的过程中,服务器还是能够根据用户交互的梯度去推断用户的历史数据,为了防止隐私泄露,最自然的想法就是在每个用户传输梯度数据之前进行扰乱,再发送到服务器上,以保证用户隐私。相比已有的矩阵分解推荐算法,基于同态加密的矩阵分解算法存在以下优势和挑战:
在分布式场景下,用户无需将自身的数据发送给服务器,即使是做推荐时,也是在各个用户本地进行推荐,服务器既无法获取用户历史数据,也无法预测用户行为。因此在分布式应用场景下,一定程度上可以防止服务器恶意收集或推测用户数据。
但是分布式的场景下的矩阵分解推荐方法,依然存在隐私安全问题。比如常见的电影推荐,推荐系统通常要获取用户对某个电影的评分数据,以此来做分析推荐。通常在进行梯度下降矩阵分解时,每次迭代中用户与服务器都会进行交互,用户在本地计算后发送梯度给服务器时,如果直接发送原始梯度数据,服务器就有可能推断出用户对哪个电影是有评分的。有相关工作提出采用差分隐私保护模型,来保护数据安全,但与此同时也牺牲了部分的数据效用性,因为在经过每一轮的迭代梯度下降计算时,每个用户需计算各自的梯度后进行加噪再发送到服务器,所以当迭代计算完成时,矩阵分解得出的特征矩阵会存在很大的误差,也直接导致推荐效果的下降。因此在做推荐时,如何保护用户的梯度数据不能被恶意服务器推断出隐私信息同时能够保证更好的推荐效果也成为一大挑战。
此外,我们注意到,采用矩阵分解梯度下降算法进行推荐时,需要在用户端与服务器之间不断地进行迭代的计算时,也就是用户与服务器之间的交互频繁,而且采用传统的梯度下降方式会导致收敛速度过慢,传输数据量大,用户端需要频繁计算,无疑会增加用户端的计算压力,因此,如何提升减少计算量和通讯开销也成为一个亟待解决的问题。
发明内容
本发明针对分布式的应用场景下,矩阵分解算法需要用户端与服务器端频繁的数据交互,导致可能存在数据被推断的隐私安全问题,提供一种基于同态加密的矩阵分解推荐方法。
为解决上述问题,本发明是通过以下技术方案实现的:
基于同态加密的矩阵分解推荐方法,其具体包括步骤如下:
步骤1、服务器使用符合正态分布的随机变量生成项目特征矩阵,并将该项目特征矩阵发送给每个用户,作为初始的项目特征矩阵V0;同时,每个用户使用符合正态分布的随机变量生成每个用户的特征,作为初始的用户特征ui 0
步骤2、令迭代次数t=1;
步骤3、每个用户基于上一迭代的项目特征矩阵Vt-1和上一迭代的用户特征ui t-1,计算该用户的用户特征梯度和该用户关于各个项目的项目特征梯度;
步骤4、每个用户生成一个随机明文,并使用统一的加密函数对该随机明文加密后形成随机密文,发送到服务器;
步骤5、服务器随机选取2个用户所发送来的随机密文进行相加后,形成噪声密文,并将该噪声密文的正值发送给这2个用中的其中一个用户,而将该噪声密文的负值发送给这2个用中的另一个用户;
步骤6、用户收到服务器发送回来的噪声密文的正值或负值,并对其进行解密后形成噪声,并利用该噪声对该用户关于敏感项目的项目特征梯度进行加噪;
步骤7、服务器使用符合高斯分布的随机变量生成随机矩阵,并将发送给每个用户;
步骤8、每个用户利用服务器发来的随机矩阵对所有项目特征梯度进行降维后,发送到服务器进行聚合,求得所有降维后的项目特征梯度的项目梯度均值;
步骤9、服务器将项目梯度均值发送给每个用户,每个用户利用随机矩阵的逆矩阵将项目梯度均值恢复到原始的维度后,并据此得到当前迭代的项目特征矩阵Vt和当前迭代的用户特征ui t
步骤10、每个用户计算当前迭代的项目特征矩阵Vt和当前迭代的用户特征ui t的内积所对应的损失函数,并发送给服务器;
步骤11、服务器判断所有用户损失函数之和是否小于预设损失值或迭代次数是否达到预设迭代次数;
如果满足,则迭代终止,此时每个用户计算该用户的预测评分矩阵Mi,并将评分矩阵Mi中选出k个最高的预测评分所对应的项目推荐给该用户;其中k为设定值;
否则,迭代次数t+1,并返回步骤3,继续迭代。
上述步骤3中,第i个用户的用户特征梯度
Figure BDA0002040399460000031
为:
Figure BDA0002040399460000032
式中,rij表示第i个用户对第j个项目的评分,vj t-1表示上一次迭代的项目特征矩阵Vt-1的第j列,ui t-1表示第i个用户上一次迭代的用户特征,j=1,2,…,m,m为项目个数;=1,2,…,n,n为用户个数,t表示迭代次数。
上述步骤3中,第i个用户对第j个项目的项目特征梯度
Figure BDA0002040399460000033
为:
Figure BDA0002040399460000034
式中,rij表示第i个用户对第j个项目的评分,vj t-1表示上一次迭代的项目特征矩阵Vt-1的第j列,ui t-1表示第i个用户上一次迭代的用户特征,j=1,2,…,m,m为项目个数;I=1,2,…,n,n为用户个数,t表示迭代次数。
上述步骤4中,随机明文的取值范围为[-1,1]。
上述步骤4中,所有用户所采用的加密函数相同。
上述步骤5和6中,当用户数量为奇数时,最后一个用户的随机密文需要与之前已被选择过的用户的随机密文进行相加后,形成噪声密文,并分别将噪声密文的正值和负值分别发给最后一个用户和之前已被选择过的用户;
此时,最后一个用户利用解密所得到的噪声对该用户关于敏感项目的当前项目特征梯度进行加噪,而之前已被选择过的用户需要利用解密所得到的噪声对该用户关于敏感项目的当前项目特征梯度进行再次加噪。
上述步骤9中,
当前迭代的项目特征矩阵Vt为:
Figure BDA0002040399460000041
当前迭代的用户特征ui t为:
Figure BDA0002040399460000042
式中,
Figure BDA0002040399460000043
表示第i个用户对第j个项目的项目特征梯度,
Figure BDA0002040399460000044
表示第i个用户的用户特征梯度,Vt-1表示上一次迭代的项目特征矩阵,ui t-1表示第i个用户上一次迭代的用户特征,t表示迭代次数。
上述步骤11中,用户i的预测评分矩阵Mi为:
Mi=ui t×Vt
式中,Vt表示当前迭代的项目特征矩阵,ui t表示第i个用户当前迭代的用户特征,t表示迭代次数。
本发明采用同态加密算法,在用户计算梯度传输到服务器进行数据聚合之前,进行加密传输,在数据发送到服务器上后,由于每个用户的梯度是经过加密的,服务器无法根据梯度推断用户信息;针对在梯度下降矩阵分解的计算时需要进行多次迭代,用户端计算压力大且传输数据通信量大的问题,本发明采用小批量梯度方法(mini-batch)与随机投影降维相结合的方法,在降低计算量和数据通信量的同时,保证了数据效用性。
与现有技术相比,本发明具有如下特点:
1、由于在矩阵分解的迭代计算中,用户需要发送所计算的梯度到服务器聚合,已有研究采用的方法是基于差分隐私模型把加噪的数据聚合做均值估计,经过多轮迭代后,均值误差会随之增大,为降低误差的同时保证数据的隐私安全,本发明提出一种同态加密技术,生成正负噪音对,在每个传输的梯度上进行加密,使得数据聚合后完全抵消噪音,保证了聚合的数据是无误差的,因此提高推荐准确度。
2、采用小批量梯度下降与矩阵降维思想:随着用户数据的不断更新与增加,客户端计算压力与数据通信量都会随之增大,采用原始的梯度下降方法虽然能计算达到更好的效果,但计算效率缓慢,采用小批量梯度下降方法,不用选取所有样本数据做迭代计算,可提高计算速度;通过随机投影降维的思想,在用户传输的梯度之前先变换到低维矩阵,然后再进行传输,大大降低数据通信量。
3、本发明是基于半可信的服务器场景,用户数据划分为敏感与非敏感数据,根据电影评分的例子,用户根据各自的评分计算梯度,假设某个用户对某个电影的评分记录是非敏感的,在传输的梯度上就可以不用加噪直接发送到服务器,使得用户的梯度数据在使用同态加密技术处理的阶段,减少与服务器的交互,也可进一步减小用户端的计算量。
附图说明
图1为基于同态加密的矩阵分解推荐方法的原理图。
图2为加密生成噪音对的原理图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实例,并参照附图,对本发明进一步详细说明。
参见图1,一种基于同态加密的矩阵分解推荐方法,其具体实现过程如下:
步骤一:迭代开始前,初始化用户特征矩阵U与项目特征矩阵V。
服务器使用符合正态分布的随机变量生成项目特征矩阵V,并将该项目特征矩阵V发送给每个用户。同时,每个用户使用符合正态分布的随机变量生成每个用户的特征ui
项目特征矩阵V=[vj],vj表示项目特征,j=1,2,…,m,m为项目个数。用户特征矩阵U=[ui],ui表示用户特征,i=1,2,…,n,n为用户个数。
步骤二:初始化U,V矩阵后,通过小批量梯度下降算法(mini-batch)优化损失函数,使得U,V内积拟合原始评分矩阵。
损失函数定义为:
Figure BDA0002040399460000051
其中,rij表示用户i对j的评分,为防止过拟合引入正则项:
Figure BDA0002040399460000052
根据梯度下降方法为求得最小损失函数,先分别对ui,vj求偏导:
Figure BDA0002040399460000053
Figure BDA0002040399460000054
其中,
Figure BDA0002040399460000055
表示用户i的用户特征梯度,
Figure BDA0002040399460000056
表示用户i关于项目j的项目特征梯度。
由于用户特征矩阵U是由所有用户ui组成的,所以每个用户根据公式(3)只需要在本地进行用户特征梯度
Figure BDA0002040399460000057
的计算与更新,不需要发送到服务器上。而由于项目特征矩阵V是由服务器统一产生的,所以每个用户需要利用服务器发来的初始化的项目特征矩阵V,并根据公式(4)在本地进行项目特征梯度
Figure BDA0002040399460000058
的计算与更新。
步骤三:使用Paillier加密算法添加噪音对。
每个用户随机从[-1,1]的范围内选出一个数值形成随机明文,使用统一的加密函数对该随机明文加密后形成随机密文,发送到服务器。如用户ua的随机明文为A,其采用统一加密函数f加密后的随机密文为f(A);如用户ub的随机明文为B,其采用统一加密函数f加密后的随机密文为f(B)。
服务器随机选取2个用户所发送来的随机密文进行相加后,形成噪声密文,并将该噪声密文的正值发送给这2个用中的其中一个用户,而将该噪声密文的负值发送给这2个用中的另一个用户。如服务器选择将用户ua的随机密文f(A)与用户ub的随机密文f(B)配对,则所形成的噪声密文为f(A)+f(B)。此时,将噪声密文正值即f(A)+f(B)发送给其中一个用户如ua,而将噪声密文负值即-[f(A)+f(B)]发送给另一个用户如ub。其中f(A)+f(B)与-[f(A)+f(B)]称为噪声对。参见图2。
由于项目分为敏感项目和非敏感项目,本发明仅对敏感项目进行加噪。用户收到服务器发送回来的噪声密文的正值或负值,并对其进行解密后形成噪声,并利用该噪声对其中属于敏感项目的项目特征梯度
Figure BDA0002040399460000063
进行加噪,扰乱梯度数据。如用户ua属于敏感项目的项目特征梯度
Figure BDA0002040399460000064
更新为
Figure BDA0002040399460000065
Figure BDA0002040399460000066
用户ub属于敏感项目的项目特征梯度
Figure BDA0002040399460000067
更新为
Figure BDA0002040399460000068
对于奇数个用户参与的情况,在最后随机配对剩下的最后一个用户,服务器再从已配对的用户中随机选择一个之前已被选择的用户,用这2个用户的随机密文来形成噪音对,并分别发送给这2个用户。此时,再次被选择的用户会进行二次加噪。如用户uz与用户ua配对,其所形成的噪声对为f(A)+f(Z)与-[f(A)+f(Z)]。此时,将噪声密文正值即f(A)+f(Z)发送给其中一个用户如uz,而将噪声密文负值即-[f(A)+f(Z)]发送给另一个用户如ua。用户uz属于敏感项目的项目特征梯度
Figure BDA0002040399460000069
更新为
Figure BDA00020403994600000610
用户ua需要二次加噪,其属于敏感项目的项目特征梯度
Figure BDA00020403994600000611
更新为
Figure BDA00020403994600000612
Figure BDA00020403994600000613
步骤四:梯度矩阵降维。
计算完扰乱的梯度数据后,服务器使用符合高斯分布的随机变量生成随机矩阵φ。
所有用户利用该随机矩阵φ对当前项目特征梯度
Figure BDA00020403994600000614
进行降维后
Figure BDA00020403994600000615
发送到服务器进行聚合求梯度均值
Figure BDA00020403994600000616
服务器将聚合后的梯度数据
Figure BDA00020403994600000617
发送到各个用户。
每个用户通过随机矩阵φ的逆矩阵φ-1把聚合的
Figure BDA00020403994600000618
恢复到原始的维度
Figure BDA00020403994600000619
用于更新项目特征矩阵V:
Figure BDA0002040399460000061
更新完V后,利用V去更新ui
Figure BDA0002040399460000062
并得到更新后的用户特征矩阵U。
其中,γ为梯度下降学习步长,t表示迭代次数。
步骤五:判断迭代是否终止,即:
条件1:根据公式(1)计算当前项目特征矩阵和当前用户特征的内积所对应的损失函数,并判断损失函数是否小于预设损失值。
条件2:迭代次数是否达到预设迭代次数。
如果满足其中之一,则每个用户即可利用当前用户特征在本地进行推荐;否则,返回步骤二进行进行下一次迭代。
至此,整个推荐过程就完成了。
该推荐方法应用在分布式的场景,假设服务器是半可信的,采用矩阵分解的推荐算法。对于传统的集中式的矩阵分解推荐算法,用户需要把原始的历史数据发送到服务器进行计算,不能保证用户的数据安全。本方法通过对算法的改进,在矩阵分解计算的过程中,利用加密技术处理用户数据,再发送到服务器做计算,进一步保护了用户的数据隐私,防止服务器进行恶意推断。此外,由于整个系统中涉及到用户与服务器的数据交互,本方法通过矩阵降维的方式,对传输的数据进行压缩,降低了传输通信量。
实现上述方法的基于同态加密的矩阵分解推荐系统,其主要包括3个模块:
小批量梯度下降矩阵分解模块。假设原始用户的评分矩阵为M,M是稀疏的,矩阵分解(M=U*V)的目的,是要将缺省的评分进行填补,用于最后的推荐。初始化用户特征矩阵U与项目特征矩阵V,采用小批量梯度下降法优化损失函数,计算U,V拟合原始评分矩阵M。每次迭代过程中选取部分样本数据(batch_size),用户在客户端本地根据服务器发送过来的更新后的V矩阵更新矩阵U,在计算项目特征矩阵V时,只需部分用户计算项目j的梯度,之后加密后发送到服务器聚合更新项目特征矩阵V。
Paillier同态加密模块。对于敏感数据,用户计算出的梯度需要进行加密传输,通过同态加密的思想,目的要生成正负噪音对。用户通过加密函数F分别对各自的噪音进行加密F(a),F(b)发送到服务器,服务器计算F(a)+F(b)=F(a+b)后,返回[-F(a+b),F(a+b)]噪音对给两个用户,两个用户解密后,把(a+b),-(a+b)作为噪音,分别进行加噪扰乱梯度数据,保证梯度在发送给服务器时,服务器无法进行用户评分信息的推断,同时在服务器收集完用户的梯度聚合时,可以完全抵消掉噪音。
矩阵降维计算模块。由于项目特征矩阵V是高维的,整个推荐计算过程中,需要进行多次迭代,客户端与服务器每次迭代都会进行数据交互,导致通信量的增加。通过采用随机投影降维的思想,用户在传输所有项目梯度
Figure BDA0002040399460000071
之前左乘一个随机矩阵来降低维度,将
Figure BDA0002040399460000072
降低到一个较低的维度后再传输到服务器进行数据聚合,服务器将聚合后的梯度数据广播给所有用户,用户利用随机矩阵的逆矩阵进行原始维度的数据还原,更新参数,并在本地完成推荐计算。
需要说明的是,尽管以上本发明所述的实施例是说明性的,但这并非是对本发明的限制,因此本发明并不局限于上述具体实施方式中。在不脱离本发明原理的情况下,凡是本领域技术人员在本发明的启示下获得的其它实施方式,均视为在本发明的保护之内。

Claims (8)

1.基于同态加密的矩阵分解推荐方法,其特征是,包括步骤如下:
步骤1、服务器使用符合正态分布的随机变量生成项目特征矩阵,并将该项目特征矩阵发送给每个用户,作为初始的项目特征矩阵V0;同时,每个用户使用符合正态分布的随机变量生成每个用户的特征,作为初始的用户特征ui 0
步骤2、令迭代次数t=1;
步骤3、每个用户基于上一迭代的项目特征矩阵Vt-1和上一迭代的用户特征ui t-1,计算该用户的用户特征梯度和该用户关于各个项目的项目特征梯度;
步骤4、每个用户生成一个随机明文,并使用统一的加密函数对该随机明文加密后形成随机密文,发送到服务器;
步骤5、服务器随机选取2个用户所发送来的随机密文进行相加后,形成噪声密文,并将该噪声密文的正值发送给这2个用户 中 的其中一个用户,而将该噪声密文的负值发送给这2个用户中 的另一个用户;
步骤6、用户收到服务器发送回来的噪声密文的正值或负值,并对其进行解密后形成噪声,并利用该噪声对该用户关于敏感项目的项目特征梯度进行加噪;
步骤7、服务器使用符合高斯分布的随机变量生成随机矩阵,并将发送给每个用户;
步骤8、每个用户利用服务器发来的随机矩阵对所有项目特征梯度进行降维后,发送到服务器进行聚合,求得所有降维后的项目特征梯度的项目梯度均值;
步骤9、服务器将项目梯度均值发送给每个用户,每个用户利用随机矩阵的逆矩阵将项目梯度均值恢复到原始的维度后,并据此得到当前迭代的项目特征矩阵Vt和当前迭代的用户特征ui t
步骤10、每个用户计算当前迭代的项目特征矩阵Vt和当前迭代的用户特征ui t的内积所对应的损失函数,并发送给服务器;
步骤11、服务器判断所有用户损失函数之和是否小于预设损失值或迭代次数是否达到预设迭代次数;
如果满足,则迭代终止,此时每个用户计算该用户的预测评分矩阵Mi,并将评分矩阵Mi中选出k个最高的预测评分所对应的项目推荐给该用户;其中k为设定值;
否则,迭代次数t+1,并返回步骤3,继续迭代。
2.根据权利要求1所述的基于同态加密的矩阵分解推荐方法,其特征是,步骤3中,第i个用户的用户特征梯度
Figure FDA0002040399450000011
为:
Figure FDA0002040399450000021
式中,rij表示第i个用户对第j个项目的评分,vj t-1表示上一次迭代的项目特征矩阵Vt-1的第j列,ui t-1表示第i个用户上一次迭代的用户特征,j=1,2,…,m,m为项目个数;i=1,2,…,n,n为用户个数,t表示迭代次数。
3.根据权利要求1所述的基于同态加密的矩阵分解推荐方法,其特征是,步骤3中,第i个用户对第j个项目的项目特征梯度
Figure FDA0002040399450000022
为:
Figure FDA0002040399450000023
式中,rij表示第i个用户对第j个项目的评分,vj t-1表示上一次迭代的项目特征矩阵Vt-1的第j列,ui t-1表示第i个用户上一次迭代的用户特征,j=1,2,…,m,m为项目个数;i=1,2,…,n,n为用户个数,t表示迭代次数。
4.根据权利要求1所述的基于同态加密的矩阵分解推荐方法,其特征是,步骤4中,随机明文的取值范围为[-1,1]。
5.根据权利要求1所述的基于同态加密的矩阵分解推荐方法,其特征是,步骤4中,所有用户所采用的加密函数相同。
6.根据权利要求1所述的基于同态加密的矩阵分解推荐方法,其特征是,步骤5和6中,当用户数量为奇数时,最后一个用户的随机密文需要与之前已被选择过的用户的随机密文进行相加后,形成噪声密文,并分别将噪声密文的正值和负值分别发给最后一个用户和之前已被选择过的用户;
此时,最后一个用户利用解密所得到的噪声对该用户关于敏感项目的当前项目特征梯度进行加噪,而之前已被选择过的用户需要利用解密所得到的噪声对该用户关于敏感项目的当前项目特征梯度进行再次加噪。
7.根据权利要求1所述的基于同态加密的矩阵分解推荐方法,其特征是,步骤9中,
当前迭代的项目特征矩阵Vt为:
Figure FDA0002040399450000024
当前迭代的用户特征ui t为:
Figure FDA0002040399450000025
式中,
Figure FDA0002040399450000026
表示第i个用户对第j个项目的项目特征梯度,
Figure FDA0002040399450000027
表示第i个用户的用户特征梯度,Vt-1表示上一次迭代的项目特征矩阵,ui t-1表示第i个用户上一次迭代的用户特征,t表示迭代次数。
8.根据权利要求1所述的基于同态加密的矩阵分解推荐方法,其特征是,步骤11中,用户i的预测评分矩阵Mi为:
Mi=ui t×Vt
式中,Vt表示当前迭代的项目特征矩阵,ui t表示第i个用户当前迭代的用户特征,t表示迭代次数。
CN201910339962.2A 2019-04-25 2019-04-25 基于同态加密的矩阵分解推荐方法 Active CN110209994B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910339962.2A CN110209994B (zh) 2019-04-25 2019-04-25 基于同态加密的矩阵分解推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910339962.2A CN110209994B (zh) 2019-04-25 2019-04-25 基于同态加密的矩阵分解推荐方法

Publications (2)

Publication Number Publication Date
CN110209994A CN110209994A (zh) 2019-09-06
CN110209994B true CN110209994B (zh) 2022-12-23

Family

ID=67786481

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910339962.2A Active CN110209994B (zh) 2019-04-25 2019-04-25 基于同态加密的矩阵分解推荐方法

Country Status (1)

Country Link
CN (1) CN110209994B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112084520B (zh) * 2020-09-18 2021-03-23 支付宝(杭州)信息技术有限公司 保护数据隐私的双方联合训练业务预测模型的方法及装置
CN112528303B (zh) * 2020-12-11 2024-01-26 重庆交通大学 一种基于ntru加密算法的多用户隐私推荐方法
CN113407963A (zh) * 2021-06-17 2021-09-17 北京工业大学 基于signsgd的联邦学习梯度安全聚合方法
CN113836584B (zh) * 2021-11-24 2022-04-15 阿里巴巴达摩院(杭州)科技有限公司 分布式隐私保护学习的推荐方法、设备和学习系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104796475A (zh) * 2015-04-24 2015-07-22 苏州大学 一种基于同态加密的社会化推荐方法
CN105009505A (zh) * 2013-08-09 2015-10-28 汤姆逊许可公司 基于矩阵因子分解和岭回归的隐私保护推荐的方法和系统
WO2018174873A1 (en) * 2017-03-22 2018-09-27 Visa International Service Association Privacy-preserving machine learning

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105009505A (zh) * 2013-08-09 2015-10-28 汤姆逊许可公司 基于矩阵因子分解和岭回归的隐私保护推荐的方法和系统
CN105103487A (zh) * 2013-08-09 2015-11-25 汤姆逊许可公司 用于基于矩阵分解的到评级贡献用户的隐私保护推荐的方法和系统
CN104796475A (zh) * 2015-04-24 2015-07-22 苏州大学 一种基于同态加密的社会化推荐方法
WO2018174873A1 (en) * 2017-03-22 2018-09-27 Visa International Service Association Privacy-preserving machine learning

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A Privacy-Preserving Framework for Trust-Oriented Point-of-Interest Recommendation;An Liu etc;《IEEE Access ( Volume: 6)》;20171123;全文 *
Efficient Privacy-Preserving Matrix Factorization for Recommendation via Fully Homomorphic Encryption;Jinsu Kim;《ACM Transactions on Privacy and Security》;20180627;全文 *
移动商务推荐系统中的一种基于P2P的隐私保护策略;王利娥,李先贤,刘鹏;《计算机科学》;20170915;全文 *
高效可验证的隐私保护推荐系统;宋春芝 等;《华东师范大学学报(自然科学版)》;20180325;全文 *

Also Published As

Publication number Publication date
CN110209994A (zh) 2019-09-06

Similar Documents

Publication Publication Date Title
CN110209994B (zh) 基于同态加密的矩阵分解推荐方法
Mishra et al. Delphi: A cryptographic inference system for neural networks
CN110719158B (zh) 基于联合学习的边缘计算隐私保护系统及保护方法
Xu et al. Privacy-preserving federated deep learning with irregular users
CN109768987A (zh) 一种基于区块链的数据文件安全隐私存储和分享方法
US20160020904A1 (en) Method and system for privacy-preserving recommendation based on matrix factorization and ridge regression
CN114696990B (zh) 基于全同态加密的多方计算方法、系统及相关设备
CN113221105B (zh) 一种基于部分参数聚合的鲁棒性联邦学习算法
CN104967693B (zh) 面向云存储的基于全同态密码技术的文档相似度计算方法
CN110730064B (zh) 一种群智感知网络中基于隐私保护的数据融合方法
EP4052160B1 (en) Privacy preserving centroid models using secure multi-party computation
CN111581648B (zh) 在不规则用户中保留隐私的联邦学习的方法
CN116523074A (zh) 动态化公平性的隐私保护联邦深度学习方法
Erkin et al. Privacy-preserving user clustering in a social network
CN114697042A (zh) 一种基于区块链的物联网安全数据共享代理重加密方法
Xiong et al. Optimizing rewards allocation for privacy-preserving spatial crowdsourcing
CN111200604A (zh) 一种基于数据聚合的隐私保护方法及系统
Ambika et al. An efficient SG-DACM framework for data integrity with user revocation in role based multiuser cloud environment
CN116170142B (zh) 分布式协同解密方法、设备和存储介质
CN113326947A (zh) 一种联合学习模型训练方法及系统
Zhou et al. Toward scalable and privacy-preserving deep neural network via algorithmic-cryptographic co-design
CN109981614A (zh) 基于用户群的数据加密方法、解密方法、查询方法及装置
CN110149199B (zh) 一种基于属性感知的隐私保护方法及系统
CN114900283A (zh) 基于多方安全计算的深度学习用户梯度聚合方法
Liu et al. Ppefl: An edge federated learning architecture with privacy-preserving mechanism

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