CN103325061B - 一种社区发现方法和*** - Google Patents

一种社区发现方法和*** Download PDF

Info

Publication number
CN103325061B
CN103325061B CN201310201298.8A CN201310201298A CN103325061B CN 103325061 B CN103325061 B CN 103325061B CN 201310201298 A CN201310201298 A CN 201310201298A CN 103325061 B CN103325061 B CN 103325061B
Authority
CN
China
Prior art keywords
community
node
entropy
attributes
represent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201310201298.8A
Other languages
English (en)
Other versions
CN103325061A (zh
Inventor
徐冰莹
贾焰
杨树强
周斌
韩伟红
李爱平
韩毅
李莎莎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201310201298.8A priority Critical patent/CN103325061B/zh
Publication of CN103325061A publication Critical patent/CN103325061A/zh
Application granted granted Critical
Publication of CN103325061B publication Critical patent/CN103325061B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种社区发现方法,所述方法包括:对网络中的多个节点基于模块度最大化进行社区划分;且基于社区属性熵最小化调整上一步得到的社区边界节点。所述方法还包括:如果调整后得到的社区划分满足结束条件,则将该社区划分作为最终的社区划分;否则,将调整后得到的社区作为节点,重新对该节点进行社区划分并且重新调整社区边界节点。所述方法同时考虑了网络结构和节点的属性特征,提高了社区发现的准确度。此外,所述方法的时间复杂度接近线性,适用于大规模的在线社交网络数据。

Description

一种社区发现方法和***
技术领域
本发明涉及复杂网络分析和数据挖掘领域,尤其涉及一种社区发现方法和***。
背景技术
随着对社交网络的性质和数学特征的深入研究,研究者发现许多网络都具有一个共同的特征——社区结构,也就是说,网络是由若干个“群”或“团”所构成,每个“群”内的节点之间的连接非常紧密,而“群”之间的连接则相对比较稀疏。网络社区的发现可以帮助人们更有效地了解网络的结构特征,从而提供更有效、更具个性化的服务。例如:用于信息推荐、用户分类,以及互联网群体行为分析等。在线社交网络上,个体的自媒体性质往往会产生大量的文本内容,这些文本内容反映了作者关心的话题以及观点倾向等。个体自身的标签内容和个人信息资料,如:年龄、职业、兴趣等,可反映个体具有某一社会特征,而社交网络的同质性使得具有相同社会特征的人更容易聚在一起。因此,利用这些信息可以提高仅仅依据网络结构来发现社区的质量。
当前,许多研究通过分析网络的结构来发现社区。其中,Blondel等人基于现实中的大规模网络的社区结构都具有层次性,提出了一种迭代的两阶段模块度最大化的快速算法(BGL算法)用于发现社区。该算法分为两步:第一步、通过社区之间局部交换节点使得社区划分的模块度最大化。第二步、将前一步网络划分产生的社区作为新的网络中的一个节点,节点之间边的权值为其代表的两个社区之间的边的权值之和。反复迭代以上两个步骤,直到模块度的大小不再可能增加。BGL算法所使用的模块度度量标准如下式所定义,该定义适用于加权网络:
其中,Aij表示节点i和节点j之间的边的权重,imax为i的最大值,jmax为j的最大值;表示与节点i相连的所有边的权值之和;ci表示节点i所在的(所属的)社区;δ函数δ(u,v)表示当u与v相等时为1,而其余情况下为0;表示网络中所有边的权值之和。
然而,BGL算法没有涉及到网络节点的属性信息。而研究表明,在真实的在线社交网络中,节点的属性信息可以是判断的标准之一,在结构紧密的前提下,同一社区内的节点属性越相似越好。除此之外,虽然现有的很多图聚类方法已将网络的结构和节点的属性特征(或称节点属性或节点属性信息)结合起来考虑(例如通过对属性和结构进行加权的方法构造新的网络,并在新的网络上进行社区划分),但是这些聚类的结果往往存在结构上并不紧密或者不关联的社区,从而导致社区发现的结果不准确;而且,这些方法的时间复杂度较高,不适于处理大规模的数据。
因此,需要一种方法来提高社区发现的准确度;同时还能适用于大规模在线社交网络数据。
发明内容
根据本发明的一个实施例,提供了一种社区发现方法,包括:
步骤1)、对网络中的多个节点基于模块度最大化进行社区划分;
步骤2)、基于社区属性熵最小化调整从步骤1)得到的社区边界节点;
步骤3)、如果从步骤2)得到的社区划分满足结束条件,则该社区划分作为最终的社区划分;否则,将从步骤2)得到的社区作为节点,重新执行步骤1)对该节点进行社区划分并且重新执行步骤2)调整社区边界节点。
在一个实施例中,所述结束条件为:经过步骤1)和步骤2)的处理后得到的社区划分的模块度与处理前的模块度相比没有增加,并且经过步骤1)和步骤2)的处理后得到的社区划分的整个社区属性熵与处理前的整个社区属性熵相比没有减少。
在另一个实施例中,所述结束条件为:重复步骤1)和步骤2)的次数已达到预设阈值。
在一个实施例中,步骤1)包括:对于网络中的每个节点,将该节点移动到模块度正增量最大所对应的邻居节点所在社区,直到任何节点的移动都不能带来模块度正增量为止。
在一个实施例中,步骤2)包括:
步骤21)、随机选择一个社区边界节点;
步骤22)、计算所述社区边界节点从所在的社区移到其邻居社区所产生的邻居社区的社区属性熵增量;
步骤23)、选择所述社区属性熵增量最小的邻居社区,判断该邻居社区是否是所述社区边界节点所在的社区,如果不是,则将所述社区边界节点从其所在的社区移动到该邻居社区;
步骤24)、如果所述社区边界节点移动前后的整个社区属性熵发生变化,则返回步骤21)。
在进一步的实施例中,步骤21)包括:
步骤211)、从步骤1)得到的社区中随机选择一个社区;
步骤212)、从所选择的社区中随机选择一个节点,其中与该节点相连的边的端点不完全是其所在的社区中的节点。
在一个实施例中,步骤21)前还包括:
步骤20)、将步骤1)的社区划分还原为原始节点的社区划分,其中原始节点是第一次基于模块度最大化进行社区划分前的网络中的节点。
根据本发明的一个实施例,提供了一种社区发现***,包括社区划分模块和社区调整模块。其中,社区划分模块用于对网络中的多个节点基于模块度最大化进行社区划分。社区调整模块用于基于社区属性熵最小化调整从所述社区划分模块得到的社区边界节点;如果调整后得到的社区划分满足预定条件,则该社区划分为最终的社区划分;否则,将调整后得到的社区作为节点,由所述社区划分模块重新对该节点进行社区划分并且由所述社区调整模块重新调整社区边界节点。
本发明的有益效果如下:
通过利用节点的属性特征,对使用模块度最大化方法产生的社区的边界节点进行优化操作,以发现特征更加明显的社区,从而提高了社区发现的准确度。此外,本发明的时间复杂度接近线性,适用于大规模在线社交网络数据。
附图说明
图1是根据本发明一个实施例的社区发现方法流程图;
图2是包括多个节点的网络的一个实施例的树形图;
图3是对图2所示的节点基于模块度最大化进行第一次社区划分且基于社区属性熵最小化调整社区边界节点得到的社区划分的树形图;
图4是对图2所示的节点基于模块度最大化进行第二次社区划分且基于社区属性熵最小化调整社区边界节点得到的社区划分的树形图;
图5a是网络结构的一个实施例的示意图;
图5b是图5a所示的网络结构中节点的属性矩阵示意图;
图5c是仅考虑网络结构进行社区划分的结果示意图;
图5d是根据本发明提供的社区发现方法进行社区划分的结果示意图;以及
图6是根据本发明提供的社区发现方法和现有方法进行社区划分的结果对比示意图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
为了下文描述方便,首先介绍以下概念:
1、网络图
给定一个网络图G=(V,E),其中V={v1,v2,...vn}表示网络中节点的集合,E={e1,e2,...,em}表示边的集合。|V|=n且|E|=m。通常,可以用<vi,vj>表示节点vi和vj之间连接的边,其中,1≤i≤n,1≤j≤n,i≠j。因而,边也可以表示为ek=<vi,vj>,1≤k≤m。在社交网络中,边可以表示其相连的节点(用户)之间互为好友、粉丝等等,可根据分析的目标而定。文本中所涉及的网络图为无向图,G中的节点对所表示的边是无序的,即<vi,vj>和<vj,vi>表示的是同一条边。
2、带节点属性信息的网络图
如上文所述,以在线社交网络为例,属性(即上文所描述的属性特征、属性信息)可以是用户的标签、用户的年龄、用户的国籍、兴趣爱好等等。划分不同的网络可能需要使用到不同的属性,属性可以是离散的也可以是连续的。离散的例如包括用户的兴趣爱好:体育、文学、政治等等;连续的例如包括用户的年龄。然而,用户的年龄10~15也可以离散化为“青年”这个离散的属性上。属性可以用特征向量表示,例如:一个包含地址(到省级)、年龄(到年龄段),和兴趣(人工或计算机辅助分析内容或标签到特定的类别)的三元组:(湖南,少年,文学),(浙江,中年,文学)。
对于网络中的节点具有属性的网络图,可以定义为带节点属性信息的图(或称多属性图)G={V,E,A},其中,A={a1,a2,...al}表示网络中节点所具有的属性集合,所有属性个数|A|=l。网络中的任一节点vi∈V都对应一个属性向量[ai1,...,ail],其中ail是节点vi在属性al上的值。
多属性图上的社区发现目标即是在一个多属性图中,将节点划分为k个社区(即群、团),表示为Gi=(Vi,Ei,Ai),其中Vi∩Vj=φ。而在同一社区内的节点不仅相互连接紧密而且具有很高的相似性。
3、节点的邻居节点集合
节点vi的邻居节点集合N(vi)={vj|<vi,vj>∈E,vj∈V},表示网络中与节点vi直接相连的边的端点。
4、节点的邻居社区集合
节点vi的邻居社区集合表示与节点vi直接相连接的社区。
5、社区边界节点
社区Vm的边界节点集合其中,社区内的节点vi是这个社区的边界节点,是指与vi直接相连的边的端点不完全是社区Vm内的节点。在社交网络中,社区的边界节点往往是承担链接桥和信息传播通道作用的重要节点,也有可能是属于多个社区的节点。
6、社区属性熵
熵是香农信息理论中的一个重要概念,在数据挖掘领域中,可以用来定义一个数据集合内的相似度,一个数据集合内各个节点之间的相似度越高,其整体的熵值就越低。假设给定一个社区Vm,包含|Vm|=M个节点,那么可采用下式来定义这个社区的属性熵H(Vm):
公式(2)中,si,j表示两个节点i和j之间的相似度,即在属性上的相似度(反映两个节点在属性上的亲密程度),且
在此基础上,整个社区划分的属性熵(或称整个社区属性熵)可表示为:
根据本发明的一个实施例,可使用各种相似度计算方法来计算节点之间在属性上的相似度,如利用余弦定理和广义Jaccard系数来计算该相似度。由于属性可以是连续的,也可以是离散的或是文本内容。在其中属性是离散属性的实施例中,属性相似度的计算方法可以采用基于特征向量的方法,或者采用笛卡尔相似度计算方法。如果属性是连续的,则可以先转化为离散的(如上文描述的对年龄的转化)再进行处理。
根据本发明的一个实施例,提供一种社区发现方法。如图1所示,该方法包括以下三个步骤:
步骤一、使用模块度最大化方法进行社区划分。
在其中加权网络具有N个节点的实施例中,在初始时,该加权网络中的每个节点都代表一个不同的社区,也就是说,网络中有多少个节点就表示该网络中有多少个社区。接着,假设节点i从自己所在的社区移出并转移到其邻居节点j所在的社区,分别计算其移动到不同社区的模块度的增量。找出节点i的邻居节点集合中能够使得模块度正增量最大的节点j',并真正将节点i转移到节点j'所在的社区。如果在该过程中找不到满足条件的邻居节点j',则节点i保持在原有社区不变。这个过程持续到在该网络中,任何节点的移动都不能带来模块度正增量为止。这个过程结束后,得到网络局部模块度最大化。
步骤二、进行社区属性熵最小化过程。
如上文所述,一个社区内各个节点之间的相似度越高,其属性熵值就越低。在根据步骤一得到的社区划分上,通过调整社区边界节点来最小化整个社区属性熵。
在一个实施例中,如果在步骤一中不是对原始节点进行社区划分,则在本步骤之前还要将步骤一得到的社区划分还原到原始节点的社区划分。这是因为,在下一次迭代(或者说采用模块度最大化方法进行社区划分)之前都需要将从当前社区划分(包括模块度最大化以及社区属性熵最小化过程)得到的社区看做节点,在下一次迭代时根据该节点重新进行社区划分(将在下文中详细描述)。因此,步骤一得到的社区划分中,社区中的每个节点可能是前一次社区划分后得到的社区,而社区属性熵需要根据社区内的原始节点的属性来进行计算。
在进一步的实施例中,可以通过创建和维护相邻两次模块度最大化方法产生的社区划分及其对应关系来实现上述还原,其结构可以如图2-4所描述的那样,以树来表示。图2-4分别示出了具有10个原始节点的网络在初始时、第一次迭代(每次迭代包括模块度最大化和社区属性熵最小化过程)后、第二次迭代后得到的社区结构示意图。尽管没有示出该网络结构图,应理解,10个节点彼此之间可能有边相连,且每个节点具有属性。图2中,0_0到0_9代表这10个原始节点的编号,其中“_”前面的数字用于表示该树是第几迭代得到的结果(或者用于表示所形成的第几个网络,其中初始状态的网络为第0网络)。10个节点上方的“-”节点表示整个树的根节点,它的每一棵子树代表一个社区(即初始时,每个节点都是一个社区)。在对该网络第一次使用模块度最大化方法划分社区且基于社区属性熵最小化调整该社区划分后,该网络可划分为4个社区(或称超节点),其中原始节点0_0,0_1,0_2和0_3划分到一个社区,原始节点0_4,0_5和0_6划分到一个社区且原始节点0_7单独划分到一个社区。图3示出了在第一次迭代后得到的社区和原始节点对应关系,图3中的4个社区的编号分别为1_0,1_1,1_2和1_3。其中,社区1_0对应的原始节点为0_0,0_1,0_2和0_3,社区1_1对应的原始节点为0_4,0_5和0_6,社区1_2对应的原始节点为0_7,而社区1_3对应的原始节点则为0_8和0_9。如果没有满足预定结束条件,则下一步将对这4个超节点组成的新的网络做进一步划分(或称迭代,包括模块度最大化过程及社区属性熵最小化过程)。如图4示出了进行第二次划分后社区和节点的对应关系,其中社区2_0包含了超节点1_0和1_1,社区2_1包含了超节点1_2和1_3。从而,可以得到当前在原始节点上的社区划分为{0_0,0_1,0_2,0_3,0_4,0_5,0_6}和{0_7,0_8,0_9}。
上文中示例性地描述了用树来表示原始节点与社区划分之间的对应关系,应理解,也可以采用本领域公知的其他技术来创建和维护相邻两次模块度最大化方法产生的社区划分及其对应关系。
在一个实施例中,对给定的多属性图及其某个初始社区划分,其社区属性熵最小化方法包括:
a)、从当前的社区划分中随机选择一个社区Vm,根据上文中对社区属性熵的概念描述,获得它的边界节点集合。
b)、从集合中随机选择一个社区边界节点i,假设将其移动到它的邻居社区,计算其对邻居社区的属性熵的贡献度增量(即社区属性熵增量)。
其中,根据以下公式计算节点i对社区Vm(其所移动到的邻居社区)的属性熵的贡献度增量:
其中,节点i为选择的社区边界节点,imax为i的最大值;H(Vm)为节点i所在的社区(邻居社区)Vm的属性熵;si,j表示两个节点i和j在属性上的相似度,
c)、选择社区属性熵增量最小的邻居社区(即采用公式(4)计算所得的最小ΔH所对应的邻居社区),并判断该社区是否是节点i当前所在的社区,若否,则将该节点从当前社区移动到新的社区。
d)、判断是否满足终止条件:判断整个社区属性熵是否不再变化,若仍然变化,则重复上述步骤。
在一个实施例中,可以采用以下算法来描述社区属性熵最小化过程:
算法:entropyMin
输入:社区划分V,相似度矩阵
输出:社区划分V'
在经过社区属性熵最小化过程后,用新的网络中每个节点(超节点)来代替最小化过程得到的一个社区,而节点之间的边的权值,是对应的两个社区之间的边的权值之和;节点的自环边的权值为其代表的同一社区内节点之间边的权值之和。
步骤三、判断是否满足结束条件,若不满足则重复以上过程。
在一个实施例中,由于最终目的是使得最终得到的社区在模块度最大化和表征社区同质性的社区属性熵最小化之间达到平衡,因此上述方法终止于模块度不能再增加且整个社区属性熵不能再减少。而在另一个实施例中,可以通过控制迭代次数来控制社区划分的粒度与规模,反映不同层次上的社区结构,达到发现层次式社区结构的目的。
在一个实施例中,可采用以下算法描述基于模块度最大化且基于社区属性熵最小化来进行社区划分的过程:
算法:ACD
输入:imax
输出:V
根据本发明的一个实施例,还提供一种社区发现***,包括社区划分模块和社区调整模块。其中,社区划分模块用于对网络中的多个节点基于模块度最大化进行社区划分。社区调整模块用于基于社区属性熵最小化调整从社区划分模块得到的社区边界节点;如果调整后得到的社区划分满足预定条件,则该社区划分为最终的社区划分;否则,将调整后得到的社区作为节点,由社区划分模块重新对该节点进行社区划分并且由社区调整模块重新调整社区边界节点。
图5a-5d描述了在一个网络实例上采用本发明提供的社区发现方法与采用现有的仅基于网络结构的方法发现社区的结果准确度对比。图5a示出了该网络实例的网络结构图,图5b示出了节点的属性矩阵。这里为简单起见,以A1、A2、A3分别描述社区划分所需的节点属性信息,并且以0、1来表示节点是否具有该属性。从图5b中可以看出,图1中所示的节点1、2、3的属性相同,节点4、5、6的属性相同,以及节点7、8、9、10、11、12的属性相同。图5c示出了采用只考虑网络结构的现有方法得到的社区划分结果,而图5d示出了根据本发明提供的、综合考虑了结构和节点属性的社区发现方法得到的社区划分的最终结果。从图5c和5d可以看出,图5c中,在每个社区内部节点的属性不全相同。而在图5d的社区划分结果中,每个社区内部的节点属性相同,即节点1、2、3形成一个社区,节点4、5、6形成一个社区,其他节点形成一个社区。可见,采用本发明提供的社区发现方法所得到的结果更加准确。
为进一步验证本发明提供的社区发现方法的准确度,发明人采集了美国的政治博客的有关数据,其中包括1490个博客及其19090个超链接,每个博客都具有其自身属性(包括“民主”和“共和”)。图6示出了使用不同方法对政治博客进行社区发现的结果。如图6所示,采用BGL方法进行社区划分后,模块度和整个社区属性熵分别为0.472和0.407;而采用本发明提供的社区发现方法(图中以ACD表示)进行社区划分得到的模块度和整个社区属性熵为0.411和0.03,与BGL方法相比分别下降了4.6%和92.1%(如上文所述,熵值越低表明社区内的节点相似度越高)。采用SA-Cluster方法所得的整个社区属性熵与采用本发明提供的社区发现方法所得的整个社区属性熵相近,但其模块度较低。根据图6示出的在真实社交网络数据上的实验分析,证明了本发明提供的社区发现方法可以获取特征更加明显的社区。同一社区内部的节点不仅在结构上连接紧密,且节点之间的相似度也更高。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (9)

1.一种社区发现方法,包括:
步骤1)、对网络中的多个节点基于模块度最大化进行社区划分;其中,采用下式计算模块度:
Q = 1 2 m Σ i = 1 i max Σ j = 1 j max [ A i j - k i k j 2 m ] δ ( c i , c j ) ,
其中,Aij表示节点i和节点j之间的边的权重,imax为i的最大值,jmax为j的最大值,表示与节点i相连的所有边的权值之和,ci表示节点i所在的社区,δ(ci,cj)表示当ci与cj相等时为1,其余情况下为0,表示网络中所有边的权值之和;
步骤2)、基于社区属性熵最小化调整从步骤1)得到的社区边界节点;包括:
步骤21)、随机选择一个社区边界节点;
步骤22)、计算所述社区边界节点从所在的社区移到其邻居社区所产生的邻居社区的社区属性熵增量;
步骤23)、选择所述社区属性熵增量最小的邻居社区,判断该邻居社区是否是所述社区边界节点所在的社区,如果不是,则将所述社区边界节点从其所在的社区移动到该邻居社区;
步骤24)、如果所述社区边界节点移动前后的整个社区属性熵发生变化,则返回步骤21);其中,根据下式计算整个社区属性熵:
H = Σ m = 1 K H ( V m ) ,
其中,K表示社区的数量,H(Vm)表示社区Vm的属性熵,且
H ( V m ) = Σ i = 1 M - 1 Σ j = i + 1 M ( s i , j 2 ln s i , j 2 + ( 1 - s i , j 2 ) ln ( 1 - s i , j 2 ) ) ,
其中M表示社区Vm包含的节点数量,si,j表示两个节点i和j在属性上的相似度;
步骤3)、如果从步骤2)得到的社区划分满足结束条件,则该社区划分作为最终的社区划分;否则,将从步骤2)得到的社区作为节点,重新执行步骤1)对该节点进行社区划分并且重新执行步骤2)调整社区边界节点。
2.根据权利要求1所述的方法,其中,所述结束条件为:
经过步骤1)和步骤2)的处理后得到的社区划分的模块度与处理前的模块度相比没有增加,并且经过步骤1)和步骤2)的处理后得到的社区划分的整个社区属性熵与处理前的整个社区属性熵相比没有减少。
3.根据权利要求1所述的方法,其中,所述结束条件为:
重复步骤1)和步骤2)的次数已达到预设阈值。
4.根据权利要求1-3中任何一个所述的方法,其中,步骤1)包括:
对于网络中的每个节点,将该节点移动到模块度正增量最大所对应的邻居节点所在社区,直到任何节点的移动都不能带来模块度正增量为止。
5.根据权利要求1-3中任何一个所述的方法,其中,所述网络是加权网络。
6.根据权利要求1所述的方法,其中,步骤21)包括:
步骤211)、从步骤1)得到的社区中随机选择一个社区;
步骤212)、从所选择的社区中随机选择一个节点,其中与该节点相连的边的端点不完全是其所在的社区中的节点。
7.根据权利要求1所述的方法,其中步骤21)前还包括:
步骤20)、将步骤1)的社区划分还原为原始节点的社区划分,其中原始节点是第一次基于模块度最大化进行社区划分前的网络中的节点。
8.根据权利要求1所述的方法,其中,根据下式计算社区属性熵增量:
Δ H = H ( V m ) - H ( V m - i ) = Σ i = 1 i max Σ j = V m - 1 V m - i max ( s i , j 2 ln s i , j 2 + ( 1 - s i , j 2 ) ln ( 1 - s i , j 2 ) ) ,
其中,节点i表示所选择的社区边界节点,imax为i的最大值,H(Vm)表示节点i移动到邻居社区Vm后,包括节点i的社区Vm的属性熵,H(Vm-i)表示在节点i移动到邻居社区Vm之前该邻居社区的属性熵,si,j表示两个节点i和j在属性上的相似度。
9.一种社区发现***,包括:
社区划分模块,用于对网络中的多个节点基于模块度最大化进行社区划分;其中,采用下式计算模块度:
Q = 1 2 m Σ i = 1 i max Σ j = 1 j max [ A i j - k i k j 2 m ] δ ( c i , c j ) ,
其中,Aij表示节点i和节点j之间的边的权重,imax为i的最大值,jmax为j的最大值,表示与节点i相连的所有边的权值之和,ci表示节点i所在的社区,δ(ci,cj)表示当ci与cj相等时为1,其余情况下为0,表示网络中所有边的权值之和;
社区调整模块,用于基于社区属性熵最小化调整从所述社区划分模块得到的社区边界节点;如果调整后得到的社区划分满足预定条件,则该社区划分为最终的社区划分;否则,将调整后得到的社区作为节点,由所述社区划分模块重新对该节点进行社区划分并且由所述社区调整模块重新调整社区边界节点;
基于社区属性熵最小化调整从所述社区划分模块得到的社区边界节点包括:
随机选择一个社区边界节点;计算所述社区边界节点从所在的社区移到其邻居社区所产生的邻居社区的社区属性熵增量;选择所述社区属性熵增量最小的邻居社区,判断该邻居社区是否是所述社区边界节点所在的社区,如果不是,则将所述社区边界节点从其所在的社区移动到该邻居社区;如果所述社区边界节点移动前后的整个社区属性熵发生变化,则重新执行以上调整过程;
其中,根据下式计算整个社区属性熵:
H = Σ m = 1 K H ( V m ) ,
其中,K表示社区的数量,H(Vm)表示社区Vm的属性熵,且
H ( V m ) = Σ i = 1 M - 1 Σ j = i + 1 M ( s i , j 2 ln s i , j 2 + ( 1 - s i , j 2 ) ln ( 1 - s i , j 2 ) ) ,
其中M表示社区Vm包含的节点数量,si,j表示两个节点i和j在属性上的相似度。
CN201310201298.8A 2012-11-02 2013-05-27 一种社区发现方法和*** Expired - Fee Related CN103325061B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310201298.8A CN103325061B (zh) 2012-11-02 2013-05-27 一种社区发现方法和***

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN2012104337208 2012-11-02
CN201210433720.8 2012-11-02
CN201210433720 2012-11-02
CN201310201298.8A CN103325061B (zh) 2012-11-02 2013-05-27 一种社区发现方法和***

Publications (2)

Publication Number Publication Date
CN103325061A CN103325061A (zh) 2013-09-25
CN103325061B true CN103325061B (zh) 2017-04-05

Family

ID=49193785

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310201298.8A Expired - Fee Related CN103325061B (zh) 2012-11-02 2013-05-27 一种社区发现方法和***

Country Status (1)

Country Link
CN (1) CN103325061B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106411572A (zh) * 2016-09-06 2017-02-15 山东大学 一种结合节点信息和网络结构的社区发现方法

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103793489B (zh) * 2014-01-16 2017-01-18 西北工业大学 一种在线社交网络中社群话题的发现方法
CN103942308B (zh) * 2014-04-18 2017-04-05 中国科学院信息工程研究所 大规模社交网络社区的检测方法及装置
CN104408149B (zh) * 2014-12-04 2017-12-12 威海北洋电气集团股份有限公司 基于社交网络分析的犯罪嫌疑人挖掘关联方法及***
CN104700311B (zh) * 2015-01-30 2018-02-06 福州大学 一种社会网络中的邻域跟随社区发现方法
CN104715418A (zh) * 2015-03-16 2015-06-17 北京航空航天大学 一种新型社会网络采样方法
CN104820945B (zh) * 2015-04-17 2018-06-22 南京大学 基于社团结构挖掘算法的在线社会网络信息传播最大化方法
CN105095403A (zh) * 2015-07-08 2015-11-25 福州大学 基于混合近邻消息传播的并行社区发现算法
CN105701511B (zh) * 2016-01-14 2019-04-02 河南科技大学 一种提取网络节点社区属性的自适应谱聚类方法
CN105704776B (zh) * 2016-01-14 2019-07-05 河南科技大学 一种兼顾网络节点能量和缓存的节点消息转发方法
CN106027296B (zh) * 2016-05-16 2019-06-04 国网江苏省电力公司信息通信分公司 一种对电力***中信息***模型的分解方法及装置
CN107818474B (zh) * 2016-09-13 2022-01-18 百度在线网络技术(北京)有限公司 一种用于动态调整产品价格的方法和装置
CN106570082B (zh) * 2016-10-19 2019-11-05 浙江工业大学 一种结合网络拓扑特征和用户行为特征的朋友关系挖掘方法
CN108090132B (zh) * 2017-11-24 2021-05-25 西北师范大学 融合标签平均划分距离和结构关系的社区可重叠划分方法
CN109657016A (zh) * 2018-12-30 2019-04-19 南京邮电大学盐城大数据研究院有限公司 一种属性图模型中挖掘满足同质性要求的属性的方法
CN110135853A (zh) * 2019-04-25 2019-08-16 阿里巴巴集团控股有限公司 团伙用户识别方法、装置和设备
CN111047453A (zh) * 2019-12-04 2020-04-21 兰州交通大学 基于高阶张量分解大规模社交网络社区的检测方法及装置
CN115438272A (zh) * 2021-01-29 2022-12-06 中国计量大学 一种属性网络的群体发现***

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101383748B (zh) * 2008-10-24 2011-04-13 北京航空航天大学 一种复杂网络中的社区划分方法
CN101877711B (zh) * 2009-04-28 2013-08-28 华为技术有限公司 社会网络建立方法及装置、以及社区发现方法及装置
CN102148717B (zh) * 2010-02-04 2013-08-21 明仲 一种二分网络中社团检测方法及装置
CN102194149B (zh) * 2010-03-01 2012-12-05 中国人民解放军国防科学技术大学 社区发现方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106411572A (zh) * 2016-09-06 2017-02-15 山东大学 一种结合节点信息和网络结构的社区发现方法
CN106411572B (zh) * 2016-09-06 2019-05-07 山东大学 一种结合节点信息和网络结构的社区发现方法

Also Published As

Publication number Publication date
CN103325061A (zh) 2013-09-25

Similar Documents

Publication Publication Date Title
CN103325061B (zh) 一种社区发现方法和***
Zarandi et al. Community detection in complex networks using structural similarity
CN105740401B (zh) 一种基于个体行为和群体兴趣的兴趣地点推荐方法及装置
CN105868281B (zh) 基于非支配排序多目标方法的位置感知推荐***
CN111428147A (zh) 结合社交和兴趣信息的异源图卷积网络的社交推荐方法
CN110321494A (zh) 基于矩阵分解与网络嵌入联合模型的社会化推荐方法
CN105260390B (zh) 一种面向群组的基于联合概率矩阵分解的项目推荐方法
CN110097125A (zh) 一种基于嵌入表示的跨网络账户关联方法
CN102148717B (zh) 一种二分网络中社团检测方法及装置
CN109783738A (zh) 一种基于多相似度的双极限学习机混合协同过滤推荐方法
CN107103000A (zh) 一种基于关联规则与贝叶斯网络集成的推荐技术
CN105787068A (zh) 基于引用网络及用户熟练度分析的学术推荐方法及***
CN106776928A (zh) 基于内存计算框架、融合社交环境及时空数据的位置推荐方法
CN106991614A (zh) Spark下基于标签传播的并行重叠社区发现方法
CN105787662A (zh) 基于属性的移动应用软件性能预测方法
CN107545471A (zh) 一种基于高斯混合的大数据智能推荐方法
CN107038184A (zh) 一种基于分层隐变量模型的新闻推荐方法
CN109949174A (zh) 一种异构社交网络用户实体锚链接识别方法
CN105678590A (zh) 一种面向社交网络基于云模型的topN推荐方法
CN107918778A (zh) 一种信息匹配方法及相关装置
CN109948242A (zh) 基于特征哈希的网络表示学习方法
CN107247753A (zh) 一种相似用户选取方法及装置
CN109543708A (zh) 融合拓扑特征的面向图数据的模式识别方法
CN110457477A (zh) 一种面向社交网络的兴趣社群发现方法
CN109978074A (zh) 基于深度多任务学习的图像美感和情感联合分类方法及***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170405

Termination date: 20190527