CN113240045B - 一种数据降维方法、装置及相关设备 - Google Patents
一种数据降维方法、装置及相关设备 Download PDFInfo
- Publication number
- CN113240045B CN113240045B CN202110611230.1A CN202110611230A CN113240045B CN 113240045 B CN113240045 B CN 113240045B CN 202110611230 A CN202110611230 A CN 202110611230A CN 113240045 B CN113240045 B CN 113240045B
- Authority
- CN
- China
- Prior art keywords
- matrix
- participant
- party
- dimension reduction
- ciphertext
- 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
- 230000009467 reduction Effects 0.000 title claims abstract description 105
- 238000000034 method Methods 0.000 title claims abstract description 53
- 239000011159 matrix material Substances 0.000 claims abstract description 278
- 238000004364 calculation method Methods 0.000 claims abstract description 53
- 238000012163 sequencing technique Methods 0.000 claims abstract description 11
- 238000004590 computer program Methods 0.000 claims description 18
- 238000003860 storage Methods 0.000 claims description 15
- 238000000605 extraction Methods 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000012935 Averaging Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 229940088597 hormone Drugs 0.000 description 1
- 239000005556 hormone Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及数据处理领域,公开了一种数据降维方法,该方法包括:通过第一参与方对第一参与方的用户数据进行同态加密,获得第一密文矩阵;将第一密文矩阵传输给第二参与方,其中,第二参与方与第一参与方具有共同用户;通过第二参与方,对第一密文矩阵和第二参与方的用户数据进行特征计算,获得特征矩阵,并将特征矩阵返回传输到第一参与方;通过第一参与方对特征矩阵进行同态解密并排序,获得明文矩阵,并从明文矩阵中选取从前往后选取预设维度值的行数,得到中间矩阵;基于中间矩阵,通过第一参与方、第二参与方进行降维计算,获得降维结果,本发明还涉及区块链技术,将得到的降维结果存储至区块链网络中,采用本发明有利于提升数据降维过程中的安全性和效率。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种数据降维方法、装置、计算机设备及存储介质。
背景技术
在传统的机器学习建模过程中,数据预处理有着至关重要的作用,能够了改善数据分析工作,减少时间,降低成本和提高质量。传统的数据预处理方法包括数据清洗,数据降维(如主成分分析,奇异值分解等),特征选择,特征提取等方法,其中,现有的数据降维方法是需要对全部的数据信息进行计算,通过特征选择或者特征变换操作将数据从原始的D维空间投影到新的K维空间,从而提高数据分析的精度。但随着数据隐私,用户隐私越来越受到重视,企业之间要合法合规的进行数据合作,要使得数据可用不可见,原始数据不出本地的合作,为此,数据分布在了不同的公司和区域,从而有效保护数据隐私,这导致了企业难以直接使用传统的数据降维方法,在保护数据隐私的前提下,实现数据降维。
发明内容
本发明实施例提供一种数据降维方法、装置、计算机设备及存储介质,在保护数据隐私的前提下,实现数据降维。
一种数据降维方法,包括:
通过第一参与方对所述第一参与方的用户数据进行同态加密,获得第一密文矩阵,其中,所述第一参与方的用户数据包含n个用户和m个特征,所述第一密文矩阵为n行m列的矩阵;
将所述第一密文矩阵传输给第二参与方,其中,所述第二参与方与第一参与方具有共同用户,且所述第二参与方的用户数据包含t个特征;
通过所述第二参与方,对所述第一密文矩阵和所述第二参与方的用户数据进行特征计算,获得n行m+t列的特征矩阵,并将所述特征矩阵返回传输到所述第一参与方;
通过所述第一参与方对所述特征矩阵进行同态解密并排序,获得明文矩阵,并从所述明文矩阵中选取从前往后选取k行,得到中间矩阵,其中,所述k为预设维度值,并且,k小于m和t中的任意一个;
基于所述中间矩阵,通过所述第一参与方、第二参与方进行降维计算,获得降维结果。
一种数据降维装置,包括:
第一密文矩阵获取模块,用于通过第一参与方对所述第一参与方的用户数据进行同态加密,获得第一密文矩阵,其中,所述第一参与方的用户数据包含n个用户和m个特征,所述第一密文矩阵为n行m列的矩阵;
传输模块,用于将所述第一密文矩阵传输给第二参与方,其中,所述第二参与方与第一参与方具有共同用户,且所述第二参与方的用户数据包含t个特征;
特征计算模块,用于通过所述第二参与方,对所述第一密文矩阵和所述第二参与方的用户数据进行特征计算,获得n行m+t列的特征矩阵,并将所述特征矩阵返回传输到所述第一参与方;
明文矩阵获取模块,用于通过所述第一参与方对所述特征矩阵进行同态解密并排序,获得明文矩阵,并从所述明文矩阵中选取从前往后选取k行,得到中间矩阵,其中,所述k为预设维度值,并且,k小于m和t中的任意一个;
降维模块,用于基于所述中间矩阵,通过所述第一参与方、第二参与方进行降维计算,获得降维结果。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据降维方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据降维方法的步骤。
本发明实施例提供的数据降维方法、装置、计算机设备及存储介质,通过第一参与方对第一参与方的用户数据进行同态加密,获得第一密文矩阵,其中,第一参与方的用户数据包含n个用户和m个特征,第一密文矩阵为n行m列的矩阵;将第一密文矩阵传输给第二参与方,其中,第二参与方与第一参与方具有共同用户,且第二参与方的用户数据包含t个特征;通过第二参与方,对第一密文矩阵和第二参与方的用户数据进行特征计算,获得n行m+t列的特征矩阵,并将特征矩阵返回传输到第一参与方;通过第一参与方对特征矩阵进行同态解密并排序,获得明文矩阵,并从明文矩阵中选取从前往后选取k行,得到中间矩阵;基于中间矩阵,通过第一参与方、第二参与方进行降维计算,获得降维结果,通过使用同态加密的方法,使得不同企业能够在不获取原始数据的基础上,获取到分布在不同区域的同一用户的所有数据特征,从而在保护数据隐私的前提下,实现了数据降维。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中数据降维方法的一应用环境示意图;
图2是本发明一实施例中数据降维方法的一流程图;
图3是本发明一实施例中数据降维装置的结构示意图;
图4是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供的数据降维方法,可应用在如图1的应用环境中,其中,计算机设备通过网络与服务器进行通信。其中,计算机设备可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种数据降维方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤S101至S105:
S101、通过第一参与方对第一参与方的用户数据进行同态加密,获得第一密文矩阵,其中,第一参与方的用户数据包含n个用户和m个特征,第一密文矩阵为n行m列的矩阵。
在步骤S101中,上述同态加密是指一种对加密数据进行处理的加密方法。同态加密使得参与方可对加密数据进行处理,但不泄露原始数据。拥有密钥的参与方对处理过的数据进行解密的时候,获得的是处理过后的数据。
上述第一参与方的用户数据包含n个用户,每一个用户都具有m个特征,所有的用户特征组成的矩阵为n行m列的矩阵mA,矩阵mA经过同态加密后形成了n行m列的第一密文矩阵EA。
通过同态加密的方式对第一参与方的用户数据进行加密,避免了第一参与方的原始数据泄露,有效地保证了第一参与方的用户数据隐私。
在步骤S101中,其具体包括如下步骤A至B:
A、通过第一参与方对第一参与方的用户数据进行零均值化,获得第一零均值矩阵。
B、通过第一参与方对第一零均值矩阵进行同态加密,获得第一密文矩阵。
对于上述步骤A,其具体是,上述零均值化是指先通过第一参与方对第一参与方的用户数据的每一列计算均值,并将每一列中每个值减去该列均值,从而获得第一零均值矩阵的计算方式。
按照公式(1)计算第一参与方的用户数据每一列的均值:
其中,为第i列的均值,j为行数,j的取值范围为1,2,3,……n,n为正整数,且n为第一参与方的n个用户。
对于上述步骤B,其具体是:
通过第一参与方根据CKKS全同态加密密钥生成原理(The Cheon-Kim-Kim-Songcryptosystem)生成一对公私钥,将公钥传输给第二参与方;
通过第一参与方使用公钥对第一零均值矩阵进行同态加密,得到第一密文矩阵EA。
由于不同特征取值范围差异大,因此需要对特征进行统一,通过零均值化,使得不同特征的取值范围符合标准正态分布,有助于提高特征计算的精度。通过全同态加密算法对用户数据进行数据隐私保护,同时保证了密文可以进行计算任务,从而保护了原始数据,达到了数据可用不可见的效果。
S102、将第一密文矩阵传输给第二参与方,其中,第二参与方与第一参与方具有共同用户,且第二参与方的用户数据包含t个特征。
在步骤S102中,将第一密文矩阵传输给第二参与方,第二参与方利用接收到的第一参与方的公钥,解密第一密文参与方。
此处需要说明的是,第二参与方可包括多个参与方,上述第二参与方具有t个特征,所有的用户特征组成n行t列的矩阵mB。
通过将第一密文矩阵传输给第二参与方,使得第二参与方能够利用公钥进行解密,直接获得第一参与方处理过后的数据,不需要接触第一参与方的原始数据,从而保护数据隐私。
S103、通过第二参与方,对第一密文矩阵和第二参与方的用户数据进行特征计算,获得n行m+t列的特征矩阵,并将特征矩阵返回传输到第一参与方。
在步骤S103中,上述特征矩阵包括第一参与方的特征和第二参与方的特征。
通过第二参与方,对第一密文矩阵和第二参与方的用户数据进行特征计算,得到特征矩阵,从而使得用户的全部特征能够在不触及原始数据的条件下,获得原始数据的特征,从而有效保护数据隐私,同时也为数据降维操作提供了全部的数据信息,使得传统的数据预处理方法能够在保护数据隐私的前提下,得以实现。
在上述步骤S103中,其具体包括如下步骤C至D:
C、通过第二参与方对所述第二参与方的用户数据进行同态加密,获得第二密文矩阵。
D、通过第二参与方对第一密文矩阵和第二密文矩阵进行特征拼接,获得特征矩阵。
对于上述步骤C,此处需要说明的是,第二参与方与第一参与方具有共同用户,第二参与方具有n个用户,每个用户具有t个特征。特征矩阵mB经过同态加密后形成了n行t列的第二密文矩阵EB。
对于上述步骤D,其具体是:
通过第二参与方将第一密文矩阵和第二密文矩阵进行拼接,获得拼接矩阵;
通过第二参与方对拼接矩阵进行协方差计算,获得特征矩阵。
按照公式(2)计算,确定拼接矩阵:
EX=EA+EB 公式(2)
其中,EX为拼接矩阵,EA为第一密文矩阵,EB为第二密文矩阵。
此处需要说明的是,上述拼接为横向拼接,使得同一个用户的来自不同参与方的特征能够以列的形式,全部呈现。
按照公式(3)进行计算,得到特征矩阵:
其中,EC为特征矩阵。EX为拼接矩阵,EXT为拼接矩阵的转置矩阵。
通过第二参与方,对第一密文矩阵和第二密文矩阵进行特征拼接,使得用户的全部特征能够被拼接在一起,且不需要获取原始数据,再对拼接矩阵进行协方差计算,可以有效处理多维数据,从而在保护数据隐私的前提下,对多维数据进行预处理。
S104、通过第一参与方对特征矩阵进行同态解密并排序,获得明文矩阵,并从明文矩阵中选取从前往后选取k行,得到中间矩阵,其中,k为预设维度值,并且,k小于m和t中的任意一个。
在步骤S104中,通过第一参与方的私钥对特征矩阵进行同态解密,解密后获得具有第一参与方用户特征和第二参与方用户特征的特征矩阵。该特征矩阵包括用户的所有特征。
上述中间矩阵是指用于降维操作的k行m+t列的特征矩阵。
在步骤S104中,具体包括如下步骤E至G:
E、通过第一参与方对特征矩阵进行同态解密;
F、计算解密后的特征矩阵的特征值和特征向量矩阵;
G、根据特征值对特征向量矩阵进行排序,获得明文矩阵。
对于上述步骤G,上述明文矩阵是指具有用户全部特征并且根据特征值大小进行排序的矩阵。
通过对特征矩阵进行同态解密,获取处理过的用户全部特征,再通过计算特征值与特征向量矩阵,并根据特征值对特征向量矩阵进行排序,能有效的将具有代表性意义的用户的数据排在前面,有利于提高后期降维操作的精度,并且保障了数据的隐私性。
S105、基于中间矩阵,通过第一参与方、第二参与方进行降维计算,获得降维结果。
在步骤S105中,上述降维计算是指根据预设的降维计算方式对中间矩阵进行的一系列计算过程。
通过第一参与方、第二参与方进行对中间矩阵进行一系列降维计算操作,实现在保护数据隐私的前提下,对分布在不同公司、区域的数据降维,达到了数据可用不可见的效果。
对于步骤S105,其具体包括如下步骤a至f:
a、根据预设第一抽取方向,从中间矩阵中选取t列,作为第一中间矩阵。
b、根据预设第二抽取方向,从中间矩阵中选取m列,作为第二中间矩阵,并将第二中间矩阵传输给第二参与方,其中,预设第一抽取方向与预设第二抽取方向的方向相反。
c、通过第一参与方对第一中间矩阵进行矩阵乘法计算,获得第一乘法矩阵,并将第一乘法矩阵的后k/2行传输给第二参与方。
d、通过第二参与方对第二中间矩阵进行矩阵乘法计算,获得第二乘法矩阵,并将第二乘法矩阵的前k/2行传输给第一参与方。
e、通过第一参与方将第一乘法矩阵的前k/2行与接收到的第二乘法矩阵的前k/2行进行矩阵加法计算,获得第一降维结果,并将第一降维结果作为第一参与方的降维结果。
f、通过第二参与方将第二乘法矩阵的后k/2行与接收到的第一乘法矩阵的后k/2行进行矩阵加法,获得第二降维结果,并将第二降维结果作为第二参与方的降维结果。
下面以一具体实施例,对上述步骤a至f进行举例说明,在一具体示例中,中间矩阵为k行m+t列的特征矩阵,第一预设抽取方向为从前往后的顺序,从中间矩阵中选取m列作为第二中间矩阵p2,剩下的t列则为第一中间矩阵p1。
对于步骤c,按照公式(4)进行计算,得到第一乘法矩阵:
Y1=P1·mAT 公式(4)
其中,Y1为k行m列的第一乘法矩阵,mAT是第一参与方的用户数据的矩阵。
将Y1分为前k/2行m列的矩阵Y1.1和后k/2行m列的矩阵Y1.2,并将Y1.2传输给第二参与方。
对于步骤d,按照公式(5)进行计算,得到第二乘法矩阵:
Y2=P2·mBT 公式(5)
其中,Y2为k行t列的第二乘法矩阵,mBT是第二参与方的用户数据的特征矩阵。
将Y2分为前k/2行t列的矩阵Y2.1和后k/2行t列的矩阵Y2.2,并将Y2.1传输给第一参与方。
对于步骤e,按照公式(6)进行激素按,得到第一降维结果:
F1=Y1.1+Y2.1 公式(6)
其中,F1为第一降维结果,F1为第一参与方的降维结果。
对于步骤f,按照公式(7)计算,得到第二降维结果:
F2=Y2.2+Y1.2 公式(7)
其中,F2为第二降维结果,F2为第二参与方的降维结果。
通过数据交换,第一参与方和第二参与方各持有中间矩阵的一半特征,并通过一系列降维计算过程,使得整体特征维度从(m+t)维有效降低到k维,并确保了数据的隐私性。
本发明实施例提供的数据降维方法,通过第一参与方对第一参与方的用户数据进行同态加密,获得第一密文矩阵,其中,第一参与方的用户数据包含n个用户和m个特征,第一密文矩阵为n行m列的矩阵;将第一密文矩阵传输给第二参与方,其中,第二参与方与第一参与方具有共同用户,且第二参与方的用户数据包含t个特征;通过第二参与方,对第一密文矩阵和第二参与方的用户数据进行特征计算,获得n行m+t列的特征矩阵,并将特征矩阵返回传输到第一参与方;通过第一参与方对特征矩阵进行同态解密并排序,获得明文矩阵,并从明文矩阵中选取从前往后选取k行,得到中间矩阵,其中,k为预设维度值,并且,k小于m和t中的任意一个;基于中间矩阵,通过第一参与方、第二参与方进行降维计算,获得降维结果,从而在保护数据隐私的前提下,实现了数据降维。
在一可选实施方式中,在得到降维结果之后,将每个降维结果存储于区块链网络节点中,通过区块链存储,实现数据信息在不同平台之间的共享,也可防止数据被篡改。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种数据降维装置,该数据降维装置与上述实施例中数据降维方法一一对应。如图3所示,该数据降维装置包括第一密文矩阵获取模块11、传输模块12、特征计算模块13、明文矩阵获取模块14和降维模块15。各功能模块详细说明如下:
第一密文矩阵获取模块11,用于通过第一参与方对第一参与方的用户数据进行同态加密,获得第一密文矩阵,其中,第一参与方的用户数据包含n个用户和m个特征,第一密文矩阵为n行m列的矩阵。
传输模块12,用于将第一密文矩阵传输给第二参与方,其中,第二参与方与第一参与方具有共同用户,且第二参与方的用户数据包含t个特征。
特征计算模块13,用于通过第二参与方,对第一密文矩阵和第二参与方的用户数据进行特征计算,获得n行m+t列的特征矩阵,并将特征矩阵返回传输到第一参与方。
明文矩阵获取模块14,用于通过第一参与方对特征矩阵进行同态解密并排序,获得明文矩阵,并从明文矩阵中选取从前往后选取k行,得到中间矩阵,其中,k为预设维度值,并且,k小于m和t中的任意一个。
降维模块15,用于基于中间矩阵,通过第一参与方、第二参与方进行降维计算,获得降维结果。
在其中一个实施例中,第一密文矩阵获取模块11进一步包括:
第一零均值矩阵获取单元,用于通过第一参与方对第一参与方的用户数据进行零均值化,获得第一零均值矩阵。
第一密文矩阵获取单元,用于通过第一参与方对第一零均值矩阵进行同态加密,获得第一密文矩阵。
在其中一个实施例中,特征计算模块13进一步包括:
第二密文矩阵获取单元,用于通过第二参与方对第二参与方的用户数据进行同态加密,获得第二密文矩阵。
特征矩阵获取单元,用于通过第二参与方对第一密文矩阵和第二密文矩阵进行特征拼接,获得特征矩阵。
在其中一个实施例中,特征矩阵获取单元进一步包括:
拼接单元,用于通过第二参与方将第一密文矩阵和第二密文矩阵进行拼接,获得拼接矩阵。
协方差计算单元,用于通过第二参与方对拼接矩阵进行协方差计算,获得特征矩阵。
在其中一个实施例中,明文矩阵获取模块14进一步包括:
同态解密单元,用于通过第一参与方对特征矩阵进行同态解密。
特征向量计算单元,用于计算解密后的特征矩阵的特征值和特征向量矩阵。
明文矩阵获取单元,用于根据特征值对特征向量矩阵进行排序,获得明文矩阵。
在其中一个实施例中,在k为偶数时,降维模块15进一步包括:
第一中间矩阵获取单元,用于根据预设第一抽取方向,从中间矩阵中选取t列,作为第一中间矩阵。
第二中间矩阵获取单元,用于根据预设第一抽取方向,从中间矩阵中选取m列,作为第二中间矩阵,并将第二中间矩阵传输给第二参与方,其中,第一预设抽取方向与第二预设抽取方向的方向相反。
第一乘法矩阵计算单元,用于通过第一参与方对第一中间矩阵进行矩阵乘法计算,获得第一乘法矩阵,并将第一乘法矩阵的后k/2行传输给第二参与方。
第二乘法矩阵计算单元,用于通过第二参与方对第二中间矩阵进行矩阵乘法计算,获得第二乘法矩阵,并将第二乘法矩阵的前k/2行传输给第一参与方。
第一降维单元,用于通过第一参与方将第一乘法矩阵的前k/2行与接收到的第二乘法矩阵的前k/2行进行矩阵加法计算,获得第一降维结果,并将第一降维结果作为第一参与方的降维结果。
第二降维单元,用于通过第二参与方将第二乘法矩阵的后k/2行与接收到的第一乘法矩阵的后k/2行进行矩阵加法,获得第二降维结果,并将第二降维结果作为第二参与方的降维结果。
在其中一个实施例中,降维模块15之后进一步包括:
区块链存储模块,用于将降维结果保存至区块链网络节点中。
其中上述模块/单元中的“第一”和“第二”的意义仅在于将不同的模块/单元加以区分,并不用于限定哪个模块/单元的优先级更高或者其它的限定意义。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式。
关于数据降维装置的具体限定可以参见上文中对于数据降维方法的限定,在此不再赘述。上述数据降维装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据降维方法中涉及到的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据降维方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中数据降维方法的步骤,例如图2所示的步骤S101至步骤S105及该方法的其它扩展和相关步骤的延伸。或者,处理器执行计算机程序时实现上述实施例中数据降维装置的各模块/单元的功能,例如图3所示模块11至模块15的功能。为避免重复,这里不再赘述。
所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。
所述存储器可以集成在所述处理器中,也可以与所述处理器分开设置。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中数据降维方法的步骤,例如图2所示的步骤S101至步骤S105及该方法的其它扩展和相关步骤的延伸。或者,计算机程序被处理器执行时实现上述实施例中数据降维装置的各模块/单元的功能,例如图3所示模块11至模块15的功能。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (9)
1.一种数据降维方法,其特征在于,包括:
通过第一参与方对所述第一参与方的用户数据进行同态加密,获得第一密文矩阵,其中,所述第一参与方的用户数据包含n个用户和m个特征,所述第一密文矩阵为n行m列的矩阵;
将所述第一密文矩阵传输给第二参与方,其中,所述第二参与方与第一参与方具有共同用户,且所述第二参与方的用户数据包含t个特征;
通过所述第二参与方,对所述第一密文矩阵和所述第二参与方的用户数据进行特征计算,获得n行m+t列的特征矩阵,并将所述特征矩阵返回传输到所述第一参与方;
通过所述第一参与方对所述特征矩阵进行同态解密并排序,获得明文矩阵,并从所述明文矩阵中选取从前往后选取k行,得到中间矩阵,其中,所述k为预设维度值,并且,k小于m和t中的任意一个;
基于所述中间矩阵,通过所述第一参与方、第二参与方进行降维计算,获得降维结果;
其中,所述k为偶数,所述基于所述中间矩阵,通过所述第一参与方、第二参与方进行降维计算,获得降维结果的步骤包括:
根据预设第一抽取方向,从所述中间矩阵中选取t列,作为第一中间矩阵;
根据预设第二抽取方向,从所述中间矩阵中选取m列,作为第二中间矩阵,并将第二中间矩阵传输给第二参与方,其中,所述预设第一抽取方向与所述预设第二抽取方向的方向相反;
通过所述第一参与方对所述第一中间矩阵进行矩阵乘法计算,获得第一乘法矩阵,并将所述第一乘法矩阵的后k/2行传输给所述第二参与方;
通过所述第二参与方对所述第二中间矩阵进行矩阵乘法计算,获得第二乘法矩阵,并将所述第二乘法矩阵的前k/2行传输给所述第一参与方;
通过所述第一参与方将所述第一乘法矩阵的前k/2行与接收到的所述第二乘法矩阵的前k/2行进行矩阵加法计算,获得第一降维结果,并将所述第一降维结果作为所述第一参与方的降维结果;
通过所述第二参与方将所述第二乘法矩阵的后k/2行与接收到的所述第一乘法矩阵的后k/2行进行矩阵加法,获得第二降维结果,并将所述第二降维结果作为所述第二参与方的降维结果。
2.根据权利要求1所述的方法,其特征在于,所述通过第一参与方对所述第一参与方的用户数据进行同态加密,获得第一密文矩阵包括:
通过第一参与方对所述第一参与方的用户数据进行零均值化,获得第一零均值矩阵;
通过所述第一参与方对所述第一零均值矩阵进行同态加密,获得第一密文矩阵。
3.根据权利要求1所述的方法,其特征在于,所述通过所述第二参与方,对所述第一密文矩阵和所述第二参与方的用户数据进行特征计算,获得n行m+t列的特征矩阵包括:
通过第二参与方对所述第二参与方的用户数据进行同态加密,获得第二密文矩阵;
通过所述第二参与方对所述第一密文矩阵和所述第二密文矩阵进行特征拼接,获得特征矩阵。
4.根据权利要求3所述的方法,其特征在于,所述通过所述第二参与方对所述第一密文矩阵和所述第二密文矩阵进行特征拼接,获得特征矩阵包括:
通过第二参与方将所述第一密文矩阵和所述第二密文矩阵进行拼接,获得拼接矩阵;
通过所述第二参与方对所述拼接矩阵进行协方差计算,获得特征矩阵。
5.根据权利要求1所述的方法,其特征在于,所述通过所述第一参与方对所述特征矩阵进行同态解密并排序,获得明文矩阵的步骤包括:
通过第一参与方对特征矩阵进行同态解密;
计算解密后的特征矩阵的特征值和特征向量矩阵;
根据特征值对特征向量矩阵进行排序,获得明文矩阵。
6.根据权利要求1所述的方法,其特征在于,在所述基于所述中间矩阵,通过所述第一参与方、第二参与方进行降维计算,获得降维结果之后,所述方法还包括:将所述降维结果保存至区块链网络节点中。
7.一种数据降维装置,其特征在于,包括:
第一密文矩阵获取模块,用于通过第一参与方对所述第一参与方的用户数据进行同态加密,获得第一密文矩阵,其中,所述第一参与方的用户数据包含n个用户和m个特征,所述第一密文矩阵为n行m列的矩阵;
传输模块,用于将所述第一密文矩阵传输给第二参与方,其中,所述第二参与方与第一参与方具有共同用户,且所述第二参与方的用户数据包含t个特征;
特征计算模块,用于通过所述第二参与方,对所述第一密文矩阵和所述第二参与方的用户数据进行特征计算,获得n行m+t列的特征矩阵,并将所述特征矩阵返回传输到所述第一参与方;
明文矩阵获取模块,用于通过所述第一参与方对所述特征矩阵进行同态解密并排序,获得明文矩阵,并从所述明文矩阵中选取从前往后选取k行,得到中间矩阵,其中,所述k为预设维度值,并且,k小于m和t中的任意一个;
降维模块,用于基于所述中间矩阵,通过所述第一参与方、第二参与方进行降维计算,获得降维结果;
所述数据降维装置用于实现如权利要求1所述的方法。
8.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述数据降维方法的步骤。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述数据降维方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110611230.1A CN113240045B (zh) | 2021-06-01 | 2021-06-01 | 一种数据降维方法、装置及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110611230.1A CN113240045B (zh) | 2021-06-01 | 2021-06-01 | 一种数据降维方法、装置及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113240045A CN113240045A (zh) | 2021-08-10 |
CN113240045B true CN113240045B (zh) | 2024-03-08 |
Family
ID=77136329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110611230.1A Active CN113240045B (zh) | 2021-06-01 | 2021-06-01 | 一种数据降维方法、装置及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113240045B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116150795B (zh) * | 2023-04-17 | 2023-07-14 | 粤港澳大湾区数字经济研究院(福田) | 基于同态加密的数据处理方法、系统及相关设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103259643A (zh) * | 2012-08-14 | 2013-08-21 | 苏州大学 | 一种矩阵全同态加密方法 |
CN107294697A (zh) * | 2017-07-21 | 2017-10-24 | 西安电子科技大学 | 基于明文相似矩阵的对称全同态加密方法 |
US10075288B1 (en) * | 2014-02-28 | 2018-09-11 | The Governing Council Of The University Of Toronto | Systems, devices, and processes for homomorphic encryption |
CN109190395A (zh) * | 2018-08-21 | 2019-01-11 | 浙江大数据交易中心有限公司 | 一种基于数据变换的全同态加密方法及系统 |
CN111162896A (zh) * | 2020-04-01 | 2020-05-15 | 支付宝(杭州)信息技术有限公司 | 双方联合进行数据处理的方法及装置 |
CN111241568A (zh) * | 2020-02-06 | 2020-06-05 | 广州华迅网络科技有限公司 | 加密方法、解密方法、装置、计算机设备和存储介质 |
CN112215165A (zh) * | 2020-10-13 | 2021-01-12 | 中山大学 | 一种同态加密下基于小波降维的人脸识别方法 |
CN112836005A (zh) * | 2019-11-25 | 2021-05-25 | 浙江树人学院(浙江树人大学) | 一种基于pca的密文排序搜索方法及系统 |
-
2021
- 2021-06-01 CN CN202110611230.1A patent/CN113240045B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103259643A (zh) * | 2012-08-14 | 2013-08-21 | 苏州大学 | 一种矩阵全同态加密方法 |
US10075288B1 (en) * | 2014-02-28 | 2018-09-11 | The Governing Council Of The University Of Toronto | Systems, devices, and processes for homomorphic encryption |
CN107294697A (zh) * | 2017-07-21 | 2017-10-24 | 西安电子科技大学 | 基于明文相似矩阵的对称全同态加密方法 |
CN109190395A (zh) * | 2018-08-21 | 2019-01-11 | 浙江大数据交易中心有限公司 | 一种基于数据变换的全同态加密方法及系统 |
CN112836005A (zh) * | 2019-11-25 | 2021-05-25 | 浙江树人学院(浙江树人大学) | 一种基于pca的密文排序搜索方法及系统 |
CN111241568A (zh) * | 2020-02-06 | 2020-06-05 | 广州华迅网络科技有限公司 | 加密方法、解密方法、装置、计算机设备和存储介质 |
CN111162896A (zh) * | 2020-04-01 | 2020-05-15 | 支付宝(杭州)信息技术有限公司 | 双方联合进行数据处理的方法及装置 |
CN112215165A (zh) * | 2020-10-13 | 2021-01-12 | 中山大学 | 一种同态加密下基于小波降维的人脸识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113240045A (zh) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11295381B2 (en) | Data auditing method and device | |
WO2020244070A1 (zh) | 数字信息加密方法、装置、计算机设备和存储介质 | |
CN108900533B (zh) | 一种共享数据隐私保护方法、系统、终端及介质 | |
CN110750810A (zh) | 数据脱敏方法、装置、计算机设备和存储介质 | |
CN112508722B (zh) | 一种基于零知识证明的保单信息验证方法和装置 | |
CN108809655B (zh) | 数据处理方法、装置、设备和存储介质 | |
US10211980B1 (en) | Method for lattice-based decryption of data | |
CN112953974B (zh) | 数据碰撞方法、装置、设备及计算机可读存储介质 | |
CN108055128B (zh) | Rsa密钥的生成方法、装置、存储介质及计算机设备 | |
CN110580420A (zh) | 基于集成芯片的数据处理方法、计算机设备、存储介质 | |
US10447475B1 (en) | System and method for managing backup of cryptographic keys | |
CN113240045B (zh) | 一种数据降维方法、装置及相关设备 | |
CN114124343A (zh) | 保护隐私的风险评分信息查询方法、装置、系统及设备 | |
CN112069525A (zh) | 基于信息的属性生成密钥的加密方法、装置及设备 | |
CN113434906B (zh) | 数据查询方法、装置、计算机设备及存储介质 | |
CN116861477A (zh) | 基于隐私保护的数据处理方法、系统、终端及存储介质 | |
CN115834058A (zh) | 通信加密方法、装置、计算机设备 | |
CN115459909A (zh) | 密钥数据处理方法及装置 | |
CN116070255A (zh) | 一种数据隐私计算方法、装置、设备及介质 | |
CN114254335A (zh) | 基于gpu的加密方法、装置、加密设备及存储介质 | |
CN113645022A (zh) | 一种确定隐私集合交集方法、装置、电子设备及存储介质 | |
CN113094735A (zh) | 隐私模型训练的方法 | |
CN115174260B (zh) | 数据验证方法、装置、计算机、存储介质和程序产品 | |
CN113965314B (zh) | 同态加密处理方法及相关设备 | |
CN115396241B (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 |