数据处理方法、装置、设备及存储介质与流程

摘要: 本技术实施例涉及计算机,特别涉及一种数据处理方法、装置、设备及存储介质。背景技术:1、随着计算机技术的发展,不同的领域和平台产生了大量具有关联关系的数据。通过对...
数据处理方法、装置、设备及存储介质与流程

本技术实施例涉及计算机,特别涉及一种数据处理方法、装置、设备及存储介质。

背景技术:

1、随着计算机技术的发展,不同的领域和平台产生了大量具有关联关系的数据。通过对这些数据进行挖掘,可以得到有价值的信息,从而为决策支持、业务优化和科学研究提供重要依据。在相关技术中,联邦学习允许多个数据方在不共享原始数据的情况下,协同挖掘利用各方数据的价值。

2、在相关技术中,业务方和多个数据方通过基于联邦学习的gbdt(gradientboosting decision tree,梯度提升决策树)算法,训练得到多棵决策树。对于任意一棵决策树,业务方调用c++端对训练样本的一阶梯度和二阶梯度进行同态加密后,得到梯度密文。c++端将梯度密文序列化后发送给业务方的java端,再由java端将序列化后的梯度密文发送给多个数据方。任意一个数据方的java端将序列化后的梯度密文发送给c++端,由c++端对序列化后的梯度密文进行反序列化,在基于反序列化后的梯度密文构建密文直方图。c++端将密文直方图发送回java端,并由java端密文直方图发送回业务方。最后由业务方根据多个数据方的密文直方图,对该决策树进行训练。

3、在业务方和数据方联合训练任意一棵决策树的过程中,需要进行多次序列化数据、反序列化数据以及密文的传输,在频繁的密文直方图的构建过程中,会因此产生大量的额外开销,影响设备基于联邦学习训练决策树的处理效率。

技术实现思路

1、本技术实施例提供了一种数据处理方法、装置、设备及存储介质。本技术实施例提供的技术方案如下:

2、根据本技术实施例的一个方面,提供了一种数据处理方法,所述方法由第一设备执行,所述第一设备包括第一模块和第二模块,所述第一模块和所述第二模块基于不同的编程语言实现,所述方法包括:

3、由所述第一模块接收第二设备发送的梯度序列化数据,所述梯度序列化数据是序列化后的梯度密文对象,所述梯度密文对象是同态加密后的梯度数据,所述梯度数据包括至少一个训练样本对应的样本梯度;

4、由所述第一模块将所述梯度序列化数据发送给所述第二模块;

5、由所述第二模块基于所述梯度序列化数据和所述至少一个训练样本对应的n个第一特征,分别构建所述n个第一特征各自的密文直方图,得到密文直方图对象,所述密文直方图对象包括所述n个第一特征各自的密文直方图,所述第一特征的密文直方图用于指示所述至少一个训练样本在所述第一特征的至少一个分箱中的分布情况,n为正整数;

6、由所述第二模块将第一信息发送给所述第一模块,所述第一信息用于确定所述密文直方图对象在所述第一设备中的存储位置;

7、由所述第一模块根据所述第一信息,从所述密文直方图对象在所述第一设备中的存储位置处,获取所述密文直方图对象;

8、由所述第一模块将所述密文直方图对象发送给所述第二设备。

9、根据本技术实施例的一个方面,提供了一种数据处理方法,所述方法由第二设备执行,所述第二设备包括第一模块和第二模块,所述第一模块和所述第二模块基于不同的编程语言实现,所述方法包括:

10、由所述第一模块将梯度数据发送给所述第二模块,所述梯度数据包括至少一个训练样本对应的样本梯度;

11、由所述第二模块对所述梯度数据执行同态加密,得到梯度密文对象;

12、由所述第二模块对所述梯度密文对象执行序列化操作,得到梯度序列化数据,所述梯度序列化数据是序列化后的梯度密文对象;

13、由所述第二模块将第二信息发送给所述第一模块,所述第二信息用于确定所述梯度序列化数据在所述第二设备中的存储位置;

14、由所述第一模块根据所述第二信息,从所述梯度序列化数据在所述第二设备中的存储位置处,获取所述梯度序列化数据;

15、由所述第一模块将所述梯度序列化数据发送给至少一个第一设备。

16、根据本技术实施例的一个方面,提供了一种数据处理装置,所述装置包括第一模块和第二模块,所述第一模块和所述第二模块基于不同的编程语言实现;

17、所述第一模块,用于接收第二设备发送的梯度序列化数据,所述梯度序列化数据是序列化后的梯度密文对象,所述梯度密文对象是同态加密后的梯度数据,所述梯度数据包括至少一个训练样本对应的样本梯度;

18、所述第一模块,还用于将所述梯度序列化数据发送给所述第二模块;

19、所述第二模块,用于基于所述梯度序列化数据和所述至少一个训练样本对应的n个第一特征,分别构建所述n个第一特征各自的密文直方图,得到密文直方图对象,所述密文直方图对象包括所述n个第一特征各自的密文直方图,所述第一特征的密文直方图用于指示所述至少一个训练样本在所述第一特征的至少一个分箱中的分布情况,n为正整数;

20、所述第二模块,还用于将第一信息发送给所述第一模块,所述第一信息用于确定所述密文直方图对象在所述第一设备中的存储位置;

21、所述第一模块,还用于根据所述第一信息,从所述密文直方图对象在所述第一设备中的存储位置处,获取所述密文直方图对象;

22、所述第一模块,还用于将所述密文直方图对象发送给所述第二设备。

23、根据本申实施例的一个方面,提供了一种数据处理装置,所述装置包括第一模块和第二模块,所述第一模块和所述第二模块基于不同的编程语言实现;

24、所述第一模块,用于将梯度数据发送给所述第二模块,所述梯度数据包括至少一个训练样本对应的样本梯度;

25、所述第二模块,用于对所述梯度数据执行同态加密,得到梯度密文对象;

26、所述第二模块,还用于对所述梯度密文对象执行序列化操作,得到梯度序列化数据,所述梯度序列化数据是序列化后的梯度密文对象;

27、所述第二模块,还用于将第二信息发送给所述第一模块,所述第二信息用于确定所述梯度序列化数据在所述第二设备中的存储位置;

28、所述第一模块,还用于根据所述第二信息,从所述梯度序列化数据在所述第二设备中的存储位置处,获取所述梯度序列化数据;

29、所述第一模块,还用于将所述梯度序列化数据发送给至少一个第一设备。

30、根据本技术实施例的一个方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现上述数据处理方法。

31、根据本技术实施例的一个方面,提供了一种计算机可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现上述数据处理方法。

32、根据本技术实施例的一个方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序由处理器加载并执行以实现上述数据处理方法。

33、本技术实施例提供的技术方案至少包括如下有益效果:

34、在构建密文直方图的过程中,基于不同编程语言实现的模块互相调用,在不同的模块之间通过传输第一信息,第一信息指示构建的密文直方图的存储位置,不同的模块基于该第一信息即可获取构建的密文直方图,减少了设备执行传输密文直方图的处理量,从而有效提高设备基于联邦学习训练决策树的处理效率。