一种选取种子节点的合著网络社区划分方法与流程

文档序号:11433296阅读:1586来源:国知局
一种选取种子节点的合著网络社区划分方法与流程

本发明涉及学术作者权威度和社区划分领域,具体是一种能够展示复杂合著网络中社区结构的社区划分算法。



背景技术:

1994年以来,ieee和acm等大型数字图书馆出现以来,国内外的一些学者就开始关注和研究合著网络。其主要原因在于:对合著网络的当前状态和结构进行观察可以提供许多有价值的数据。合著网络属于一种典型的社会复杂网络,它具有其拥有的一些结构特征,如小世界特征、网络中存在内聚倾向以及无标度特征等等。因此,一些分析社会复杂网络的工具和方法同样可应用于合著网络,以深入挖掘合著网络潜藏的有用信息。这些工具和方法已成为当前研究合著网络的主要手段。

钱振华等人在《北京科技大学学报》第27卷第4期提出一种合著网络中的社区划分方法,以若干个不同的局部带有影响力的节点为核心,并使节点的影响力从核心逐层向外均匀扩散,最终形成了以影响力最大的节点为核心,逐层扩展中节点的影响力不断衰减,它们之间相互关联形成一个局部区域,扩展到方法的停止,节点影响力很小,到达该局部区域的网络边缘。该文章提出的方法,仅有的一个划分阶段导致节点之间存在过度合并的现象,且社区划分中逐层扩展的做法导致迭代时间过长,算法效率也很低。

申请号为201410650818.8的中国专利描述了一种基于层次聚类的复杂网络社区划分方法,从全局中心节点建立初始社区,再根据联系紧密程度一层一层地扩展社区,最后把一些过小的社区融合到大社区中。初始化社区过程为:选取度数最大的k个节点,按照节点的相似度合成若干个社区。扩展社区过程首先标记所有节点的层数,然后根据节点与社区的链接强度把节点分到相应的社区中。融合小社区过程首先要确定小社区的大小,计算小社区中的每个节点v的相邻节点与每个大社区c的公共节点个数,将v重新划分到公共节点数最大的社区中。选取最优结果过程要做10次试验,根据扩展模块度选出最终结果。本发明不需要预先知道社区数目,时间复杂度为o(m),可以处理大型复杂网络,提高了社区划分的准确度。但是,该专利只能泛性的分析复杂网络的社区结构,没有针对不同种类复杂网络精确挑选包含重要社区结构信息的节点进行划分,最终的划分结果无法准确反映不同种类的社交网络中的社交行为。

现有的合著网络社区划分方法存在以下缺点:(1)没有结合合著网络中的特性进行深度的社区划分研究;(2)算法效率低,运行时间长。



技术实现要素:

本发明旨在解决以上现有技术的问题。提出了一种算法效率提高的方法。本发明的技术方案如下:

一种选取种子节点的合著网络社区划分方法,其包括以下步骤:首先,根据作者各自发表的文章数和合著发表文章数,采用萨顿法计算作者之间的合作强度,将计算得出的合作强度值赋值给节点之间的边,构建合著网络,其中每个作者作为合著网络的节点;其次,根据作者之间的合作强度计算节点的学术社团中心度,其中不单考虑作者自身权威度,还考虑了相邻的学者对其的影响;最后,根据节点的学术社团中心度作为选取种子节点的依据,采用改进的社区发现算法,在改进的社区发现算法的阶段一与鲁文算法的阶段一相同,结果为网络图g中的节点最终被划分成社区集合c;并将其融入到louvain社区划分算法的第二阶段,即种子节点间不进行合并,非种子节点应尽量合并到种子节点所属的社区。

进一步的,所述采用salton法计算作者之间的合作关系强度,将计算得出的值赋值给节点之间的边,构建合著网络,合作关系强度公式如下:

式中,rsij为作者i和作者j的合作关系强度,hij为作者i和作者j合作发表的文章数,hi和hj分别表示作者i和作者j各自发表的文章数。

进一步的,所述根据作者之间的合作强度计算节点的学术社团中心度包括:

根据计算出的作者合作强度,根据以下公式计算节点的学术社团中心度:

cd(i)=(1-d)*deg(i)+d∑jrsij*cd(j)*w(i,j)

式中,cd(i)为节点i的学术社团中心度,deg(i)为节点i的度数,rsij为节点i和j间的合作强度,w(i,j)为节点j对节点i的权威贡献程度,d表示收敛系数。

进一步的,所述louvain社区划分算法的第二阶段具体包括步骤:

将每个节点各视为一个社区,对于每个非种子节点i,假设它的邻居节点属于t个社区,将节点i依次添加到t个社区中,并计算节点添加前与添加后的模块度值变化δqj=(j=1,2…,t),若该社区中包含种子节点,则将该社区添加到集合d1中,否则添加到集合d2中;

计算集合d1中δqj的最大值记为maxδq,若maxδq大于0,则将节点i分配到d1最大值所对应的社区,否则计算集合d2中δqj的最大值记为maxδq,若maxδq大于0,则将节点i分配到δqj最大值所对应的社区,若不符合上述所描述的两种情况,则节点i所属的社区需保持不变;

重复以上步骤,直到所有非种子节点i所属的社区不再发生变化,输出社区划分结果,流程结束。

进一步的,采用学术社团中心度选取种子节点,其集合为s,选取公式如下:

s={i|cd(i)>e+p},e表示cd(i)的平均值,p表示cd(i)的标准方差

本发明的优点及有益效果如下:

本发明针对现有技术的上述不足,提出了一种基于鲁文的社区划分方法,其要点在于引入基于萨顿法的合作关系强度的作者学术社团中心度作为选取种子节点的依据。在此基础上,将种子节点的思想融合进鲁文算法的第二阶段,提出一种适合复杂合著网络的社区划分算法,用以更好的揭示社团结构,解决louvain算法中的算法效率低下和节点过度合并的问题。

附图说明

图1是本发明提供优选实施例构建合著网络准备工作;

图2为本发明算法流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。

本发明解决上述技术问题的技术方案是:

如附图1-2所示,一种结合学术社团中心度选取种子节点的合著网络社区划分方法,其包括以下内容:

1.根据作者各自发表和合著发表文章,采用salton法计算作者之间的合作关系强度,将计算得出的值赋值给节点之间的边,构建合著网络,公式如下:

式中,rsij为作者i和作者j的合作关系强度,hij为作者i和作者j合作发表的文章数,hi和hj分别表示作者i和作者j各自发表的文章数。

2.学术社团中心度在计算中心度的时候,不单考虑作者自身,还考虑了相邻的学者,认为如果一个学者和某知名学者有过合作,那么这个学者通常也会比较有名。具体到合著网络中,则节点的学术社团中心度不单考虑节点自身的度数,也要考虑邻居节点的贡献。

根据步骤1计算出的作者合作强度,以下公式计算节点的学术社团中心度:

a1~a4:根据salton法,计算作者之间的合作关系强度,并将其赋值于边权重。将合作关系强度应用到节点的学术社团中心度的计算当中,输出每个节点的学术社团中心度值作为点的权重:

cd(i)=(1-d)*deg(i)+d∑jrsij*cd(j)*w(i,j)

根据点和边的权重,构建合著网络,式中,cd(i)为节点i的学术社团中心度,deg(i)为节点i的度数,rsij为节点i和j间的合作强度,w(i,j)为节点j对节点i的权威贡献程度,d表示收敛系数。

本文改进的社区发现算法有两个阶段,阶段一与louvain算法的阶段一相同,结果为网络图g中的节点最终被划分成社区集合c。其改进主要集中在阶段二,且改进的算法中阶段二不需要迭代执行。改进的算法中阶段二包含三个步骤。首先,对阶段一的划分结果进行压缩,形成新的网络图g′。

阶段一、b1:将每个节点各视为一个社区。对于每个节点i,假设它的邻居节点属于t个社区,将节点i依次添加到邻居节点的t个社区中,并计算节点添加前与添加后的模块度值变化δqj(j=1,2…,t),计算δqj的最大值记为maxδq。

b2:maxδq若大于0,则将节点i分配到δqj最大值所对应的社区,否则节点所属的社区保持不变。在所有节点分配结束时,得到一个社区划分结果,记录该社区划分所对应的模块度值δqj。对划分结果进行压缩,形成新的网络图g′。

阶段二、b3:然后,在新的网络图g′中,采用学术社团中心度选取种子节点,其集合为s,选取公式如下:

s={i|cd(i)>e+p}

b4:然后,每个节点各自归为一个社区。对于每个非种子节点i,假设其邻居节点属于t个社区,将节点i依次添加到t个社区中,并计算添加前后的模块度值变化δqj(j=1,2…,t),若该社区中包含种子节点,则将该社区添加到集合d1中,否则添加到集合d2中。

b5:计算集合d1中δqj的最大值记为maxδq,若maxδq大于0,则将节点i分配到d1最大值所对应的社区,否则计算集合d2中δqj的最大值记为maxδq,若maxδq大于0,则将节点i分配到δqj最大值所对应的社区,若不符合上述所描述的两种情况,则节点i所属的社区需保持不变。

b6:重复步骤b4、b5,直到所有非种子节点i所属的社区不再发生变化。输出社区划分结果,流程结束。

以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1