本发明申请是申请日为2020年05月09日、申请号为202010384203.0、发明名称为“基于隐私保护的业务预测模型训练方法和装置”的发明申请的分案申请。
本说明书一个或多个实施例涉及机器学习技术领域,尤其涉及基于隐私保护的业务预测模型训练方法和装置。
背景技术:
随着计算机技术的发展,数据处理需求越来越大。在机器学习领域,利用模型对业务数据进行预测,基于预测结果进行安全维护、使用推荐等,已经成为非常常见的数据处理方法。为了保证业务数据的安全性和隐私性,与数据相关的计算常常置于可信计算单元中进行。可信计算单元具有的可信执行环境(trustedexecutionenvironment,tee)能够确保数据计算过程的安全性和隐私性。
同时,业务训练预测模型所需要的数据往往会涉及多个平台、多个领域。例如,在基于业务预测模型的商户分类分析场景中,电子支付平台拥有商户的交易流水数据,电子商务平台存储有商户的销售数据,银行机构拥有商户的借贷数据。在进行模型训练时,会联合多方的数据进行。这导致特征数据的数据量越来越大,对模型训练过程的处理要求也越来越高。
因此,希望能有改进的方案,使得在数据量较大时,提高训练业务预测模型的处理效率,同时保证隐私数据的安全性和隐私性。
技术实现要素:
本说明书一个或多个实施例描述了基于隐私保护的业务预测模型训练方法和装置,以在数据量较大时,提高训练业务预测模型的处理效率,同时保证隐私数据的安全性和隐私性。具体的技术方案如下。
第一方面,实施例提供了一种基于隐私保护的训练业务预测模型的方法,通过训练系统中处于可信执行环境下的可信计算单元执行,所述训练系统还包括非可信计算单元;所述方法包括:
获取用于训练所述业务预测模型的训练集和所述业务预测模型的初始模型参数,其中所述训练集包括多个业务样本的样本特征和对应的标签值;
使用加密密钥,将所述初始模型参数同态加密为初始加密模型参数,将所述多个业务样本的样本特征和对应的标签值分别同态加密为多个加密样本和加密标签值;
将所述初始加密模型参数、所述多个加密样本和加密标签值发送至所述非可信计算单元;
执行多轮模型迭代,其中任意一轮模型迭代包括,与所述非可信计算单元进行交互,从所述非可信计算单元中获取本轮更新后的第二加密模型参数,所述第二加密模型参数,至少基于对所述多个加密样本、多个加密标签值和本轮更新前的第一加密模型参数的同态运算确定;
根据所述第二加密模型参数和所述第一加密模型参数的差异,确定模型训练过程是否满足收敛条件,在不满足时进行下一轮模型迭代。
在一种实施方式中,所述业务预测模型属于逻辑回归模型;
所述与所述非可信计算单元进行交互,从所述非可信计算单元中获取本轮更新后的第二加密模型参数的步骤,包括:
接收所述非可信计算单元发送的与每个业务样本对应的加密中间结果;其中,所述加密中间结果根据所述第一加密模型参数分别与每个加密样本的样本特征同态相乘得到;
采用与所述加密密钥对应的解密密钥,对所述多个加密中间结果进行解密,得到多个中间结果,将所述多个中间结果分别代入激活函数,计算得到针对每个业务样本的预测值;
使用所述加密密钥将每个业务样本的预测值同态加密为多个加密预测值,并将其发送至所述非可信计算单元,以使得所述非可信计算单元根据每个业务样本的加密预测值与对应的加密标签值之间的同态差值确定加密损失值,基于所述加密损失值将所述第一加密模型参数更新为所述第二加密模型参数;
接收所述非可信计算单元发送的所述第二加密模型参数。
在一种实施方式中,所述业务预测模型属于线性回归模型;
所述与所述非可信计算单元进行交互,从所述非可信计算单元中获取本轮更新后的第二加密模型参数的步骤,包括:
接收所述非可信计算单元发送的所述第二加密模型参数;其中,所述第二加密模型参数是所述非可信计算单元基于加密损失值对所述第一加密模型参数进行更新得到,所述加密损失值为基于每个业务样本的加密预测值与对应的加密标签值之间的同态差值得到,所述每个业务样本的加密预测值基于将所述第一加密模型参数分别与每个加密样本的样本特征同态相乘得到。
在一种实施方式中,所述任意一轮模型迭代还包括:
使用解密密钥将所述第二加密模型参数解密为第二模型参数,将其作为用于下一轮模型迭代的更新后的第一模型参数,解密密钥与所述加密密钥对应;
使用所述加密密钥,将更新后的第一模型参数同态加密为更新后的第一加密模型参数;
将更新后的所述第一加密模型参数发送给所述非可信计算单元。
在一种实施方式中,所述根据所述第二加密模型参数和所述第一加密模型参数的差异,确定模型训练过程是否满足收敛条件的步骤,包括:
获取由所述非可信计算单元同态计算的所述第二加密模型参数和所述第一加密模型参数的加密差值平方和;
采用与所述加密密钥对应的解密密钥,对所述加密差值平方和进行解密,得到对应的差值平方和,根据所述差值平方和,确定模型训练过程是否满足收敛条件。
在一种实施方式中,所述根据所述第二加密模型参数和所述第一加密模型参数的差异,确定模型训练过程是否满足收敛条件的步骤,包括:
采用与所述加密密钥对应的解密密钥,对所述第二加密模型参数进行解密,得到第二模型参数;
计算所述第二模型参数与第一模型参数的差值平方和,其中所述第一模型参数为所述第一加密模型参数对应的解密值;
根据所述差值平方和,确定模型训练过程是否满足收敛条件。
在一种实施方式中,所述根据所述第二加密模型参数和所述第一加密模型参数的差异,确定模型训练过程是否满足收敛条件的步骤,包括:
同态计算所述第二加密模型参数和所述第一加密模型参数的加密差值平方和;
采用与所述加密密钥对应的解密密钥,对所述加密差值平方和进行解密,得到对应的差值平方和;
根据所述差值平方和,确定模型训练过程是否满足收敛条件。
在一种实施方式中,所述可信计算单元和所述非可信计算单元位于具有可信执行环境的同一计算设备中。
在一种实施方式中,所述可信计算单元位于具有可信执行环境的第一计算设备中,所述非可信计算单元位于第二计算设备中。
在一种实施方式中,所述业务样本为以下业务对象之一:用户、商户、商品、事件;所述业务预测模型用于对业务对象进行分类或回归。
在一种实施方式中,所述任意一轮模型迭代为第一轮模型迭代,所述第一加密模型参数为所述初始加密模型参数。
第二方面,实施例提供了一种基于隐私保护的训练业务预测模型的方法,通过训练系统中的非可信计算单元执行,所述训练系统还包括处于可信执行环境下的可信计算单元执行;所述方法包括:
接收所述可信计算单元发送的初始加密模型参数、所述多个加密样本和对应加密标签值,所述初始加密模型参数、所述多个加密样本和对应的加密标签值,分别基于对所述业务预测模型的初始模型参数、训练集中的多个业务样本的样本特征和对应的标签值进行同态加密得到;
执行多轮模型迭代,其中任意一轮模型迭代包括,与所述可信计算单元进行交互,至少基于对所述多个加密样本、多个加密标签值和本轮更新前的第一加密模型参数的同态运算,确定本轮更新后的第二加密模型参数;
将所述第二加密模型参数发送至所述可信计算单元。
在一种实施方式中,所述业务预测模型属于逻辑回归模型;
所述与所述可信计算单元进行交互,至少基于对所述多个加密样本、多个加密标签值和本轮更新前的第一加密模型参数的同态运算,确定本轮更新后的第二加密模型参数的步骤,包括:
将本轮更新前的所述第一加密模型参数分别与每个加密样本的样本特征同态相乘,得到与每个业务样本对应的加密中间结果;
将多个加密中间结果发送至所述可信计算单元;
接收所述可信计算单元发送的与每个业务样本对应的加密预测值;其中,所述加密预测值基于将从所述加密中间结果解密得到的中间结果代入激活函数得到预测值,并对其进行同态加密得到;
根据每个加密预测值与对应的加密标签值之间的同态差值,确定加密损失值;
根据所述加密损失值,将第一加密模型参数更新为第二加密模型参数。
在一种实施方式中,所述业务预测模型属于线性回归模型;所述与所述可信计算单元进行交互,至少基于对所述多个加密样本、多个加密标签值和本轮更新前的第一加密模型参数的同态运算,确定本轮更新后的第二加密模型参数的步骤,包括:
将本轮更新前的所述第一加密模型参数分别与每个加密样本的样本特征同态相乘,得到与每个业务样本对应的加密预测值;
根据每个加密预测值与对应的加密标签值之间的同态差值,确定加密损失值;
根据所述加密损失值,将第一加密模型参数更新为第二加密模型参数。
在一种实施方式中,所述任意一轮模型迭代还包括:
接收所述可信计算单元发送的第一加密模型参数,所述第一加密模型参数是对第一模型参数同态加密后得到,所述第一模型参数是将上一轮更新后的第二加密模型解密后得到的第二模型参数。
第三方面,实施例提供了一种基于隐私保护的训练业务预测模型的装置,部署在训练系统中处于可信执行环境下的可信计算单元中,所述训练系统还包括非可信计算单元;所述装置包括:
第一获取模块,配置为获取用于训练所述业务预测模型的训练集和所述业务预测模型的初始模型参数,其中所述训练集包括多个业务样本的样本特征和对应的标签值;
第一加密模块,配置为使用加密密钥,将所述初始模型参数同态加密为初始加密模型参数,将所述多个业务样本的样本特征和对应的标签值分别同态加密为多个加密样本和加密标签值;
第一发送模块,配置为将所述初始加密模型参数、所述多个加密样本和加密标签值发送至所述非可信计算单元;
第一迭代模块,配置为执行多轮模型迭代,其中任意一轮模型迭代包括,与所述非可信计算单元进行交互,从所述非可信计算单元中获取本轮更新后的第二加密模型参数,所述第二加密模型参数,至少基于对所述多个加密样本、多个加密标签值和本轮更新前的第一加密模型参数的同态运算确定;
第一确定模块,配置为根据所述第二加密模型参数和所述第一加密模型参数的差异,确定模型训练过程是否满足收敛条件,在不满足时进行下一轮模型迭代。
在一种实施方式中,所述业务预测模型属于逻辑回归模型;所述第一迭代模块,具体配置为:
接收所述非可信计算单元发送的与每个业务样本对应的加密中间结果;其中,所述加密中间结果根据所述第一加密模型参数分别与每个加密样本的样本特征同态相乘得到;
采用与所述加密密钥对应的解密密钥,对所述多个加密中间结果进行解密,得到多个中间结果,将所述多个中间结果分别代入激活函数,计算得到针对每个业务样本的预测值;
使用所述加密密钥将每个业务样本的预测值同态加密为多个加密预测值,并将其发送至所述非可信计算单元,以使得所述非可信计算单元根据每个业务样本的加密预测值与对应的加密标签值之间的同态差值确定加密损失值,基于所述加密损失值将所述第一加密模型参数更新为所述第二加密模型参数;
接收所述非可信计算单元发送的所述第二加密模型参数。
在一种实施方式中,所述业务预测模型属于线性回归模型;所述第一迭代模块,具体配置为:
接收所述非可信计算单元发送的所述第二加密模型参数;其中,所述第二加密模型参数是所述非可信计算单元基于加密损失值对所述第一加密模型参数进行更新得到,所述加密损失值为基于每个业务样本的加密预测值与对应的加密标签值之间的同态差值得到,所述每个业务样本的加密预测值基于将所述第一加密模型参数分别与每个加密样本的样本特征同态相乘得到。
在一种实施方式中,所述第一迭代模块,还配置为:
使用解密密钥将所述第二加密模型参数解密为第二模型参数,将其作为用于下一轮模型迭代的更新后的第一模型参数,解密密钥与所述加密密钥对应;
使用所述加密密钥,将更新后的第一模型参数同态加密为更新后的第一加密模型参数;
将更新后的所述第一加密模型参数发送给所述非可信计算单元。
第四方面,实施例提供了一种基于隐私保护的训练业务预测模型的装置,部署在训练系统的非可信计算单元中,所述训练系统还包括处于可信执行环境下的可信计算单元执行;所述装置包括:
第一接收模块,配置为接收所述可信计算单元发送的初始加密模型参数、所述多个加密样本和对应加密标签值,所述初始加密模型参数、所述多个加密样本和对应的加密标签值,分别基于对所述业务预测模型的初始模型参数、训练集中的多个业务样本的样本特征和对应的标签值进行同态加密得到;
第二迭代模块,配置为执行多轮模型迭代,其中任意一轮模型迭代包括,与所述可信计算单元进行交互,至少基于对所述多个加密样本、多个加密标签值和本轮更新前的第一加密模型参数的同态运算,确定本轮更新后的第二加密模型参数;
第二发送模块,配置为将所述第二加密模型参数发送至所述可信计算单元。
在一种实施方式中,所述业务预测模型属于逻辑回归模型;
所述第二迭代模块,具体配置为:
将本轮更新前的所述第一加密模型参数分别与每个加密样本的样本特征同态相乘,得到与每个业务样本对应的加密中间结果;
将多个加密中间结果发送至所述可信计算单元;
接收所述可信计算单元发送的与每个业务样本对应的加密预测值;其中,所述加密预测值基于将从所述加密中间结果解密得到的中间结果代入激活函数得到预测值,并对其进行同态加密得到;
根据每个加密预测值与对应的加密标签值之间的同态差值,确定加密损失值;
根据所述加密损失值,将第一加密模型参数更新为第二加密模型参数。
在一种实施方式中,所述业务预测模型属于线性回归模型;所述第二迭代模块,具体配置为:
将本轮更新前的所述第一加密模型参数分别与每个加密样本的样本特征同态相乘,得到与每个业务样本对应的加密预测值;
根据每个加密预测值与对应的加密标签值之间的同态差值,确定加密损失值;
根据所述加密损失值,将第一加密模型参数更新为第二加密模型参数。
在一种实施方式中,所述第二迭代模块,还配置为:
接收所述可信计算单元发送的第一加密模型参数,所述第一加密模型参数是对第一模型参数同态加密后得到,所述第一模型参数是将上一轮更新后的第二加密模型解密后得到的第二模型参数。
第五方面,实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面和第二方面中任一项所述的方法。
第六方面,实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面和第二方面中任一项所述的方法。
本说明书实施例提供的方法和装置,可以通过训练系统中的可信计算单元和非可信计算单元联合对业务预测模型进行训练。为了确保数据的隐私安全,可信计算单元对模型参数和样本特征等数据进行同态加密,并发送至非可信计算单元。非可信计算单元可以直接对同态加密后的数据进行同态运算,无需解密,因此能够提高数据的处理效率。并且,将同态加密后的数据转移至非可信计算单元进行同态运算,能够在隐私数据的数据量较大时,利用非可信计算单元中的高处理能力,来提高模型训练过程的整体处理效率,同时也保证了隐私数据的安全性和隐私性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2为实施例提供的业务预测模型训练方法的一种交互流程示意图;
图3-1为图2中步骤s240的一种流程示意图;
图3-2为图2中步骤s240的另一种流程示意图;
图4为实施例提供的部署在可信计算单元中的业务预测模型训练装置的一种示意性框图;
图5为实施例提供的部署在非可信计算单元中的业务预测模型训练装置的一种示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
业务预测模型在训练完成之后,可以用于执行一定的业务预测,例如预测图像中的人脸区域,以及预测图像中的行人、车辆、障碍物,或者预测文本的通顺程度等等。
在对业务预测模型进行训练时,可以采用用于训练该业务预测模型的训练集。训练集可以包括多个业务样本的样本特征和对应的标签值。业务样本可以为以下业务对象之一:用户、商户、商品和事件等。业务预测模型用于对业务对象进行分类或回归。对应的,业务预测模型可以属于逻辑回归模型,也可以属于线性回归模型。
业务样本的样本特征属于隐私数据,其可以包括很多种类型。例如,可以包括文本、图像、音频、行为事件、对象数据中的至少一种。行为事件可以包括各种交互事件,例如交易事件、登录事件、浏览事件等等。对象数据可以理解为与实体对象相关的数据,例如,注册用户的数据(例如用户属性、行为等数据)或城市道路数据(例如道路拥堵、道路建设等数据)。
业务样本的样本特征还可以来自于多个数据持有方。例如,在基于业务预测模型的商户分类分析场景中,样本特征可以包括电子支付平台拥有的商户交易流水数据、电子商务平台存储的商户销售数据以及银行机构拥有的商户借贷数据。
在风险控制场景中,样本特征可以包括用户数据。用户可以划分为有风险用户(异常用户)和无风险用户(正常用户),业务预测模型可以利用输入的用户数据,从大量用户中查找出有风险用户。该用户数据是需要保密的隐私数据。
在事件安全性分析场景中,各种行为事件可以划分为异常事件和正常事件。异常事件,即有安全风险的事件,例如黑客攻击(不安全的登录事件),欺诈交易(不安全的交易事件)等。各个行为事件对应的数据可以是需要保密的隐私数据。
以上介绍的样本特征均属于隐私数据,在使用这些样本特征数据时,存在保证数据隐私性和安全性的要求。在基于样本特征对业务预测模型进行训练时,通常可以在可信计算单元中进行。可信计算单元是处于可信执行环境(trustedexecutionenvironment,tee)中的计算单元,又称为tee单元或可信计算节点,可用于执行计算任务。可信计算单元可以实现在实体计算机中,其隔离能力能够防止其他应用程序窥探和篡改可信计算单元的应用程序和数据,保证计算的安全性。可信计算单元可以是可信的计算围圈(enclave),且可以采用软件保护扩展(softwareguardextension,sgx)或信任域(trustzone)等技术来实现。例如,根据sgx技术,通过提供一系列cpu指令码,允许用户代码创建具有高访问权限的私有内存区域而形成计算围圈。其他应用程序,包括操作系统os、bios系统、虚拟机系统等,均不能访问围圈中的数据,也就不能窥探和篡改其中应用程序的状态和数据。在可信计算单元中进行业务预测模型的训练,能够提高样本特征数据的安全性和隐私性。
当样本特征的数据量较大时,可信计算单元的有限内存空间在对大数据量的数据进行处理时效率较低。为了提高模型训练过程的处理效率,同时也保证隐私数据的安全性和隐私性,参见图1所示的实施场景示意图,本说明书实施例提供了一种基于隐私保护的训练业务预测模型的方法,通过训练系统中的可信计算单元10和非可信计算单元20联合进行模型训练。非可信计算单元20可以理解为在可信计算单元10之外的普通计算单元,可以是各种具有计算处理能力的计算机、集群或者其他设备。可信计算单元10对初始模型参数和样本特征、标签值进行同态加密,并将其发送至非可信计算单元20,非可信计算单元20基于对同态加密数据进行同态运算,以及与可信计算单元10的交互过程,而执行多轮模型迭代,将更新后的加密模型参数发送至可信计算单元10,并使其对收敛条件进行判断,当收敛条件不满足时进行下一轮模型迭代。
基于以上内容可见,可信计算单元对模型参数和样本特征等数据进行的同态加密,能够确保数据的隐私安全,并且非可信计算单元可以直接对同态加密后的数据进行同态运算,无需解密,因此能够提高数据的处理效率。并且,将同态加密后的数据转移至非可信计算单元进行同态运算,能够在隐私数据的数据量较大时,利用非可信计算单元中的高处理能力,来提高模型训练过程的整体处理效率,同时也保证了隐私数据的安全性和隐私性。
下面结合图1,详细地对本说明书提供的实施例进行说明。
图2为一种基于隐私保护的训练业务预测模型的方法流程示意图。该方法通过训练系统中的可信计算单元10和非可信计算单元20联合执行。该方法包括以下步骤。
步骤s210,可信计算单元10获取用于训练业务预测模型的训练集和业务预测模型的初始模型参数。其中,该训练集包括多个业务样本的样本特征和对应的标签值。训练集中的多个业务样本和对应的标签值可以从数据持有方中获取,数据持有方可以是一个,也可以是多个。当训练集中的业务样本数量较多时,可以分块获取业务样本的样本特征和对应的标签值。业务预测模型的初始模型参数可以是预设值,也可以是基于其他模型训练得到的模型参数值。
当获取的业务样本和初始模型参数经过了约定密钥加密时,可信计算单元10可以对其进行解密,得到解密后的业务样本和初始模型参数。
步骤s220,可信计算单元10使用加密密钥key1,将初始模型参数同态加密为初始加密模型参数,将多个业务样本的样本特征和对应的标签值分别同态加密为多个加密样本和加密标签值。
其中,业务预测模型的模型参数可以是多个分离的模型参数构成的列矩阵或者行矩阵。初始模型参数可以理解为具有初始取值的模型参数,在后续的模型训练过程中,可以不断地调整模型参数的取值,得到新的模型参数。模型训练的过程,可以理解为调整模型参数取值的过程。在对初始模型参数进行同态加密时,可以分别针对初始模型参数矩阵中的每个元素进行同态加密。
每个业务样本的样本特征可以是多个属性特征构成的列矩阵或行矩阵。在对每个样本特征进行同态加密时,可以分别针对每个样本特征中的每个属性特征进行同态加密。
例如,模型参数可以表示为θt=(θ1θ2…θn),其包括n个分量,n为自然数。在对模型参数进行同态加密时,可以针对θ0、θ1…θn分别进行同态加密,得到e(θt)=(e(θ1)e(θ2)…e(θn))。一个业务样本的样本特征可以表示为x=(x1x2…xn)t,该业务样本包括n个属性特征,在对该业务特征进行加密时,可以针对x0、x1…xn分别进行同态加密,即得到e(x)=(e(x1)e(x2)…e(xn))t。e表示加密后的值。
同态加密是这样一种加密算法,即对明文进行运算后再加密,与加密后对密文进行相应的运算,结果是等价的。例如,用同样的加密密钥pk加密v1和v2得到epk(v1)和epk(v2),如果满足:
那么则认为,该加密算法满足加法同态,其中
步骤s230,可信计算单元10将初始加密模型参数、多个加密样本和加密标签值发送至非可信计算单元20。由于内存空间有限,可信计算单元10可以分块发送多个加密样本和加密标签值,例如,可以每次同态加密1000个加密样本和对应的加密标签值,将其发送至非可信计算单元20。非可信计算单元20在接收到可信计算单元10发送的初始加密模型参数、多个加密样本和加密标签值之后,可以存储所有的加密样本和对应的加密标签值,在后续的模型迭代训练过程中,可信计算单元10可以不再重复发送这部分数据。
由于初始模型参数、样本特征和对应的标签值均是经过同态加密后发送至非可信计算单元20,因此能够保证隐私数据不泄密。
步骤s240,可信计算单元10和非可信计算单元20之间执行多轮模型迭代,其中任意一轮模型迭代包括:可信计算单元10与非可信计算单元20进行交互,非可信计算单元20至少基于对多个加密样本x、多个加密标签值y和本轮更新前的第一加密模型参数e(θ)的同态运算,确定本轮更新后的第二加密模型参数e(θ2),并将第二加密模型参数e(θ2)发送至可信计算单元10。可信计算单元10从非可信计算单元20中获取本轮更新后的第二加密模型参数e(θ2)。
一轮模型迭代,对应于使用训练集中的所有业务样本对业务预测模型进行训练的过程。在每一轮模型迭代中,基于对多个加密样本、多个加密标签值和本轮更新前的第一加密模型参数的同态运算,属于模型训练过程中运算量较高的部分。将这部分转移至非可信计算单元20中进行,能够利用非可信计算单元20具有的较高的计算处理能力来提高处理效率。同时,由于隐私数据是经过同态加密发送至非可信计算单元20的,非可信计算单元20无需对加密样本、加密标签值和本轮更新前的第一加密模型参数进行解密,直接进行同态运算即可,提高了处理效率。
当任意一轮模型迭代为第一轮模型迭代时,第一加密模型参数e(θ)为上述初始加密模型参数。在后续的其他轮模型迭代中,第一加密模型参数e(θ)可以基于上一轮模型迭代结束时得到的第二加密模型参数e(θ2)确定。
步骤s250,根据第二加密模型参数e(θ2)和第一加密模型参数e(θ)的差异,确定模型训练过程是否满足收敛条件,在不满足时进行下一轮模型迭代。
在模型训练过程中,可以逐渐地对模型参数进行修正,以使其接近于最理想取值。在模型训练的初始阶段,在一轮模型迭代中,更新前的模型参数与更新后的模型参数相差可能比较大。随着训练过程的不断进行,对模型参数的修正会越来越小,这使得更新后的模型参数逐渐地接近于更新前的模型参数。因此,收敛条件可以包括:上述差异小于预设差异阈值。
当模型训练过程满足该收敛条件时,认为更新后的模型参数已经足够接近理想值,模型训练过程结束。
针对上述步骤s240,当业务预测模型属于不同类型的回归模型时,其具体的实施方式也不同。下面针对不同的回归模型,分别对该步骤的具体实施方式进行说明。
当业务预测模型属于逻辑回归模型时,逻辑回归模型中用于计算预测值的公式如下(1):
其中,
在业务预测模型针对第i个业务样本xi确定出对应的预测值hθ(xi)时,可以基于该预测值hθ(xi)与标签值yi的差值,确定损失值hθ(xi)-yi,并基于该损失值计算模型参数中每个分量的梯度向量,以下公式(2)为第j个模型参数θj的梯度向量:
其中,
根据梯度向量对模型参数进行更新时,可以根据以下公式(3)进行:
其中,
在本实施例中,针对于业务预测模型属于逻辑回归模型的情况,步骤s240,可信计算单元10与非可信计算单元20进行交互,从非可信计算单元20中获取本轮更新后的第二加密模型参数e(θ2)的步骤,可以按照图3-1所示的流程示意图进行,具体包括步骤s241a~s247a。
步骤s241a,非可信计算单元20,将本轮更新前的第一加密模型参数e(θ)分别与每个加密样本e(x)的样本特征同态相乘,得到与每个业务样本对应的加密中间结果。具体的,当第一加密模型参数e(θ)为列矩阵时,可以将第一加密模型参数e(θ)的转置矩阵与第i个加密样本e(xi)同态相乘,得到以下第i个业务样本对应的中间加密结果:
其中,e(θt)为1*n维的矩阵,e(xi)为n*1维的矩阵。
分别将第一加密模型参数e(θ)的转置矩阵与m个加密样本同态相乘,得到与每个业务样本对应的m个加密中间结果。当业务样本的总数量m很大时,非可信计算单元20可以并发地计算e(θt)*e(xi),进而能够提高处理效率。
步骤s242a,非可信计算单元20将m个加密中间结果发送至可信计算单元10,可信计算单元10接收该m个加密中间结果。
步骤s243a,可信计算单元10采用与上述加密密钥key1对应的解密密钥key2,对m个加密中间结果进行解密,得到m个中间结果,将m个中间结果分别代入激活函数,计算得到针对每个业务样本的预测值。加密中间结果e(θt)*e(xi)被解密后得到中间结果θtxi,可信计算单元10将中间结果θtxi代入激活函数
步骤s244a,可信计算单元10使用加密密钥key1将m个业务样本的预测值同态加密为m个加密预测值。针对m个业务样本的预测值,分别进行同态加密,得到对应的m个加密预测值。
可信计算单元10将第i个业务对象的预测值hθ(xi)同态加密为e(hθ(xi)),可以得到m个加密预测值。
步骤s245a,可信计算单元10将与m个业务样本对应的加密预测值发送至非可信计算单元20,非可信计算单元20接收多个加密预测值。
步骤s246a,非可信计算单元20根据m个加密预测值与对应的加密标签值之间的同态差值,确定m个加密损失值,根据该m个加密损失值,将第一加密模型参数更新为第二加密模型参数。
具体的,可以根据以下公式确定m个加密损失值:e(hθ(xi))-e(yi)。其中,e(yi)为第i个业务样本的加密标签值。
根据该m个加密损失值,采用以下公式计算更新后的第二加密模型参数:
其中,
可信计算单元10可以预先获取超参数并将其同态加密为加密超参数,再将加密超参数发送至非可信计算单元20。可信计算单元10也可以直接将获取的超参数发送至非可信计算单元20。
步骤s247a,非可信计算单元20向可信计算单元10发送更新后的第二加密模型参数,可信计算单元10可以接收该第二加密模型参数。
上述实施例描述了业务预测模型属于逻辑回归模型的情况,下面针对业务预测模型属于线性回归模型的情况进行说明。
当业务预测模型属于线性回归模型时,线性回归模型中用于计算预测值的公式包括:
在业务预测模型针对第i个业务样本xi确定出对应的预测值hθ(xi)时,可以基于该预测值hθ(xi)与标签值yi的差值,确定损失值hθ(xi)-yi,并基于该损失值计算模型参数中每个分量的梯度向量,采用上述公式(2)计算第j个模型参数θj的梯度向量,并根据上述公式(3),基于梯度向量对模型参数进行更新。
在本实施例中,针对于业务预测模型属于线性回归模型的情况,步骤s240,可信计算单元10与非可信计算单元20进行交互,从非可信计算单元20中获取本轮更新后的第二加密模型参数的步骤,可以按照图3-2所示的流程示意图进行,具体包括步骤s241b~s243b。
步骤s241b,非可信计算单元20,将本轮更新前的第一加密模型参数分别与m个加密样本的样本特征同态相乘,得到与m个业务样本对应的加密预测值。
具体的,当第一加密模型参数e(θ)为列矩阵时,可以将第一加密模型参数e(θ)的转置矩阵与第i个加密样本e(xi)同态相乘,得到以下第i个业务对象的加密预测值e(hθ(xi)):
步骤s242b,非可信计算单元20,根据m个加密预测值与对应的加密标签值之间的同态差值,确定m个加密损失值,根据该m加密损失值,将第一加密模型参数更新为第二加密模型参数。本步骤s242b与步骤s246a相同,具体实施方式可以参见对步骤s246a的说明。
步骤s243b,非可信计算单元20向可信计算单元10发送该第二加密模型参数,可信计算单元10接收该第二加密模型参数。
上述实施例描述了业务预测模型属于线性回归模型的情况。从上面的各个实施例可以看出,在非可信计算单元20中,计算处理多针对每个业务样本或者业务预测模型的每个模型参数进行,因此可以很容易地发起大规模的并行计算,并且非可信计算单元的内存环境属于普通内存环境,可以很容易地进行缓存,进而提高处理效率,减少模型训练的时间。
在包含图3-1和图3-2的实施例中,非可信计算单元20确定的本轮模型迭代更新后的第二加密模型参数,可以直接作为下一轮模型迭代中的第一加密模型参数。
在另一种实施方式中,为了提高模型参数的准确性,避免多次同态运算导致的数据失真,在任意一轮模型迭代中,还可以包括以下步骤:
可信计算单元10,使用解密密钥key2将第二加密模型参数解密为第二模型参数,将其作为用于下一轮模型迭代的更新后的第一模型参数,使用加密密钥key1,将更新后的第一模型参数同态加密为更新后的第一加密模型参数,将更新后的第一加密模型参数发送给非可信计算单元20,非可信计算单元20接收可信计算单元10发送的第一加密模型参数,以基于该第一加密模型参数开始下一轮模型迭代。
可信计算单元10拥有解密密钥和加密密钥,可以对第二加密模型参数一次进行解密、加密操作,得到用于下一轮模型迭代的更新后的第一加密模型参数,这能够使得在每轮模型迭代中,第一加密模型参数都是尽可能准确的数据。
上述步骤可以在图2所示实施例的步骤s240中可信计算单元10获取本轮更新后的第二加密模型参数之后执行,也可以在图3-1所示实施例中的步骤s247a之后执行,或者在图3-2所示实施例的步骤s243b之后执行。
下面再回到图2所示实施例中的步骤s250中。在根据第二加密模型参数和第一加密模型参数的差异,确定模型训练过程是否满足收敛条件时,该差异的计算可以在非可信计算单元20中进行,也可以在可信计算单元10中进行。因此,该步骤s250可以包括不同的实施方式。
在一种实施方式中,由非可信计算单元20同态计算第二加密模型参数和第一加密模型参数的加密差值平方和,并将该加密差值平方和发送至可信计算单元10。可信计算单元10接收非可信计算单元20发送的该加密差值平方和,并采用解密密钥key2,对该加密差值平方和进行解密,得到对应的差值平方和,根据该差值平方和,确定模型训练过程是否满足收敛条件。
针对第二加密模型参数中的n个值,以及第一加密模型参数中的n个值,可以采用以下公式,同态计算第二加密模型参数和第一加密模型参数的加密差值平方和e(diff):
其中,
根据该差值平方和,确定模型训练过程是否满足收敛条件时,可以判断该差值平方和是否小于预设阈值,如果小于,则确定模型训练过程满足收敛条件;如果不小于,则确定不满足收敛条件。
在这种实施方式中可以把尽可能多的计算任务转移至非可信计算单元20中进行,能够提高模型训练过程中整体的数据处理效率。
在另一种实施方式中,可信计算单元10在获取到本轮更新后得到第二加密模型参数之后,采用解密密钥key2,对第二加密模型参数进行解密,得到第二模型参数,计算第二模型参数与第一模型参数的差值平方和,根据该差值平方和确定模型训练过程是否满足收敛条件。其中,第一模型参数为第一加密模型参数对应的解密值。
具体的,可以采用以下公式,计算第二模型参数和第一模型参数的差值平方和diff:
其中,
在另一种实施方式中,可信计算单元10同态计算第二加密模型参数和第一加密模型参数的加密差值平方和,采用解密密钥key,对该加密差值平方和进行解密,得到对应的差值平方和,根据该差值平方和,确定模型训练过程是否满足收敛条件。
再回顾一下上述实施例的实施场景。训练系统包括可信计算单元10和非可信计算单元20。在一种实施方式中,可信计算单元10和非可信计算单元20可以位于具有可信执行环境的同一计算设备中。在处于可信执行环境下的计算设备中,一部分内存空间用于进行可信计算,这部分内存空间可以称为可信空间。另一部分存储空间用于进行普通计算,称为非可信空间。该计算设备中的处理器与该可信空间结合所执行的高保密性计算处理,可以对应于可信计算单元10的计算处理。处理器与非可信空间结合所执行的常规计算处理,可以对应于非可信计算单元10的计算处理。
在另一种实施方式中,可信计算单元位于具有可信执行环境的第一计算设备中,非可信计算单元位于第二计算设备中,第一计算设备和第二计算设备为不同的计算设备。第二计算设备可以不具有可信执行环境,也可以具有可信执行环境。当第二计算设备具有可信执行环境时,其中的非可信计算单元对应于处理器与非可信空间的结合。
上述内容对本说明书的特定实施例进行了描述,其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行,并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要按照示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的,或者可能是有利的。
图4实施例提供了一种基于隐私保护的业务预测模型训练装置的示意性框图。该装置400部署在训练系统的处于可信执行环境下的可信计算单元中,所述训练系统还包括非可信计算单元。该装置实施例与图2所示方法实施例相对应。装置400包括:
第一获取模块410,配置为获取用于训练业务预测模型的训练集和业务预测模型的初始模型参数,其中该训练集包括多个业务样本的样本特征和对应的标签值;
第一加密模块420,配置为使用加密密钥,将初始模型参数同态加密为初始加密模型参数,将多个业务样本的样本特征和对应的标签值分别同态加密为多个加密样本和加密标签值;
第一发送模块430,配置为将初始加密模型参数、多个加密样本和加密标签值发送至非可信计算单元;
第一迭代模块440,配置为执行多轮模型迭代,其中任意一轮模型迭代包括,与非可信计算单元进行交互,从非可信计算单元中获取本轮更新后的第二加密模型参数,第二加密模型参数,至少基于对多个加密样本、多个加密标签值和本轮更新前的第一加密模型参数的同态运算确定;
第一确定模块450,配置为根据第二加密模型参数和第一加密模型参数的差异,确定模型训练过程是否满足收敛条件,在不满足时进行下一轮模型迭代。
在一种实施方式中,业务预测模型属于逻辑回归模型;第一迭代模块440,具体配置为,接收非可信计算单元发送的与每个业务样本对应的加密中间结果;其中,加密中间结果根据第一加密模型参数分别与每个加密样本的样本特征同态相乘得到;
采用与加密密钥对应的解密密钥,对多个加密中间结果进行解密,得到多个中间结果,将多个中间结果分别代入激活函数,计算得到针对每个业务样本的预测值;
使用加密密钥将每个业务样本的预测值同态加密为多个加密预测值,并将其发送至非可信计算单元,以使得非可信计算单元根据每个业务样本的加密预测值与对应的加密标签值之间的同态差值确定加密损失值,基于加密损失值将第一加密模型参数更新为第二加密模型参数;
接收非可信计算单元发送的第二加密模型参数。
在一种实施方式中,业务预测模型属于线性回归模型;第一迭代模块440,具体配置为:
接收非可信计算单元发送的第二加密模型参数;其中,第二加密模型参数是非可信计算单元基于加密损失值对第一加密模型参数进行更新得到,加密损失值为基于每个业务样本的加密预测值与对应的加密标签值之间的同态差值得到,每个业务样本的加密预测值基于将第一加密模型参数分别与每个加密样本的样本特征同态相乘得到。
在一种实施方式中,第一迭代模块440还配置为:
使用解密密钥将第二加密模型参数解密为第二模型参数,将其作为用于下一轮模型迭代的更新后的第一模型参数,解密密钥与加密密钥对应;
使用加密密钥,将更新后的第一模型参数同态加密为更新后的第一加密模型参数,将更新后的所述第一加密模型参数发送给非可信计算单元。
在一种实施方式中,第一确定模块450具体配置为:
获取由所述非可信计算单元同态计算的所述第二加密模型参数和所述第一加密模型参数的加密差值平方和;
采用与所述加密密钥对应的解密密钥,对所述加密差值平方和进行解密,得到对应的差值平方和,根据所述差值平方和,确定模型训练过程是否满足收敛条件。
在一种实施方式中,第一确定模块450具体配置为,采用与所述加密密钥对应的解密密钥,对所述第二加密模型参数进行解密,得到第二模型参数;计算所述第二模型参数与第一模型参数的差值平方和,其中所述第一模型参数为所述第一加密模型参数对应的解密值;根据所述差值平方和,确定模型训练过程是否满足收敛条件。
在一种实施方式中,第一确定模块450具体配置为,同态计算所述第二加密模型参数和所述第一加密模型参数的加密差值平方和;采用与所述加密密钥对应的解密密钥,对所述加密差值平方和进行解密,得到对应的差值平方和;根据所述差值平方和,确定模型训练过程是否满足收敛条件。
在一种实施方式中,可信计算单元和非可信计算单元位于具有可信执行环境的同一计算设备中。
在一种实施方式中,可信计算单元位于具有可信执行环境的第一计算设备中,非可信计算单元位于第二计算设备中。
在一种实施方式中,业务样本为以下业务对象之一:用户、商户、商品、事件;业务预测模型用于对业务对象进行分类或回归。
在一种实施方式中,任意一轮模型迭代为第一轮模型迭代,第一加密模型参数为初始加密模型参数。
图5为实施例提供的一种基于隐私保护的业务预测模型训练装置的示意性框图。该装置500部署在训练系统的非可信计算单元中,该训练系统还包括处于可信执行环境下的可信计算单元。该装置实施例与图2所示方法实施例相对应。装置500包括:
第一接收模块510,配置为接收可信计算单元发送的初始加密模型参数、多个加密样本和对应加密标签值,初始加密模型参数、多个加密样本和对应的加密标签值,分别基于对业务预测模型的初始模型参数、训练集中的多个业务样本的样本特征和对应的标签值进行同态加密得到;
第二迭代模块520,配置为执行多轮模型迭代,其中任意一轮模型迭代包括,与可信计算单元进行交互,至少基于对多个加密样本、多个加密标签值和本轮更新前的第一加密模型参数的同态运算,确定本轮更新后的第二加密模型参数;
第二发送模块530,配置为将第二加密模型参数发送至可信计算单元。
在一种实施方式中,业务预测模型属于逻辑回归模型;第二迭代模块520具体配置为:
将本轮更新前的第一加密模型参数分别与每个加密样本的样本特征同态相乘,得到与每个业务样本对应的加密中间结果;
将多个加密中间结果发送至可信计算单元;
接收可信计算单元发送的与每个业务样本对应的加密预测值;其中,加密预测值基于将从加密中间结果解密得到的中间结果代入激活函数得到预测值,并对其进行同态加密得到;
根据每个加密预测值与对应的加密标签值之间的同态差值,确定加密损失值;
根据加密损失值,将第一加密模型参数更新为第二加密模型参数。
在一种实施方式中,业务预测模型属于线性回归模型;第二迭代模块520具体配置为:
将本轮更新前的第一加密模型参数分别与每个加密样本的样本特征同态相乘,得到与每个业务样本对应的加密预测值;
根据每个加密预测值与对应的加密标签值之间的同态差值,确定加密损失值;根据加密损失值,将第一加密模型参数更新为第二加密模型参数。
在一种实施方式中,第二迭代模块520还配置为:
接收可信计算单元发送的第一加密模型参数,第一加密模型参数是对第一模型参数同态加密后得到,第一模型参数是将上一轮更新后的第二加密模型解密后得到的第二模型参数。
上述装置实施例与方法实施例相对应,具体说明可以参见方法实施例部分的描述,此处不再赘述。装置实施例是基于对应的方法实施例得到,与对应的方法实施例具有同样的技术效果,具体说明可参见对应的方法实施例。
本说明书实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当计算机程序在计算机中执行时,令计算机执行图1、图2、图3-1和图3-2中任一项所述的方法。
本说明书实施例提供了一种计算设备,包括存储器和处理器,存储器中存储有可执行代码,处理器执行所述可执行代码时,实现图1、图2、图3-1和图3-2中任一项所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于存储介质和计算设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明实施例的目的、技术方案和有益效果进行了进一步的详细说明。所应理解的是,以上所述仅为本发明实施例的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
1.一种基于隐私保护的业务预测模型训练方法,通过训练系统中处于可信执行环境下的可信计算单元执行,所述训练系统还包括非可信计算单元;所述方法包括:
获取用于训练所述业务预测模型的训练集和所述业务预测模型的初始模型参数,其中所述训练集包括多个业务样本的样本特征和对应的标签值;
使用加密密钥,将所述初始模型参数同态加密为初始加密模型参数,将所述多个业务样本的样本特征和对应的标签值分别同态加密为多个加密样本和加密标签值;
将所述初始加密模型参数、所述多个加密样本和加密标签值发送至所述非可信计算单元;
执行多轮模型迭代,其中任意的第k轮模型迭代包括,与所述非可信计算单元进行交互,从所述非可信计算单元中获取本轮更新后的第k轮第二加密模型参数,所述第k轮第二加密模型参数,至少基于对所述多个加密样本、多个加密标签值和本轮更新前的第k轮第一加密模型参数的同态运算确定;
根据所述第k轮第二加密模型参数和所述第k轮第一加密模型参数的差异,确定模型训练过程是否满足收敛条件,在不满足时进行下一轮模型迭代。
2.根据权利要求1所述的方法,所述业务预测模型属于线性回归模型;
所述与所述非可信计算单元进行交互,从所述非可信计算单元中获取本轮更新后的第k轮第二加密模型参数的步骤,包括:
直接接收所述非可信计算单元发送的所述第k轮第二加密模型参数;其中,所述第k轮第二加密模型参数是所述非可信计算单元基于加密损失值对所述第k轮第一加密模型参数进行更新得到,所述加密损失值为基于业务样本的加密预测值与对应的加密标签值之间的同态差值得到,所述业务样本的加密预测值基于将所述第k轮第一加密模型参数分别与对应的加密样本的样本特征同态相乘得到。
3.根据权利要求1所述的方法,所述任意一轮模型迭代还包括:
在获取到所述第k轮第二加密模型参数之后,使用解密密钥将所述第k轮第二加密模型参数解密为第二模型参数,将其作为用于下一轮模型迭代的第k 1轮第一模型参数,所述解密密钥与所述加密密钥对应;
使用所述加密密钥,将所述第k 1轮第一模型参数同态加密为第k 1轮第一加密模型参数;
将所述第k 1轮第一加密模型参数发送给所述非可信计算单元,以用于开始第k 1轮模型迭代。
4.根据权利要求1所述的方法,所述根据所述第k轮第二加密模型参数和所述第k轮第一加密模型参数的差异,确定模型训练过程是否满足收敛条件的步骤,包括:
获取由所述非可信计算单元同态计算的所述第k轮第二加密模型参数和所述第k轮第一加密模型参数的加密差值平方和;
采用与所述加密密钥对应的解密密钥,对所述加密差值平方和进行解密,得到对应的差值平方和,根据所述差值平方和,确定模型训练过程是否满足收敛条件。
5.根据权利要求1所述的方法,所述根据所述第k轮第二加密模型参数和所述第k轮第一加密模型参数的差异,确定模型训练过程是否满足收敛条件的步骤,包括:
采用与所述加密密钥对应的解密密钥,对所述第k轮第二加密模型参数进行解密,得到第k轮第二模型参数;
计算所述第k轮第二模型参数与第k轮第一模型参数的差值平方和,其中所述第k轮第一模型参数为所述第k轮第一加密模型参数对应的解密值;
根据所述差值平方和,确定模型训练过程是否满足收敛条件。
6.根据权利要求1所述的方法,所述根据所述第k轮第二加密模型参数和所述第k轮第一加密模型参数的差异,确定模型训练过程是否满足收敛条件的步骤,包括:
同态计算所述第k轮第二加密模型参数和所述第k轮第一加密模型参数的加密差值平方和;
采用与所述加密密钥对应的解密密钥,对所述加密差值平方和进行解密,得到对应的差值平方和;
根据所述差值平方和,确定模型训练过程是否满足收敛条件。
7.根据权利要求1所述的方法,所述可信计算单元和所述非可信计算单元位于具有可信执行环境的同一计算设备中。
8.根据权利要求1所述的方法,所述可信计算单元位于具有可信执行环境的第一计算设备中,所述非可信计算单元位于第二计算设备中。
9.根据权利要求1所述的方法,所述业务样本为以下业务对象之一:用户、商品、事件;所述业务预测模型用于对业务对象进行业务预测。
10.根据权利要求1所述的方法,其中,当所述第k轮模型迭代为第一轮模型迭代时,所述第k轮第一加密模型参数为所述初始加密模型参数。
11.一种基于隐私保护的业务预测模型训练方法,通过训练系统中的非可信计算单元执行,所述训练系统还包括处于可信执行环境下的可信计算单元执行;所述方法包括:
接收所述可信计算单元发送的初始加密模型参数、多个加密样本和对应加密标签值,所述初始加密模型参数、所述多个加密样本和对应的加密标签值,分别基于对所述业务预测模型的初始模型参数、训练集中的多个业务样本的样本特征和对应的标签值进行同态加密得到;
执行多轮模型迭代,其中任意的第k轮模型迭代包括,与所述可信计算单元进行交互,至少基于对所述多个加密样本、多个加密标签值和本轮更新前的第k轮第一加密模型参数的同态运算,确定本轮更新后的第k轮第二加密模型参数;
将所述第k轮第二加密模型参数发送至所述可信计算单元。
12.根据权利要求11所述的方法,所述业务预测模型属于线性回归模型;所述与所述可信计算单元进行交互,至少基于对所述多个加密样本、多个加密标签值和本轮更新前的第k轮第一加密模型参数的同态运算,确定本轮更新后的第k轮第二加密模型参数的步骤,包括:
将本轮更新前的所述第k轮第一加密模型参数分别与多个加密样本的样本特征同态相乘,得到与业务样本对应的加密预测值;
根据多个加密预测值与对应的加密标签值之间的同态差值,确定加密损失值;
根据所述加密损失值,将所述第k轮第一加密模型参数更新为第k轮第二加密模型参数。
13.根据权利要求11所述的方法,当所述第k轮模型迭代不是第一轮模型迭代时,所述第k轮模型迭代还包括:
在与所述可信计算单元进行交互之前,接收所述可信计算单元发送的所述第k轮第一加密模型参数,所述第k轮第一加密模型参数是对第k轮第一模型参数同态加密后得到,所述第k轮第一模型参数是将上一轮更新后的第k-1轮第二加密模型解密后得到的第二模型参数。
14.一种基于隐私保护的业务预测模型训练装置,部署在训练系统中处于可信执行环境下的可信计算单元中,所述训练系统还包括非可信计算单元;所述装置包括:
第一获取模块,配置为获取用于训练所述业务预测模型的训练集和所述业务预测模型的初始模型参数,其中所述训练集包括多个业务样本的样本特征和对应的标签值;
第一加密模块,配置为使用加密密钥,将所述初始模型参数同态加密为初始加密模型参数,将所述多个业务样本的样本特征和对应的标签值分别同态加密为多个加密样本和加密标签值;
第一发送模块,配置为将所述初始加密模型参数、所述多个加密样本和加密标签值发送至所述非可信计算单元;
第一迭代模块,配置为执行多轮模型迭代,其中任意的第k轮模型迭代包括,与所述非可信计算单元进行交互,从所述非可信计算单元中获取本轮更新后的第k轮第二加密模型参数,所述第k轮第二加密模型参数,至少基于对所述多个加密样本、多个加密标签值和本轮更新前的第k轮第一加密模型参数的同态运算确定;
第一确定模块,配置为根据所述第k轮第二加密模型参数和所述第k轮第一加密模型参数的差异,确定模型训练过程是否满足收敛条件,在不满足时进行下一轮模型迭代。
15.一种基于隐私保护的业务预测模型训练装置,部署在训练系统的非可信计算单元中,所述训练系统还包括处于可信执行环境下的可信计算单元执行;所述装置包括:
第一接收模块,配置为接收所述可信计算单元发送的初始加密模型参数、多个加密样本和对应加密标签值,所述初始加密模型参数、所述多个加密样本和对应的加密标签值,分别基于对所述业务预测模型的初始模型参数、训练集中的多个业务样本的样本特征和对应的标签值进行同态加密得到;
第二迭代模块,配置为执行多轮模型迭代,其中任意的第k轮模型迭代包括,与所述可信计算单元进行交互,至少基于对所述多个加密样本、多个加密标签值和本轮更新前的第k轮第一加密模型参数的同态运算,确定本轮更新后的第k轮第二加密模型参数;
第二发送模块,配置为将所述第k轮第二加密模型参数发送至所述可信计算单元。
16.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-13中任一项所述的方法。
17.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-13中任一项所述的方法。
技术总结