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

一种基于节点簇的社交网络的社区划分方法与流程

2021-12-04 01:57:00 来源:中国专利 TAG:


1.本发明涉及计算机在线社交网络技术领域,尤其涉及的是一种基于节点簇的社交网络的社区划分方法。


背景技术:

2.近几年来,随着facebook、twitter和新浪微博为代表的社交网络服务的蓬勃发展,在线社交网络的研究已经成为非常具有挑战性和前景性的研究领域,而在线社交网络的社区发现是社交网络分析的重要内容。研究社交网络的社区结构有助于理解网络拓扑结构特点,发现用户聚集模式及影响因素,揭示复杂网络的内在功能特性,理解社区内部个体之间的关系、行为及变化趋势,推动社交网络上信息传播、信息推荐、公共安全事件的管控等诸多应用的发展。
3.社交网络中存在关系不均匀的现象,有些个体之间相互联系稠密,有些相互联系稀疏,形成了社交网络中的社区机构,网络节点是实际社会中的人在虚拟网络上的映射,而网络的连边表示了网络用户之间的交流和通信。由于社交网络可以看成网络拓扑结构中具有高内聚特点的若干节点集合,社区结构可以定义为复杂网络节点集合的若干子集,处于每个子集内部的节点之间相互连接相对非常稠密,而处于不同子集节点之间的连边相对稀疏。如图1所示。
4.为了衡量社区结构的优劣,mark newman等人根据网络实际拓扑结构与随机网络拓扑结构之间的差异,通过模拟方差定义提出了模块度的定义。模块度指标借助网络拓扑结构的全局信息来衡量社区机构划分的好坏。另外,还可以从基于节点相似度衡量社区,假定社区内部的节点都是相似的,社区间的节点相似性低,根据节点之间的相似性划分社区机构。
5.从本质内涵来看,在线社交网络中的社区发现是将网络节点按照内部的拓扑结构连接紧密程度划分子图的过程,故在计算机科学领域,借助图论等数学工具,把图中节点连接紧密集合的发现问题描述为图分割问题,出现了代表性的基于贪婪优化策略的算法和谱平分法。21世纪以来,随着复杂网络的发展,网络社区发现获得各领域专家的重视,一个新的分裂算法gn算法拉开了社区发现发展的序幕,在算法中,模块度概念的提出作为衡量网络社区发现的重要指标为更好的发现社区提供了依据。此后,许多学者将模块度作为目标函数,提出了基于优化理论的社区发现算法。石川等学者提出了基于多目标优化的社区发现算法,利用遗传算法结合多目标函数刻画社区机构特征实现了社区的划分。gergely palla等利用派系和团的概念讨论社区发现问题,侧重网络中的重叠社区和社区边界的节点。infomap算法借助信息论的数据编码,把网络拓扑结构转化为编码的构造从而发现社区。还有基于概率模型的社区机构发现算法,通过分析最大化似然概率实现社区机构的划分。上述算法时间复杂度相对较高,更多侧重社区机构的精确度,较适合规模较小的社交网络中的社区发现。在规模较大的社交网络中,由于节点信息种类繁多,很多学者希望研究出具有较高准确度同时也要具有较低时间复杂度的社区发现算法,于是从不同的角度出发提
出了一些新的社区发现算法。
6.根据算法机制不同,社区发现算法可以分为动态计算和静态计算两类算法。
7.静态计算的算法设计思想是,在计算的每一个步骤中,都要分析到网格中的所有节点,判断是否是最后的划分结果的标准是计算所有节点的具体划分组合能否满足全局优化目标。动态计算的算法设计思想是,从局部的节点开始,按照特定的规则更新该节点的状态,然后逐步推导出其他节点的最终的全局划分结果。


技术实现要素:

8.本发明所要解决的技术问题是针对现有技术的不足提供一种基于节点簇的社交网络的社区划分方法。
9.本发明的技术方案如下:
10.一种基于节点簇的社交网络的社区划分方法,包括以下步骤:
11.proc1:
12.step1:初始化各个节点为独立的节点簇,并设定其状态为默认状态;
13.step2:计算各个节点簇之间的相似度,根据相似度记录每个节点簇的最相似节点簇;所述节点簇包括至少一个节点;所述节点簇的最相似节点簇为与所述节点簇的相似度大于预设值的节点簇中与所述节点簇的相似度最高的节点簇;
14.step3:对每一个节点簇执行proc2;
15.step4:如果每一个节点簇的状态为封闭状态,则结束并将此时所述社交网络中的各节点簇分别设置为所述社交网络中的社区,否则执行step2;
16.proc2:
17.step5:如果该节点簇的状态为封闭状态,则结束;
18.step6:如果该节点簇的状态为跟随状态,则结束;
19.step7:如果该节点簇的最相似节点簇为c,同时c的最相似节点簇也为该节点簇,则该节点簇和节点簇c互为最相似节点簇,则该节点簇合并c,并依次查找本节点簇和节点簇c的跟随链表,将跟随链表上的所有节点簇一起合并后,判断封闭条件,如果条件成立,则更新为封闭状态,否则更新为默认状态;所述封闭条件为节点簇的簇内平均连接密度大于簇间平均连接密度;
20.step8:如果该节点簇的最相似节点簇为c,但c的最相似节点簇不为该节点簇,即该节点簇与节点簇为c非互为最相似,则该节点簇变为跟随状态,并将其加入c的跟随链表。
21.所述的社区划分方法,复杂网络中包括节点、节点簇和社区三种基本实体,这三者是递进的关系;节点即复杂网络中最为原始的节点;节点簇是由规模较小的相似节点簇合并所构成的实体;由节点合并构成节点簇,再由节点簇构成社区,社区就是当节点簇相互之间不能再进行合并之后的最终节点簇。
22.所述的社区划分方法,节点簇的状态是指节点簇与其他节点簇之间如何互动的描述,包含四种状态:a.默认状态、b.封闭状态、c.跟随状态、d.扩张状态;当一个单节点簇刚初始化时,为默认状态,当一个节点簇发生完扩张之后其状态恢复为默认状态;封闭状态表示节点簇内部连接相对紧密,不会再跟随其他节点簇,或者合并其他节点簇,此时的节点簇已经是最终的社区。
23.所述的社区划分方法,相似度用来描述节点簇之间的相似程度,其衡量方式是考察两个节点簇相同的邻居节点在两个节点簇所有的邻居节点中所占的比例;公式如式1

1所示:
24.s=(n
i
∩n
j
)/(n
i
∪n
j
)
ꢀꢀ
(1

1)
25.其中,n
i
为节点簇i的邻居节点集合。
26.所述的社区划分方法,簇内平均连接密度实际上是簇内各个节点在簇内进行的连接数占其所有连接数的比例的均值;公式如式1

2所示:
[0027][0028]
其中,c
ii
为节点i在节点簇内的连接数,c
i2
为节点i的所有连接数,n为节点簇的节点集合所含节点总数。
[0029]
所述的社区划分方法,簇间平均连接密度是指各个节点簇的簇内平均连接密度的均值;公式如式1

3所示:
[0030][0031]
其中,ρ
i
为第i个节点簇的簇内平均连接密度,m为当前节点簇的总数。
[0032]
所述的社区划分方法,采用模块度作为社区划分质量指标,模块度的定义如下式1

4所示:
[0033][0034]
a
ij
表示i节点和j节点是否相邻,如果相邻,a
ji
=1,否则a
ij
=0;在对应的网络中,一条边(i,j)存在的概率为m为总连接数,k
i
表示节点i的度,δ(c
i
,c
j
)为一个二值函数,当i节点和j节点同属一个社区时,其值为1,否则其值为0。
[0035]
本发明提出了基于节点簇的递归合并社区发现算法,先计算社交网络中各节点簇之间的相似度,得到各节点簇的最相似节点簇;然后根据各节点簇与各节点簇的最相似节点簇之间的相似关系、各节点簇的状态及节点簇封闭条件更新社交网络中的节点簇的属性,即更新节点簇的状态和节点簇的节点集合,当社交网络中的所有节点簇均为封闭状态时,将此时社交网络中各节点簇分别设置为社交网络中的社区。由于节点簇是由至少一个节点构成,社区又是由节点簇构成,将复杂网络抽象为节点、节点簇、社区,简化了社区发现的过程,相较于现有的社区发现算法,更适用于大型复杂网络、时间复杂度低,经过实践对比,本技术的社区发现方法的准确性更高。
[0036]
应用本发明的方法和目前典型的标签传播算法和元胞机学习算法进行了比较。标签传播算法通过已经标记节点的标签信息来预测未标记节点的标签信息,基于元胞机的算法从多个侧面刻画社区的结构特征,两者是通过优化模块系数来获得社区划分结果。而基于节点簇的递归合并社区发现算法,通过判断节点簇是否满足预设的合并条件逐步合并已有节点簇,达到快速的划分社区。对比在常见的zachary网络、海豚网络、美国football俱乐
部网络上的实验结果,节点簇聚合算法得到的社区划分比标签传播算法和元胞机学习算法更稳定快速,而且在三个数据集上都取得了最高的模块度值,由此可见,应用节点簇聚合算法进行社区划分比其他两种算法更有效。
附图说明
[0037]
图1为简单的社交网络;
[0038]
图2为节点簇的社区机构;
[0039]
图3为football节点簇的社区机构;
[0040]
图4为club网络的社区机构;
[0041]
图5为dolphins网络的社区机构;
[0042]
图6为football网络不同算法比较;
[0043]
图7为空手道俱乐部网络不同算法比较;
[0044]
图8为海豚网络不同算法比较;
具体实施方式
[0045]
以下结合具体实施例,对本发明进行详细说明。
[0046]
实施例1
[0047]
基于节点簇的递归合并社区发现算法
[0048]
社交网络中存在着一种组织特征,如人人网同一公司的员工所组成的社交网络可以按照不同的部门组成虚拟社区网络,每个部门的虚拟社区又可以按照不同的项目组划分为多个子社区机构。从物理意义上分析,这些社区机构代表了复杂系统或者说是复杂网络中拥有相同或者相似功能的元素的集合,这些元素相互作用或者相互协作,共同组成整个系统中相对独立的组织结构或者共同完成系统相对独立的功能。这些对于整个网络拓扑结构特征的理解以及网络各组织模块功能的挖掘具有重要意义。针对此问题,很多学者提出了基于节点的相似度的虚拟社区的发现算法,如基于相似度的聚合算法,其中eagle算法采用聚类框架,通过最大派系查找技术发现所有的最大派系,将最大的子社区合并;还有利用基于余弦公式的向量相似度公式,把每个网络节点看成具有一个节点的社区机构,通过局部最强边的概念查找局部范围中连接紧密的节点加以合并,合并后的社区再看作一个虚拟节点,参与后续合并过程。上述算法复杂度都相对高,且不是很稳定。
[0049]
如图2所示,本发明是着重对复杂网络中节点、节点簇、连接关系进行抽象建模,提出三种基本实体:一是节点,即复杂网络中最为原始的节点;二是节点簇,节点簇是由规模较小的相似节点簇合并所构成的实体;三是社区。这三者是递进的关系,由节点合并构成节点簇,再由节点簇构成社区,社区就是当节点簇相互之间不能再进行合并之后的最终节点簇。
[0050]
最小规模的节点簇为单个节点,由于节点可以看成是由单个节点构成的节点簇,故不单独考虑节点间的或者节点和节点簇的关系,仅考虑节点簇的关系即可。
[0051]
节点簇的属性和参数
[0052]
节点簇的主要属性包括:节点簇的状态、节点簇的邻居节点集合、节点簇的节点集合这三部分。节点簇的状态主要是指节点簇与其他节点簇之间如何互动的描述,它包含四
种状态:a.默认状态、b.封闭状态、c.跟随状态、d.扩张状态。当一个单节点簇刚初始化时,为默认状态,当一个节点簇发生完扩张之后其状态恢复为默认状态。封闭状态表示节点簇内部连接相对紧密,不会再跟随其他节点簇,或者合并其他节点簇,此时的节点簇已经是最终的社区了。当前节点为默认状态时,如果找到最为相似的其他节点簇c,而节点簇c的最相似节点簇不是当前节点簇,则当前节点簇为跟随状态,不再合并其他节点簇,只是在c节点簇发生合并时,一起并入c的跟随链表,或者在c跟随其他节点簇后,当c被合并时,跟随c一起被合并。当节点簇为默认状态,且其与节点簇c互为最相似节点簇,则转换为扩张状态,就会把c合并进来。
[0053]
节点簇的指标参数包括:相似度、簇内平均连接密度、簇间平均连接密度。
[0054]
相似度用来描述节点簇之间的相似程度,其衡量方式是考察两个节点簇相同的邻居节点在两个节点簇所有的邻居节点中所占的比例。公式如式1

1所示:
[0055]
s=(n
i
∩n
j
)/(n
i
∪n
j
)
ꢀꢀ
(1

1)
[0056]
其中,n
i
为节点簇i的邻居节点集合。
[0057]
簇内平均连接密度实际上是簇内各个节点在簇内进行的连接数占其所有连接数的比例的均值。公式如式1

2所示:
[0058][0059]
其中,c
ii
为节点i在节点簇内的连接数,c
i2
为节点i的所有连接数,n为节点簇的节点集合所含节点总数。
[0060]
簇间平均连接密度是指各个节点簇的簇内平均连接密度的均值。公式如式1

3所示:
[0061][0062]
其中,ρ
i
为第i个节点簇的簇内平均连接密度,m为当前节点簇的总数。
[0063]
社区划分质量指标
[0064]
模块度,最早由mark newman(马克
·
纽曼)提出,是当前常用的一种衡量网络社区机构强度的方法,是通过比较现有网络与基准网络在相同社区划分情况下所计算的连接密度差来评价网络社区划分的优劣。模块度值的大小主要取决于网络中节点的社区划分,其值越接近1,其社区划分质量越高。
[0065]
模块度的定义如下式1

4所示:
[0066][0067]
a
ij
表示i节点和j节点是否相邻,如果相邻,a
ji
=1,否则a
ij
=0。在对应的网络中,一条边(i,j)存在的概率为m为总连接数,k
i
表示节点i的度,在前面已有表述。δ(c
i
,c
j
)为一个二值函数,当i节点和j节点同属一个社区时,其值为1,否则其值为0。
[0068]
该公式的意义为,网络中同一社区内部的边的比例与在同样社区机构下基准网络内部边的比例的期望值之差。如果模块度值越高,那么复杂网络中社区划分效果越好。
[0069]
流程描述
[0070]
proc1:
[0071]
step1:初始化各个节点为独立的节点簇,并设定其状态为默认状态。
[0072]
step2:计算各个节点簇之间的相似度,根据相似度记录每个节点簇的最相似节点簇;所述节点簇包括至少一个节点;所述节点簇的最相似节点簇为与所述节点簇的相似度大于预设值的节点簇中与所述节点簇的相似度最高的节点簇;。
[0073]
step3:对每一个节点簇执行proc2。
[0074]
step4:如果每一个节点簇的状态为封闭状态,则结束并将此时所述社交网络中的各节点簇分别设置为所述社交网络中的社区,否则执行step2。
[0075]
proc2:
[0076]
step5:如果该节点簇的状态为封闭状态,则结束。
[0077]
step6:如果该节点簇的状态为跟随状态,则结束。
[0078]
step7:如果该节点簇的最相似节点簇为c,同时c的最相似节点簇也为该节点簇,则节点簇和节点簇c互为最相似节点簇,则该节点簇合并c,并依次查找本节点簇和节点簇c的跟随链表,将跟随链表上的所有节点簇一起合并后,判断封闭条件,如果条件成立,则更新为封闭状态,否则更新为默认状态;所述封闭条件为节点簇的簇内平均连接密度大于簇间平均连接密度;。
[0079]
step8:如果该节点簇的最相似节点簇为c,但c的最相似节点簇不为该节点簇,即该节点簇与节点簇为c非互为最相似,则该节点簇变为跟随状态,并将其加入c的跟随链表。
[0080]
算法如下表1

1所示。
[0081]
表1

1节点簇的递归合并算法
[0082][0083]
实验结果与分析
[0084]
实验数据
[0085]
为了测试社区发现算法的性能,社会学领域的诸多学者抽象并提取出了很多具有典型社区机构的网络拓扑图,该类网络是对实际社交网络的分析,故其社区机构往往具有明确的实际意义。社交网络的发展为社区发现算法的研究提供了大规模网络数据,学者们采集并整理了许多社交网络的数据信息作为社区划分的测试数据。本章选择复杂网络分析领域常用的三个数据集:美国football网、空手道俱乐部网karate club、海豚网dolphins作为实验数据,图3、图4和图5为三个社交网络的结构图,网络中的成员映射为网络节点,成员之间的关系映射为节点的连边,依此为基础构造了网络图。分别应用元胞自动机、标签传播算法和节点簇递归合并算法进行对比,封闭条件为:簇内平均连接密度大于簇间平均连接密度。
[0086]
american college football数据集是美国ncaa大学足球2000年秋季常规赛i

a分区学校间的比赛网络数据。mark newman等人为了寻找一个规模较大的网络结构图,研究分析了美国足球大联盟各球队的赛程安排,抽象提取出了ncaa足球网络,是具有115个节点和616条边的无线拓扑结构网络。在football网络分布图中,每个节点表示一支足球队,如果两个节点之间有连边,表示该两支球队之间有比赛发生。
[0087]
zachary's karate club网络,一个经典的数据集,被经常应用在社会网络分析领域中。社会学家zachary在20世纪70年代初期,研究分析美国某个大学中的空手道俱乐部成员的社交情况。历时两年,通过分析34名成员之间的社会关系,包括他们在俱乐部内部和外部的人际交往关系,他建立了成员之间的社会关系网络,这个网络的节点有34个,代表34位俱乐部成员,边有78条,如果两个节点之间连着一条边,那么表示对应的两个队员之间的交往很密切,他们是交往频繁的朋友关系。
[0088]
海豚网络也是常被应用在社会网络分析中当作验证社区发现算法有效性的网络。2003年,lusseau等在新西兰研究分析海豚的交往关系,长达多年的记录分析62只宽吻海豚的生活习性,最终探究发现了这些海豚的交往的特定的方式,于是构造了包含有159条边,62个节点的社会网络。如果网络中的两个节点之间连着一条边,表征相应的某两只海豚经常一起频繁出现。
[0089]
数据集的节点属性如下表1

2所示。
[0090]
表1

2网络中节点属性
[0091][0092]
实验结果
[0093]
我们选择标签传播算法、元胞机学习算法同节点簇算法进行比较。三种算法在美国足球俱乐部、空手道俱乐网络、海豚网络社区发现过程如图6、图7和图8所示。横轴为迭代次数,纵轴为节点数量,不同的颜色代表不同的算法。发现社区结果采用的评价标准模块度指标,模块度越高,说明社区划分效果越好。
[0094]
从图6、图7和图8中可以看出,节点簇聚合算法迭代速度略好于标签传播算法,收敛速度也快于标签算法。基于元胞自动机的算法,本质上是多目标优化算法,相对复杂,收敛速度与迭代速度较慢。三种算法实验结果如表1

3所示。
[0095]
表1

3实验结果对比
[0096][0097]
从表1

3中可以看出,节点簇聚合算法的模块度要高于标签传播算法和元胞机学习算法的模块度。
[0098]
实验分析
[0099]
本发明以单个节点所形成的节点簇集合作为起始集合,计算两个节点间的相似度,构建相似度跟随链表,通过递归,逐步合并已有节点簇,并以预设封闭条件作为节点簇是否继续合并的条件,最终快速划分社区。初始实验过程中,由于标签算法迭代过程中的随
机性,导致在异步更新标签时,针对同一数据集的多次运行,会出现多种社区机构满足停止条件,不过这些社区机构比较相近。节点簇聚合算法实验过程中没出现满足结束条件的多种社区机构,不存在标签算法不稳定的弊端。比较图6、图7和图8的实验过程,节点簇算法稳定而快速,采用模块度的评价指标分析实验结果,其模块度也要远好于标签传播算法。总体而言,节点簇聚合算法在三个数据集上都得到了最好的结果。
[0100]
实施例2
[0101]
本实施例提供的社交网络中社区划分的处理装置包括:
[0102]
初始化模块,用于将社交网络中的各节点分别初始化为节点簇,并将各节点簇设为默认状态。
[0103]
计算模块,用于计算社交网络中各节点簇之间的相似度,得到各节点簇的最相似节点簇;节点簇包括至少一个节点;节点簇的最相似节点簇为与节点簇的相似度大于预设值的节点簇中与节点簇的相似度最高的节点簇;
[0104]
更新模块,用于根据各节点簇与各节点簇的最相似节点簇之间的相似关系、各节点簇的状态及节点簇封闭条件更新社交网络中的节点簇的属性;节点簇的属性包括节点簇的状态和节点簇的节点集合;
[0105]
当相似关系为非互为最相似时,将节点簇的状态设置为跟随状态,并将节点簇加入节点簇的最相似节点簇的跟随链表中;
[0106]
当相似关系为互为最相似时,将节点簇的状态转为扩张状态;节点簇将节点簇的最相似节点簇合并,并将节点簇的最相似节点簇的跟随链表中的节点簇合并;当合并后的节点簇满足封闭条件时,将合并后的节点簇的状态转为封闭状态;当合并后的节点不满足封闭条件时,将合并后的节点簇的状态转为默认状态;
[0107]
设置模块,用于当社交网络中的所有节点簇均为封闭状态时,将此时社交网络中的各节点簇分别设置为社交网络中的社区。
[0108]
上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0109]
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
再多了解一些

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

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

相关文献