基于区块链的隐私计算方法、装置、设备、介质及产品与流程
- 国知局
- 2024-12-06 12:29:59
本发明属于隐私计算,具体涉及一种基于区块链的隐私计算方法、装置、设备、介质及产品。
背景技术:
1、区块链技术凭借其去中心化、多方共识、难以篡改、公开透明和可追溯等特征,在一定程度上能够提供一个相对可信的数据防篡改的解决方案。同时随着大数据技术的发展,对来自多个参与者的数据进行综合的运算处理变得越来越常见,使得在多方之间数据共享场景下,为了避免数据隐私外泄,需要通过隐私计算(其又称隐私保护计算,是一种保护数据隐私的计算模式)实现“数据可用不可见”。隐私计算主要有两类主流技术路线:一类是采用密码学和分布式系统,以多方安全计算(secure multiparty compute,mpc)为代表;另一类是采用基于硬件的可信执行环境(trusted execution environment,tee)。此外,还有零知识证明、同态加密和差分隐私等技术。
2、目前,在机器学习计算任务中,通常是在多个数据源处聚合训练数据,并将所有训练数据传送到中央服务器以对机器学习模型进行模型训练,然而这一过程容易产生数据泄露风险。因此在基于多数据源的机器学习模型训练过程中,如何驱动数据源侧进行具有隐私计算特点的模型训练并综合各侧训练结果以得到合格的已训练完成模型,实现避免训练数据传送以保护数据安全的目的,是本领域技术人员亟待研究的课题。
技术实现思路
1、本发明的目的是提供一种基于区块链的隐私计算方法、装置、计算机设备、计算机可读存储介质及计算机程序产品,用以解决现有基于多数据源的机器学习模型训练方案所存在易产生数据泄露风险的问题。
2、为了实现上述目的,本发明采用以下技术方案:
3、第一方面,提供了一种基于区块链的隐私计算方法,包括:
4、生成用于训练机器学习模型的计算任务,其中,所述计算任务包含有待训练机器学习模型的唯一标识、超参数、n个模型参数的初始值、多个模型输入项变量和模型输出项变量,n表示大于等于2的正整数;
5、在区块链中生成第一区块,并将所述计算任务存入到所述第一区块中;
6、将所述第一区块广播传送至其它区块链节点,以便作为所述其它区块链节点的数据源侧节点设备从所述第一区块中读取所述计算任务,并执行所述计算任务,具体包括如下步骤:根据所述模型输入项变量和所述模型输出项变量,判断是否能获取到多份训练样本数据,若是,则先根据所述待训练机器学习模型的唯一标识、所述超参数和所述n个模型参数的初始值构建第一机器学习模型,然后应用所述多份训练样本数据对所述第一机器学习模型进行模型训练及验证,得到所述n个模型参数的当前调整值和第一模型准确率指标值,再然后在所述区块链中生成第二区块,并将所述n个模型参数的当前调整值和所述第一模型准确率指标值存入到所述第二区块中,最后广播所述第二区块,其中,所述训练样本数据包含有与在所述多个模型输入项变量中的至少一个模型输入项变量一一对应的至少一个第一模型输入值和与所述模型输出项变量一一对应的第一模型输出值;
7、在收到所述第二区块时,从所述第二区块中读取所述n个模型参数的当前调整值和所述第一模型准确率指标值;
8、根据从最近收到的m个所述第二区块中读取的所述n个模型参数的当前调整值和所述第一模型准确率指标值,构建如下待解方程组:
9、
10、式中,m1和m2分别表示正整数,m表示大于等于3的正整数,dm1表示基于待解数组x={x1,x2,…,xn,…,xn}和从最近收到的第m1个所述第二区块中读取的所述n个模型参数的当前调整值的欧拉距离,dm2表示基于所述待解数组x和从最近收到的第m2个所述第二区块中读取的所述n个模型参数的当前调整值的欧拉距离,pm1表示从最近收到的第m1个所述第二区块中读取的所述第一模型准确率指标值,pm2表示从最近收到的第m2个所述第二区块中读取的所述第一模型准确率指标值,n表示小于等于n的正整数,xn表示与在所述n个模型参数中的第n个模型参数对应的待解值;
11、对所述待解方程组进行求解,得到已解数组其中,表示与在所述n个模型参数中的第n个模型参数对应的已解值;
12、将所述已解数组作为所述n个模型参数的训练调整值,并根据所述待训练机器学习模型的唯一标识、所述超参数和所述n个模型参数的训练调整值构建第二机器学习模型;
13、应用验证集对所述第二机器学习模型进行模型验证,得到第二模型准确率指标值,其中,所述验证集包含有多份验证样本数据,所述验证样本数据包含有与所述多个模型输入项变量一一对应的多个第二模型输入值和与所述模型输出项变量一一对应的第二模型输出值;
14、若判定所述第二模型准确率指标值达到预设的指标阈值,则将所述第二机器学习模型作为已达到模型训练目标的已训练完成模型。
15、基于上述技术实现要素:,提供了一种应用区块链技术隐私完成基于多数据源的机器学习模型训练任务的新方案,即先将用于训练机器学习模型的计算任务上链以传送至作为其它区块链节点的数据源侧节点设备,进而使该节点设备在判定能获取到多份训练样本数据时,构建机器学习模型,以及应用训练样本数据得到模型训练结果并完成上链,然后基于多个上链的模型训练结果构建方程组并求解得到模型参数的训练调整值,最后基于该训练调整值搭建并验证得到已达到模型训练目标的已训练完成模型,如此可以驱动数据源侧进行具有隐私计算特点的模型训练,并综合各侧训练结果以得到合格的已训练完成模型,实现避免训练数据传送以保护数据安全的目的,便于实际应用和推广。
16、在一个可能的设计中,所述计算任务包含有多份密文,所述多个模型输入项变量和所述模型输出项变量被加密在所述密文中,其中,在所述多份密文中的各份密文使用不同私钥加密而得;
17、从所述第一区块中读取所述计算任务,并执行所述计算任务,包括:先从所述第一区块中读取所述计算任务,然后使用本地公钥解密所述各份密文,若成功解密在所述多份密文中的任一密文,则执行所述计算任务,否则不执行所述计算任务。
18、在一个可能的设计中,所述多个模型输入项变量中的部分变量和所述模型输出项变量被加密在所述密文中,并使在所述多份密文中的所有模型输入项变量组成所述多个模型输入项变量。
19、在一个可能的设计中,所述计算任务还包含有所述验证集;
20、应用所述多份训练样本数据对所述第一机器学习模型进行模型训练及验证,得到所述n个模型参数的当前调整值和第一模型准确率指标值,包括:
21、应用所述多份训练样本数据对所述第一机器学习模型进行模型训练,得到新模型;
22、应用所述验证集对所述新模型进行模型验证,得到第一模型准确率指标值,并从所述新模型中提取得到所述n个模型参数的当前调整值。
23、在一个可能的设计中,在将所述已解数组作为所述n个模型参数的训练调整值之后,所述方法还包括:
24、在所述区块链中生成第三区块,并将所述n个模型参数的训练调整值存入到所述第三区块中;
25、将所述第三区块广播传送至其它区块链节点,以便作为所述其它区块链节点的数据源侧节点设备从所述第三区块中读取所述n个模型参数的训练调整值,并还按照如下步骤执行所述计算任务:将所述n个模型参数的训练调整值更新到所述第一机器学习模型中以得到第三机器学习模型,然后应用所述多份训练样本数据对所述第三机器学习模型进行模型训练及验证,得到新的模型训练结果,再然后在所述区块链中生成新的第二区块,并将所述新的模型训练结果存入到所述新的第二区块中,最后广播所述新的第二区块,其中,所述模型训练结果包含有所述n个模型参数的当前调整值和所述第一模型准确率指标值。
26、在一个可能的设计中,在将所述第二机器学习模型作为已达到模型训练目标的已训练完成模型之后,所述方法还包括:
27、在所述区块链中生成第四区块,并将所述计算任务的结束标识存入到所述第四区块中;
28、将所述第四区块广播传送至其它区块链节点,以便作为所述其它区块链节点的数据源侧节点设备从所述第四区块中读取所述计算任务的结束标识,然后结束执行所述计算任务。
29、第二方面,提供了一种基于区块链的隐私计算装置,包括有依次通信连接的计算任务生成单元、计算任务上链单元、区块收发处理单元、方程组构建单元、方程组求解单元、训练模型构建单元、训练模型验证单元和训练模型确认单元;
30、所述计算任务生成单元,用于生成用于训练机器学习模型的计算任务,其中,所述计算任务包含有待训练机器学习模型的唯一标识、超参数、n个模型参数的初始值、多个模型输入项变量和模型输出项变量,n表示大于等于2的正整数;
31、所述计算任务上链单元,用于在区块链中生成第一区块,并将所述计算任务存入到所述第一区块中;
32、所述区块收发处理单元,用于将所述第一区块广播传送至其它区块链节点,以便作为所述其它区块链节点的数据源侧节点设备从所述第一区块中读取所述计算任务,并执行所述计算任务,具体包括如下步骤:根据所述模型输入项变量和所述模型输出项变量,判断是否能获取到多份训练样本数据,若是,则先根据所述待训练机器学习模型的唯一标识、所述超参数和所述n个模型参数的初始值构建第一机器学习模型,然后应用所述多份训练样本数据对所述第一机器学习模型进行模型训练及验证,得到所述n个模型参数的当前调整值和第一模型准确率指标值,再然后在所述区块链中生成第二区块,并将所述n个模型参数的当前调整值和所述第一模型准确率指标值存入到所述第二区块中,最后广播所述第二区块,其中,所述训练样本数据包含有与在所述多个模型输入项变量中的至少一个模型输入项变量一一对应的至少一个第一模型输入值和与所述模型输出项变量一一对应的第一模型输出值;
33、所述区块收发处理单元,还用于在收到所述第二区块时,从所述第二区块中读取所述n个模型参数的当前调整值和所述第一模型准确率指标值;
34、所述方程组构建单元,用于根据从最近收到的m个所述第二区块中读取的所述n个模型参数的当前调整值和所述第一模型准确率指标值,构建如下待解方程组:
35、
36、式中,m1和m2分别表示正整数,m表示大于等于3的正整数,dm1表示基于待解数组x={x1,x2,…,xn,…,xn}和从最近收到的第m1个所述第二区块中读取的所述n个模型参数的当前调整值的欧拉距离,dm2表示基于所述待解数组x和从最近收到的第m2个所述第二区块中读取的所述n个模型参数的当前调整值的欧拉距离,pm1表示从最近收到的第m1个所述第二区块中读取的所述第一模型准确率指标值,pm2表示从最近收到的第m2个所述第二区块中读取的所述第一模型准确率指标值,n表示小于等于n的正整数,xn表示与在所述n个模型参数中的第n个模型参数对应的待解值;
37、所述方程组求解单元,用于对所述待解方程组进行求解,得到已解数组其中,表示与在所述n个模型参数中的第n个模型参数对应的已解值;
38、所述训练模型构建单元,用于将所述已解数组作为所述n个模型参数的训练调整值,并根据所述待训练机器学习模型的唯一标识、所述超参数和所述n个模型参数的训练调整值构建第二机器学习模型;
39、所述训练模型验证单元,用于应用验证集对所述第二机器学习模型进行模型验证,得到第二模型准确率指标值,其中,所述验证集包含有多份验证样本数据,所述验证样本数据包含有与所述多个模型输入项变量一一对应的多个第二模型输入值和与所述模型输出项变量一一对应的第二模型输出值;
40、所述训练模型确认单元,用于若判定所述第二模型准确率指标值达到预设的指标阈值,则将所述第二机器学习模型作为已达到模型训练目标的已训练完成模型。
41、第三方面,本发明提供了一种计算机设备,包括有依次通信连接的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如第一方面或第一方面中任意可能设计所述的隐私计算方法。
42、第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面或第一方面中任意可能设计所述的隐私计算方法。
43、第五方面,本发明提供了一种计算机程序产品,包括计算机程序或指令,所述计算机程序或所述指令在被计算机执行时实现如第一方面或第一方面中任意可能设计所述的隐私计算方法。
44、上述方案的有益效果:
45、(1)本发明创造性提供了一种应用区块链技术隐私完成基于多数据源的机器学习模型训练任务的新方案,即先将用于训练机器学习模型的计算任务上链以传送至作为其它区块链节点的数据源侧节点设备,进而使该节点设备在判定能获取到多份训练样本数据时,构建机器学习模型,以及应用训练样本数据得到模型训练结果并完成上链,然后基于多个上链的模型训练结果构建方程组并求解得到模型参数的训练调整值,最后基于该训练调整值搭建并验证得到已达到模型训练目标的已训练完成模型,如此可以驱动数据源侧进行具有隐私计算特点的模型训练,并综合各侧训练结果以得到合格的已训练完成模型,实现避免训练数据传送以保护数据安全的目的,便于实际应用和推广。
本文地址:https://www.jishuxx.com/zhuanli/20241204/341749.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。