首页> 中国专利> 联邦学习模型的数据处理方法、装置及存储介质

联邦学习模型的数据处理方法、装置及存储介质

摘要

本申请提供了一种联邦学习模型的数据处理方法、装置,应用于第一参与方设备;方法包括:获取用作联邦学习模型的训练样本的特征集合以及训练样本对应联邦学习模型的目标预测结果,对所特征集合中各特征进行组合,得到多个特征子集,获取各特征子集的权重分数,基于权重分数的大小,从多个特征子集采样得到多个目标特征子集;基于多个目标特征子集,以及目标特征子集对应联邦学习模型的预测结果,对线性回归模型进行训练,得到线性回归模型收敛时的模型参数;基于模型参数,确定特征集合中各特征对应所述目标预测结果的贡献信息。通过本申请,能够衡量单条样本中每个特征的贡献信息,同时能够有效减少模型的计算量,提高计算效率。

著录项

  • 公开/公告号CN113326900A

    专利类型发明专利

  • 公开/公告日2021-08-31

    原文格式PDF

  • 申请/专利权人 深圳前海微众银行股份有限公司;

    申请/专利号CN202110736203.7

  • 发明设计人 陈伟敬;马国强;范涛;陈天健;

    申请日2021-06-30

  • 分类号G06K9/62(20060101);G06N20/00(20190101);

  • 代理机构11270 北京派特恩知识产权代理有限公司;

  • 代理人刘星雨;张颖玲

  • 地址 518052 广东省深圳市前海深港合作区前湾一路1号A栋201室

  • 入库时间 2023-06-19 12:24:27

说明书

技术领域

本申请涉及人工智能技术,尤其涉及一种联邦学习模型的数据处理方法、装置、电子设备及计算机可读存储介质。

背景技术

随着各行各业逐渐加强数据隐私保护的大趋势下,联邦学习,一种可以在保护数据隐私的情况下协同多方数据建立机器学习的技术,成为了各企业、行业间合作的关键之一。

在金融、风控领域,联邦机器学习模型使用者往往想要知道,单条模型输入中的各特征对于模型输出的正向与负向影响。如对于某个特定样本(比方说违约的客户),具体是哪个特征以及该特征的哪些取值,对确定该用户是违约用户产生了重要的影响。另外,还需要确定合作方提供的特征对于模型输出的正向与负向影响。因此,对联邦机器学习模型的可解释性显得尤为重要。

相关联邦学习模型解释方案,通过获取特征重要度从整体上对模型进行解释,无法具体的解释单条样本。另外,虽然使用特征重要度能够得知合作方的特征使用了多少次,但是合作方特征对于模型输出结果的影响的正负性是不可知的,且确定特征贡献信息时模型计算量非常庞大,实际部署成本高。

发明内容

本申请实施例提供一种联邦学习模型的数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够衡量单条样本中每个特征的贡献信息以及衡量第二参与方的贡献信息,同时能够大幅度减少模型的计算量,提高计算效率。

本申请实施例的技术方案是这样实现的:

本申请实施例提供一种联邦学习模型的数据处理方法,应用于第一参与方设备,包括:

获取用作联邦学习模型的训练样本的特征集合以及所述训练样本对应所述联邦学习模型的目标预测结果,并对所述特征集合中各特征进行组合,得到多个特征子集,所述特征集合包括:具有标签信息的第一参与方所提供的特征、以及至少一个第二参与方提供的特征;

获取各所述特征子集的权重分数,并基于所述权重分数的大小,从所述多个特征子集采样得到多个目标特征子集;

基于多个所述目标特征子集,以及所述目标特征子集对应所述联邦学习模型的预测结果,对线性回归模型进行训练,得到所述线性回归模型收敛时的模型参数;

基于所述模型参数,确定所述特征集合中各特征对应所述目标预测结果的贡献信息。

本申请实施例提供一种联邦学习模型的数据处理装置,包括:

获取模块,用于获取用作联邦学习模型的训练样本的特征集合以及所述训练样本对应所述联邦学习模型的目标预测结果,并对所述特征集合中各特征进行组合,得到多个特征子集,所述特征集合包括:具有标签信息的第一参与方所提供的特征、以及至少一个第二参与方提供的特征;

采样模块,用于获取各所述特征子集的权重分数,并基于所述权重分数的大小,从所述多个特征子集采样得到多个目标特征子集;

训练模块,用于基于多个所述目标特征子集,以及所述目标特征子集对应所述联邦学习模型的预测结果,对线性回归模型进行训练,得到所述线性回归模型收敛时的模型参数;

确定模块,用于基于所述模型参数,确定所述特征集合中各特征对应所述目标预测结果的贡献信息。

上述方案中,所述采样模块还用于按照权重分数由大到小的顺序,对各所述特征子集的权重分数进行排序,得到权重分数序列;依据所述权重分数序列,从权重分数最大的特征子集开始顺序采样,得到第一数量的特征子集作为目标特征子集;其中,所述第一数量小于所述特征集合对应的特征子集的总数。

上述方案中,所述采样模块还用于对各所述特征子集的权重分数进行正则化处理,得到各所述权重分数对应的比例系数;基于各所述权重分数对应的比例系数,从所述多个特征子集采样得到多个目标特征子集。

上述方案中,所述采样模块还用于按照比例系数的大小,对各所述权重分数对应的比例系数进行排序,得到比例系数序列;

依据所述比例系数序列中比例系数的排序,依次对各所述比例系数执行以下处理,直至获取目标采样数量的目标特征子集:

获取当前采样数,并确定所述比例系数与当前采样数的乘积,将所述乘积作为当前容量值;

获取所述比例系数对应的特征子集的数量;

当所述当前容量值大于所述数量时,将所述比例系数对应的特征子集作为目标特征子集;

当所述当前容量值小于所述数量时,从未被选中的所述特征子集中,随机选取与所述当前采样数相同数量的特征子集作为目标特征子集。

上述方案中,所述采样模块还用于分别针对各所述比例系数执行以下处理:

获取当前采样数,并确定所述比例系数与当前采样数的乘积,将所述乘积作为当前容量值;

获取所述比例系数对应的特征子集的数量;

当所述当前容量值大于等于所述数量时,将所述比例系数对应的特征子集作为目标特征子集;

当所述当前容量值小于所述数量时,从未被选中的所述特征子集中,随机选取所述数量的特征子集作为目标特征子集。

上述方案中,所述训练模块还用于获取目标特征子集与目标训练样本间的转换关系;

基于所述转换关系,对各所述目标特征子集中的特征进行转换,得到所述线性回归模型的目标训练样本;

将所述目标特征子集对应所述联邦学习模型的预测结果,作为相应目标训练样本的样本标签,对所述线性回归模型进行训练,得到所述线性回归模型收敛时的模型参数。

上述方案中,所述训练模块还用于针对各所述目标特征子集分别执行以下处理:

将所述目标特征子集和所述特征集合进行比较,得到所述目标特征子集与所述特征集合相区别的特征作为缺失特征;

分别为各所述缺失特征进行特征值赋值,并基于赋值结果填充所述目标特征子集的缺失特征,得到所述线性回归模型的目标训练样本。

上述方案中,所述训练模块还用于确定各所述缺失特征对应的缺省值;基于所述缺省值,为所述缺失特征进行特征值赋值。

上述方案中,所述确定模块还用于获取所述线性回归模型对应的线性映射关系,所述线性映射关系中所述目标预测结果为因变量、所述特征集合中各个特征为自变量,所述模型参数为所述自变量的系数;

基于所述模型参数以及所述线性映射关系,确定所述特征集合中各特征对应所述目标预测结果的贡献信息。

本申请实施例提供一种电子设备,包括:

存储器,用于存储可执行指令;

处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的联邦学习模型的数据处理方法。

本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的联邦学习模型的数据处理方法。

本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的联邦学习模型的数据处理方法。

本申请实施例具有以下有益效果:

与相关使用联邦树模型输出的特征重要度对机器学习模型进行解释的技术相比,本申请实施例中第一参与方设备通过对联邦学习模型的训练样本的特征集合对应的多个特征子集进行打分,然后基于权重分数,采样得到多个目标特征子集,并基于目标特征子集训练得到线性回归模型,训练完成的线性回归模型能够有效衡量用作联邦学习模型的训练样本中第一参与方提供的各特征的贡献信息,以及第二参与方的贡献信息,同时能够大幅度减少模型的计算量,提高计算效率。

附图说明

图1是本申请实施例提供的联邦学习模型的数据处理系统的一个可选的架构示意图;

图2是本申请实施例提供的电子设备的一个可选的结构示意图;

图3是本申请实施例提供的联邦学习模型的数据处理方法的一个可选的流程示意图;

图4是本申请实施例提供的目标特征子集采样流程示意图;

图5是本申请实施例提供的目标特征子集的采样过程的另一个可选示意图;

图6是本申请实施例提供的线性回归模型的训练流程示意图;

图7是本申请实施例提供的目标特征子集转换流程示意图;

图8是本申请实施例提供的目标训练样本示意图;

图9是本申请实施例提供的线性回归模型特征贡献度示意图;

图10是本申请实施例提供的联邦学习模型的数据处理方法的可选流程图;

图11是本申请实施例提供的子集采样流程示意图;

图12是本申请实施例提供的样本解释流程示意图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

如果申请文件中出现“第一/第二”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。

1)SHAP(SHapley Additive exPlanation)值:一种基于协作博弈理论的模型无关的可解释性分析方式,每条预测记录都有对应的shap值,其中每个特征也有其对应的shap值。当shap值大于0时,表示当前样本中的当前特征将模型预测结果向正向推进,反之表示向反向推进。

2)中位数(Median):又称中值,统计学中的专有名词,是按顺序排列的一组数据中居于中间位置的数,代表一个样本、种群或概率分布中的一个数值,其可将数值集合划分为相等的上下两部分。对于有限的数集,可以通过把所有观察值高低排序后找出正中间的一个作为中位数。如果观察值有偶数个,通常取最中间的两个数值的平均数作为中位数。

3)众数(Mode):是指在统计分布上具有明显集中趋势点的数值,代表数据的一般水平。也是一组数据中出现次数最多的数值,有时众数在一组数中有好几个,用M表示。

本申请实施例提供一种联邦学习模型的数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够衡量单条样本中每个特征的贡献信息以及衡量第二参与方的贡献信息,同时能够大幅度减少模型的计算量,提高计算效率。

基于上述对本申请实施例中涉及的名词和术语的解释,首先对本申请实施例提供的联邦学习模型的数据处理系统进行说明,参见图1,图1是本申请实施例提供的联邦学习模型的数据处理系统的一个可选的架构示意图,在联邦学习模型的数据处理系统100中,第一参与方设备400,第二参与方设备410(示例性的示出了2个第二参与方设备,分别记为410-1和终端410-2,以示区分),第一参与方设备400和第二参与方设备410通过网络300互相连接同时通过网络300连接参数聚合设备200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输。

在一些实施例中,第一参与方设备400和第二参与方设备410通过网络300互相连接,同时可以通过网络300连接联邦学习模型中可能涉及的第三方设备(协作方、服务器等)。

在一些实施例中,第一参与方设备400以及第二参与方设备410可以是笔记本电脑,平板电脑,台式计算机,智能手机,专用消息设备,便携式游戏设备,智能音箱,智能手表等,还可以是联邦学习参与方的客户终端,例如各银行或金融机构等存储有用户特征数据的参与方设备,但并不局限于此。参数聚合设备200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,Content Delivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器,用于协助各参与方设备进行联邦学习以得到联邦学习模型。网络300可以是广域网或者局域网,又或者是二者的组合。第一参与方设备400、第二参与方设备410可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。

第一参与方设备400,用于分别与第二参与方设备410-1,以及第二参与方设备410-2进行联邦学习模型训练,得到训练完成的联邦学习模型。

第一参与方设备400,还用于获取用作联邦学习模型的训练样本的特征集合以及训练样本对应联邦学习模型的目标预测结果,并对特征集合中各特征进行组合,得到多个特征子集,其中,特征集合包括:具有标签信息的第一参与方所提供的特征、以及至少一个第二参与方提供的特征;获取各特征子集的权重分数,并基于权重分数的大小,从多个特征子集采样得到多个目标特征子集;基于多个目标特征子集,以及目标特征子集对应联邦学习模型的预测结果,对线性回归模型进行训练,得到线性回归模型收敛时的模型参数;基于模型参数,确定特征集合中各特征对应目标预测结果的贡献信息。

第二参与方设备410,用于向第一参与方设备400发送加密的本地特征,用于构建用作联邦学习模型的训练样本,当接收到第一参与方设备400发送的通知消息时,使用缺省值或目标值对本地特征进行填充,得到对应本地特征的模型输入。

参见图2,图2是本申请实施例提供的电子设备的一个可选的结构示意图,在实际应用中,电子设备500可以实施为图1中的终端400或服务器200,以电子设备为图1所示的服务器200为例,对实施本申请实施例的联邦学习模型的数据处理方法的电子设备进行说明。图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,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。

在另一些实施例中,本申请实施例提供的联邦学习模型的数据处理装置可以采用硬件方式实现,作为示例,本申请实施例提供的联邦学习模型的数据处理装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的联邦学习模型的数据处理方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable LogicDevice)、现场可编程门阵列(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是大于0的正整数;Host方提供H_1,H_2,H_3,……,H_m,共m个特征,m是大于0的正整数。可以理解的是,单条训练样本的特征集合共包含n+m个特征,{G_1,G_2,G_3,……,G_n,H_1,H_2,H_3,……,H_m}。

当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的计算公式如下:

上述公式(1)中,n+m是特征的个数,

需要说明的是,在联邦学习模型中,为了保护各参与方数据的隐私性,通常不会直接将Host方的特征传输给Guest方,而是通过加密方式在各参与方之间传递相应的中间信息(如模型参数等)。因此,在计算Host方对预测结果(联邦学习模型的输出结果)的影响时,通常是确定Host方的整体影响,即将Host方提供的所有特征看作一个整体特征,可称为联邦特征,记为host_feat。通过确定联邦特征对预测结果的影响以及该影响的正负性,确定相应Host方的整体影响以及该整体影响的正负性。其中,影响的正负性是指影响是正向影响还是负向影响。

在对联邦学习模型对应的单条训练样本进行解释时,将Host方提供的特征作为一个联邦特征host_feat,前述单条样本中n+m个特征,就可看作为n+s个特征,n为Guest方提供的特征个数,s表示s个Host方对应的s个联邦特征host_feat(即一个host_feat表示一个Host方),其中,s是大于0的正整数,s=1,表示只有一个Host方;若s=2,表示有两个Host方。

在一些实施例中,对单条训练样本进行解释实际上确定单条样本中每个特征对目标预测结果的影响,其中,目标预测结果是指该训练样本通过联邦学习模型得到的预测结果。

示例性地,联邦学习模型中,一个Guest方和一个Host方参与计算,对于一条包含n+m个特征的训练样本,其中,n是Guest方提供的特征,m是Host方特征个数,针对该训练样本,为了保证数据的安全性,将Host提供的m个特征,使用一个host_feat特征代替,则一共有n+1个特征,针对这n+1特征,根据前述公式(1)对着n+1特征进行组合计算,得到2

示例性地,一条用作联邦学习模型的训练样本S{年龄:28,学历:本科,收入:10000,工作:IT},该样本输入联邦学习模型得到的预测结果表征该客户是违约客户,其中,特征{年龄:28,学历:本科}由Guest方提供,特征{收入:10000,工作:IT}由Host方提供,实际包含的特征为4个,在实际应用中,为了保证Host方数据的安全性,通常将特征{收入:10000,工作:IT},看作一个host_feat特征,则该条训练样本包含Guest方提供的2个特征{年龄:28,学历:本科},以及一个host_feat特征,共3个特征。对应该条训练样本的特征子集中包含0~3个特征,共包含8(2

在步骤102中,获取各特征子集的权重分数,并基于权重分数的大小,从多个特征子集采样得到多个目标特征子集。

这里,用作联邦学习模型的每条训练样本中的特征集合,都对应多个子集大小不同的特征子集,其中,子集大小是指特征子集中包含的特征的个数,针对子集大小不同的子集进行打分,可以初步估计各特征的重要度。

对特征子集进行打分的方式进行说明,在一些实施例中,可以采用下述公式确定各特征子集的权重分数,公式如下:

W(m)=(M-1)/(m*(M-m)) (2)

其中,子集大小为m的权重分数用W(m)表示,M为一条用作联邦学习模型的训练样本中特征的个数,m是大于0的正整数,M>m。

遍历特征集合对应的大小不同的特征子集,根据上述公式(2)为每个特征子集进行打分,最终,为1到M-1的所有大小的子集打分完毕,得到一个权重分数集合,该集合可以看作为一个打分向量。

在一些实施例中,得到的打分向量中的元素个数可以是M-1个,即是按照子集大小打分。在忽略空集和全集的情况下,一个包含M个特征的特征集合对应的子集大小是从1到M-1,相应的,得到的打分向量中的元素个数也是M-1个,即weight=[w_1,……,w_(M-1)],其中,w_1表示子集大小为1的子集的权重分数,w_(M-1)表示子集大小为M-1,的子集的权重分数。

在一些实施例中,忽略空集和全集的情况下,得到的打分向量中的元素个数可以是包含M个特征的也正集合对应的所有特征子集,其中,每个子集大小对应的特征子集个数使用下述组合函数来表示。

C(r,t)=t!/r!(t-r)! (3)

上述组合函数公式(3)中,r为整数,t为大于等于1的正整数,且t>r。可以解释为包含t个特征的特征集合对应的子集大小为r的特征子集个数C(r,t),例如,C(2,5)=10。

示例性地,以M=5为例,子集中有一个元素的子集个数C(1,5)即为5,子集中有两个元素的子集个数C(2,5),子集中有三个元素的子集个数C(3,5),子集中有四个元素的子集个数C(4,5)。在忽略空集和全集的情况下,对应的特征子集总数为:Total=C(1,5)+C(2,5)+C(3,5)+C(4,5)=5+10+10+5=30,通过上述公式(2)为1到4的所有子集大小的特征子集打分,即:

大小为1的子集的权重可以计算为:(5-1)/(1*4)=1;

大小为2的子集的权重可以计算为:(5-1)/(2*3)=4/6;

大小为3的子集的权重可以计算为:(5-1)/(3*2)=4/6;

大小为4的子集的权重可以计算为:(5-1)/(4*1)=1。

最终,得到一个打分向量weight。其中,weight可以有两种表现形式,一种是weight=[1,4/6,4/6,1];另外一种是:

需要说明的是,由公式(2)中W(m)的性质可知:较大和较小的子集权重较大,互补的集合权重相等。

承接上例,以M=5为例,W(1)=W(4)权重分数值为1,W(2)=W(3)权重分数值为4/6。

在获得各特征子集对应的权重分数后,接着对采样目标特征子集的方式进行说明,在一些实施例中,可以通过以下方式采样得到目标特征子集:按照权重分数由大到小的顺序,对各特征子集的权重分数进行排序,得到权重分数序列;依据权重分数序列,从权重分数最大的特征子集开始顺序采样,得到第一数量的特征子集作为目标特征子集;其中,第一数量小于特征集合对应的特征子集的总数。

在实际实施时,可以直接对获取的打分向量进行重新排序,得到权重分数按照从大到小排序的权重分数序列,按照这个权重分数序列,直接采样得到第一数量的目标特征子集。第一数量可以是预设采样数量,且第一数量的值小于特征子集的总数,可以使用max_subset表示。

承接上例,以M=5为例,对应的weight=[1,4/6,4/6,1],进行重新排序后,得到weight'=[1,1,4/6,4/6],可以确定W(1)=W(4)的权重分数相等且较高,W(2)=W(3)权重分数相等且较低,此时,若预设采样数量为10,则可以直接将子集大小为1的特征子集,个数为C(1,5)=5,以及子集大小为4的特征子集个,数为C(4,5)=5,均作为目标特征子集共10个与预设采样数量一致,采样结束。

在一些实施例中,还可以通过比例系数的大小,采样目标特征子集。参见图4,图4是本申请实施例提供的目标特征子集采样流程示意图。基于图3,步骤102可以通过图4示出的步骤实现。

步骤1021,第一参与方设备对各特征子集的权重分数进行正则化处理,得到各权重分数对应的比例系数。

需要说明的是,比例系数实际上是对前述根据公式(2)得到的各特征子集对应的权重分数进行正则化(归一化)操作,得到取值范围介于0到1之间的比例系数,比例系数越大对应的权重分数越高。

在一些实施例中,根据前述计算得到的打分向量weight,计算出每个特征子集的权重占总体的比例,得到一个比例系数结合,可以成为一个比例向量,记为p,计算公式如下:

p=weight/(w_1+……+w_(M-1))=[p1,p2,……,p_(M-1)] (4)

示例性地,以M=5为例,通过上述公式(2),当得到对应各特征大小的权重分数weight=[1,4/6,4/6,1]时,然后根据上述公式(4),对weight中的各权重大小进行正则化(归一化),得到各特征子集大小对应的p值:

大小为1的特征子集的权重对应的值:p_1=1/(1+4/6+4/6+1)=0.3;

大小为2的特征子集的权重对应的值:p_2=(4/6)/(1+4/6+4/6+1)=0.2;

大小为3的特征子集的权重对应的值:p_3=(4/6)/(1+4/6+4/6+1)=0.2;

大小为4的特征子集的权重对应的值:p_4=1/(1+4/6+4/6+1)=0.3;

最终,得到比例向量p=[0.3,0.2,0.2,0.3]。另外,当得到对应各特征大小的权重分数weight采样如下表示时,

得到的比例系数集合p的表示如下:

步骤1022,基于各权重分数对应的比例系数,从多个特征子集采样得到多个目标特征子集。

在获得各特征子集对应的权重分数进行正则化处理,得到对应的比例系数后,在一些实施例中,可以通过以下方式采样得到目标特征子集:通过比例系数采样目标特征子集,需要先按照比例系数的大小,对各权重分数对应的比例系数进行排序,得到比例系数序列;然后依据比例系数序列中比例系数的排序,依次对各比例系数执行相应的处理。参见图5,图5是本申请实施例提供的目标特征子集的采样过程的另一个可选示意图,基于图4,步骤1022可以通过图5示出的步骤实现。

步骤201,第一参与方设备获取当前采样数,并确定比例系数与当前采样数的乘积,将乘积作为当前容量值。

这里,当前采样数可以使用i_subset表示,i表示当前操作的比例系数在比例系数序列中的索引,也可以用于表示当前采样轮次。若i从1开始,则1_subset表示当前操作的比例系数是比例系数序列中的第一个比例系数,或者首轮采样。需要说明的是,当前正在处理的比例系数是比例系数序列中第一个比例系数时,当前采样数是预设的采样阈值,用max_subset表示,即1_subset=max_subset。为了能够获取合理的目标特征子集,通过在每个采样轮次中都会计算当前采样轮次的最大采样数量。

在一些实施例中,根据当前比例系数p_current以及当前采样数i_subset的乘积,确定当前采样轮次能够采样的目标特征子集的最大数量,也可称为当前轮次的容量数,使用capacity表示,即capacity=i_subset*p_current。

示例性地,以M=5为例,得到排序后的为p=[p_1,p_(M-1),p_2,p_(M-2)],即p=[p_1,p_4,p_2,p_3]=[0.3,0.3,0.2,0.2],进行首轮采样时,p_curren=p_1=0.3,对应的子集大小为p_size=1,i_subset=max_subset(假设为,20),得到一个容量数:capacity=20*0.3=6。

步骤202,获取比例系数对应的特征子集的数量。

承接上例,进行首轮采样时,子集大小p_size=1对应的特征子集个数为C(1,5)=5,若满足进行第二次采样的条件,此时子集大小p_size=4对应的特征子集个数为C(4,5)=5。

步骤203,当当前容量值大于数量时,将比例系数对应的特征子集作为目标特征子集。

承接上例,首轮采样时,capacity=6,即当前轮次能够容纳的特征子集的个数为6,此时,子集大小p_size=1对应的特征子集个数为C(1,5)=5,5比6小,因此,p_size=1的所有特征子集均采样为目标特征子集,此时还需要采样的目标特征子集的数量更新为max_subset-5=15个,即当进行第二轮采样时,i_subset=2_subset=15。

步骤204,当当前容量值小于数量时,从未被选中的特征子集中,随机选取与当前采样数相同数量的特征子集作为目标特征子集。

承接上例,以M=5为例,首轮采样结束后,采样到的目标特征子集数为5个,还需要继续进行第二轮采样,即执行步骤201至203,需要说明的是,此时的i_subset(即2_subset)已经不再是max_subset(20)了,而是更新为20-5=15,即2_subset=15,则步骤202中得到的capacity=15*0.3=4.5,对4.5取整得4,即第二轮采样,能够容纳的特征子集个数为4,而此时,此时,子集大小p_size=4对应的特征子集个数为C(4,5)=5,5比4大,因此,二轮采样时,p_size=4的所有特征子集无法全部采样为特征子集。在一些实施例中,为了保证目标特征子集的均衡性,可以直接结束当前遍历,而是从剩余的所有特征子集中进行随机采样,得到剩余的目标特征子集。

承接上例,p_size=4的所有特征子集无法全部采样为特征子集,此时还针对需要采样的剩余的15个目标特征子集,可以从剩余的特征子集(30-5=25)中随机采样,最终得到max_subset数量的目标特征子集。

针对比例系数序列中的各比例系数,依次遍历p中的比例系数,循环执行上述步骤201至步骤204,直至获取目标采样数量的目标特征子集。

在步骤103中,基于多个目标特征子集,以及目标特征子集对应联邦学习模型的预测结果,对线性回归模型进行训练,得到线性回归模型收敛时的模型参数。

需要说明的是,目标特征子集中部分特征缺失的(即缺失特征),但是由于特征不全的特征子集是不能通过机器学习模型(本申请实施例中的联邦学习模型f)直接获取到预测结果的,需要对缺失特征进行填充,构建对应联邦学习模型f的模型输入(或称训练样本)。

在一些实施例中,可以通过以下方式确定目标特征子集相对于步骤101中用作联邦学习模型的训练样本对应的特征集合中的缺失特征:确定目标特征子集和步骤101中的特征集合的交集;基于得到的交集,确定目标特征子集的缺失特征,可以理解的是,缺失特征是指交集与特征集合相区别的特征。

示例性地,一条用作联邦学习模型的训练样本S{年龄:30,学历:硕士,收入:15000,工作:通信},该样本输入联邦学习模型得到的预测结果表征该客户是违约客户,其中,特征{年龄:30,学历:硕士}由Guest方提供,特征{收入:15000,工作:通信}由Host方提供,实际包含的特征为4个,在实际应用中,为了保证Host方数据的安全性,通常将特征{收入:15000,工作:通信},看作一个host_feat特征,则该条训练样本对应的特征集合中包含Guest方提供的2个特征{年龄:30,学历:硕士},以及一个host_feat特征,共3个特征,对应8个特征子集(包含空集和全集),具体为:空集、{年龄:30}、{学历:硕士}、{host_feat:{收入:15000,工作:通信}}、{年龄:30,学历:硕士}、{年龄:30,host_feat:{收入:15000,工作:通信}}、{学历:硕士、host_feat:{收入:15000,工作:通信}}、{年龄:30,学历:硕士,host_feat:{收入:15000,工作:通信}}。假设,当前的目标特征子集为{年龄:30,host_feat:{收入:15000,工作:通信}},可以确认目标特征子集的缺失特征{学历}。

在确定目标特征子集中的缺失特征后,需要对目标特征子集中的缺失特征进行填充,构建对应联邦学习模型f的模型输入,然后通过联邦学习模型得到目标特征子集对应f的预测结果。在一些实施例中,可以通过以下方式填充缺失特征:确定各缺失特征对应的缺省值;基于缺省值,为缺失特征进行特征值赋值。

在实际实施时,可以直接根据实际情况,设置缺失特征的缺省值,可以使用固定值作为缺失特征的缺省值。

承接上例,目标特征子集{年龄:30,host_feat:{收入:15000,工作:通信}}中缺失特征是{学历},可以预先设定特征“学历”的缺省值为“本科”,在目标特征子集中填充{学历:本科}。

在一些实施例中,还可以通过以下方式确定缺失特征对应的缺省值:获取用作联邦学习模型的训练样本集合;针对各特征子集执行以下处理:获取特征子集的缺失特征在训练样本集合的各训练样本中对应的特征值;基于各训练样本中与缺失特征对应的特征值,确定缺失特征对应的目标值;在目标特征子集中填充相应缺失特征对应的目标值。

示例性地,训练样本对应的特征{收入=100,年龄=20,身高=170},特征子集{年龄=20,身高=170},显然,缺失特征是收入,机器学习模型是无法预测该特征子集对应的样本的。可以用“收入”的均值/众数/中位数(它们可以从训练数据计算得)来填充,以该填充样本的预测值作为模型输出平均值的估计。从训练样本集合中,计算得到“收入”特征的平均值=50,“身高”特征的平均值=150,“年龄”特征的平均值=15。则可以使用{收入=50}对特征子集{年龄=20,身高=170}进行填充,得到对应的填充样本{年龄=20,身高=170,收入=50}。

对目标特征子集中的缺失特征进行填充后得到目标特征子集对应联邦学习模型f的模型输入。承接上例,确定目标特征子集{年龄=20,身高=170}的预测结果,就是将{年龄=20,身高=170,收入=50}对应联邦学习模型的模型输入,输入至联邦学习模型f,得到对应的预测结果(模型输出),即f_x({年龄=20,身高=170})=f({年龄=20,身高=170,收入=50})。

将目标特征子集对应联邦学习模型f的预测结果作为线性回归模型h的标签数据,并对目标特征子集转换,得到对应目标训练样本作为线性回归模型h的训练样本,根据确定的标签信息以及训练样本对线性回归模型h进行训练。具体的训练过程可以参见图6,图6是本申请实施例提供的线性回归模型的训练流程示意图,基于图3,步骤103可以通过图6示出的步骤实现,结合图6示出的步骤进行说明。

步骤301,第一参与方设备获取目标特征子集与目标训练样本间的转换关系。

需要说明的是,目标特征子集与目标训练样本间的转换关系是指用于将目标特征子集中的各特征采用0和1表示,得到目标训练样本,即针对线性回归模型h的训练样本中的各特征都是用0和1表示的,其中,1表示目标特征子集中实际存在的特征,0表示目标特征子集中缺失特征。

步骤302,基于转换关系,对各目标特征子集中的特征进行转换,得到线性回归模型的目标训练样本。

根据步骤301获取的转化关系,将目标特征子集转换成用作线性回归模型的目标训练样本。

在一些实施例中,针对各目标特征子集中的特征进行转换的具体方式,可以参见图7,图7是本申请实施例提供的目标特征子集转换流程示意图,基于图6,步骤302可以通过图7示出的步骤3021至3022实现。

步骤3021,第一参与方设备将目标特征子集和特征集合进行比较,得到目标特征子集与特征集合相区别的特征作为缺失特征。

这里,根据目标特征子集与步骤101中用作联邦学习模型f的训练样本中的特征集合进行比较,确定目标特征子集对应的缺失特征。

步骤3022,分别为各缺失特征进行特征值赋值,并基于赋值结果填充目标特征子集的缺失特征,得到线性回归模型的目标训练样本。

这里,确定目标特征子集中的缺失特征后,用0表示缺失特征,用1表示目标特征子集中的正常特征。

在一些实施例中,参见图8,图8是本申请实施例提供的目标训练样本示意图,max_subset数量的目标训练样本可以组成一个max_subset行的矩阵,每一行表示一条用作线性回归模型的目标训练样本,目标训练样本的特征采用0或1表示。以第一行为例,假设有一个Guest方和一个Host方参与的联邦学习模型,Guest方提供p-1个特征{X1,X2,……,Xp-1},Host方提供的特征看作一个特征Xp,从这p个特征中采样得到的目标特征子集中X1、X2等是目标特征子集的正常特征用1表示,X3、X4是目标特征子集的缺失特征用0表示。

步骤303,将目标特征子集对应联邦学习模型的预测结果,作为相应目标训练样本的样本标签,对线性回归模型进行训练,得到线性回归模型收敛时的模型参数。

这里,基于步骤302确定的目标训练样本,以及目标特征子集对应联邦学习模型f的预测结果作为线性回归模型h的标签信息(模型输出),训练线性回归模型h。模型的训练方法可参考已有的模型训练方法,本申请实施例不对线性回归模型的训练方法进行限制。

在一些实施例中,线性回归模型h的可以使用下述函数表示:

其中,Guest方提供n个特征,一个Host提供的特征看作一个特征,k个Host就对应k个特征。

需要说明的是,由于线性回归模型对应的目标训练样本的特征值是用0或1表示的,当线性回归模型达到收敛条件时,即max_subset数量的目标训练样本均参与模型训练后,线性回归模型达到收敛条件,得到线性回归模型参数如下:{w

在步骤104中,基于模型参数,确定特征集合中各特征对应目标预测结果的贡献信息。

在一些实施例中,获取得到线性回归模型收敛时的模型参数,得到的模型参数中包括特征集合中各特征对应目标预测结果的贡献信息。例如,获取线性回归模型对应的线性映射关系,线性映射关系中目标预测结果为因变量、特征集合中各个特征为自变量,模型参数为所述自变量的系数;基于模型参数以及线性映射关系,确定特征集合中各特征对应目标预测结果的贡献信息。

示例性地,针对一个21维的线性回归模型,

h(x)=w

当x的值都为1时,即:

h(1)=w

获取的线性回归模型参数{w

参见图9,图9是本申请实施例提供的线性回归模型特征贡献度示意图,用作联邦学习模型的训练样本{年龄=20,身高=170,收入=100},对应联邦学习模型f的预测结果为1.2,训练一个线性回归模型,h=0.45+0.4+0.35=1.2,可以确定特征年龄=20,对预测结果1.2的贡献度为0.45;特征身高=170,对预测结果1.2的贡献度为0.4;特征收入=100,对预测结果1.2的贡献度为0.35。

由前述描述,本申请实施例提供的估计联邦学习模型中Guest(主导方)提供n个特征,并将host方所有特征作为一个联邦特征host_feat看待,guest方共n+1个特征;Guest方生成对应n+1个特征的2n+1个子集;通过不同的采样方式从2

需要说明的是,通过训练完成的线性回归模型得到每一条样本中各特征对应的估计sharp值,与通过实际采用2

本申请实施例中第一参与方设备通过获取用作联邦学习模型的训练样本的特征集合以及训练样本对应联邦学习模型的目标预测结果,并对所特征集合中各特征进行组合,得到多个特征子集,获取各特征子集的权重分数,并基于权重分数的大小,从多个特征子集采样得到多个目标特征子集;基于多个目标特征子集,以及目标特征子集对应联邦学习模型的预测结果,对线性回归模型进行训练,得到线性回归模型收敛时的模型参数;基于模型参数,确定特征集合中各特征对应所述目标预测结果的贡献信息。通过本申请,能够衡量单条样本中每个特征的贡献信息以及衡量第二参与方的贡献信息,同时能够大幅度减少模型的计算量,提高计算效率。

下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。

相关纵向联邦树模型提供的特征重要度方案可以满足部分需求,以一个由两方参与的纵向联邦树场景(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值的特点,在纵向联邦学习场景下,解释纵向联邦学习模型的预测结果,并衡量合作方的整体特征价值。同时通过子集采样策略从用作联邦学习模型的训练样本的特征集合对应的特征子集中筛选多个目标子集,将目标子集映射成用0和1表示的向量,作为线性回归模型的训练样本,将各目标子集对应联邦学习模型的预测结果,作为线性回归模型的预测结果,训练线性回归模型,得到线性回归模型收敛时对应各特征的权重,估计各特征的SHAP值,能够大大较少计算开销。

首先,在对联邦学习模型的数据处理方法的具体实施过程进行说明之前,需要先对SHAP相关知识进行说明。

SHAP值是一种基于夏普利值(Shapely)的机器学习模型解释方案。对Shapely值进行说明,Shapely值是博弈论中的一个衡量各个参与方(如多家公司)贡献的方法,它通过考虑各个参与方加入不包含自身的参与方子集所做出的贡献,来计算每方的贡献:

其中,{x

示例性地,假设有公司1、2、3,三者一起合作,共盈利120W,并为每个公司计算Shapely值。

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,按照上述公式(6),分别将公司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的总贡献值(Shapely值)为:270/6=45W。

同理,可以使用上述公式计算得到公司2、3的贡献为40W与35W。

本申请实施例中的SHAP值可以理解为Shapely值的一种变体,用于衡量某个特征值对预测结果(模型输出结果)的贡献,具体的:

假设有机器学习模型f,输入的样本X,样本包含特征{1,2,3,……,m},特征用下标i代替,一共有M个特征,N为子集,S为不包含i的特征子集,f_x为一个估计函数,返回该特征子集下模型f输出的平均值。SHAP值计算公式与Shapely值一致,仅仅符号不同,如下:

继续对SHAP值的计算进行说明,示例性地,假设目前有样本x={年龄=20,身高=170,收入=100},机器学习模型f,得到f对该样本的预测分为1.2,

1)枚举所有特征子集:{年龄=20,身高=170,收入=100},{年龄=20,身高=170},{年龄=20,收入=100},{身高=170,收入=100},{收入=100},{年龄=20},{身高=170},{}。

2)遍历样本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计算的预测结果。

接下来,计算特征值{年龄=20}对该样本的预测结果值1.2的贡献,依次将{年龄=20}加入到不包含自身的特征子集中,并根据上述公式(6)计算边际贡献值,具体如下:

{年龄=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。

继续对上述估计函数f_x进行说明,当给出一条样本,评估其各个特征值的SHAP值时,需要确定一种估值方法f_x,并使用该估值方法来正确的反应出某特征子集下模型输出(预测分)的平均值,提供以下常用方案:

以样本{年龄=20,身高=170,收入=100}为例,假设有机器学习模型f,本申请实施例中的纵向联邦学习模型:

方案(1),若某特征在子集中缺失,使用该特征的特征值均值/众数/中位数代替。

假设有特征子集{年龄=20,身高=170},显然,缺少了“收入”特征,机器学习模型f是无法预测该样本的。在实际应用时,可以用特征“收入”对应的均值/众数/中位数(它们可以从训练数据计算得)填充特征子集{年龄=20,身高=170},得到填充样本{年龄=20,身高=170,收入=T},T为特征收入对应的特征值均值/众数/中位数,并以该填充样本的预测值作为模型输出平均值的估计。

假设从训练样本集中,计算得“收入”特征的平均值=50,“身高”特征的平均值=150,“年龄”特征的平均值=15,则:对特征子集{年龄=20,身高=170}进行填充后,得到的填充样本为{年龄=20,身高=170,收入=50},且

f_x({年龄=20,身高=170})=f({年龄=20,身高=170,收入=50})

再举例,假设有特征子集{年龄=20},对该特征子集进行填充,得到填充样本{年龄=20,身高=150,收入=50},且

f_x({年龄=20})=f({年龄=20,身高=150,收入=50}),

另外,如果是空集,f_x输出值为所有训练样本预测分的平均值

方案(2),若某特征在子集中缺失,则直接使用0代替。

示例性地,假设有特征子集{年龄=20},则使用0对该样本进行填充,得到填充样本{年龄=20,身高=0,收入=0},且

f_x({年龄=20})=f({年龄=20,身高=0,收入=0})。

方案(3),若某特征在特征子集中缺失,则在缺失特征可能取值的范围内进行多次抽样,得到多个合成样本,机器学习模型对多个合成样本的预测分的平均值为f_x输出值。

假设,年龄的取值范围服在10-30,身高范围在150-180

计算特征子集{收入=100}的预测值f_x({收入=100}),

假设构造5个样本,对特征子集中的缺失特征年龄、身高进行随机抽样,得到构造样本s1={年龄=15,身高=160,收入=100},s2={年龄=21,身高=164,收入=100},s3={年龄=29,身高=175,收入=100},s4={年龄=25,身高=155,收入=100},s5={年龄=28,身高=180,收入=100},

f_x({收入=100})=[f(s1)+f(s2)+f(s3)+f(s4)+f(s5)]/5。

基于对上述SHAP相关的知识进行说明后,在实际联邦学习场景下,通过上述公式(6)或公式(7)计算特征的SHAP值,往往需要非常高的计算量,对电子设备(服务器或终端)的计算能力要求高,增加了实际部署时的复杂性。

一般而言,在实际联邦学习场景中,guest会有一到几十维的特征,而host一般会有百维到千维的特征,按照前述的方案,把host所有的特征看作一个特征,然后按照SHAP/Shapely计算的流程,枚举所有子集,子集的数量也会是庞大的,例如,guest方提供20维度特征,一个host方,将host方所有特征看作一个特征,若要解释任意一条样本,需要完整枚举的子集数量是2

基于此,按照一定的策略采样子集,并使用加权线性回归来估计SHAP值,以大大减少计算开销。

示例性地,采用简单的0,1向量表示特征子集,h为映射函数:

h({年龄=20,身高=170,收入=100})=[1,1,1],

h({年龄=20,身高=170})=[1,1,0],

h({年龄=20,收入=100})=[1,0,1],

h({身高=170,收入=100})=[0,1,1],

h({收入=100})=[1,0,0],

h({年龄=20})=[0,1,0],

h({身高=170})=[0,0,1],

h({})=[0,0,0],

由前述描述可知,每个子集会有一个对应的估值结果:

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,

在实际实施时,可以以0,1向量作为X,f_x函数的输出作为y,并对每个向量根据子集的大小赋予一定的权重(一般较小和较大的子集权重高),训练一个线性回归模型,线性回归的模型的权重就是对每个特征估计的SHAP值。

在联邦学习场景下,会按照上述方法来估计guest特征和参与的host的特征重要度,并最终统计出贡献值。

接下来对在纵向联邦学习场景下,结合SHAP的特点,以及训练一个线性回归模型,估计特征的SHAP值的具体过程进行说明。

执行本申请实施例提供的联邦学习模型的数据处理方法(基于SHAP值的纵向联邦机器学习模型解释方法),需要设定一个纵向联邦学习模型f,f的输输入信息如下:

训练数据集(训练样本)、待解释样本X0,X1,…,Xn,共N条,其中,guest,host各持有部分特征,用大写G_i(i为整数)表示guest方提供的某个特征(如年龄),大写H_i(i为整数)表示host方提供的某个特征。例如,guest方提供G_0,G_1,...,G_n,共n个特征;host提供H_0,H_1,…,H_m,共m个特征;用小写g_j(j为整数)表示guest方提供的特征对应的特征值(如年龄=20),如,g_0,g_1,…,g_n;用小写h_j(j为整数)表示host方提供的特征对应的特征值,如h_0,…,h_m。如果多个host,则尾部添加标记区分各个host,如h_0_0,h_0_1,host_0_2分别代表host_0的第一个特征,host_1的第一个特征,host_2的第一个特征。

估计函数f_x方法的设定值:使用前述三种方法中的一种。

采样次数sample_n:如果f_x方法使用上述第三种方法,则该参数起效,代表随机采样特征值的次数。

子集采样数max_subset:一个固定的数值,一般为2048,在使用线性回归估计SHAP值时采样的子集数目。

本申请实施例的参与方:Guest(主导)方(第一参与方),host方(第二参与方),另外,host方可以有多个。

基于前述的输入信息,实现本申请实施例提供的基于SHAP值的纵向联邦机器学习模型解释方法的系统的功能模块为:子集采样模块、样本解释模块以及预测模块。参见图10,图10是本申请实施例提供的联邦学习模型的数据处理方法的可选流程图,结合图10说明联邦学习模型的数据处理方法的整体流程。

在步骤401中,第一参与方统计自身特征的数量,以及参与联邦建模的第二参与方方的数量。

这里,第一参与方(Guest)携带有标签信息,第二参与方(Host)是特征提供方,假设有k(k为大于等于1的整数)个Host参与联邦建模。

Guest方将Host方所有特征(H_0,……,H_m)作为一个联邦特征host_feat看待。因此,guest方有特征G_0,G_1,……,G_n,host_feat_1,……,host_feat_k共n+k个特征。

在步骤402中,第一参与方将待解释样本中各特征组成特征子集输入至子集采样模块,按照预设的子集采样策略,得到预设数量的子集采样的结果。

这里,待解释样本(即用作联邦学习模型的单条训练样本)可以看做是共包含n+k个特征,并预先设定最终采样总数,记为max_subset。

子集采样的结果可看作是一个max_subset行(n+k)列的矩阵,guest将该矩阵保留,作为训练矩阵,guest将训练矩阵前n列复制多一份,称为子集矩阵,将后k列发送给对应的host,host接受后保存自身的那一列,该列成为子集列。guest将对应权重保存,称为训练权重。

max_subset是表示子集采样数,可以理解为是用作线性回归模型的训练样本的数量。示例性地,max_subset=10,一条用作机器学习模型f的训练样本,其中,guest方提供4个特征即n=4,仅有一个host方参与即k=1。子集采样结果为max_subset*(n+k)的矩阵即为10x5的矩阵(10行5列),其中,最后1列来自host方,前4列来自guest方。

在步骤403中,第一参与方将每条待解释的样本输入至样本解释模块,获取得到对样本中各特征的贡献值。

guest方从特征贡献计算模块获取每条样本特征值的SHAP值与host_feat的SHAP值。host方不获得任何结果。

guest方将所有待解释的样本X0,X1,……,Xn对应特征[G_0,G_1,……,G_n]的SHAP值以及每条待解释样本host_feat的SHAP值绝对值相加,得到每个特征的特征重要度与host方的总贡献值。

guest方将所有待解释的样本X0,X1,……,Xn对应特征[G_0,G_1,……,G_n]的SHAP值以及每条待解释样本host_feat的SHAP值的正值相加,得到每个特征的正向贡献度。

guest方将所有待解释的样本X0,X,……,Xn对应特征[G_0,G_1,……,G_n]的SHAP值以及每条待解释样本host_feat的SHAP值的负值相加,得到每个特征的负向贡献度。

最后,guest方输出上述结果,host方不输出结果。

接下来,对子集采样模块实现的具体功能进行详细说明,子集采样模块按照一定的权重策略对子集进行采样,并将结果保存,模块输入为特征的总数,预设子集采样数max_subset,假设特征总数为M,M为大于1的正整数。参见图11,图11是本申请实施例提供的子集采样流程示意图,基于图10,步骤402可以通过图11示出的具体步骤实现。结合图11示出的步骤对子集采样过程进行说明。

步骤501,第一参与方设备枚举所有可能的特征子集的大小。

从1到M-1(忽略空集与全集),如以M=5为例,子集中有一个元素的子集个数C(1,5)即为5,子集中有两个元素的子集个数C(2,5),子集中有三个元素的子集个数C(3,5),子集中有四个元素的子集个数C(4,5),得到子集总数:Total=C(1,5)+C(2,5)+C(3,5)+C(4,5)=5+10+10+5=30。

步骤502,对不同大小的子集进行权重打分,得到一个打分向量,其中,不同大小是指子集元素个数的多少。

通过前述权重打分公式(2)对子集进行权重打分,最终,为1到M-1的所有大小的特征子集打分完毕,得到一个打分向量weight:

weight=[w_1,……,w_(M-1)],其中,w_1表示子集大小为1的子集的权重分数。

以M=5为例,通过上述公式(2)为1到4的所有大小的子集打分:得到打分向量weight=[1,4/6,4/6,1]。

步骤503,根据打分向量计算出每个特征子集的权重占总体的比例,得到比例向量。

这里,比例向量记为p,采用前述公式(4)得到对应权重向量的比例向量,且比例向量中的每个元素的取值范围为0到1。

举例来说,以M=5为例,通过步骤503,得到weight=[1,4/6,4/6,1],从而得到weight对应的p值:p_1=1/(1+4/6+4/6+1)=0.3,p_2=1/5=0.2,p_3=0.2,p_4=0.3,得到比例向量p=[0.3,0.2,0.2,0.3]。

步骤504,将比例向量从大到小排序,得到排序后的比例向量。

由公式(2)中W(m)的性质可知:较大和较小的子集权重较大,互补的集合权重相等。

举例来说,以M=5为例,W(1)=W(4),W(2)=W(3),因此,得到排序后的为p=[p_1,p_(M-1),p_2,p_(M-2)],即p=[p_1,p_4,p_2,p_3]=[0.3,0.3,0.2,0.2]。

步骤505,确定当前采样轮次对应的容量数。

需要说明的是,取出当前轮次对应的比例系数记为p_max,对应的子集大小为p_size。p_max乘以当前轮次需要采样的样本总数i_subset,i表示采样轮次,i=1时,即首轮采样,i_subset=max_subset,得到一个容量数:capacity=i_subset*p_max。

举例来说,以M=5为例,预设max_subset=20,得到排序后的比例向量:p=[p_1,p_4,p_2,p_3]=[0.3,0.3,0.2,0.2],若以首轮采样为例,p_max=p_1,p_size=1,得到一个容量数capacit=0.3*20=6。

步骤506,比较当前容量数是否大于等于当前轮次对应的特征子集的个数的大小,若是,前往步骤507,否则,前往步骤509。

这里,是比较步骤505中得到容量数capacity与C(p_size,M)的大小,并根据比较结果执行不同的操作。

步骤507,将当前采样轮次对应大小的特征子集对应的向量表示加入到向量结果中。

举例来说,以M=5为例,首轮采样时,p_size=1时,则将向量[1,0,0,0,0],[0,1,0,0,0],[0,0,1,0,0],[0,0,0,1,0],[0,0,0,0,1]加入到向量结果;每个向量在线性回归模型中的权重计算公式为:w_(p_size)/C(p_size,M),

以M=5,p_size=1,子集大小为1的向量表示,在线性回归模型中的权重为w_1/C(1,5)=1/5,将每个向量对应权重加入到权重列表w_list中。更新i_subset的值为:i_subset=max_subset-C(p_size,M),以便进行下一轮的子集选取。

步骤508,更新打分向量,判断打分向量中的元素是否为空,若是,执行步骤509,否则执行步骤503。

这里,将w_(p_size)从前述打分向量weight向量列表中剔除,如果weight最终为空,前往步骤509,否则回到步骤503,即循环执行,开启下一轮的子集选择操作。

步骤509,剩下的当前采样数max_subset无法进一步容纳下完整的子集时,对剩余的当前采样数max_subset进行随机采样。

这里,当前采样数是更新后的max_subset,即i_subset。对weight中剩余的weight计算p,p作为每一个大小的子集被选中的概率,则随机采样max_subset个子集大小,再根据子集大小随机生成一个0,1向量,加入到结果中,并且其对应的权重大小为sum(weight)/max_subset,即剩余权重除以剩余样本数,执行步骤507。

步骤510,所有的子集采样完成,返回向量结果,以及对应的权重列表。

示例性地,参见图8展示的向量结果,需要说明的是,向量结果可以看作是由0和1组成的向量矩阵,每一行是由采样得到的特征子集映射得到的,映射规则为子集中的缺失特征用0表示,子集中的正常特征用1表示,向量矩阵的总行数表示采样样本总数。

接着,对样本解释模块的功能进行说明,样本解释模块是将该模块以一个待解释的样本X,作为输入。参见图12,图12是本申请实施例提供的样本解释流程示意图,基于图10,步骤403可以通过图12示出的具体步骤实现。结合图12示出的步骤对样本解释过程进行说明。

步骤601,第一参与方第二参与方各自将持有的待解释样本的特征部分输入预测模块,得到一个预测值作为基准值。

这里,待解释样本X就是用作联邦学习模型的样本。查看f_x方法的设定值,如果是前述方法1,则guest/host根据训练数据计算每个特征的平均值或者中位数或者众数,作为填充值;如果是前述方法2,则使用0作为填充值;如果是前述方法3,guest、host统计每个特征可能的取值,作为随机采样用。

步骤602,第一参与方加载己方的子集矩阵,第二参与方加载己方的子集列,生成数量相同且用作联邦学习模型的待预测样本。

这里,guest根据子集矩阵中每一行的0,1特征向量生成对应的子集,再根据子集与X的guest特征生成待f_x预测样本。host根据子集列中的每一行生成,f_x待预测样本。

其中,生成用作联邦学习模型的待预测样本规则为:如果该行为0,则host使用对应的f_x方案生成一条新样本,否则,如果为1,host仅将X的host特征复制作为一条新的样本。

至此,guest与多个host将会生成数量相同且对应的待f_x预测样本,

步骤603,第一参与方与第二参与方分别将己方生成的待预测样本输入至预测模块,执行联邦预测,得到对每一个待预测样本对应联邦学习模型的预测结果。

这里,样本对应联邦学习模型的预测结果也可称为样本的打分向量,作为y,y中每一项减去基准值。

步骤604,第一参与方使用训练矩阵作为样本,训练权重作为权重,待预测样本的对应联邦学习模型的预测值作为标签,训练一个线性回归模型。

这里,待预测样本的对应联邦学习模型的预测值y,作为线性回归模型的标签新。训练的线性回归模型可以不带截断(即偏置bias),需要说明的是,线性回归模型的前n项权重对应的是guest特征的贡献,后k项对应的是各个host的贡献,提取权重,返回权重作为解释结果。

最后,对预测模块进行说明,预测模块是以具体的样本作为输入,guest、host加载纵向联邦机器学习模型f,并根据f预测输入的样本,返回预测值。

本申请实施例提供的优化的纵向联邦学习模型解释方法,能够确定单条样本中Guest方提供的每个特征的特征贡献度,以及衡量Host方的特征贡献,如果是多Host情况也同样如此,补充了联邦场景下的缺失;另外,还保留了与传统方法一样的,对全局特征重要度的衡量;对于子集采样的优化大大减少了通信,计算的复杂度,使得在联邦场景下解释多条样本与衡量贡献功能具有实用度。

下面继续说明本申请实施例提供的联邦学习模型的数据处理装置555的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器540的联邦学习模型的数据处理装置555中的软件模块可以包括:

获取模块5551,用于获取用作联邦学习模型的训练样本的特征集合以及所述训练样本对应联邦学习模型的目标预测结果,并对特征集合中各特征进行组合,得到多个特征子集,特征集合包括:具有标签信息的第一参与方所提供的特征、以及至少一个第二参与方提供的特征;

采样模块5552,用于获取各特征子集的权重分数,并基于权重分数的大小,从多个特征子集采样得到多个目标特征子集;

训练模块5553,用于基于多个目标特征子集,以及目标特征子集对应联邦学习模型的预测结果,对线性回归模型进行训练,得到线性回归模型收敛时的模型参数;

确定模块5554,用于基于模型参数,确定特征集合中各特征对应目标预测结果的贡献信息。

在一些实施例中,采样模块5552还用于按照权重分数由大到小的顺序,对各特征子集的权重分数进行排序,得到权重分数序列;依据权重分数序列,从权重分数最大的特征子集开始顺序采样,得到第一数量的特征子集作为目标特征子集;其中,第一数量小于所述特征集合对应的特征子集的总数。

在一些实施例中,采样模块5552还用于对各特征子集的权重分数进行正则化处理,得到各权重分数对应的比例系数;基于各权重分数对应的比例系数,从多个特征子集采样得到多个目标特征子集。

在一些实施例中,采样模块5552还用于按照比例系数的大小,对各权重分数对应的比例系数进行排序,得到比例系数序列;依据比例系数序列中比例系数的排序,依次对各比例系数执行以下处理,直至获取目标采样数量的目标特征子集:获取当前采样数,并确定比例系数与当前采样数的乘积,将乘积作为当前容量值;获取比例系数对应的特征子集的数量;当当前容量值大于数量时,将比例系数对应的特征子集作为目标特征子集;当当前容量值小于数量时,从未被选中的特征子集中,随机选取与当前采样数相同数量的特征子集作为目标特征子集。

在一些实施例中,采样模块5552还用于分别针对各比例系数执行以下处理:获取当前采样数,并确定比例系数与当前采样数的乘积,将乘积作为当前容量值;获取比例系数对应的特征子集的数量;当当前容量值大于等于数量时,将比例系数对应的特征子集作为目标特征子集。当当前容量值小于数量时,从未被选中的所述特征子集中,随机选取数量的特征子集作为目标特征子集。

在一些实施例中,训练模块5553还用于获取目标特征子集与目标训练样本间的转换关系;基于转换关系,对述目标特征子集中的特征进行转换,得到线性回归模型的目标训练样本;将目标特征子集对应联邦学习模型的预测结果,作为相应目标训练样本的样本标签,对线性回归模型进行训练,得到线性回归模型收敛时的模型参数。

在一些实施例中,训练模块5553还用于针对各目标特征子集分别执行以下处理:将目标特征子集和特征集合进行比较,得到目标特征子集与特征集合相区别的特征作为缺失特征;分别为各缺失特征进行特征值赋值,并基于赋值结果填充目标特征子集的缺失特征,得到线性回归模型的目标训练样本。

在一些实施例中,训练模块5553还用于确定各缺失特征对应的缺省值;基于缺省值,为所述缺失特征进行特征值赋值。

在一些实施例中,确定模块5554还用于获取线性回归模型对应的线性映射关系,线性映射关系中目标预测结果为因变量、特征集合中各个特征为自变量,模型参数为所述自变量的系数;基于模型参数以及线性映射关系,确定特征集合中各特征对应目标预测结果的贡献信息。

需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。

本申请实施例提供了一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现本申请实施例提供的联邦学习模型的数据处理方法。

本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图3示出的联邦学习模型的数据处理方法。

在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。

在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。

作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。

作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。

综上所述,通过本申请实施例不仅能够扩展在联邦学习场景中的适用范围,还能够精确衡量单条训练样本中每个特征的贡献信息以及衡量第二参与方的贡献信息,同时能够大幅度减少模型的计算量,提高计算效率。

以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号