CN114065640A - 联邦树模型的数据处理方法、装置、设备及存储介质 - Google Patents
联邦树模型的数据处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114065640A CN114065640A CN202111402378.0A CN202111402378A CN114065640A CN 114065640 A CN114065640 A CN 114065640A CN 202111402378 A CN202111402378 A CN 202111402378A CN 114065640 A CN114065640 A CN 114065640A
- Authority
- CN
- China
- Prior art keywords
- node
- feature
- tree model
- federal
- federated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 claims abstract description 50
- 238000012545 processing Methods 0.000 claims abstract description 30
- 238000012549 training Methods 0.000 claims abstract description 30
- 230000015654 memory Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 13
- 238000004088 simulation Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 27
- 238000010801 machine learning Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 238000003066 decision tree Methods 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 10
- 230000011218 segmentation Effects 0.000 description 10
- 239000013598 vector Substances 0.000 description 9
- 238000010276 construction Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- OYFJQPXVCSSHAI-QFPUQLAESA-N enalapril maleate Chemical compound OC(=O)\C=C/C(O)=O.C([C@@H](C(=O)OCC)N[C@@H](C)C(=O)N1[C@@H](CCC1)C(O)=O)CC1=CC=CC=C1 OYFJQPXVCSSHAI-QFPUQLAESA-N 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了一种联邦树模型的数据处理方法、装置、设备、存储介质及程序产品,应用于第一参与方设备;方法包括:获取用作联邦树模型的训练样本的特征集合,特征集合包括第一参与方设备提供的第一特征、以及第二参与方设备提供的第二特征;接收各第二参与方设备发送的用于模拟联邦树模型的第一节点路由;获取各第一特征所对应节点在联邦树模型中的第二节点路由;基于第一节点路由及第二节点路由,得到联邦树模型对应的伪联邦树模型;通过伪联邦树模型对特征集合所包括的特征子集进行预测,得到预测值,并结合预测值及目标预测结果,确定特征集合中各特征对应目标预测结果的贡献信息。通过本申请,能够快速、准确的确定样本中各特征的贡献信息。
Description
技术领域
本申请涉及人工智能技术,尤其涉及一种联邦树模型的数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
背景技术
随着各行各业逐渐加强数据隐私保护的大趋势下,联邦学习,一种可以在保护数据隐私的情况下协同多方数据建立机器学习的技术,成为了各企业/行业间合作的关键之一。如今,纵向场景下,纵向树模型已经广泛地在纵向联邦场景下,成为了金融、风控领域的常用且强力的算法之一。
在金融、风控领域,往往想要获取单条样本中的各特征对于联邦树模型输出结果的影响。如对于某个特定样本(比方说违约的客户),需要获取具体是哪个特征以及该特征的哪些取值,对确定用户是违约用户产生了重要的影响。另外,还需要确定合作方提供的特征对于模型输出的影响。
相关联邦树模型解释方案,通过获取特征重要度从整体上对树模型进行解释,无法具体的解释单条样本。另外,虽然使用特征重要度能够得知合作方的特征使用了多少次,但是合作方特征对于模型输出结果的影响的正负性是不可知的,且确定特征贡献信息时模型计算量大。
发明内容
本申请实施例提供一种联邦树模型的数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够快速、准确的确定样本中各特征的贡献信息。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种联邦树模型的数据处理方法,基于联邦学习系统,所述联邦学习系统包括第一参与方设备及至少一个第二参与方设备,所述方法应用于第一参与方设备,包括:
获取用作联邦树模型的训练样本的特征集合,所述特征集合包括第一参与方设备提供的至少两个携带目标预测结果的第一特征、以及所述第二参与方设备提供的至少一个第二特征;
接收各所述第二参与方设备发送的用于模拟所述联邦树模型的第一节点路由,所述第一节点路由,用于指示以所述第二特征作为所述联邦树模型的分裂节点时,所述分裂节点对应的子节点路径;
获取所述至少两个第一特征所对应节点在所述联邦树模型中的第二节点路由;
基于所述第一节点路由及所述第二节点路由,模拟所述联邦树模型,得到所述联邦树模型对应的伪联邦树模型;
通过所述伪联邦树模型对所述特征集合所包括的特征子集进行预测,得到相应的预测值,并结合所述预测值及所述目标预测结果,确定所述特征集合中各特征对应所述目标预测结果的贡献信息。
本申请实施例提供一种联邦树模型的数据处理装置,包括:
第一获取模块,用于获取用作联邦树模型的训练样本的特征集合,所述特征集合包括第一参与方设备提供的至少两个携带目标预测结果的第一特征、以及所述第二参与方设备提供的至少一个第二特征;
接收模块,用于接收各所述第二参与方设备发送的用于模拟所述联邦树模型的第一节点路由,所述第一节点路由,用于指示以所述第二特征作为所述联邦树模型的分裂节点时,所述分裂节点对应的子节点路径;
第二获取模块,用于获取所述至少两个第一特征所对应节点在所述联邦树模型中的第二节点路由;
模拟模块,用于基于所述第一节点路由及所述第二节点路由,模拟所述联邦树模型,得到所述联邦树模型对应的伪联邦树模型;
确定模块,用于通过所述伪联邦树模型对所述特征集合所包括的特征子集进行预测,得到相应的预测值,并结合所述预测值及所述目标预测结果,确定所述特征集合中各特征对应所述目标预测结果的贡献信息。
上述方案中,所述接收模块,还用于向各所述第二参与方设备发送节点路由获取请求,所述节点路由获取请求携带有训练样本对应的样本标识;
接收到各所述第二参与方设备基于所述节点路由获取请求,返回的与所述样本标识对应的、用于模拟所述联邦树模型的第一节点路由。
上述方案中,所述模拟模块,还用于创建所述联邦树模型的模型副本,并从根节点开始对所述模型副本的每个节点进行遍历;
当遍历到的当前节点对应的特征为所述第二特征时,获取与所述第二参与方设备对应的联邦特征,并将当前节点对应的特征替换为所述联邦特征;
根据所述第一节点路由所指示的子节点路径,确定当前节点包括的子节点;
当遍历到的当前节点对应的特征为所述第一特征时,执行针对其它节点的遍历,直至所述模型副本中的节点遍历完成,将所述模型副本中对应所述第一特征的第一节点、对应所述第二特征的第二节点、所述第二节点包括的子节点所构成的树模型作为所述伪联邦模型。
上述方案中,所述模拟模块,还用于创建初始树模型,所述初始树模型中具有对应所述第一特征的节点,且所述初始树模型中的节点对应所述第二节点路由;
获取与所述第二参与方设备存在一一对应关系的联邦特征;
根据所述第一节点路由,在所述初始树模型中创建对应所述联邦特征的节点及所述节点包括的子节点,以得到所述伪联邦树模型。
上述方案中,所述确定模块,还用于针对所述特征集合包括的各特征子集,分别执行以下操作:
从所述伪联邦树模型的根节点开始,遍历所述伪联邦树模型的节点;
当遍历到的当前节点为非叶子节点,且所述特征子集包括所述当前节点对应的特征时,获取所述当前节点对应的节点路由;
根据所述节点路由确定所述当前节点对应的叶子节点,并将所述叶子节点对应的特征值作为所述特征子集的预测值。
上述方案中,所述确定模块,还用于针对所述特征集合包括的各特征子集,分别执行以下操作:
从所述伪联邦树模型的根节点开始,遍历所述伪联邦树模型的节点;
当遍历到的当前节点为非叶子节点,且所述特征子集不包括所述当前节点对应的特征时,获取所述当前节点对应的训练样本的第一数量;
获取所述当前节点的各子节点对应的训练样本的第二数量;
获取各所述子节点对应的预测值;
根据所述第一数量,各所述第二数量、以及各所述子节点对应的预测值,确定所述特征子集对应的预测值。
上述方案中,所述确定模块,还用于根据所述第一数量,以及各所述第二数量,确定各所述子节点对应的权重,基于各所述子节点所对应的权重,对各所述子节点对应的预测值进行加权处理,得到所述当前节点对应的预测值;
若所述当前节点为根节点,将所述当前节点对应的预测值作为所述特征子集对应的预测值;
若所述当前节点非根节点,获取所述当前节点所在节点层中各节点的权重、以及所述节点层中各节点对应的预测值,对所述节点层中各节点对应的预测值进行加权处理,得到所述当前节点的父节点所对应的预测值,若所述父节点为根节点,将所述父节点对应的预测值作为所述特征子集对应的预测值,若所述父节点非根节点,迭代执行上述处理,直至得到所述根节点对应的预测值,作为所述特征子集对应的预测值。
上述方案中,所述确定模块,还用于遍历所述特征集合中的每个特征,并针对每个所述特征执行以下操作:
获取所述特征对应的第一预测值;
确定所述特征集合的多个特征子集中不包括所述特征的目标特征子集;
通过所述伪联邦树模型,获取各所述目标特征子集对应的第二预测值;
基于所述第一预测值,以及各所述第二预测值,确定所述特征对各所述第二预测值的边际贡献值;
基于各所述边际贡献值,确定所述特征对应所述目标预测结果的贡献信息。
上述方案中,所述确定模块,还用于当所述边际贡献值的数量为多个时,对多个所述边际贡献值进行求和,得到所述特征对应所述目标预测结果的总贡献值,
将所述总贡献值作为所述特征对所述目标预测结果的贡献信息。
本申请实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的联邦树模型的数据处理方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的联邦树模型的数据处理方法。
本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的联邦树模型的数据处理方法。
本申请实施例具有以下有益效果:
与相关联邦树模型中,通过获取特征重要度从整体上对树模型进行解释的技术相比,本申请实施例中第一参与方设备通过从第二参与方设备获取的用于模拟联邦树模型的第一节点路由,结合样本中的第一特征、对应第一特征的第二节点路由,对联邦树模型进行模拟,得到伪联邦树模型,如此,能够直接在第一参与方设备本地构建伪联邦树模型,大大减少各参与方设备之间的通信次数;然后通过伪联邦树模型,确定样本的特征集合所包括的各特征子集的预测值,最后结合各预测值及样本的目标预测结果,确定特征集合中各特征对应目标预测结果的贡献信息,如此,能够精确衡量单条样本中各特征的贡献信息,并能够衡量第二参与方的整体贡献信息。
附图说明
图1是本申请实施例提供的联邦树模型的数据处理系统的结构示意图;
图2是本申请实施例提供的电子设备的结构示意图;
图3是本申请实施例提供的联邦树模型的数据处理方法的流程示意图;
图4是本申请实施例提供的特征对预测结果的贡献信息示例图;
图5是本申请实例提供的非联邦学习场景中树模型示意图;
图6是本申请实施例提供的节点路由获取方法示意图;
图7是本申请实施例提供的伪联邦树模型示意图;
图8是本申请实施例提供的伪联邦树模型的构建方法流程图;
图9是本申请实施例提供的伪联邦树模型的构建方法的另一流程图;
图10是本申请实施例提供的伪联邦树模型确定预测值的方法示意图;
图11是本申请实施例提供的确定特征子集的预测值的方法示意图;
图12是本申请实施例提供的伪联邦树模型确定预测值的具体方法示意图;
图13是本申请实施例提供的伪联邦树模型确定预测值的另一方法示意图;
图14是本申请实施例提供的树模型估计函数的代码片段示意图;
图15是本申请实施例提供的联邦树模型的数据处理方法的流程图;
图16是本申请实施例提供的伪树模型构建方法示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
如果申请文件中出现“第一/第二”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)决策树(Decision Tree):是一种机器学习的方法,它具体是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果。
2)夏普利值(SHAP,SHapley Additive exPlanation):一种基于协作博弈理论的模型无关的可解释性分析方式,每条预测记录都有对应的shap值,其中每个特征也有其对应的shap值。当shap值大于0时,表示当前样本中的当前特征将模型预测结果向正向推进,反之表示向反向推进。
本申请实施例提供一种联邦树模型的数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够快速、准确的确定样本中各特征的贡献信息。
基于上述对本申请实施例中涉及的名词和术语的解释,首先对本申请实施例提供的联邦树模型的数据处理系统进行说明,参见图1,图1是本申请实施例提供的联邦树模型的数据处理系统的架构示意图,在联邦树模型的数据处理系统100中,第一参与方设备400,第二参与方设备410(示例性的示出了2个第二参与方设备,分别记为410-1和410-2,以示区分),第一参与方设备400和第二参与方设备410通过网络300互相连接同时通过网络300连接服务器设备,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输。
在一些实施例中,第一参与方设备400和第二参与方设备410通过网络300互相连接,同时可以通过网络300连接联邦树模型中可能涉及的第三方设备(协作方、服务器等)。
在一些实施例中,第一参与方设备400以及第二参与方设备410可以是笔记本电脑,平板电脑,台式计算机,智能手机,专用消息设备,便携式游戏设备,智能音箱,智能手表等,还可以是联邦学习参与方的客户终端,例如各银行或金融机构等存储有用户特征数据的参与方设备,但并不局限于此。第三方设备可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,Content Delivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器,用于协助各参与方设备进行联邦学习以得到联邦学习模型。网络300可以是广域网或者局域网,又或者是二者的组合。第一参与方设备400、第二参与方设备410可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
第一参与方设备400,用于获取用作联邦树模型的训练样本的特征集合,特征集合包括第一参与方设备提供的至少两个携带目标预测结果的第一特征、以及第二参与方设备提供的至少一个第二特征;接收各第二参与方设备发送的用于模拟联邦树模型的第一节点路由,第一节点路由,用于指示以第二特征作为联邦树模型的分裂节点时,分裂节点对应的子节点路径;获取至少两个第一特征所对应节点在联邦树模型中的第二节点路由;基于第一节点路由及第二节点路由,模拟联邦树模型,得到联邦树模型对应的伪联邦树模型;通过伪联邦树模型对特征集合所包括的各特征子集进行预测,得到相应的预测值,并结合预测值及目标预测结果,确定特征集合中各特征对应目标预测结果的贡献信息。
第一参与方设备400,还用于向第二参与方设备发送节点路由获取请求。
第二参与方设备410,用于接收到第一参与方设备发送的节点路由获取请求,解析节点路由获取请求携带的样本标识,返回与样本标识对应的第一节点路由。
参见图2,图2是本申请实施例提供的电子设备的结构示意图,在实际应用中,电子设备500可以实施为图1中的第一参与方设备400或第二参与方设备410,以电子设备为图1所示的第一参与方设备400为例,对实施本申请实施例的联邦树模型的数据处理方法的电子设备进行说明。图2所示的电子设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线系统540耦合在一起。可以理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统540。
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块553,用于经由一个或多个与用户接口530相关联的输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的联邦树模型的数据处理装置可以采用软件方式实现,图2示出了存储在存储器550中的联邦树模型的数据处理装置555,其可以是程序和插件等形式的软件,包括以下软件模块:第一获取模块5551、接收模块5552、第二获取模块5553、模拟模块5554以及确定模块5555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的联邦树模型的数据处理装置可以采用硬件方式实现,作为示例,本申请实施例提供的联邦树模型的数据处理装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的联邦树模型的数据处理方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
将结合本申请实施例提供的第一参与方设备的示例性应用和实施,说明本申请实施例提供的联邦树模型的数据处理方法。参见图3,图3是本申请实施例提供的联邦树模型的数据处理方法的流程示意图,将结合图3示出的步骤进行说明。
在步骤101中,第一参与方设备获取用作联邦树模型的训练样本的特征集合,特征集合包括第一参与方设备提供的至少两个携带目标预测结果的第一特征、以及第二参与方设备提供的至少一个第二特征。
在实际实施时,在纵向联邦学习的场景中,通常涉及到两种参与方,第一参与方是持有数据和标签(目标预测结果)的参与方(也可称作Guest方或者主动方),第二参与方是持有数据(也可称作Host方或者被动方)的参与方。本申请实施例提供的方法可以适用于一个Guest方以及至少一个Host方参与的纵向联邦树模型。
以一个Guest方和一个Host方协同训练联邦树模型为例,单条训练样本中,Guest方与Host方各持有部分特征,其中,Guest方提供G_1,G_2,G_3,……,G_n,共n个第一特征,n≥1且n为整数;Host方提供H_1,H_2,H_3,……,H_m,共m个第二特征,m≥1且m为整数。可以理解的是,单条训练样本的特征集合共包含n个第一特征以及m个第二特征,特征集合可表示为{G_1,G_2,G_3,……,G_n,H_1,H_2,H_3,……,H_m}。
需要说明的是,在联邦学习场景中,为了保护各参与方数据的隐私性,通常不会直接将Host方的特征传输给Guest方,而是通过加密方式在各参与方之间传递相应的中间信息(如模型参数等)。因此,在计算Host方对预测结果(联邦学习模型的输出结果)的影响(或称贡献度)时,通常是确定Host方的整体影响,在实际实施时,可以将Host方提供的所有特征看作一个整体特征,可称为联邦特征,记为host_feat。并在Guest方,通过确定联邦特征对预测结果的影响以及影响的正负性,确定相应Host方的整体影响以及整体影响的正负性。其中,影响的正负性是指影响是正向影响还是负向影响。
在实际实施时,Guest方对联邦树模型对应的单条训练样本进行解释,实际上确定单条样本中每个特征对目标预测结果的影响,其中,目标预测结果是指该训练样本通过联邦学习模型得到的预测结果,Guest方可以将Host方提供的特征作为一个联邦特征host_feat,前述单条样本中n+m个特征,就可看作为n+s个特征,n为Guest方提供的特征个数,s表示s个Host方对应的s个联邦特征host_feat(即一个host_feat表示一个Host方),其中,s≥1且s为整数。如,s=1,表示有一个Host方;s=2,表示有两个Host方。
在实际实施时,各特征对应目标预测结果的贡献信息是指当特征是第一特征时,贡献信息用于表征第一特征对应的特征值对目标预测结果的贡献值;当特征是第二参与方(Host方)对应的联邦特征(host_feat)时,贡献信息用于表征第二参与方(host方)对目标预测结果的整体贡献值。即各host_feat对应目标预测结果的贡献信息可以用来反应各Host方对目标预测结果的整体贡献度的。例如,确定样本D中特征A对目标预测结果R的贡献信息,可以理解为,确定样本D中特征A对应的值对R的贡献信息。
在实际实施时,通常是结合基于夏普利值(Shapely)的机器学习模型解释方法,反映单条样本中的各个特征对目标预测结果产生的影响,并确定影响的正负性。其中,Shapely的具体思想是计算单条训练样本中每个特征对目标预测结果的贡献。
对Shapely值进行说明,Shapely值是博弈论中的一个衡量各个参与方(如多家公司)贡献的方法,它通过计算各个参与方加入不包含自身的参与方子集所做出的贡献,来计算各参与方的贡献度(总贡献):
其中,{x1,...,xp}是所有输入特征的集合,p为所有输入特征的数目,{x1,...,xp}\{xj}为不包括xj的所有输入特征可能的集合,val为一个估值函数(与可称为估计函数),用于估计缺失某个特征的预测结果,val(S)为特征子集S的预测结果,|S|特征子集S中特征的个数,φj(val)指的便是最终算出的特征xj的夏普利值(SHAP值)。
分母:p个特征在任意排序的情况下有p!种组合情况。
分子:在确定特征子集S后,p个特征在特定排序的情况下有|S|!(p-|S|-1)!中组合情况。当确定特征子集S后,特征的集合应为{x1,...,x|s|,xj,x|s|+2,...,xp},子集S{x1,…,x|s|}本身有|S|!中顺序组合,后面要紧跟着特征j,那么剩余的特征{χ|S|+2,…,χp}则有(p-|S|-1)!种组合,则确定子集S后有|S|!(p-|S|-1)!种组合情况。
作为示例,假设有公司1、2、3,三者一起合作,共盈利120W,并为每个公司计算夏普利值。
1)枚举所有子集:{1,2,3}、{1,2}、{2,3}、{1,3}、{1}、{2}、{3}、空集。
2)将每个公司加入到不包含自身的子集中,计算各自的边际贡献,假设有:
N={1,2,3},
v({1})=0,v({2})=0,v({3})=0,
v({1,2})=90,v({1,3})=80,v({2,3})=70,
v({1,2,3})=120
v(空集)=0,上图的v即为估值函数val;v{1}可理解为,当只有公司1,收入为0元;v{2,3}理解为,当只有公司2、3合作的情况下,收入为70W元。
则对于公司1,按照上述公式(1),分别将公司1加入到不包含自身的子集中,计算在各特征子集中的边际贡献(也可称边际收益),具体计算方式如下:
公司1加入到子集{2,3},边际贡献为:2/6*{v{1,2,3}-v{2,3}}=100/6;
公司1加入到子集{3},边际贡献为:1/6*{v{1,3}-v{3}}=80/6;
公司1加入到子集{2},边际贡献为:1/6*{v{1,2}-v{2}}=90/6;
公司1加入到空集,边际贡献为:0;
所以,公司1对120W的总贡献值为:270/6=45W。使用公式(1)计算得到公司2、3的贡献为40W与35W。
在实际实施时,可以基于夏普利值(Shapely),确定用作机器学习模型的样本特征集合所包括的各特征的贡献度。实现过程可以是:假设有机器学习模型f,输入的样本X,样本X包含特征{1,2,3,……,t},特征可以用下标i代替,共有t(t≥1且t为整数)个特征,N为子集,S为不包含i的特征子集,f_x为估计函数,用于返回特征子集S通过模型f所输出的平均值。计算公式与前述公式(1)一致,仅仅符号不同,如下:
作为示例,参见图4,图4是本申请实施例提供的特征对预测结果的贡献信息示例图,假设存在样本x={年龄=20,身高=170,收入=100},机器学习模型f,得到f对样本x的预测结果为1.2,
1)枚举样本x的特征集合所包括的所有特征子集:{年龄=20,身高=170,收入=100},{年龄=20,身高=170},{年龄=20,收入=100},{身高=170,收入=100},{收入=100},{年龄=20},{身高=170},{}。
2)遍历样本x中的每个特征,将每个特征对应的特征值加入到不包含自身的特征子集中,计算各特征的边际贡献,并利用预设的估值函数f_x计算各特征子集对应的预测结果(也可称估计值),假设通过f_x,得到的各特征子集的预测结果如下:
f_x({年龄=20,身高=170,收入=100})=1.2;
f_x({年龄=20,身高=170})=0.9;
f_x({年龄=20,收入=100})=0.8;
f_x({身高=170,收入=100})=0.7;
f_x({收入=100})=0;
f_x({年龄=20})=0;
f_x({身高=170})=0;
f_x({})=0;
需要说明的是,当特征子集是样本x中特征的全集时,利用估值函数f_x计算的预测结果与使用机器学习模型f的预测结果一致。
承接上例,为了计算特征“{年龄=20}”对样本x的预测结果“1.2”的贡献,可以依次将“{年龄=20}”加入到不包含自身的特征子集中,并根据前述公式(2)计算“{年龄=20}”边际贡献值,过程如下:
①将“{年龄=20}”加入到特征子集{身高=170,收入=100},确定边际贡献为:2/6*{1.2-0.7}=1/6;
②将“{年龄=20}”加入到特征子集{收入=100},确定边际贡献为:1/6*{0.8-0}=0.8/6;
③将“{年龄=20}”加入到特征子集{年龄=20},确定边际贡献为:1/6*{0.9-0}=0.9/6;
④将“{年龄=20}”加入到空集,确定边际贡献为:0;
将上述①至④得到的边际贡献值相加,得到总贡献为2.7/6=0.45。最终,得到“{年龄=20}”为预测结果“1.2”贡献了“+0.45”。同理可以得到,“{收入=100}”为预测结果“1.2”贡献了“+0.35”,“{身高=170}”为预测结果“1.2”贡献了“+0.4”。其中,符号“+”表明“{年龄=20}”、“{收入=100}”、“{身高=170}”对预测结果“1.2”的影响是正向影响,若符号是“-”则表明特征对应的特征值对目标预测结果的影响是负向影响。
由前述描述,可以确定,根据夏普利值,确定样本特征集合所包括的各特征对应的特征值对样本的预测结果的贡献信息时,第一参与方设备(或第三方服务设备)需要确定样本(待解释样本)的特征集合所包括的各特征子集,以及用于获取各特征子集的预测结果的估值函数,其中,估值函数的实现方式,可以通过实际使用的机器学习模型确定。
对获取特征子集的方式进行说明,特征子集是通过对样本特征集合中各特征进行组合得到的。以联邦树模型为例,样本的特征组合,由Guest方提供的第一特征包括G_1,G_2,G_3,……,G_n,共n个特征,Host方提供的第二特征H_1,H_2,H_3,……,H_m,共m个特征,即一条样本数据中共有n+m个特征。对这n+m个特征进行组合,获取对应的特征子集,特征子集中的特征个数从0到n+m,特征个数为0时,特征子集为空集,特征个数为n+m时,特征子集为全集。特征子集的个数N,N的计算公式如下:
示例性地,联邦树模型中,一个Guest方和一个Host方参与计算,对于包含n+m个特征的各样本D,其中,n是Guest方提供的第一特征的数量,m是Host方提供的第二特征的数量。针对样本D,为了保证数据的安全性,将Host提供的m个第二特征,使用一个联邦特征代替,联邦特征可以记作host_feat_i,其中,i用作表示Host方的索引,在实际应用中,可以存在多个Host方。样本D{G_1,G_2,G_3,……,G_n,H_1,H_2,H_3,……,H_m}变更为样本D'{G_1,G_2,G_3,……,G_n,host_feat_0},此时,样本D'也可称为样本D的拓展样本。针对样本D'所包括的n+1特征,根据前述公式(3)对这n+1特征进行组合计算,得到对应样本D'的2n+1个特征子集。
示例性地,存在用作联邦树模型的样本D{年龄:28,学历:本科,收入:10000,工作:IT},该样本输入联邦学习模型得到的预测结果表征该客户是违约客户,其中,两个第一特征为{年龄:28,学历:本科},两个第二特征包括{收入:10000,工作:IT},实际上样本D所包含的特征为4个。而在实际应用中,为了保证Host方数据的安全性,通常将两个第二特征{收入:10000,工作:IT},看作一个host_feat特征,则样本D对应的拓展样本D'包含2个第一特征{年龄:28,学历:本科},以及一个host_feat特征,共3个特征。对应拓展样本D'的特征子集中可以包含0~3个特征,共包含8(23)条特征子集,具体为:空集、{年龄:28}、{学历:本科}、{host_feat:{收入:10000,工作:IT}}、{年龄:28,学历:本科}、{年龄:28,host_feat:{收入:10000,工作:IT}}、{学历:本科、host_feat:{收入:10000,工作:IT}}、{年龄:28,学历:本科,host_feat:{收入:10000,工作:IT}}。
对适用于树模型的估值函数进行说明,在实际实施时,树模型由于其结构的特殊性,可以在不依靠任何其他样本的情况下,估计样本的特征集合所包括的各特征子集,在缺失某个特征时,树模型输出的与各特征子集对应的预测值(也可称为平均值)。本申请实施例提供的树模型估计函数的实现原理如下:。
开始{输入某个特征子集S,从树模型的根节点开始:
遍历每一个节点j,j=0,1,2,……
初始化权重为w=1
执行:
如果节点j为非叶子节点,且判定特征d_j在子集S中,
w保持不变向下传递,则向上返回往下遍历的结果
如果该节点j非叶子,且判定特征d_j不在子集S中
取出r_j,且取出r_(a_j)、r_(b_j)
计算出左支新权重w_l=r_(a_j)/r_j,由左支向下传递
计算出右支新权重w_l=r_(b_j)/r_j,由右支向下传递
向上返回左支遍历与右支遍历的结果之和
如果该节点为叶子
向上返回权重w乘以叶子输出值t_j的值
}结束,最终,递归结束后获得返回的值作为子集S的估计值。
对上述实现算法进行说明,图中所示的算法中,S为待解释样本X的一个特征子集;假设一共树模型中有n个树节点,向量都包含n个元素,为叶子节点的输出值,只有叶子节点才有值;为某节点的左右子节点的索引向量,非叶子节点可以通过中的索引信息找到对应的子节点;为非叶子节点对应的切分阈值;为非叶子节点对应的特征索引,叶子节点对应的元素值为空,为落在该节点的样本数量。
示例性地,参见图5,图5是本申请实例提供的非联邦学习场景中树模型示意图,假设,有100条样本,树模型T,各样本中包括3个特征{收入、年龄、身高}以及预测结果,图中树模型包括7个节点,{0、1、2、3、4、5、6}表示树模型中节点索引,{0.1、0.2、0.3、0.4}为树模型对应的预测结果,估计函数中的各向量的值为: 其中,各向量中的元素“-1”表示无相应的值,图中“2000”为“收入”的切分(分割)阈值(即若样本的收入≤2000,就沿“收入”节点的左分支操作;若样本的收入>2000,就沿“收入”节点的右分支操作),“20”为“年龄”的切分(分割)阈值,“170cm”为“身高”的切分(分割)阈值。
承接上例,图中,以“收入”为分裂节点,其中,100条样本中有40条样本中的“收入”对应的值符合“收入<2000”(沿“收入”节点的左分支操作),剩余的60条样本符合“收入≥2000”(沿“收入”节点的右分支操作);即以“收入=2000”将100条样本分成两组,一组包含40条样本,另一组包含60条样本。以“年龄”为分裂节点,其中有20条样本满足“年龄<18”(往左边走),有20条样本满足“年龄≥18”;以“身高”为分割(分裂)点,其中有15条样本(分裂子集)满足“身高<170”(往左边走),有45条样本满足“身高≥170”。
承接上例,以待解释样本X={收入=1500,年龄=17,身高=165cm}为例,待解释样本X在上述树模型T中对应的节点索引路径为0→1→3,即得到T({收入=1500,年龄=17,身高=165cm})=0.1;
承接上例,枚举待解释样本X={收入=1500,年龄=17,身高=165cm}中特征集合对应的所有特征子集:{年龄=18,身高=160,收入=900},{年龄=18,身高=160},{年龄=18,收入=900},{身高=160,收入=900},{收入=900},{年龄=18},{身高=165},{}(此为空集)。
承接上例,通过上述决策树模型T,确定特征子集A{年龄=18,收入=900}对应的估计值(平均值),即计算f({年龄=18,收入=900})的值,特征子集A中缺失特征是“身高”,实现过程如下:预测索引路径,0→1→3,则T({年龄=18,收入=900})=0.1,特征子集中缺失特征“身高”时,特征子集的预测值与样本X的目标预测值一致。
承接上例,通过上述决策树模型T,确定特征子集B{年龄=18,身高=160},对应的预测值,即计算f({年龄=18,身高=160})的值,特征子集B中缺失特征为“收入”,因为“收入”特征是根节点,此时就无法继续使用索引路径的方式来预测值,根据上述实现算法可知,在此情况下,可以使用落入各节点训练样本的样本数量,进行预测。针对100条样本,使用“收入”特征进行分割(切分)时,20条样本划分到左分支,80条样本划分到右分支。在特征子集B中缺失特征“收入”的情况下,“收入”对应的左右两个分支都要参考:左分支到“年龄”特征,由于特征子集B中存在特征“年龄”,根据“年龄=18”,在“年龄”这里往左走,预测值为0.1;右分支到“身高”特征,特征子集B中存在“身高”,根据“身高=160”,在“身高”这里往右走,预测值为0.3。因此,可以确定,f({年龄=18,身高=160})=0.1*(20/100)+0.3*(80/100)=0.02+0.24=0.26;其中,20/100为缺失特征“收入”(左分支)所样本比例,0.1为“年龄=18”的预测值,80/100为缺失特征“收入”(右分支)所样本比例,0.3为“身高=160”的预测值。
根据上述描述,为了在联邦学习场景中,确定联邦树模型中,样本的特征集合所包括的各特征子集的预测值,从而确定样本中各特征对联邦树模型的目标预测结果的贡献度。联邦树模型中的第一参与方可以在本地通过自身提供的样本的第一特征,以及用于代替第二参与方的联邦特征所确定各特征子集,确定用作联邦树模型的样本中各第一特征对样本目标预测结果的贡献信息,以及联邦特征对样本目标预测结果的贡献信息,由于联邦特征用于替代第二参与方提供的第二特征,所以,联邦特征对样本目标预测结果的贡献信息(或称贡献度),可以用于反应联邦树模型中第二参与方对样本目标预测结果的整体贡献信息(或称整体贡献度)。
在步骤102中,接收各第二参与方设备发送的用于模拟联邦树模型的第一节点路由,第一节点路由,用于指示以第二特征作为联邦树模型的分裂节点时,分裂节点对应的子节点路径。
在实际实施时,第一参与方设备使用联邦特征第二参与方设备提供的所有特征时,第一参与方在运行树模型时,当当前节点(树模型中的节点也可称为分裂节点)对应的特征是联邦特征时,第一参与方需要确定,应该是沿着当前节点的左分支进行操作,还是沿着当前节点的右分支进行操作,即需要获取当前节点的节点路由。
对节点路由的获取方式进行说明,在一些实施例中,参见图6,图6是本申请实施例提供的节点路由获取方法示意图,图3示出的步骤102可以通过步骤1021至步骤1022实现,将结合各步骤进行说明。
步骤1021,第一参与方设备向各第二参与方设备发送节点路由获取请求,节点路由获取请求携带有训练样本对应的样本标识。
在实际实施时,在确定样本的各特征对目标预测结果的贡献信息之前,第一参与方设备可以向参与联邦树模型的各第二参与方设备发送节点路由获取请求。一般情况下,第一参与方一次通常会确定多条样本的特征贡献信息,为了减少第一参与方设备与各第二参与方设备之间的通信次数,节点路由获取请求中可以携带一次需要确定特征贡献度的所有样本的样本标识。
步骤1022,接收到各第二参与方设备基于节点路由获取请求,返回的与样本标识对应的、用于模拟联邦树模型的第一节点路由。
在实际实施时,各第二参与方设备解析节点路由获取请求,返回与样本标识对应的节点路由,为了与第一参与方设备中的节点路由进行区别,可以将第二参与方设备返回的节点路由称作第一节点路由,将第一参与方设备中的本地路由称为第二节路由。对应第一节点路由可以采用result_i[k]={i:left|right},i表示索引编号为i的Host方(如:i=0,表示第0个host),k表示树的索引(也可看作是待解释样本的索引,由于不同的样本特征值不同,每条样本对应一棵树对),实际含义为在第k棵树,沿索引号为i的节点的左(或右)分支操作。
在步骤103中,获取至少两个第一特征所对应节点在联邦树模型中的第二节点路由。
在一些实施例中,第一参与方设备获取样本中各第一特征的对应的第二节点路由,因为第一特征是由第一参与方设备提供的,所以各第二节点路由对第一参与方设备而言是已知信息,可以直接获取的。
在步骤104中,基于第一节点路由及第二节点路由,模拟联邦树模型,得到联邦树模型对应的伪联邦树模型。
在实际实施时,联邦树模型场景中,第二参与方设备所提供的第二特征的相关信息对第一参与方设备而言是未知项,为了使用前述步骤101中描述的树模型对应的估计函数,第一参与方设备可以根据已知的第二节点路由,以及向第二参与方请求的第一节点路由,模拟联邦树模型,在本地得到一个非联邦学习场景下的树模型,可以将模拟得到的树模型看作是联邦树模型的伪联邦树模型或伪树模型。
示例性地,参见图7,图7是本申请实施例提供的伪联邦树模型示意图,假设样本的特征包括{收入、年龄、身高},其中,“身高”是第二参与方设备提供的,图中编号1所示的host_feat_0表示原联邦树模型中第二参与方的个数为1个,样本中身高特征使用host_feat_0代替,在遍历图中所示的伪树模型,当当前节点是编号1所示的节点时,可以根据第二参与方返回的第二节点路由,确定在该节点的路由信息。
对伪联邦树模型的构建过程进行说明,在一些实施例中,参见图8,图8是本申请实施例提供的伪联邦树模型的构建方法流程图,基于图3,步骤104,可以通过步骤1041A至步骤1044A实现。
步骤1041A,第一参与方设备创建联邦树模型的模型副本,并从根节点开始对模型副本的每个节点进行遍历。
在实际实施时,第一参与方设备在本地构建的伪联邦树模型,可以看作是目标联邦树模型的变体,为了提高伪树模型的创建效率,可以通过在联邦树模型的模型副本中,进行相应的修改,即可得到用于模拟联邦树模型的伪联邦树模型。
步骤1042A,当遍历到的当前节点对应的特征为第二特征时,获取与第二参与方设备对应的联邦特征,并将当前节点对应的特征替换为联邦特征。
在实际实施时,从模型副本的根节点开始遍历,当遍历到的当前节点对应的特征是第二参与方设备提供的第二特征时,可以直接使用第一参与方设置的、用于代替第二特征的联邦特征,替换掉模型副本中的第二特征,由于第二参与方设备提供的各第二特征,被看作一个整体的联邦特征,所以在伪联邦树模型中,一个联邦特征可以代表一个完整的第二参与方设备的各第二特征。
示例性地,图7中,使用Host_feat_0替换掉第二参与方提供的“身高”特征,获取相应的第一节点路由,即当遍历到Host_feat_0节点时,由于该条样本中,“身高”的具体值是由第二参与方设备提供,为了数据安全性,在该节点时,第一参与方不需要获取身高的具体值,只需要确定是往哪个分支继续进行即可。
步骤1043A,根据第一节点路由所指示的子节点路径,确定当前节点包括的子节点。
在实际实施时,在模型副本中,使用联邦特征替换相应的第二参与方设备提供的第二特征后,通过第一节点路由,确定联邦特征对应的节点的子节点。
步骤1044A,当遍历到的当前节点对应的特征为第一特征时,执行针对其它节点的遍历,直至模型副本中的节点遍历完成,将模型副本中对应第一特征的第一节点、对应第二特征的第二节点、第二节点包括的子节点所构成的树模型作为伪联邦模型。
重复执行上述步骤1041A至步骤1044A,即可得到用作模拟联邦树模型的伪联邦树模型。
继续对伪联邦树模型的构建过程进行说明,在一些实施例中,参见图9,图9是本申请实施例提供的伪联邦树模型的构建方法的另一流程图,基于图3,步骤104,可以通过步骤1041B至步骤1043B实现。
步骤1041B,第一参与方设备创建初始树模型,初始树模型中具有对应第一特征的节点,且初始树模型中的节点对应第二节点路由。
在实际实施时,由于样本中第一特征由于第一参与方设备提供的,也即第一特征相关的信息对第一参与方设备而言是已知信息,为了提供伪联邦树模型的构建速度,第一参与方设备可以直接根据已知的各第一特征,构建一个初始树模型,初始树模型中具有对应第一特征的节点,且初始树模型中的节点对应第二节点路由。
步骤1042B,获取与第二参与方设备存在一一对应关系的联邦特征。
步骤1043B,根据第一节点路由,在初始树模型中创建对应联邦特征的节点及节点包括的子节点,以得到伪联邦树模型。
在实际实施时,第一参与方设备根据第一节点路由,步骤1041B中构建的初始树模型中,直接创建对应联邦特征的节点及节点包括的子节点。
在步骤105中,通过伪联邦树模型对特征集合所包括的特征子集进行预测,得到相应的预测值,并结合预测值及所述目标预测结果,确定特征集合中各特征对应目标预测结果的贡献信息。
在实际实施时,第一参与方设备通过在本地构建的伪联邦树模型对特征结合所包括的特征子集进行预测。需要说明的是,这里的特征集合是前述提供的用作联邦树模型的样本所对应的拓展样本的特征集合,即原始样本中的第二参与方设备提供各第二特征由一个联邦特征代替。
示例性地,样本对应的拓展样本可以为{G_1,G_2,G_3,……,G_n,host_feat_0}。
在一些实施例中,参见图10,图10是本申请实施例提供的伪联邦树模型确定预测值的方法示意图,基于图3,在步骤105中,针对特征集合包括的各特征子集,通过伪联邦模型,可以分别执行以下步骤1051A至步骤1053A,确定各特征子集对应的预测值。
步骤1051A,第一参与方设备从伪联邦树模型的根节点开始,遍历伪联邦树模型的节点。
示例性地,参见图7,假设存在待解释样本X,样本标识为ID1,{收入=1500,年龄=17,身高=165cm},在实际实施,假设身高是第二参与方设备所提供的特征,样本X中“身高”特征的特征值是未知信息,未知信息可以使用“?”表示,为了确定特征子集S{年龄=18,收入=900}对应的预测值,第一参与方设备从图7所示的根节点(即特征“收入”对应的节点),开始遍历伪联邦模型的节点。
步骤1052A,当遍历到的当前节点为非叶子节点,且特征子集包括当前节点对应的特征时,获取当前节点对应的节点路由。
承接上例,针对样本X的特征子集S{年龄=18,收入=900},当在图7中所示的伪联邦树模型中,遍历到“收入”节点时,由于“收入”所在节点为非叶子节点,根据“收入”特征的值“900”,可以确定“收入”节点的节点路由,是往“收入”节点的左分支操作,其中对应的子节点是“年龄”。
步骤1053A,根据节点路由确定当前节点对应的叶子节点,并将叶子节点对应的特征值作为特征子集的预测值。
承接上例,继续根据特征子集S中“年龄”特征的值“18”,可以确定,叶子节点是值为“0.1”的节点,可以确定,特征子集S的预测值为0.1。
在一些实施例中,参见图11,图11是本申请实施例提供的确定特征子集的预测值的方法示意图,基于图3,在步骤105中,针对特征集合包括的各特征子集,通过伪联邦模型,还可以分别执行以下步骤1051B至步骤1055B,确定各特征子集对应的预测值。
步骤1051B,第一参与方设备从伪联邦树模型的根节点开始,遍历伪联邦树模型的节点。
示例性地,参见图7,继续以待解释样本X,样本标识为ID1,{收入=1500,年龄=17,身高=165cm}为例,为了确定特征子集Z{年龄=18,身高=?}对应的预测值,第一参与方设备从图7所示的根节点(即特征“收入”对应的节点),开始遍历伪联邦模型的节点。
步骤1052B,当遍历到的当前节点为非叶子节点,且特征子集不包括当前节点对应的特征时,获取当前节点对应的训练样本的第一数量。
在实际实施时,第一数量,是以当前节点的父节点为分裂节点,对样本进行分组,落入当前节点的样本数量,当前节点为根节点时,第一数量可以是预设的样本数量Number,为了方便计算,Number可以是大于2的整数,同时,Number也可是第一参与方设备执行一次模型解释时,待解释样本的总数,通常情况下,为了提高模型解释效率,一个可以执行多条样本的模型解释操作。
承接上例,假设用于执行模型解释的待解释样本的数量为100条,针对样本X的特征子集Z{年龄=18,身高=?},当在图7中所示的伪联邦树模型中,遍历到“收入”节点时,由于“收入”是缺失特征,所在节点为非叶子节点,但是是根节点,可以获取“收入”节点对应的样本的第一数量为“100”。
步骤1053B,获取当前节点的各子节点对应的训练样本的第二数量。
在实际实施时,第二数量,是以当前节点为分裂节点,对落入节点的训练样本进行分组,落入节点各子节点的样本数量。
承接上例,参见图7,假设,已知100条样本中,“收入<1000”的样本有40条,“收入≥1000”的样本有60条;40条样本中,“年龄<20”的样本有20条,“年龄≥20”的样本有20条;60条样本中,“身高<170cm”的样本有15条,“身高≥170cm”的样本有45条。
步骤1054B,获取各子节点对应的预测值。
承接上例,参见图7,特征子集Z{年龄=18,身高=?}中,“年龄=18”对应的预测值为“0.1”,“身高=?”对应的预测值为0.3(因为Host方对应该样本的“身高”值为“165cm”)。
步骤1055B,根据第一数量,各第二数量、以及各子节点对应的预测值,确定特征子集对应的预测值。
在一些实施例中,参见图12,图12是本申请实施例提供的伪联邦树模型确定预测值的具体方法示意图,基于图3,步骤1055B,可以通过步骤201至步骤203实现。
步骤201,第一参与方设备根据第一数量,以及各第二数量,确定各子节点对应的权重,基于各子节点所对应的权重,对各子节点对应的预测值进行加权处理,得到当前节点对应的预测值。
步骤202,若当前节点为根节点,将当前节点对应的预测值作为特征子集对应的预测值。
步骤203,若当前节点非根节点,获取当前节点所在节点层中各节点的权重、以及节点层中各节点对应的预测值,对节点层中各节点对应的预测值进行加权处理,得到当前节点的父节点所对应的预测值,若父节点为根节点,将父节点对应的预测值作为特征子集对应的预测值,若父节点非根节点,迭代执行上述处理,直至得到根节点对应的预测值,作为特征子集对应的预测值。
承接上例,参见图7,特征子集Z{年龄=18,身高=?}中,“年龄=18”对应的预测值为“0.1”,“身高=?”对应的预测值为0.3(因为Host方对应该样本的“身高”值为“165cm”),具体的计算过程为:由于特征子集Z中存在特征“年龄”,根据“年龄=18”,在“年龄”这里往左走,预测值为0.1;右分支到“身高”特征,特征子集Z中存在“身高”,且身高是联邦特征,因为获取该联邦特征的路由,确定在“身高”这里往左走,预测值为0.3。因此,可以确定,特征子集Z{年龄=18,身高=?}的预测值为0.1*(20/100)+0.3*(80/100)=0.02+0.24=0.26;其中,20/100为缺失特征“收入”(左分支)的样本比例,0.1为“年龄=18”的预测值,80/100为缺失特征“收入”(右分支)的样本比例,0.3为联邦特征的预测值。
在一些实施例中,参见图13,图13是本申请实施例提供的伪联邦树模型确定预测值的另一方法示意图,基于图3,在步骤105中,第一参与方确定特征集合中各特征对应目标预测结果的贡献信息时,针对特征集合中的每个特征,可以分别执行以下步骤301至步骤305。
步骤301,第一参与方设备获取特征对应的第一预测值。
在实际实施时,获取各特征对应的预测值,可以看作是获取只有一个特征的特征子集对应的预测值。
步骤302,确定特征集合的多个特征子集中不包括特征的目标特征子集。
步骤303,通过伪联邦树模型,获取各目标特征子集对应的第二预测值。
步骤304,基于第一预测值,以及各第二预测值,确定特征对各第二预测值的边际贡献值。
在实际实施,利用前述公式(2)可以确定各特征的对应的边际贡献值。
步骤305,基于各边际贡献值,确定特征对应目标预测结果的贡献信息
在一些实施例中,第一参与方根据基于各边际贡献值,确定特征对应目标预测结果,还可以通过以下方式实现:当边际贡献值的数量为多个时,第一参与方对多个边际贡献值进行求和,得到特征对应目标预测结果的总贡献值,并将总贡献值作为特征对目标预测结果的贡献信息。
本申请实施例中第一参与方可以通过一次节点路由获取请求,从各第二参与方获取各待解释样本的对应联邦特征的节点路由,并在第一参与方本地构建对应联邦树模型的伪树模型,对于所有特征子集的预测都可以在本地并行完成,而不需复杂的联邦学习预测流程,大大减少了通信量,使得在联邦场景下使用树算法解释多条样本与衡量贡献功能具有实用价值,并且提供了单样本的解释,补充了联邦场景下的缺失;同时,能够衡量各Host方的特征贡献信息,另外,还能够对全局特征重要度的衡量。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
相关纵向联邦树模型提供的特征重要度方案可以满足部分需求,以一个由两方参与的纵向联邦树场景(guest与host两方)为例,对纵向联邦树模型提供的特征重要度的方案简述如下:
(1)guest方在本地初始化一张表,表中包含guest本地所有的特征与host发送来的匿名特征编号,每个特征的计数值为0;
(2)开始建立决策树,对于每个决策树节点使用的分裂特征,它在表中相应的计数值加1,或者加上分裂收益值(gain);
(3)建立决策树完毕,输出特征重要度表。特征重要度表可用于解释模型:计数值高的特征代表其在建模过程中发挥的作用高。
然而,上述纵向联邦树模型提供的特征重要度方案可以满足上述需求(1),却无法满足上述需求(2)、(3)。
首先对于上述需求(2),用户无法使用特征重要度去具体的解释单条样本,例如,有一个样本S{年龄:28,婚恋状况:已婚,收入:10000,学历:本科,工作:IT,籍贯:……等等其他特征},是一个违约客户。通过纵向联邦学习模型对该条样本进行预测,得到的分数为0.1,业务应用者希望知道,样本S中每一个具体的特征值(如年龄=28)为最终这个0.1的预测分贡献了多少,并能判断该特征对预测分的影响是正向影响还是负向影响,这样便可以结合模型与现实生活的经验得到一些业务上的启发。
仅仅根据得到的特征重要度是无法判断一个具体的特征值对模型输出结果的影响以及影响的正负性的。因为特征重要度只反应了一个全局特征的使用情况,没办法用于分析一个具体的样本。
对于上述需求(3),虽然特征重要度能够得知合作方的特征使用了多少次,但是合作方特征对于单个样本的正向与负向影响也是不可知的。如果对于很多样本,合作方的特征都能提供大的影响,那么可以用来衡量合作方特征的价值。
由于在联邦学习场景下,夏普利值(SHAP值)的计算需要枚举特征子集,然后在联邦条件下,预测将会产生非常频繁的通信。基于此,本申请实施例提供一种联邦树模型的数据处理方法,在纵向联邦学习场景中,结合SHAP值,解释联邦树模型预测结果,并衡量合作方的特征总价值的方法,能够仅通过一次通信便可以实现批量解释多条样本。
由前述步骤102中对夏普利值相关知识的描述,可以确定,在基于夏普利值对机器学习模型进行解释时,需要确定的信息至少包括:待解释样本对应机器学习模型的预测值、待解释样本的特征集合所包括的多个特征子集、以及用于确定各特征子集对应机器学习模型的估计值的估计函数(即在特征子集缺失某个特征时,基于机器学习模型所确定的平均值)。
在实际实施时,可以根据前述步骤102中的公式(3)获取待解释样本特征集合所包括的各特征子集。
示例性地,假设待解释样本x={年龄=20,身高=170,收入=100},枚举所有特征子集:{年龄=20,身高=170,收入=100},{年龄=20,身高=170},{年龄=20,收入=100},{身高=170,收入=100},{收入=100},{年龄=20},{身高=170},{}。
继续对估计函数f_x进行说明,在实际实施时,评估一条样本中各个特征值的SHAP值时,可以根据机器学习模型的实际情况确定相应的估计函数f_x,并使用f_x反应对应样本的特征子集通过机器学习模型得到的预测值。
下面,以在非联邦学习场景中,机器学习模型为树模型时,对应树模型的估计函数为例进行详细说明。树模型由于其结构的特殊性,可以在不依靠任何其他样本的情况下,估计样本的特征集合所包括的各特征子集,在缺失某个特征时,树模型输出的平均值。参见图14,图14是本申请实施例提供的树模型估计函数的代码片段示意图。图中所示的算法中,S为待解释样本x的一个特征子集;假设一共有n个树节点,那么向量都包含n个元素,为叶子节点的输出值,只有叶子节点才有值;为某节点的左右子节点的索引向量,非叶子节点可以通过中的索引信息找到对应的子节点;为非叶子节点对应的切分阈值;为非叶子节点对应的特征索引,叶子节点对应的元素值为空,为训练中落在该节点的样本数量。基于此,在估计树算法缺失某个特征的平均输出值时,根据递归算法有以下流程:
输入某个子集S,从根节点开始:
开始{遍历每一个节点j,j=0,1,2,……
初始化权重为w=1
执行:
如果节点j为非叶子节点,且判定特征d_j在子集S中,
w保持不变向下传递,则向上返回往下遍历的结果
如果该节点j非叶子,且判定特征d_j不在子集S中
取出r_j,且取出r_(a_j)、r_(b_j)
计算出左支新权重w_l=r_(a_j)/r_j,由左支向下传递
计算出右支新权重w_l=r_(b_j)/r_j,由右支向下传递
向上返回左支遍历与右支遍历的结果之和
如果该节点为叶子
向上返回权重w乘以叶子输出值t_j的值
}结束,最终,递归结束后获得返回的值作为子集S的估计值。
示例性地,参见图7,假设,存在100条样本(待解释样本),各条样本中包括3个特征{收入、年龄、身高}以及预测值,图中树模型包括7个节点,{0、1、2、3、4、5、6}表示树模型中节点索引,{0.1、0.2、0.3、0.4}为树模型对应的预测值,估计函数中的各向量的值为: 其中,各向量中的元素“-1”表示无相应的值,图中“2000”为“收入”的切分(分割)阈值,“20”为“年龄”的切分(分割)阈值,“170cm”为“身高”的切分(分割)阈值。
承接上例,图中,以“收入”为分裂节点,其中,100条样本中有40条样本中的特征收入对应的值符合“收入<2000”(往左边走),剩余的60条样本符合“收入≥2000”;即以“收入=2000”将100条样本分成两组,一组包含40条样本,另一组包含60条样本。以“年龄”为分裂节点,其中有20条样本满足“年龄<18”(往左边走),有20条样本满足“年龄≥18”;以“身高”为分割(分裂)点,其中有15条样本(分裂子集)满足“身高<170”(往左边走),有45条样本满足“身高≥170”。
承接上例,以待解释样本X{收入=1500,年龄=17,身高=165cm}为例,待解释样本X在上述决策树模型f对应的节点索引路径为0→1→3,即得到f({收入=1500,年龄=17,身高=165cm})=0.1;
承接上例,枚举待解释样本X{收入=1500,年龄=17,身高=165cm}中特征集合对应的所有特征子集:{年龄=18,身高=160,收入=900},{年龄=18,身高=160},{年龄=18,收入=900},{身高=160,收入=900},{收入=900},{年龄=18},{身高=165},{}(此为空集)。
承接上例,通过上述决策树模型f,确定特征子集A{年龄=18,收入=900}对应的预测值,即计算f({年龄=18,收入=900})的值,特征子集A中缺失特征是“身高”,实现过程如下:预测索引路径,0→1→3,则f({年龄=18,收入=900})=0.1,缺失特征“身高”时,不影响;
承接上例,通过上述决策树模型f,确定特征子集B{年龄=18,身高=160},对应的估计值(平均值),即计算f({年龄=18,身高=160})的值,特征子集B中缺失特征为“收入”,因为“收入”特征是根节点,此时就无法继续使用索引路径的方式来预测值,在此情况下,可以使用各节点训练样本的样本比例,进行预测,
承接上例,针对100条样本,使用“收入”特征进行分割(切分)时,20条样本划分到左分支,80条样本划分到右分支。在特征子集B中缺失特征“收入”的情况下,“收入”对应的左右两个分支都要参考:左分支到“年龄”特征,由于特征子集B中存在特征“年龄”,根据“年龄=18”,在“年龄”这里往左走,预测值为0.1;右分支到“身高”特征,特征子集B中存在“身高”,根据“身高=160”,在“身高”这里往右走,预测值为0.3。因此,可以确定,f({年龄=18,身高=160})=0.1*(20/100)+0.3*(80/100)=0.02+0.24=0.26;其中,20/100为缺失特征“收入”(左分支)所样本比例,0.1为“年龄=18”的预测值,80/100为缺失特征“收入”(右分支)所样本比例,0.3为“身高=160”的预测值。
承接上例,通过上述决策树模型f,确定特征子集C{身高=160}对应的预测值,即计算f({身高=160})的值,特征子集C中缺失特征为“收入”、“年龄”,估计f({身高=160})的值,实现方法如下:特征子集C在“年龄”这个节点(缺失),“年龄”节点对应的左右分支均要考虑,即0.1*(20/40)+0.2*(20/40)=0.15;即年龄这个分支,往上(“收入”节点)返回的值是0.15;在“身高”这个节点,正常取值为0.3,即“身高”这个右分支,往上(“收入”节点)返回的值是0.3;在“收入”这个节点,左右分支均要考虑,即0.15*(20/100)+0.3*(80/100)=0.03+0.24=0.27;因此,f({身高=160})=0.27。
结合上述可适用于树模型的估计函数,可以获取样本的特征集合所包括的特征子集的估计值,为了将树模型的估计函数应用到联邦树模型场景中,可以对联邦树模型对应的样本所包含的特征进行调整,并通过调整后的特征,构建伪树模型,并调用前述应用于树模型的估计函数,确定各特征子集的估计值,从而确定各特征对于样本的预测结果的贡献度。
接下来,参见图15,图15是本申请实施例提供的联邦树模型的数据处理方法的流程图,结合图15对本申请实施例提供的联邦树模型的数据处理方法进行说明。
在步骤401中,第一参与方统计待解释样本中第一特征的数量,以及参与联邦树模型建模的第二参与方的数量。
在实际实施时,为了便于区分,Guest方提供的特征可称为第一特征,Host方提供的特征可称为第二特征。假设有k(k≥1且k为整数)个Host方参与联邦树模型的建模。单条待解释样本中包含Guest方提供的n个第一特征G_0,G_1,……,G_n-1;以及每个Host方所提供的m个第二特征H_i_0,H_i_1,……,H_i_m-1。其中,i可以表示Host方的索引,H_i_0可以表示第i个Host方提供的第一个特征,每个Host方提供的特征数量可以不同。为了在本地计算待解释样本中Guest方提供的各特征的贡献度,以及各Host方的整体贡献度,Guest方对Host方提供的特征进行调整,即使用一个联邦特征host_feat,代替一个Host方的所有特征(H_i_0,H_i_1,……,H_i_m-1)。因此,调整后的待解释样本中包括的特征可以为G_0,G_1,……,G_n-1,host_feat_0,……,host_feat_k-1,一共n+k个特征。
在步骤402中,第一参与方向第二参与方发送路由获取请求,以使第二参与方根据所述路由获取请求,返回各待解释样本对应的路由信息。
在实际实施时,第一参与方通过向各第二参与方发送路由获取请求,并接收第二参与方返回的路由信息,将路由信息作为各联邦特征对应的路由信息。
在实际实施时,各第二参与方在接收到第一参与方发送的路由获取请求后,第二参与方可以获取待解释样本的路由,可记作:X0_route=[result_0,result_1,……,result_k-1],X1_route=[result_0,result_1,……,result_k-1],X0_route表示样本X0中各Host方返回的路由信息,result_0表示索引编号为0的Host方返回的路由信息。其中,第二参与方获取路由信息的具体实现过程如下所示:
开始{
输入样本X0,X1…Xn在Host方的特征
对于样本Xi in[X0,X1…Xn]
初始化结果记录result={},该记录为空
执行:遍历树模型中的每一颗树,当前树的编号为t
初始化result[t]={}
遍历树中的每一个节点,当前节点的编号为n
判断该节点是否属于当前host,
如果节点属于当前host,
则继续判断样本X_i在该节点是往左还是往右如果往左,记录result[t][n]=left
否则,记录result[t][n]=right
}结束,路由提取完成,每个host都将result发送至guest方。
在步骤403中,第一参与方根据样本所包括各第一特征,各第二参与方对应的联邦特征、以及各联邦特征对应的路由信息,在本地构建样本对应的伪树模型。
在实际实施时,针对单条训练样本,Guest方已知信息包括n个第一特征、k个联邦特征以及各联邦特征对应的路由信息。通过以上样本的已知信息,可以构建一个伪树模型,伪树模型用于确定样本的特征集合所包括的各特征子集的估计值。
在实际实施时,在纵向联邦树模型下,各参与方都拥有完整的树模型结构,但是树节点中的信息(特征,分裂值)只有其所有方才有,因此在Guest方,Host方的节点内容为空,Guest只有属于自己的节点和叶子节点的信息。为了使用前述树模型的估计函数,Guest可以通过使用Host提供的路由信息,为样本构建伪树模型,使得前述树模型的估计函数可以顺利运行。
在实际实施时,假设输入样本X_0,guest原有树模型,以及host方路由X0_route=[result_0,result_1,……,result_k],首先样本X_0仅有guest特征,为X_0拓展特征,此处有k个host,为X_0增加特征host_feat_0...host_feat_k,特征值都为1。第一参与方实现伪树模型的伪代码如下所示:
开始{对于Guest的每一棵树,
执行:遍历每一个节点
如果该节点属于guest,跳过
如果该节点属于某个host_i
则为该节点的t替换为host_feat_i
从路由表result_i中查询host_feat_i对应的方向
如果方向为left
则可以将d中分隔值替换为1.5
如果方向为right,
则可以将d中分隔值替换为0.5
}结束,第一参与方根据上述实现过程,完成伪树模型的构建,返回拓展的样本X_0以及伪树模型,这里,拓展的样本可以理解成,样本的特征包括第一特征以及各联邦特征。
示例性地,图16是本申请实施例提供的伪树模型构建方法示意图,参见图16,针对待解释样本H,包含1个Guest方特征,两个Host方提供的特征,对应待解释样本H的拓展的样本H'包括1个Guest方特征以及两个联邦特征,开始时,在Guest方,初始化样本H'对应的伪树模型的相关信息为: 图中索引号为0的节点表征第一个Host方,索引号为1的节点表征第二个Host方,第一个Host方返回的路由信息为result_0[1]={0:left},第二Host方返回的路由信息为result_1[1]={1:right}。result_i[k]={i:left|right},i表示索引编号为i的Host方(如:i=0,表示第0个host),k表示树的索引(由于不同的样本特征值不同,每条样本对应一棵树对),具体含义:第k棵树的i号节点应该往左(或右)走。
承接上例,可以设置各Host方对应的联邦特征的值为“1”,如,索引号为0的Host方对应的联邦特征host_feat_0=1,同时,设置Guest方从第一个Host方接收到对应样本H'的路由信息为result_0[1]={0:left},即索引为0的Host节点应该往左走,为了能够在遍历树模型时,在索引号为0的Host方对应的host_feat_0节点处往左走(假设设置的往左走的条件是host_feat_0的值小于host_0节点处的分割值),可以设置host_feat_0处的分割值为1.5(只要比1大的值就可以)。同理,由于设置host_feat_1=1,同时Guest方从第二个Host方接收到对应样本H'的路由信息为result_1[1]={1:right},即在索引为1的Host节点应该往右走,为了能够在host_feat_1=1处往右走(假设设置往右走的条件是,host_feat_1的值大于host_1节点处的分割值),可以设置host_1处的分割值为0.5。这样使用联邦特征在伪树模型中进行预测时,可以模拟联邦预测行为。因此,针对待解释样本H的伪树模型构建完成后,构建完成的伪树模型的相关信息发生变化:
在步骤404中,第一参与方对样本包括各第一特征,各联邦特征进行组合,得到多个特征子集,并通过样本对应的伪树模型,确定各特征子集对应的预测值。
在实际实施时,将每条待解释样本X0,X1…Xn中,Guest方提供的特征,与各Host方对应的联邦特征,组成待解释样本所对应的拓展样本X0',X1',……,Xn',获取拓展样本的所有特征子集,通过步骤403创建与样本对应的伪树模型,确定各特征子集对应的预测值。通过伪树模型获取特征子集的预测值的实现过程如下:接收单条待解释样本的Guest方提供的特征,样本对应的伪树模型,枚举的所有特征子集作为输入,对于每一个特征子集:对于伪树模型中的每一棵树,将Guest方提供的特征,对应的树,特征子集S输入至树模型估计函数;伪树中包含了运行树模型估计函数的所需要的向量将每一次运行结果加总,得到该特征子集的评分。
在步骤405中,第一参与方确定各特征在不包含自身的特征子集中的边际贡献值,将特征对应的多个边际贡献值相加,得到特征的总贡献值,并将总贡献值作为特征对样本预测结果的贡献信息。
在实际实施时,针对待解释样本,通过步骤404对各特征子集进行评分(即获取各特征子集对应的估计值)后,依照前述公式(2):
确定各特征对于样本的预测结果的贡献信息。其中,特征为Guest方提供的特征时,得到的贡献信息用于表示特征自身对样本预测结果的贡献信息;征为对应Host方的联邦特征时,得到的贡献信息用于表示Host方对样本预测结果的整体贡献信息。
在实际实施时,Guest方通过步骤405,获取每条样本各Guest方提供的特征的SHAP值,以及各联邦特征对应的SHAP值。Host方不获得任何结果。Guest方将所有待解释的样本X0,X1…Xn对应特征[G_0,G_1,……,G_n]的SHAP值以及每条待解释样本host_feat的SHAP值绝对值相加,得到每个特征的贡献信息(也可称为特征重要度)与Host方的总贡献值。另外,Guest方将各待解释的样本X0,X1…Xn对应Guest方提供的特征[G_0,G_1,……,G_n]的SHAP值以及每条待解释样本host_feat的SHAP值的正值相加,得到每个特征的正向贡献度。Guest方将各待解释的样本X0,X1…Xn对应Guest方提供的特征[G_0,G_1,……,G_n]的SHAP值以及每条待解释样本host_feat的SHAP值的负值相加,得到每个特征的负向贡献度。
本申请实施例中Guest方通过一次通信从Host方获取所有待解释样本的路由信息,并在Guest方本地构建对应联邦树模型的伪树模型,对于所有特征子集的预测都可以在本地并行完成,而不需复杂的联邦学习预测流程,大大减少了通信量,使得在联邦场景下使用树算法解释多条样本与衡量贡献功能具有实用价值,并且提供了单样本的解释,补充了联邦场景下的缺失;同时,能够衡量各Host方的特征贡献信息,另外,还能够对全局特征重要度的衡量。
下面继续说明本申请实施例提供的联邦树模型的数据处理装置555的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器540的联邦树模型的数据处理装置555中的软件模块可以包括:
第一获取模块5551,用于获取用作联邦树模型的训练样本的特征集合,所述特征集合包括第一参与方设备提供的至少两个携带目标预测结果的第一特征、以及所述第二参与方设备提供的至少一个第二特征;
接收模块5552,用于接收各所述第二参与方设备发送的用于模拟所述联邦树模型的第一节点路由,所述第一节点路由,用于指示以所述第二特征作为所述联邦树模型的分裂节点时,所述分裂节点对应的子节点路径;
第二获取模块5553,用于获取所述至少两个第一特征所对应节点在所述联邦树模型中的第二节点路由;
模拟模块5554,用于基于所述第一节点路由及所述第二节点路由,模拟所述联邦树模型,得到所述联邦树模型对应的伪联邦树模型;
确定模块5555,用于通过所述伪联邦树模型对所述特征集合所包括的特征子集进行预测,得到相应的预测值,并结合所述预测值及所述目标预测结果,确定所述特征集合中各特征对应所述目标预测结果的贡献信息。
在一些实施例中,接收模块,还用于向各所述第二参与方设备发送节点路由获取请求,所述节点路由获取请求携带有训练样本对应的样本标识;接收到各所述第二参与方设备基于所述节点路由获取请求,返回的与所述样本标识对应的、用于模拟所述联邦树模型的第一节点路由。
在一些实施例中,模拟模块,还用于创建所述联邦树模型的模型副本,并从根节点开始对所述模型副本的每个节点进行遍历;当遍历到的当前节点对应的特征为所述第二特征时,获取与所述第二参与方设备对应的联邦特征,并将当前节点对应的特征替换为所述联邦特征;根据所述第一节点路由所指示的子节点路径,确定当前节点包括的子节点;当遍历到的当前节点对应的特征为所述第一特征时,执行针对其它节点的遍历,直至所述模型副本中的节点遍历完成,将所述模型副本中对应所述第一特征的第一节点、对应所述第二特征的第二节点、所述第二节点包括的子节点所构成的树模型作为所述伪联邦模型。
在一些实施例中,模拟模块,还用于创建初始树模型,所述初始树模型中具有对应所述第一特征的节点,且所述初始树模型中的节点对应所述第二节点路由;获取与所述第二参与方设备存在一一对应关系的联邦特征;根据所述第一节点路由,在所述初始树模型中创建对应所述联邦特征的节点及所述节点包括的子节点,以得到所述伪联邦树模型。
在一些实施例中,确定模块,还用于针对所述特征集合包括的各特征子集,分别执行以下操作:从所述伪联邦树模型的根节点开始,遍历所述伪联邦树模型的节点;当遍历到的当前节点为非叶子节点,且所述特征子集包括所述当前节点对应的特征时,获取所述当前节点对应的节点路由;根据所述节点路由确定所述当前节点对应的叶子节点,并将所述叶子节点对应的特征值作为所述特征子集的预测值。
在一些实施例中,确定模块,还用于针对所述特征集合包括的各特征子集,分别执行以下操作:从所述伪联邦树模型的根节点开始,遍历所述伪联邦树模型的节点;当遍历到的当前节点为非叶子节点,且所述特征子集不包括所述当前节点对应的特征时,获取所述当前节点对应的训练样本的第一数量;获取所述当前节点的各子节点对应的训练样本的第二数量;获取各所述子节点对应的预测值;根据所述第一数量,各所述第二数量、以及各所述子节点对应的预测值,确定所述特征子集对应的预测值。
在一些实施例中,确定模块,还用于根据所述第一数量,以及各所述第二数量,确定各所述子节点对应的权重,基于各所述子节点所对应的权重,对各所述子节点对应的预测值进行加权处理,得到所述当前节点对应的预测值;若所述当前节点为根节点,将所述当前节点对应的预测值作为所述特征子集对应的预测值;若所述当前节点非根节点,获取所述当前节点所在节点层中各节点的权重、以及所述节点层中各节点对应的预测值,对所述节点层中各节点对应的预测值进行加权处理,得到所述当前节点的父节点所对应的预测值,若所述父节点为根节点,将所述父节点对应的预测值作为所述特征子集对应的预测值,若所述父节点非根节点,迭代执行上述处理,直至得到所述根节点对应的预测值,作为所述特征子集对应的预测值。
在一些实施例中,确定模块,还用于遍历所述特征集合中的每个特征,并针对每个所述特征执行以下操作:获取所述特征对应的第一预测值;确定所述特征集合的多个特征子集中不包括所述特征的目标特征子集;通过所述伪联邦树模型,获取各所述目标特征子集对应的第二预测值;基于所述第一预测值,以及各所述第二预测值,确定所述特征对各所述第二预测值的边际贡献值;基于各所述边际贡献值,确定所述特征对应所述目标预测结果的贡献信息。
在一些实施例中,确定模块,还用于当所述边际贡献值的数量为多个时,对多个所述边际贡献值进行求和,得到所述特征对应所述目标预测结果的总贡献值,将所述总贡献值作为所述特征对所述目标预测结果的贡献信息。
需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。
本申请实施例提供了一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现本申请实施例提供的联邦树模型的数据处理方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图3示出的联邦树模型的数据处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,通过本申请实施例能够通过第一参与方构建的伪联邦树模型,确定样本的各特征子集对应的预测值,从而确定各特征对目标预测结果的贡献信息。同时,第一参与方可以通过一次路由获取请求,从各Host方获取所有待解释样本的对应联邦特征的节点路由,并在第一参与方本地构建对应联邦树模型的伪树模型,对于所有特征子集的预测都可以在本地并行完成,而不需复杂的联邦学习预测流程,大大减少了通信量,使得在联邦场景下使用树算法解释多条样本与衡量贡献功能具有实用价值,并且提供了单样本的解释,补充了联邦场景下的缺失;同时,能够衡量各Host方的特征贡献信息,另外,还能够对全局特征重要度的衡量。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (13)
1.一种联邦树模型的数据处理方法,其特征在于,基于联邦学习系统,所述联邦学习系统包括第一参与方设备及至少一个第二参与方设备,所述方法应用于第一参与方设备,所述方法包括:
获取用作联邦树模型的训练样本的特征集合,所述特征集合包括第一参与方设备提供的至少两个携带目标预测结果的第一特征、以及所述第二参与方设备提供的至少一个第二特征;
接收各所述第二参与方设备发送的用于模拟所述联邦树模型的第一节点路由,所述第一节点路由,用于指示以所述第二特征作为所述联邦树模型的分裂节点时,所述分裂节点对应的子节点路径;
获取所述至少两个第一特征所对应节点在所述联邦树模型中的第二节点路由;
基于所述第一节点路由及所述第二节点路由,模拟所述联邦树模型,得到所述联邦树模型对应的伪联邦树模型;
通过所述伪联邦树模型对所述特征集合所包括的特征子集进行预测,得到相应的预测值,并结合所述预测值及所述目标预测结果,确定所述特征集合中各特征对应所述目标预测结果的贡献信息。
2.根据权利要求1所述的方法,其特征在于,所述接收各所述第二参与方设备发送的用于模拟所述联邦树模型的第一节点路由,包括:
向各所述第二参与方设备发送节点路由获取请求,所述节点路由获取请求携带有训练样本对应的样本标识;
接收到各所述第二参与方设备基于所述节点路由获取请求,返回的与所述样本标识对应的、用于模拟所述联邦树模型的第一节点路由。
3.根据权利要求1所述的方法,其特征在于,所述基于所述第一节点路由及所述第二节点路由,模拟所述联邦树模型,得到所述联邦树模型对应的伪联邦树模型,包括:
创建所述联邦树模型的模型副本,并从根节点开始对所述模型副本的每个节点进行遍历;
当遍历到的当前节点对应的特征为所述第二特征时,获取与所述第二参与方设备对应的联邦特征,并将当前节点对应的特征替换为所述联邦特征;
根据所述第一节点路由所指示的子节点路径,确定当前节点包括的子节点;
当遍历到的当前节点对应的特征为所述第一特征时,执行针对其它节点的遍历,直至所述模型副本中的节点遍历完成,将所述模型副本中对应所述第一特征的第一节点、对应所述第二特征的第二节点、所述第二节点包括的子节点所构成的树模型作为所述伪联邦模型。
4.根据权利要求1所述的方法,其特征在于,所述基于所述第一节点路由及所述第二节点路由,模拟所述联邦树模型,得到所述联邦树模型对应的伪联邦树模型,包括:
创建初始树模型,所述初始树模型中具有对应所述第一特征的节点,且所述初始树模型中的节点对应所述第二节点路由;
获取与所述第二参与方设备存在一一对应关系的联邦特征;
根据所述第一节点路由,在所述初始树模型中创建对应所述联邦特征的节点及所述节点包括的子节点,以得到所述伪联邦树模型。
5.根据权利要求1所述的方法,其特征在于,所述通过所述伪联邦树模型对所述特征集合所包括的特征子集进行预测,得到相应的预测值,包括:
针对所述特征集合包括的各特征子集,分别执行以下操作:
从所述伪联邦树模型的根节点开始,遍历所述伪联邦树模型的节点;
当遍历到的当前节点为非叶子节点,且所述特征子集包括所述当前节点对应的特征时,获取所述当前节点对应的节点路由;
根据所述节点路由确定所述当前节点对应的叶子节点,并将所述叶子节点对应的特征值作为所述特征子集的预测值。
6.根据权利要求1所述的方法,其特征在于,所述通过所述伪联邦树模型对所述特征集合所包括的特征子集进行预测,得到相应的预测值,包括:
针对所述特征集合包括的各特征子集,分别执行以下操作:
从所述伪联邦树模型的根节点开始,遍历所述伪联邦树模型的节点;
当遍历到的当前节点为非叶子节点,且所述特征子集不包括所述当前节点对应的特征时,获取所述当前节点对应的训练样本的第一数量;
获取所述当前节点的各子节点对应的训练样本的第二数量;
获取各所述子节点对应的预测值;
根据所述第一数量,各所述第二数量、以及各所述子节点对应的预测值,确定所述特征子集对应的预测值。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第一数量,各所述第二数量、以及各所述子节点对应的预测值,确定所述特征子集对应的预测值,包括:
根据所述第一数量,以及各所述第二数量,确定各所述子节点对应的权重,基于各所述子节点所对应的权重,对各所述子节点对应的预测值进行加权处理,得到所述当前节点对应的预测值;
若所述当前节点为根节点,将所述当前节点对应的预测值作为所述特征子集对应的预测值;
若所述当前节点非根节点,获取所述当前节点所在节点层中各节点的权重、以及所述节点层中各节点对应的预测值,对所述节点层中各节点对应的预测值进行加权处理,得到所述当前节点的父节点所对应的预测值,若所述父节点为根节点,将所述父节点对应的预测值作为所述特征子集对应的预测值,若所述父节点非根节点,迭代执行上述处理,直至得到所述根节点对应的预测值,作为所述特征子集对应的预测值。
8.根据权利要求1所述的方法,其特征在于,所述结合所述预测值及所述目标预测结果,确定所述特征集合中各特征对应所述目标预测结果的贡献信息,包括:
遍历所述特征集合中的每个特征,并针对每个所述特征执行以下操作:
获取所述特征对应的第一预测值;
确定所述特征集合的多个特征子集中不包括所述特征的目标特征子集;
通过所述伪联邦树模型,获取各所述目标特征子集对应的第二预测值;
基于所述第一预测值,以及各所述第二预测值,确定所述特征对各所述第二预测值的边际贡献值;
基于各所述边际贡献值,确定所述特征对应所述目标预测结果的贡献信息。
9.根据权利要求8所述的方法,其特征在于,所述基于所述边际贡献值,确定所述特征对应所述目标预测结果的贡献信息,包括:
当所述边际贡献值的数量为多个时,对多个所述边际贡献值进行求和,得到所述特征对应所述目标预测结果的总贡献值,
将所述总贡献值作为所述特征对所述目标预测结果的贡献信息。
10.一种联邦树模型的数据处理装置,其特征在于,包括:
第一获取模块,用于获取用作联邦树模型的训练样本的特征集合,所述特征集合包括第一参与方设备提供的至少两个携带目标预测结果的第一特征、以及第二参与方设备提供的至少一个第二特征;
接收模块,用于接收各所述第二参与方设备发送的用于模拟所述联邦树模型的第一节点路由,所述第一节点路由,用于指示以所述第二特征作为所述联邦树模型的分裂节点时,所述分裂节点对应的子节点路径;
第二获取模块,用于获取所述至少两个第一特征所对应节点在所述联邦树模型中的第二节点路由;
模拟模块,用于基于所述第一节点路由及所述第二节点路由,模拟所述联邦树模型,得到所述联邦树模型对应的伪联邦树模型;
确定模块,用于通过所述伪联邦树模型对所述特征集合所包括的特征子集进行预测,得到相应的预测值,并结合所述预测值及所述目标预测结果,确定所述特征集合中各特征对应所述目标预测结果的贡献信息。
11.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至9任一项所述的联邦树模型的数据处理方法。
12.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至9任一项所述的联邦树模型的数据处理方法。
13.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9任一项所述的联邦树模型的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111402378.0A CN114065640B (zh) | 2021-11-24 | 2021-11-24 | 联邦树模型的数据处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111402378.0A CN114065640B (zh) | 2021-11-24 | 2021-11-24 | 联邦树模型的数据处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114065640A true CN114065640A (zh) | 2022-02-18 |
CN114065640B CN114065640B (zh) | 2024-08-02 |
Family
ID=80275778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111402378.0A Active CN114065640B (zh) | 2021-11-24 | 2021-11-24 | 联邦树模型的数据处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114065640B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111598186A (zh) * | 2020-06-05 | 2020-08-28 | 腾讯科技(深圳)有限公司 | 基于纵向联邦学习的决策模型训练方法、预测方法及装置 |
US20210150372A1 (en) * | 2019-09-30 | 2021-05-20 | Tencent Technology (Shenzhen) Company Limited | Training method and system for decision tree model, storage medium, and prediction method |
CN113283185A (zh) * | 2021-07-23 | 2021-08-20 | 平安科技(深圳)有限公司 | 联邦模型训练、客户画像方法、装置、设备及介质 |
CN113297593A (zh) * | 2021-05-14 | 2021-08-24 | 同盾控股有限公司 | 基于隐私计算的贡献度计算方法及装置、设备、介质 |
CN113657996A (zh) * | 2021-08-26 | 2021-11-16 | 深圳市洞见智慧科技有限公司 | 一种联邦学习中特征贡献度的确定方法、装置及电子设备 |
-
2021
- 2021-11-24 CN CN202111402378.0A patent/CN114065640B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210150372A1 (en) * | 2019-09-30 | 2021-05-20 | Tencent Technology (Shenzhen) Company Limited | Training method and system for decision tree model, storage medium, and prediction method |
CN111598186A (zh) * | 2020-06-05 | 2020-08-28 | 腾讯科技(深圳)有限公司 | 基于纵向联邦学习的决策模型训练方法、预测方法及装置 |
CN113297593A (zh) * | 2021-05-14 | 2021-08-24 | 同盾控股有限公司 | 基于隐私计算的贡献度计算方法及装置、设备、介质 |
CN113283185A (zh) * | 2021-07-23 | 2021-08-20 | 平安科技(深圳)有限公司 | 联邦模型训练、客户画像方法、装置、设备及介质 |
CN113657996A (zh) * | 2021-08-26 | 2021-11-16 | 深圳市洞见智慧科技有限公司 | 一种联邦学习中特征贡献度的确定方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114065640B (zh) | 2024-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109791642B (zh) | 工作流的自动生成 | |
US8214375B2 (en) | Manual and automatic techniques for finding similar users | |
CN111177473B (zh) | 人员关系分析方法、装置和可读存储介质 | |
CN113326900A (zh) | 联邦学习模型的数据处理方法、装置及存储介质 | |
CN108140075A (zh) | 将用户行为分类为异常 | |
Kardan et al. | Expert finding on social network with link analysis approach | |
US20100268809A1 (en) | System and method for assessing the usability and accessibility of web 2.0 features and functionalities of websites | |
CN110515986B (zh) | 一种社交网络图的处理方法、装置及存储介质 | |
CN112035549B (zh) | 数据挖掘方法、装置、计算机设备及存储介质 | |
CN113326948A (zh) | 联邦学习模型的数据处理方法、装置、设备及存储介质 | |
CN112015896B (zh) | 基于人工智能的情感分类方法、以及装置 | |
CN112785005B (zh) | 多目标任务的辅助决策方法、装置、计算机设备及介质 | |
CN111159382B (zh) | 会话系统知识模型的构建和使用方法及装置 | |
CN111813961B (zh) | 基于人工智能的数据处理方法、装置及电子设备 | |
CN113656698B (zh) | 兴趣特征提取模型的训练方法、装置和电子设备 | |
CN112561031A (zh) | 基于人工智能的模型搜索方法、装置及电子设备 | |
CN111949306A (zh) | 一种支持开源项目碎片化学习的推送方法和系统 | |
CN109656541A (zh) | 开发资源的推荐方法、装置、存储介质和电子设备 | |
KR102119518B1 (ko) | 인공지능을 이용하여 생성되는 스타일 공간에 기반한 상품 추천 방법 및 시스템 | |
CN114330704A (zh) | 语句生成模型更新方法、装置、计算机设备和存储介质 | |
CN114418120A (zh) | 联邦树模型的数据处理方法、装置、设备及存储介质 | |
CN114741583A (zh) | 基于人工智能的信息推荐方法、装置及电子设备 | |
CN113837210A (zh) | 小程序分类方法、装置、设备及计算机可读存储介质 | |
CN114065640A (zh) | 联邦树模型的数据处理方法、装置、设备及存储介质 | |
CN115587192A (zh) | 关系信息抽取方法、设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |