业务模型的联合训练方法及装置转让专利
申请号 : CN202010759898.6
文献号 : CN111738361B
文献日 : 2020-12-08
发明人 : 周亚顺 , 李漓春 , 张祺智
申请人 : 支付宝(杭州)信息技术有限公司
摘要 :
权利要求 :
1.一种业务模型的联合训练方法,用于多个业务方联合训练业务模型,所述业务模型用于对业务数据进行处理,得到相应的业务处理结果,所述多个业务方包括第一方、第二方和第三方,针对用于训练所述业务模型的多个训练样本,所述第一方持有包含部分或全部业务特征的特征数据,以及当前模型参数的第一份额,所述第二方至少持有各个业务标签,以及当前模型参数的第二份额,第三方为辅助训练业务模型的可信第三方;所述方法由第一方执行,包括:按照与所述第二方协商一致的随机数生成方式和当前随机数种子,生成预定数量的随机数,从而获取与各个随机数分别对应的各个训练样本的特征数据;
与第二方秘密共享当前模型参数和当前获取的训练样本对应的特征数据的融合结果,得到融合结果的第一份额;
将所述融合结果的第一份额发送至第三方,以供第三方基于所述融合结果的第一份额,以及从第二方获取的所述融合结果的第二份额,确定基于激励函数处理所述融合结果的激励结果;
基于从第三方获取的激励结果的第一份额,与第二方秘密共享当前模型参数的梯度和海森矩阵,得到所述当前模型参数的梯度的第一份额、所述海森矩阵的第一份额;
利用从第三方接收的辅助矩阵的第一份额,与第二方秘密共享所述海森矩阵与所述辅助矩阵的乘积,得到所述乘积的第一份额,其中,所述辅助矩阵由第三方生成,并随机拆分得到辅助矩阵的第一份额和所述辅助矩阵的第二份额,所述辅助矩阵的第二份额由第三方发送至第二方;
根据所述乘积的第一份额,与第二方公开所述海森矩阵与所述辅助矩阵的乘积的合并结果,或所述合并结果的逆矩阵;
按照所述合并结果的逆矩阵,以及所述辅助矩阵的第一份额,确定所述海森矩阵的逆矩阵的第一份额;
基于所述模型参数的梯度的第一份额、所述海森矩阵的逆矩阵的第一份额,与第二方秘密共享更新的模型参数,以获得更新的模型参数的第一份额。
2.根据权利要求1所述的方法,其中,所述基于所述融合结果的第一份额,与第二方秘密共享当前模型参数的梯度和海森矩阵,得到所述当前模型参数的梯度的第一份额、所述海森矩阵的第一份额包括:基于所述融合结果的第一份额,得到所述融合结果的激励结果的第一份额,其中,所述激励结果的第一份额通过与第二方秘密共享所述激励结果而得到;
根据所述激励结果的第一份额,与第二方秘密共享所述当前模型参数的梯度以及海森矩阵,得到所述当前模型参数的梯度的第一份额以及所述海森矩阵的第一份额。
3.根据权利要求2所述的方法,其中,所述基于所述融合结果的第一份额,得到所述融合结果的激励结果的第一份额包括:向第三方发送所述融合结果的第一份额,以供第三方根据所述融合结果的第一份额,以及从第二方获取的所述融合结果的第二份额,确定基于激励函数处理所述融合结果得到的激励结果,并将所述激励结果拆分得到第一份额和第二份额;
从第三方接收所述激励结果的第一份额。
4.根据权利要求2所述的方法,其中,所述基于所述融合结果的第一份额,得到所述融合结果的激励结果的第一份额包括:基于所述激励结果的第一份额,与第二方以多项式或混淆电路的方式秘密共享所述激励结果,得到所述激励结果的第一份额。
5.根据权利要求2-4中任一所述的方法,其中,所述当前模型参数的梯度为,所述特征数据对应的特征矩阵的转置矩阵,与所述激励结果和当前训练样本的标签数据的差的乘积;
所述根据所述激励结果的第一份额,与第二方秘密共享所述当前模型参数的梯度以及海森矩阵,得到所述当前模型参数的梯度的第一份额以及所述海森矩阵的第一份额包括:利用所述激励结果的第一份额,确定所述激励结果与标签数据的差的第一份额;
根据所述激励结果与标签数据的差的第一份额,以及所述特征数据的第一份额,与第二方秘密共享所述当前模型参数的梯度,得到所述当前模型参数的梯度的第一份额。
6.根据权利要求5所述的方法,其中,所述标签数据由第一方或第二方中的一方持有:
在第二方持有所述标签数据,且第二方以秘密共享方式向第一方分享所述标签数据的第一份额的情况下,所述激励结果与标签数据的差的第一份额基于所述标签数据的第一份额与所述激励结果的第一份额的差确定;
在第二方持有所述标签数据,且不与第一方共享的情况下,所述激励结果与标签数据的差的第一份额为所述激励结果的第一份额;
在所述第一方持有所述标签数据,且不与第二方共享的情况下,所述激励结果与标签数据的差的第一份额,根据所述激励结果的第一份额与所述标签数据的差确定。
7.根据权利要求2所述的方法,其中,所述海森矩阵根据所述特征数据对应的特征矩阵的转置矩阵,与梯度矩阵以及所述特征数据对应的特征矩阵的乘积确定,其中,所述梯度矩阵为:所述激励结果,与预定向量、所述激励结果的差向量按位相乘得到的积向量中,各个维度的数值作为对角元素确定的对角矩阵。
8.根据权利要求1所述的方法,其中,所述根据所述乘积的第一份额,与第二方公开所述海森矩阵与所述辅助矩阵的乘积的合并结果,或所述合并结果的逆矩阵包括以下至少一项:向第二方发送所述乘积的第一份额,由第二方根据所持有的所述乘积的第二份额,确定所述合并结果或所述合并结果的逆矩阵,并反馈给第一方;
接收第二方发送的所述乘积的第二份额,根据所持有的所述乘积的第一份额,确定所述合并结果或所述合并结果的逆矩阵,并反馈给第二方;
向第三方发送所述乘积的第一份额,由第三方根据所述乘积的第一份额,以及从第二方接收的所述乘积的第二份额,确定所述合并结果或所述合并结果的逆矩阵,并分别反馈给第一方和第二方。
9.根据权利要求1所述的方法,其中,所述按照所述合并结果的逆矩阵,以及所述辅助矩阵的第一份额,确定所述海森矩阵的逆矩阵的第一份额包括:将所述辅助矩阵的第一份额与所述合并结果的逆矩阵的乘积作为所述海森矩阵的逆矩阵的第一份额。
10.根据权利要求1所述的方法,其中,更新后的模型参数为,更新前的当前模型参数,与海森矩阵的逆矩阵和当前模型参数的梯度的乘积之差。
11.一种业务模型的联合训练方法,用于多个业务方联合训练业务模型,所述业务模型用于对业务数据进行处理,得到相应的业务处理结果,所述多个业务方包括第一方、第二方和第三方,第一方和第二方联合持有用于训练所述业务模型的多个训练样本,第三方为辅助训练业务模型的可信第三方;所述方法由第三方执行,包括:生成辅助矩阵;
将所述辅助矩阵随机拆分为第一份额和第二份额;
向第一方发送所述辅助矩阵的第一份额,以及向第二方发送所述辅助矩阵的第二份额,以供第一方和第二方:根据所述辅助矩阵的第一份额和所述辅助矩阵的第二份额,秘密共享海森矩阵与所述辅助矩阵的乘积,其中,所述海森矩阵基于第一方和第二方秘密共享当前模型参数和当前获取的训练样本对应的特征数据的融合结果,经由第三方基于激励函数处理得到的融合结果,并以秘密共享方式向第一方、第二方分别分享的激励结果的第一份额、第二份额确定,并以秘密共享方式存储于第一方和第二方,第一方和第二方按照协商一致的随机数生成方式和当前随机数种子,生成预定数量的随机数,从而各自获取与各个随机数分别对应的各个训练样本的样本数据;相互公开所述海森矩阵与所述辅助矩阵的乘积的合并结果,或所述合并结果的逆矩阵;基于所述合并结果的逆矩阵,秘密共享所述海森矩阵的逆矩阵;根据秘密共享的模型参数的梯度、秘密共享的所述海森矩阵的逆矩阵,秘密共享更新的模型参数。
12.根据权利要求11所述的方法,其中,所述方法还包括:
分别从第一方、第二方接收当前模型参数和当前训练样本对应的特征数据的融合结果的第一份额、第二份额;
根据所述融合结果的第一份额、第二份额,确定所述融合结果;
通过预定的激励函数处理所述融合结果,得到激励结果;
将所述激励结果随机拆分为第一份额、第二份额,并分别发送给第一方、第二方,以供第一方和第二方根据所述激励结果的第一份额、第二份额秘密共享当前模型参数的梯度和海森矩阵。
13.一种业务模型的联合训练装置,用于多个业务方联合训练业务模型,所述业务模型用于对业务数据进行处理,得到相应的业务处理结果,所述多个业务方包括第一方、第二方和第三方,针对用于训练所述业务模型的多个训练样本,所述第一方持有包含部分或全部业务特征的特征数据,以及当前模型参数的第一份额,所述第二方至少持有各个业务标签,以及当前模型参数的第二份额,第三方为辅助训练业务模型的可信第三方;所述装置设于第一方,包括:第一安全计算单元,配置为按照与所述第二方协商一致的随机数生成方式和当前随机数种子,生成预定数量的随机数,从而获取与各个随机数分别对应的各个训练样本的特征数据;以及与第二方秘密共享当前模型参数和当前获取的训练样本对应的特征数据的融合结果,得到融合结果的第一份额;
第二安全计算单元,配置为基于从第三方获取的激励结果的第一份额,与第二方秘密共享当前模型参数的梯度和海森矩阵,得到所述当前模型参数的梯度的第一份额、所述海森矩阵的第一份额,其中,所述激励结果为,第三方基于从第一方获取的所述融合结果的第一份额,以及从第二方获取的所述融合结果的第二份额,通过激励函数处理所述融合结果得到;
第三安全计算单元,配置为利用从第三方接收的辅助矩阵的第一份额,与第二方秘密共享所述海森矩阵与所述辅助矩阵的乘积,得到所述乘积的第一份额,其中,所述辅助矩阵由第三方生成,并随机拆分得到辅助矩阵的第一份额和所述辅助矩阵的第二份额,所述辅助矩阵的第二份额由第三方发送至第二方;
公开单元,配置为基于所述乘积的第一份额,与第二方公开所述海森矩阵与所述辅助矩阵的乘积的合并结果,或所述合并结果的逆矩阵;
确定单元,配置为按照所述合并结果的逆矩阵,以及所述辅助矩阵的第一份额,确定所述海森矩阵的逆矩阵的第一份额;
更新单元,配置为基于所述模型参数的梯度的第一份额、所述海森矩阵的逆矩阵的第一份额,与第二方秘密共享更新的模型参数,以获得更新的模型参数的第一份额。
14.一种业务模型的联合训练装置,用于多个业务方联合训练业务模型,所述业务模型用于对业务数据进行处理,得到相应的业务处理结果,所述多个业务方包括第一方、第二方和第三方,第一方和第二方联合持有用于训练所述业务模型的多个训练样本,第三方为辅助训练业务模型的可信第三方;所述装置设于第三方,包括:生成单元,配置为生成辅助矩阵;
拆分单元,配置为将所述辅助矩阵随机拆分为第一份额和第二份额;
通信单元,配置为向第一方发送所述辅助矩阵的第一份额,以及向第二方发送所述辅助矩阵的第二份额,以供第一方和第二方:根据所述辅助矩阵的第一份额和所述辅助矩阵的第二份额,秘密共享海森矩阵与所述辅助矩阵的乘积,其中,所述海森矩阵基于第一方和第二方秘密共享当前模型参数和当前获取的训练样本对应的特征数据的融合结果,经由第三方基于激励函数处理得到的融合结果,并以秘密共享方式向第一方、第二方分别分享的激励结果的第一份额、第二份额确定,并以秘密共享方式存储于第一方和第二方,第一方和第二方按照协商一致的随机数生成方式和当前随机数种子,生成预定数量的随机数,从而各自获取与各个随机数分别对应的各个训练样本的样本数据;相互公开所述海森矩阵与所述辅助矩阵的乘积的合并结果,或所述合并结果的逆矩阵;基于所述合并结果的逆矩阵,秘密共享所述海森矩阵的逆矩阵;根据秘密共享的模型参数的梯度、秘密共享的所述海森矩阵的逆矩阵,秘密共享更新的模型参数。
15.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-12中任一项的所述的方法。
16.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-12中任一项所述的方法。
说明书 :
业务模型的联合训练方法及装置
技术领域
背景技术
处理业务数据。此时,用于对数据处理模型进行训练的数据可以是分散在合作建模的各方
的。因此,如何在模型训练的过程中基于对建模各方的数据隐私的保护,提供更有效的模型
训练方式,是当前亟需解决的技术问题。
发明内容
务方包括第一方、第二方和第三方,第一方和第二方联合持有用于训练所述业务模型的多
个训练样本,第三方为辅助训练业务模型的可信第三方;所述方法由第一方执行,包括:与
第二方秘密共享当前模型参数和当前训练样本对应的特征数据的融合结果,得到融合结果
的第一份额;基于所述融合结果的第一份额,与第二方秘密共享当前模型参数的梯度和海
森矩阵,得到所述当前模型参数的梯度的第一份额、所述海森矩阵的第一份额;利用从第三
方接收的辅助矩阵的第一份额,与第二方秘密共享所述海森矩阵与所述辅助矩阵的乘积,
得到所述乘积的第一份额,其中,所述辅助矩阵由第三方生成,并随机拆分得到辅助矩阵的
第一份额和所述辅助矩阵的第二份额,所述辅助矩阵的第二份额由第三方发送至第二方;
根据所述乘积的第一份额,与第二方公开所述海森矩阵与所述辅助矩阵的乘积的合并结
果,或所述合并结果的逆矩阵;按照所述合并结果的逆矩阵,以及所述辅助矩阵的第一份
额,确定所述海森矩阵的逆矩阵的第一份额;基于所述模型参数的梯度的第一份额、所述海
森矩阵的逆矩阵的第一份额,与第二方秘密共享更新的模型参数,以获得更新的模型参数
的第一份额。
第一份额包括:基于所述融合结果的第一份额,得到所述融合结果的激励结果的第一份额,
其中,所述激励结果的第一份额由与第二方秘密共享所述激励结果而得到;根据所述激励
结果的第一份额,与第二方秘密共享所述当前模型参数的梯度以及海森矩阵,得到所述当
前模型参数的梯度的第一份额以及所述海森矩阵的第一份额。
结果的第一份额,以及从第二方获取的所述融合结果的第二份额,确定基于激励函数处理
所述融合结果得到的激励结果,并将所述激励结果拆分得到第一份额和第二份额;从第三
方接收所述激励结果的第一份额。
定所述当前训练样本的以下中的一项:特征数据,标签数据,部分特征数据和标签数据。
式秘密共享所述激励结果,得到所述激励结果的第一份额。
果的第一份额,与第二方秘密共享所述当前模型参数的梯度以及海森矩阵,得到所述当前
模型参数的梯度的第一份额以及所述海森矩阵的第一份额包括:利用所述激励结果的第一
份额,确定所述激励结果与标签数据的差的第一份额;根据所述激励结果与标签数据的差
的第一份额,以及所述特征数据的第一份额,与第二方秘密共享所述当前模型参数的梯度,
得到所述当前模型参数的梯度的第一份额。
下,所述激励结果与标签数据的差的第一份额基于所述标签数据的第一份额与所述激励结
果的第一份额的差确定;在第二方持有所述标签数据,且不与第一方共享的情况下,所述激
励结果与标签数据的差的第一份额为所述激励结果的第一份额;在所述第一方持有所述标
签数据,且不与第二方共享的情况下,所述激励结果与标签数据的差的第一份额,根据所述
激励结果的第一份额与所述标签数据的差确定。
励结果,与预定向量、所述激励结果的差向量按位相乘得到的积向量中,各个维度的数值作
为对角元素确定的对角矩阵。
发送所述乘积的第一份额,由第二方根据所持有的所述乘积的第二份额,确定所述合并结
果或所述合并结果的逆矩阵,并反馈给第一方;接收第二方发送的所述乘积的第二份额,根
据所持有的所述乘积的第一份额,确定所述合并结果或所述合并结果的逆矩阵,并反馈给
第二方;向第三方发送所述乘积的第一份额,由第三方根据所述乘积的第一份额,以及从第
二方接收的所述乘积的第二份额,确定所述合并结果或所述合并结果的逆矩阵,并分别反
馈给第一方和第二方。
结果的逆矩阵的乘积作为所述海森矩阵的逆矩阵的第一份额。
务方包括第一方、第二方和第三方,第一方和第二方联合持有用于训练所述业务模型的多
个训练样本,第三方为辅助训练业务模型的可信第三方;所述方法由第三方执行,包括:生
成辅助矩阵;将所述辅助矩阵随机拆分为第一份额和第二份额;向第一方发送所述辅助矩
阵的第一份额,以及向第二方发送所述辅助矩阵的第二份额,以供第一方和第二方:根据所
述辅助矩阵的第一份额和所述辅助矩阵的第二份额,秘密共享海森矩阵与所述辅助矩阵的
乘积,其中,所述海森矩阵以秘密共享方式存储于第一方和第二方;相互公开所述海森矩阵
与所述辅助矩阵的乘积的合并结果,或所述合并结果的逆矩阵;基于所述合并结果的逆矩
阵,秘密共享所述海森矩阵的逆矩阵;根据秘密共享的模型参数的梯度、秘密共享的所述海
森矩阵的逆矩阵,秘密共享更新的模型参数。
份额、第二份额,确定所述融合结果;通过预定的激励函数处理所述融合结果,得到激励结
果;将所述激励结果随机拆分为第一份额、第二份额,并分别发送给第一方、第二方,以供第
一方和第二方根据所述激励结果的第一份额、第二份额秘密共享当前模型参数的梯度和海
森矩阵。
方包括第一方、第二方和第三方,第一方和第二方联合持有用于训练所述业务模型的多个
训练样本,第三方为辅助训练业务模型的可信第三方;所述装置设于第一方,包括:
的第一份额;
矩阵由第三方生成,并随机拆分得到辅助矩阵的第一份额和所述辅助矩阵的第二份额,所
述辅助矩阵的第二份额由第三方发送至第二方;
方包括第一方、第二方和第三方,第一方和第二方联合持有用于训练所述业务模型的多个
训练样本,第三方为辅助训练业务模型的可信第三方;所述装置设于第三方,包括:
矩阵的第二份额,秘密共享海森矩阵与所述辅助矩阵的乘积,其中,所述海森矩阵以秘密共
享方式存储于第一方和第二方;相互公开所述海森矩阵与所述辅助矩阵的乘积的合并结
果,或所述合并结果的逆矩阵;基于所述合并结果的逆矩阵,秘密共享所述海森矩阵的逆矩
阵;根据秘密共享的模型参数的梯度、秘密共享的所述海森矩阵的逆矩阵,秘密共享更新的
模型参数。
的方法。
三方生成的辅助矩阵,由联合训练业务模型的各个业务方以秘密共享方式来确定海森矩阵
与辅助矩阵的乘积,并各自得到相应份额。在各自得到相应份额之后,由于各方不知道其他
方初始的辅助矩阵份额以及海森矩阵的相应份额,因此,即使将海森矩阵与辅助矩阵的乘
积的各个份额合并在一起,得到海森矩阵与辅助矩阵的乘积结果,也不会泄露各个业务方
的隐私数据。以上过程充分利用这种原理,使各个业务方分别得到海森矩阵与辅助矩阵的
乘积结果的逆矩阵,进而确定海森矩阵的逆矩阵的相应份额。根据这种特定的业务方交互
方式设置,使得多方安全计算中,利用牛顿法调整模型参数具有可行性,从而提高业务模型
的联合训练效率。
附图说明
领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的
附图。
具体实施方式
算。
方可以获得该秘密信息的一份份额。单个数据方无法恢复该秘密信息。只有将多个数据方
拥有的份额融合才能恢复该秘密信息。例如,数据方P1持有数据x1,数据方P2持有数据x2。采
用秘密共享方法,数据方P1和数据方P2可以进行协作计算,得到秘密信息。数据方P1在计算
后可以获得秘密信息y= 的份额y1,数据方P2在计算后可以获得秘密信息y的份额y2。
据处理模型的表达能力。激励函数可以包括但不限于Sigmoid函数、Tanh函数和ReLU函数等
中的一项。数据处理模型例如是逻辑回归模型、神经网络模型等。输出层的激励函数可以将
处理结果映射为输出结果,例如预定维度的向量。
限于对数损失函数(Logarithmic Loss Function)、平方损失函数(Square Loss)等。
法、牛顿法、拟牛顿法等等。
过程,直至求得满足精度的近似极小值。牛顿法的速度相当快,而且能高度逼近最优值。牛
顿法具有较快的收敛速度,然而,在多方安全计算中,联合训练业务模型的多个业务方无法
获取其他业务方的隐私数据,对牛顿法的实施造成困扰。本说明书意在提供一种可以通过
多方安全计算实现牛顿法的一种方案。
(如图1中的业务方3)。这里说的可信第三方是指,在训练过程中可以不提供训练样本的样
本数据(如特征数据及标签数据),而作为辅助业务方进行复杂运算,从而降低多方安全计
算共同训练业务模型的复杂度。值得说明的是,在确保各方数据隐私的情况下,并不排除第
三方也持有部分训练数据的可能。
业务数据,例如一部分特征数据,全部特征数据或标签数据,等等,也可以针对部分训练样
本提供相应的全部业务数据。
则可以有诸如下表1和表2所示的情形:
样本1 x11,x12,x13,x14 x15,x16,x1n y1
~
样本2 x21,x22,x23,x24 x25,x26,~x2n y2
…… …… …… ……
样本1 x11,x12,x13,x14 x15,x16,x1(n-2) x1(n-1) ,x1n,y1
~
样本2 x21,x22,x23,x24 x25,x26,~x2(n-2) x2(n-1) ,x2n,y2
…… …… …… ……
据的情形,表2示出了一些业务方持有训练样本的特征数据,一些业务方既持有训练样本的
标签数据,又持有特征数据的情形。实践中,业务模型例如还可以是多任务模型,单个训练
样本可以对应多个标签,则多个标签还可以分布于多个业务方,即由多个业务方持有。
下提供牛顿法的优化方案。
为相应业务方参与交互的设备。
为黑塞矩阵、海瑟矩阵或海塞矩阵等,例如是损失函数对模型参数w的二阶偏导数所构成的
方阵,则有:
归算法中的损失函数为方差,等等。根据梯度的定义可以推导出:dw=XT·(y-Y)。海森矩阵
T
是损失函数的二阶导数,即,在梯度dw的基础上,进一步对模型参数w的偏导数,得到H=X ×
M×X,其中,M为diag(y*(1-y)),diag(x)表示由m维向量x中的各个维度的数值按照对角线
依次排列转换成的m×m维对角矩阵。其中,dw和H的具体推导过程在此不再赘述,可参考现
有技术的记载,例如https://blog.csdn.net/weixin_45424997/article/details/
104950049等中的记录。
H-1的计算变得复杂,甚至可能导致无法通过牛顿法进行业务模型的联合训练。
为第一方和第二方,海森矩阵以共享的方式,由第一方持有第一份额H1,第二方持有第二份
额H2,且H1+H2=H。
矩阵的相应份额进行处理后,即使对方获取了处理结果,也不会泄露海森矩阵的相应份额
的数据隐私。假设第一方持有海森矩阵的第一份额H1,第二方持有海森矩阵的第二份额H2,
则两方联合计算H×R:
方持有计算结果的第二份额:
-1
分别向另一方分享自身持有的计算结果的相应份额,并分别计算HR和(HR),也可以由一方
向另一方发送自身持有的计算结果的相应份额并由另一方计算HR和(HR)-1,将(HR)-1结果
反馈给自身。
份额,辅助矩阵可以由可信第三方生成,并拆分成两个份额后分别发送给第一方和第二方。
从而,可以在不泄露数据隐私的情况下,完成海森矩阵的逆的运算,提供多方联合训练业务
模型过程中,通过牛顿法达到更快的收敛速度的可能性。值得说明的是,当联合训练业务模
型有更多时,可以将HR拆分为更复杂的运算,并最终由各个业务方获取HR,并通过秘密共享
的联合运算获得(H)-1的相应份额。
数据方,也即为合作安全构建业务模型的双方。业务模型的联合训练样本可以分散在第一
方和第二方,第三方为可信第三方(TTP,Trusted Third Party)。例如,第一方可以持有训
练样本的特征数据X,第二方可以持有训练样本的标签数据Y,或者第一方持有标签数据Y、
第二方持有特征数据X,或者第一方持有特征数据X1、第二方持有特征数据X(2 其中X=(X1,
X2))和标签数据Y,等等。
用户是否有房等特征数据,第二方可以为征信机构,持有用户的信用标签,用于表示用户是
否为失信者。在合作安全建模的过程中,出于保护数据隐私的考虑,第一方大数据公司不能
够向第二方征信机构泄漏自身持有的特征数据,第二方征信机构也不能够向第一方大数据
公司泄漏自身持有的数据。
杂度。图2的具体示例中,业务模型或业务模型的单层输出例如为预定激励函数的激励结果
y=sigmoid(Xw)。其中,Xw是特征数据和模型参数的乘积形式的融合结果。第一方和第二方
可以通过秘密共享的矩阵乘法联合确定Xw,并秘密共享乘法结果,每一方存储Xw的一部分
份额,例如第一方存储(Xw)1,第二方存储(Xw)2。y=sigmoid(Xw)可以由可信第三方确定,也可以由第一方和第二方基于秘密共享方式通过多项式、混淆电路等联合确定,本说明书对
此不做限定。总之,第一方和第二方可以分别得到激励结果y的第一份额y1、第二份额y2。
和第二份额R2,分别发送给第一方、第二方。第一方和第二方通过秘密共享的矩阵乘法确定
HR,并分别得到HR的第一份额、第二份额。之后,第一方、第二方利用HR的第一份额、第二份
额,公开其合并结果HR,或直接公开合并结果的逆矩阵(HR)-1。这里说的公开是指,第一方和
第二方都可以获取HR或(HR)-1。这里突破了多方安全计算的秘密共享。这是因为,经过秘密
共享的运算后,第一方和第二方即使知道了对方相互的HR份额,由于相互不知道对方的R份
额,因此也无法知晓对方的H份额,从而不会泄露隐私数据。从而,第一方和第二方可以分别
根据辅助矩阵R的第一份额R1和第二份额R2,确定海默矩阵H的逆矩阵H-1的第一份额(H-1)1、
第二份额(H-1)2。之后,第一方和第二方可以根据各自持有的模型参数的梯度、海森矩阵的
-1
相应份额,以秘密共享方式更新w= w-H dw。假设更新前的模型参数为w0,更新后为w1,则w1=
w0-H-1dw。例如在第一方得到w1的第一份额(w1)1、在第一方得到w1的第二份额(w1)2。
的联合训练数据可以包括业务特征和标签。业务特征可以从业务数据中提取,一条业务特
征数据可以对应一个标签。业务数据可以是文字、图片、视频、动画、语音等中的至少一项。
其中,本说明书实施例可以适用于业务方的多种数据持有组合,例如,一方持有部分业务特
征和标签,另一方持有另一部分业务特征,或者多方分别持有业务特征,另一方持有业务标
签,等等。为了描述方便,可以将业务方持有的业务特征称为特征数据(包含业务特征的数
据),将业务方持有的业务标签称为标签数据(包含业务标签的数据)。
行数据处理,以降低运算复杂度,或提供必要的数据。在隐私保护要求较高的场景下,第三
方可以不获取其他方的数据隐私。可以理解的是,第一方和第二方在在业务模型的联合训
练过程中具有同等地位,这里第一方、第二方仅为区别描述,均不对业务方表示特指。
额。
化模型参数可以由第一方或第二方中的任意一方生成,并随机拆分后发送给另一方,也可
以由可信第三方生成,并随机拆分后分发给第一方和第二方,还可以由第一方和第二方分
别随机生成相应的份额,本说明书对此不做限定。在业务模型训练的后续流程中,当前模型
参数可以为前一流程中更新后的模型参数。在该步骤301中,假设当前模型参数已经按照第
一份额、第二份额的秘密共享形式存储于第一方、第二方。
顺序对应一致的训练样本。例如,都依次取出分别与用户“张三”、“李四”、“王五”对应的训练样本。
定按照身份证号码由小到大的顺序排列、按照年龄由小到大排列等等,以使得描述相同用
户的训练样本对应的特征数据和标签数据在第一方和第二方中的位置一致。
前随机数种子,生成相同的随机数序列,从而第一方和第二方分别获取相同的随机数序列
指向的、按顺序具有相同标识的样本数据。这里的标识例如可以是训练样本在样本数据集
中的排列序号、用户的身份证号等,一个标识可以唯一对应到一条训练样本。例如上述标识
为训练样本的排列序号,则当第一方和第二方都生成随机数5时,均可以查找到第5个训练
样本对应的相关数据。通常,按照随机数种子生成的第一个随机数由随机数种子确定,后续
生成的各个随机数中单个随机数由前一个随机数确定。在复杂的随机数生成方法中,后续
生成的各个随机数中单个随机数还可以由前一个随机数和动态变化的生成参数(如每生成
一个随机数,某个生成参数加1,以避免生成重复的随机数)一起确定。这样,在随机数生成
方式一致的情况下,可以保证第一方和第二方生成一致的随机数序列,并各自确定当前轮
次中使用的训练样本的特征数据和/或标签数据。
份额可以由前文描述的任一种方法确定。第一方可以将特征数据X拆分成第一份额X1和第
二份额X2,并将第二份额X2分享给第二方,则有:
定,并且每一方仅能获取乘积融合结果的一部分份额,在此不再赘述。
二方基于秘密共享的乘法,可以融合第一特征数据、第二特征数据和模型参数,得到融合结
果。例如,第一方持有第一特征数据X1,第二方持有第二特征数据X2和第一标签数据Y。第一
方持有模型参数w的第一份额w01,第二方持有模型参数w的第一份额w02。第一方可以将第一
特征数据X1拆分成第一份额X11和第二份额X12,并向第二方分享X12,第二方可以将第二特征
数据X2拆分成第一份额X21和第二份额X22,并向第一方分享X22。
的第二份额为X2类似的原理,可以由第一方和第二方将特征数据和模型参数进行融合,得
到融合结果。
四方,第四方还持有通过与第一方、第二方一致的方式获取的第四特征数据(与第四方对
应),第一方、第二方和第四方可以相互通过秘密共享的方式进行交互,从而融合模型参数
和特征数据,得到融合结果。此时,该融合结果由第一方持有第一份额,第二方持有第二份
额,第四方持有第四份额。
最终结果都由第一方和第二方共享持有,并且不能相互获知对方持有的内容。这里,当前模
型参数的梯度的第一份额由第一方持有,第二份额由第二方持有;海森矩阵的第一份额由
第一方持有,第二份额由第二方持有。
出结果例如和Xw正相关。在逻辑回归业务模型中,业务模型的输出结果例如可以由激活函
数确定,如y=sigmoid(Xw)等。可以理解,在多层回归模型中,业务模型的输出结果还可以由
多个Xw或sigmoid(Xw)累积而成。在本说明书中作为示例仅考虑简单的单层情况。
输出结果直接可以由第一方、第二方分别持有相应份额。如第一方持有输出结果的第一份
额y1,第一方持有输出结果的第一份额y2。在输出结果由激励函数等运算确定的情况下,第
一方和第二方还可以通过诸如多项式、混淆电路之类的方式秘密共享上述输出结果,在此
不再赘述。
sigmoid(Xw)的运算较复杂。此时,还可以由可信第三方分别从第一方、第二方获取(Xw)1和
(Xw)2,并独立计算sigmoid(Xw)=(Xw)1+(Xw)2,以及输出结果 。第三方在得到输
出结果后,可以将输出结果拆分为多个份额,以分别发送给各个参与联合训练业务模型的
业务方,例如向第一方发送输出结果的第一份额y1,向第二方发送输出结果的第二份额y2。
可选地,为了确保第一方、第二方等的数据不泄露给第三方,第一方和第二方在步骤301中
获取训练数据的方式可以为生成随机数的方式。
二方持有第二份额y2。在参与业务模型训练的业务方还包括其他业务方的情况下,y还可以
被拆分成更多份额,在此不再赘述。当y是向量时,y1和y2可以是与y维度相同的2个向量。
方持有第二份额(dw)2。在参与联合训练业务模型的业务方仅包括第一方和第二方的情况
下,dw= (dw)1+ (dw)2。
二方分别持有部分份额,在秘密共享的安全计算中,也需要第一方和第二方联合安全计算
dw的相应份额。例如,梯度运算结果例如可以是:
由第二方持有,Y1和Y2可以由第二方对第一标签数据Y拆分确定。Y1可以是第二方提供给第
一方的第一标签数据的第一份额,Y2可以是第二方保留的标签数据的第二份额。反之,如果
初始的标签数据Y由第一方持有,Y1可以是第一方保留的标签数据的第一份额,Y2可以是第
一方提供给第二方的标签数据的第二份额。
矩阵和另一方的矩阵相乘得到,可以分别通过秘密共享的矩阵乘法计算得到。且乘法计算
结果在第一方和第二方分别具有一定份额,而双方都无法获知对方所持有的份额。最终,第
一方可以持有模型参数梯度的第一份额(dw)1,第二方可以持有模型参数梯度的第二份额
(dw)2,如:
完整的模型参数梯度。当然,安全计算过程中,这些份额时不能真的组合在一起的,而是以
秘密共享方式由各个业务方持有,在此不再赘述。
据,Y2=Y。则第一方确定的模型参数梯度的第一份额为:
份额y2,则第一方和第二方通过秘密共享方式确定y*(1-y)。本领域技术人员容易理解,y为
向量时,这里的“1”可以表示维数与y一致,各个维度均为1的向量。这里,y与(1-y)的*乘法
可以是对应项相乘。
方式确定,并分别持有相应份额。例如秘密共享的乘法运算结果第一方持有[-y1*y2]1和[
y2*(1-y1)]1,第二方持有[-y1*y2]2和[ y2*(1-y1)]2。由于这里的乘法是对应项相乘,每一组对应项都可以采用秘密共享乘法进行。
分别持有相应份额。
额和第二份额,在此不再赘述。
H2,在此不再赘述。
可以理解的是,假设当前批次的训练样本数量为n,特征总数量为t, M可以为n×n维的矩
阵,X可以为n×t维的矩阵,XT可以为t×n维的矩阵,H为t×t维的矩阵。为了得到RH,R的列
数可以为t。第三方可以随机生成R,并随机拆分第一份额R1和第二份额R2。其中,R1和R2是维
度与R一致,和为R的矩阵。
步骤301和步骤302之间,与步骤301或步骤302同时进行,等等。因此,图3的时序图中,步骤
303和步骤304通过虚线描述。
一份额H1与辅助矩阵的第一份额R1,第二方持有海森矩阵的第二份额H2与辅助矩阵的第二
份额R2,海森矩阵与辅助矩阵的乘积H×R可以通过秘密共享的矩阵乘法确定,原理见前文,
在此不再赘述。最终的到的乘积可以由第一方持有第一份额(HR)1,第二方持有第二份额
(HR)2。
二方都可以持有海森矩阵与辅助矩阵的乘积结果的逆矩阵。
后,反馈给当前方,以供第一方和第二方都持有海森矩阵与辅助矩阵的乘积结果的逆矩阵
(HR)-1。
(HR)-1。
阵(HR)-1后分别反馈给第一方和第二方。
随机生成,第一方和第二方均不知晓对方原始持有的辅助矩阵份额,在经过复杂的秘密共
享乘法计算后,即使得到乘积的合并结果,也无法反推对方持有的其他数据,因此,可以有
效保护数据隐私。
助矩阵的乘积合并结果的逆矩阵,以及辅助矩阵的第一份额,确定海森矩阵的逆矩阵的第
一份额。另一方面,在子步骤3072中,第二方可以根据海森矩阵与辅助矩阵的乘积合并结果
的逆矩阵,以及辅助矩阵的第二份额,确定海森矩阵的逆矩阵的第二份额。海森矩阵的逆矩
阵的第一份额例如可以为(H-1)1= R1×(H×R)-1,海森矩阵的逆矩阵的第二份额例如为(H
-1)2= R2×(H×R)-1。如图3所示,子步骤3071和子步骤3072分别可以由第一方和第二方独立
完成。
参数的第一份额,第二方获得更新后的模型参数的第二份额。
第二方持有(w0)2、(H )2、(dw)2的情况下,有:
多层非线性运算结构的情况下,第一方和第二方还可以根据步骤301中获取的第一标签数
据,反向逐层确定各层的模型参数梯度,从而逐层更新模型参数,在此不再赘述。
方,或者由第三方设置并拆分后分发给第一方、第二方等。但在当前训练伦次不是第一轮次
的情况下,当前模型参数可以就是前一轮次更新后的模型参数,更新后的模型参数的各个
份额不合并在一起的情况下,任一个业务方都无法确定更新后的模型参数。
敛,这里,由于参与联合训练业务模型的单个业务方无法确定模型参数是否收敛,预定条件
例如可以是训练数据被遍历、迭代鳞次达到预定数量,等等。
方分别获取各份特征数据的一个随机份额,从而组合成训练数据的全部特征数据的相应份
额,在此不再赘述。总之,这些持有训练样本的样本数据的多个业务方中,至少包括第一方
和第二方,一方持有特征数据,另一方至少持有标签数据。其中,以上第一方和第二方在模
型训练过程中具有同等地位,因此一些描述可以相互适应。
次的海森矩阵的维度发生变化,则可以由第三方重新生成辅助矩阵,并拆分分享给第一方、
第二方。
的辅助矩阵,由联合训练业务模型的各个业务方以秘密共享方式来确定海森矩阵与辅助矩
阵的乘积,并各自得到相应份额。在各自得到相应份额之后,由于各方不知道其他方初始的
辅助矩阵份额以及海森矩阵的相应份额,因此,即使将海森矩阵与辅助矩阵的乘积的各个
份额合并在一起,得到海森矩阵与辅助矩阵的乘积结果,也不会泄露各个业务方的隐私数
据。以上过程充分利用这种原理,使各个业务方分别得到海森矩阵与辅助矩阵的乘积结果
的逆矩阵,进而确定海森矩阵的逆矩阵的相应份额。根据这种特定的业务方交互方式设置,
使得多方安全计算中,利用牛顿法调整模型参数具有可行性,从而提高业务模型的联合训
练效率。
辅助矩阵的第一份额和辅助矩阵的第二份额,辅助矩阵的第二份额由第三方发送至第二
方;
森矩阵与辅助矩阵的乘积,其中,海森矩阵以秘密共享方式存储于第一方和第二方;相互公
开海森矩阵与辅助矩阵的乘积的合并结果,或合并结果的逆矩阵;基于合并结果的逆矩阵,
秘密共享海森矩阵的逆矩阵;根据秘密共享的模型参数的梯度、秘密共享的海森矩阵的逆
矩阵,秘密共享更新的模型参数。
据进行处理,得到相应的业务处理结果的机器学习模型。多个业务方至少包括第一方、第二
方和第三方,第一方和第二方联合持有用于训练所述业务模型的多个训练样本,第三方为
辅助训练业务模型的可信第三方。图6示出的联合训练装置600可以设于第一方或第二方。
其中,第一方和第二方相互配合,并在业务模型训练过程中具有同等地位,这里以设于第一
方为例进行说明。如图6所示,装置600包括:
成,并随机拆分得到辅助矩阵的第一份额和辅助矩阵的第二份额,辅助矩阵的第二份额由
第三方发送至第二方;
配合的流程,在此不再赘述。
据进行处理,得到相应的业务处理结果的机器学习模型。多个业务方至少包括第一方、第二
方和第三方,第一方和第二方联合持有用于训练所述业务模型的多个训练样本,第三方为
辅助训练业务模型的可信第三方。图7示出的联合训练装置700可以设于第三方。如图7所
示,装置700包括:
秘密共享海森矩阵与辅助矩阵的乘积,其中,海森矩阵以秘密共享方式存储于第一方和第
二方;相互公开海森矩阵与辅助矩阵的乘积的合并结果,或合并结果的逆矩阵;基于合并结
果的逆矩阵,秘密共享海森矩阵的逆矩阵;根据秘密共享的模型参数的梯度、秘密共享的海
森矩阵的逆矩阵,秘密共享更新的模型参数。
这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码
进行传输。
不用于限定本说明书的技术构思的保护范围,凡在本说明书实施例的技术方案的基础之
上,所做的任何修改、等同替换、改进等,均应包括在本说明书的技术构思的保护范围之内。