一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于联邦学习的社区划分方法、装置、系统、介质及设备与流程

2022-05-18 03:59:40 来源:中国专利 TAG:


1.本公开涉及联邦学习技术领域,具体而言,涉及一种基于联邦学习的社区划分方法、装置、系统、计算机可读介质及电子设备。


背景技术:

2.联邦学习是一种机器学习方式,能有效帮助多个参与方(可以代表个人或机构)在满足数据隐私保护的要求下,联合训练模型。联邦学习过程中各方数据都保留在本地,不泄露隐私也不违反法规;多个参与方数据联合建立虚拟的共有模型,并且共同获益;联邦学习的建模效果和将整个数据集放在一处建模的效果相同,或相差不大(在各个数据的用户对齐(user alignment)或特征(feature alignment)对齐的条件下)。
3.在自然界和社会活动中存在着大量复杂的系统,这些系统通常都可以通过形形色色的网络加以描述。典型的网络是由许多节点及节点之间的连边组成,其中节点用来代表真实系统中的各个实体,而连边则用来表示实体间的关系,一个包含多个节点的网络可以理解为一个社区。
4.在实践中,通常多个参与方只持有各自的节点(此处的节点可以理解为参与方本地存储的用户数据),却无法了解所持有的节点在整个联邦学习场景中所属的社区(也可以理解为所属的类别),而同一社区中的各个节点通常是相关或相似节点,如果能够实现联邦学习场景下的社区划分,则可以有助于用户了解所持有的节点在整个联邦学习场景中所属的社区,以进一步了解节点间的相似性。
5.因此,如何通过联邦学习实现综合各参与方节点的社区划分成为了当前亟需解决的问题。


技术实现要素:

6.本公开实施例的目的在于提供一种基于联邦学习的社区划分方法、装置、系统、计算机可读介质及电子设备,能够整合各个参与方的节点,并针对各个节点提取特征,进而通过联邦学习,实现节点特征的迭代,从而基于迭代后的节点特征实现社区划分,这样可以实现基于联邦学习的社区划分,从而使得各参与方在不泄露本地节点数据的情况下,也能够了解本地节点基于各参与方所有节点的所属社区,以便于用户及时了解本地节点之间的关联性。
7.本公开实施例的第一方面提供了一种基于联邦学习的社区划分方法,包括:
8.根据各参与方发送的节点密文序列确定节点并集;
9.对节点并集中各节点生成节点特征,并根据各参与方的节点密文序列确定对应于各参与方的节点特征集合;
10.将初始化得到的社区簇特征和节点特征集合发送至相对应的参与方;其中,各参与方根据本地模型、社区簇特征更新相应的节点特征;
11.更新次数满足预设条件时,根据各参与方反馈的节点特征进行节点聚类,得到多
个社区簇;其中,每个社区簇包含至少一个节点;
12.根据多个社区簇生成对应于各参与方的社区划分结果,并将各参与方的社区划分结果分别发送至相应的参与方。
13.在本公开的一种示例性实施例中,上述方法还包括:
14.接收各参与方发送的节点密文序列;其中,各参与方基于预设哈希算法计算本地节点集合对应的散列值得到散列值序列,并对散列值序列中各散列值进行加密,得到节点密文序列。
15.在本公开的一种示例性实施例中,根据各参与方的节点密文序列确定对应于各参与方的节点特征集合,包括:
16.从节点并集的节点特征中选取对应于节点密文序列的节点特征,以组成节点特征集合;
17.将节点特征集合发送至与节点密文序列对应的参与方,直到所有参与方接收到相应的节点特征集合为止。
18.在本公开的一种示例性实施例中,上述方法还包括:
19.根据节点并集生成用于表征所有节点密文序列中各节点出现频次的节点频次向量以及对应于各参与方的节点位置映射矩阵;其中,节点位置映射矩阵包括相应参与方的节点集合中各节点的向量表示;
20.若检测到已更新次数不满足预设条件,根据节点频次向量和各参与方的节点位置映射矩阵分别对各参与方反馈的节点特征再次更新;
21.将再次更新的结果反馈至相应的参与方,直到已更新次数满足预设条件为止。
22.在本公开的一种示例性实施例中,根据各参与方反馈的节点特征进行节点聚类,得到多个社区簇,包括:
23.接收各参与方反馈的节点特征;
24.对相同节点对应的更新后的不同节点特征进行融合处理,得到融合处理结果;
25.根据融合处理结果和不同节点对应的更新后的节点特征进行节点聚类,得到多个社区簇。
26.在本公开的一种示例性实施例中,根据多个社区簇生成对应于各参与方的社区划分结果,包括:
27.根据多个社区簇确定各参与方的本地节点集合内每个节点的所属社区簇;
28.根据每个节点的所属社区簇生成各参与方对应的社区划分结果。
29.根据本公开实施例的第二方面,提供一种基于联邦学习的社区划分装置,包括:
30.节点并集确定单元,用于根据各参与方发送的节点密文序列确定节点并集;
31.节点特征确定单元,用于对节点并集中各节点生成节点特征,并根据各参与方的节点密文序列确定对应于各参与方的节点特征集合;
32.节点特征发送单元,用于将初始化得到的社区簇特征和节点特征集合发送至相对应的参与方;其中,各参与方根据本地模型、社区簇特征更新相应的节点特征;
33.节点聚类单元,用于更新次数满足预设条件时,根据各参与方反馈的节点特征进行节点聚类,得到多个社区簇;其中,每个社区簇包含至少一个节点;
34.社区划分单元,用于根据多个社区簇生成对应于各参与方的社区划分结果,并将
各参与方的社区划分结果分别发送至相应的参与方。
35.在本公开的一种示例性实施例中,上述装置还包括:
36.序列接受单元,用于接收各参与方发送的节点密文序列;其中,各参与方基于预设哈希算法计算本地节点集合对应的散列值得到散列值序列,并对散列值序列中各散列值进行加密,得到节点密文序列。
37.在本公开的一种示例性实施例中,节点特征确定单元根据各参与方的节点密文序列确定对应于各参与方的节点特征集合,包括:
38.从节点并集的节点特征中选取对应于节点密文序列的节点特征,以组成节点特征集合;
39.将节点特征集合发送至与节点密文序列对应的参与方,直到所有参与方接收到相应的节点特征集合为止。
40.在本公开的一种示例性实施例中,上述装置还包括:
41.特征提取单元,用于根据节点并集生成用于表征所有节点密文序列中各节点出现频次的节点频次向量以及对应于各参与方的节点位置映射矩阵;其中,节点位置映射矩阵包括相应参与方的节点集合中各节点的向量表示;
42.特征更新单元,用于若检测到已更新次数不满足预设条件,根据节点频次向量和各参与方的节点位置映射矩阵分别对各参与方反馈的节点特征再次更新;将再次更新的结果反馈至相应的参与方,直到已更新次数满足预设条件为止。
43.在本公开的一种示例性实施例中,节点聚类单元根据各参与方反馈的节点特征进行节点聚类,得到多个社区簇,包括:
44.接收各参与方反馈的节点特征;
45.对相同节点对应的更新后的不同节点特征进行融合处理,得到融合处理结果;
46.根据融合处理结果和不同节点对应的更新后的节点特征进行节点聚类,得到多个社区簇。
47.在本公开的一种示例性实施例中,社区划分单元根据多个社区簇生成对应于各参与方的社区划分结果,包括:
48.根据多个社区簇确定各参与方的本地节点集合内每个节点的所属社区簇;
49.根据每个节点的所属社区簇生成各参与方对应的社区划分结果。
50.根据本公开实施例的第三方面,提供一种基于联邦学习的社区划分系统,包括:
51.各参与方,用于发送节点密文序列;
52.服务器,用于根据各参与方发送的节点密文序列确定节点并集;对节点并集中各节点生成节点特征,并根据各参与方的节点密文序列确定对应于各参与方的节点特征集合;将初始化得到的社区簇特征和节点特征集合发送至相对应的参与方;
53.各参与方,还用于根据本地模型、社区簇特征更新相应的节点特征,并将更新后的节点特征反馈至服务器;
54.服务器,还用于更新次数满足预设条件时,根据各参与方反馈的节点特征进行节点聚类,得到多个社区簇;其中,每个社区簇包含至少一个节点;根据多个社区簇生成对应于各参与方的社区划分结果,并将各参与方的社区划分结果分别发送至相应的参与方;
55.各参与方,还用于接收服务器下发的社区划分结果。
56.根据本公开实施例的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现如上述实施例中第一方面所述的基于联邦学习的社区划分方法。
57.根据本公开实施例的第五方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现如上述实施例中第一方面所述的基于联邦学习的社区划分方法。
58.根据本技术的第六方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的各种可选实现方式中提供的方法。
59.本公开实施例提供的技术方案可以包括以下有益效果:
60.在本公开的一些实施例所提供的技术方案中,可以根据各参与方发送的节点密文序列确定节点并集;对节点并集中各节点生成节点特征,并根据各参与方的节点密文序列确定对应于各参与方的节点特征集合;将初始化得到的社区簇特征和节点特征集合发送至相对应的参与方;其中,各参与方根据本地模型、社区簇特征更新相应的节点特征;更新次数满足预设条件时,根据各参与方反馈的节点特征进行节点聚类,得到多个社区簇;其中,每个社区簇包含至少一个节点;根据多个社区簇生成对应于各参与方的社区划分结果,并将各参与方的社区划分结果分别发送至相应的参与方。
61.实施本公开的实施例,能够整合各个参与方的节点,并针对各个节点提取特征,进而通过联邦学习,实现节点特征的迭代,从而基于迭代后的节点特征实现社区划分,这样可以实现基于联邦学习的社区划分,从而使得各参与方在不泄露本地节点数据的情况下,也能够了解本地节点基于各参与方所有节点的所属社区,以便于用户及时了解本地节点之间的关联性。
62.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
63.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
64.图1示意性示出了可以应用本公开实施例的一种基于联邦学习的社区划分装置的示例性架构示意图;
65.图2示意性示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图;
66.图3示意性示出了根据本公开的一个实施例的基于联邦学习的社区划分方法的流程图;
67.图4示意性示出了根据本公开的另一个实施例的基于联邦学习的社区划分方法的流程图;
68.图5示意性示出了根据本公开的另一个实施例的基于联邦学习的社区划分系统的架构图;
69.图6示意性示出了根据本公开的一个实施例中的基于联邦学习的社区划分装置的结构框图。
具体实施方式
70.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
71.此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
72.图1示意性示出了可以应用本公开实施例的一种基于联邦学习的社区划分方法及装置的示例性系统架构的示意图。
73.如图1所示,系统架构100可以包括终端设备101、102、103中的一个或多个,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备101、102、103可以是具有显示屏的各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。例如,各参与方的终端设备101、102或103可以发送节点密文序列;服务器105根据各参与方发送的节点密文序列确定节点并集;对节点并集中各节点生成节点特征,并根据各参与方的节点密文序列确定对应于各参与方的节点特征集合;将初始化得到的社区簇特征和节点特征集合发送至相对应的参与方;各参与方的终端设备101、102或103根据本地模型、社区簇特征更新相应的节点特征,并将更新后的节点特征反馈至服务器;服务器105更新次数满足预设条件时,根据各参与方反馈的节点特征进行节点聚类,得到多个社区簇;其中,每个社区簇包含至少一个节点;根据多个社区簇生成对应于各参与方的社区划分结果,并将各参与方的社区划分结果分别发送至相应的参与方;各参与方的终端设备101、102或103接收服务器下发的社区划分结果。
74.图2示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
75.需要说明的是,图2示出的电子设备的计算机系统200仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
76.如图2所示,计算机系统200包括中央处理单元(cpu)201,其可以根据存储在只读存储器(rom)202中的程序或者从储存部分208加载到随机访问存储器(ram)203中的程序而执行各种适当的动作和处理。在(ram)203中,还存储有系统操作所需的各种程序和数据。(cpu)201、(rom)202以及(ram)203通过总线204彼此相连。输入/输出(i/o)接口205也连接至总线204。
77.以下部件连接至(i/o)接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分207;包括硬盘等的储存部分208;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至(i/o)接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入储存部分208。
78.特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。在该计算机程序被中央处理单元(cpu)201执行时,执行本技术的方法和装置中限定的各种功能。
79.需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
80.附图中的流程图和框图,示出了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规
定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
81.描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
82.作为另一方面,本技术还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。例如,所述的电子设备可以实现如图3所示的各个步骤等。
83.本示例实施方式提供了一种基于联邦学习的社区划分方法。参考图3所示,该基于联邦学习的社区划分方法可以包括以下步骤s310至步骤s350,具体地:
84.步骤s310:根据各参与方发送的节点密文序列确定节点并集。
85.步骤s320:对节点并集中各节点生成节点特征,并根据各参与方的节点密文序列确定对应于各参与方的节点特征集合。
86.步骤s330:将初始化得到的社区簇特征和节点特征集合发送至相对应的参与方;其中,各参与方根据本地模型、社区簇特征更新相应的节点特征。
87.步骤s340:更新次数满足预设条件时,根据各参与方反馈的节点特征进行节点聚类,得到多个社区簇;其中,每个社区簇包含至少一个节点。
88.步骤s350:根据多个社区簇生成对应于各参与方的社区划分结果,并将各参与方的社区划分结果分别发送至相应的参与方。
89.实施图3所示的基于联邦学习的社区划分方法,能够整合各个参与方的节点,并针对各个节点提取特征,进而通过联邦学习,实现节点特征的迭代,从而基于迭代后的节点特征实现社区划分,这样可以实现基于联邦学习的社区划分,从而使得各参与方在不泄露本地节点数据的情况下,也能够了解本地节点基于各参与方所有节点的所属社区,以便于用户及时了解本地节点之间的关联性。此外,各参与方只需要提供本地节点的节点密文序列即可获得节点的社区划分结果,可以保障本地节点的数据不被泄露,在不泄露真实数据的情况下,也能够获得节点的社区划分结果,从而可以保障节点对应的用户数据的安全性。
90.其中,步骤s310~步骤s350的执行主体可以为中心服务器,中心服务器可以与各参与方进行数据交互,各参与方可以理解为各个机构的服务器/终端设备。本技术由一个中心服务器s以及多个参与方ci={c1,c2,
……
,cn};其中,i∈[1,n],n为正整数。
[0091]
下面,对于本示例实施方式的上述步骤进行更加详细的说明。
[0092]
在步骤s310中,根据各参与方发送的节点密文序列确定节点并集。
[0093]
具体地,节点并集中不包括重复的节点密文。举例来说,若各参与方分别为参与方c1、参与方c2、参与方c3,参与方c1的本地节点密文集合为[节点密文1,节点密文2],参与方c2的本地节点密文集合为[节点密文1,节点密文3],参与方c3的本地节点密文集合为[节点密文3,节点密文4]。那么,根据各参与方发送的节点密文序列确定出的节点并集v
union
可以为[节点密文1,节点密文2,节点密文3,节点密文4]。
[0094]
作为一种可选的实施例,上述方法还包括:接收各参与方发送的节点密文序列;其
中,各参与方基于预设哈希算法计算本地节点集合对应的散列值得到散列值序列,并对散列值序列中各散列值进行加密,得到节点密文序列。
[0095]
具体地,各参与方基于预设哈希算法计算本地节点集合对应的散列值得到散列值序列,包括:各参与方获取算法信息以确定预设哈希算法,并基于预设哈希算法计算本地节点集合对应的散列值得到散列值序列;不同的参与方对应于不同的散列值序列和不同的本地节点集合,本地节点集合中可以包括至少一个节点,散列值序列中可以包括至少一个节点的散列值,相对应的本地节点集合和散列值序列中包含的元素数量是相同的;其中,预设哈希算法可以为md4哈希算法、md5哈希算法、sha哈希算法等,本技术实施例不作限定。
[0096]
举例来说,若各参与方分别为参与方c1、参与方c2、参与方c3,参与方c1的本地节点集合为[节点1,节点2],参与方c2的本地节点集合为[节点1,节点3],参与方c3的本地节点集合为[节点3,节点4]。那么,参与方c1可以针对[节点1,节点2]中各节点计算散列值,得到散列值序列[散列值1,散列值2],参与方c2可以针对[节点1,节点3]中各节点计算散列值,得到散列值序列[散列值1,散列值3],参与方c3可以针对[节点3,节点4]中各节点计算散列值,得到散列值序列[散列值3,散列值4]。需要说明的是,各参与方使用的预设哈希算法是一致的,这样可以保证在参与方持有同一节点时计算出的该节点散列值也是一致的。
[0097]
此外,对散列值序列中各散列值进行加密,得到节点密文序列,包括:基于预设加密算法对散列值序列中各散列值进行加密,得到节点密文序列;其中,预设加密算法可以为哈希运算消息认证码加密算法、aes加密算法、3des加密算法、des加密算法、rsa加密算法、ecc加密算法等,本技术实施例不作限定。
[0098]
举例来说,若各参与方分别为参与方c1、参与方c2、参与方c3,参与方c1可以基于预设加密算法对散列值序列[散列值1,散列值2]中各散列值进行加密,得到节点密文序列[节点密文1,节点密文2],参与方c2可以基于预设加密算法对散列值序列[散列值1,散列值3]中各散列值进行加密,得到节点密文序列[节点密文1,节点密文3],参与方c3可以基于预设加密算法对散列值序列[散列值3,散列值4]中各散列值进行加密,得到节点密文序列[节点密文3,节点密文4]。
[0099]
可见,实施该可选的实施例,可以接收各参与方加密后的节点密文,实现了各参与方在不泄露本地真实节点数据的情况下,也可以为其提供社区划分的结果。
[0100]
在步骤s320中,对节点并集中各节点生成节点特征,并根据各参与方的节点密文序列确定对应于各参与方的节点特征集合。
[0101]
具体地,节点特征可以通过向量/矩阵等形式进行表示,其中,dim为节点特征的维度。举例来说,若节点并集v
union
可以为[节点密文1,节点密文2,节点密文3,节点密文4],各参与方分别为参与方c1、参与方c2、参与方c3,参与方c1的节点密文序列为[节点密文1,节点密文2],参与方c2的节点密文序列为[节点密文1,节点密文3],参与方c3的节点密文序列为[节点密文3,节点密文4]。根据参与方c1的节点密文序列为[节点密文1,节点密文2]可以确定对应于参与方c1的节点特征集合[节点特征1、节点特征2],根据参与方c2的节点密文序列为[节点密文1,节点密文3]可以确定对应于参与方c2的节点特征集合[节点特征1、节点特征3],根据参与方c3的节点密文序列为[节点密文3,节点密文4]可以确定对应于参与方c3的节点特征集合[节点特征3、节点特征4]。
[0102]
作为一种可选的实施例,根据各参与方的节点密文序列确定对应于各参与方的节
点特征集合,包括:从节点并集的节点特征中选取对应于节点密文序列的节点特征,以组成节点特征集合;将节点特征集合发送至与节点密文序列对应的参与方,直到所有参与方接收到相应的节点特征集合为止。
[0103]
举例来说,若参与方分别为参与方c1、参与方c2、参与方c3,参与方c1的节点密文序列为[节点密文1,节点密文2],参与方c2的节点密文序列为[节点密文1,节点密文3],则确定参与方c1的节点特征集合为[节点特征1,节点特征2],则确定参与方c2的节点特征集合为[节点特征1,节点特征3],则确定参与方c3的节点特征集合为[节点特征3,节点特征4],进而,可以将[节点特征1,节点特征2]发送至参与方c1,将[节点特征1,节点特征3]发送至参与方c2,将[节点特征3,节点特征4]发送至参与方c3。
[0104]
可见,实施该可选的实施例,可以对各参与方的节点进行整合,并提取整合结果中各节点的特征,并根据各参与方持有的节点将相应的特征发回参与方,以便各参与方在本地进行节点特征迭代,从而实现不泄露真实数据前提下的联邦学习。
[0105]
在步骤s330中,将初始化得到的社区簇特征和节点特征集合发送至相对应的参与方;其中,各参与方根据本地模型、社区簇特征更新相应的节点特征。
[0106]
具体地,初始化得到的社区簇特征可以表示为|c|为预定义簇数。此外,参与方根据本地模型、社区簇特征更新相应的节点特征的方式可以为:参与方基于本地图谱gi={节点集合vi,连边集合ei}并通过随机游走方式生成随机游走序列;其中,序列采用skip-gram建模,连边集合ei中的连边用于连接节点并表示节点之间的关系。进而,基于随机游走序列和预设损失函数而,基于随机游走序列和预设损失函数更新节点特征;其中,f(
·
)可以理解为特征,f(u)表示从eni得到节点u对应的特征,μc为从ec中取第c个簇对应的特征,v为参与方节点集合,第i个参与方为vi,c为簇集合,nb(v)为随机游走序列中v节点窗口内的邻域节点集合,γ为预设参数。
[0107]
作为一种可选的实施例,上述方法还包括:根据节点并集生成用于表征所有节点密文序列中各节点出现频次的节点频次向量以及对应于各参与方的节点位置映射矩阵;其中,节点位置映射矩阵包括相应参与方的节点集合中各节点的向量表示;若检测到已更新次数不满足预设条件,根据节点频次向量和各参与方的节点位置映射矩阵分别对各参与方反馈的节点特征再次更新;将再次更新的结果反馈至相应的参与方,直到已更新次数满足预设条件为止。
[0108]
具体地,根据节点并集生成用于表征所有节点密文序列中各节点出现频次的节点频次向量以及对应于各参与方的节点位置映射矩阵,包括:根据节点并集生成用于表征所有节点密文序列中各节点出现频次的节点频次向量vc,举例来说,若各参与方分别为参与方c1、参与方c2、参与方c3,参与方c1的节点密文序列为[节点密文1,节点密文2],参与方c2的节点密文序列为[节点密文1,节点密文3],参与方c3的节点密文序列为[节点密文3,节点密文4],则节点1出现频次为2,节点2出现频次为1,节点3出现频次为2,节点4出现频次为1,根据节点并集生成的节点频次向量可以用于表征节点1、节点2、节点3、节点4分别出现的频次,如,[2,1,2,1];根据节点并集生成对应于各参与方的节点位置映射矩阵
pmi,pmi用于表示第ci个参与方的位置映射矩阵,pmi用于表示参与方ci中各节点表示在节点并集v
union
中的位置。
[0109]
此外,还可以根据节点频次向量vc和各参与方的节点位置映射矩阵pmi分别对各参与方反馈的节点特征eni再次更新,得到再次更新的结果en;其中,en=(∑ieni*pm
it
)
×
1/vc;进而根据再次更新的结果en及表达式eni=pmi*en计算需要重新下发给各参与方的节点特征eni,以使得各参与方再对重新下发的节点特征eni进行再次更新,直到已更新次数满足预设条件为止。
[0110]
可见,实施该可选的实施例,可以通过节点频次向量和节点位置映射矩阵实现特征在预设条件内的多次更新,实现多个参与方的特征聚合。
[0111]
在步骤s340中,更新次数满足预设条件时,根据各参与方反馈的节点特征进行节点聚类,得到多个社区簇;其中,每个社区簇包含至少一个节点。
[0112]
具体地,预设条件可以用于限定更新次数,如,100次。此外,根据各参与方反馈的节点特征进行节点聚类,得到多个社区簇,包括:基于预设聚类方式(如,k-means)根据各参与方反馈的节点特征进行节点聚类,得到多个社区簇;其中,每个社区簇包括的节点可以来自同一参与方也可以来自于多个参与方,本技术实施例不作限定。
[0113]
作为一种可选的实施例,根据各参与方反馈的节点特征进行节点聚类,得到多个社区簇,包括:接收各参与方反馈的节点特征;对相同节点对应的更新后的不同节点特征进行融合处理,得到融合处理结果;根据融合处理结果和不同节点对应的更新后的节点特征进行节点聚类,得到多个社区簇。
[0114]
具体地,举例来说,若各参与方分别为参与方c1、参与方c2、参与方c3,参与方c1反馈的节点特征包括[节点特征1,节点特征2]、参与方c2反馈的节点特征包括[节点特征1,节点特征3]、参与方c3反馈的节点特征包括[节点特征3,节点特征4]。相同节点包括参与方c1反馈的节点特征1和参与方c2反馈的节点特征1,以及参与方c2反馈的节点特征3和参与方c3反馈的节点特征3。进而,可以针对参与方c1反馈的节点特征1和参与方c2反馈的节点特征1进行融合处理,得到融合处理结果1,针对参与方c2反馈的节点特征3和参与方c3反馈的节点特征3进行融合处理,得到融合处理结果3。进而,可以根据融合处理结果1、融合处理结果2、更新后的节点特征2、更新后的节点特征4进行节点聚类,得到多个社区簇。
[0115]
可见,实施该可选的实施例,可以在节点特征满足预设条件中的更新次数时,根据节点特征对各节点进行聚类,从而可以确定不同节点之间的关联性,提供更为丰富的对于节点关系的描述信息(即,社区划分结果)。
[0116]
在步骤s350中,根据多个社区簇生成对应于各参与方的社区划分结果,并将各参与方的社区划分结果分别发送至相应的参与方。
[0117]
具体地,各参与方的社区划分结果可以相同也可以不同,本技术实施例不作限定。
[0118]
作为一种可选的实施例,根据多个社区簇生成对应于各参与方的社区划分结果,包括:根据多个社区簇确定各参与方的本地节点集合内每个节点的所属社区簇;根据每个节点的所属社区簇生成各参与方对应的社区划分结果。
[0119]
具体地,社区划分结果可以包括参与方的各节点以及各节点对应的所属社区簇,举例来说,包含节点1和节点2的参与方c1对应的社区划分结果可以表示为{节点1:2,节点2:2},其中,{节点1:2,节点2:2}可以理解为,节点1的所属社区簇表示为2,节点2的所属社
区簇表示为2,即,节点1和节点2同属于社区簇2,节点1和节点2可以理解为同一类节点,若节点1用于表征用户a的数据,而参与方c1预先标识了用户a属于有不良记录的用户,通过参与方c1对应的社区划分结果,可以方便参与方c1了解到节点1和节点2属于同一类节点,即,节点2对应的用户b也可能成为有不良记录的用户。
[0120]
可见,实施该可选的实施例,可以基于联邦学习的结果为各参与方提供节点的社区划分结果,这样可以便于各参与方了解到本地各节点的所属社区,从而便于参与方对各个节点对应的用户数据进行更准确的归类。
[0121]
请参阅图4,图4示意性示出了根据本公开的另一个实施例的基于联邦学习的社区划分方法的流程图。如图4所示,该基于联邦学习的社区划分方法可以包括:步骤s410~步骤s444。
[0122]
步骤s410:参与方a基于预设哈希算法计算本地节点集合对应的散列值得到散列值序列,并对散列值序列中各散列值进行加密,得到节点密文序列a。
[0123]
步骤s412:参与方b基于预设哈希算法计算本地节点集合对应的散列值得到散列值序列,并对散列值序列中各散列值进行加密,得到节点密文序列b。
[0124]
步骤s414:参与方a发送节点密文序列a。
[0125]
步骤s416:参与方b发送节点密文序列b。
[0126]
步骤s418:服务器根据节点密文序列a和节点密文序列b确定节点并集。
[0127]
步骤s420:服务器根据节点并集生成用于表征所有节点密文序列中各节点出现频次的节点频次向量以及对应于各参与方的节点位置映射矩阵;其中,节点位置映射矩阵包括相应参与方的节点集合中各节点的向量表示。
[0128]
步骤s422:服务器从节点并集的节点特征中选取对应于节点密文序列a的节点特征,以组成节点特征集合a,并从节点并集的节点特征中选取对应于节点密文序列b的节点特征,以组成节点特征集合b。
[0129]
步骤s424:参与方a发送初始化得到的社区簇特征和节点特征集合a。
[0130]
步骤s426:参与方b发送初始化得到的社区簇特征和节点特征集合b。
[0131]
步骤s428:参与方a根据本地模型a、社区簇特征更新节点特征集合a中的节点特征。
[0132]
步骤s430:参与方b根据本地模型b、社区簇特征更新节点特征集合b中的节点特征。
[0133]
步骤s432:参与方a发送更新后的节点特征集合a。
[0134]
步骤s434:参与方b发送更新后的节点特征集合b。
[0135]
步骤s436:服务器若检测到已更新次数不满足预设条件,根据节点频次向量和各参与方的节点位置映射矩阵分别对各参与方反馈的节点特征再次更新;将再次更新的结果反馈至相应的参与方,直到已更新次数满足预设条件为止。
[0136]
步骤s438:服务器更新次数满足预设条件时,根据各参与方反馈的节点特征进行节点聚类,得到多个社区簇;其中,每个社区簇包含至少一个节点。
[0137]
步骤s440:服务器根据多个社区簇确定参与方a和b的本地节点集合内每个节点的所属社区簇,并根据每个节点的所属社区簇生成参与方a对应的社区划分结果以及参与方b对应的社区划分结果。
[0138]
步骤s442:参与方a发送参与方a对应的社区划分结果。
[0139]
步骤s444:参与方b发送参与方b对应的社区划分结果。
[0140]
可见,实施图4所示的方法,能够整合各个参与方的节点,并针对各个节点提取特征,进而通过联邦学习,实现节点特征的迭代,从而基于迭代后的节点特征实现社区划分,这样可以实现基于联邦学习的社区划分,从而使得各参与方在不泄露本地节点数据的情况下,也能够了解本地节点基于各参与方所有节点的所属社区,以便于用户及时了解本地节点之间的关联性。此外,各参与方只需要提供本地节点的节点密文序列即可获得节点的社区划分结果,可以保障本地节点的数据不被泄露,在不泄露真实数据的情况下,也能够获得节点的社区划分结果,从而可以保障节点对应的用户数据的安全性。
[0141]
请参阅图5,图5示意性示出了根据本公开的另一个实施例的基于联邦学习的社区划分系统的架构图。如图5所示,该基于联邦学习的社区划分系统500包括服务器520和各参与方510。
[0142]
各参与方510,用于发送节点密文序列;
[0143]
服务器520,用于根据各参与方510发送的节点密文序列确定节点并集;对节点并集中各节点生成节点特征,并根据各参与方510的节点密文序列确定对应于各参与方510的节点特征集合;将初始化得到的社区簇特征和节点特征集合发送至相对应的参与方;
[0144]
各参与方510,还用于根据本地模型、社区簇特征更新相应的节点特征,并将更新后的节点特征反馈至服务器520;
[0145]
服务器520,还用于更新次数满足预设条件时,根据各参与方510反馈的节点特征进行节点聚类,得到多个社区簇;其中,每个社区簇包含至少一个节点;根据多个社区簇生成对应于各参与方510的社区划分结果,并将各参与方510的社区划分结果分别发送至相应的参与方;
[0146]
各参与方510,还用于接收服务器520下发的社区划分结果。
[0147]
可见,实施图5所示的系统,能够整合各个参与方的节点,并针对各个节点提取特征,进而通过联邦学习,实现节点特征的迭代,从而基于迭代后的节点特征实现社区划分,这样可以实现基于联邦学习的社区划分,从而使得各参与方在不泄露本地节点数据的情况下,也能够了解本地节点基于各参与方所有节点的所属社区,以便于用户及时了解本地节点之间的关联性。此外,各参与方只需要提供本地节点的节点密文序列即可获得节点的社区划分结果,可以保障本地节点的数据不被泄露,在不泄露真实数据的情况下,也能够获得节点的社区划分结果,从而可以保障节点对应的用户数据的安全性。
[0148]
进一步的,本示例实施方式中,还提供了一种基于联邦学习的社区划分装置。参考图6所示,该基于联邦学习的社区划分装置600可以包括:
[0149]
节点并集确定单元601,用于根据各参与方发送的节点密文序列确定节点并集;
[0150]
节点特征确定单元602,用于对节点并集中各节点生成节点特征,并根据各参与方的节点密文序列确定对应于各参与方的节点特征集合;
[0151]
节点特征发送单元603,用于将初始化得到的社区簇特征和节点特征集合发送至相对应的参与方;其中,各参与方根据本地模型、社区簇特征更新相应的节点特征;
[0152]
节点聚类单元604,用于更新次数满足预设条件时,根据各参与方反馈的节点特征进行节点聚类,得到多个社区簇;其中,每个社区簇包含至少一个节点;
[0153]
社区划分单元605,用于根据多个社区簇生成对应于各参与方的社区划分结果,并将各参与方的社区划分结果分别发送至相应的参与方。
[0154]
可见,实施图6所示的装置,能够整合各个参与方的节点,并针对各个节点提取特征,进而通过联邦学习,实现节点特征的迭代,从而基于迭代后的节点特征实现社区划分,这样可以实现基于联邦学习的社区划分,从而使得各参与方在不泄露本地节点数据的情况下,也能够了解本地节点基于各参与方所有节点的所属社区,以便于用户及时了解本地节点之间的关联性。此外,各参与方只需要提供本地节点的节点密文序列即可获得节点的社区划分结果,可以保障本地节点的数据不被泄露,在不泄露真实数据的情况下,也能够获得节点的社区划分结果,从而可以保障节点对应的用户数据的安全性。
[0155]
在本公开的一种示例性实施例中,上述装置还包括:
[0156]
序列接受单元,用于接收各参与方发送的节点密文序列;其中,各参与方基于预设哈希算法计算本地节点集合对应的散列值得到散列值序列,并对散列值序列中各散列值进行加密,得到节点密文序列。
[0157]
可见,实施该可选的实施例,可以接收各参与方加密后的节点密文,实现了各参与方在不泄露本地真实节点数据的情况下,也可以为其提供社区划分的结果。
[0158]
在本公开的一种示例性实施例中,节点特征确定单元602根据各参与方的节点密文序列确定对应于各参与方的节点特征集合,包括:
[0159]
从节点并集的节点特征中选取对应于节点密文序列的节点特征,以组成节点特征集合;
[0160]
将节点特征集合发送至与节点密文序列对应的参与方,直到所有参与方接收到相应的节点特征集合为止。
[0161]
可见,实施该可选的实施例,可以对各参与方的节点进行整合,并提取整合结果中各节点的特征,并根据各参与方持有的节点将相应的特征发回参与方,以便各参与方在本地进行节点特征迭代,从而干扰实现不泄露真实数据前提下的联邦学习。
[0162]
在本公开的一种示例性实施例中,上述装置还包括:
[0163]
特征提取单元,用于根据节点并集生成用于表征所有节点密文序列中各节点出现频次的节点频次向量以及对应于各参与方的节点位置映射矩阵;其中,节点位置映射矩阵包括相应参与方的节点集合中各节点的向量表示;
[0164]
特征更新单元,用于若检测到已更新次数不满足预设条件,根据节点频次向量和各参与方的节点位置映射矩阵分别对各参与方反馈的节点特征再次更新;将再次更新的结果反馈至相应的参与方,直到已更新次数满足预设条件为止。
[0165]
可见,实施该可选的实施例,可以通过节点频次向量和节点位置映射矩阵实现特征在预设条件内的多次更新,实现多个参与方的特征聚合。
[0166]
在本公开的一种示例性实施例中,节点聚类单元604根据各参与方反馈的节点特征进行节点聚类,得到多个社区簇,包括:
[0167]
接收各参与方反馈的节点特征;
[0168]
对相同节点对应的更新后的不同节点特征进行融合处理,得到融合处理结果;
[0169]
根据融合处理结果和不同节点对应的更新后的节点特征进行节点聚类,得到多个社区簇。
[0170]
可见,实施该可选的实施例,可以在节点特征满足预设条件中的更新次数时,根据节点特征对各节点进行聚类,从而可以确定不同节点之间的关联性,提供更为丰富的对于节点关系的描述信息(即,社区划分结果)。
[0171]
在本公开的一种示例性实施例中,社区划分单元605根据多个社区簇生成对应于各参与方的社区划分结果,包括:
[0172]
根据多个社区簇确定各参与方的本地节点集合内每个节点的所属社区簇;
[0173]
根据每个节点的所属社区簇生成各参与方对应的社区划分结果。
[0174]
可见,实施该可选的实施例,可以基于联邦学习的结果为各参与方提供节点的社区划分结果,这样可以便于各参与方了解到本地各节点的所属社区,从而便于参与方对各个节点对应的用户数据进行更准确的归类。
[0175]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0176]
由于本公开的示例实施例的基于联邦学习的社区划分装置的各个功能模块与上述基于联邦学习的社区划分方法的示例实施例的步骤对应,因此对于本公开装置实施例中未披露的细节,请参照本公开上述的基于联邦学习的社区划分方法的实施例。
[0177]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0178]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献