用于联盟学习的方法、装置及联盟学习系统与流程

文档序号:24080845发布日期:2021-02-26 17:56阅读:102来源:国知局
用于联盟学习的方法、装置及联盟学习系统与流程
用于联盟学习的方法、装置及联盟学习系统
[0001]
本专利申请是2020年5月27日提交的、申请号为202010463531.x、发明名称为“用于联盟学习的方法、装置以及联盟学习系统”的专利申请案的分案申请。
技术领域
[0002]
本说明书实施例通常涉及人工智能领域,尤其涉及用于联盟学习的方法、装置以及联盟学习系统。


背景技术:

[0003]
随着人工智能技术的发展,例如深度神经网络(dnn)的业务模型已经逐渐应用于各种业务应用场景,比如,风险评估、语音识别、自然语言处理等。为了实现更好的模型性能,在进行模型训练时需要更多的数据拥有方来提供更多的训练样本数据。例如,在业务模型应用于医疗、金融等领域时,不同的医疗或金融机构会收集不同的数据样本。一旦使用这些数据样本来对业务模型进行联盟学习(federated learning),将会极大地提升业务模型的模型精度。
[0004]
联盟学习是一种新兴的人工智能支撑技术,它的目标是在保证数据拥有方的私有数据(如终端数据、个人隐私数据)安全及符合法律法规规定的前提下,在多个数据拥有方或多个计算节点之间进行高效率的模型学习。
[0005]
在一种联盟学习场景下,联盟中的多个(两个或两个以上)第一成员节点会分别依据自己的私有数据训练模型,并将训练得到的模型参数发送至第二成员节点,由第二成员节点对模型参数进行整合得到目标模型。按照这种联盟学习方式,在各个第一成员节点使用本地数据训练完业务模型后,各个第一成员节点会同时向第二成员节点发送各自训练好的模型数据,从而导致第二成员节点端发生网络通信堵塞,使得联盟学习时的数据通信效率不佳,进而造成联盟学习效率不高。此外,第一成员节点处带宽资源有限或者带宽资源宝贵,第一成员节点不愿意或者无法向外部发送大量的模型参数。


技术实现要素:

[0006]
鉴于上述问题,本说明书实施例提供一种用于联盟学习的方法、装置及联盟学习系统。利用该方法、装置及系统,通过在各个本地端完成模型训练后,将训练好的全局模型分解为数据量更少的多个分解模型发送给模型拥有端,并在模型拥有端进行模型重构,可以减少联盟学习时各个模型训练参与方之间的通信数据量,由此提高联盟学习时的通信效率,进而提升联盟学习效率。
[0007]
根据本说明书实施例的一个方面,提供一种用于联盟学习的方法,所述联盟包括至少两个第一成员设备,以及第二成员设备,每个第一成员设备具有在本地收集的用于联盟学习的本地数据,所述第二成员设备维护全局模型,所述方法由第一成员设备执行,所述方法包括:从所述第二成员设备获取当前全局模型;使用本地数据训练所述当前全局模型;按照模型分解策略来将训练好的当前全局模型分解为多个分解模型,所述多个分解模型的
模型参数的数据总量小于所述当前全局模型的模型参数的数据量;以及将所述多个分解模型的模型参数数据发送给所述第二成员设备,所述多个分解模型的模型参数数据被所述第二成员设备使用来按照与所述模型分解策略对应的模型重构策略重构出各个第一成员设备的当前全局模型并进行模型整合得到当前目标全局模型。
[0008]
根据本说明书的实施例的另一方面,提供一种用于联盟学习的方法,所述联盟包括至少两个第一成员设备,以及第二成员设备,每个第一成员设备具有在本地收集的用于联盟学习的本地数据,所述第二成员设备维护全局模型,所述方法由第二成员设备执行,所述方法包括:将当前全局模型提供给各个第一成员设备;从各个第一成员设备获取该第一成员设备处训练出的当前全局模型的多个分解模型的模型参数数据,所述各个第一成员设备的多个分解模型的模型参数数据通过在该第一成员设备处对经由该第一成员设备使用本地数据训练好的当前业务模型按照模型分解策略进行分解得到,所述多个分解模型的模型参数的数据总量小于所述当前全局模型的模型参数的数据量;使用各个第一成员设备的多个分解模型的模型参数数据来按照与所述模型分解策略对应的模型重构策略重构各个第一成员设备的当前全局模型;以及使用重构后的各个第一成员设备处的当前全局模型来进行模型整合,得到当前目标全局模型。
[0009]
根据本说明书的实施例的另一方面,提供一种联盟学习方法,所述联盟包括至少两个第一成员设备,以及第二成员设备,每个第一成员设备具有在本地收集的用于联盟学习的本地数据,所述第二成员设备维护全局模型,所述方法包括:各个第一成员设备从第二成员设备获取当前全局模型;在各个第一成员设备处,使用本地数据训练所述当前全局模型,并且按照模型分解策略来将训练好的当前全局模型分解为多个分解模型,所述多个分解模型的模型参数的数据总量小于所述当前全局模型的模型参数的数据量;第二成员设备从各个第一成员设备获取该第一成员设备处训练出的当前全局模型的多个分解模型的模型参数数据;以及在第二成员设备处,使用各个第一成员设备的多个分解模型的模型参数数据来按照与所述模型分解策略对应的模型重构策略重构各个第一成员设备的当前全局模型,并且使用重构后的各个第一成员设备处的当前全局模型来进行模型整合,得到当前目标全局模型。
[0010]
根据本说明书的实施例的另一方面,提供一种用于联盟学习的装置,所述联盟包括至少两个第一成员设备,以及第二成员设备,每个第一成员设备具有在本地收集的用于联盟学习的本地数据,所述第二成员设备维护全局模型,所述装置应用于第一成员设备,所述装置包括:模型获取单元,从所述第二成员设备获取当前全局模型;模型训练单元,使用本地数据训练所述当前全局模型;模型分解单元,按照模型分解策略来将训练好的当前全局模型分解为多个分解模型,所述多个分解模型的模型参数的数据总量小于所述当前全局模型的模型参数的数据量;以及模型数据发送单元,将所述多个分解模型的模型参数数据发送给所述第二成员设备,所述多个分解模型的模型参数数据被所述第二成员设备使用来按照与所述模型分解策略对应的模型重构策略重构各个第一成员设备的当前全局模型并进行模型整合得到当前目标全局模型。
[0011]
根据本说明书的实施例的另一方面,提供一种用于联盟学习的装置,所述联盟包括至少两个第一成员设备,以及第二成员设备,每个第一成员设备具有在本地收集的用于联盟学习的本地数据,所述第二成员设备维护全局模型,所述装置应用于第二成员设备,所
述装置包括:模型提供单元,将当前全局模型提供给各个第一成员设备;模型数据获取单元,从各个第一成员设备获取该第一成员设备处训练出的当前全局模型的多个分解模型的模型参数数据,所述各个第一成员设备的多个分解模型的模型参数数据通过在该第一成员设备处对经由该第一成员设备使用本地数据训练好的当前全局模型按照模型分解策略进行分解得到,所述多个分解模型的模型参数的数据总量小于所述当前全局模型的模型参数的数据量;模型重构单元,使用各个第一成员设备的多个分解模型的模型参数数据来按照与所述模型分解策略对应的模型重构策略重构各个第一成员设备的当前全局模型;以及模型整合单元,使用重构后的各个第一成员设备处的当前全局模型来进行模型整合,得到当前目标全局模型。
[0012]
根据本说明书的实施例的另一方面,提供一种联盟学习系统,包括:至少两个第一成员设备,每个第一成员设备具有在本地收集的用于联盟学习的本地数据,并且包括如上所述的用于联盟学习的装置;和第二成员设备,所述第二成员设备维护全局模型,并且包括如上所述的用于联盟学习的装置。
[0013]
根据本说明书的实施例的另一方面,提供一种电子设备,包括:至少一个处理器,以及与所述至少一个处理器耦合的存储器,所述存储器存储计算机程序,当所述计算机程序被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的在第一成员设备处执行的用于联盟学习的方法。
[0014]
根据本说明书的实施例的另一方面,提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被执行时使得处理器执行如上所述的在第一成员设备处执行的用于联盟学习的方法。
[0015]
根据本说明书的实施例的另一方面,提供一种计算机程序产品,包含计算机程序,所述计算机程序被执行时使得处理器执行如上所述的在第一成员设备处执行的用于联盟学习的方法。
[0016]
根据本说明书的实施例的另一方面,提供一种电子设备,包括:至少一个处理器,以及与所述至少一个处理器耦合的存储器,所述存储器存储计算机程序,当所述计算机程序被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的在第二成员设备处执行的用于联盟学习的方法。
[0017]
根据本说明书的实施例的另一方面,提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被执行时使得处理器执行如上所述的在第二成员设备处执行的用于联盟学习的方法。
[0018]
根据本说明书的实施例的另一方面,提供一种计算机程序产品,包含计算机程序,所述计算机程序被执行时使得处理器执行如上所述的在第二成员设备处执行的用于联盟学习的方法。
附图说明
[0019]
通过参照下面的附图,可以实现对于本说明书内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。
[0020]
图1示出了联盟学习系统架构的示例示意图。
[0021]
图2示出了根据本说明书的实施例的联盟学习系统架构的示例示意图。
[0022]
图3示出了根据本说明书的实施例的在第一成员节点处执行的联盟学习过程的一个示例的流程图。
[0023]
图4a和4b示出了根据本说明书的实施例的神经网络模型的示例示意图。
[0024]
图5示出了根据本说明书的实施例的在第一成员节点处执行的联盟学习过程的另一示例的流程图。
[0025]
图6示出了根据本说明书的实施例的在第二成员节点处执行的联盟学习过程的流程图。
[0026]
图7示出了根据本说明书的实施例的在第一成员节点处的用于联盟学习的装置的一个示例的方框图。
[0027]
图8示出了根据本说明书的实施例的在第一成员节点处的用于联盟学习的装置的另一示例的方框图。
[0028]
图9示出了根据本说明书的实施例的在第二成员节点处的用于联盟学习的装置的一个示例的方框图。
[0029]
图10示出了根据本说明书的实施例的用于实现在第一成员节点处的联盟学习过程的电子设备的示意图。
[0030]
图11示出了根据本说明书的实施例的用于实现在第二成员节点处的联盟学习过程的电子设备的示意图。
具体实施方式
[0031]
现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本说明书内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
[0032]
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
[0033]
图1示出了一种联盟学习系统架构100的示例示意图。
[0034]
如图1所示,联盟学习系统架构100包括多个数据拥有方110和服务端120。在图1中示出的示例中,多个数据拥有方110包括数据拥有方a、数据拥有方b和数据拥有方c。在其它示例中,多个数据拥有方110例如可以包括两个数据拥有方,或者多于三个数据拥有方。
[0035]
各个数据拥有方110在本地收集用于联盟学习的数据样本,例如,数据拥有方a收集数据样本x
a
,数据拥有方b收集数据样本x
b
,以及数据拥有方c收集数据样本x
c
。服务端120上部署全局模型w。各个数据拥有方具有的每条数据样本具有全局模型w训练所需的完整维度数据,可以被使用来单独训练全局模型w。
[0036]
数据拥有方a、b和c与服务端120一起使用数据拥有方a、b和c的数据样本来迭代训练全局模型w。在每次迭代训练时,服务端120将全局模型w提供给数据拥有方a、b和c。数据拥有方a、b和c各自在本地使用各自的数据样本来训练全局模型w,由此分别训练出各自的全局模型w
a
、w
b
和w
c

[0037]
然后,数据拥有方a、b和c分别将各自训练出的全局模型w
a
、w
b
和w
c
提供给服务端120。服务端120按照预定整合规则来对全局模型w
a
、w
b
和w
c
进行模型整合,以得到整合后的全局模型,作为当前训练出的目标全局模型。如果满足迭代结束条件,则模型训练完成。如果不满足迭代结束条件,则服务端120将当前训练出的目标全局模型提供给数据拥有方a、b和c来执行下一迭代过程。
[0038]
按照上述联盟学习方案,在每次各个数据拥有方110完成各自的本地模型训练后,都需要向服务端120发送各自训练好的全局模型w的模型数据。实际使用的全局模型w的模型数据的数据量较大,比如全局模型w的权值矩阵例如是1000
×
1000的矩阵,该权值矩阵包括100万个模型参数值,由此各个数据拥有方110向服务端120发送的数据量较大,导致服务端120处容易发生网络通信堵塞,使得联盟学习时的数据通信效率不佳,进而造成联盟学习效率不高。
[0039]
为了提升联盟学习时的数据通信效率,本说明书实施例提供一种用于联盟学习的方法、装置和联盟学习系统。利用该方法、装置及系统,通过在各个本地端完成模型训练后,将训练好的全局模型分解为数据量更少的多个分解模型发送给模型拥有端,并在模型拥有端进行模型重构,可以减少联盟学习时各个模型训练参与方之间的通信数据量,由此提高联盟学习时的通信效率,进而提升联盟学习效率。
[0040]
本说明书实施例提供的方法和装置可以由电子设备执行,例如终端设备或服务端设备。换言之,所述方法可以由安装在终端设备或服务器设备的软件或硬件来执行。所述服务器设备包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。所述终端设备包括但不限于:智能手机、个人电脑(personal computer,pc)、笔记本电脑、平板电脑、电子阅读器、网络电视、可穿戴设备等智能终端设备中的任一种。
[0041]
在本说明书的实施例中,术语“多个”指的是“两个或两个以上”。术语“第一成员节点”可以是用于本地收集模型训练数据样本的设备或设备方,比如,终端设备、服务器设备等。“第一成员节点”也可以称为“数据拥有方”。在第一成员节点上不部署待训练模型。术语“第二成员节点”可以是部署待训练模型的设备或设备方,比如,终端设备、服务器设备等。在本说明书中,“第二成员节点”也可以称为“服务端”或“模型拥有方”。
[0042]
在一个实际应用示例中,第二成员节点例如可以是第三方支付平台的服务器,各个第一成员节点例如可以是不同金融机构或医疗机构的私有数据存储服务器。
[0043]
在本说明提供的实施例中,第一成员节点的本地数据可以包括本地私有数据和本地非私有数据。在本说明书中,本地私有数据是隐私数据,不能泄露给其它成员节点,从而在进行联盟学习时不能以明文或将该数据全部共享给其它成员节点。本地非私有数据是指可以分享给其它成员节点的本地数据。本地非私有数据可以被其它成员节点使用来形成公域数据。
[0044]
下文以包括3个第一成员节点的联盟学习系统为例,对本说明书的实施例所提供的联盟学习方法、装置及联盟学习系统进行说明。在本说明书的其它实施例中,联盟学习系
统可以包括2个第一成员节点,或者多于3个第一成员节点。
[0045]
图2示出了根据本说明书的实施例的联盟学习系统架构200的示例示意图。
[0046]
如图2所示,联盟学习系统架构200包括多个第一成员节点210和第二成员节点220。多个第一成员节点210包括第一成员节点a、第一成员节点b和第一成员节点c。第一成员节点a、第一成员节点b、第一成员节点c以及第二成员节点220可以通过例如但不局限于互联网或局域网等的网络相互通信。
[0047]
各个第一成员节点210在本地收集用于联盟学习的数据样本,例如,第一成员节点a收集数据样本x
a
,第一成员节点b收集数据样本x
b
,以及第一成员节点c收集数据样本x
c
。第二成员节点220上部署全局模型w。各个成员节点具有的每条数据样本具有全局模型w训练所需的完整维度数据,可以被使用来单独训练全局模型w。
[0048]
各个第一成员节点a、b和c与第二成员节点220一起使用第一成员节点a、b和c的数据样本来迭代训练全局模型w。在每次迭代训练时,第二成员节点120将全局模型w提供给各个第一成员节点a、b和c。第一成员节点a、b和c各自在本地使用各自的数据样本来训练全局模型w,由此分别训练出各自的全局模型w
a
、w
b
和w
c

[0049]
然后,各个第一成员节点a、b和c在本地分别对各自的全局模型w
a
、w
b
和w
c
进行模型分解,并且将各自得到的分解模型数据wi提供给第二成员节点220。各个第一成员节点a、b和c的本地训练过程将在后面参照附图详细说明。
[0050]
在从各个第一成员节点a、b和c接收到各自的分解模型数据后,第二成员节点220对各个第一成员节点a、b和c的分解模型进行模型重构,以得到各个第一成员节点a、b和c所训练出的当前全局模型w
a
、w
b
和w
c
,随后按照预定整合规则来对全局模型w
a
、w
b
和w
c
进行模型整合,以得到整合后的全局模型,作为当前训练出的目标全局模型。
[0051]
如果满足迭代结束条件,则模型训练完成。如果不满足迭代结束条件,则第二成员节点220将当前训练出的目标全局模型提供给各个第一成员节点a、b和c来执行下一迭代过程。
[0052]
要说明的是,在图2中示出的联盟学习中,使用多次迭代过程来完成联盟学习。在一个示例中,也可以不使用多次迭代过程,而仅仅迭代一次来完成联盟学习。
[0053]
图3示出了根据本说明书的实施例的在第一成员节点处执行的联盟学习过程的一个示例的流程图,下面以第一成员节点a为例来进行说明,其它第一成员节点执行相同的处理。
[0054]
如图3所示,在块310,第一成员节点a从第二成员节点220获取当前全局模型w。在一个示例中,第一成员节点a可以通过向第二成员节点220发送请求来获取当前全局模型w。在另一示例中,第二成员节点220可以主动向第一成员节点a下发当前全局模型w。
[0055]
在块320,第一成员节点a使用本地数据训练当前全局模型w,以得到训练好的当前全局模型w
a

[0056]
在块330,第一成员节点a按照模型分解策略来将训练好的当前全局模型分解为多个分解模型,多个分解模型的模型参数的数据总量小于当前全局模型的模型参数的数据量。在本说明书的实施例中,所述模型分解策略可以包括下述策略中的至少一个:模型分解方式;压缩比;模型分解对象;和每个模型分解对象的模型分解数量。
[0057]
术语“模型分解方式”可以是指对当前全局模型进行模型分解的模型分解算法、模
型分解逻辑等。例如,在神经网络模型的情况下,当前全局模型的模型参数采用权值矩阵的方式表征,则模型分解方式可以包括权值矩阵分解,即,将当前全局模型的权值矩阵w
a
分解为两个或更多个分解矩阵的乘积。例如,将当前全局模型的权值矩阵w
a
分解为两个分解矩阵w
a1
和w
a2
的乘积,即,w
a
=w
a1
*w
a2
。在本说明书的其它实施例中,也可以采用其它合适的模型分解方式来进行模型分解。
[0058]
经过上述模型分解后,所得到的多个分解模型w
a1
和w
a2
的模型参数的数据总量小于当前全局模型w
a
的模型参数的数据量。例如,假设当前全局模型的权值矩阵w
a
是1000
×
1000维的权值矩阵,则权值矩阵w
a
具有1000
×
1000=1000,000个权值元素。按照上述模型分解,可以将权值矩阵w
a
分解为两个分解矩阵w
a1
和w
a2
相乘,其中,w
a1
是1000
×
100维的权值矩阵,以及w
a2
是100
×
1000维的权值矩阵,即,w
1000
×
1000
=w
1000
×
100
×
w
100
×
1000
。w
a1
具有1000
×
100=100,000个权值元素,以及w
a2
具有100
×
1000=100,000个权值元素,从而第一成员节点a向第二成员节点发送的数据量为200,000个权值元素,远远小于权值矩阵w
a
的1000,000个权值元素。
[0059]
术语“压缩比rate”可以是指分解后的多个分解模型的模型参数数据量与分解前的当前全局模型的模型参数数据量之间的比例。在上面示出的权值矩阵分解的示例中,压缩比rate=200,000/1000,000=20%。在本说明书的实施例中,压缩比rate可以是用户预先定义的期望值。压缩比rate可以被使用来确定各个分解模型的模型结构。例如,在模型参数使用权值矩阵表征的情况下,压缩比rate可以被使用来确定各个分解矩阵的矩阵维度。例如,假设w
a
为w
m
×
n
,将其分解为两个分解矩阵w
a1
和w
a2
相乘,其中,w
a1
为w
m
×
z
,以及w
a1
为w
z
×
n
。在这种情况下,可以使用压缩比rate来确定上述权值矩阵分解中的参数z,即,每个分解矩阵的矩阵维度。具体地,rate=(m
×
z+z
×
n)/(m
×
n),在rate、m和n已知的情况下,可以确定出z的值。
[0060]
在本说明书中,术语“模型分解对象”是指被执行模型分解的模型结构。在当前全局模型包括单层模型结构的情况下,模型分解对象是指当前全局模型的全部模型结构。在本说明书的一个实施例中,当前全局模型可以包括多层模型结构。在这种情况下,可以选择该多层模型结构中的部分层模型结构来进行模型分解,而剩余模型结构保持不变。相应地,模型分解对象可以指当前全局模型的部分模型结构。例如,在当前全局模型是神经网络模型的情况下,神经网络模型包括输入层、至少两个隐层和输出层,则可以仅仅对隐层间模型结构进行模型分解,而对输入层与隐层之间的模型结构以及隐层与输出层之间的模型不进行模型分解。在另一示例中,在包括多于两个隐层的情况下,还可以仅仅对部分隐层间模型结构进行模型分解,而不是所有隐层间模型结构。在本说明书中,术语“隐层间模型结构”可以包括两个隐层之间的权值矩阵。
[0061]
在本说明书中,多个分解模型是指针对当前全局模型的模型分解后得到的所有部分模型结构,包括对模型分解对象分解后得到的模型分解结构以及当前全局模型中的未进行模型分解的部分模型结构。
[0062]
在本说明书中,术语“每个模型分解对象的模型分解数量”是指每个模型分解对象被分解成多少个分解模型。例如,在模型分解对象是权值矩阵的情况下,每个模型分解对象的模型分解数量是指权值矩阵被分解为多少个分解矩阵相乘。通常,模型分解数量为2个。在本说明书的其它实施例中,模型分解数量也可以采用3个或更多个。每个模型分解对象的
模型分解数量可以预先设定,也可以基于压缩比、模型分解对象的模型复杂度、模型训练设备的计算能力和/或计算资源来确定。
[0063]
回到图3,在块340,第一成员节点a将多个分解模型的模型参数数据发送给第二成员节点,以供第二成员节点进行模型重构。在一个示例中,多个分解模型的模型参数数据可以采用串行数据序列的方式发送给第二成员节点。在这种情况下,第一成员节点首先对所得到的多个分解模型的模型参数数据进行串行序列化,并且在所生成的串行数据序列中,以规定的信息来标识每个分解模型的模型参数,比如,在每个分解模型的模型参数之后增加一个结束比特来表示该结束比特之前的数据为该分解模型的模型参数。或者,可以在串行数据序列的头部设置长度字段信息,该长度字段信息用于规定每个分解模型的模型参数的数据长度等等。在本说明书的其它实施例中,也可以采用其它合适的方式来在串行数据序列中对各个分解模型的模型参数数据进行区分和标识。
[0064]
在第二成员节点接收到各个第一成员节点发送的分解模型的模型参数数据后,使用各个第一成员节点的多个分解模型的模型参数数据,按照各自的与模型分解策略对应的模型重构策略重构各个第一成员节点的当前全局模型。例如,在采用权值矩阵分解进行模型分解的情况下,第二成员节点可以根据模型重构策略,确定出各个被分解的模型分解对象所对应的分解模型,并将各个对应的分解模型进行矩阵相乘来重构出该模型分解对象,由此得到各个第一成员节点处的当前全局模型。随后,第二成员节点使用重构后的各个第一成员节点处的当前全局模型来进行模型整合,以得到当前目标全局模型。
[0065]
在上面示出的示例中,在第一成员节点和第二成员节点之间可以预先绑定模型分解策略和模型重构策略。例如,可以通过预先配置的方式在第一成员节点和第二成员节点之间绑定模型分解策略和模型重构策略。或者,可以通过预先协商的方式,使得第二成员节点能够获悉各个第一成员节点的模型分解策略,从而可以确定出对应的模型重构策略。
[0066]
在另一示例中,也可以不在第一成员节点和第二成员节点之间预先绑定模型分解策略和模型重构策略。相应地,在块340中,第一成员节点a可以将多个分解模型的模型参数数据以及模型分解策略发送给第二成员节点,以供第二成员节点进行模型重构。
[0067]
此外,在另一示例中,各个第一成员节点可以具有模型权重。在这种情况下,在块340中,第一成员节点a可以将多个分解模型的模型参数数据和模型权重发送给第二成员节点。在一个示例中,各个第一成员节点的模型权重可以基于各个第一成员节点的数据样本质量来确定。例如,数据样本质量越好,所具有的模型权重越大。
[0068]
相应地,在第二成员节点处,使用各个第一成员节点的多个分解模型的模型参数数据来按照与所述模型分解策略对应的模型重构策略重构各个第一成员节点的当前全局模型,并且使用重构后的各个第一成员节点处的当前全局模型以及对应的模型权重来进行模型整合,以得到当前目标全局模型。
[0069]
要说明的是,图3中示出的仅仅是第一成员节点处的一次迭代过程。在使用多次迭代过程来完成全局模型训练时,可以循环执行图3中示出的过程,直到满足循环结束条件。
[0070]
在本说明书的实施例中,全局模型w可以包括单层模型结构,也可以包括多层模型结构。例如,全局模型w可以包括神经网络模型,比如深度神经网络(dnn)模型、卷积神经网络(cnn)模型等。神经网络模型可以包括输入层、至少两个隐层和输出层。图4a和4b示出了根据本说明书的实施例的神经网络模型的示例示意图。
[0071]
在图4a示出的神经网络模型中,神经网络模型包括输入层、隐层1、隐层2和输出层。输入层包括4个输入节点,隐层1包括4个隐层节点,隐层2包括3个隐层节点,以及输出层包括1个输出节点。在图4a示出的神经网络模型结构包括输入层到隐层1的第一模型结构,隐层1到隐层2的第二模型结构,以及隐层2到输出层的第三模型结构。第一模型结构可以使用4
×
4的权值矩阵来表征,第二模型结构可以使用4
×
3的权值矩阵来表征,以及第三模型结构可以使用3
×
1的权值矩阵来表征。
[0072]
在图4b示出的神经网络模型中,神经网络模型包括输入层、隐层1、隐层2、隐层3、隐层4和输出层。输入层包括4个输入节点,隐层1包括4个隐层节点,隐层2包括3个隐层节点,隐层3包括4个隐层节点,隐层4包括3个隐层节点,以及输出层包括1个输出节点。在图4b示出的神经网络模型结构包括输入层到隐层1的第一模型结构,隐层1到隐层2的第二模型结构,隐层2到隐层3的第三模型结构,隐层3到隐层4的第四模型结构,以及隐层4到输出层的第五模型结构。第一模型结构可以使用4
×
4的权值矩阵来表征,第二模型结构可以使用4
×
3的权值矩阵来表征,第三模型结构可以使用3
×
4的权值矩阵来表征,第四模型结构可以使用4
×
3的权值矩阵来表征,以及第五模型结构可以使用3
×
1的权值矩阵来表征。
[0073]
图5示出了根据本说明书的实施例的在第一成员节点处执行的联盟学习过程的另一示例的流程图。在图5示出的示例中,全局模型是具有多层模型结构的神经网络模型,并且该神经网络模型包括至少三个隐层。在本说明书的其它实施例中,全局模型也可以是具有多层模型结构的其它业务模型。
[0074]
如图5所示,在块510,第一成员节点a从第二成员节点220获取当前神经网络模型w。
[0075]
在块520,第一成员节点a使用本地数据训练当前神经网络模型w,以得到训练好的当前神经网络模型w
a

[0076]
在块530,第一成员节点a基于各个隐层的隐层节点数,确定模型分解对象,即,将神经网络模型中的哪些隐层之间的隐层间模型结构确定为模型分解对象。在一个示例中,可以将满足下述公式的隐层i和隐层i+1之间的隐层间模型结构,确定为所述模型分解对象:象:其中,m
i
是隐层i的隐层节点数,m
i+1
是隐层i+1的隐层节点数,m
j
是隐层j的隐层节点数,m
j+1
是隐层j+1的隐层节点数,n是神经网络模型的隐层总数。
[0077]
在如上确定出模型分解对象后,在块540,第一成员节点a基于模型分解策略来对神经网络模型进行模型分解。具体地,第一成员节点a将各个模型分解对象分解为模型分解策略中规定的模型分解数目个分解模型,每个分解模块具有基于压缩比确定出的分解模型维度。同时,保持神经网络模型中的除了模型分解对象之外的剩余模型结构不变。所得到的多个分解模型包括各个模型分解对象的分解模型以及未进行模型分解的剩余模型结构。所得到的分解模型的模型参数的数据总量小于当前全局模型的模型参数的数据量。
[0078]
在块550,第一成员节点a将多个分解模型的模型参数数据以及模型分解策略发送给第二成员节点,以供第二成员节点进行模型重构。
[0079]
在第二成员节点接收到各个第一成员节点发送的分解模型的模型参数数据后,使用各个第一成员节点的多个分解模型的模型参数数据,按照各自的与模型分解策略对应的
模型重构策略重构各个第一成员节点的神经网络模型。例如,第二成员节点可以根据模型重构策略,确定出各个被分解的模型分解对象所对应的分解模型,并将各个对应的分解模型进行矩阵相乘来重构出该模型分解对象,由此得到各个第一成员节点处的神经网络模型。随后,第二成员节点使用重构后的各个第一成员节点处的当前神经网络模型来进行模型整合,以得到当前目标神经网络模型。
[0080]
同样,图5中示出的仅仅是第一成员节点处的一次迭代过程。在使用多次迭代过程来完成全局模型训练时,可以循环执行图5中示出的过程,直到满足循环结束条件。
[0081]
图6示出了根据本说明书的实施例的在第二成员节点处执行的联盟学习过程的流程图。
[0082]
如图6所示,在块610,第二成员节点将当前全局模型提供给各个第一成员节点。在各个第一成员节点处,使用本地数据训练所述当前全局模型,并且按照模型分解策略来将训练好的当前全局模型分解为多个分解模型,所述多个分解模型的模型参数的数据总量小于所述当前全局模型的模型参数的数据量。
[0083]
在块620,第二成员节点从各个第一成员节点获取该第一成员节点处训练出的当前全局模型的多个分解模型的模型参数数据。在另一示例中,例如,在第一成员节点和第二成员节点之间未绑定模型分解策略和模型重构策略的情况下,第二成员节点还可以从各个第一成员节点获取对应的模型分解策略。在另一示例中,各个第一成员节点具有模型权重。相应地,第二成员节点还可以从各个第一成员节点获取各自的模型权重。
[0084]
在块630,第二成员节点使用各个第一成员节点的多个分解模型的模型参数数据来按照与模型分解策略对应的模型重构策略重构各个第一成员节点的当前全局模型。
[0085]
在块640,第二成员节点使用重构后的各个第一成员节点处的当前全局模型来进行模型整合,得到当前目标全局模型。在各个第一成员节点具有模型权重的情况下,第二成员节点使用重构后的各个第一成员节点处的当前全局模型以及各自的模型权重来进行模型整合,以得到当前目前全局模型。
[0086]
在块650,第二成员节点确定是否满足循环结束条件。在本说明书中,循环结束条件可以包括循环次数达到预定循环次数。在另一示例中,第二成员节点处可以具有本地训练样本数据。相应地,循环结束条件可以包括在第二成员节点处的模型预测差值在预定范围内。
[0087]
如上参照图1到图6,对根据本说明书的实施例的联盟学习方法进行了描述。
[0088]
利用图3中示出的联盟学习方法,通过在各个本地端完成模型训练后,将训练好的全局模型分解为数据量更少的多个分解模型发送给模型拥有端,并在模型拥有端进行模型重构,可以减少联盟学习时各个模型训练参与方之间的通信数据量,由此提高联盟学习时的通信效率,进而提升联盟学习效率。
[0089]
此外,利用图3中示出的联盟学习方法,通过在第一成员节点和第二成员节点之间预先绑定模型分解策略和模型重构策略,从而无需第一成员节点向第二成员节点发送模型分解策略信息,由此进一步减少第一成员节点与第二成员节点的数据传输量。
[0090]
此外,利用图3中示出的联盟学习方法,通过为各个第一成员节点赋予模型权重,并且使用各个第一成员节点处的经过模型权重加权后的全局模型来进行模型整合,从而可以使得模型整合后的全局模型更加准确。
[0091]
此外,利用图3中示出的联盟学习方法,通过基于各个第一成员节点的数据样本质量来为各个第一成员节点赋予模型权重,可以使得数据样本质量越好的第一成员节点,在进行模型整合时的贡献越多,由此使得模型整合后的全局模型更加准确。
[0092]
利用图5中示出的联盟学习方法,在全局模型包括多层模型结构的情况下,可以基于各层模型结构中具有的节点数来确定模式分解对象,从而可以使得仅仅对全局模型中的部分层模型结构进行模型分解,从而可以降低第一成员节点处的模型分解复杂度以及第二成员节点处的模型重构复杂度。
[0093]
图7示出了根据本说明书的实施例的在第一成员节点处的用于联盟学习的装置(下文中称为联盟学习装置)700的一个示例的方框图。如图7所示,联盟学习装置700包括模型获取单元710、模型训练单元720、模型分解单元730和模型数据发送单元740。
[0094]
模型获取单元710被配置为从第二成员节点获取当前全局模型。模型获取单元710的操作可以参考上面参照图3描述的块310的操作。
[0095]
模型训练单元720被配置为使用本地数据训练当前全局模型。模型训练单元720的操作可以参考上面参照图3描述的块320的操作。
[0096]
模型分解单元730被配置为按照模型分解策略来将训练好的当前全局模型分解为多个分解模型,多个分解模型的模型参数的数据总量小于当前全局模型的模型参数的数据量。所述模型分解策略可以包括下述策略中的至少一个:模型分解方式;压缩比;模型分解对象;和每个模型分解对象的模型分解数量。模型分解单元730的操作可以参考上面参照图3描述的块330的操作。
[0097]
模型数据发送单元740被配置为将多个分解模型的模型参数数据发送给第二成员节点。相应地,在各个第一成员节点和第二成员节点之间预先绑定模型分解策略和模型重构策略。在另一示例中,在各个第一成员节点和第二成员节点之间可以未预先绑定模型分解策略和模型重构策略。相应地,模型数据发送单元740可以将多个分解模型的模型参数数据和模型分解策略发送给第二成员节点。
[0098]
此外,各个第一成员节点可以具有模型权重。相应地,模型数据发送单元740可以将多个分解模型的模型参数数据和模型权重发送给第二成员节点。
[0099]
在一个示例中,模型获取单元710、模型训练单元720、模型分解单元730和模型数据发送单元740循环操作,直到满足循环结束条件。所述循环结束条件可以包括循环次数达到预定循环次数,或者在第二成员节点处的模型预测差值在预定范围内。
[0100]
图8示出了根据本说明书的实施例的在第一成员节点处的用于联盟学习的装置(下文称为联盟学习装置)800的另一示例的方框图。如图8所示,联盟学习装置800包括模型获取单元810、模型训练单元820、分解策略确定单元830、模型分解单元840和模型数据发送单元850。图8中示出的联盟学习装置800适用于神经网络模型。所述神经网络模型包括输入层、至少三个隐层和输出层。相应地,模型分解方式包括权值矩阵分解,以及模型分解对象包括神经网络模型中的部分隐层间模型结构。
[0101]
模型获取单元810被配置为从第二成员节点获取神经网络模型。模型获取单元810的操作可以参考上面参照图5描述的块510的操作。
[0102]
模型训练单元820被配置为使用本地数据训练当前神经网络模型。模型训练单元820的操作可以参考上面参照图5描述的块520的操作。
[0103]
分解策略确定单元830被配置为基于各个隐层的隐层节点数,确定模型分解对象。所确定出的模型分解对象与模型分解方式、压缩比和每个模型分解对象的模型分解数目一起构成模型分解策略。分解策略确定单元830的操作可以参考上面参照图5描述的块530的操作。
[0104]
模型分解单元840被配置为按照模型分解策略来将训练好的当前神经网络模型分解为多个分解模型,多个分解模型的模型参数的数据总量小于当前神经网络模型的模型参数的数据量。模型分解单元840的操作可以参考上面参照图5描述的块540的操作。
[0105]
模型数据发送单元850被配置为将多个分解模型的模型参数数据和模型分解策略发送给第二成员节点。模型数据发送单元850的操作可以参考上面参照图5描述的块550的操作。
[0106]
此外,各个第一成员节点可以具有模型权重。相应地,模型数据发送单元850还可以将模型权重发送给第二成员节点。
[0107]
同样,在一个示例中,模型获取单元810、模型训练单元820、分解策略确定单元830、模型分解单元840和模型数据发送单元850循环操作,直到满足循环结束条件。所述循环结束条件可以包括循环次数达到预定循环次数,或者在第二成员节点处的模型预测差值在预定范围内。
[0108]
图9示出了根据本说明书的实施例的在第二成员节点处的用于联盟学习的装置(下文称为联盟学习装置)900的一个示例的方框图。如图9所示,联盟学习装置900包括模型提供单元910、模型数据获取单元920、模型重构单元930和模型整合单元940。
[0109]
模型提供单元910被配置为将当前全局模型提供给各个第一成员节点。各个第一成员节点使用本地数据训练所述当前全局模型,并且按照模型分解策略来将训练好的当前全局模型分解为多个分解模型,多个分解模型的模型参数的数据总量小于当前全局模型的模型参数的数据量。模型提供单元910的操作可以参考上面参照图6描述的块610的操作。
[0110]
模型数据获取单元920被配置为从各个第一成员节点获取该第一成员节点处训练出的当前全局模型的多个分解模型的模型参数数据。在另一示例中,例如,在第一成员节点和第二成员节点之间未绑定模型分解策略和模型重构策略的情况下,模型数据获取单元920还被配置为从各个第一成员节点获取对应的模型分解策略。在另一示例中,各个第一成员节点具有模型权重。相应地,模型数据获取单元920还被配置为从各个第一成员节点获取各自的模型权重。模型数据获取单元920的操作可以参考上面参照图6描述的块620的操作。
[0111]
模型重构单元930被配置为使用各个第一成员节点的多个分解模型的模型参数数据来按照与模型分解策略对应的模型重构策略重构各个第一成员节点的当前全局模型。模型重构单元930的操作可以参考上面参照图6描述的块630的操作。
[0112]
模型整合单元940被配置为使用重构后的各个第一成员节点处的当前全局模型来进行模型整合,得到当前目标全局模型。
[0113]
在一个示例中,第一成员节点可以具有模型权重。相应地,模型数据获取单元920还可以从各个第一成员节点获取各自的模型权重。模型整合单元940使用重构后的各个第一成员节点处的当前全局模型以及对应的模型权重来进行模型整合,得到当前目标全局模型。
[0114]
在一个示例中,模型提供单元910、模型数据获取单元920、模型重构单元930和模
型整合单元940循环操作,直到满足循环结束条件。所述循环结束条件可以包括循环次数达到预定循环次数,或者在第二成员节点处的模型预测差值在预定范围内。
[0115]
如上参照图1到图9,对根据本说明书实施例的联盟学习方法和联盟学习装置进行了描述。上面的联盟学习装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。
[0116]
图10示出了根据本说明书的实施例的用于实现在第一成员节点处的联盟学习过程的电子设备的示意图。如图10所示,电子设备1000可以包括至少一个处理器1010、存储器(例如,非易失性存储器)1020、内存1030和通信接口1040,并且至少一个处理器1010、存储器1020、内存1030和通信接口1040经由总线1060连接在一起。至少一个处理器1010执行在存储器中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
[0117]
在一个实施例中,在存储器中存储计算机程序,其当执行时使得至少一个处理器1010:从第二成员节点获取当前全局模型;使用本地数据训练所述当前全局模型;按照模型分解策略来将训练好的当前全局模型分解为多个分解模型,多个分解模型的模型参数的数据总量小于当前全局模型的模型参数的数据量;以及将多个分解模型的模型参数数据发送给第二成员节点,其中,在第二成员节点处,使用各个第一成员节点的多个分解模型的模型参数数据来按照与模型分解策略对应的模型重构策略重构各个第一成员节点的当前全局模型,并且使用重构后的各个第一成员节点处的当前全局模型来进行模型整合,以得到当前目标全局模型。
[0118]
应该理解,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器1010进行本说明书的各个实施例中以上结合图1-9描述的各种操作和功能。
[0119]
根据一个实施例,提供了一种比如计算机可读介质(例如,非暂时性计算机可读介质)的程序产品。计算机可读介质可以具有计算机程序(即,上述以软件形式实现的元素),该计算机程序当被处理器执行时,使得处理器执行本说明书的各个实施例中以上结合图1-9描述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
[0120]
图11示出了根据本说明书的实施例的用于实现在第二成员节点处的联盟学习过程的电子设备的示意图。如图11所示,电子设备1100可以包括至少一个处理器1110、存储器(例如,非易失性存储器)1120、内存1130和通信接口1140,并且至少一个处理器1110、存储器1120、内存1130和通信接口1140经由总线1160连接在一起。至少一个处理器1110执行在存储器中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
[0121]
在一个实施例中,在存储器中存储计算机程序,其当执行时使得至少一个处理器1110:将当前全局模型提供给各个第一成员节点,在各个第一成员节点处,使用本地数据训练所述当前全局模型,并且按照模型分解策略来将训练好的当前全局模型分解为多个分解模型,所述多个分解模型的模型参数的数据总量小于所述当前全局模型的模型参数的数据量;从各个第一成员节点获取该第一成员节点处训练出的当前全局模型的多个分解模型的模型参数数据;使用各个第一成员节点的多个分解模型的模型参数数据来按照与模型分解策略对应的模型重构策略重构各个第一成员节点的当前全局模型;以及使用重构后的各个第一成员节点处的当前全局模型来进行模型整合,得到当前目标全局模型。
[0122]
应该理解,在存储器中存储的计算机程序当执行时使得至少一个处理器1110进行本说明书的各个实施例中以上结合图1-9描述的各种操作和功能。
[0123]
根据一个实施例,提供了一种比如计算机可读介质(例如,非暂时性计算机可读介质)的程序产品。计算机可读介质可以具有计算机程序(即,上述以软件形式实现的元素),该计算机程序当被处理器执行时,使得处理器执行本说明书的各个实施例中以上结合图1-9描述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
[0124]
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
[0125]
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-ram、dvd-rw、dvd-rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
[0126]
根据一个实施例,提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序当被处理器执行时,使得处理器执行本说明书的各个实施例中以上结合图1-9描述的各种操作和功能。
[0127]
本领域技术人员应当理解,上面公开的各个实施例可以在不偏离发明实质的情况下做出各种变形和修改。因此,本发明的保护范围应当由所附的权利要求书来限定。
[0128]
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
[0129]
以上各实施例中,硬件单元或模块可以通过机械方式或电气方式实现。例如,一个硬件单元、模块或处理器可以包括永久性专用的电路或逻辑(如专门的处理器,fpga或asic)来完成相应操作。硬件单元或处理器还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
[0130]
上面结合附图阐述的具体实施方式描述了示例性实施例,但并不表示可以实现的或者落入权利要求书的保护范围的所有实施例。在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
[0131]
本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开
的原理和新颖性特征的最广范围相一致。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1