发明内容
有鉴于此,本发明实施例提供了一种数据处理方法及装置,用于在保护各方数据隐私不泄漏的前提下计算信息值。
为了实现上述目的,本发明实施例提供技术方案如下:
第一方面,本发明实施例提供了一种数据处理方法,应用于第一设备,所述方法包括:
接收第二设备发送的请求信息,所述请求信息携带有第一向量集合,用于请求计算目标对象集合中各个对象的特征关于标签的信息值,所述第一向量集合包括多个与标签向量正交的向量,所述标签向量为根据所述目标对象集合中的各个对象的二元标签构造的向量;
根据所述目标对象集合中各个对象的特征将所述目标对象集合划分为至少两个对象子集;
根据所述目标对象集合中各个对象所属的对象子集构造分箱矩阵;
随机从所述第一向量集合中选取随机数量个向量生成掩码矩阵;
根据所述掩码矩阵对所述分箱矩阵进行签名获取签名矩阵;
向所述第二设备发送所述签名矩阵,指示所述第二设备根据所述签名矩阵和所述标签向量获取各个对象子集中标签为正的对象的数量,以及根据各个对象子集中标签为正的对象的数量获取所述信息值。
作为本发明实施例一种可选的实施方式,所述根据所述目标对象集合中各个对象所属的对象子集构造分箱矩阵,包括:
构造全零矩阵,所述全零矩阵包括所述至少两个对象子集中的每一个对象子集对应的矩阵行和所述目标对象集合中的每一个对象对应的矩阵列;
针对所述全零矩阵中的每一个元素,若所述元素所属的矩阵列对应的对象属于所述元素所属的矩阵行对应的对象子集,则将所述元素的值设置为预设值,以生成所述分箱矩阵。
作为本发明实施例一种可选的实施方式,所述根据所述掩码矩阵对所述分箱矩阵进行签名获取签名矩阵,包括:
计算随机数、所述掩码矩阵以及所述掩码矩阵的倒置矩阵的乘积获得第一矩阵;
计算单位矩阵与所述第一矩阵的差值获得第二矩阵;
计算所述第二矩阵与所述分箱矩阵的乘积获得所述签名矩阵。
作为本发明实施例一种可选的实施方式,所述方法还包括:
向所述第二设备发送各个对象子集中的对象的数量,指示所述第二设备根据各个对象子集中的对象的数量和各个对象子集中标签为正的对象的数量,计算各个对象子集中标签为负的对象的数量,以及根据各个对象子集中标签为正的对象的数量和标签为负的对象的数量计算所述信息值。
作为本发明实施例一种可选的实施方式,所述方法还包括:
接收所述第二设备发送的所述信息值。
作为本发明实施例一种可选的实施方式,所述方法还包括:
接收所述第二设备发送的各个对象子集中标签为正的对象的数量;
根据各个对象子集中的对象的数量和各个对象子集中标签为正的对象的数量,获取各个对象子集中标签为负的对象的数量;
根据各个对象子集中标签为正的对象的数量和标签为负的对象的数量,计算所述目标对象集合中各个对象的特征关于标签的信息值;
向所述第二设备发送所述信息值。
第二方面,本发明实施例提供了一种数据处理方法,应用于第二设备,所述方法包括:
根据目标对象集合中各个对象的二元标签构造标签向量;
根据所述标签向量生成第一向量集合,所述第一向量集合包括多个与所述标签向量正交的向量;
向第一设备发送请求信息,所述请求信息携带有所述第一向量集合,用于请求计算所述目标对象集合中各个对象的特征关于标签的信息值;
接收所述第一设备发送的签名矩阵,所述签名矩阵为根据掩码矩阵对分箱矩阵进行签名获取的矩阵,所述掩码矩阵为所述第一设备根据随机从所述第一向量集合中选取的随机数量个向量生成的矩阵;所述分箱矩阵为所述第一设备根据所述目标对象集合中各个对象所属的对象子集构造的矩阵;
根据所述签名矩阵和所述标签向量计算各个对象子集中标签为正的对象的数量;
根据各个对象子集中标签为正的对象的数量获取所述信息值。
作为本发明实施例一种可选的实施方式,所述根据所述签名矩阵和所述标签向量计算各个对象子集中标签为正的对象的数量,包括:
计算所述签名矩阵的倒置矩阵与所述标签向量的乘积获得正标签向量;
根据所述正标签向量的各个分量获取各个对象子集中标签为正的对象的数量。
作为本发明实施例一种可选的实施方式,所述根据各个对象子集中标签为正的对象的数量获取所述信息值,包括:
接收所述第一设备发送的各个对象子集中的对象的数量;
根据各个对象子集中的对象的数量和各个对象子集中标签为正的对象的数量,获取各个对象子集中标签为负的对象的数量;
根据各个对象子集中标签为正的对象的数量和标签为负的对象的数量计算所述信息值。
作为本发明实施例一种可选的实施方式,所述方法还包括:
向所述第一设备发送所述信息值。
作为本发明实施例一种可选的实施方式,所述根据所述签名矩阵和所述标签向量,获取各个对象子集中标签为正的对象的数量,包括:
向所述第一设备发送各个对象子集中标签为正的对象的数量,指示所述第一设备根据各个对象子集中的对象的数量和各个对象子集中标签为正的对象的数量,计算各个对象子集中标签为负的对象的数量,以及根据各个对象子集中标签为正的对象的数量和标签为负的对象的数量计算所述信息值;
接收所述第一设备发送的所述信息值。
第三方面,本发明实施例提供了一种数据处理装置,包括:
接收单元,用于接收第二设备发送的请求信息,所述请求信息携带有第一向量集合,用于请求计算目标对象集合中各个对象的特征关于标签的信息值,所述第一向量集合包括多个与标签向量正交的向量,所述标签向量为根据所述目标对象集合中的各个对象的二元标签构造的向量;
分箱单元,用于根据目标对象集合中各个对象的特征将所述目标对象集合划分为至少两个对象子集;
构造单元,用于根据所述目标对象集合中各个对象所属的对象子集构造分箱矩阵;
生成单元,用于随机从所述第一向量集合中选取随机数量个向量生成掩码矩阵;
处理单元,用于根据所述掩码矩阵对所述分箱矩阵进行签名获取签名矩阵;
发送单元,用于向所述第二设备发送所述签名矩阵,指示所述第二设备根据所述签名矩阵和所述标签向量获取各个对象子集中标签为正的对象的数量,以及根据各个对象子集中标签为正的对象的数量获取所述信息值。
作为本发明实施例一种可选的实施方式,所述构造单元,具体用于构造全零矩阵,所述全零矩阵包括所述至少两个对象子集中的每一个对象子集对应的矩阵行和所述目标对象集合中的每一个对象对应的矩阵列;针对所述全零矩阵中的每一个元素,若所述元素所属的矩阵列对应的对象属于所述元素所属的矩阵行对应的对象子集,则将所述元素的值设置为预设值,以生成所述分箱矩阵。
作为本发明实施例一种可选的实施方式,所述处理单元,具体用于计算随机数、所述掩码矩阵以及所述掩码矩阵的倒置矩阵的乘积获得第一矩阵;计算单位矩阵与所述第一矩阵的差值获得第二矩阵;计算所述第二矩阵与所述分箱矩阵的乘积获得所述签名矩阵。
作为本发明实施例一种可选的实施方式,所述发送单元,还用于向所述第二设备发送各个对象子集中的对象的数量,指示所述第二设备根据各个对象子集中的对象的数量和各个对象子集中标签为正的对象的数量,计算各个对象子集中标签为负的对象的数量,以及根据各个对象子集中标签为正的对象的数量和标签为负的对象的数量计算所述信息值。
作为本发明实施例一种可选的实施方式,所述接收单元,还用于接收所述第二设备发送的所述信息值。
作为本发明实施例一种可选的实施方式,所述接收单元,还用于接收所述第二设备发送的各个对象子集中标签为正的对象的数量;
所述处理单元,还用于根据各个对象子集中的对象的数量和各个对象子集中标签为正的对象的数量,获取各个对象子集中标签为负的对象的数量;根据各个对象子集中标签为正的对象的数量和标签为负的对象的数量,计算所述目标对象集合中各个对象的特征关于标签的信息值;
所述发送单元,还用于向所述第二设备发送所述信息值。
第四方面,本发明实施例提供了一种数据处理装置,包括:
构造单元,用于根据目标对象集合中各个对象的二元标签构造标签向量;
生成单元,用于根据所述标签向量生成第一向量集合,所述第一向量集合包括多个与所述标签向量正交的向量;
发送单元,用于向第一设备发送请求信息,所述请求信息携带有所述第一向量集合,用于请求计算所述目标对象集合中各个对象的特征关于标签的信息值;
接收单元,用于接收所述第一设备发送的签名矩阵,所述签名矩阵为根据掩码矩阵对分箱矩阵进行签名获取的矩阵,所述掩码矩阵为所述第一设备根据随机从所述第一向量集合中选取的随机数量个向量生成的矩阵;所述分箱矩阵为所述第一设备根据所述目标对象集合中各个对象所属的对象子集构造的矩阵;
处理单元,根据所述签名矩阵和所述标签向量计算各个对象子集中标签为正的对象的数量;
获取单元,用于根据各个对象子集中标签为正的对象的数量获取所述信息值。
作为本发明实施例一种可选的实施方式,所述处理单元,具体用于计算所述签名矩阵的倒置矩阵与所述标签向量的乘积获得正标签向量;根据所述正标签向量的各个分量获取各个对象子集中标签为正的对象的数量。
作为本发明实施例一种可选的实施方式,所述接收单元,还用于接收所述第一设备发送的各个对象子集中的对象的数量;
所述获取单元,具体用于根据各个对象子集中的对象的数量和各个对象子集中标签为正的对象的数量,获取各个对象子集中标签为负的对象的数量;根据各个对象子集中标签为正的对象的数量和标签为负的对象的数量计算所述信息值。
作为本发明实施例一种可选的实施方式,所述发送单元,还用于向所述第一设备发送所述信息值。
作为本发明实施例一种可选的实施方式,所述获取单元,具体用于向所述第一设备发送各个对象子集中标签为正的对象的数量,指示所述第一设备根据各个对象子集中的对象的数量和各个对象子集中标签为正的对象的数量,计算各个对象子集中标签为负的对象的数量,以及根据各个对象子集中标签为正的对象的数量和标签为负的对象的数量计算所述信息值;以及接收所述第一设备发送的所述信息值。
第五方面,本发明实施例提供了一种电子设备,包括:存储器和处理器,所述存储器用于存储计算机程序;所述处理器用于在调用计算机程序时,使得所述电子设备实现上述任一实施例所述的数据处理方法。
第六方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序被计算设备执行时,使得所述计算设备实现上述任一实施例所述的数据处理方法。
第七方面,本发明实施例提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机实现上述任一实施例所述的数据处理方法。
本发明实施例提供的数据处理方法在第一设备接收第二设备发送的用于请求计算目标对象集合中各个对象的特征关于标签的信息值的请求信息时,根据目标对象集合中各个对象的特征将所述目标对象集合划分为至少两个对象子集,并根据所述目标对象集合中各个对象所属的对象子集构造分箱矩阵,再随机从请求信息携带的第一向量集合中选取随机数量个向量生成掩码矩阵,并根据所述掩码矩阵对所述分箱矩阵进行签名获取签名矩阵,以及向所述第二设备发送所述签名矩阵,指示所述第二设备根据所述签名矩阵和所述标签向量获取各个对象子集中标签为正的对象的数量,以及根据各个对象子集中标签为正的对象的数量获取所述目标对象集合中各个对象的特征关于标签的信息值。因为第一设备在通过掩码矩阵对分箱矩阵进行签名后,才会向第二设备发送签名得到的签名矩阵,所以第二设备无法获取第一设备所拥有的目标对象集合中各个对象的特征。又因为第二设备向第一设备发送的第一向量集合仅是标签向量的一个子集,因此第一设备也无法根据第一向量集合确定标签向量,从获取第二设备所拥有的目标对象集合中各个对象的标签。综上,本发明实施例提供了一种可以在保护第一设备和第二设备的数据隐私不泄漏的前提下计算信息值的数据处理方法。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面将对本发明的方案进行进一步描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节指示于充分理解本发明,但本发明还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本发明的一部分实施例,而不是全部的实施例。
在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。此外,在本发明实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
以下对本发明实施例提供的数据处理方法所应用的场景架构进行说明。参照图1所示,本发明数据处理方法所应用的场景中包括:第一设备11和第二设备12。其中,第一设备11拥有的隐私数据为:目标对象集合中各个对象的特征,第二设备12拥有的隐私数据为:目标对象集合中各个对象的二元标签。本发明实施例想要实现的技术效果为:在保护第一设备11和第二设备隐私数据不泄漏的前提下计算目标对象集合中各个对象的特征关于标签的信息值。
在所述信息值的计算过程中:第二设备12首先根据目标对象集合中各个对象的二元标签构造标签向量,并根据所述标签向量生成包括多个与所述标签向量正交的向量的第一向量集合,以及向第一设备11发送携带有所述第一向量集合的信息值计算请求信息。第一设备11根据目标对象集合中各个对象的特征将所述目标对象集合划分为至少两个对象子集,并根据所述目标对象集合中各个对象所属的对象子集构造分箱矩阵,当第一设备11收到所述第一向量集合后,根据所述第一向量集合生成掩码矩阵,并根据所述掩码矩阵对分箱矩阵进行签名获取签名矩阵,以及将所述签名矩阵发送至第二设备12。第二设备12收到签名矩阵后根据所述签名矩阵和所述标签向量获取各个对象子集中标签为正的对象的数量,以及根据各个对象子集中标签为正的对象的数量获取所述目标对象集合中各个对象的特征关于标签的信息值。
基于上述内容,本发明实施例提供了一种数据处理方法,参照图2所示,本发明实施例提供的数据处理方法包括如下步骤:
S201、第二设备根据目标对象集合中各个对象的二元标签构造标签向量。
即,将目标对象集合中各个对象的二元标签依次作为标签向量的分量从而构造标签向量y=[y1,y2,…,yn]T,其中y1,y2,…,yn分别为目标对象集合中各个对象的二元标签。
本发明实施例中的目标对象集合可以为任意多个具有同一维度下的特征和同一二分类标准下的二元标签的对象组成的集合。例如:对于某一应用程序的客户群体,在将各个客户的应用程序使用习惯作为特征,将各个客户的性别作为二元标签的情况下,可以将该客户群体作为本发明实施例中的目标对象集合。再例如:某一城市内的车辆,在将各个车辆在某一天的行驶时长为特征,将各个车辆的尾号是否为单数作为二元标签的情况下,可以将该客户群体作为本发明实施例中的目标对象集合。
本发明实施例中对象的二元标签是指:将目标对象集合中的对象分类为两类,用于标识对象具体属于该两类中的类别的标签。例如:当对象为人时,对象的二元标签可以为性别(男/女)。再例如:当对象为车辆时,对象的二元标签可以为是否尾号为双数(单/双),再例如:当对象为小区时,对象的二元标签可以为是否人车分流(是/否)。
示例性的,以下以目标对象集合、目标对象集合中各个对象的二元标签如下表1所示为例对本发明实施例进行说明。参照下表1所示:
表1
如表1所示,目标对象集合中包括6个对象,分别为客户1~客户6,客户1~客户6的二元标签为客户1~客户6的信用卡是否逾期,且分别为:1、1、0、0、0、1,因此根据表1所示示例构建的标签向量为:
y=[1,1,0,0,0,1]T
S202、第二设备根据所述标签向量生成第一向量集合。
其中,所述第一向量集合包括多个与所述标签向量正交的向量。
即,构造多个与所述标签向量正交的向量,并将该多个向量组合为第一向量集合。
可选的,上述步骤S202(根据所述标签向量生成第一向量集合)的实现方式可以包括如下步骤1至步骤4:
步骤1、随机选取一个j∈{1,…,n},使得yj≠0。
即,随机选取一个不等于0(等于1)的标签。
步骤2、随机构造一系列zik∈R,k∈{1,…,n}\{j}。
步骤3、计算
步骤4、随机构造与所述标签向量正交的向量zi=[zi1…zin]T。
多次执行上述步骤1至步骤4,则可以获取多个与所述标签向量正交的向量,进而组合该多个与所述标签向量正交的向量生成所述第一向量集合Z={z1,z2,…,zb}。
S203、第二设备向第一设备发送请求信息。
对应的,第一设备接收第二设备发送的所述请求信息。
其中,所述请求信息携带有第一向量集合,用于请求计算目标对象集合中各个对象的特征关于标签的信息值。
本发明实施例中对象的特征可以根据实际预测需求设置为任一维度下的特征。例如:当预测需求为根据用户的电视收看记录预测用户是否为未成年时,则可以将用户的电视收看记录作为特征,将用户是否为未成年作为标签,计算电视收看记录关于是否为未成年的信息值,并根据计算出的信息值确定电视收看记录对是否为未成年的预测作用的强弱。再例如:当预测需求为用户的月消费记录预测用户信用卡是否会逾期时,则可以将用户的月消费记录作为特征,将月消费记录是否逾期作为标签,计算月消费记录关于信用卡是否逾期的信息值,并根据计算出的信息值确定月消费记录对信用卡是否会逾期的预测作用的强弱。
承上示例所述,上述步骤S203即为:第二设备将携带有第一向量集合Z={z1,z2,…,zb}的请求信息发送至第一设备。
示例性的,第二设备可以在请求信息中携带目标对象集合中各个对象的标识表征所述目标对象集合。
由于第一向量集合Z={z1,z2,…,zb}是标签向量y=[y1,y2,…,yn]T张成空间的正交补空间span(y)⊥中选取的向量构成的向量集合,即z1,z2,…,zb∈span(y)⊥,由于第一设备无法获取全部的标签向量y=[y1,y2,…,yn]T张成空间的正交补空间span(y)⊥,因此第一设备无法反推标签向量y=[y1,y2,…,yn]T张成空间span(y),进而无法获取标签向量y=[y1,y2,…,yn]T,因此上述实施可以保证第二设备的隐私数据的安全性。
需要说明的是,本发明实施例中以第一向量集合携带于请求信息中为例进行说明,但本发明实施例并不限定于此,在上述实施例的基础上第二设备还可以分别向第一设备发送请求信息和第一向量集合。相比于分别向第一设备发送请求信息和第一向量集合,将第一向量集合携带于请求信息中可以减少通信次数,进而减少对通信资源的消耗。
S204、第一设备根据目标对象集合中各个对象的特征将所述目标对象集合划分为至少两个对象子集。
作为本发明实施例一种可选的实施方式,上述步骤S204(根据目标对象集合中各个对象的特征将所述目标对象集合划分为至少两个对象子集),包括:
按照目标对象集合中各个对象的特征对所述目标对象集合中的对象进行降序排序,获取排序结果;
将所述排序结果均分为多个对象子集,以将所述目标对象集合划分为至少两个对象子集。
例如:若目标对象集合中共包括9000个对象,则可以将该9000个对象按照特征大小进行降序排序,并将排序结果的1-3000个对象拆分为一个对象子集,将排序结果的3001-6000个对象拆分为一个对象子集,将排序结果的6001-9000个对象拆分为一个对象子集,从而将目标对象集合拆分为3个对象子集。
可选的,上述步骤S204(根据目标对象集合中各个对象的特征将所述目标对象集合划分为至少两个对象子集)的一种实现方式为:
目标对象集合中各个对象的特征以及预设特征区间,将所述目标对象集合划分为至少两个对象子集。
例如:可以将特征值全集划分为4个特征值区间,然后将特征值属于同一特征值区域间的对象划分为一个对象子集,从而将目标对象集合拆分为4个对象子集。
示例性的,以下目标对象集合、目标对象集合中各个对象的特征以及所述目标对象集合中各个对象所属的对象子集如下表2所示为例对对本发明实施例进行说明。
表2
如表2所示,目标对象集合中包括6个对象,分别为客户1~客户6,客户1~客户6的特征为客户1~客户6的月消费记录,且分别为:1800、5000、1500、1500、3000、2000,根据月消费记录将客户1~客户6划分为2个对象子集,其中,客户3、客户4、客户5属于对象子集1,客户1、客户2、客户6属于对象子集2。
S205、第一设备根据所述目标对象集合中各个对象所属的对象子集构造分箱矩阵。
作为本发明实施例一种可选的实施方式,上述步骤S205(根据所述目标对象集合中各个对象所属的对象子集构造分箱矩阵)包括如下步骤a和步骤b:
步骤a、构造全零矩阵。
其中,所述全零矩阵包括所述至少两个对象子集中的每一个对象子集对应的矩阵行和所述目标对象集合中的每一个对象对应的矩阵列。
即,构造一个包括m行、n列元素,且各个元素的值均为0的矩阵;其中,m为所述对象子集的数量,n为目标对象集合中的对象的数量。
根据表1所示示例构建的全零矩阵O如下所示:
其中,全零矩阵O的第1行元素和第2行元素分别为对象子集1和第二对象子集2对应的矩阵行,全零矩阵O的第1列至第6列元素分别为客户1至客户6对应的元素。
步骤2、针对所述全零矩阵中的每一个元素,若所述元素所属的矩阵列对应的对象属于所述元素所属的矩阵行对应的对象子集,则将所述元素的值设置为预设值,以生成所述分箱矩阵。
示例性的,所述预设值可以为1。
例如:对于全零矩阵O第1行、第1列的元素,该元素所属的矩阵列(第1列)对应的对象为客户1,该元素所属的矩阵行(第1行)对应的对象子集为对象子集1,如上表1所示,客户1不属于对象子集1,而是属于对象子集2,因此保持该元素的值为0。
再例如:对于全零矩阵O第2行、第1列的元素,该元素所属的矩阵列(第1列)对应的对象为客户1,该元素所属的矩阵行(第2行)对应的对象子集为对象子集2,如上表1所示,客户1属于对象子集2,因此将该元素的值设置为预设值。
当预设值为1时,根据表1所示示例生成的分箱矩阵S如下所示:
其中,客户1对应的矩阵列S1=[1,0]T,客户2对应的矩阵列S2=[0,1]T,客户3对应的矩阵列S3=[1,0]T,客户4对应的矩阵列S4=[1,0]T,客户5对应的矩阵列S5=[0,1]T,客户6对应的矩阵列S6=[0,1]T,对象子集1对应的矩阵行L1=[1,0,1,1,0,0],对象子集2对应的矩阵行L2=[0,1,0,0,1,1]。
即,分箱矩阵S中的元素满足当且仅当第i个对象被划分到第j个对象子集时,sij=1。
S206、第一设备随机从所述第一向量集合中选取随机数量个向量生成掩码矩阵。
由于第一向量集合中各个向量均与标签向量正交,因此掩码矩阵与标签向量y=[y1,y2,…,yn]T的乘积为0。即,ZTy=0。
S207、第一设备根据所述掩码矩阵对所述分箱矩阵进行签名获取签名矩阵。
作为本发明实施例一种可选的实施方式,上述步骤S207(根据所述掩码矩阵对所述分箱矩阵进行签名获取签名矩阵)的实现方式可以包括如下步骤Ⅰ至步骤Ⅲ:
步骤Ⅰ、计算随机数、所述掩码矩阵以及所述掩码矩阵的倒置矩阵的乘积获得第一矩阵。
设:第一矩阵为A1,随机数为a,则有:
A1=aZZT
步骤Ⅱ、计算单位矩阵与所述第一矩阵的差值获得第二矩阵。
具体的,单位矩阵(identity matrix)是指从左上角到右下角的对角线(称为主对角线)上的元素均为1,除此以其它元素外全都为0的矩阵。
设:第二矩阵为A2,单位矩阵为In,则有:
A2=In-A1=In-aZZT
步骤Ⅲ、计算所述第二矩阵与所述分箱矩阵的乘积获得所述签名矩阵。
设:签名矩阵为M,则有:
M=A2S=(In-aZZT)S
S208、第一设备向第二设备发送所述签名矩阵。
对应的,第二设备接收第一设备发送的所述签名矩阵。
即,第一设备将签名矩阵M=A2S=(In-aZZT)S发送至第二设备。
第一设备向第二设备发送签名矩阵M后,第一设备的数据安全性是由第二设备是否可以通过签名矩阵M推算出分箱矩阵S决定的。本发明实施例中,第二设备无法获取掩码矩阵Z和随机数a,因此第二设备无法获取第二矩阵A2=In-aZZT,进而无法推算出分箱矩阵S,因此本发明实施例可以保证第一设备的隐私数据的安全性。
S209、第二设备根据所述签名矩阵和所述标签向量计算各个对象子集中标签为正的对象的数量。
作为本发明实施例一种可选的实施方式,上步骤S209(根据所述签名矩阵和所述标签向量,获取各个对象子集中标签为正的对象的数量)包括如下步骤①和步骤②:
步骤①、计算所述签名矩阵的倒置矩阵与所述标签向量的乘积,获取正标签向量。
设:正标签向量为P,则有:
P=MTy=(In-aZZT)STy
进一步的,由于第一向量集合中各个向量均与标签向量正交,因此掩码矩阵与标签向量y=[y1,y2,…,yn]T的乘积为0(ZTy=0),因此正标签向量P=STy。
步骤②、根据所述正标签向量的各个分量获取各个对象子集中标签为正的对象的数量。
例如:正标签向量P=[p1,p2,…,pn],则第一个对象子集中标签为正的对象的数量为p1,第二个对象子集中标签为正的对象的数量为p2,……第n个对象子集中标签为正的对象的数量为pn。即,Pi=|{j∈Bi-1:yj=1}|。
S210、第二设备根据各个对象子集中标签为正的对象的数量获取所述信息值。
具体的,以下对上述步骤S210的实现方式进行说明。
实现方式一、
参照图3所示,上述步骤S210(第二设备根据各个对象子集中标签为正的对象的数量获取所述信息值)的实现方式包括:
S301、第一设备向第二设备发送各个对象子集中的对象的数量。
对应的,第二设备接收各个对象子集中的对象的数量。
可选的,第一设备向第二设备发送各个对象子集中的对象的数量的实现方式可以包括:
计算分箱矩阵的倒置矩阵与n维全1向量的乘积,获取总数向量,向第二设备发送所述总数向量,指示所述第二设备根据所述总数向量的各个分量获取各个对象子集中的对象的数量。
设:n维全1向量为1n,总数向量为T,则有:
T=ST1n
S302、第二设备根据各个对象子集中的对象的数量和各个对象子集中标签为正的对象的数量,获取各个对象子集中标签为负的对象的数量。
承上所述,正标签向量为P=[p1,p2,…,pn],总数向量为T=[T1,T2,…,Tn],则获取的各个对象子集中标签为负的对象的数量的实现方式包括:
计算总数向量与正标签向量的差值获取负标签向量,根据所述负标签向量的各个分量获取各个对象子集中标签为负的对象的数量。
设:负标签向量为N,则有:
N=T-P=[T1-p1,T2-p2,…,Tn-pn]
第一个对象子集中标签为正的对象的数量为T1-p1,第二个对象子集中标签为正的对象的数量为T2-p2,……第n个对象子集中标签为正的对象的数量为Tn-pn。即,Ni=|{j∈Bi-1:yj=0}|。
S303、第二设备根据各个对象子集中标签为正的对象的数量和标签为负的对象的数量计算所述信息值。
具体的,上述步骤S303(根据各个对象子集中标签为正的对象的数量和标签为负的对象的数量计算所述信息值)的实现方式包括:
根据各个对象子集中标签为正的对象的数量、标签为负的对象的数量以及如下公式计算所述信息值:
其中,iv为所述信息值,m为对象子集的总数量,Pi、Pj为分别第i、j个对象子集中标签为正的对象的数量,Ni、Nj为分别第i、j个对象子集中标签为负的对象的数量。
示例性的,根据上述表1和表2内容可以计算出:
P1=1,N1=2,P2=2,P2=1
代入上式:
可选的,参照图3所示,本发明实施例提供的数据处理方法还包括:
S304、第二设备向第一设备发送所述信息值。
实现方式二、
参照图4所示,上述步骤S210(第二设备根据各个对象子集中标签为正的对象的数量获取所述信息值)的实现方式包括:
S401、第二设备向所述第一设备发送各个对象子集中标签为正的对象的数量。
对应的,第一设备接收第二设备发送的各个对象子集中标签为正的对象的数量。
S402、第一设备根据各个对象子集中的对象的数量和各个对象子集中标签为正的对象的数量,获取各个对象子集中标签为负的对象的数量。
S403、根据各个对象子集中标签为正的对象的数量和标签为负的对象的数量计算所述信息值。
同样,第一设备根据各个对象子集中标签为正的对象的数量和标签为负的对象的数量计算所述信息值的实现方式可以包括:
根据各个对象子集中标签为正的对象的数量、标签为负的对象的数量以及如下公式计算所述信息值:
S404、第一设备向所述第二设备发送所述信息值。
本发明实施例提供的数据处理方法在第一设备接收第二设备发送的用于请求计算目标对象集合中各个对象的特征关于标签的信息值的请求信息时,根据目标对象集合中各个对象的特征将所述目标对象集合划分为至少两个对象子集,并根据所述目标对象集合中各个对象所属的对象子集构造分箱矩阵,再随机从请求信息携带的第一向量集合中选取随机数量个向量生成掩码矩阵,并根据所述掩码矩阵对所述分箱矩阵进行签名获取签名矩阵,以及向所述第二设备发送所述签名矩阵,指示所述第二设备根据所述签名矩阵和所述标签向量获取各个对象子集中标签为正的对象的数量,以及根据各个对象子集中标签为正的对象的数量获取所述目标对象集合中各个对象的特征关于标签的信息值。因为第一设备在通过掩码矩阵对分箱矩阵进行签名后,才会向第二设备发送签名得到的签名矩阵,所以第二设备无法获取第一设备所拥有的目标对象集合中各个对象的特征。又因为第二设备向第一设备发送的第一向量集合仅是标签向量的一个子集,因此第一设备也无法根据第一向量集合确定标签向量,从获取第二设备所拥有的目标对象集合中各个对象的标签。综上,本发明实施例提供了一种可以在保护第一设备和第二设备的数据隐私不泄漏的前提下计算信息值的数据处理方法。
还需要说明的是,相比于普遍使用的基于同态加密的数据处理方法,本发明实施例提供的数据处理方法还可减少计算信息值过程中的计算量以及减少计算信息值过程中的数据传输量。
具体的,基于同态加密的数据处理方法包括:
步骤1、第二设备根据目标对象集合中各个对象的二元标签计算
有以下两个性质:
1、若yi=1,则若yi=0,则/>
2、对于任意对象子集可以统计U中标签为正的对象的数量是∑i∈ Uyi,标签为负的对象的数量是/>
步骤2、第二设备将将所有的yi和进行同态加密后,得到/>并将此内容发送给第一设备。
步骤3、第一设备根据特征x1,…,xn分箱情况进行箱内对应累加,并统计每个箱Bj內的(密文形式的)标签为正的对象的数量<Pj+1>和标签为负的对象的数量<Nj+1>。
步骤4、第一设备向第二设备<Pj+1>和<Nj+1>。
步骤5、第二设备解密得到标签为正的对象的数量的明文以及标签为负的对象的数量的明文,计算信息值。
一方面,由于基于同态加密的数据处理方法需要对明文yi,加密进行、对密文<Pj><Nj>进行解密,以及在密文空间中实现同态加法,因此计算效率,而本发明实施例中是明文计算,无需加密解密,无需对密文进行操作,因此本发明实施例可以减少计算信息值过程中的计算量,进而提升信息值的计算效率。
另一方面,由于基于同态加密的数据处理方法需要在第一设备和第二设备之间进行密文的传输,而密文具备天然的膨胀属性。例如:一个整型变量在明文状态下是16比特,在密文状态下通常是2048到4096比特,数百倍的膨胀特性使得本来需要几分钟传输的文明,密文状态下可能需要几小时,通信负载和耗时很大。而本发明方案是纯明文计算,不存在密文膨胀,因此本发明实施例可以减少计算信息值过程中的数据传输量。
基于同一发明构思,作为对上述方法的实现,本发明实施例还提供了一种数据处理装置,该数据处理装置实施例与前述方法实施例对应,为便于阅读,本数据处理装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的数据处理装置能够对应实现前述方法实施例中的全部内容。
本发明实施例提供了一种数据处理装置。图5为该数据处理装置的结构示意图,如图5所示,该数据处理装置500包括:
接收单元51,用于接收第二设备发送的请求信息,所述请求信息携带有第一向量集合,用于请求计算目标对象集合中各个对象的特征关于标签的信息值,所述第一向量集合包括多个与标签向量正交的向量,所述标签向量为根据所述目标对象集合中的各个对象的二元标签构造的向量;
分箱单元52,用于根据目标对象集合中各个对象的特征将所述目标对象集合划分为至少两个对象子集;
构造单元53,用于根据所述目标对象集合中各个对象所属的对象子集构造分箱矩阵;
生成单元54,用于随机从所述第一向量集合中选取随机数量个向量生成掩码矩阵;
处理单元55,用于根据所述掩码矩阵对所述分箱矩阵进行签名获取签名矩阵;
发送单元56,用于向所述第二设备发送所述签名矩阵,指示所述第二设备根据所述签名矩阵和所述标签向量获取各个对象子集中标签为正的对象的数量,以及根据各个对象子集中标签为正的对象的数量获取所述信息值。
作为本发明实施例一种可选的实施方式,所述构造单元53,具体用于构造全零矩阵,所述全零矩阵包括所述至少两个对象子集中的每一个对象子集对应的矩阵行和所述目标对象集合中的每一个对象对应的矩阵列;针对所述全零矩阵中的每一个元素,若所述元素所属的矩阵列对应的对象属于所述元素所属的矩阵行对应的对象子集,则将所述元素的值设置为预设值,以生成所述分箱矩阵。
作为本发明实施例一种可选的实施方式,所述处理单元55,具体用于计算随机数、所述掩码矩阵以及所述掩码矩阵的倒置矩阵的乘积获得第一矩阵;计算单位矩阵与所述第一矩阵的差值获得第二矩阵;计算所述第二矩阵与所述分箱矩阵的乘积获得所述签名矩阵。
作为本发明实施例一种可选的实施方式,所述发送单元56,还用于向所述第二设备发送各个对象子集中的对象的数量,指示所述第二设备根据各个对象子集中的对象的数量和各个对象子集中标签为正的对象的数量,计算各个对象子集中标签为负的对象的数量,以及根据各个对象子集中标签为正的对象的数量和标签为负的对象的数量计算所述信息值。
作为本发明实施例一种可选的实施方式,所述接收单元51,还用于接收所述第二设备发送的所述信息值。
作为本发明实施例一种可选的实施方式,所述接收单元51,还用于接收所述第二设备发送的各个对象子集中标签为正的对象的数量;
所述处理单元55,还用于根据各个对象子集中的对象的数量和各个对象子集中标签为正的对象的数量,获取各个对象子集中标签为负的对象的数量;根据各个对象子集中标签为正的对象的数量和标签为负的对象的数量,计算所述目标对象集合中各个对象的特征关于标签的信息值;
所述发送单元56,还用于向所述第二设备发送所述信息值。
本发明实施例提供了另一种数据处理装置。图6为该数据处理装置的结构示意图,如图6所示,该数据处理装置600包括:
构造单元61,用于根据目标对象集合中各个对象的二元标签构造标签向量;
生成单元62,用于根据所述标签向量生成第一向量集合,所述第一向量集合包括多个与所述标签向量正交的向量;
发送单元63,用于向第一设备发送请求信息,所述请求信息携带有所述第一向量集合,用于请求计算所述目标对象集合中各个对象的特征关于标签的信息值;
接收单元64,用于接收所述第一设备发送的签名矩阵,所述签名矩阵为根据掩码矩阵对分箱矩阵进行签名获取的矩阵,所述掩码矩阵为所述第一设备根据随机从所述第一向量集合中选取的随机数量个向量生成的矩阵;所述分箱矩阵为所述第一设备根据所述目标对象集合中各个对象所属的对象子集构造的矩阵;
处理单元65,根据所述签名矩阵和所述标签向量计算各个对象子集中标签为正的对象的数量;
获取单元66,用于根据各个对象子集中标签为正的对象的数量获取所述信息值。
作为本发明实施例一种可选的实施方式,所述处理单元65,具体用于计算所述签名矩阵的倒置矩阵与所述标签向量的乘积获得正标签向量;根据所述正标签向量的各个分量获取各个对象子集中标签为正的对象的数量。
作为本发明实施例一种可选的实施方式,所述接收单元64,还用于接收所述第一设备发送的各个对象子集中的对象的数量;
所述获取单元66,具体用于根据各个对象子集中的对象的数量和各个对象子集中标签为正的对象的数量,获取各个对象子集中标签为负的对象的数量;根据各个对象子集中标签为正的对象的数量和标签为负的对象的数量计算所述信息值。
作为本发明实施例一种可选的实施方式,所述发送单元63,还用于向所述第一设备发送所述信息值。
作为本发明实施例一种可选的实施方式,所述获取单元66,具体用于向所述第一设备发送各个对象子集中标签为正的对象的数量,指示所述第一设备根据各个对象子集中的对象的数量和各个对象子集中标签为正的对象的数量,计算各个对象子集中标签为负的对象的数量,以及根据各个对象子集中标签为正的对象的数量和标签为负的对象的数量计算所述信息值,以及接收所述第一设备发送的所述信息值。
基于同一发明构思,本发明实施例还提供了一种电子设备。图7为本发明实施例提供的电子设备的结构示意图,如图7所示,本实施例提供的电子设备包括:存储器71和处理器72,所述存储器71用于存储计算机程序;所述处理器72用于在调用计算机程序时,使得所述电子设备实现上述实施例提供的数据处理方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序被计算设备执行时,使得所述计算设备实现上述实施例提供的数据处理方法。
本发明实施例还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机实现上述实施例提供的数据处理方法。
本领域技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。
处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储,信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。根据本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。