数据处理方法和数据处理装置
文献发布时间:2023-06-19 19:30:30
技术领域
本申请属于纵向联邦学习领域,尤其涉及一种数据处理方法和数据处理装置。
背景技术
随着大数据时代的来临,工业互联网中涉及越来越多的数据,如何对数据进行有效的隐私保护成为亟待解决的问题。相关技术中,主要采用拆分学习的方法来进行联邦学习,以基于工业特征数据获取与该工业特征数据对应的标签,从而达到保护本地端的工业特征数据的隐私的目的。然而,该拆分学习的方法依然存在较大的本地端的数据泄露的风险。
发明内容
本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请提出一种数据处理方法和数据处理装置,有效提高纵向联邦学习过程中的数据安全性。
第一方面,本申请提供了一种数据处理方法,该方法包括:
获取目标工业特征数据;
对所述目标工业特征数据进行加密处理获取初始中间结果,并将所述初始中间结果发送至隐私计算系统进行加密处理,获取所述隐私计算系统输出的目标中间结果;
基于所述目标中间结果,获取所述目标中间结果对应的目标标签;
其中,所述隐私计算系统包括参与加法分享的第一服务器、第二服务器以及用于辅助计算的辅助计算服务器。
根据本申请的数据处理方法,通过在纵向联邦学习过程中,由特征提供方对初始中间结果进行基于加法分享的加密处理获取目标中间结果,并将目标中间结果发送至标签提供方以基于目标中间结果预测得到目标标签,无需多次加解密即可对中间结果进行高效加密,加密效果好,能够显著降低基于中间结果反推得到目标工业特征数据的风险,从而降低中间结果泄露而导致特征提供方的数据隐私泄露的风险,有效提高纵向联邦学习过程中的数据安全性。
根据本申请的一个实施例,所述隐私计算系统包括顺次连接的基础算子层、可微分算符层和模型层,所述并将所述初始中间结果发送至隐私计算系统进行加密处理,获取所述隐私计算系统输出的目标中间结果,包括:
将所述初始中间结果输入至基础算子层,获取所述基础算子层输出的加密数据;
将所述加密数据输入至可微分算符层进行算符格式包装,获取所述可微分算符层输出的微分数据;
将所述微分数据输入至模型层,获取所述模型层输出的所述目标中间结果。
根据本申请的一个实施例,所述将所述初始中间结果输入至基础算子层,获取所述基础算子层输出的加密数据,包括:
对所述初始中间结果进行线性加密处理以及非线性逐元素函数计算,获取所述加密数据。
根据本申请的一个实施例,所述将所述加密数据输入至可微分算符层进行算符格式包装,获取所述可微分算符层输出的微分数据,包括:
确定多个加密数据之间的依赖关系;
基于所述依赖关系依次调用运算函数处理所述多个加密数据,获取所述微分数据。
根据本申请的一个实施例,所述对所述目标工业特征数据进行加密处理获取初始中间结果,并将所述初始中间结果发送至隐私计算系统进行加密处理,获取所述隐私计算系统输出的目标中间结果;基于所述目标中间结果,获取所述目标中间结果对应的目标标签,包括:
将所述目标工业特征数据输入至多个第一子模型中目标第一子模型,获取所述目标第一子模型输出的所述目标中间结果;
将所述目标中间结果输入至第二子模型,获取所述第二子模型输出的所述目标标签;
其中,所述目标第一子模型为基于与所述目标第一子模型对应的样本工业特征数据和与所述样本工业特征数据对应的样本中间结果训练得到的,所述第二子模型为基于所述样本中间结果和与所述样本工业特征数据对应的样本标签训练得到的,所述样本中间结果为经所述隐私计算系统进行加密处理的数据。
根据本申请的一个实施例,所述样本中间结果通过如下方式确定:
对所述样本工业特征数据进行加密处理,获取第一中间结果;
将所述第一中间结果发送至所述隐私计算系统进行加密处理,获取所述隐私计算系统输出的所述样本中间结果。
第二方面,本申请提供了一种数据处理装置,该装置包括:
根据本申请的数据处理装置,通过在纵向联邦学习过程中,由特征提供方对初始中间结果进行基于加法分享的加密处理获取目标中间结果,并将目标中间结果发送至标签提供方以基于目标中间结果预测得到目标标签,无需多次加解密即可对中间结果进行高效加密,加密效果好,能够显著降低基于中间结果反推得到目标工业特征数据的风险,从而降低中间结果泄露而导致特征提供方的数据隐私泄露的风险,有效提高纵向联邦学习过程中的数据安全性。
第三方面,本申请提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的数据处理方法。
第四方面,本申请提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的数据处理方法。
第五方面,本申请提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的数据处理方法。
第六方面,本申请提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的数据处理方法。
本申请实施例中的上述一个或多个技术方案,至少具有如下技术效果之一:
通过在纵向联邦学习过程中,由特征提供方对初始中间结果进行基于加法分享的加密处理获取目标中间结果,并将目标中间结果发送至标签提供方以基于目标中间结果预测得到目标标签,无需多次加解密即可对中间结果进行高效加密,加密效果好,能够显著降低基于中间结果反推得到目标工业特征数据的风险,从而降低中间结果泄露而导致特征提供方的数据隐私泄露的风险,有效提高纵向联邦学习过程中的数据安全性。
进一步的,通过设置基础算子层对初始中间结果进行加密处理得到加密数据,并通过可微分算符层将加密数据包装成可微分算子,然后通过模型层对可微分算子进行处理以包装成适用于模型的算子,使得最终加密得到的目标中间结果能够直接用于纵向联邦学习模型中,能够基于底层基础算子提供方便隐私建模的高层自动微分模型接口,且能够提供完善的可开发、可拓展以及可自动微分的高级机器学习建模接口,具有较高的普适性和使用便捷性。
更进一步的,通过对初始中间结果进行线性加密处理以及非线性逐元素函数计算以获取加密数据,能够从多个维度对初始中间结果进行隐私加密,加密效果好,能够显著提高中间结果的隐私性,从而提高纵向联邦学习过程中特征提供方的数据安全性和隐私性,且无需进行多次加解密,操作简单便捷。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请实施例提供的数据处理方法的流程示意图之一;
图2是本申请实施例提供的数据处理方法的流程示意图之二;
图3是本申请实施例提供的数据处理方法的流程示意图之三;
图4是本申请实施例提供的数据处理装置的结构示意图;
图5是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的数据处理方法、数据处理装置、电子设备和可读存储介质进行详细地说明。
其中,数据处理方法可应用于终端,具体可由,终端中的硬件或软件执行。
本申请实施例提供的数据处理方法,该数据处理方法的执行主体可以为电子设备或者电子设备中能够实现该数据处理方法的功能模块或功能实体,本申请实施例提及的电子设备包括但不限于手机、平板电脑、电脑、相机和可穿戴设备等,下面以电子设备作为执行主体为例对本申请实施例提供的数据处理方法进行说明。
需要说明的是,该数据处理方法可以应用于工业大数据处理领域。
如图1所示,该数据处理方法包括:步骤110、步骤120和步骤130。
步骤110、获取目标工业特征数据;
在该步骤中,目标工业特征数据可以为用户特征数据、产品特征数据、生产特征数据或其他任意特征数据,如用户家庭所在小区的建设年限以及小区房屋均价等特征数据,本申请在此不作限定。
以目标工业特征数据为用户家庭所在小区的建设年限以及小区房屋均价等特征数据为例,这些特征数据可以用于提高后续预测用户在未来一个月是否购买某类产品的概率。
可以理解的是,在纵向联邦学习过程中,涉及多个特征提供方,每一个特征提供方均对应有工业特征数据,各特征提供方所提供的工业特征数据不完全相同且差异较大。
需要说明的是,各特征提供方相互之间无信息共享。
继续以目标工业特征数据为用户家庭所在小区的建设年限以及小区房屋均价等特征数据为例,用户家庭所在小区的建设年限等相关特征数据可能由企业A提供,小区房屋均价等特征数据可能由企业B提供,且企业A和企业B之间不存在信息共享。
在该步骤中,目标特征提供方可以为多个特征提供方中的任一提供方,目标工业特征数据即为目标特征提供方所提供的工业特征数据。
步骤120、对目标工业特征数据进行加密处理获取初始中间结果,并将初始中间结果发送至隐私计算系统进行加密处理,获取隐私计算系统输出的目标中间结果;
在该步骤中,如图2所示,隐私计算系统包括参与加法分享的第一服务器P0、第二服务器P1以及用于辅助计算的辅助计算服务器P2。
目标中间结果为特征提供方提供给标签提供方的特征数据。
初始中间结果为特征提供方对自身对应的工业特征数据进行加密处理以及对齐处理后所得到的数据,该初始中间结果可与其他特征提供方所提供的初始中间结果保持数据对齐,从而便于标签提供方基于多个特征提供方所提供的初始中间结果进行联邦训练,以生成各工业特征数据对应的标签。
目标中间结果为对初始中间结果进行基于加法分享的加密处理后所生成的新的中间结果。
在本申请中,通过对初始中间结果进行基于加法分享的加密处理,以对初始中间结果进行二次加密,防止基于初始中间结果反推得到目标工业特征数据,从而导致目标工业特征数据的隐私泄露,有利于提高数据安全。
发明人在研发过程中发现,相关技术中存在通过密码学方法或安全多方计算协议逐层进行安全计算的方法对拆分模型进行加密的方法,但该方法需要进行多次加解密运算,且秘密分享的方法计算激活函数也有较大开销,不适用于复杂的非线性激活函数,如Sigmoid或Tanh等,应用范围有限且成本较高。
而在本申请中,通过引入第三方辅助计算服务器以辅助第一服务器和第二服务器进行基于加法分享的隐私计算,无需涉及多次加解密运算,且所得到的目标中间结果不易被破解,具有较高的隐私安全性。
在一些实施例中,隐私计算系统可以包括顺次连接的基础算子层、可微分算符层和模型层,将初始中间结果发送至隐私计算系统进行加密处理,获取隐私计算系统输出的目标中间结果,可以包括:
将初始中间结果输入至基础算子层,获取基础算子层输出的加密数据;
将加密数据输入至可微分算符层进行算符格式包装,获取可微分算符层输出的微分数据;
将微分数据输入至模型层,获取模型层输出的目标中间结果。
在该实施例中,基础算子层包括参与加法分享的第一服务器、第二服务器以及用于辅助计算的辅助计算服务器。
其中,基础算子层可提供基础算子。
基础算子包括机器学习所需要的基本的算子,如加减乘除;以及本地的一些张量计算,如变换形状和广播形状等。
可微分算符层用于对加密数据进行可微分处理,以将基础算子包装成为可微分算子,从而实现反向传播所需的自动微分机制。
可微分算符层的算符的数据结构表示为:[输入节点列表(InNodes),输出节点(OutNode),运算函数(f)]。
在正常进行前向传播时,可微分算符通过运算函数,得到输出节点的值,即:
OutNode.value=f(InNodes[0].value,InNodes[1].value,…)。
定义一个可微分算符时,需要指定该算符的gradient函数。其中,gradient函数的返回值也是一个算符的列表,其输入节点列表包含了原有算符的输入节点列表,以及从输出传回的梯度。
需要说明的是,在一些实施例中,可微分算子的数量为多个,各可微分算子可以任意组合,形成组合的可微分算子。
在一些实施例中,将加密数据输入至可微分算符层进行算符格式包装,获取可微分算符层输出的微分数据,可以包括:
确定多个加密数据之间的依赖关系;
基于依赖关系依次调用运算函数处理多个加密数据,获取微分数据。
在该实施例中,算符具有组合功能。
例如对于三个输入:x1,x2,x3,可以先通过加法算符得到h1=x1+x2,再通过乘法算符得到y=h1×x3=(x1+x2)×x3。
组合算符的计算与普通算符相同,通过调用运算函数得到输出节点的结果。
对于组合算符,在运算函数中,需要按照依赖关系,依次调用被组合函数的运算函数。
其中,组合算符的梯度可以通过链式法则产生。
模型层用于将可微分算子包装成常用的神经网络层,如线性层、激活函数层以及损失函数层,以实现方便的模型构建。
需要说明的是,模型本身也是一个算符,其输入节点包括模型的输入以及模型的参数。
在进行反向传播的情况下,不计算在输入上的梯度,只计算在参数上的梯度,然后按照该梯度进行梯度下降等优化。
根据本申请实施例提供的数据处理方法,通过设置基础算子层对初始中间结果进行加密处理得到加密数据,并通过可微分算符层将加密数据包装成可微分算子,然后通过模型层对可微分算子进行处理以包装成适用于模型的算子,使得最终加密得到的目标中间结果能够直接用于纵向联邦学习模型中,能够基于底层基础算子提供方便隐私建模的高层自动微分模型接口,且能够提供完善的可开发、可拓展以及可自动微分的高级机器学习建模接口,具有较高的普适性和使用便捷性。
在一些实施例中,将初始中间结果输入至基础算子层,获取基础算子层输出的加密数据,可以包括:对初始中间结果进行线性加密处理以及非线性逐元素函数计算,获取加密数据。
在该实施例中,基础算子层可以包括线性计算层和非线性逐元素计算层。
其中,基础算子层包括机器学习所需要的基本的算子。
线性计算层包括加减乘等基本运算的算子。线性计算层用于进行线性加密处理,线性加密处理包括基于加减法以及乘法等的处理,如图2所示。
非线性逐元素计算层用于进行非线性逐元素函数计算,其中非线性逐元素函数计算的计算流程如图3所示。
非线性逐元素计算层面向于神经网络中的大量的非线性计算。可以理解的是,大部分非线性计算都是逐元素的,也就是对张量中的每个元素单独计算,比如ReLU、Sigmoid以及Tanh等激活函数。
需要说明的是,在本申请中,输入至非线性逐元素计算层进行计算的函数的输入均为已经在P0,P1之间加法分享的数值。
在一些实施例中,基础算子层还可以包括数据类型转换层。
数据类型转换层用于进行浮点数与整数之间的转换。
需要说明的是,在进行基础算子层计算时,需采用整数类型的数据进行计算以保证安全(即加法分享的元素必须是整数有限域上Z2L的元素);而在实际应用过程中(如机器学习中)用到的数据,则为浮点类型的数据。
下面对浮点数与整数之间的转换方式进行说明。
例如,令p为小数位数,则浮点数xfloat对应的定点数可以为:
其中,xfixed为浮点数xfloat转化得到的整数;p为浮点数xfloat的小数位数,x为浮点数xfloat;L为定点数xfixed的最大位数。
在一些实施例中,L可以设置为64,以符合大多数程序能够支持64位整数运算的性质。
上述转换方法可以表示范围在[-2L-1-p,2L-1-p)之间的浮点数。
在一些实施例中,可以通过如下公式将定点数xfixed转换为浮点数:
其中,xfloat为定点数xfixed转化得到的浮点数;p为浮点数xfloat的小数位数;L为定点数xfixed的最大位数,x为定点数xfixed。
根据本申请实施例提供的数据处理方法,通过对初始中间结果进行线性加密处理以及非线性逐元素函数计算以获取加密数据,能够从多个维度对初始中间结果进行隐私加密,加密效果好,能够显著提高中间结果的隐私性,从而提高纵向联邦学习过程中特征提供方的数据安全性和隐私性,且无需进行多次加解密,操作简单便捷。
下面对线性计算以及非线性计算的具体实现过程进行说明。
在一些实施例中,对初始中间结果进行线性加密处理以及非线性逐元素函数计算可以包括:
在初始中间结果的数据类型与目标数据类型不一致的情况下,将初始中间结果输入至数据类型转换层,获取数据类型转换层输出的目标数据类型的第一数据;
将第一数据输入至线性计算层,获取线性计算层输出的第一加密数据。
将第一加密数据输入至非线性逐元素计算层,获取非线性逐元素计算层输出的目标加密数据。
在该实施例中,目标数据类型为进行加法分享时所需的数据类型,即为整数类型。
在初始中间结果为浮点数的情况下,则将初始中间结果输入至数据类型转换层,由数据类型转换层将其转换为整数,获取第一数据;然后将第一数据输入至线性计算层,由线性计算层进行加法分享生成第一加密数据;最后将第一加密数据输入至非线性逐元素计算层,进行函数计算,生成目标第一加密数据。
在初始中间结果为整数的情况下,则可以直接将初始中间结果确定为第一数据并将第一数据输入至线性计算层,由线性计算层进行加法分享生成第一加密数据;最后将第一加密数据输入至非线性逐元素计算层,进行函数计算,生成目标第一加密数据。
在一些实施例中,将第一数据输入至线性计算层,获取线性计算层输出的第一加密数据可以,包括:
对第一数据进行拆分处理,获取至少两个子序列;
基于至少两个子序列,确定第一加密数据。
在该实施例中,至少两个子序列为对第一数据进行基于加法或减法的拆分得到的。
下面对基于加减法的分享进行具体说明。
在实际执行过程中,如图2所示,可设置参与加法分享的第一服务器P0、第二服务器P1以及用于辅助计算的辅助计算服务器P2来执行加法分享。隐私计算中的所有变量都被加法分享在P0,P1之间。
例如,对于整数变量x∈Z2,P0持有了[x]0,P1持有了[x]1,且[x]0+[x]1=x。其中,x即为第一数据,[x]0和[x]1分别为两个子序列。
同时,对于任意x,[x]0,[x]1都是均匀分布在
当需要重建一个加法分享的值的时候,只需要P0和P1将各自的加法分享值相加即可。
又如,继续参考图2,令x,y在P0,P1之间加法分享,若要计算z=x+y的加法分享,则可以通过P0计算得到[z]=[x]0+[y]0,通过P1计算得到[z]1=[x]1+[y]1,从而得到z的加法分享。
减法采用类似的方法进行计算,在此不作赘述。
在对第一数据进行加法分享得到至少两个子序列后,可进一步对至少两个子序列进行乘法分享,以获取第一加密数据。
下面对基于乘法的分享进行具体说明。
在一些实施例中,基于至少两个子序列,确定第一加密数据,可以包括:
获取目标乘法三元组;
基于目标乘法三元组和至少两个子序列,确定第一加密数据。
在该实施例中,目标乘法三元组可以为用户自定义的乘法三元组,例如,可以将乘法三元组定义为:u,v,w,用于表征满足w=uv的三个数,且这三个数都是
在本实施例中,三元组u,v,w可以由辅助计算服务器P2随机产生,然后加法分享给P0和P1。
继续参考图2,假设P0和P1已经加法分享了三元组里的三个数,其中,P0分享的为[x]0-[u]0,P1分享的为[x]1-[u]1,且[x]0+[x]1=x,[u]0+[u]1=u,现在要对他们加法分享的x,y做乘法,流程如下:
P0和P1将各自分享的[x]0-[u]0和[x]1-[u]1分别发送给对方,使得双方都拥有x-u的值。
基于类似的方式,P1和P2还可以获取y-v的值。
P0计算(x-u)(y-v)+[u]0(y-v)+(x-u)[v]0+[w]0=[z]0;
P1计算[u]1(y-v)+(x-u)[v]1+[w]1=[z]1。
于是有:
[z]
(x-u)v+uv=xy
即P0和P1获取了z=xy的分享值(即第一加密数据),计算完成。
在一些实施例中,在P0直接拥有x,P1直接拥有y的情况下,可以直接假定为:
[x]0=x,[x]1=0,[y]0=0,[y]1=y,
然后基于上述类似的方法将其转换为秘密分享的乘法,获取第一加密数据。
可以理解的是,在秘密分享的乘法中,x-u和y-v是被公开的,且u,v是未知的,则该公开的数值不会泄露关于x,y的信息。
同时,[w]0,[w]1是均匀分布的,则最终的结果(即第一加密数据)对于一方来说也是完全随机的。
在一些实施例中,上述基于乘法的分享还可以应用于向量以及矩阵的情景,若要进行x,y的乘法,则需要三元组的u,v分别和x,y的形状相同,具体乘法分享步骤与上文类似,在此不作赘述。
在一些实施例中,在进行乘法的两个数x,y中有一个数是公开的情况下,如y是公开的情况下,则只需要P0计算[z]0=[x0]0y,P1计算[z]1=[x]1y即可得到最终的第一加密数据,依然不会泄露关于x的信息。
根据本申请实施例提供的数据处理方法,通过对第一数据进行基于加减法以及乘法的秘密分享生成第一加密数据,可以避免第一数据泄露,且显著降低基于第一加密数据反推得到第一数据的概率,从而提高了中间结果的安全性和隐私性。
如图3所示,在一些实施例中,将第一加密数据输入至非线性逐元素计算层,获取非线性逐元素计算层输出的目标加密数据,可以包括:
获取第一加密数据对应的第一分享值和第二分享值;
采用目标随机排列分别处理第一分享值和第二分享值,获取第三分享值和第四分享值;
基于第三分享值和第四分享值,确定逐元素函数结果;
拆分逐元素函数结果,获取第五分享值和第六分享值;
分别对第五分享值和第六分享值进行逆排列,确定目标加密数据。
在该实施例中,所要计算的函数的输入均为已经在P0,P1之间加法分享的数值,即为第一加密数据。
第一分享值和第二分享值即为参与加法分享的第一服务器P0,和第二服务器P1分享的值。
目标随机排列可以为系统随机生成的排列方式。
可以理解的是,排列的数目的增长为指数级,例如对于10个元素的排列,可随机生成300多万种可能的排列方式,目标随机排列可以为其中的任意一种方式。
非线性逐元素函数计算如图4所示。
例如,如图3所示,在实际执行过程中,对于向量
继续参考图3,P2可以基于获取到的第三分享值和第四分享值确定π[xfloat],然后计算出对应的逐元素函数结果f(π([xfloat])=π(f[xfloat]),再将其转化为定点数并加法分享地发送给P0和P1。
在P0接收到P2分享的第五分享值,P1接收到P2分享的第六分享值之后,P0和P1再通过逆排列获取所需的结果f(xfloat)fixed,即目标加密数据。
根据本申请实施例提供的数据处理方法,通过随机排列的方式分别处理第一分享值和第二分享值,能够提高所生成的分享值的随机性,从而进一步降低从生成的目标加密数据中反推得到原始有效信息的可能,显著提高中间结果的隐私性和安全性,从而提高拆分学习的数据隐私。
在一些实施例中,采用目标随机排列分别处理第一分享值和第二分享值,获取第三分享值和第四分享值,可以包括:
获取目标随机翻转向量;
基于目标随机排列和目标随机翻转向量,分别处理第一分享值和第二分享值,获取第三分享值和第四分享值。
在该实施例中,目标随机翻转向量用于对特定的非线性逐元素函数进行计算,以避免经目标随机排列进行排列后的数据暴露元素的分布(如暴露神经网络的最后一层标签的分布),从而进一步保护隐私。
目标随机翻转向量为任意随机翻转向量。
例如,继续以上述实施例为例,对于向量
然后分别将π([σ⊙x]0),π([σ⊙x]1)发送给P2。
其中,σ⊙x=(σ1x1,...,σnxn)。
P2基于第三分享值和第四分享值即可获取到π[σ⊙xfloat],然后计算出π[σ⊙xfloat]对应的逐元素函数结果f(π[σ⊙xfloat])=π(f[σ⊙xfloat]),再将其转化为定点数并加法分享地发送给P0和P1。
P0和P1再通过逆排列获取所需的结果f(σ⊙xfloat)fixed。
在一些实施例中,对于某些特定的逐元素函数,有f(-x)=g(f(x)),如对于Sigmoid函数,有Sigmoid(-x)-1-Sigmoid(x);对于Tanh,有Tanh(-x)=-Tanh(x)。
在该情况下,P0和P1可以从f(σ⊙x)进一步算出f(x)的值。
根据本申请实施例提供的数据处理方法,通过在随机排列的基础上采用随机翻转的方法对第一分享值和第二分享值进行处理,能够在提高随机性的同时,避免暴露随机排列中各元素的分布,从而进一步保护数据隐私,防止中间结果泄露,显著提高了纵向联邦学习过程中的特征提供方的数据安全性和隐私性。
在一些实施例中,基础算子层还可以包括通讯模块。
在该实施例中,在P0,P1,P2三方同时运行的情况下,通讯模块同时进行异步的通讯监听。
其中,通讯协议可以采用TCP协议。
消息发送的格式为:[消息头,消息体]。
各方的监听服务器收到消息后,将消息按照发送方、消息头进行归类,然后按照时间顺序保存在消息缓存区中。
各方需要接收消息的时候,从监听服务器的消息缓存区中获取消息。
若当前消息缓存区对应的发送方和消息头队列为空,则等待直到其中有消息为止。
在一些实施例中,基础算子层还可以包括其他本地运算模块。
在该实施例中,其他本地运算模块用于进行张量形状的变换、求和以及求平均等计算。
如,将一个10×100的张量X转化为20×50的形状,只需要P0将[X]0转化为20×50的形状,P1将[X]1转化为20×50的形状即可。
以上运算可以在本地执行完成,不需要额外的通讯开销。
步骤130、基于目标中间结果,获取目标中间结果对应的目标标签。
在该步骤中,目标标签为基于目标中间结果预测得到的,与该目标中间结果匹配的标签。
该目标标签可近似作为目标工业特征数据所对应的标签。
在特征提供方生成目标中间结果后,将该目标中间结果发送至标签提供方,以供标签提供方基于该目标中间结果,预测得到与该目标中间结果对应的目标标签。
标签提供方接收到所有的特征提供方的加密的输出值(即目标中间结果)之后,目标中间结果进行预测,得到目标标签。
继续以工业特征数据为用户家庭所在小区的建设年限以及小区房屋均价等特征数据为例,企业A对A地区的用户家庭所在小区的建设年限等工业特征数据进行加密处理获取初始中间结果,并对初始中间结果进行基于加法分享的加密处理,获取目标中间结果,并将中间结果发送给标签提供方(如企业C);同时,企业B对A地区的小区房屋均价年限等工业特征数据进行加密处理获取初始中间结果,并对初始中间结果进行基于加法分享的加密处理,获取目标中间结果,并将中间结果发送给标签提供方(如企业C)。
企业C在接收到企业A发送的目标中间结果以及企业B发送的目标中间结果后,基于所接收到的全部目标中间结果进行综合预测,以得到对应的标签,如A地区的用户是否有意愿购买A地区的产品(如房子)等。
根据本申请实施例提供的数据处理方法,通过在纵向联邦学习过程中,由特征提供方对初始中间结果进行基于加法分享的加密处理获取目标中间结果,并将目标中间结果发送至标签提供方以基于所述目标中间结果预测得到目标标签,无需多次加解密即可对中间结果进行高效加密,加密效果好,能够显著降低基于中间结果反推得到目标工业特征数据的风险,从而降低中间结果泄露而导致特征提供方的数据隐私泄露的风险,有效提高纵向联邦学习过程中的数据安全性。
在实际执行过程中,可以基于神经网络模型来执行步骤120和步骤130。
其中,该神经网络模型可以为纵向联邦学习模型,该纵向联邦学习模型包括多个第一子模型和第二子模型,各第一子模型的输出端与第二子模型的输入端连接。
每一个第一子模型对应一个特征提供方,第二子模型对应于标签提供方。
其中,各第一子模型之间无数据共享。
第一子模型的输入数据为与该第一子模型对应的特征提供方所提供的工业特征数据,第一子模型的输出数据为目标结果数据。
第二子模型的输入数据为各特征提供方所提供的目标结果数据,第二子模型的输出数据为基于所输入的目标结果数据预测得到的目标标签。
例如,典型的双层拆分学习模型可以表示为如下的函数:
其中,
在拆分学习场景下,Mt,Mh1,...,Mhn以及其对应的输入:模型标签y、不同的输入特征x1,...,xn往往被不同的参与方所拥有。
在本申请中,将拥有尾部模型Mt和标签y的参与方称为标签提供方,将拥有头部模型Mhi和其对应输入xi的参与方称为第i个特征提供方。
下面以纵向联邦学习模型为例,对本申请的具体实现方式进行说明。
在一些实施例中,对目标工业特征数据进行加密处理获取初始中间结果,并将初始中间结果发送至隐私计算系统进行加密处理,获取隐私计算系统输出的目标中间结果;基于目标中间结果,获取目标中间结果对应的目标标签,可以包括:
将目标工业特征数据输入至多个第一子模型中目标第一子模型,获取目标第一子模型输出的目标中间结果;
将目标中间结果输入至第二子模型,获取第二子模型输出的目标标签;
其中,目标第一子模型为基于与目标第一子模型对应的样本工业特征数据和与样本工业特征数据对应的样本中间结果训练得到的,第二子模型为基于样本中间结果和与样本工业特征数据对应的样本标签训练得到的,样本中间结果为经隐私计算系统进行加密处理的数据。
在该实施例中,目标第一子模型为提供目标特征数据的目标特征提供方所对应的第一子模型。
目标第一子模型由目标特征提供方进行单独训练所得到的模型,该目标第一子模型的训练样本包括该目标特征提供方所提供的样本工业特征数据。
样本中间结果为在联邦学习中,特征提供方对样本工业特征数据进行常规加密处理所获取的初始加密数据进行进一步的加密处理所得到的数据。
第二子模型为由标签提供方训练所到的模型,该第二子模型的训练样本包括与该第二子模型关联的多个第一子模型所对应的特征提供方提供的样本中间结果,以及与各特征提供方对应的样本工业特征数据所对应的样本标签。
需要说明的是,在训练过程中,各第一子模型单独训练,并分别将第一子模型输出的样本中间结果发送至第二子模型,以训练第二子模型。
根据本申请实施例提供的数据处理方法,通过在纵向联邦学习过程中,对拆分模型进行优化,使得拆分模型中的头部模型输出的中间结果为进行二次加密后的结果,降低通过中间结果反推得到特征数据而导致数据隐私泄露的风险,显著提高纵向联邦学习过程中的数据安全性,且具有较好的数据处理效果和较强的学习能力。
下面对联邦学习模型的训练过程进行说明。
在一些实施例中,样本中间结果可以通过如下方式确定:
对样本工业特征数据进行加密处理,获取第一中间结果;
将第一中间结果发送至隐私计算系统进行加密处理,获取隐私计算系统输出的样本中间结果。
在该实施例中,第一中间结果为联邦学习中,对样本工业特征数据进行常规加密处理所获取的中间结果。
隐私计算系统的具体加密方式已在上文实施例中进行说明,在此不作赘述。
例如,第i个特征提供方首先获取自己对应的样本工业特征数据Xi,将其输入优化前的第一子模型Mhi,以得到第一中间结果Hi;其中,优化前的第一子模型Mhi仅用于对样本工业特征数据进行基础的加密处理,该优化前的第一子模型Mhi为以样本工业特征数据为样本,以与该样本工业特征数据对应的样本初始中间结果为样本标签训练得到,该样本初始中间结果为未进行加密处理的中间结果。
在得到第一中间结果Hi之后,对第一中间结果Hi进行基于加法分享的加密处理,得到样本中间结果H″i,并将样本中间结果H″i发送给标签提供方。
本申请实施例提供的数据处理方法,执行主体可以为数据处理装置。本申请实施例中以数据处理装置执行数据处理方法为例,说明本申请实施例提供的数据处理装置。
本申请实施例还提供一种数据处理装置。
如图4所示,该数据处理装置包括:第一处理模块410、第二处理模块420和第三处理模块430。
第一处理模块410,用于获取目标工业特征数据;
第二处理模块420,用于对目标工业特征数据进行加密处理获取初始中间结果,并将初始中间结果发送至隐私计算系统进行加密处理,获取隐私计算系统输出的目标中间结果;
第三处理模块430,用于基于目标中间结果,获取目标中间结果对应的目标标签;
其中,隐私计算系统包括参与加法分享的第一服务器、第二服务器以及用于辅助计算的辅助计算服务器。
根据本申请实施例提供的数据处理装置,通过在纵向联邦学习过程中,由特征提供方对初始中间结果进行基于加法分享的加密处理获取目标中间结果,并将目标中间结果发送至标签提供方以基于所述目标中间结果预测得到目标标签,无需多次加解密即可对中间结果进行高效加密,加密效果好,能够显著降低基于中间结果反推得到目标工业特征数据的风险,从而降低中间结果泄露而导致特征提供方的数据隐私泄露的风险,有效提高纵向联邦学习过程中的数据安全性。
在一些实施例中,隐私计算系统可以包括顺次连接的基础算子层、可微分算符层和模型层,第二处理模块420还可以用于:
将初始中间结果输入至基础算子层,获取基础算子层输出的加密数据;
将加密数据输入至可微分算符层进行算符格式包装,获取可微分算符层输出的微分数据;
将微分数据输入至模型层,获取模型层输出的目标中间结果。
在一些实施例中,第二处理模块420还可以用于:
对初始中间结果进行线性加密处理以及非线性逐元素函数计算,获取加密数据。
在一些实施例中,第二处理模块420还可以用于:
确定多个加密数据之间的依赖关系;
基于依赖关系依次调用运算函数处理多个加密数据,获取微分数据。
在一些实施例中,该装置还可以包括:
第四处理模块,用于将目标工业特征数据输入至多个第一子模型中目标第一子模型,获取目标第一子模型输出的目标中间结果;
第五处理模块,用于将目标中间结果输入至第二子模型,获取第二子模型输出的目标标签;
其中,目标第一子模型为基于与目标第一子模型对应的样本工业特征数据和与样本工业特征数据对应的样本中间结果训练得到的,第二子模型为基于样本中间结果和与样本工业特征数据对应的样本标签训练得到的,样本中间结果为经隐私计算系统进行加密处理的数据。
在一些实施例中,该装置还可以包括:
第六处理模块,用于对样本工业特征数据进行加密处理,获取第一中间结果;
第七处理模块,用于将第一中间结果发送至隐私计算系统进行加密处理,获取隐私计算系统输出的样本中间结果。
本申请实施例中的数据处理装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personalcomputer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的数据处理装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为IOS操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的数据处理装置能够实现图1至图3的方法实施例实现的各个过程,为避免重复,这里不再赘述。
在一些实施例中,如图5所示,本申请实施例还提供一种电子设备500,包括处理器501、存储器502及存储在存储器502上并可在处理器501上运行的计算机程序,该程序被处理器501执行时实现上述数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
本申请实施例还提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述数据处理方法。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本申请的实施例,本领域的普通技术人员可以理解:在不脱离本申请的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本申请的范围由权利要求及其等同物限定。
- 话音数据处理方法以及支持该话音数据处理方法的电子装置
- 一种数据处理方法、装置和用于数据处理的装置
- 一种数据处理方法、装置和用于数据处理的装置
- 一种数据处理方法、装置和用于数据处理的装置
- 一种数据处理方法、装置和用于数据处理的装置
- 数据处理设备、数据处理方法、程序转换处理设备和程序转换处理方法、程序转换处理设备、数据处理设备、程序转换处理方法和数据处理方法、数据处理设备、数据处理方法、程序分析处理设备和程序分析处理方法、数据处理设备、历史保存设备、数据处理方法和程序、以及编译处理设备
- 图像数据处理方法、用于图像数据处理方法的程序、记录有用于图像数据处理方法的程序的记录介质和图像数据处理装置