一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

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

2022-06-01 14:49:19 来源:中国专利 TAG:


1.本发明涉及人工智能技术领域,尤其涉及一种数据处理方法、装置、设备及存储介质。


背景技术:

2.随着计算机技术和大数据处理技术的不断发展,联邦学习的应用越来越广泛。联邦学习能够联合多方进行模型训练,提升人工智能的效果。
3.在构建联邦学习模型时,经常需要对特征变量进行筛选。在筛选特征变量时,往往需要考虑特征变量的信息价值。在联邦机制下,用于计算信息价值的数据可能分布在不同的设备上,如何在保证数据安全的情况下,快速有效地确定信息价值成为亟待解决的问题。


技术实现要素:

4.本发明的主要目的在于提供一种数据处理方法、装置、设备及存储介质,旨在保证数据安全的情况下提高信息价值的计算效率。
5.为实现上述目的,本发明提供一种数据处理方法,应用于参与信息价值计算的任一参与方,所述方法包括:
6.判断所述参与方是否为目标变量提供方,若所述参与方为目标变量提供方,则将多个数据id对应的目标变量分别进行同态加密,并将所述多个数据id以及加密后的目标变量发送给特征变量提供方;
7.判断所述参与方是否为特征变量提供方,若所述参与方为特征变量提供方,则根据本地存储的所述多个数据id对应的特征变量,对所述多个数据id进行分箱,并在每个分箱中进行加密后的目标变量求和,将各分箱对应的求和结果发送给所述目标变量提供方;
8.若所述参与方为目标变量提供方,则对所述求和结果进行解密,并根据解密后的数据计算所述特征变量的信息价值。
9.在一种可能的实现方式中,所述方法还包括:
10.获取用于进行信息价值计算的源代码,所述源代码包括多个角色标识以及从属于每个角色标识的操作代码;其中,每个角色标识包括所述目标变量提供方和/或特征变量提供方的标识,从属于所述角色标识的操作代码用于指示所述角色标识对应的参与方执行的操作;
11.对所述源代码进行编译,得到目标代码,以根据所述目标代码实现信息价值计算;其中,所述角色标识在编译后对应生成判断语句,用于判断执行所述目标代码的参与方是否为所述角色标识对应的参与方,从属于所述角色标识的操作代码在编译后对应生成用于在所述判断语句的判断结果为是时执行的操作语句。
12.在一种可能的实现方式中,根据解密后的数据计算所述特征变量的信息价值,包括:
13.针对每一分箱,根据所述解密后的数据,计算所述分箱对应的正向数量占比和负
向数量占比;
14.根据各个分箱对应的正向数量占比和负向数量占比,计算所述特征变量的信息价值;
15.其中,所述正向数量占比为所述分箱中正向数据id的数量与全部正向数据id的总数量的比值,所述负向数量占比为所述分箱中负向数据id的数量与全部负向数据id的总数量的比值;
16.所述正向数据id为对应的目标变量为第一数值的数据id,所述负向数据id为对应的目标变量为非第一数值的数据id。
17.在一种可能的实现方式中,将多个数据id对应的目标变量分别进行同态加密,并将所述多个数据id以及加密后的目标变量发送给特征变量提供方,包括:
18.针对所述多个数据id中的每一数据id,对所述数据id对应的目标变量以及反变量分别进行同态加密;
19.将所述多个数据id以及每个数据id对应的加密后的目标变量和加密后的反变量发送给所述特征变量提供方;
20.相应的,在每个分箱中进行加密后的目标变量求和,包括:
21.针对每一分箱,计算所述分箱中各数据id对应的加密后的目标变量之和以及加密后的反变量之和;其中,每一分箱包括至少一个数据id。
22.在一种可能的实现方式中,根据所述解密后的数据,计算所述分箱对应的正向数量占比和负向数量占比,包括:
23.根据所述分箱对应的解密后的目标变量之和以及全部正向数据id的总数量,计算正向数量占比;
24.根据所述分箱对应的解密后的反变量之和以及全部负向数据id的总数量,计算负向数量占比。
25.在一种可能的实现方式中,所述方法还包括:
26.若所述参与方为特征变量提供方,则将每一分箱内数据id的数量发送给所述目标变量提供方;
27.相应的,根据所述解密后的数据,计算正向数量占比和负向数量占比,包括:
28.根据所述分箱对应的解密后的目标变量之和以及全部正向数据id的总数量,计算正向数量占比;
29.根据所述分箱对应的解密后的目标变量之和、所述分箱内数据id的数量以及全部负向数据id的总数量,计算负向数量占比。
30.在一种可能的实现方式中,根据本地存储的所述多个数据id对应的特征变量,对所述多个数据id进行分箱,并在每个分箱中进行加密后的目标变量求和,将各分箱对应的求和结果发送给所述目标变量提供方,包括:
31.获取多种类型的特征变量;
32.针对每一类型,根据所述类型的特征变量,对所述多个数据id进行分箱,并在每个分箱中进行加密后的目标变量求和;
33.针对每一类型,将所述类型以及所述类型下各分箱对应的求和结果发送给所述目标变量提供方;
34.相应的,对所述求和结果进行解密,并根据解密后的数据计算所述特征变量的信息价值,包括:
35.针对每一类型,对各分箱对应的求和结果进行解密,并根据解密后的数据计算所述类型的特征变量的信息价值;
36.相应的,所述方法还包括:
37.若所述参与方为目标变量提供方,则在得到多个类型对应的信息价值后,对所述信息价值进行排序,并根据排序结果选择联邦模型训练所使用的特征变量类型;
38.判断所述特征变量提供方是否属于联邦模型训练的参与方,若是,则将所使用的特征变量类型发送给所述特征变量提供方,以联合所述特征变量提供方实现联邦模型的训练。
39.本发明还提供一种数据处理装置,应用于参与信息价值计算的任一参与方,所述装置包括:
40.第一处理模块,用于判断所述参与方是否为目标变量提供方,若所述参与方为目标变量提供方,则将多个数据id对应的目标变量分别进行同态加密,并将所述多个数据id以及加密后的目标变量发送给特征变量提供方;
41.第二处理模块,用于判断所述参与方是否为特征变量提供方,若所述参与方为特征变量提供方,则根据本地存储的所述多个数据id对应的特征变量,对所述多个数据id进行分箱,并在每个分箱中进行加密后的目标变量求和,将各分箱对应的求和结果发送给所述目标变量提供方;
42.第三处理模块,用于在所述参与方为目标变量提供方时,对所述求和结果进行解密,并根据解密后的数据计算所述特征变量的信息价值。
43.本发明还提供一种数据处理设备,所述数据处理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据处理程序,所述数据处理程序被所述处理器执行时实现如前述任一项所述的数据处理方法的步骤。
44.本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序被处理器执行时实现如前述任一项所述的数据处理方法的步骤。
45.本发明还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任一项所述的数据处理方法。
46.本发明提供的数据处理方法、装置、设备及存储介质,应用于参与信息价值计算的任一参与方,可以判断所述参与方是否为目标变量提供方,若所述参与方为目标变量提供方,则将多个数据id对应的目标变量分别进行同态加密,并将所述多个数据id以及加密后的目标变量发送给特征变量提供方;判断所述参与方是否为特征变量提供方,若所述参与方为特征变量提供方,则根据本地存储的所述多个数据id对应的特征变量,对所述多个数据id进行分箱,并在每个分箱中进行加密后的目标变量求和,将各分箱对应的求和结果发送给所述目标变量提供方;若所述参与方为目标变量提供方,则对所述求和结果进行解密,并根据解密后的数据计算所述特征变量的信息价值。本发明能够通过不同参与方分别对目标变量进行同态加密及分箱求和,从而安全、快速地实现不同参与方共同确定信息价值,提高模型训练的整体效率;并且,通过判断参与方的身份并为不同参与方提供不同的执行操
作,可以实现一套代码供多个参与方使用,无需为不同的参与方编写不同的代码,有效减少了信息价值计算代码的开发难度,提高确定信息价值的效率。
附图说明
47.图1为本发明实施例提供的一种应用场景示意图;
48.图2为本发明实施例提供的一种进行信息价值计算的多方交互示意图;
49.图3为本发明实施例提供的一种数据处理方法的流程示意图;
50.图4为本发明实施例提供的一种信息价值计算的原理示意图;
51.图5为本发明实施例提供的一种根据类型进行分箱求和的流程示意图;
52.图6为本发明实施例提供的另一种数据处理方法的流程示类型意图;
53.图7为本发明实施例提供的一种数据处理装置的结构示意图;
54.图8为本发明实施例提供的一种数据处理设备的结构示意图。
55.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
56.下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
57.在联邦学习过程中,多个参与方各自拥有样本数据,通过多个参与方联合实现联邦模型的训练。样本数据中可能含有多种类型的特征变量,对于每一种类型的特征变量,都可以通过计算其对应的信息价值来确定是否在模型训练时使用该类型的特征变量。特征变量的信息价值能够反映特征的预测能力,从而有效衡量其对模型预测结果的贡献。
58.图1为本发明实施例提供的一种应用场景示意图。如图1所示,联邦模型可以用于预测用户是否会逾期还款,可以用于联邦模型训练的特征变量的类型包括年龄、地域、存款等,在联邦模型训练之前的特征筛选阶段,可以计算每一类型的特征变量对应的信息价值,信息价值反映了该类型的特征变量对模型预测能力的贡献程度。
59.举例来说,假设用户的存款对是否会逾期有较大影响,存款越多,越不容易逾期,存款越少,越容易逾期,那么,存款这一类型对应的信息价值就较大;再假设用户所在的地域对是否会逾期没有太大影响,不同地域的逾期比例比较接近,那么,地域这一类型对应的信息价值就较小。
60.假设年龄、地域、存款对应的信息价值依次为0.6、0.1、0.9,其中年龄和存款的信息价值较高,因此可以挑选年龄和存款作为模型训练的特征变量类型。在模型训练阶段,可以将用户的年龄和用户的存款作为特征变量输入到模型进行训练,能够有效提高模型的预测能力。
61.在联邦机制下,用于计算信息价值的数据可能分布在不同的参与方。图2为本发明实施例提供的一种进行信息价值计算的多方交互示意图。如图2所示,a方具有数据id以及对应的特征变量如存款数额,b方具有数据id以及对应的目标变量,例如1表示逾期用户,0表示非逾期用户。a方和b方根据数据id、特征变量和目标变量共同计算信息价值。
62.在这种情况下,双方可能不希望对方获知自身具有的数据,因此如何安全地实现信息价值的计算是一个需要解决的问题。
63.此外,为了实现信息价值的计算,可能需要在a方执行一部分操作,在b方执行一部分操作,因此,需要开发人员为各个参与方分别设计不同的代码逻辑实现,涉及多方编程,比较复杂,导致确定信息价值所花费的时间较久,效率较低。
64.有鉴于此,本发明实施例提供一种可应用于上述任一参与方的数据处理方法,所述方法可以判断所述参与方是否为目标变量提供方,若是则将目标变量进行同态加密并发送,还可以判断所述参与方是否为特征变量提供方,若是则结合自身的特征变量和加密后的目标变量确定分箱的求和结果并发送,最终由所述目标变量提供方根据求和结果计算信息价值。本发明实施例能够通过不同参与方分别对目标变量进行同态加密及分箱求和,从而安全、快速地实现不同参与方共同确定信息价值,提高模型训练的整体效率;并且,通过判断参与方的身份并为不同参与方提供不同的执行操作,可以实现一套代码供多个参与方使用,无需为不同的参与方编写不同的代码,有效减少了信息价值计算代码的开发难度,提高确定信息价值的效率。
65.下面结合附图,对本发明的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
66.图3为本发明实施例提供的一种数据处理方法的流程示意图。本实施例提供的方法的执行主体可以为参与信息价值计算的任一参与方。
67.具体的,用于进行信息价值计算的数据可以分布在多个参与方,例如,所述多个参与方可以包括目标变量提供方和特征变量提供方,分别用于提供目标变量和特征变量。所述方法可以应用于其中任一参与方。所述参与方具体可以为服务器或终端设备等。如图3所示,所述方法可以包括:
68.步骤301、判断所述参与方是否为目标变量提供方,若所述参与方为目标变量提供方,则将多个数据id对应的目标变量分别进行同态加密,并将所述多个数据id以及加密后的目标变量发送给特征变量提供方。
69.在本发明实施例中,参与方在计算信息价值时,首先判断自己的身份是目标变量提供方还是特征变量提供方,并根据不同的身份执行不同的操作。
70.所述参与方可以通过多种方式来判断自己的身份。可选的,可以判断自身是否具有进行价值计算所需要的目标变量,从而确定自身是否为目标变量提供方;或者,可以根据自身具有的标识与目标变量提供方或特征变量提供方的标识进行比对来确定自己的身份;或者,也可以由用户输入所述参与方的身份信息。
71.若所述参与方为目标变量提供方,则可以将多个数据id(identity document,身份标识)对应的目标变量分别进行同态加密,并将所述多个数据id以及加密后的目标变量发送给特征变量提供方。
72.图4为本发明实施例提供的一种信息价值计算的原理示意图。如图4所示,目标变量提供方拥有数据id和目标变量。其中,数据id可以是指用于进行联邦模型训练的样本数据的id,样本数据可以包括目标变量和/或特征变量。所述数据id可以为样本数据对应的用户身份标识信息,例如身份证号、手机号码、账号、编号等。目标变量可以是指样本数据的标签,特征变量可以是非目标变量的数据。
73.具体的,特征变量提供方的数据id可以和目标变量提供方的数据id具有重合的部分,从而特征变量提供方和目标变量提供方可以使用相同数据id的样本数据来计算信息价值并进行特征选择。
74.参见图4,目标变量提供方拥有数据id:id1至idn,以及对应的目标变量:y1至yn。对于每一数据id,将所述数据id对应的目标变量分别进行同态加密,然后,将所述多个数据id以及加密后的目标变量发送给特征变量提供方,即,将idi、encry(yi)发送给特征变量提供方,其中,i的取值为从1至n,encry()表示同态加密。目标变量的示例可以参见表1。
75.表1一种目标变量的示例
76.数据id目标变量(是否逾期)id10id21id31id40id50id60id70id80id91
77.其中,目标变量为0,表示对应的用户没有逾期行为,目标变量为1,表示对应的用户有逾期行为。将每个id对应的目标变量分别进行同态加密,得到n个加密后的目标变量,并和数据id对应发送给特征变量提供方。
78.步骤302、判断所述参与方是否为特征变量提供方,若所述参与方为特征变量提供方,则根据本地存储的所述多个数据id对应的特征变量,对所述多个数据id进行分箱,并在每个分箱中进行加密后的目标变量求和,将各分箱对应的求和结果发送给所述目标变量提供方。
79.其中,所述参与方可以先执行上一步骤的判断,若判断结果为是,则执行上一步骤中的加密和发送的操作;若判断结果为否,则不执行上一步骤中的加密和发送的操作。
80.然后,无论上一步骤的判断结果是什么,所述参与方可以继续执行本步骤的判断,若判断结果为是,则执行本步骤的分箱和求和的操作,反之则不执行所述分箱和求和的操作。
81.具体的,在本步骤的判断结果为是时,可以根据本地存储的所述多个数据id对应的特征变量,对所述多个数据id进行分箱,得到每个分箱的id以及每个分箱中包含的数据id。
82.如图4所示,对n个数据id进行分箱后,得到k个分箱,其中k和n均为正整数且k<n,第i个分箱的id记为id_set_i,每一分箱可以包括一个或多个数据id,例如在第一个分箱id_set_i中,包括以下数据id:id1、id2、id5等。
83.分箱类似于对数据id进行分组的操作。在分箱时,可以考虑数据id对应的特征变量。例如,特征变量为用户的存款时,可以按照存款对数据id进行分箱。特征变量的示例可以参见表2。
84.表2一种特征变量的示例
85.数据id特征变量(存款)id110000id20id32000id45000id510000id620000id73500id850id92500
86.根据存款的情况,可以将存款划分为三档:0-999;1000-4999;5000及以上。按照这种划分方式对表2中的数据id进行分箱操作,可以得到三个分箱:对应于0-999这一档的分箱1包括id2、id8;对应于1000-4999这一档的分箱2包括id3、id7、id9;对应于5000及以上这一档的分箱3包括id1、id4、id5、id6。当然,也可以采用其它的分箱方法,本实施例对此不作限制。
87.在分箱后,可以在每个分箱中进行加密后的目标变量求和,并将各分箱对应的求和结果发送给所述目标变量提供方。
88.具体的,对于每一分箱,可以将该分箱中全部数据id对应的加密后的目标变量进行求和,得到该分箱对应的求和结果,并把每个分箱对应的求和结果发送给目标变量提供方。参见图4,sum(encry(yi))表示第i个分箱对应的求和结果。
89.步骤303、若所述参与方为目标变量提供方,则对所述求和结果进行解密,并根据解密后的数据计算所述特征变量的信息价值。
90.目标变量提供方在获取到求和结果后,可以对所述求和结果进行解密,得到求和结果的明文。由于本发明实施例中采用同态加密,数据先加密再求和,与数据先求和再加密得到的结果是一样的,因此,本步骤中直接对求和结果进行解密即可得到正确的明文,同时还可以保证原始数据没有被对方获得,整个过程中参与方没有泄漏任何原始数据。
91.在得到每个分箱的求和结果后,可以计算对应的信息价值。信息价值的计算方式可以有多种,本实施例对此不作限制。
92.在实际应用中,可以构建对应于上述步骤的代码,参与方可以执行同一套代码来实现上述步骤,参与方依次执行上述步骤里的判断语句,并在判断结果为是的时候执行对应的操作,从而使得不同参与方可以共用一套代码。
93.本实施例提供的数据处理方法,应用于参与信息价值计算的任一参与方,可以判断所述参与方是否为目标变量提供方,若所述参与方为目标变量提供方,则将多个数据id对应的目标变量分别进行同态加密,并将所述多个数据id以及加密后的目标变量发送给特征变量提供方;判断所述参与方是否为特征变量提供方,若所述参与方为特征变量提供方,则根据本地存储的所述多个数据id对应的特征变量,对所述多个数据id进行分箱,并在每个分箱中进行加密后的目标变量求和,将各分箱对应的求和结果发送给所述目标变量提供方;若所述参与方为目标变量提供方,则对所述求和结果进行解密,并根据解密后的数据计
算所述特征变量的信息价值。本发明实施例能够通过不同参与方分别对目标变量进行同态加密及分箱求和,从而安全、快速地实现不同参与方共同确定信息价值;并且,通过判断参与方的身份并为不同参与方提供不同的执行操作,可以实现一套代码供多个参与方使用,无需为不同的参与方编写不同的代码,有效减少了信息价值计算代码的开发难度,提高确定信息价值的效率。
94.在上述实施例提供的技术方案的基础上,可选的是,可以在源代码中设计特殊的语句用来标识不同参与方的操作,例如with role语句。可以参考如下源代码:
[0095][0096][0097]
其中,第1行的mpc语句用于指示加密方式为同态加密。第2行表示新建一fed_
feature函数。第3行的with role语句用于表示接下来的代码由哪个参与方执行。
[0098]
为了便于描述,目标变量提供方记为guest,简称g,特征变量提供方可以记为host,简称h。with role(g,h)表示接下来的代码g和h都会执行,with role(g)表示对应的代码只由g执行,with role(h)表示对应的代码只由h执行。
[0099]
参见上述代码,初始化的条件设置为“with role(g,h)”,初始化的操作可以包括读取数据等,由date=fed_sess.reader语句实现,g和h都会执行相应的操作。若是其中某一方有单独的操作,还可嵌套使用“with role()”语法。
[0100]
在guest中执行的代码,使用with_role(g)修饰,对yi以及1-yi进行同态加密,并把guest的数据id和同态加密后的结果push(发送)到host。
[0101]
在host中执行的代码,使用with_role(h)修饰,根据host的特征变量进行分箱处理,把guest发过来的加密的yi以及1-yi pull(取)出来,在分箱中进行密文求和。最终guest解密求出的和,并计算出信息价值,从而得到特征变量的预测能力。
[0102]
下面参考上述代码对信息价值的计算过程进行详细说明。
[0103]
首先,目标变量提供方guest将多个数据id对应的目标变量分别进行同态加密,并将所述多个数据id以及加密后的目标变量发送给特征变量提供方host。可选的,可以在对目标变量进行加密的同时,对目标变量的反变量进行加密,其中,对于任一数据id来说,其对应的目标变量的值与反变量的值正好相反。
[0104]
在所述目标变量的取值为1或0时,反变量的取值也可以为1和0,但是与目标变量相反。具体可以参见表3
[0105]
表3一种目标变量和反变量的示例
[0106][0107][0108]
如表3所示,根据每个数据id对应的目标变量,可以计算对应的反变量。假设目标变量为y,则反变量为1-y。
[0109]
具体的,将多个数据id对应的目标变量分别进行同态加密,并将所述多个数据id以及加密后的目标变量发送给特征变量提供方,可以包括:针对所述多个数据id中的每一数据id,对所述数据id对应的目标变量以及反变量分别进行同态加密;将所述多个数据id
以及每个数据id对应的加密后的目标变量和加密后的反变量发送给所述特征变量提供方。对目标变量和反变量分别进行同态加密能够有效保护目标变量和反变量,以确保数据不被泄露。
[0110]
参见上述代码,对于第i个数据id:idi,分别对其对应的目标变量yi和反变量1-yi进行同态加密,得到加密后的目标变量encry(yi)和反变量encry(1-yi),然后把idi、encry(yi)、encry(1-yi)发送(push)到host。
[0111]
可选的,在每个分箱中进行加密后的目标变量求和,可以包括:针对每一分箱,计算所述分箱中各数据id对应的加密后的目标变量之和以及加密后的反变量之和;其中,每一分箱包括至少一个数据id。通过在分箱中对目标变量和反变量分别进行求和,能够有效确定各个分箱中正向数据id的数量和负向数据id的数量,在保证数据安全的情况下提高数据处理效率。
[0112]
参见上述代码,在分箱处理后,host把encry(yi)、encry(1-yi)取出(pull),对于每一个分箱,求取所述分箱中至少一个数据id对应的加密后的目标变量之和sum(encry(yi))以及加密后的反变量之和sum(encry(1-yi)),然后把sum(encry(yi))和sum(encry(1-yi))反馈给guest。
[0113]
guest对sum(encry(yi))进行解密,得到的第i个分箱对应的目标变量之和npos_i;guest对sum(encry(1-yi))进行解密,得到的第i个分箱对应的反变量之和nneg_i。然后,可以根据解密后的数据计算信息价值。
[0114]
可选的,根据解密后的数据计算所述特征变量的信息价值,可以包括:针对每一分箱,根据所述解密后的数据,计算所述分箱对应的正向数量占比和负向数量占比;根据各个分箱对应的正向数量占比和负向数量占比,计算所述特征变量的信息价值。通过计算正向数量占比和负向数量占比可以快速、准确地实现信息价值的计算。
[0115]
其中,所述正向数量占比为所述分箱中正向数据id的数量与全部正向数据id的总数量的比值,所述负向数量占比为所述分箱中负向数据id的数量与全部负向数据id的总数量的比值;所述正向数据id为对应的目标变量为第一数值的数据id,所述负向数据id为对应的目标变量为非第一数值的数据id。
[0116]
所述第一数值可以根据实际需要来设计,可选的,所述第一数值可以为1,在目标变量为1时,表示用户有逾期行为,所述用户的数据id为正向数据id;反之,目标变量为0的数据id为负向数据id,表示对应的用户没有逾期行为。
[0117]
可选的,根据所述解密后的数据,计算所述分箱对应的正向数量占比和负向数量占比,可以包括:根据所述分箱对应的解密后的目标变量之和以及全部正向数据id的总数量,计算正向数量占比;根据所述分箱对应的解密后的反变量之和以及全部负向数据id的总数量,计算负向数量占比。通过目标变量之和以及反变量之和,可以快速、准确地确定正向数量占比和负向数量占比,提高数据处理的效率,并且不会有数据泄露。
[0118]
参见上述代码,distpos_i=npos_i/pos_total,其中,distpos_i为第i个分箱的正向数量占比,pos_total为全部正向数据id的总数量,即,所述多个数据id中正向数据id的总数量;distneg_i=nneg_i/neg_total,其中,distneg_i为第i个分箱的负向数量占比,neg_total为全部负向数据id的总数量,即,所述多个数据id中负向数据id的总数量。
[0119]
在得到第i个分箱对应的正向数量占比和负向数量占比后,可以计算第i个分箱对
应的woe(weight of evidence,证据权重):woe_i=100*log(dispos_i/distneg_i),以及iv(information value,信息价值):iv=(dispos_i-distneg_i)*log(dispos_i/distneg_i)。woe在一定程度上也可以反映特征的预测能力,iv可以在woe的基础上计算得到。
[0120]
通过上述代码,可以针对所述多个数据id中的每一数据id,对所述数据id对应的目标变量以及反变量分别进行同态加密并发送,针对每一分箱,计算所述分箱中各数据id对应的加密后的目标变量之和以及加密后的反变量之和,从而根据目标变量之和以及反变量之和计算正向数量占比和负向数量占比,快速、准确地计算信息价值,提高计算信息价值的效率。
[0121]
在上述实施例提供技术方案的基础上,可选的是,也可以不使用加密后的反变量,而是利用其它方法来确定负向数量占比。
[0122]
可选的,若所述参与方为特征变量提供方,则将每一分箱内数据id的数量发送给所述目标变量提供方。在每个分箱内数据id的数量相等的情况下,也可以只发送单个分箱内的数据id数量。
[0123]
相应的,根据所述解密后的数据,计算正向数量占比和负向数量占比,包括:根据所述分箱对应的解密后的目标变量之和以及全部正向数据id的总数量,计算正向数量占比;根据所述分箱对应的解密后的目标变量之和、所述分箱内数据id的数量以及全部负向数据id的总数量,计算负向数量占比。
[0124]
具体的,在计算每个分箱对应的负向数量占比时,可以将所述分箱内数据id的数量减去所述分箱对应的目标变量之和,得到的差再除以全部负向id的总数量,最终可以得到负向数量占比。
[0125]
在这种实现方式中,计算正向数量占比以及其它步骤的具体实现方案可以参见上述实施例,此处不再赘述。
[0126]
在本实现方式中,特征变量提供方与目标变量提供方之间无需传输反变量的信息,有效减少了根据反变量反推目标变量而导致目标变量泄露的问题,提高数据传输的效率以及计算的效率。
[0127]
当然,传输分箱内数据id的数量也不是必须的,目标变量提供方可以预先存储有分箱内数据id的数量,或者,可以由用户输入分箱内数据id的数量,从而进一步提高数据传输的效率。
[0128]
在上述各实施例提供的技术方案的基础上,可选的是,可以针对多个类型的特征变量分别进行处理。图5为本发明实施例提供的一种根据类型进行分箱求和的流程示意图。如图5所示,根据本地存储的所述多个数据id对应的特征变量,对所述多个数据id进行分箱,并在每个分箱中进行加密后的目标变量求和,将各分箱对应的求和结果发送给所述目标变量提供方,可以包括:
[0129]
步骤501、获取多种类型的特征变量。
[0130]
例如,特征变量可以包括年龄、存款等多种类型。
[0131]
步骤502、针对每一类型,根据所述类型的特征变量,对所述多个数据id进行分箱,并在每个分箱中进行加密后的目标变量求和。
[0132]
假设有两种类型的特征变量:年龄和存款。则可以按照前述方法,根据年龄对数据id进行分箱,并在每个分箱中计算加密后的目标变量之和,从而根据目标变量之和计算得
到年龄对应的信息价值。
[0133]
类似地,可以按照前述方法,根据存款对数据id进行分箱,并在每个分箱中计算加密后的目标变量之和,从而根据目标变量之和计算得到存款对应的信息价值。
[0134]
对不同类型的信息价值进行计算可以是并行实现的,也可以是先后实现的,本发明实施例对此不作限制。
[0135]
步骤503、针对每一类型,将所述类型以及所述类型下各分箱对应的求和结果发送给所述目标变量提供方。
[0136]
相应的,目标变量提供方对所述求和结果进行解密,并根据解密后的数据计算所述特征变量的信息价值,可以包括:针对每一类型,对各分箱对应的求和结果进行解密,并根据解密后的数据计算所述类型的特征变量的信息价值。
[0137]
具体的,对于每一种类型来说,均可以采用上述实施例中的方法计算该类型对应的信息价值,最终可以得到多个类型对应的信息价值。
[0138]
通过上述方案,可以计算得到不同类型对应的信息价值,从而可以根据不同类型对应的信息价值对特征变量进行选择,满足联邦学习的需求。
[0139]
可选的,所述方法还包括:若所述参与方为目标变量提供方,则在得到多个类型对应的信息价值后,对所述信息价值进行排序,并根据排序结果选择联邦模型训练所使用的特征变量类型;判断所述特征变量提供方是否属于联邦模型训练的参与方,若是,则将所使用的特征变量类型发送给所述特征变量提供方,以联合所述特征变量提供方实现联邦模型的训练。
[0140]
具体的,可以先对多个类型对应的信息价值进行排序,并根据排序选择预设数量的类型作为联邦模型训练时所使用的特征变量类型。
[0141]
在实际应用中,所述联邦模型可以为用于对用户是否会逾期进行预测的模型。在模型训练好后,可以将待分析的用户的特征变量输入的模型中,得到对应的结果,所述结果可以用于表示所述用户是否会逾期,或者逾期的可能性大小。根据得到的结果可以进行相应的处理,例如,将结果发送给工作人员,或者,根据结果对用户的贷款额度进行调整等等。
[0142]
进一步地,所述目标变量提供方可以判断与其交互的特征变量提供方是否属于联邦模型训练的参与方,若是,则将所使用的特征变量类型发送给所述特征变量提供方,从而所述目标变量提供方和所述特征变量提供方可以联合起来实现联邦模型的训练。若判断所述特征变量提供方不是联邦模型训练的参与方,则无需发送所使用的特征变量类型。
[0143]
通过对特征变量提供方的身份进行判断并决定是否发送所使用的特征变量类型,能够有效提高联邦模型训练的效率以及数据安全性。
[0144]
以上各实施例提供了参与方的执行过程,在此基础上,本发明实施例还提供一种编译过程。图6为本发明实施例提供的另一种数据处理方法的流程示意图。如图6所示,所述方法可以包括:
[0145]
步骤601、获取用于进行信息价值计算的源代码。
[0146]
其中,所述源代码包括角色标识以及操作代码。
[0147]
可选的,所述源代码可以包括多个角色标识以及从属于每个角色标识的操作代码;每个角色标识包括所述目标变量提供方和/或特征变量提供方的标识,从属于所述角色标识的操作代码用于指示对应的参与方执行的操作。
[0148]
具体的,所述用于进行信息价值计算的源代码可以为任意语言的代码,可选的,所述源代码可以为基于python语言编写的源代码。
[0149]
所述源代码的示例可以参见前述实施例提供的代码,角色标识可以通过with role语句限定,例如with role(g,h)、with role(g)、with role(h)均为角色标识,用于指示目标变量提供方和/或特征变量提供方。
[0150]
从属于每个角色标识的操作代码可以是所述角色标识对应的参与方需要执行的代码,例如角色标识with role(g)下的操作代码:{idi,encry(yi),encry(1-yi)}《-对yi以及1-yi进行同态加密,用于指示目标变量提供方需要进行同态加密的操作。
[0151]
步骤602、对所述源代码进行编译,得到用于进行信息价值计算的目标代码。
[0152]
具体的,对所述源代码进行编译,得到用于进行信息价值计算的目标代码。其中,所述角色标识在编译后对应生成判断语句,用于判断执行所述目标代码的参与方是否为所述角色标识对应的参与方,从属于所述角色标识的操作代码在编译后对应生成用于在所述判断语句的判断结果为是时执行的操作语句。
[0153]
例如,对角色标识with role(g)进行编译,生成用于判断参与方是否为目标变量提供方的判断语句。
[0154]
所述判断语句在结果为是时指向其对应的操作语句。对操作代码进行编译,可以得到对应的操作语句。
[0155]
本发明实施例中,可以使用联邦学习编译器对源代码进行编译,得到对应的目标代码,目标代码可以是机器能够执行的代码。
[0156]
可选的,联邦学习编译器可以先根据源代码生成计算图,计算图包括对应于角色标识的角色节点以及从属于角色节点的分支节点,分支节点根据从属于角色标识的操作代码生成。在得到计算图后,可以根据计算图生成目标代码,其中对应角色节点生成判断语句,对应其它的节点生成操作语句。
[0157]
可选的,函数中所有变量、运算符、控制符等都可以编译成中间代码,中间代码由op(算子)组成,包括数据op、运算op、控制op等。通过中间代码可以得到目标代码。
[0158]
步骤603、执行所述目标代码。
[0159]
具体的,参与方在执行所述目标代码时,可以实现前述任一实施例所述的方法,从而实现信息价值的计算,还可以实现特征的选择,具体的实现原理和过程可以参见前述实施例,此处不再赘述。
[0160]
本实施例提供的数据处理方法,通过获取用于进行信息价值计算的源代码,所述源代码包括多个角色标识以及从属于每个角色标识的操作代码,对所述源代码进行编译,得到目标代码,执行所述目标代码可以实现信息价值计算以及特征选择,简化了联邦场景下的信息价值计算以及特征选择功能的开发过程,不需要各方来回切换运行代码,方便了用户使用和调试。
[0161]
图7为本发明实施例提供的一种数据处理装置的结构示意图。所述数据处理装置可以应用于参与信息价值计算的任一参与方。如图7所示,所述数据处理装置可以包括:
[0162]
第一处理模块701,用于判断所述参与方是否为目标变量提供方,若所述参与方为目标变量提供方,则将多个数据id对应的目标变量分别进行同态加密,并将所述多个数据id以及加密后的目标变量发送给特征变量提供方;
[0163]
第二处理模块702,用于判断所述参与方是否为特征变量提供方,若所述参与方为特征变量提供方,则根据本地存储的所述多个数据id对应的特征变量,对所述多个数据id进行分箱,并在每个分箱中进行加密后的目标变量求和,将各分箱对应的求和结果发送给所述目标变量提供方;
[0164]
第三处理模块703,用于在所述参与方为目标变量提供方时,对所述求和结果进行解密,并根据解密后的数据计算所述特征变量的信息价值。
[0165]
本发明提供的数据处理装置,应用于参与信息价值计算的任一参与方,可以判断所述参与方是否为目标变量提供方,若所述参与方为目标变量提供方,则将多个数据id对应的目标变量分别进行同态加密,并将所述多个数据id以及加密后的目标变量发送给特征变量提供方;判断所述参与方是否为特征变量提供方,若所述参与方为特征变量提供方,则根据本地存储的所述多个数据id对应的特征变量,对所述多个数据id进行分箱,并在每个分箱中进行加密后的目标变量求和,将各分箱对应的求和结果发送给所述目标变量提供方;若所述参与方为目标变量提供方,则对所述求和结果进行解密,并根据解密后的数据计算所述特征变量的信息价值,能够通过不同参与方分别对目标变量进行同态加密及分箱求和,从而安全、快速地实现不同参与方共同确定信息价值,提高模型训练的整体效率;并且,通过判断参与方的身份并为不同参与方提供不同的执行操作,可以实现一套代码供多个参与方使用,无需为不同的参与方编写不同的代码,有效减少了信息价值计算代码的开发难度,提高确定信息价值的效率。
[0166]
在一种可选的实现方式中,所述数据处理装置还包括:
[0167]
编译模块,用于获取用于进行信息价值计算的源代码,所述源代码包括多个角色标识以及从属于每个角色标识的操作代码;其中,每个角色标识包括所述目标变量提供方和/或特征变量提供方的标识,从属于所述角色标识的操作代码用于指示所述角色标识对应的参与方执行的操作;对所述源代码进行编译,得到目标代码,以根据所述目标代码实现信息价值计算;其中,所述角色标识在编译后对应生成判断语句,用于判断执行所述目标代码的参与方是否为所述角色标识对应的参与方,从属于所述角色标识的操作代码在编译后对应生成用于在所述判断语句的判断结果为是时执行的操作语句。
[0168]
在一种可选的实现方式中,所述第三处理模块703在根据解密后的数据计算所述特征变量的信息价值时,具体用于:
[0169]
针对每一分箱,根据所述解密后的数据,计算所述分箱对应的正向数量占比和负向数量占比;
[0170]
根据各个分箱对应的正向数量占比和负向数量占比,计算所述特征变量的信息价值;
[0171]
其中,所述正向数量占比为所述分箱中正向数据id的数量与全部正向数据id的总数量的比值,所述负向数量占比为所述分箱中负向数据id的数量与全部负向数据id的总数量的比值;
[0172]
所述正向数据id为对应的目标变量为第一数值的数据id,所述负向数据id为对应的目标变量为非第一数值的数据id。
[0173]
在一种可选的实现方式中,所述第一处理模块701在将多个数据id对应的目标变量分别进行同态加密,并将所述多个数据id以及加密后的目标变量发送给特征变量提供方
时,具体用于:
[0174]
针对所述多个数据id中的每一数据id,对所述数据id对应的目标变量以及反变量分别进行同态加密;
[0175]
将所述多个数据id以及每个数据id对应的加密后的目标变量和加密后的反变量发送给所述特征变量提供方;
[0176]
相应的,所述第二处理模块702在每个分箱中进行加密后的目标变量求和时,具体用于:
[0177]
针对每一分箱,计算所述分箱中各数据id对应的加密后的目标变量之和以及加密后的反变量之和;其中,每一分箱包括至少一个数据id。
[0178]
在一种可选的实现方式中,所述第三处理模块703在根据所述解密后的数据,计算所述分箱对应的正向数量占比和负向数量占比时,具体用于:
[0179]
根据所述分箱对应的解密后的目标变量之和以及全部正向数据id的总数量,计算正向数量占比;
[0180]
根据所述分箱对应的解密后的反变量之和以及全部负向数据id的总数量,计算负向数量占比。
[0181]
在一种可选的实现方式中,所述第二处理模块702还用于:
[0182]
若所述参与方为特征变量提供方,则将每一分箱内数据id的数量发送给所述目标变量提供方;
[0183]
相应的,所述第三处理模块703在根据所述解密后的数据,计算正向数量占比和负向数量占比时,具体用于:
[0184]
根据所述分箱对应的解密后的目标变量之和以及全部正向数据id的总数量,计算正向数量占比;
[0185]
根据所述分箱对应的解密后的目标变量之和、所述分箱内数据id的数量以及全部负向数据id的总数量,计算负向数量占比。
[0186]
在一种可选的实现方式中,所述第二处理模块702在根据本地存储的所述多个数据id对应的特征变量,对所述多个数据id进行分箱,并在每个分箱中进行加密后的目标变量求和,将各分箱对应的求和结果发送给所述目标变量提供方时,具体用于:
[0187]
获取多种类型的特征变量;
[0188]
针对每一类型,根据所述类型的特征变量,对所述多个数据id进行分箱,并在每个分箱中进行加密后的目标变量求和;
[0189]
针对每一类型,将所述类型以及所述类型下各分箱对应的求和结果发送给所述目标变量提供方;
[0190]
相应的,所述第三处理模块703在对所述求和结果进行解密,并根据解密后的数据计算所述特征变量的信息价值时,具体用于:
[0191]
针对每一类型,对各分箱对应的求和结果进行解密,并根据解密后的数据计算所述类型的特征变量的信息价值;
[0192]
相应的,所述第三处理模块703还用于:
[0193]
若所述参与方为目标变量提供方,则在得到多个类型对应的信息价值后,对所述信息价值进行排序,并根据排序结果选择联邦模型训练所使用的特征变量类型;
[0194]
判断所述特征变量提供方是否属于联邦模型训练的参与方,若是,则将所使用的特征变量类型发送给所述特征变量提供方,以联合所述特征变量提供方实现联邦模型的训练。
[0195]
本实施例提供的数据处理装置,可以用于执行前述任一方法实施例提供的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0196]
图8为本发明实施例提供的一种数据处理设备的结构示意图。如图8所示,所述设备可以包括:存储器801、处理器802及存储在所述存储器801上并可在所述处理器802上运行的数据处理程序,所述数据处理程序被所述处理器802执行时实现如前述任一实施例所述的数据处理方法的步骤。
[0197]
可选地,存储器801既可以是独立的,也可以跟处理器802集成在一起。
[0198]
本实施例提供的设备的实现原理和技术效果可以参见前述各实施例,此处不再赘述。
[0199]
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序被处理器执行时实现如前述任一实施例所述的数据处理方法的步骤。
[0200]
本发明实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任一项所述的数据处理方法。
[0201]
在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
[0202]
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本发明各个实施例所述方法的部分步骤。
[0203]
应理解,上述处理器可以是中央处理单元(central processing unit,简称cpu),还可以是其它通用处理器、数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0204]
存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器,还可以为u盘、移动硬盘、只读存储器、磁盘或光盘等。
[0205]
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
[0206]
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(application specific integrated circuits,简称asic)
中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
[0207]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0208]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0209]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0210]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献