社群发现方法、装置、电子设备和存储介质与流程

文档序号:29975080发布日期:2022-05-11 12:01阅读:64来源:国知局
社群发现方法、装置、电子设备和存储介质与流程

1.本公开涉及人工智能技术领域,具体为深度学习技术领域,尤其涉及社群发现方法、装置、电子设备和存储介质。


背景技术:

2.网络在我们的生活中无处不在,比如生物网络、社交网络、通信网络、知识图谱等。网络中的社群发现是一个广泛研究的问题,其目标是将网络中的节点分组,使得组内紧密连接,组间稀疏连接。社群发现对于理解复杂网络有重要的作用,同时具有广阔的应用场景,如市场营销细分,犯罪侦查,推荐系统等。
3.由于现实世界中的社群结构通常是以重叠的方式存在,即社群间有交叉,一个节点可能属于多个社群,因此解决重叠的社群发现问题,对于理解和分析真实的复杂网络具有重要意义。


技术实现要素:

4.本公开提供了一种社群发现方法、装置、电子设备和存储介质。
5.根据本公开的一方面,提供了一种社群发现方法,所述方法包括:获取待处理的图数据,其中,所述图数据中包括多个节点以及节点之间的连接边;根据所述图数据,从多个所述节点中确定查询节点,并对所述查询节点进行社群搜索,以确定所述查询节点所属的目标社群,其中,所述目标社群中包括所述查询节点,及多个所述节点中除所述查询节点外的至少一个其它节点;重复执行确定所述查询节点及对所述查询节点进行社群搜索的过程,直至各所述节点均已确定所属社群。
6.根据本公开的另一方面,提供了一种用于社群发现的模型训练方法,所述方法包括:获取训练图数据,所述训练图数据包括多个样本节点以及样本节点之间的连接边;将所述训练图数据输入初始社群搜索模型,以通过所述初始社群搜索模型,从多个所述样本节点中确定查询样本节点,并对所述查询样本节点进行社群搜索,以确定所述查询样本节点所属的样本社群,以及在社群搜索过程中,调整所述初始社群搜索模型的模型参数;其中,所述样本社群,包括所述查询样本节点,及多个所述样本节点中除所述查询样本节点外的至少一个其它样本节点;重复执行确定所述查询样本节点及调整所述模型参数的过程,直至各所述样本节点均已确定所属样本社群,得到用于社群发现的目标社群搜索模型。
7.根据本公开的另一方面,提供了一种社群发现装置,所述装置包括:第一获取模块,用于获取待处理的图数据,其中,所述图数据中包括多个节点以及节点之间的连接边;第一处理模块,用于根据所述图数据,从多个所述节点中确定查询节点,并对所述查询节点进行社群搜索,以确定所述查询节点所属的目标社群,其中,所述目标社群中包括所述查询节点,及多个所述节点中除所述查询节点外的至少一个其它节点;以及重复执行确定所述查询节点及对所述查询节点进行社群搜索的过程,直至各所述节点均已确定所属社群。
8.根据本公开的另一方面,提供了一种用于社群发现的模型训练装置,所述装置包
括:第二获取模块,用于获取训练图数据,所述训练图数据包括多个样本节点以及样本节点之间的连接边;第二处理模块,用于将所述训练图数据输入初始社群搜索模型,以通过所述初始社群搜索模型,从多个所述样本节点中确定查询样本节点,并对所述查询样本节点进行社群搜索,以确定所述查询样本节点所属的样本社群,以及在社群搜索过程中,调整所述初始社群搜索模型的模型参数;其中,所述样本社群,包括所述查询样本节点,及多个所述样本节点中除所述查询样本节点外的至少一个其它样本节点;以及重复执行确定所述查询样本节点及调整所述模型参数的过程,直至各所述样本节点均已确定所属样本社群,得到用于社群发现的目标社群搜索模型。
9.根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开的社群发现方法,或者执行本公开的用于社群发现的模型训练方法。
10.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开实施例公开的社群发现方法,或者执行本公开实施例公开的用于社群发现的模型训练方法。
11.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开的社群发现方法的步骤,或者实现本公开的用于社群发现的模型训练方法的步骤。
12.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
13.附图用于更好地理解本方案,不构成对本公开的限定。其中:
14.图1是根据本公开第一实施例的社群发现方法的流程示意图;
15.图2是根据本公开第二实施例的社群发现方法的流程示意图;
16.图3是根据本公开第三实施例的社群发现方法的流程示意图;
17.图4是根据本公开第四实施例的用于社群发现的模型训练方法的流程示意图;
18.图5是根据本公开第五实施例的用于社群发现的模型训练方法的流程示意图;
19.图6是根据本公开第六实施例的社群发现装置的结构示意图;
20.图7是根据本公开第七实施例的用于社群发现的模型训练装置的结构示意图;
21.图8是用来实现本公开实施例的社群发现方法或用于社群发现的模型训练方法的电子设备的框图。
具体实施方式
22.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
23.由于现实世界中的社群结构通常是以重叠的方式存在,即社群间有交叉,一个节
点可能属于多个社群,因此解决重叠的社群发现问题,对于理解和分析真实的复杂网络具有重要意义。
24.本公开提供一种社群发现方法和用于社群发现的模型训练方法,其中社群发现方法,通过获取待处理的图数据,其中,图数据中包括多个节点以及节点之间的连接边,根据图数据,从多个节点中确定查询节点,并对查询节点进行社群搜索,以确定查询节点所属的目标社群,其中,目标社群中包括查询节点,及多个节点中除查询节点外的至少一个其它节点,重复执行确定查询节点及对查询节点进行社群搜索的过程,直至各节点均已确定所属社群,由于在对查询节点进行社群搜索时,可以将已经确定过所属社群的节点加入到查询节点所属的目标社群中,从而各节点可以不仅属于一个社群,解决了重叠的社群发现问题。
25.本公开提供的社群发现方法、用于社群发现的模型训练方法、装置、电子设备、非瞬时计算机可读存储介质以及计算机程序产品,涉及人工智能技术领域,具体为深度学习技术领域。
26.其中,人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。
27.下面参考附图描述本公开实施例的社群发现方法、用于社群发现的模型训练方法、装置、电子设备、非瞬时计算机可读存储介质以及计算机程序产品。
28.图1是根据本公开第一实施例的社群发现方法的流程示意图。其中,需要说明的是,本实施的社群发现方法,执行主体为社群发现装置,该社群发现装置可以由软件和/或硬件实现,该社群发现装置可以配置在电子设备,该电子设备可以包括但不限于终端设备、服务器等,该实施例对电子设备不作具体限定。
29.如图1所示,该社群发现方法可以包括:
30.步骤101,获取待处理的图数据,其中,图数据中包括多个节点以及节点之间的连接边。
31.其中,图数据,可以是任意类型的网络的图数据,比如生物网络的图数据、社交网络的图数据、通信网络的图数据等,本公开对此不作限制。
32.举例来说,对于社交网络,可以将社交网络中的每个人作为一个节点,人的年龄、性别、居住地址等属性信息作为对应节点的属性信息,并将人与人之间的关系作为节点之间的连接边,从而获取到社交网络的图数据。
33.步骤102,根据图数据,从多个节点中确定查询节点,并对查询节点进行社群搜索,以确定查询节点所属的目标社群,其中,目标社群中包括查询节点,及多个节点中除查询节点外的至少一个其它节点。
34.其中,查询节点,为图数据包括的多个节点中,待进行社群搜索的节点。
35.对查询节点进行社群搜索,即从图数据包括的多个节点的除查询节点外的其它节点中,选择与查询节点连接紧密的节点加入查询节点所属社群,从而得到包括查询节点及至少一个其它节点的目标社群的过程。
36.本公开实施例中,根据图数据,从多个节点中确定一个查询节点后,即可对该查询
节点进行社群搜索,其中,对该查询节点进行社群搜索时,可以先将该查询节点加入一个初始状态为空集的社群,并从图数据包括的多个节点的除该查询节点外的其它节点中,选择至少一个与该查询节点连接紧密的节点加入该社群,以得到该查询节点所属的目标社群。需要说明的是,得到该查询节点所属的目标社群后,对于目标社群中的除该查询节点外的其它节点,也相当于确定了所属的社群为该目标社群。
37.步骤103,重复执行确定查询节点及对查询节点进行社群搜索的过程,直至各节点均已确定所属社群。
38.在本公开实施例中,确定查询节点所属的目标社群后,在图数据包括的各节点中存在未确定所属社群的节点时,可以重复执行步骤102的确定查询节点及对查询节点进行社群搜索的过程,直至各节点均已确定所属社群。
39.需要说明的是,本公开实施例中的查询节点,可以是图数据包括的多个节点中的任一节点,即本公开实施例中,可以对图数据包括的每个节点执行一次社群搜索的过程。
40.或者,查询节点也可以是图数据包括的多个节点中,未确定所属社群的任一节点,即本公开实施例中,确定某个查询节点所属的目标社群后,可以从图数据包括的多个节点中,除目标社群包括的各节点之外的其它节点中确定下一个查询节点,并对该下一个查询节点进行社群搜索,直至图数据中各节点均已确定所属社群。通过这种方式,无需对图数据包括的每个节点执行一次社群搜索的过程,从而可以减少社群发现的工作量,提高社群发现的效率。
41.举例来说,假设图数据中包括100个节点及节点之间的连接边。假设先将其中的节点v1作为查询节点进行社群搜索,确定了节点v1所属的社群a,其中,社群a中包括节点v1、节点v2、节点v3、节点v4、节点v5、节点v6,即这6个节点所属的社群均为社群a,则可以从100个节点中除这6个节点外的其它94个节点中,确定下一个查询节点。
42.假设下一个查询节点为节点v7,并确定了节点v7所属的社群b,其中,社群b中包括节点v7、节点v2、节点v3、节点v8、节点v9、节点v
10
、节点v
11
,即这7个节点所属的社群均为社群b,则可以从100个节点中除节点v1、节点v2、节点v3、节点v4、节点v5、节点v6、节点v7、节点v8、节点v9、节点v
10
、节点v
11
外的其它89个节点中,确定下一个查询节点,并对下一个查询节点进行社群搜索。
43.按照这种方式,在图数据包括的各节点中存在未确定所属社群的节点时,重复从未确定所属社群的节点中,确定下一个查询节点,并对下一个查询节点进行社群搜索,直至图数据包括的所有节点均已确定所属社群,即可得到图数据包括的各节点所属的社群。
44.本公开实施例中,由于对于每个查询节点,从图数据包括的所有节点的除查询节点外的其它节点中,选择与查询节点连接紧密的节点加入查询节点所属社群,而其它节点在此之前可能已经确定了所属社群,从而对于图数据中包括的每个节点,可以不仅属于一个社群,比如上述示例中,节点2、节点3均至少属于社群a和社群b,从而本公开实施例提供的社群发现方法,能够解决重叠的社群发现问题。
45.本公开实施例的社群发现方法,通过获取待处理的图数据,其中,图数据中包括多个节点以及节点之间的连接边根据图数据,从多个节点中确定查询节点,并对查询节点进行社群搜索,以确定查询节点所属的目标社群,其中,目标社群中包括查询节点,及多个节点中除查询节点外的至少一个其它节点;重复执行确定查询节点及对查询节点进行社群搜
索的过程,直至各节点均已确定所属社群,由于在对查询节点进行社群搜索时,可以将已经确定过所属社群的节点加入到查询节点所属的目标社群中,因此各节点可以不仅属于一个社群,从而解决了重叠的社群发现问题。
46.在本公开实施例的一种可能的实现形式中,可以通过端到端的社群搜索模型,确定图数据包括的各节点所属的社群。下面针对上述情况,结合图2,对本公开提供的社群发现方法进一步说明。
47.图2是根据本公开第二实施例的社群发现方法的流程示意图。如图2所示,社群发现方法,可以包括以下步骤:
48.步骤201,获取待处理的图数据,其中,图数据中包括多个节点以及节点之间的连接边。
49.其中,步骤201的具体实现过程及原理,可以参考上述实施例的描述,此处不再赘述。
50.步骤202,将图数据输入社群搜索模型。
51.其中,社群搜索模型,为预先训练好的端到端模型。其中,社群搜索模型的输入为图数据,输出可以为图数据中各节点所的社群的标识。
52.步骤203,通过社群搜索模型,从多个节点中确定查询节点,并对查询节点进行社群搜索,以确定查询节点所属的目标社群。
53.其中,目标社群中包括查询节点,及多个节点中除查询节点外的至少一个其它节点。
54.在本公开的实施例中,可以将图数据输入社群搜索模型,以通过社群搜索模型,从多个节点中确定查询节点,并对查询节点进行社群搜索,以确定查询节点所属的目标社群。
55.其中,查询节点,可以是图数据包括的多个节点中的任一节点;或者,查询节点也可以是图数据包括的多个节点中,未确定所属社群的任一节点;或者,查询节点也可以是图数据包括的多个节点中,未确定所属社群的节点中重要度最高的节点,本公开对此不作限制。
56.相应的,本公开实施例中,可以通过以下方式,从多个节点中确定查询节点:确定多个节点分别对应的重要度;从多个节点中,获取未确定所属社群的第一节点;将第一节点中对应的重要度最高的节点,作为查询节点。
57.其中,重要度,用于表示节点的重要程度。本公开实施例中,可以将中心度(centrality)、模块度(modularity)、聚类系数(clustering coefficient)等任意指标中的一个,作为节点的重要度。
58.其中,中心度,用来衡量网络中一个节点在整个网络中接近中心的程度;模块度,用来衡量一个社群的划分是否为相对比较好的结果;聚类系数为表示一个图网络中节点聚集程度的系数。
59.步骤204,判断各节点是否均已确定所属社群,若否,则执行步骤203,直至各节点均已确定所属社群,则执行步骤205。
60.步骤205,获取社群搜索模型输出的各节点所属社群。
61.举例来说,假设图数据中包括100个节点及节点之间的连接边。假设社群搜索模型先将其中的重要度最高的节点v1作为查询节点进行社群搜索,确定了节点v1所属的社群a,
其中,社群a中包括节点v1、节点v2、节点v3、节点v4、节点v5、节点v6,即这6个节点所属的社群均为社群a,则可以从100个节点中除这6个节点外的其它94个节点中,将重要度最高的节点作为下一个查询节点。
62.假设下一个查询节点为节点v8,社群搜索模型对节点v8进行社群搜索,确定了节点v8所属的社群c,其中,社群c中包括节点v7、节点v2、节点v3、节点v8、节点v9、节点v
10
,即这6个节点所属的社群均为社群c,则可以从100个节点中除节点v1、节点v2、节点v3、节点v4、节点v5、节点v6、节点v7、节点v8、节点v9、节点v
10
外的其它90个节点中,将重要度最高的节点作为下一个查询节点,并对下一个查询节点进行社群搜索。
63.按照这种方式,在图数据包括的各节点中存在未确定所属社群的节点时,社群搜索模型即可重复从未确定所属社群的第一节点中,确定重要度最高的节点为下一个查询节点,并对下一个查询节点进行社群搜索,直至图数据包括的所有节点均已确定所属社群,社群搜索模型即可输出图数据包括的各节点所属的社群。
64.通过确定多个节点分别对应的重要度,并从多个节点中,获取未确定所属社群的第一节点,并将第一节点中对应的重要度最高的节点作为查询节点,使得图数据包括的多个节点中,重要度高的节点可以被优先考虑,优先被分配社群。并且,由于与重要度高的节点紧密连接的节点通常较多,从而通过优先将重要度高的节点作为查询节点进行社群搜索,可以一次性为较多的节点确定所属社群,进而再从未确定所属社群的第一节点中确定查询节点,可以减少社群搜索的次数,从而可以减少社群发现的工作量,提高社群发现的效率。
65.本公开实施例的社群发现方法,通过获取待处理的图数据,其中,图数据中包括多个节点以及节点之间的连接边,将图数据输入社群搜索模型,通过社群搜索模型,从多个节点中确定查询节点,并对查询节点进行社群搜索,以确定查询节点所属的目标社群,判断各节点是否均已确定所属社群,若否,则重复执行确定查询节点及对查询节点进行社群搜索的过程,直至各节点均已确定所属社群,获取社群搜索模型输出的各节点所属社群,实现了采用端到端的社群搜索模型,确定图数据包括的多个节点所属的社群,相比通过将节点表征和社群搜索分开建模的两阶段模型,来实现社群发现,采用端到端的社群搜索模型进行社群发现,能够获得全局最优解,从而获取更准确的社群发现结果。且由于在对查询节点进行社群搜索时,可以将已经确定过所属社群的节点加入到查询节点所属的目标社群中,因此各节点可以不仅属于一个社群,从而解决了重叠的社群发现问题。
66.通过上述分析可知,本公开实施例中,可以采用端到端的社群搜索模型,从多个节点中确定查询节点,并对查询节点进行社群搜索,以确定查询节点所属的目标社群。在一种可能的实现形式中,社群搜索模型可以包括图神经网络和强化学习网络。下面结合图3,对本公开提供的社群发现方法中,采用图神经网络和强化学习网络,从多个节点中确定查询节点,并对查询节点进行社群搜索,以确定查询节点所属的目标社群的过程进一步说明。
67.图3是根据本公开第三实施例的社群发现方法的流程示意图。如图3所示,社群发现方法,可以包括以下步骤:
68.步骤301,获取待处理的图数据,其中,图数据中包括多个节点以及节点之间的连接边。
69.其中,步骤301的具体实现过程及原理,可以参考上述实施例的描述,此处不再赘
述。
70.步骤302,将图数据输入图神经网络,以获取多个节点分别对应的表达向量。
71.其中,图神经网络,可以是gcn(graph convolutional network,图卷积网络)、graphsage(归纳式图表示学习)、gat(graph attention network,图注意力网络)等任意图表征学习网络模型,本公开对此不作限制。本公开实施例以图神经网络为gcn网络为例进行说明。
72.在本公开实施例中,以g=(v,e)表示待进行社群发现的图网络的图数据。其中,v表示节点,e表示节点之间的连接边。其中,图数据中的节点数量用n表示,即n=|v|;a∈rn×n表示图网络的邻接矩阵。x∈rn×m表示输入特征矩阵,其中x的每一行是一个m维的向量,每一行表示一个节点的输入特征。令a
*
=a+in,其中in是单位矩阵,令d
*
表示度矩阵,度矩阵是对角矩阵,同时满足d
*ii
=σ
ja*ij

73.以一个两层的gcn网络为例,gcn网络的前向传播公式如公式(1)所示:
74.z=f(x,a)=a
*
relu(a
*
xw
(0)
)w
(1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
75.其中,激活函数为relu(rectified linear unit,线性整流函数),z为各节点的表达向量。w
(0)
和w
(1)
均为图神经网络的参数,可以在对图神经网络进行训练的过程中,通过反向传播和随机梯度下降算法更新得到。
76.本公开实施例中,可以根据图数据,得到输入特征矩阵x和邻接矩阵a,并基于a得到a
*
,进而将x和a
*
输入训练后的图神经网络,得到图数据中各节点的表达向量。
77.需要说明的是,本公开实施例中的图神经网络和强化学习网络,组成一个端到端的社群搜索模型,在对图神经网络和强化学习网络进行训练时,可以通过对图神经网络和强化学习网络联合训练,得到训练后的图神经网络和强化学习网络。
78.步骤303,将多个节点分别对应的表达向量输入强化学习网络。
79.步骤304,通过强化学习网络,从多个节点中确定查询节点,并对查询节点进行社群搜索,以确定查询节点所属的目标社群。
80.其中,目标社群中包括查询节点,及多个节点中除查询节点外的至少一个其它节点。
81.其中,强化学习网络,可以为任意能够通过强化学习方式训练的神经网络,本公开对此不作限制。
82.步骤305,判断各节点是否均已确定所属社群,若否,则执行步骤304,直至各节点均已确定所属社群,则执行步骤306。
83.步骤306,获取强化学习网络输出的各节点所属社群。
84.本公开实施例中,可以将多个节点分别对应的表达向量输入强化学习网络,以通过强化学习网络,从多个节点中确定查询节点,并对查询节点进行社群搜索,以确定查询节点所属的目标社群。其中,从多个节点中确定查询节点的过程,可以参考上述实施例,此处不再赘述。
85.以查询节点,为图数据包括的多个节点中,未确定所属社群的第一节点中的重要度最高的节点为例,在图数据中包括的各节点存在未确定所属社群的节点时,可以通过强化学习网络,重复从未确定所属社群的第一节点中,确定重要度最高的节点为下一个查询节点,并对下一个查询节点进行社群搜索,直至图数据包括的所有节点均已确定所属社群,
强化学习网络即可确定出图数据包括的各节点所属的社群。
86.通过将图神经网络和强化学习网络联合训练,进而利用训练后的图神经网络,获取图数据包括的多个节点分别对应的表达向量,利用强化学习网络,从多个节点中确定查询节点,并对查询节点进行社群搜索,以确定查询节点所属的目标社群,可以获得准确的节点的表达向量及社群搜索结果。
87.在本公开实施例中,利用强化学习网络,对查询节点进行社群搜索,以确定查询节点所属的目标社群的过程,可以通过以下方式实现:将查询节点加入第一社群;根据第一社群中包含的节点对应的表达向量及多个第一节点分别对应的表达向量,通过强化学习网络,确定多个第一节点分别加入第一社群后,第一社群的预测质量,其中,第一节点,为多个节点中,除第一社群包含节点之外的其它节点;将多个第一节点中的目标节点加入第一社群,以更新第一社群;其中,目标节点,为多个第一节点中,加入第一社群后使得第一社群的预测质量最高的第一节点;重复执行更新第一社群的过程,直至更新后的第一社群满足预设终止条件,并将结束更新时所得到的第一社群作为目标社群。
88.其中,第一社群,为一个初始状态为空集的社群。
89.预设终止条件,即终止对查询节点进行社群搜索的过程的条件,可以包括以下条件中的至少一个:更新后的第一社群中各节点的度至少为预设值、更新后的第一社群中包含的节点个数达到预设数量。
90.其中,节点的度,指与节点相关联的边的条数。预设值,可以根据需要设置。比如,预设值可以设置为3,即更新后的第一社群满足3-core(核心度)。
91.预设数量,可以根据经验设置,比如可以设置为10至20之间的整数。
92.可以理解的是,本公开实施例中,可以使用贪心策略,将社群搜索的过程,表示成节点不断加入的过程,即第一社群表示成一个有序序列s=(v1,v2,

,v
|s|
),其中,|s|表示有序序列中的节点数量。对查询节点进行社群搜索,确定查询节点所属目标社群的过程,即向有序序列中不断加入其它节点的一个序列化的过程,最终得到的序列即为目标社群。
93.另外,本公开实施例中,将节点添加到有序序列中以获得更新的有序序列后,更新的有序序列的质量可以由评估函数q估算。其中,评估函数q的参数,即为强化学习网络的模型参数,可以通过对强化学习网络进行训练得到。
94.其中,评估函数q可以如以下公式(2)所示:
95.q(s,v;θ)=θ1relu([θ2σ
u∈v’hu,θ3hv])
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0096]
其中,q(s,v;θ)表示预估的将节点v加入当前状态为s的第一社群(即第一社群s)以更新第一社群后,更新的第一社群的质量,本公开实施例中将该质量称为预测质量。其中,第一社群的状态,可以理解为第一社群中包括哪些节点,比如,第一社群s=(v1,v2,v3),表示第一社群的状态为s,s包括v1,v2,v3三个节点。θ={θ1,θ2,θ3}表示强化学习网络的模型参数,可以通过强化学习中的q-learning(一种无监督学习方法)训练得到。第一社群s由其包括的所有当前节点的表达向量求和表示,即通过σ
u∈v’hu表示第一社群s。其中,u表示节点;hu表示节点的表达向量;v’表示第一社群s中包括的所有当前节点的集合;hv表示向第一社群s中加入的节点的表达向量。relu表示激活函数。
[0097]
本公开实施例中,贪心策略,即每次从图数据包括的多个节点中,除第一社群包含节点之外的其它节点中,选择能使q(s,v;θ)最大化的节点v
*
加入第一社群s,并在将节点v
*
加入第一社群s后,得到更新后的第一社群。即,s=s+{v
*
},其中,v
*
=argmax
v∈s’q(s,v;θ)。其中s’={v\s},表示节点集合v中,除s包括节点之外的其它节点构成的节点集合。
[0098]
另外,由于社群的多样性,以及无法预估每个社群的规模和紧密程度,本公开实施例中定义两个预设终止条件,来规定社群搜索的终止状态,在更新后的第一社群满足两个预设终止条件中的至少一个时,即停止对查询节点的搜索过程,并将结束更新时得到的第一社群,作为对查询节点进行社群搜索得到的最终目标社群。
[0099]
举例来说,假设图数据中包括100个节点及节点之间的连接边。假设当前的查询节点为节点v1,可以先将节点v1加入第一社群得到第一社群s=(v1),再根据节点v1对应的表达向量、其它99个节点分别对应的表达向量,通过强化学习网络,确定其它99个节点分别加入第一社群s=(v1)后,得到的第一社群的预测质量。假设其它99个节点中,节点v2加入第一社群s=(v1)后得到的第一社群的预测质量最高,则可以将节点v2加入第一社群s=(v1),得到更新的第一社群s=(v1,v2)。
[0100]
进一步的,可以根据节点v1和节点v2对应的表达向量、其它98个节点分别对应的表达向量,通过强化学习网络,确定其它98个节点分别加入第一社群s=(v1,v2)后,得到的第一社群的预测质量。假设其它98个节点中,节点v3加入第一社群s=(v1,v2)后得到的第一社群的预测质量最高,则可以将节点v3加入第一社群s=(v1,v2),得到更新的第一社群s=(v1,v2,v3)。
[0101]
重复向第一社群s=(v1,v2,v3)中加入节点,以更新第一社群s=(v1,v2,v3),直至更新后的第一社群满足预设条件中的至少一个,则可以结束更新,并将结束更新时得到的第一社群作为查询节点v1所属的目标社群。
[0102]
通过采用上述向第一社群中不断加入其它节点的方式,对第一社群进行更新,实现了对查询节点的社群搜索,得到查询节点所属的目标社群,且这种社群搜索方式,适用于各种类型的网络,应用范围广。并且,通过在更新后的第一社群中各节点的度至少为预设值,和/或更新后的第一社群中包含的节点个数达到预设数量时,停止对第一社群的更新,并将结束更新时所得到的第一社群作为查询节点所属的目标社群,可以保证确定的查询节点所属的目标社群具有紧密的结构和规模上限制的特点。
[0103]
需要说明的是,本公开实施例中,如上述实施例所述,从多个节点中确定查询节点的过程,可以由强化学习网络执行;或者,在某些实施例中,社群搜索模型也可以包括一个其它网络,由该其它网络从多个节点中确定查询节点,并将确定的查询节点的表达向量输入强化学习网络,进而利用强化学习网络,对查询节点进行社群搜索,以确定查询节点所属的目标社群。
[0104]
本公开实施例的社群发现方法,通过获取待处理的图数据,其中,图数据中包括多个节点以及节点之间的连接边,将图数据输入图神经网络,以获取多个节点分别对应的表达向量,通过强化学习网络,从多个节点中确定查询节点,并对查询节点进行社群搜索,以确定查询节点所属的目标社群,判断各节点是否均已确定所属社群,若否,则重复执行确定查询节点及对查询节点进行社群搜索的过程,直至各节点均已确定所属社群,获取强化学习网络输出的各节点所属社群,由于在对查询节点进行社群搜索时,可以将已经确定过所属社群的节点加入到查询节点所属的目标社群中,因此各节点可以不仅属于一个社群,从而解决了重叠的社群发现问题。
[0105]
根据本公开的实施例,还提供一种用于社群发现的模型训练方法。图4是根据本公开第四实施例的用于社群发现的模型训练方法的流程示意图。
[0106]
其中,需要说明的是,本公开实施例提供的用于社群发现的模型训练方法,执行主体为用于社群发现的模型训练装置,以下简称模型训练装置。该模型训练装置可以由软件和/或硬件实现,该模型训练装置可以配置在电子设备,该电子设备可以包括但不限于终端设备、服务器等,该实施例对电子设备不作具体限定。
[0107]
如图4所示,用于社群发现的模型训练方法,可以包括以下步骤:
[0108]
步骤401,获取训练图数据,训练图数据包括多个样本节点以及样本节点之间的连接边。
[0109]
其中,训练图数据,可以是任意类型的网络的训练图数据,比如生物网络的训练图数据、社交网络的训练图数据、通信网络的训练图数据等,本公开对此不作限制。
[0110]
举例来说,对于社交网络,可以将社交网络中的每个人作为一个样本节点,人的年龄、性别、居住地址等属性信息作为对应样本节点的属性信息,并将人与人之间的关系作为样本节点之间的连接边,从而获取到社交网络的训练图数据。
[0111]
步骤402,将训练图数据输入初始社群搜索模型,以通过初始社群搜索模型,从多个样本节点中确定查询样本节点,并对查询样本节点进行社群搜索,以确定查询样本节点所属的样本社群,以及在社群搜索过程中,调整初始社群搜索模型的模型参数。
[0112]
其中,样本社群,包括查询样本节点,及多个样本节点中除查询样本节点外的至少一个其它样本节点。
[0113]
查询样本节点,为训练图数据包括的多个样本节点中,待进行社群搜索的样本节点。其中,查询样本节点,可以是训练图数据包括的多个样本节点中的任一样本节点;或者,查询样本节点也可以是训练图数据包括的多个样本节点中,未确定所属样本社群的任一样本节点;或者,查询样本节点也可以是训练图数据包括的多个样本节点中,未确定所属样本社群的样本节点中重要度最高的样本节点,本公开对此不作限制。其中,可以将中心度、模块度、聚类系数等任意指标中的一个,作为样本节点的重要度。
[0114]
初始社群搜索模型,为一个端到端模型。训练过程中,社群搜索模型的输入为训练图数据,输出可以为训练图数据中各样本节点所的样本社群的标识。
[0115]
对查询样本节点进行社群搜索,即从训练图数据包括的多个样本节点的除查询样本节点外的其它样本节点中,选择与查询样本节点连接紧密的样本节点加入查询样本节点所属样本社群,从而得到包括查询样本节点及至少一个其它样本节点的样本社群的过程。
[0116]
步骤403,重复执行确定查询样本节点及调整模型参数的过程,直至各样本节点均已确定所属样本社群,得到用于社群发现的目标社群搜索模型。
[0117]
本公开实施例中,将训练图数据输入初始社群搜索模型后,初始社群搜索模型即可从多个样本节点中确定一个查询样本节点,并对该查询样本节点进行社群搜索,其中,对该查询样本节点进行社群搜索时,可以先将该查询样本节点加入一个初始状态为空集的社群,并从训练图数据包括的多个样本节点的除该查询样本节点外的其它样本节点中,选择至少一个与该查询样本节点连接紧密的样本节点加入该社群,以得到该查询样本节点所属的样本社群。进一步的,可以确定样本社群的真实质量,并基于真实质量确定初始社群搜索模型的损失值,进而根据损失值调整初始社群搜索模型的模型参数,以使损失值最小化。
[0118]
其中,样本社群的真实质量,可以通过函数c(s,g)来衡量。其中,c(s,g)可以为社群的聚集系数,比如全局聚集系数c(global clustering coefficient),结构越紧密的社群的聚集系数越高。其中,c=3*三角形数量/(三元组数量)。初始社群搜索模型的损失值,比如可以根据1-c(s,g)确定。
[0119]
进一步的,可以通过参数调整后的初始社群搜索模型,从多个样本节点中确定另一个查询样本节点,并对该查询样本节点进行社群搜索,以得到该查询样本节点所属的样本社群,进而可以确定该样本社群的真实质量,并基于真实质量确定模型的损失值,进而根据损失值对参数调整后的初始社群搜索模型的模型参数再次调整。
[0120]
由此,通过重复执行确定查询样本节点及调整模型参数的过程,直至训练图数据中的各样本节点均已确定所属样本社群,即可完成模型的训练过程,得到目标社群搜索模型。
[0121]
需要说明的是,本公开实施例中的训练后的目标社群搜索模型,可以用于根据图数据,从多个节点中确定查询节点,并对查询节点进行社群搜索,以确定查询节点所属的目标社群。采用训练后的目标社群搜索模型执行上述步骤的过程,可以参数上述社群发现方法的实施例的说明,此处不再赘述。
[0122]
综上,本公开实施例提供的用于社群发现的模型训练方法,获取训练图数据,训练图数据包括多个样本节点以及样本节点之间的连接边,将训练图数据输入初始社群搜索模型,以通过初始社群搜索模型,从多个样本节点中确定查询样本节点,并对查询样本节点进行社群搜索,以确定查询样本节点所属的样本社群,以及在社群搜索过程中,调整初始社群搜索模型的模型参数,重复执行确定查询样本节点及调整模型参数的过程,直至各样本节点均已确定所属样本社群,得到用于社群发现的目标社群搜索模型,实现了基于训练图数据,对初始社群搜索模型进行训练,得到用于社群发现的目标社群搜索模型,利用训练后的社群搜索模型对图数据进行处理,能够实现确定图数据中各节点所属的社群,且由于训练过程中在对查询节点进行社群搜索时,可以将已经确定过所属样本社群的样本节点加入到查询样本节点所属的样本社群中,因此各样本节点可以不仅属于一个样本社群,从而利用训练后得到的社群搜索模型能够解决重叠的社群发现问题。
[0123]
在一种可能的实现形式中,初始社群搜索模型可以包括图神经网络和强化学习网络。下面结合图5,对本公开提供的用于社群发现的模型训练方法中,对图神经网络和强化学习网络进行训练的过程进一步说明。
[0124]
图5是根据本公开第五实施例的用于社群发现的模型训练方法的流程示意图。
[0125]
如图5所示,用于社群发现的模型训练方法,可以包括以下步骤:
[0126]
步骤501,获取训练图数据,训练图数据包括多个样本节点以及样本节点之间的连接边。
[0127]
其中,步骤501的具体实现过程及原理,可以参考上述实施例的描述,此处不再赘述。
[0128]
步骤502,将训练图数据输入图神经网络,以获取多个样本节点分别对应的表达向量。
[0129]
其中,图神经网络,可以是gcn、graphsage、gat等任意图表征学习网络模型,本公开对此不作限制。本公开实施例以图神经网络为gcn网络为例进行说明。
[0130]
步骤503,将多个样本节点分别对应的表达向量输入强化学习网络。
[0131]
步骤504,通过强化学习网络,从多个样本节点中确定查询样本节点,并对查询样本节点进行社群搜索,以确定查询样本节点所属的样本社群,以及在社群搜索过程中,调整图神经网络和强化学习网络的模型参数。
[0132]
其中,样本社群,包括查询样本节点,及多个样本节点中除查询样本节点外的至少一个其它样本节点。
[0133]
查询样本节点,为训练图数据包括的多个样本节点中,待进行社群搜索的样本节点。其中,查询样本节点,可以是训练图数据包括的多个样本节点中的任一样本节点;或者,查询样本节点也可以是训练图数据包括的多个样本节点中,未确定所属样本社群的任一样本节点;或者,查询样本节点也可以是训练图数据包括的多个样本节点中,未确定所属样本社群的样本节点中重要度最高的样本节点,本公开对此不作限制。其中,可以将中心度、模块度、聚类系数等任意指标中的一个,作为样本节点的重要度。
[0134]
步骤505,判断各样本节点是否均已确定所属样本社群,若否,则执行步骤502,直至各样本节点均已确定所属样本社群,则执行步骤506。
[0135]
步骤506,训练结束,得到用于社群发现的图神经网络和强化学习网络。
[0136]
其中,强化学习网络,可以为任意能够通过强化学习方式训练的神经网络,本公开对此不作限制。
[0137]
本公开实施例中,以一个两层的gcn网络为例,gcn网络的输入为根据图数据确定的输入特征矩阵x和邻接矩阵a,gcn网络的输出为各样本节点分别对应的表达向量。gcn网络的前向传播公式如上述实施例的公式(1)所示。其中,公式(1)中的w
(0)
和w
(1)
均为图神经网络的参数。
[0138]
本公开实施例中,可以对图神经网络与强化学习网络联合训练,在对图神经网络和强化学习网络联合训练时,可以将根据图数据确定的输入特征矩阵x和邻接矩阵a,输入图神经网络,以获取多个样本节点分别对应的表达向量,再将多个样本分别对应的表达向量输入强化学习网络,通过强化学习网络从多个样本节点中确定一个查询样本节点,并对该查询样本节点进行社群搜索,以得到该查询样本节点所属的样本社群。进一步的,可以确定样本社群的真实质量,并基于真实质量确定图神经网络和强化学习网络的损失值,进而根据损失值调整图神经网络和强化学习网络的模型参数,以使损失值最小化。
[0139]
其中,样本社群的真实质量,可以通过函数c(s,g)来衡量。其中,c(s,g)可以为社群的聚集系数,比如全局聚集系数c(global clustering coefficient),结构越紧密的社群的聚集系数越高。其中,c=3*三角形数量/(三元组数量)。图神经网络和强化学习网络的损失值,比如可以根据1-c(s,g)确定。
[0140]
进一步的,可以通过参数调整后的图神经网络,获取多个样本节点分别对应的表达向量,再将多个样本分别对应的表达向量,输入参数调整后的强化学习网络,通过强化学习网络从多个样本节点中,确定另一个查询样本节点,并对该查询样本节点进行社群搜索,以得到该查询样本节点所属的样本社群,进而可以确定该样本社群的真实质量,并基于真实质量确定图神经网络和强化学习网络的损失值,进而根据损失值对参数调整后的图神经网络和强化学习网络的模型参数再次调整。
[0141]
由此,通过重复执行获取多个样本节点分别对应的表达向量,并确定查询样本节
点及调整模型参数的过程,直至训练图数据中的各样本节点均已确定所属样本社群,即可完成模型的训练过程,得到训练后的图神经网络和强化学习网络。
[0142]
通过对图神经网络和强化学习网络联合训练,提高了训练速度,且使得利用训练后的图神经网络和强化学习网络进行社群发现时,能够获取更准确的社群发现结果。
[0143]
在本公开实施例中,参考上述实施例,可以使用贪心策略,将社群搜索的过程,表示成样本节点不断加入的过程,相应的,对查询样本节点进行社群搜索,确定查询样本节点所属样本社群的过程,可以理解为向有序序列中不断加入其它样本节点的一个序列化的过程,最终得到的序列即为查询样本节点所属的样本社群。
[0144]
可以理解的是,在本公开的实施例中,可以在对各查询样本节点进行社群搜索的过程中,每确定一个查询样本节点,并获取查询样本节点所属的样本社群后,根据样本社群的真实质量确定损失值,以对模型参数进行一次调整。
[0145]
或者,也可以在对每个查询样本节点进行社群搜索,获取样本社群的过程中,先将查询样本节点加入一个第一样本社群,再分多次向第一样本社群中加入样本节点,并在每次加入一个样本节点得到更新的第一样本社群后,根据更新的第一样本社群的真实质量,对模型参数进行一次调整。下面对本公开实施例中的这种模型训练方式进行说明。即,可以通过以下方式,调整图神经网络和强化学习网络的模型参数:
[0146]
获取第一样本社群的第一真实质量,其中,第一样本社群包括样本查询节点;
[0147]
根据第一样本社群中包含的样本节点对应的表达向量及第一目标样本节点对应的表达向量,通过强化学习网络,确定第一目标样本节点加入第一样本社群后,第一样本社群的第一预测质量;
[0148]
获取第二样本社群的第二真实质量,其中,第二样本社群至少包括样本查询节点及第一目标样本节点;
[0149]
根据第二样本社群中包含的样本节点对应的表达向量及第二目标样本节点对应的表达向量,通过强化学习网络,确定第二目标样本节点加入第二样本社群后,第二样本社群的第二预测质量;
[0150]
根据第一真实质量、第二真实质量、第一预测质量、第一预测质量,确定损失值;
[0151]
根据损失值对图神经网络和强化学习网络的模型参数进行调整。
[0152]
其中,第一样本社群,为一个初始状态为空集的样本社群。
[0153]
第一目标样本节点,为多个第一样本节点中,加入第一样本社群后使得第一样本社群的预测质量最高的第一样本节点;第一样本节点,为训练图数据包括的多个样本节点中,除第一样本社群包含样本节点之外的其它样本节点;第二目标样本节点,为多个第二样本节点中,加入第二样本社群后使得第二样本社群的预测质量最高的第二样本节点,第二样本节点,为训练图数据包括的多个样本节点中,除第二样本社群包含样本节点之外的其它样本节点。
[0154]
其中,第一样本社群的第一真实质量,及第二样本社群的第二真实质量,可以通过函数c(s,g)来衡量。其中,c(s,g)可以为社群的聚集系数,比如全局聚集系数c,结构越紧密的社群的聚集系数越高。
[0155]
本公开实施例中,将样本节点添加到有序序列中以获得更新的有序序列后,更新的有序序列的质量可以由评估函数q估算。其中,评估函数q的参数,即为强化学习网络的模
型参数,可以通过对强化学习网络进行训练得到。其中,评估函数q可以如上述实施例中的公式(2)所示。
[0156]
本公开实施例中,在通过图神经网络,获取多个样本节点分别对应的表达向量,并将多个样本节点分别对应的表达向量输入强化学习网络后,可以通过强化学习网络,从多个样本节点中确定查询样本节点,并对查询样本节点进行社群搜索。其中,在对查询样本节点进行社群搜索的过程中,可以先将查询样本节点加入一个初始状态为空集的第一样本社群中,得到包含查询样本节点的第一样本社群,并获取第一样本社群的第一真实质量。再通过模型参数为初始参数的强化学习网络,根据第一样本社群(包含查询样本节点)中包含的样本节点对应的表达向量、各第一样本节点分别对应的表达向量,确定各第一样本节点分别加入第一样本社群后,第一样本社群的预测质量,并将对应的预测质量最高的第一样本节点作为第一目标样本节点,相应的,将第一目标样本节点加入第一样本社群后,第一样本社群的预测质量,作为第一预测质量。
[0157]
进一步的,可以将第一目标样本节点加入第一样本社群,得到第二样本社群,并获取第二样本社群的第二真实质量。
[0158]
进一步的,可以通过模型参数为初始参数的强化学习网络,根据第二样本社群(包含查询样本节点及第一目标样本节点)中包含的样本节点对应的表达向量、各第二样本节点分别对应的表达向量,确定各第二样本节点分别加入第二样本社群后,第二样本社群的预测质量,并将对应的预测质量最高的第二样本节点作为第二目标样本节点,相应的,将第二目标样本节点加入第二样本社群后,第二样本社群的预测质量,作为第二预测质量。
[0159]
进一步的,可以根据第一真实质量、第二真实质量、第一预测质量、第二预测质量及预设的损失函数,确定损失值,进而根据损失值对图神经网络和强化学习网络的模型参数进行调整,以使损失值最小化。
[0160]
进一步的,可以将第二样本社群作为第一样本社群,将第二样本社群的第二真实质量作为第一样本社群的第一真实质量,利用模型参数调整后的图神经网络和强化学习网络,重复执行确定各样本节点分别对应的表达向量,及确定第一样本社群的第一预测质量、第二样本社群的第二真实质量及第二样本社群的第二预测质量的过程,并根据第一真实质量、第二真实质量、第一预测质量、第二预测质量及预设的损失函数,确定损失值,根据损失值,进一步对图神经网络和强化学习网络的模型参数进行调整。
[0161]
由此,通过重复多次向第一样本社群中加入第一目标样本节点,得到更新后的第二样本社群,并对图神经网络和强化学习网络的模型参数进行调整,直至更新后的第二样本社群满足预设终止条件,即可完成对该查询样本节点进行社群搜索的过程中的模型参数的调整。对于每个查询样本节点,均可以通过上述过程对模型参数进行调整,直至训练图数据中包括的各样本节点均已确定所属样本社群,即可结束训练,得到用于社群搜索的目标社群搜索模型。
[0162]
其中,预设终止条件,即终止对查询样本节点进行社群搜索的过程的条件,可以包括以下条件中的至少一个:第二样本社群中各样本节点的度至少为预设值、第二样本社群中包含的样本节点个数达到预设数量。其中,预设值可以根据需要设置,预设数量可以根据经验设置。
[0163]
其中,损失函数可以采用以下公式(3)所示的平方损失函数:
[0164]
(λmax
v2
q(s2,v2;θ)+r(s1,v1)-q(s1,v1;θ))2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0165]
其中,λ为超参数。s1表示第一样本社群的状态,s2表示第二样本社群的状态。q(s1,v1;θ)表示第一目标样本节点加入第一样本社群后,第一样本社群的第一预测质量。
[0166]
r(s1,v1)=c(s2,g)-c(s1,g)表示在状态s1的奖励函数,即在第一样本社群中加入第一目标样本节点v1的奖励,即瞬时奖励。c(s2,g)表示第二样本社群的第二真实质量;c(s1,g)表示第一样本社群的第一真实质量。
[0167]
λmax
v2
q(s2,v2;θ)为考虑到达s2状态后,加入第二目标样本节点能得到的最大奖励。其中,max
v2
q(s2,v2;θ)表示第二目标样本节点加入第二样本社群后,第二样本社群的第二预测质量。
[0168]
可以理解的是,公式(3)中的前两项分别考虑了在第一样本社群的当前状态下,加入第一目标样本节点的瞬时奖励,和加入第一目标样本节点得到第二样本社群后,加入第二目标样本节点能获得的未来的奖励。通过采用上述方式确定模型损失值,并根据损失值对图神经网络和强化学习网络的模型参数进行调整,能够实现对图神经网络和强化学习网络的联合训练,且通过考虑在第一样本社群的当前状态下,加入第一目标样本节点的瞬时奖励,和加入第一目标样本节点得到第二样本社群后,加入第二目标样本节点能获得的未来的奖励,对图神经网络和强化学习网络进行训练,使得训练后的图神经网络和强化学习网络,能够在对查询节点进行社群搜索的过程中,找到更好的节点加入查询节点所属的目标社群中,从而提高社群发现结果的准确性。
[0169]
综上,本公开实施例提供的用于社群发现的模型训练方法,获取训练图数据,训练图数据包括多个样本节点以及样本节点之间的连接边,将训练图数据输入图神经网络,以获取多个样本节点分别对应的表达向量,将多个样本节点分别对应的表达向量输入强化学习网络,通过强化学习网络,从多个样本节点中确定查询样本节点,并对查询样本节点进行社群搜索,以确定查询样本节点所属的样本社群,以及在社群搜索过程中,调整图神经网络和强化学习网络的模型参数,重复执行确定各样本节点分别对应的表达向量,并确定查询样本节点及调整模型参数的过程,直至各样本节点均已确定所属样本社群,得到用于社群发现的图神经网络和强化学习网络,实现了基于训练图数据,对图神经网络和强化学习网络进行联合训练,得到用于社群发现的图神经网络和强化学习网络,利用训练后的图神经网络和强化学习网络对图数据进行处理,能够实现确定图数据中各节点所属的社群,且由于训练过程中在对查询节点进行社群搜索时,可以将已经确定过所属样本社群的样本节点加入到查询样本节点所属的样本社群中,因此各样本节点可以不仅属于一个样本社群,从而利用训练后得到的社群搜索模型能够解决重叠的社群发现问题。
[0170]
下面结合图6,对本公开提供的社群发现装置进行说明。
[0171]
图6是根据本公开第六实施例的社群发现装置的结构示意图。
[0172]
如图6所示,本公开提供的社群发现装置600,包括:第一获取模块601以及第一处理模块602。
[0173]
其中,第一获取模块601,用于获取待处理的图数据,其中,图数据中包括多个节点以及节点之间的连接边;
[0174]
第一处理模块602,用于根据图数据,从多个节点中确定查询节点,并对查询节点进行社群搜索,以确定查询节点所属的目标社群,其中,目标社群中包括查询节点,及多个
节点中除查询节点外的至少一个其它节点;以及重复执行确定查询节点及对查询节点进行社群搜索的过程,直至各节点均已确定所属社群。
[0175]
需要说明的是,本实施例提供的社群发现装置600,可以执行前述实施例的社群发现方法。其中,社群发现装置600可以由软件和/或硬件实现,该社群发现装置600可以配置在电子设备,该电子设备可以包括但不限于终端设备、服务器等,该实施例对电子设备不作具体限定。
[0176]
作为本公开实施例的一种可能的实现方式,第一处理模块602,包括:
[0177]
确定子模块,用于确定多个节点分别对应的重要度;
[0178]
第一获取子模块,用于从多个节点中,获取未确定所属社群的第一节点;
[0179]
第一处理子模块,用于将第一节点中对应的重要度最高的节点,作为查询节点。
[0180]
作为本公开实施例的另一种可能的实现方式,第一处理模块602,包括:
[0181]
第二处理子模块,用于将图数据输入社群搜索模型,以通过社群搜索模型,从多个节点中确定查询节点,并对查询节点进行社群搜索,以确定查询节点所属的目标社群。
[0182]
作为本公开实施例的另一种可能的实现方式,社群搜索模型包括图神经网络和强化学习网络;第二处理子模块,包括:
[0183]
第一获取单元,用于将图数据输入图神经网络,以获取多个节点分别对应的表达向量;
[0184]
处理单元,用于将多个节点分别对应的表达向量输入强化学习网络,以通过强化学习网络,从多个节点中确定查询节点,并对查询节点进行社群搜索,以确定查询节点所属的目标社群。
[0185]
作为本公开实施例的另一种可能的实现方式,处理单元,包括:
[0186]
添加子单元,用于将查询节点加入第一社群;
[0187]
确定子单元,用于根据第一社群中包含的节点对应的表达向量及多个第一节点分别对应的表达向量,通过强化学习网络,确定多个第一节点分别加入第一社群后,第一社群的预测质量,其中,第一节点,为多个节点中,除第一社群包含节点之外的其它节点;
[0188]
更新子单元,用于将多个第一节点中的目标节点加入第一社群,以更新第一社群;其中,目标节点,为多个第一节点中,加入第一社群后使得第一社群的预测质量最高的第一节点;以及重复执行更新第一社群的过程,直至更新后的第一社群满足预设终止条件,并将结束更新时所得到的第一社群作为目标社群。
[0189]
作为本公开实施例的另一种可能的实现方式,预设终止条件,包括以下条件中的至少一个:更新后的第一社群中各节点的度至少为预设值、更新后的第一社群中包含的节点个数达到预设数量。
[0190]
需要说明的是,前述对于社群发现方法的实施例的说明,也适用于本公开提供的社群发现装置,此处不再赘述。
[0191]
本公开实施例提供的社群发现装置,通过获取待处理的图数据,其中,图数据中包括多个节点以及节点之间的连接边根据图数据,从多个节点中确定查询节点,并对查询节点进行社群搜索,以确定查询节点所属的目标社群,其中,目标社群中包括查询节点,及多个节点中除查询节点外的至少一个其它节点;重复执行确定查询节点及对查询节点进行社群搜索的过程,直至各节点均已确定所属社群,由于在对查询节点进行社群搜索时,可以将
已经确定过所属社群的节点加入到查询节点所属的目标社群中,因此各节点可以不仅属于一个社群,从而解决了重叠的社群发现问题。
[0192]
根据本公开的实施例,还提供一种用于社群发现的模型训练装置。下面结合图7,对本公开提供的用于社群发现的模型训练装置进行说明。
[0193]
图7是根据本公开第七实施例的用于社群发现的模型训练装置的结构示意图。
[0194]
如图7所示,本公开提供的用于社群发现的模型训练装置700,包括:第二获取模块701以及第二处理模块702。
[0195]
其中,第二获取模块701,用于获取训练图数据,训练图数据包括多个样本节点以及样本节点之间的连接边;
[0196]
第二处理模块702,用于将训练图数据输入初始社群搜索模型,以通过初始社群搜索模型,从多个样本节点中确定查询样本节点,并对查询样本节点进行社群搜索,以确定查询样本节点所属的样本社群,以及在社群搜索过程中,调整初始社群搜索模型的模型参数;其中,样本社群,包括查询样本节点,及多个样本节点中除查询样本节点外的至少一个其它样本节点;以及重复执行确定查询样本节点及调整模型参数的过程,直至各样本节点均已确定所属样本社群,得到用于社群发现的目标社群搜索模型。
[0197]
需要说明的是,本实施例提供的用于社群发现的模型训练装置700,简称模型训练装置,可以执行前述实施例的用于社群发现的模型训练方法。其中,模型训练装置可以由软件和/或硬件实现,该模型训练装置可以配置在电子设备,该电子设备可以包括但不限于终端设备、服务器等,该实施例对电子设备不作具体限定。
[0198]
作为本公开实施例的一种可能的实现方式,初始社群搜索模型包括图神经网络和强化学习网络;第二处理模块702,包括:
[0199]
第二获取子模块,用于将训练图数据输入图神经网络,以获取多个样本节点分别对应的表达向量;
[0200]
第三处理子模块,用于将多个样本节点分别对应的表达向量输入强化学习网络,以通过强化学习网络,从多个样本节点中确定查询样本节点,并对查询样本节点进行社群搜索,以确定查询样本节点所属的样本社群,以及在社群搜索过程中,调整图神经网络和强化学习网络的模型参数。
[0201]
作为本公开实施例的另一种可能的实现方式,第三处理子模块,包括:
[0202]
第二获取单元,用于获取第一样本社群的第一真实质量,其中,第一样本社群包括样本查询节点;
[0203]
第二确定单元,用于根据第一样本社群中包含的样本节点对应的表达向量及第一目标样本节点对应的表达向量,通过强化学习网络,确定第一目标样本节点加入第一样本社群后,第一样本社群的第一预测质量;第一目标样本节点,为多个第一样本节点中,加入第一样本社群后使得第一样本社群的预测质量最高的第一样本节点;第一样本节点,为多个样本节点中,除第一样本社群包含样本节点之外的其它样本节点;
[0204]
第三获取单元,用于获取第二样本社群的第二真实质量,其中,第二样本社群至少包括样本查询节点及第一目标样本节点;
[0205]
第三确定单元,用于根据第二样本社群中包含的样本节点对应的表达向量及第二目标样本节点对应的表达向量,通过强化学习网络,确定第二目标样本节点加入第二样本
社群后,第二样本社群的第二预测质量;其中,第二目标样本节点,为多个第二样本节点中,加入第二样本社群后使得第二样本社群的预测质量最高的第二样本节点,第二样本节点,为多个样本节点中,除第二样本社群包含样本节点之外的其它样本节点;
[0206]
第四确定单元,用于根据第一真实质量、第二真实质量、第一预测质量、第一预测质量,确定损失值;
[0207]
调整单元,用于根据损失值对图神经网络和强化学习网络的模型参数进行调整。
[0208]
需要说明的是,前述对于用于社群发现的模型训练方法的实施例的说明,也适用于本公开提供的用于社群发现的模型训练装置,此处不再赘述。
[0209]
本公开实施例提供的用于社群发现的模型训练装置,获取训练图数据,训练图数据包括多个样本节点以及样本节点之间的连接边,将训练图数据输入初始社群搜索模型,以通过初始社群搜索模型,从多个样本节点中确定查询样本节点,并对查询样本节点进行社群搜索,以确定查询样本节点所属的样本社群,以及在社群搜索过程中,调整初始社群搜索模型的模型参数,重复执行确定查询样本节点及调整模型参数的过程,直至各样本节点均已确定所属样本社群,得到用于社群发现的目标社群搜索模型,实现了基于训练图数据,对初始社群搜索模型进行训练,得到用于社群发现的目标社群搜索模型,利用训练后的社群搜索模型对图数据进行处理,能够实现确定图数据中各节点所属的社群,且由于训练过程中在对查询节点进行社群搜索时,可以将已经确定过所属样本社群的样本节点加入到查询样本节点所属的样本社群中,因此各样本节点可以不仅属于一个样本社群,从而利用训练后得到的社群搜索模型能够解决重叠的社群发现问题。
[0210]
基于上述实施例,本公开还提供一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开的社群发现方法,或者执行本公开的用于社群发现的模型训练方法。
[0211]
基于上述实施例,本公开还提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开实施例公开的社群发现方法,或者执行本公开实施例公开的用于社群发现的模型训练方法。
[0212]
基于上述实施例,本公开还提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开的社群发现方法的步骤,或者实现本公开的用于社群发现的模型训练方法的步骤。
[0213]
根据本公开的实施例,本公开还提供了一种电子设备和一种可读存储介质和一种计算机程序产品。
[0214]
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0215]
如图8所示,该电子设备800可以包括计算单元801,其可以根据存储在只读存储器(rom)802中的计算机程序或者从存储单元808加载到随机访问存储器(ram)803中的计算机
程序,来执行各种适当的动作和处理。在ram 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、rom 802以及ram 803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。
[0216]
设备800中的多个部件连接至i/o接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0217]
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如社群发现方法或用于社群发现的模型训练方法。例如,在一些实施例中,社群发现方法或用于社群发现的模型训练方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由rom 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到ram 803并由计算单元801执行时,可以执行上文描述的社群发现方法或用于社群发现的模型训练方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行社群发现方法或用于社群发现的模型训练方法。
[0218]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0219]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0220]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0221]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0222]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、互联网和区块链网络。
[0223]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务("virtual private server",或简称"vps")中,存在的管理难度大,业务扩展性弱的缺陷。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0224]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0225]
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1