1.本发明涉及数据分类技术领域,具体提供一种对象分类方法、装置以及计算机可读存储介质。
背景技术:2.在金融技术领域中通常会获取不同对象如企业或个人的对象数据,采用对象分类模型根据这些对象数据对每个对象进行对象分类,以确定每个对象的类别如违约对象或不违约对象。对象数据包括但不限于属性数据和行为数据,属性数据至少可以包括对象的名称等基本信息,行为数据至少可以包括对象产生的行为信息。在实际应用中同一对象的不同对象数据样本可能分布在不同的数据源,由于对象数据样本可能包含对象的隐私数据,为了防止隐私数据泄露,这些数据源之间不会互相分享各自持有的对象数据样本。对此,可以采用联邦学习的方法联合使用不同数据源各自持有的对象数据样本协同训练同一个对象分类模型。但是,由于对象数据样本是否准确会极大地影响对象分类模型的准确性,因此,如何在保证每个数据源持有的对象数据样本安全的前提下快速且准确地筛选出影响对象分类模型准确性的异常样本,进而提高使用对象分类模型进行对象分类的准确性是目前亟待解决的问题。
3.相应地,本领域需要一种新的对象分类方案来解决上述问题。
技术实现要素:4.为了克服上述缺陷,提出了本发明,以提供解决或至少部分地解决如何在保证每个数据源持有的对象数据样本安全的前提下快速且准确地筛选出影响对象分类模型准确性的异常样本,进而提高使用对象分类模型进行对象分类的准确性的技术问题的对象分类方法、装置以及计算机可读存储介质。
5.在第一方面,本发明提供一种对象分类方法,所述方法包括:
6.采用纵向联邦学习方法控制host计算节点和guest计算节点协同使用孤立森林算法对所述host计算节点与所述guest计算节点各自持有的对象数据样本进行异常检测并根据异常检测的结果分别设置每个所述对象数据样本的权重,以及
7.控制所述host计算节点与所述guest计算节点根据各自持有的对象数据样本及其权重,对同一对象分类模型进行协同训练;其中,所述对象数据样本的数据类型至少包括对象的属性数据和行为数据;
8.采用训练好的对象分类模型并根据待分类对象的对象数据进行对象分类,以确定所述待分类对象的类别;其中,所述对象数据的数据类型至少包括待分类对象的属性数据和行为数据。
9.在上述对象分类方法的一个技术方案中,“采用纵向联邦学习方法控制host计算节点和guest计算节点协同使用孤立森林算法对所述host计算节点与所述guest计算节点各自持有的对象数据样本进行异常检测”的步骤具体包括:
10.采用纵向联邦学习方法控制所述host计算节点与所述guest计算节点根据各自持有的对象数据样本协同使用孤立森林算法构建多棵孤立树,形成孤立森林并确定所述孤立森林的异常值函数,所述异常值函数的自变量是对象数据样本的样本特征,因变量是异常值;
11.采用所述异常值函数分别计算每个所述对象数据样本的异常值,以完成异常检测。
12.在上述对象分类方法的一个技术方案中,“根据异常检测的结果分别设置每个所述对象数据样本的权重”的步骤具体包括:
13.按照异常值由大至小的顺序对所述host计算节点与所述guest计算节点持有的所有对象数据样本进行排序;
14.对排列靠前的多个对象数据样本分别设置相同且小于预设阈值的权重,对剩余的对象数据样本分别设置相同且大于或等于预设阈值的权重;
15.并且/或者,
[0016]“采用纵向联邦学习方法控制所述host计算节点与所述guest计算节点根据各自持有的对象数据样本协同使用孤立森林算法构建多棵孤立树”的步骤具体包括采用纵向联邦学习方法执行下列步骤s1至步骤s3:
[0017]
步骤s1:控制所述host计算节点将其持有的对象数据样本的数据类型发送至所述guest计算节点,控制所述guest计算节点对所述host计算节点与所述guest计算节点持有的所有对象数据样本的数据类型进行随机采样得到采样类型;
[0018]
步骤s2:控制所述采样类型所属的计算节点随机选择一个所述采样类型的数据值作为切分点对所述采样类型所属的计算节点持有的对象数据样本进行切分,将切分后得到的数据值小于所述切分点的对象数据样本放入到当前节点的左叶子节点,将样本值大于或等于所述切分点的对象数据样本放入到当前节点的叶子节点;所述采样类型所属的计算节点是host计算节点或guest计算节点;
[0019]
步骤s3:判断当前孤立树是否满足收敛条件;
[0020]
若是,则停止构建当前孤立树,并转至步骤s1构建下一棵孤立树;若否,则分别将当前节点的左叶子节点和叶子节点作为新的当前节点后转至步骤s1继续构建当前孤立树。
[0021]
在上述对象分类方法的一个技术方案中,所述方法还包括通过下列步骤确定每棵孤立树中根节点对应的对象数据样本:
[0022]
控制guest计算节点采用随机采样方法生成随机数并根据所述随机数对其持有的对象数据样本进行采样,将采样得到的对象数据样本放入当前孤立树的根节点并且将所述随机数发送至所述host计算节点;
[0023]
控制所述host计算节点采用所述随机采样方法根据接收到的随机数对其持有的对象数据样本进行采样,将采样得到的对象数据样本放入当前孤立树的根节点。
[0024]
在上述对象分类方法的一个技术方案中,所述guest计算节点持有的对象数据样本包括样本标签,所述host计算节点持有的对象数据样本不包括样本标签,“控制所述host计算节点与所述guest计算节点根据各自持有的对象数据样本及其权重,对同一对象分类模型进行协同训练”的步骤具体包括采用纵向联邦学习方法执行下列步骤:
[0025]
控制所述host计算节点与所述guest计算节点分别加载所述对象分类模型,控制
所述host计算节点与所述guest计算节点分别对各自持有的对象数据样本进行同态加密;
[0026]
控制所述host计算节点与所述guest计算节点根据各自持有的所述同态加密后的对象数据样本,按照下式所示的方法分别计算各自对应的加密梯度并所述加密梯度发送至arbiter计算节点:
[0027][0028]
其中,所述l(w)表示模型参数w的加密梯度,所述n表示对象数据样本的数量,所述x(i)表示第i个同态加密后的对象数据样本的样本特征,所述[[d]](i)表示根据所述x(i)计算出的加密梯度因子,所述weight(i)表示第i个同态加密后的对象数据样本的权重,“[[]]”表示加密符号;
[0029]
控制所述arbiter计算节点分别对所述host计算节点与所述guest计算节点各自发送的加密梯度进行解密并将解密后的梯度分别发送至host计算节点与所述guest计算节点,以便所述host计算节点与所述guest计算节点根据解密后的梯度对各自加载的对象分类模型的模型参数进行参数更新;
[0030]
控制所述guest计算节点根据其自身与所述host计算节点持有的同态加密后的对象数据样本,计算所述对象分类模型的加密模型损失并将所述加密模型损失发送至arbiter计算节点;
[0031]
控制所述arbiter计算节点对所述加密模型损失进行解密并根据解密后的模型损失判断是否停止协同训练。
[0032]
第二方面,提供一种对象分类装置,所述装置包括:
[0033]
样本异常检测模块,其被配置成采用纵向联邦学习方法控制host计算节点和guest计算节点协同使用孤立森林算法对所述host计算节点与所述guest计算节点各自持有的对象数据样本进行异常检测并根据异常检测的结果分别设置每个所述对象数据样本的权重;
[0034]
模型训练模块,其被配置成采用纵向联邦学习方法控制所述host计算节点与所述guest计算节点根据各自持有的对象数据样本及其权重,对同一对象分类模型进行协同训练;其中,所述对象数据样本的数据类型至少包括对象的属性数据和行为数据;
[0035]
对象分类模块,其被配置成采用训练好的对象分类模型并根据待分类对象的对象数据进行对象分类,以确定所述待分类对象的类别;其中,所述对象数据的数据类型至少包括待分类对象的属性数据和行为数据。
[0036]
在上述对象分类装置的一个技术方案中,所述样本异常检测模块包括:
[0037]
异常值函数确定子模块,其被配置成采用纵向联邦学习方法控制所述host计算节点与所述guest计算节点根据各自持有的对象数据样本协同使用孤立森林算法构建多棵孤立树,形成孤立森林并确定所述孤立森林的异常值函数,所述异常值函数的自变量是对象数据样本的样本特征,因变量是异常值;
[0038]
异常检测子模块,其被配置成采用所述异常值函数分别计算每个所述对象数据样本的异常值,以完成异常检测。
[0039]
在上述对象分类装置的一个技术方案中,所述模型训练模块包括样本权重设置子模块,所述样本权重设置子模块被进一步配置成执行下列操作:
[0040]
按照异常值由大至小的顺序对所述host计算节点与所述guest计算节点持有的所有对象数据样本进行排序;
[0041]
对排列靠前的多个对象数据样本分别设置相同且小于预设阈值的权重,对剩余的对象数据样本分别设置相同且大于或等于预设阈值的权重;
[0042]
并且/或者,
[0043]
所述异常值函数确定子模块包括孤立树构建单元,所述孤立树构建单元被配置成采用纵向联邦学习方法执行下列步骤s1至步骤s3:
[0044]
步骤s1:控制所述host计算节点将其持有的对象数据样本的数据类型发送至所述guest计算节点,控制所述guest计算节点对所述host计算节点与所述guest计算节点持有的所有对象数据样本的数据类型进行随机采样得到采样类型;
[0045]
步骤s2:控制所述采样类型所属的计算节点随机选择一个所述采样类型的数据值作为切分点对所述采样类型所属的计算节点持有的对象数据样本进行切分,将切分后得到的数据值小于所述切分点的对象数据样本放入到当前节点的左叶子节点,将样本值大于或等于所述切分点的对象数据样本放入到当前节点的叶子节点;所述采样类型所属的计算节点是host计算节点或guest计算节点;
[0046]
步骤s3:判断当前孤立树是否满足收敛条件;
[0047]
若是,则停止构建当前孤立树,并转至步骤s1构建下一棵孤立树;若否,则分别将当前节点的左叶子节点和叶子节点作为新的当前节点后转至步骤s1继续构建当前孤立树。
[0048]
在上述对象分类装置的一个技术方案中,所述孤立树构建单元被进一步配置成通过执行下列操作确定每棵孤立树中根节点对应的对象数据样本:
[0049]
控制guest计算节点采用随机采样方法生成随机数并根据所述随机数对其持有的对象数据样本进行采样,将采样得到的对象数据样本放入当前孤立树的根节点并且将所述随机数发送至所述host计算节点;
[0050]
控制所述host计算节点采用所述随机采样方法根据接收到的随机数对其持有的对象数据样本进行采样,将采样得到的对象数据样本放入当前孤立树的根节点。
[0051]
在上述对象分类装置的一个技术方案中,所述guest计算节点持有的对象数据样本包括样本标签,所述host计算节点持有的对象数据样本不包括样本标签,所述模型训练模块被进一步配置成采用纵向联邦学习方法执行下列步骤:
[0052]
控制所述host计算节点与所述guest计算节点分别加载所述对象分类模型,控制所述host计算节点与所述guest计算节点分别对各自持有的对象数据样本进行同态加密;
[0053]
控制所述host计算节点与所述guest计算节点根据各自持有的所述同态加密后的对象数据样本,按照下式所示的方法分别计算各自对应的加密梯度并所述加密梯度发送至arbiter计算节点:
[0054][0055]
其中,所述l(w)表示模型参数w的加密梯度,所述n表示对象数据样本的数量,所述x(i)表示第i个同态加密后的对象数据样本的样本特征,所述[[d]](i)表示根据所述x(i)计算出的加密梯度因子,所述weight(i)表示第i个同态加密后的对象数据样本的权重,“[[]]”表示加密符号;
[0056]
控制所述arbiter计算节点分别对所述host计算节点与所述guest计算节点各自发送的加密梯度进行解密并将解密后的梯度分别发送至host计算节点与所述guest计算节点,以便所述host计算节点与所述guest计算节点根据解密后的梯度对各自加载的对象分类模型的模型参数进行参数更新;
[0057]
控制所述guest计算节点根据其自身与所述host计算节点持有的同态加密后的对象数据样本,计算所述对象分类模型的加密模型损失并将所述加密模型损失发送至arbiter计算节点;
[0058]
控制所述arbiter计算节点对所述加密模型损失进行解密并根据解密后的模型损失判断是否停止协同训练。
[0059]
在第三方面,提供一种控制装置,该控制装置包括处理器和存储装置,所述存储装置适于存储多条程序代码,所述程序代码适于由所述处理器加载并运行以执行上述对象分类方法的技术方案中任一项技术方案所述的对象分类方法。
[0060]
在第四方面,提供一种计算机可读存储介质,该计算机可读存储介质其中存储有多条程序代码,所述程序代码适于由处理器加载并运行以执行上述对象分类方法的技术方案中任一项技术方案所述的对象分类方法。
[0061]
本发明上述一个或多个技术方案,至少具有如下一种或多种有益效果:
[0062]
在实施本发明的技术方案中,可以采用纵向联邦学习方法控制host计算节点和guest计算节点协同使用孤立森林算法对host计算节点与guest计算节点各自持有的对象数据样本进行异常检测并根据异常检测的结果分别设置每个所述对象数据样本的权重,以及控制host计算节点与guest计算节点根据各自持有的对象数据样本及其权重,对同一对象分类模型进行协同训练;其中,对象数据样本的数据类型至少包括对象的属性数据和行为数据。最后,采用训练好的对象分类模型并根据待分类对象的对象数据进行对象分类,以确定待分类对象的类别;其中,对象数据的数据类型至少包括待分类对象的属性数据和行为数据。
[0063]
采用纵向联邦学习方法控制host计算节点和guest计算节点协同使用孤立森林算法对host计算节点与guest计算节点各自持有的对象数据样本进行异常检测,可以在保证host计算节点和guest计算节点各自持有的对象数据样本安全的前提下快速且准确地筛选出影响对象分类模型准确性的异常样本,当完成异常检测后可以根据异常检测的结果逐一设置每个对象数据样本的权重,通过权重减轻异常样本对对象分类模型准确性产生的不良影响。采用纵向联邦学习方法控制host计算节点与guest计算节点根据各自持有的对象数据样本及其权重,对同一对象分类模型进行协同训练,可以在保证host计算节点和guest计算节点各自持有的对象数据样本安全的前提下完成对对象分类模型的模型训练。通过上述实施方式能够在保证host计算节点和guest计算节点各自持有的对象数据样本安全的前提下获取到高准确性的对象分类模型,从而显著提高使用对象分类模型进行对象分类的分类准确性。
附图说明
[0064]
参照附图,本发明的公开内容将变得更易理解。本领域技术人员容易理解的是:这些附图仅仅用于说明的目的,而并非意在对本发明的保护范围组成限制。此外,图中类似的
数字用以表示类似的部件,其中:
[0065]
图1是根据本发明的一个实施例的对象分类方法的主要步骤流程示意图;
[0066]
图2是根据本发明的另一个实施例的对象分类方法的主要步骤流程示意图;
[0067]
图3是根据本发明的一个实施例的对象分类装置的主要结构框图示意图。
[0068]
附图标记列表:
[0069]
11:样本异常检测模块;12:模型训练模块;13:对象分类模块。
具体实施方式
[0070]
下面参照附图来描述本发明的一些实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。
[0071]
在本发明的描述中,“模块”、“处理器”可以包括硬件、软件或者两者的组合。一个模块可以包括硬件电路,各种合适的感应器,通信端口,存储器,也可以包括软件部分,比如程序代码,也可以是软件和硬件的组合。处理器可以是中央处理器、微处理器、数字信号处理器或者其他任何合适的处理器。处理器具有数据和/或信号处理功能。处理器可以以软件方式实现、硬件方式实现或者二者结合方式实现。非暂时性的计算机可读存储介质包括任何合适的可存储程序代码的介质,比如磁碟、硬盘、光碟、闪存、只读存储器、随机存取存储器等等。术语“a和/或b”表示所有可能的a与b的组合,比如只是a、只是b或者a和b。术语“至少一个a或b”或者“a和b中的至少一个”含义与“a和/或b”类似,可以包括只是a、只是b或者a和b。单数形式的术语“一个”、“这个”也可以包含复数形式。
[0072]
这里先解释本发明涉及到的一些术语。
[0073]
纵向联邦学习方法(vertical federated learning,vfl)是联邦学习技术领域中一种常规的学习方法,其适用于不同参与方的数据样本有较大的重叠,但样本特征的重叠度不高的应用场景。在此不再对纵向联邦学习方法的具体方法原理进行赘述。
[0074]
孤立森林算法(isolation forest)是数据处理技术领域中一种常规的适用于连续数据的无监督异常检测方法。在训练过程中,每棵孤立树都是随机选取部分样本,由于孤立森林不需要计算有关距离、密度的指标,可大幅度提升速度,减小系统开销。同时,由于每棵孤立树都是独立生成的,因此可部署在大规模分布式系统上来加速运算,通常树的数量越多,算法越稳定。在此不再对孤立森林算法的具体算法原理进行赘述。
[0075]
参阅附图1,图1是根据本发明的一个实施例的对象分类方法的主要步骤流程示意图。如图1所示,本发明实施例中的对象分类方法主要包括下列步骤s101-步骤s104。
[0076]
步骤s101:采用纵向联邦学习方法控制host计算节点和guest计算节点协同使用孤立森林算法对host计算节点与guest计算节点各自持有的对象数据样本进行异常检测。
[0077]
host计算节点和guest计算节点均指的是能够执行根据本发明实施例所述的对象分类方法的计算机设备等,host计算节点和guest计算节点相互独立,并且能够相互通信。在本实施例中guest计算节点持有的对象数据样本可以是包括样本标签的样本,host计算节点持有的对象数据样本可以是不包括样本标签的样本。样本标签至少包括对象数据样本所表示对象的对象类别。
[0078]
对象数据样本指的是能够识别出对象属于哪一个对象类别的数据样本,对象数据样本的数据类型至少包括对象的属性数据和行为数据。对象的属性数据至少可以包括对象
的名称等基本信息,对象行为数据指的是对象产生的行为信息。在一个实施方式中,如果对象是用户,对象类别包括违约和不违约,那么对象数据样本就可以是能够识别出当前用户是违约用户还是不违约用户的数据样本。其中,对象数据样本中的属性数据至少可以包括用户的名称、年龄、住址等基本信息,对象数据样本中的行为数据至少可以包括用户在进行金融交易过程中产生的行为,如按期还款和超期还款等。
[0079]
在本实施例中,采用纵向联邦学习方法控制host计算节点和guest计算节点协同使用孤立森林算法对host计算节点与guest计算节点各自持有的对象数据样本进行异常检测,可以在保证host计算节点和guest计算节点各自持有的对象数据样本安全的前提下快速且准确地筛选出影响对象分类模型准确性的异常样本。
[0080]
步骤s102:根据异常检测的结果分别设置每个对象数据样本的权重。
[0081]
在本实施例中可以根据异常检测的结果,将被判定成属于异常样本和属于正常样本的对象数据样本设置不同的权重,以通过权重减轻异常样本对对象分类模型的准确性产生的不良影响。
[0082]
步骤s103:控制host计算节点与guest计算节点根据各自持有的对象数据样本及其权重,对同一对象分类模型进行协同训练。
[0083]
采用纵向联邦学习方法控制host计算节点与guest计算节点根据各自持有的对象数据样本及其权重,对预设的对象分类模型进行训练,可以在保证host计算节点和guest计算节点各自持有的对象数据样本安全的前提下完成对对象分类模型的模型训练。
[0084]
步骤s104:采用训练好的对象分类模型并根据待分类对象的对象数据进行对象分类,以确定待分类对象的类别;其中,对象数据的数据类型至少包括待分类对象的属性数据和行为数据。
[0085]
基于上述步骤s101至步骤s104,能够在保证host计算节点和guest计算节点各自持有的对象数据样本安全的前提下获取到高准确性的对象分类模型,从而显著提高使用对象分类模型进行对象分类的分类准确性。
[0086]
下面对本发明实施例中的步骤s101至步骤s103作进一步说明。
[0087]
在上述步骤s101的一个实施方式中,可以采用纵向联邦学习方法并通过下列步骤11至步骤13控制host计算节点和guest计算节点协同使用孤立森林算法对host计算节点与guest计算节点各自持有的对象数据样本进行异常检测。
[0088]
步骤11:采用纵向联邦学习方法控制host计算节点与guest计算节点根据各自持有的对象数据样本协同使用孤立森林算法构建多棵孤立树,形成孤立森林。
[0089]
在本发明实施例的一个实施方式中可以采用引导聚集算法(bootstrap aggregating,bagging)控制host计算节点与guest计算节点同时协同构建多棵孤立树,以提高形成孤立森林的速度。下面以协同构建一棵孤立树为例,对控制host计算节点与guest计算节点根据各自持有的对象数据样本协同使用孤立森林算法构建孤立树的方法进行具体说明。具体而言,可以按照下列步骤111至步骤113控制host计算节点与guest计算节点根据各自持有的对象数据样本协同使用孤立森林算法构建同一棵孤立树。
[0090]
步骤111:控制host计算节点将其持有的对象数据样本的数据类型发送至guest计算节点,控制guest计算节点对host计算节点与guest计算节点持有的所有对象数据样本的数据类型进行随机采样得到采样类型。需要说明的是,对象数据样本的数据类型除了可以
包括前述步骤s101中所述的对象的属性数据和行为数据这两类以外,还可以包括其他类型的数据。此外,还可以分别对属性数据和行为数据进一步分类。例如,当对象是用户时,可以将其属性数据进一步分成年龄、性别和住址等类型。
[0091]
步骤112:控制采样类型所属的计算节点随机选择一个采样类型的数据值作为切分点对采样类型所属的计算节点持有的对象数据样本进行切分,将切分后得到的数据值小于切分点的对象数据样本放入到当前节点的左叶子节点,将样本值大于或等于切分点的对象数据样本放入到当前节点的叶子节点。
[0092]
采样类型所属的计算节点指的是,持有采样类型(当前采样得到的数据类型)所属对象数据样本的计算节点,采样类型所属的计算节点可以是host计算节点,也可以是guest计算节点。
[0093]
步骤113:判断当前孤立树是否满足收敛条件。若满足收敛条件,则停止构建当前孤立树。若不满足收敛条件,则分别将当前节点的左叶子节点和叶子节点作为新的当前节点后转至步骤111继续构建当前孤立树。其中,收敛条件可以是当前孤立树的高度达到预设高度,或者当前节点的左叶子节点和叶子节点都只有一个对象数据样本,无法继续进行切分。
[0094]
需要说明的是,上述步骤111至步骤113中涉及的选取切分点、对样本进行切分、将对象数据样本放入到当前节点的叶子节点都是孤立森林算法中的常规方法,为了描述简洁,在此不再对上述方法进行赘述。
[0095]
进一步,在一个实施方式中,在按照上述步骤111至步骤113控制host计算节点与guest计算节点根据各自持有的对象数据样本协同使用孤立森林算法构建同一棵孤立树之前,还可以先通过下列步骤110确定当前孤立树中根节点对应的对象数据样本。
[0096]
步骤110:控制guest计算节点采用随机采样方法生成随机数并根据随机数对其持有的对象数据样本进行采样,将采样得到的对象数据样本放入当前孤立树的根节点并且将随机数发送至host计算节点;控制host计算节点采用相同的随机采样方法根据接收到的随机数对其持有的对象数据样本进行采样,将采样得到的对象数据样本放入当前孤立树的根节点。
[0097]
需要说明的是,本领域技术人员可以采用数据处理技术领域中常规的随机采样方法并根据生成的随机数对对象数据样本进行采样。在此不再对随机采样方法的具体方法原理进行赘述。
[0098]
步骤12:确定孤立森林的异常值函数,异常值函数的自变量是对象数据样本的样本特征,因变量是异常值。异常值越大,则表明对象数据样本属于异常样本的概率越大。
[0099]
具体而言,孤立森林的异常值可以如下式(1)所示:
[0100][0101]
公式(1)中各参数含义如下:
[0102]
xi表示第i个对象数据样本的样本特征,表示对象数据样本的数量,表示第i个对象数据样本的异常值,h(xi)表示第i个对象数据样本在孤立森林中的平均高度,即根据第i个对象数据样本在孤立森林的每棵孤立树中的高度计算出的平均高度,e表示期
望,表示包含个对象数据样本的样本集,同时表示孤立森林中所有孤立树的平均高度,通过运算可以对每个对象数据样本在孤立森林中的平均高度进行归一化处理。h表示调和数且h表示调和数且ξ表示欧拉常数,ξ可以取值为0.57721。
[0103]
步骤13:采用异常值函数分别计算每个对象数据样本的异常值,以完成异常检测。
[0104]
参阅步骤12中的公式(1),在确定好异常值函数后,可以将对象数据样本的样本特征代入到公式(1)中计算得到相应的异常值。
[0105]
进一步,在上述步骤s102的一个实施方式中,可以通过下列步骤21至步骤23设置每个对象数据样本的权重。
[0106]
步骤21:通过上述步骤11至步骤13分别获取每个对象数据样本的异常值。
[0107]
步骤22:按照异常值由大至小的顺序对host计算节点与guest计算节点持有的所有对象数据样本进行排序。
[0108]
步骤23:对排列靠前的多个对象数据样本分别设置相同且小于预设阈值的权重,对剩余的对象数据样本分别设置相同且大于或等于预设阈值的权重。
[0109]
在本实施例中本领域技术人员可以根据实际需求灵活设置预设阈值的具体数值,例如预设阈值可以是0.6,可以将排列靠前的多个对象数据样本的权重都设置成0.5,将剩余的对象数据样本的权重都设置成1。同时,本领域技术人员也可以根据实际需求灵活设置将权重设置成小于预设阈值的样本数量(异常样本的数量),例如对象数据样本的总数是100,可以选取排列靠前的20个样本作为异常样本,将这些样本的权重设置成小于预设阈值的数值,也可以选取排列靠前的10%的样本作为异常样本,将这些样本的权重设置成小于预设阈值的数值。
[0110]
此外,需要说明的是,本领域技术人员也可以按照异常值由小至大的顺序对host计算节点与guest计算节点持有的所有对象数据样本进行排序,进而对排列靠后的多个对象数据样本分别设置相同且小于预设阈值的权重,对剩余的对象数据样本分别设置相同且大于或等于预设阈值的权重。
[0111]
在上述步骤s103的一个实施方式中,可以采用纵向联邦学习方法并通过下列步骤31至步骤35控制host计算节点与guest计算节点根据各自持有的对象数据样本及其权重,对同一对象分类模型进行协同训练。
[0112]
步骤31:控制host计算节点与guest计算节点分别加载对象分类模型,控制host计算节点与guest计算节点分别对各自持有的对象数据样本进行同态加密。
[0113]
在本实施方式中可以采用加密处理技术领域中常规的同态加密方法对对象数据样本进行同态加密。
[0114]
步骤32:控制host计算节点与guest计算节点根据各自持有的同态加密后的对象数据样本,按照下式(2)所示的方法分别计算各自对应的加密梯度并加密梯度发送至arbiter计算节点:
[0115]
[0116]
上述公式(2)中各参数含义如下:
[0117]
l(w)表示模型参数w的加密梯度,n表示对象数据样本的数量,x(i)表示第i个同态加密后的对象数据样本的样本特征,[[d]](i)表示根据x(i)计算出的加密梯度因子,y表示guest计算节点持有的对象数据样本的样本标签,w
t
x(i)表示guest计算节点根据“host计算节点发来的对象数据样本的样本特征与模型参数w的乘积”以及“guest计算节点自身持有的对象数据样本的样本特征与模型参数w的乘积”得到的所有对象数据样本的样本特征与模型参数w的乘积,t表示转置符号;weight(i)表示第i个同态加密后的对象数据样本的权重,“[[]]”表示加密符号。
[0118]
步骤33:控制arbiter计算节点分别对host计算节点与guest计算节点各自发送的加密梯度进行解密并将解密后的梯度分别发送至host计算节点与guest计算节点,以便host计算节点与guest计算节点根据解密后的梯度对各自加载的对象分类模型的模型参数进行参数更新。
[0119]
arbiter计算节点指的是能够执行根据本发明实施例所述的对象分类方法的计算机设备等,arbiter计算节点、host计算节点和guest计算节点相互独立,并且能够相互通信。arbiter计算节点是独立于host计算节点和guest计算节点以外的可信任第三方,也即纵向联邦学习方法中的协作方。
[0120]
步骤34:控制guest计算节点根据其自身与host计算节点持有的同态加密后的对象数据样本,计算对象分类模型的加密模型损失并将加密模型损失发送至arbiter计算节点。
[0121]
在本实施例中guest计算节点可以按照下式(3)所示的方法计算对象分类模型的加密模型损失:
[0122][0123]
上述公式(3)中各参数含义如下:
[0124]
[[loss]]表示加密模型损失,“[[]]”表示加密符号,log2表示对数损失函数,y表示guest计算节点持有的对象数据样本的样本标签,w表示模型参数,t表示转置符号,w
t
x表示guest计算节点根据“host计算节点发来的对象数据样本的样本特征与模型参数w的乘积”以及“guest计算节点自身持有的对象数据样本的样本特征与模型参数w的乘积”得到的所有对象数据样本的样本特征与模型参数w的乘积。
[0125]
步骤35:控制arbiter计算节点对加密模型损失进行解密并根据解密后的模型损失判断是否停止协同训练。如果模型损失小于阈值,则可以停止协同训练。
[0126]
需要说明的是,上述步骤31至步骤35中涉及的同态加密、解密以及控制guest计算节点计算加密梯度因子和加密模型损失都是纵向联邦学习方法中的常规方法,为了描述简洁,在此不再对上述方法进行赘述。但是,需要强调的是,在上述公式(2)所示的加密梯度的方法中,通过引入权重weight(i)来减轻异常样本对模型训练结果产生的不良影响是本发明的发明点之一,而并非是纵向联邦学习方法中的常规手段。
[0127]
参阅附图2,图2是根据本发明的另一个实施例的对象分类方法的主要步骤流程示意图。如图2所示,本发明实施例中的对象分类方法主要包括下列步骤s201-步骤s211。
[0128]
步骤s201:生成随机数,采用随机采样方法根据随机数,随机选择256个样本放入
当前孤立树的根节点。
[0129]
步骤s202:host计算节点传输数据类型,guest计算节点随机采用得到采样类型。
[0130]
步骤s203:guest计算节点随机选择切分点。
[0131]
步骤s204:采样类型所属的计算节点根据切分点对其持有的对象数据样本进行切分。
[0132]
步骤s205:重复执行步骤s202至步骤s204,以完成当前孤立树的建立。
[0133]
步骤s206:重复执行步骤s201至步骤s205,以构建n棵孤立树,形成孤立森林。n可以是100。
[0134]
步骤s207:根据孤立森林的异常值函数计算每个对象数据样本的异常值。
[0135]
步骤s208:按照异常值由大至小的顺序对所有对象数据样本进行排序,将钱20%的对象数据样本的权重设置为0.5,将剩余对象数据样本的权重设置为1。
[0136]
步骤s209:采用纵向联邦学习方法获取加密梯度因子。
[0137]
步骤s210:根据加密梯度因子计算加密梯度,以根据加密梯度更新模型参数。
[0138]
步骤s211:计算模型损失,根据模型损失判断是否停止协同训练。
[0139]
需要说明的是,上述步骤s201至步骤s211中涉及的方法,与前述步骤s101至步骤s104所述的相关方法相同,在此不再对上述步骤s201至步骤s211进行赘述。
[0140]
需要指出的是,尽管上述实施例中将各个步骤按照特定的先后顺序进行了描述,但是本领域技术人员可以理解,为了实现本发明的效果,不同的步骤之间并非必须按照这样的顺序执行,其可以同时(并行)执行或以其他顺序执行,这些变化都在本发明的保护范围之内。
[0141]
进一步,本发明还提供了一种对象分类装置。
[0142]
参阅附图3,图3是根据本发明的一个实施例的对象分类装置的主要结构框图。如图3所示,本发明实施例中的对象分类装置主要包括样本异常检测模块11、模型训练模块12和对象分类模块13。样本异常检测模块11可以被配置成采用纵向联邦学习方法控制host计算节点和guest计算节点协同使用孤立森林算法对host计算节点与guest计算节点各自持有的对象数据样本进行异常检测并根据异常检测的结果分别设置每个对象数据样本的权重。模型训练模块12可以被配置成采用纵向联邦学习方法控制host计算节点与guest计算节点根据各自持有的对象数据样本及其权重,对同一对象分类模型进行协同训练;其中,对象数据样本的数据类型至少包括对象的属性数据和行为数据。对象分类模块13可以被配置成采用训练好的对象分类模型并根据待分类对象的对象数据进行对象分类,以确定待分类对象的类别;其中,对象数据的数据类型至少包括待分类对象的属性数据和行为数据。
[0143]
在一个实施方式中,样本异常检测模块11可以包括异常值函数确定子模块和异常检测子模块。在本实施方式中,异常值函数确定子模块可以被配置成采用纵向联邦学习方法控制host计算节点与guest计算节点根据各自持有的对象数据样本协同使用孤立森林算法构建多棵孤立树,形成孤立森林并确定孤立森林的异常值函数,异常值函数的自变量是对象数据样本的样本特征,因变量是异常值。异常检测子模块可以被配置成采用异常值函数分别计算每个对象数据样本的异常值,以完成异常检测。
[0144]
在一个实施方式中,模型训练模块12可以包括样本权重设置子模块。在本实施方式中,样本权重设置子模块可以被进一步配置成执行下列操作:按照异常值由大至小的顺
序对host计算节点与guest计算节点持有的所有对象数据样本进行排序;对排列靠前的多个对象数据样本分别设置相同且小于预设阈值的权重,对剩余的对象数据样本分别设置相同且大于或等于预设阈值的权重。
[0145]
在一个实施方式中,异常值函数确定子模块可以包括孤立树构建单元。在本实施方式中,孤立树构建单元可以被配置成采用纵向联邦学习方法执行下列步骤s1至步骤s3。步骤s1:控制host计算节点将其持有的对象数据样本的数据类型发送至guest计算节点,控制guest计算节点对host计算节点与guest计算节点持有的所有对象数据样本的数据类型进行随机采样得到采样类型;步骤s2:控制采样类型所属的计算节点随机选择一个采样类型的数据值作为切分点对采样类型所属的计算节点持有的对象数据样本进行切分,将切分后得到的数据值小于切分点的对象数据样本放入到当前节点的左叶子节点,将样本值大于或等于切分点的对象数据样本放入到当前节点的叶子节点;采样类型所属的计算节点是host计算节点或guest计算节点;步骤s3:判断当前孤立树是否满足收敛条件;若是,则停止构建当前孤立树,并转至步骤s1构建下一棵孤立树;若否,则分别将当前节点的左叶子节点和叶子节点作为新的当前节点后转至步骤s1继续构建当前孤立树。
[0146]
在一个实施方式中,孤立树构建单元可以被进一步配置成通过执行下列操作确定每棵孤立树中根节点对应的对象数据样本:控制guest计算节点采用随机采样方法生成随机数并根据随机数对其持有的对象数据样本进行采样,将采样得到的对象数据样本放入当前孤立树的根节点并且将随机数发送至host计算节点;控制host计算节点采用随机采样方法根据接收到的随机数对其持有的对象数据样本进行采样,将采样得到的对象数据样本放入当前孤立树的根节点。
[0147]
在一个实施方式中,guest计算节点持有的对象数据样本包括样本标签,host计算节点持有的对象数据样本不包括样本标签,模型训练模块12可以被进一步配置成采用纵向联邦学习方法执行下列步骤:
[0148]
控制host计算节点与guest计算节点分别加载对象分类模型,控制host计算节点与guest计算节点分别对各自持有的对象数据样本进行同态加密;控制host计算节点与guest计算节点根据各自持有的同态加密后的对象数据样本,按照上述方法实施例中公式(2)所示的方法分别计算各自对应的加密梯度并加密梯度发送至arbiter计算节点;控制arbiter计算节点分别对host计算节点与guest计算节点各自发送的加密梯度进行解密并将解密后的梯度分别发送至host计算节点与guest计算节点,以便host计算节点与guest计算节点根据解密后的梯度对各自加载的对象分类模型的模型参数进行参数更新;控制guest计算节点根据其自身与host计算节点持有的同态加密后的对象数据样本,计算对象分类模型的加密模型损失并将加密模型损失发送至arbiter计算节点;控制arbiter计算节点对加密模型损失进行解密并根据解密后的模型损失判断是否停止协同训练。
[0149]
上述对象分类装置以用于执行图1所示的对象分类方法实施例,两者的技术原理、所解决的技术问题及产生的技术效果相似,本技术领域技术人员可以清楚地了解到,为了描述的方便和简洁,对象分类装置的具体工作过程及有关说明,可以参考对象分类方法的实施例所描述的内容,此处不再赘述。
[0150]
本领域技术人员能够理解的是,本发明实现上述一实施例的方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计
算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器、随机存取存储器、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。
[0151]
进一步,本发明还提供了一种控制装置。在根据本发明的一个控制装置实施例中,控制装置包括处理器和存储装置,存储装置可以被配置成存储执行上述方法实施例的对象分类方法的程序,处理器可以被配置成用于执行存储装置中的程序,该程序包括但不限于执行上述方法实施例的对象分类方法的程序。为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该控制装置可以是包括各种电子设备形成的控制装置设备。
[0152]
进一步,本发明还提供了一种计算机可读存储介质。在根据本发明的一个计算机可读存储介质实施例中,计算机可读存储介质可以被配置成存储执行上述方法实施例的对象分类方法的程序,该程序可以由处理器加载并运行以实现上述对象分类方法。为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该计算机可读存储介质可以是包括各种电子设备形成的存储装置设备,可选的,本发明实施例中计算机可读存储介质是非暂时性的计算机可读存储介质。
[0153]
进一步,应该理解的是,由于各个模块的设定仅仅是为了说明本发明的装置的功能单元,这些模块对应的物理器件可以是处理器本身,或者处理器中软件的一部分,硬件的一部分,或者软件和硬件结合的一部分。因此,图中的各个模块的数量仅仅是示意性的。
[0154]
本领域技术人员能够理解的是,可以对装置中的各个模块进行适应性地拆分或合并。对具体模块的这种拆分或合并并不会导致技术方案偏离本发明的原理,因此,拆分或合并之后的技术方案都将落入本发明的保护范围内。
[0155]
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。