数据平衡度处理方法、联合建模系统、设备和介质转让专利

申请号 : CN202210892714.2

文献号 : CN114969669B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡姣姣李如先陈曦冯思博

申请人 : 深圳前海环融联易信息科技服务有限公司

摘要 :

本申请涉及联合建模技术领域,公开了一种数据平衡度处理方法、联合建模系统、设备和介质,以解决传统通过设置代价矩阵带来的局限性问题。方法部分包括:接收各个参与节点发送的节点本地的少数类样本数和多数类样本数;根据各个所述参与节点发送的少数类样本数和多数类样本数,确定出全局样本平衡度;根据所述全局样本平衡度向各所述参与节点发送目标通知消息,所述目标通知消息用于指示各所述参与节点是否分别对各所述参与节点的本地样本数据进行平衡度修正。

权利要求 :

1.一种数据平衡度处理方法,用于联合建模任务的中心节点,其特征在于,所述方法包括:接收各个参与节点发送的节点本地的少数类样本数和多数类样本数;

对所有所述参与节点发送的所述少数类样本数进行统计,得到全局少数类样本数,并对所有所述参与节点发送的所述多数类样本数进行统计,得到全局多数类样本数;计算所述全局少数类样本数与所述全局多数类样本数的比值,将所述比值作为全局样本平衡度;

根据所述全局样本平衡度向各所述参与节点发送目标通知消息,所述目标通知消息用于指示各所述参与节点是否分别对各所述参与节点的本地样本数据进行平衡度修正;

所述根据所述全局样本平衡度向各所述参与节点发送目标通知消息,包括:判断所述全局样本平衡度与预设全局样本平衡度的大小关系;

当所述全局样本平衡度小于所述预设全局样本平衡度,则向所述各所述参与节点发送第一通知消息,以使各所述参与节点分别对各自的本地样本数据的平衡度进行修正。

2.如权利要求1所述的数据平衡度处理方法,其特征在于,所述根据所述全局样本平衡度向各所述参与节点发送目标通知消息,还包括:当所述全局样本平衡度大于或等于所述预设全局样本平衡度,则向所述各所述参与节点发送第二通知消息,以使各所述参与节点等待启动联合建模任务。

3.如权利要求1所述的数据平衡度处理方法,其特征在于,所述接收各个参与节点发送的节点本地的少数类样本数和多数类样本数,包括:接收各个参与节点按照差分隐私加密方式发送的节点本地的少数类样本数和多数类样本数。

4.一种数据平衡度处理方法,用于联合建模任务的参与节点,其特征在于,所述方法包括:对所述参与节点的本地样本数据进行分析统计,得到所述参与节点本地的少数类样本数和多数类样本数;

将所述少数类样本数和多数类样本数发送至中心节点,以使中心节点对所有所述参与节点发送的所述少数类样本数进行统计,得到全局少数类样本数,并对所有所述参与节点发送的所述多数类样本数进行统计,得到全局多数类样本数;计算所述全局少数类样本数与所述全局多数类样本数的比值,将所述比值作为全局样本平衡度;

接收所述中心节点反馈的目标通知消息,所述目标通知消息用于指示各所述参与节点是否分别对各自的本地样本数据进行平衡度修正,所述目标通知消息为所述中心节点根据所述全局样本平衡度所确定;

如果所述目标通知消息为第一通知消息,则对自身的所述本地样本数据进行平衡度修正;其中,所述第一通知消息为所述中心节点在判定所述全局样本平衡度小于预设全局样本平衡时发送的。

5.如权利要求4所述的数据平衡度处理方法,其特征在于,所述根据所述目标通知消息,确定是否对自身的所述本地样本数据进行平衡度修正,还包括:如果所述目标通知消息为第二通知消息,则等待启动联合建模任务;

所述第二通知消息为所述中心节点在判定所述全局样本平衡度大于或等于所述预设全局样本平衡时发送的。

6.如权利要求4所述的数据平衡度处理方法,其特征在于,所述对自身的所述本地样本数据进行平衡度修正,包括:根据所述参与节点本地的少数类样本数和多数类样本数,计算得到本地样本平衡度;

判断所述本地样本平衡度与预设本地样本平衡度的大小关系;

当所述本地样本平衡度小于所述预设本地样本平衡度,则对所述本地样本数据进行平衡度修正,直至所述本地样本平衡度大于或等于所述预设本地样本平衡度;

将所述本地样本平衡度修正后对应的所述少数类样本数和多数类样本数,发送至所述中心节点。

7.如权利要求5所述的数据平衡度处理方法,其特征在于,所述等待启动联合建模任务之后,所述方法还包括:接收用于所述联合建模任务的训练任务参数;

根据所述训练任务参数对所述参与节点参与到联合训练的本地样本数据量进行设置,得到的目标本地样本数据量;

基于所述目标本地样本数据量对应的目标样本数据进行联合建模任务。

8.如权利要求7所述的数据平衡度处理方法,其特征在于,所述训练任务参数包括联合建模时所需的目标数据量和最大迭代次数,所述根据所述训练任务参数对所述参与节点参与到联合训练的本地样本数据量进行设置,得到的目标本地样本数据量,包括:计算所述目标数据量与所述全局少数类样本数的比值;

根据所述比值和所述最大迭代次数,对所述参与节点参与到联合训练的本地样本数据量进行设置,得到的目标本地样本数据量。

9.如权利要求8所述的数据平衡度处理方法,其特征在于,所述根据所述比值和所述最大迭代次数,对所述参与节点参与到联合训练的本地样本数据量进行设置,得到的目标本地样本数据量,包括:通过如下计算方式对所述参与节点参与到联合训练的本地样本数据量进行设置,得到的所述目标本地样本数据量:其中,batch_size_new表示所述目标本地样本数据量,所述batch_size表示所述目标数据量,q表示所述比值,max_iter表示所述最大迭代次数。

10.一种联合建模系统,包括中心节点、参与节点及数据平衡度处理装置,其特征在于,所述数据平衡度处理装置包括:第二处理模块,用于对所述参与节点本地的样本数据进行分析统计,得到所述参与节点本地的少数类样本数和多数类样本数;

第二发送模块,用于将所述少数类样本数和多数类样本数发送至中心节点;

第一接收模块,用于接收各个参与节点本地的少数类样本数和多数类样本数;

第一处理模块,用于对所有所述参与节点发送的所述少数类样本数进行统计,得到全局少数类样本数,并对所有所述参与节点发送的所述多数类样本数进行统计,得到全局多数类样本数;计算所述全局少数类样本数与所述全局多数类样本数的比值,将所述比值作为全局样本平衡度;

第一发送模块,用于当所述全局样本平衡度小于预设全局样本平衡度,则向所述各所述参与节点发送第一通知消息;

第二接收模块,用于接收所述第一通知消息;

所述第二处理模块,还用于当接收到所述第一通知消息,则分别对所述参与节点各自的本地样本数据的平衡度进行修正。

11.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至

9任一项所述的数据平衡度处理方法的步骤。

12.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述的数据平衡度处理方法的步骤。

说明书 :

数据平衡度处理方法、联合建模系统、设备和介质

技术领域

[0001] 本申请涉及联合建模技术领域,尤其涉及一种数据平衡度处理方法、联合建模系统、设备和介质。

背景技术

[0002] 安全联合建模是指多个参与方在不暴露各自数据的情况下,联合完成模型训练的过程,模型训练的质量很大程度上依赖各参与方的本地样本数据的质量,各个参与方的本地样本数据很难保证样本分布均衡。
[0003] 传统的方案中,发明人研究发现,不平衡数据的问题主要是通过算法修正全局多数类样本的偏度,例如通过设置代价矩阵,使用不同的惩罚系数对不同的样本进行处理,但是算法中的代价矩阵一般是根据领域专家的先验知识提供的,需先统计汇总领域专家的先验知识,再换算出代价矩阵,过程繁琐,在实际落地中具有很大的局限性。

发明内容

[0004] 本申请提供一种数据平衡度处理方法、联合建模系统、设备和介质,以解决传统通过设置代价矩阵带来的局限性问题。
[0005] 一种数据平衡度处理方法,用于联合建模任务的中心节点,所述方法包括:
[0006] 接收各个参与节点发送的节点本地的少数类样本数和多数类样本数;
[0007] 根据各个所述参与节点发送的少数类样本数和多数类样本数,确定出全局样本平衡度;
[0008] 根据所述全局样本平衡度向各所述参与节点发送目标通知消息,所述目标通知消息用于指示各所述参与节点是否分别对各所述参与节点的本地样本数据进行平衡度修正。
[0009] 在一实施方式中,所述目标通知消息为第一通知消息或第二通知消息,所述根据所述全局样本平衡度向各所述参与节点发送目标通知消息,包括:
[0010] 判断所述全局样本平衡度与预设全局样本平衡度的大小关系;
[0011] 当所述全局样本平衡度小于所述预设全局样本平衡度,则向所述各所述参与节点发送所述第一通知消息,以使各所述参与节点分别对各自的本地样本数据的平衡度进行修正;
[0012] 当所述全局样本平衡度大于或等于所述预设全局样本平衡度,则向所述各所述参与节点发送所述第二通知消息,以使各所述参与节点等待启动联合建模任务。
[0013] 在一实施方式中,所述根据各个所述参与节点发送的少数类样本数和多数类样本数,确定出全局样本平衡度,包括:
[0014] 对所有所述参与节点发送的所述少数类样本数进行统计,得到全局少数类样本数,并对所有所述参与节点发送的所述多数类样本数进行统计,得到全局多数类样本数;
[0015] 计算所述全局少数类样本数与所述全局多数类样本数的比值,将所述比值作为所述全局样本平衡度。
[0016] 在一实施方式中,所述接收各个参与节点发送的节点本地的少数类样本数和多数类样本数,包括:
[0017] 接收各个参与节点按照差分隐私加密方式发送的节点本地的少数类样本数和多数类样本数。
[0018] 一种数据平衡度处理方法,用于联合建模任务的参与节点,所述方法包括:
[0019] 对所述参与节点的本地样本数据进行分析统计,得到所述参与节点本地的少数类样本数和多数类样本数;
[0020] 将所述少数类样本数和多数类样本数发送至中心节点,以使中心节点根据全局各个所述参与节点发送的少数类样本数和多数类样本数确定出全局样本平衡度;
[0021] 接收所述中心节点反馈的目标通知消息,所述目标通知消息用于指示各所述参与节点是否分别对各自的本地样本数据进行平衡度修正,所述目标通知消息为所述中心节点根据所述全局样本平衡度所确定;
[0022] 根据所述目标通知消息,确定是否对自身的所述本地样本数据进行平衡度修正。
[0023] 在一实施方式中,所述根据所述目标通知消息,确定是否对自身的所述本地样本数据进行平衡度修正,包括:
[0024] 如果所述目标通知消息为第一通知消息,则对自身的所述本地样本数据进行平衡度修正;
[0025] 如果所述目标通知消息为第二通知消息,则等待启动联合建模任务;
[0026] 其中,所述第一通知消息为所述中心节点在判定所述全局样本平衡度小于预设全局样本平衡时发送的,所述第二通知消息为所述中心节点在判定所述全局样本平衡度大于或等于所述预设全局样本平衡时发送的。
[0027] 在一实施方式中,所述对自身的所述本地样本数据进行平衡度修正,包括:
[0028] 根据所述参与节点本地的少数类样本数和多数类样本数,计算得到本地样本平衡度;
[0029] 判断所述本地样本平衡度与预设本地样本平衡度的大小关系;
[0030] 当所述本地样本平衡度小于所述预设本地样本平衡度,则对所述本地样本数据进行平衡度修正,直至所述本地样本平衡度大于或等于所述预设本地样本平衡度;
[0031] 将所述本地样本平衡度修正后对应的所述少数类样本数和多数类样本数,发送至所述中心节点。
[0032] 在一实施方式中,所述等待启动联合建模任务之后,所述方法还包括:
[0033] 接收用于联合建模任务的训练任务参数;
[0034] 根据所述训练任务参数对所述参与节点参与到联合训练的本地样本数据量进行设置,得到的目标本地样本数据量;
[0035] 基于所述目标本地样本数据量对应的目标样本数据进行联合建模任务。
[0036] 在一实施方式中,所述训练任务参数包括联合建模时所需的目标数据量和最大迭代次数,所述根据所述训练任务参数对所述参与节点参与到联合训练的本地样本数据量进行设置,得到的目标本地样本数据量,包括:
[0037] 计算所述目标数据量与所述全局少数类样本数的比值;
[0038] 根据所述比值和所述最大迭代次数,对所述参与节点参与到联合训练的本地样本数据量进行设置,得到的目标本地样本数据量。
[0039] 在一实施方式中,所述根据所述比值和所述最大迭代次数,对所述参与节点参与到联合训练的本地样本数据量进行设置,得到的目标本地样本数据量,包括:
[0040] 通过如下计算方式对所述参与节点参与到联合训练的本地样本数据量进行设置,得到的所述目标本地样本数据量:
[0041] batch_size_new=batch_size*(q/max_iter);
[0042] 其中,batch_size_new表示所述目标本地样本数据量,所述batch_size表示所述目标数据量,q表示所述比值,max_iter表示所述最大迭代次数。
[0043] 一种联合建模系统,包括中心节点、参与节点及数据平衡度处理装置,所述数据平衡度处理装置包括:
[0044] 第一接收模块,用于接收各个参与节点发送的各个参与节点本地的少数类样本数和多数类样本数;
[0045] 第一处理模块,用于对根据各个所述参与节点发送的少数类样本数和多数类样本数,确定出全局样本平衡度;
[0046] 第一发送模块,用于根据所述全局样本平衡度向各所述参与节点发送目标通知消息,所述目标通知消息用于指示各所述参与节点是否对各所述参与节点本地的样本数据进行平衡度修正;
[0047] 第二处理模块,用于对所述参与节点本地的样本数据进行分析统计,得到所述参与节点本地的少数类样本数和多数类样本数;
[0048] 第二发送模块,用于将所述少数类样本数和多数类样本数发送至中心节点,以使中心节点根据全局各个所述参与节点发送的数类样本数和多数类样本数确定出全局样本平衡度;
[0049] 第二接收模块,用于接收所述中心节点反馈的目标通知消息,所述目标通知消息用于指示各所述参与节点是否对各所述参与节点本地的样本数据进行平衡度修正,所述全局样本平衡度为所述中心节点根据所述全局样本平衡度所确定;
[0050] 所述第二处理模块,还用于根据所述目标通知消息,确定是否对本地的样本数据进行平衡度修正。
[0051] 一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如前述任一项所述的数据平衡度处理方法的步骤。
[0052] 一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如前述任一项所述的数据平衡度处理方法的步骤。
[0053] 上述所提供的其中一个方案中,通过增加了中心节点来把控联合建模任务中的全局样本平衡度,通过与各参与节点的交互以保证数据整体平衡度符合条件,可降低后续在联合建模过程中的过拟合。在联合计算的时候,有利于提高计算效率和模型性能,而且无需像传统方案那样需获取专家的先验知识去构建代价矩阵,在实际落地中仅需控制该中心节点参与节点的处理逻辑便行,在实际落地中比较方便快捷,实用性较强。

附图说明

[0054] 为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0055] 图1是本申请一实施例中联合建模系统的一系统示意图;
[0056] 图2是本申请一实施例中数据平衡度处理方法的一流程示意图;
[0057] 图3是本申请一实施例中数据平衡度处理方法的另一流程示意图;
[0058] 图4是本申请一实施例中数据平衡度处理装置的一结构示意图;
[0059] 图5是本申请一实施例中计算机设备的一结构示意图。

具体实施方式

[0060] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0061] 本实施例提供了一种数据平衡度处理方法、联合建模系统、装置、计算机设备和计算机存储介质。为便于理解,这里先对本申请实施例提供的联合建模系统的系统框架做描述。如图1所示,该联合建模系统包括中心节点和多个参与节点,例如参与节点包括参与节点1、参与节点2、...、参与节点M。各个参与节点为提供本地样本数据的计算机设备,例如客户端等,中心节点为用于与各个参与节点进行交互的计算机设备,例如中心服务器等。
[0062] 其中,所述中心节点旨在对所有参与联合建模任务的参与节点的本地样本数据进行整体分析,并与各参与联合建模的参与节点进行交互;各参与节点旨在依据中心节点的分析结果,对参与节点的本地样本数据的质量进行分析,用于对不平衡数据进行相应程度的处理,以满足后续联合建模的要求,并用于后面的实际建模计算。
[0063] 基于该联合建模系统,本申请实施例提供了一种数据平衡度处理方法,提供了一种新的解决数据不平衡问题的技术方案,以提高最终联合建模得到的模型的性能。下面分别从中心节点和参与节点的角度,对本申请实施例提供的数据平衡度处理方法进行详细的描述。
[0064] 在一实施例中,如图2所示,提供一种数据平衡度处理方法,以该方法应用在图1中参与到联合建模任务的中心节点为例进行说明,包括如下步骤:
[0065] S10:接收各个参与节点发送的节点本地的少数类样本数和多数类样本数。
[0066] 该实施例中,各可参与联合建模任务的参与节点,会对用于联合建模任务的本地样本数据,进行统计分析,分析指标包含少数类样本和多数类样本,从而各参与节点可分别得到其节点本地的少数类样本数和多数类样本数。
[0067] 可以理解的是,各参与节点的本地样本数据中的各种类别的样本数量一般是不均衡的,体现为少数类样本数和多数类样本数在数量上的差异,差异的多少则体现了该参与节点本地样本数据的样本平衡度,本申请将各参与节点本地样本数据的样本平衡度定义为本地样本平衡度。发明人研究发现,各参与节点的本地样本平衡度是无法表征联合建模任务全局上的样本平衡度,也即全局样本平衡度。因此,本申请实施例中,各个参与节点会分别将各自统计的节点本地的少数类样本数和多数类样本数发送给中心节点。
[0068] 例如,以图1为例,以M个参与节点为例,参与节点1会将统计的参与节点1本地的少数类样本数和多数类样本数发送给中心节点;参与节点2会将统计的参与节点2本地的少数类样本数和多数类样本数发送给中心节点;以此类推,参与节点3‑M也会分别将各自本地的少数类样本数和多数类样本数发送给中心节点。对于该中心节点而言,会接收各个参与节点发送的节点本地的少数类样本数和多数类样本数。
[0069] S20:根据各个所述参与节点发送的少数类样本数和多数类样本数,确定出全局样本平衡度。
[0070] S30:根据所述全局样本平衡度向各所述参与节点发送目标通知消息,所述目标通知消息用于指示各所述参与节点是否对各所述参与节点的本地样本数据进行平衡度修正。
[0071] 对于步骤S20‑30,中心节点接收到各个参与节点发送的节点本地的少数类样本数和多数类样本数后,对所有接收的少数类样本数和多数类样本数进行统计分析,从而确定出全局样本平衡度。
[0072] 如前述解释,该全局样本平衡度可以反映全局参与联合建模任务所有的样本数据的样本平衡度情况,该全局样本平衡度是影响最终联合建模性能效果的关键所在,因此,中心节点在确定出全局样本平衡度之后,会进一步基于该全局样本平衡度的情况生成目标通知消息,其中,该目标通知消息用于指示各所述参与节点是否对各所述参与节点的本地样本数据进行平衡度修正,再将目标通知消息发送至各参与节点,以使各参与节点响应该目标通知消息确定是否对各自的本地样本数据进行平衡度修正。
[0073] 可见,在该实施例,提供了一种数据平衡度处理方法,站在中心节点侧的角度描述,通过增加了中心节点来把控联合建模任务中的全局样本平衡度,通过与各参与节点的交互以保证数据整体平衡度符合条件,可降低后续在联合建模过程中的过拟合。在联合计算的时候,有利于提高计算效率和模型性能,而且无需像传统方案那样需获取专家的先验知识去构建代价矩阵,在实际落地中仅需控制该中心节点参与节点的处理逻辑便行,在实际落地中比较方便快捷,实用性较强。
[0074] 具体而言,所述目标通知消息为第一通知消息或第二通知消息,步骤S30中,也即所述根据所述全局样本平衡度向各所述参与节点发送目标通知消息,具体包括如下步骤:
[0075] S31:判断所述全局样本平衡度与预设全局样本平衡度的大小关系。
[0076] S32:当所述全局样本平衡度小于所述预设全局样本平衡度,则向所述各所述参与节点发送所述第一通知消息,以使各所述参与节点分别对各自的本地样本数据的平衡度进行修正。
[0077] S33:当所述全局样本平衡度大于或等于所述预设全局样本平衡度,则向所述各所述参与节点发送所述第二通知消息,以使各所述参与节点等待启动联合建模任务。
[0078] 该实施例中,会设定一个预设全局样本平衡度,示例性的,该预设全局样本平衡度可设置为0.5,需要说明的是,该预设全局样本平衡度为一种经验值,在实际应用中,也可以选择其他合适的数值,例如在0.5上下波动也是可以的。当全局样本平衡度能够达到该预设全局样本平衡度以上,则可降低后续在联合建模过程中的过拟合,在基于满足上述全局样本平衡度的训练样本进行联合计算的时候,将有利于提高计算效率和模型性能,因此,本申请实施例中,中心节点在接收到全局样本平衡度之后,会判断所述全局样本平衡度与预设全局样本平衡度的大小关系。
[0079] 如果当所述全局样本平衡度小于所述预设全局样本平衡度,则会向各所述参与节点发送所述第一通知消息,该第一通知消息用于指示各所述参与节点分别对各自的本地样本数据的平衡度进行修正,以使各参与节点的本地样本数据的平衡度进行修正。示例性的,计算出来的全局样本平衡度如果小于0.5,说明全局样本情况是不均衡的,这样的本地样本数据如果参与到联合建模中,将影响模型性能,因此,中心节点会指示各个参与节点分别对各自的本地样本数据进行修正,直至全局样本平衡度大于或等于预设全局样本平衡度。
[0080] 如果当所述全局样本平衡度大于或等于所述预设全局样本平衡度,则向所述各所述参与节点发送所述第二通知消息,该第二通知消息用于指示参与节点等待启动联合建模任务,也即如果参与节点接收到第二通知消息,则该参与节点无需对其本地样本数据的平衡度进行修正,可以等待启动联合建模任务。
[0081] 在该实施例中,细化了目标通知消息的情况,明确了通过定义出的预设全局样本平衡度来确定是否需要进行全局样本平衡度的修正,提高了方案的可实施性。
[0082] 在一实施例中,步骤S20中,也即所述根据各个所述参与节点发送的少数类样本数和多数类样本数,确定出全局样本平衡度,具体包括如下步骤:
[0083] S21:对所有所述参与节点发送的所述少数类样本数进行统计,得到全局少数类样本数,并对所有所述参与节点发送的所述多数类样本数进行统计,得到全局多数类样本数。
[0084] S21:计算所述全局少数类样本数与所述全局多数类样本数的比值,将所述比值作为所述全局样本平衡度。
[0085] 对于该步骤S21‑S22,中心节点在接收到所有所述参与节点发送的所述少数类样本数之后,对所有所述参与节点发送的所述少数类样本数进行统计,得到全局少数类样本数。具体而言,中心节点对所有所述参与节点发送的所述少数类样本数进行汇总求和,以得到全局少数类样本数。例如,设定全局少数类样本数为Pn,Pn=∑Pni,其中,i∈1~M,i表示参与节点i,Pni表示参与节点i发送的少数类样本数。
[0086] 同理,中心节点在接收到所有所述参与节点发送的所述多数类样本数之后,对所有所述参与节点发送的所述多数类样本数进行统计,得到全局多数类样本数。具体而言,中心节点对所有所述参与节点发送的所述多数类样本数进行汇总求和,以得到全局多数类样本数。例如,设定全局多数类样本数为Nn,Nn=∑Nni,其中,i∈1~M,i表示参与节点i,Nni表示参与节点i发送的多数类样本数。
[0087] 在得到全局少数类样本数Pn以及全局多数类样本数Nn后,计算所述全局少数类样本数Pn与所述全局多数类样本数Nn的比值,将所述比值作为所述全局样本平衡度。计算公式为:Pn/Nn=b,b表示全局样本平衡度。
[0088] 在一实施例中,步骤S10中,也即述接收各个参与节点发送的节点本地的少数类样本数和多数类样本数,包括:接收各个参与节点按照差分隐私加密方式分别发送的节点本地的少数类样本数和多数类样本数。
[0089] 示例性的,除了差分隐私加密手段,当然,也可以是其他隐私加密手段,只要能保证不暴露隐私信息,而又能使得中心节点计算出全局样本平衡度的加密手段均可,这里不做限定。这样,中心节点在收集所有参与节点的少数类样本数和多数类样本数的时候,在传输过程中由于采用差分隐私的加密手段对参与节点反馈的少数类样本数和多数类样本数的分析结果进行加密,比如在分析结果中加入噪声,当中心节点收到结果后直接对所有结果进行求和,求和过程中各参与节点的分析结果的噪声相互抵消,那么中心节点只得到最终的求和结果,保护了中间结果的隐私性,也防止在中心节点在不诚实的情况下,数据信息的安全性。值得说明的是,少数类样本数和多数类样本数的分析结果虽然仅是数据量大小,而不是具体数据,但是这种数据分布情况依旧是一种体现参与方的业务等特性的数据,因此,有必要对各参与节点的分析结果进行加密,提高隐私信息的安全性,而且,也不会影响本案的实施。
[0090] 在一实施例中,如图3所示,提供一种数据平衡度处理方法,以该方法应用在图1中参与到联合建模任务的参与节点为例进行说明,包括如下步骤:
[0091] S101:对所述参与节点的本地样本数据进行分析统计,得到所述参与节点本地的少数类样本数和多数类样本数。
[0092] S102:将所述少数类样本数和多数类样本数发送至中心节点,以使中心节点根据全局各个所述参与节点发送的少数类样本数和多数类样本数确定出全局样本平衡度。
[0093] 对于S101‑S102,参与节点会对该参与节点的本地样本数据进行分析统计,以得到该参与节点本地的少数类样本数和多数类样本数,然后将统计得到的少数类样本数和多数类样本数均发送给中心节点。
[0094] 例如,以图1为例,以M个参与节点为例,参与节点1会将统计的参与节点1本地的少数类样本数和多数类样本数发送给中心节点;参与节点2会将统计的参与节点2本地的少数类样本数和多数类样本数发送给中心节点;以此类推,参与节点3‑N也会将各自本地的少数类样本数和多数类样本数发送给中心节点。对于该中心节点而言,会接收各个参与节点发送的各自的少数类样本数和多数类样本数。
[0095] S103:接收所述中心节点反馈的目标通知消息,所述目标通知消息用于指示各所述参与节点是否对各自的本地样本数据进行平衡度修正,所述目标通知消息为所述中心节点根据所述全局样本平衡度所确定。
[0096] 可以理解的是,中心节点在接收到各个参与节点发送的少数类样本数和多数类样本数后,中心节点会基于所接收的少数类样本数和多数类样本数统计出全局样本平衡度,并依据该全局样本平衡度生成目标通知消息,然后将该目标通知消息发送给各参与节点。需要说明的是,关于中心节点侧实施的更多内容和细节,可对应参阅中心节点侧的实施例,这里不重复说明。
[0097] 对于参与节点而言,其接收所述中心节点反馈的目标通知消息,所述目标通知消息用于指示各所述参与节点是否分别对各自的本地样本数据进行平衡度修正,所述目标通知消息为所述中心节点根据所述全局样本平衡度所确定。
[0098] S104:根据所述目标通知消息,确定是否对自身的所述本地样本数据进行平衡度修正。
[0099] 参与节点在接收到目标通知消息后,便可响应目标通知消息的指示,确定是否对本地样本数据进行平衡度修正。
[0100] 可见,在该实施例,提供了一种数据平衡度处理方法,站在参与节点侧的角度描述,通过增加了中心节点来把控联合建模任务中的全局样本平衡度,各参与节点通过与中心节点的交互以保证数据整体平衡度符合条件,可降低后续在联合建模过程中的过拟合。在联合计算的时候,有利于提高计算效率和模型性能,而且像传统方案那样需获取专家的先验知识去构建代价矩阵,在实际落地中仅需控制该中心节点的处理逻辑就行,在实际落地中比较方便快捷,实用性较强。
[0101] 在一实施例中,步骤S104中,也即根据所述目标通知消息,确定是否对自身的所述本地样本数据进行平衡度修正,具体包括如下步骤:
[0102] S1041:如果所述目标通知消息为第一通知消息,则对自身的所述本地样本数据进行平衡度修正。
[0103] S1042:如果所述目标通知消息为第二通知消息,则等待启动联合建模任务。
[0104] 其中,所述第一通知消息为所述中心节点在判定所述全局样本平衡度小于预设全局样本平衡时发送的,所述第二通知消息为所述中心节点在判定所述全局样本平衡度大于或等于所述预设全局样本平衡时发送的。
[0105] 因此,对于步骤S1041‑S1042,如果所述目标通知消息为第一通知消息,则说明全局样本平衡度是不符合条件的,需对该全局样本平衡度进行修正,中心节点会发第一通知消息给各个参与节点,以让各个参与节点分别各自的本地样本数据的平衡度进行修正。反之,如果所述目标通知消息为第二通知消息,说明全局样本平衡度是符合条件的,则收到第二通知消息的参与节点会等待启动联合建模任务,后续可参与到联合建模任务中。
[0106] 在该实施例中,细化了目标通知消息的情况,明确了通过定义出的预设全局样本平衡度来确定是否需要进行全局样本平衡度的修正,提高了方案的可实施性。
[0107] 在一实施例中,步骤S1041中,也即所述对自身的所述本地样本数据进行平衡度修正,具体包括如下步骤:
[0108] S10411:根据所述参与节点本地的少数类样本数和多数类样本数,计算得到本地样本平衡度。
[0109] 该实施例中,如果参与节点接收到需要对本地样本数据的平衡度进行修正的通知消息,那么参与节点会先根据所述参与节点本地的少数类样本数和多数类样本数,计算得到得到本地样本平衡度。
[0110] 在一实施例中,根据所述参与节点本地的少数类样本数和多数类样本数,计算得到本地样本平衡度,指的是通过如下方式计算得到本地样本平衡度。
[0111] 计算公式为:Pni/Nni=b1,b1表示本地样本平衡度。
[0112] S10412:判断所述本地样本平衡度与预设本地样本平衡度的大小关系。
[0113] S10413:当所述本地样本平衡度小于所述预设本地样本平衡度,则对所述本地样本数据进行平衡度修正,直至所述本地样本平衡度大于或等于所述预设本地样本平衡度。
[0114] S10414:将所述本地样本平衡度修正后对应的所述少数类样本数和多数类样本数,发送至所述中心节点。
[0115] 该实施例中,会设定一个预设本地样本平衡度,示例性的,该预设本地样本平衡度可设置为0.5,需要说明的是,该预设本地样本平衡度为一种经验值,该预设本地样本平衡也可以是0.5上下波动的一个值,具体不做限定。当参与节点接收到用于修正平衡度的第一通知消息后,会对自身的本地样本平衡度与预设本地样本平衡度的大小关系进行判断,如果自身的本地样本平衡度能够达到该预设本地样本平衡度以上,则说明该参与节点的本地样本数据是平衡的,该参阅节点无需对自身的本地样本数据进行修正;当所述本地样本平衡度小于所述预设本地样本平衡度,则参与节点对自身的本地样本数据的进行采样修正,直至该参与节点自身的所述本地样本平衡度大于或等于所述预设本地样本平衡度。
[0116] 需要说明的是,参与节点所采用具体的采样修正方式本申请实施例不做限定。例如,示例性的,参与节点可使用合成少数类过采样技术(Synthetic  Minority Oversampling Technique,SMOTE)的有关算法,来对自身的本地样本数据进行采样修正。
[0117] 更为具体的,在一些实施例中,参与节点可采用Borderline‑SMOTE采样算法进行本地样本平衡度的修正,来增加少数类样本数量。然后参与节点将修正后的本地样本数据进行再次分析得到新的少数类样本数和多数类样本数,再将新的分析结果传输至中心节点,中心节点再次验证所有新接收的所有少数类样本数和多数类样本数的整体分析,如果全局样本数据分布满足需求,则可由任务发起方进行联合建模任务的启动。
[0118] 该实施例中,当全局样本平衡度小于预设全局样本平衡度时,参与节点会对自身本地的本地样本平衡度进行了修正,如果本地样本平衡度小于预设本地样本平衡度,各参与节点会对本地样本数据进行修正,直至全局样本平衡度符合要求。通过中心节点的把控,使得各参与节点修正自身的本地样本平衡度,提供了具体的修正方案。
[0119] 在一实施例中,S1042之后,也即所述等待启动联合建模任务之后,所述方法还包括如下步骤:
[0120] S1043:接收用于联合建模任务的训练任务参数。
[0121] S1044:根据所述训练任务参数对所述参与节点参与到联合训练的本地样本数据量进行设置,得到的目标本地样本数据量。
[0122] S1045:基于所述目标本地样本数据量对应的目标样本数据进行联合建模任务。
[0123] 该实施例中,全局样本平衡度大于或等于预设全局样本平衡度后,各参与节点将不会对自身的本地样本数据进行修正。会等待任务发起方发起联合建模任务。当任务发起方发起联合建模任务后,任务发起方会设置训练任务参数,该训练任务参数是用于推送至个参与节点进行联合建模时所用到的训练参数。参与节点会接收该用于联合建模任务的训练任务参数,然后根据所述训练任务参数对所述参与节点参与到联合训练的本地样本数据量进行设置,得到的目标本地样本数据量,也就是说,参与节点根据自身情况,结合训练任务参数,会对参与到联合训练的本地样本数据量进行调整。
[0124] 在一实施例中,所述训练任务参数包括联合建模时所需的目标数据量和最大迭代次数,所述根据所述训练任务参数对所述参与节点参与到联合训练的本地样本数据量进行设置,得到的目标本地样本数据量,包括:计算所述目标数据量与所述全局少数类样本数的比值;根据所述目标数据量与所述全局少数类样本数的比值和所述最大迭代次数,对所述参与节点参与到联合训练的本地样本数据量进行设置,得到的目标本地样本数据量。
[0125] 该实施例中,主要提供了一种结合训练任务参数,会对参与到联合训练的本地样本数据量进行调整的具体实施方案,主要针对联合建模训练中的本地样本数据量进行设置。发明人发现,参与建模训练的本地样本数据量过大或过小都会导致不好的影响,本地样本数据量过大会导致被训练模型的权重的更新不那么频繁,优化过程漫长,如果本地样本数据量太小则存在训练速度慢,训练不容易收敛等问题。因此,针对不同参与节点的本地样本数据的情况,适时调整参与训练的本地样本数据量的大小,可以很好的解决了上述问题,进一步保证了联合建模的效率和性能。
[0126] 在一实施例中,所述根据所述目标数据量与所述全局少数类样本数的比值和所述最大迭代次数,对所述参与节点参与到联合训练的本地样本数据量进行设置,得到的目标本地样本数据量,包括:
[0127] 通过如下计算方式对所述参与节点参与到联合训练的本地样本数据量进行设置,得到的所述目标本地样本数据量:
[0128]  Pn/batch_size=q;
[0129] batch_size_new=batch_size*(q/max_iter);
[0130] 其中,batch_size_new表示所述目标本地样本数据量,所述batch_size表示所述目标数据量,q表示所述目标数据量与所述全局少数类样本数的比值,max_iter表示所述最大迭代次数,Pn表示节点参与到联合训练的本地样本数据量。
[0131] 需要说明的是,在一些实施例中,除了直接按照上述方式进行设置外,还可以对计算的结果按照预设方式进行调整,从而得到最终的目标本地样本数据量,具体本申请实施例不做限定。
[0132] 在另一些实施例中,训练任务参数还可以包括其他的参数,也可以进一步依据其他的参数,确定是否对所述参与节点参与到联合训练的本地样本数据量进行设置,以及进一步的设置,具体均不做限定。
[0133] 值得注意的是,本申请实施例中,通过中心节点与参与节点两方面,对本申请实施例提供的数据平衡度处理方法进行了介绍,基于上述实施例,可对应知悉中心节点与参与节点两者交互的实施过程,为简介,中心节点与参与节点交互的过程在此便不再说明,可对应参阅实施例的记载。
[0134] 而且,通过以上步骤的实施可以适用于多个参与节点的横向、纵向联合建模的场景,具体不做限定,通过本申请实施例,可以满足不同数据量级和数据分布的参与方,提升多方联合建模过程的兼容性和模型效果,从而也提高了联合建模的效率和有效性,无需计算代价矩阵,落地更为简单。
[0135] 应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
[0136] 在一实施例中,提供了一种联合建模系统,所述联合建模系统包括中心节点、多个参与节点及数据平衡度处理装置10,该数据平衡度处理装置10与上述实施例中数据平衡度处理方法中中心节点侧及参与节点侧所实现的功能一一对应。如图4所示,该数据平衡度处理装置包括第一接收模块101、第一处理模块102和第一发送模块103、第二接收模块201、第二处理模块202和第二发送模块203。各功能模块详细说明如下:
[0137] 第一接收模块101,用于接收各个参与节点发送的各个参与节点本地的少数类样本数和多数类样本数;
[0138] 第一处理模块102,用于对根据各个所述参与节点发送的少数类样本数和多数类样本数,确定出全局样本平衡度;
[0139] 第一发送模块103,用于根据所述全局样本平衡度向各所述参与节点发送目标通知消息,所述目标通知消息用于指示各所述参与节点是否对各所述参与节点本地样本数据进行平衡度修正;
[0140] 第二处理模块202,用于对本地样本数据进行分析统计,得到所述参与节点本地的少数类样本数和多数类样本数;
[0141] 第二发送模块203,用于将所述少数类样本数和多数类样本数发送至中心节点,以使中心节点根据全局各个所述参与节点发送的数类样本数和多数类样本数确定出全局样本平衡度;
[0142] 第二接收模块201,用于接收所述中心节点反馈的目标通知消息,所述目标通知消息用于指示各所述参与节点是否对各所述参与节点的本地样本数据进行平衡度修正,所述全局样本平衡度为所述中心节点根据所述全局样本平衡度所确定;
[0143] 所述第二处理模块202,还用于根据所述目标通知消息,确定是否对本地样本数据进行平衡度修正。
[0144] 关于该数据平衡度处理装置10的具体限定,可以参见上文中对于数据平衡度处理方法中中心节点侧或参与节点侧的限定,在此不再赘述。上述数据平衡度处理装置10中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0145] 在一个实施例中,提供了一种计算机设备,该计算机设备可以是客户端或服务器,具体为本申请实施例提供的参与节点或中心节点,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口等,其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括可读存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为可读存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的节点通过网络连接通信。该计算机程序被处理器执行时以实现上述实施例一种数据平衡度处理方法中中心节点侧和/或参与节点侧的方法。本实施例所提供的可读存储介质包括非易失性可读存储介质和易失性可读存储介质。
[0146] 在一个实施例中,提供了一个或多个存储有计算机程序的计算机可读存储介质,本实施例所提供的可读存储介质包括非易失性可读存储介质和易失性可读存储介质。可读存储介质上存储有计算机程序,计算机程序被一个或多个处理器执行时实现上述实施例一种数据平衡度处理方法中参与节点侧和/或中心节点侧的方法。
[0147] 关于上述设备或介质所实现的更多步骤或功能,可对应参阅前述实施例,这里不重复描述。
[0148] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性可读取存储介质或易失性可读存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0149] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
[0150] 以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。