一种基于正负边信息的社团结构检测方法与流程

文档序号:11865750阅读:369来源:国知局
一种基于正负边信息的社团结构检测方法与流程

本发明涉及符号网络社团结构检测技术领域,更具体地说是一种基于正负边信息的符号网络社团结构检测方法。



背景技术:

在现实社会网络中,个体间关系通常存在两面性,即个体与个体间不是一种单一的“非是即否”的关系。个体间不仅有关系,更可以表现出是友好关系还是敌对关系等。基于个体间的多样化关系,人们对传统符号复杂网络进行了拓展,引入了边的符号的概念。既存在正向关系又存在负向关系的复杂网络,称为符号网络。符号网络的社团结构检测具有一个很明显的特征,即需要检测出社团内正向关系和社团间负向关系都密集的社团。

设计高效的符号网络社团结构检测算法对于人们分析和挖掘符号网络的社团结构显得尤为重要,能够帮助研究者们认识和理解多样化的真实社会网络。目前,符号网络社团结构检测算法主要分为以下两类:

(1)基于无符号网络社团结构检测算法改进后的符号网络社团检测算法。这类算法包括GN-H协同训练算法与CRA算法。GN-H协同训练算法主要将GN算法和层次聚类算法相结合,先利用GN算法对由符号网络中正边构成的社团进行划分,再结合负边信息的评价指标确定整个网络的最终层次聚类。类似地,CRA算法首先基于符号网络中正边利用Breadth First Search algorithm进行社团划分,再利用负边信息进行调整。此类方法的特点是采用两阶段式处理方式。此类方法虽然能够有效地利用现有的社团检测算法实现多种特定需求的符号网络的社团检测,然而,由于前期划分结果往往对第二阶段的调整造成较大影响,造成社团检测性能有待提高。

(2)基于符号网络社团结构检测问题生成的算法。这类算法是目前针对符号网络社团结构检测问题性能较好的一类算法,其典型代表是FEC算法。此类算法结合符号网络自身属性,提出不同符号网络社团检测策略,避免了上类算法中的阶段式处理方式,有效提高了社团检测精度。但是这类算法自身策略也存在一定的不足。如在算法FEC中,目标节点选择的随机性,导致算法存在一定的不稳定性;在随机游走过程中,只考虑节点的正边信息,忽略节点的负边信息,导致算法精度有待提高;人为设定随机游走步长,并将随机游走的步长作为算法终止条件,导致算法精度及复杂度依赖于随机游走的步长,即随机游走步数大则时间复杂度高,随机游走步数小则算法精度低。



技术实现要素:

本发明是为避免上述现有技术所存在的不足之处,提供一种基于正负边信息的社团结构检测方法,以期充分利用符号网络中的正边信息和负边信息,获取符号网络的最优划分,从而达到提高符号网络社团结构检测精度的目的。

为了达到上述目的,本发明所采用的技术方案为:

本发明一种基于正负边信息的符号网络社团结构检测方法的特点是按如下步骤进行:

步骤1、利用所述符号网络中节点的正度和负度寻找初始社团:

步骤1.1、利用式(1)计算所述符号网络中节点v的度deg(v):

deg(v)=degP(v)+|degN(v)| (1)

式(1)中,degP(v)和degN(v)分别表示节点v的正度和负度;

步骤1.2、将所述符号网络中所有节点均作为初始节点,从每一个初始节点出发,基于符号网络中节点的度deg(v)来寻找得到与所述每一个初始节点对应的局部度中心点;

步骤1.3、根据所得局部度中心节点及其正度,获取q个初始社团,并根据获取的先后顺序进行排序,组成初始社团集合,记为Y={Yk|k=1,...,q};Yk表示第k个初始社团;以所述q个初始社团内的节点作为已聚类节点,并组成已聚类节点集,记为U={uj|j=1,...,n};uj表示第j个已聚类节点;同在第k个初始社团Yk中的节点组成第k个已聚类节点集,记为Uk,并有以所述符号网络中未包含于任一初始社团的所有节点作为未聚类节点,并组成未聚类节点集,记为V={vi|i=1,...,m},vi表示第i个未聚类节点;

步骤2、利用基于正负边信息的社团扩充方法对所述初始社团进行扩充,得到符号网络的社团检测结果。

本发明所述的社团结构检测方法的特点也在于,

所述基于正负边信息的社团扩充方法是按如下步骤进行:

步骤2.1、利用式(2)计算符号网络中任意两个节点u和v间的相似度Ssigned(u,v):

<mrow> <msub> <mi>S</mi> <mrow> <mi>s</mi> <mi>i</mi> <mi>g</mi> <mi>n</mi> <mi>e</mi> <mi>d</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>u</mi> <mo>,</mo> <mi>v</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <munder> <mo>&Sigma;</mo> <mrow> <mi>x</mi> <mo>&Element;</mo> <mi>&Gamma;</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo> </mrow> <mo>&cup;</mo> <mi>&Gamma;</mi> <mrow> <mo>(</mo> <mi>v</mi> <mo>)</mo> </mrow> </mrow> </munder> <mi>&psi;</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> <mrow> <msqrt> <mrow> <munder> <mo>&Sigma;</mo> <mrow> <mi>x</mi> <mo>&Element;</mo> <mi>&Gamma;</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo> </mrow> </mrow> </munder> <msup> <mi>w</mi> <mn>2</mn> </msup> <mrow> <mo>(</mo> <mi>u</mi> <mo>,</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> </msqrt> <mo>&CenterDot;</mo> <msqrt> <mrow> <munder> <mo>&Sigma;</mo> <mrow> <mi>x</mi> <mo>&Element;</mo> <mi>&Gamma;</mi> <mrow> <mo>(</mo> <mi>v</mi> <mo>)</mo> </mrow> </mrow> </munder> <msup> <mi>w</mi> <mn>2</mn> </msup> <mrow> <mo>(</mo> <mi>v</mi> <mo>,</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> </msqrt> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

式(2)中,w(u,x)表示节点u和节点x之间的边的权值;w(v,x)表示节点v和节点x之间的连边的权值;在符号网络的邻接矩阵中,w(u,x)>0表示节点u和节点x之间连边是正边;w(u,x)<0表示节点u和节点x之间连边是负边;w(u,x)=0表示节点u和节点x之间没有边相连;Γ(u)表示节点u的邻接节点集合,Γ(v)表示节点v的邻接节点集合;

步骤2.2、从符号网络的邻接矩阵中分别获得只包含正边信息的邻接矩阵和负边信息的邻接矩阵;

步骤2.3、利用式(2),分别基于所得正边信息的邻接矩阵和负边信息的邻接矩阵,计算任意两个节点间的相似度,从而获得任意两个节点间的正边相似度和负边相似度;

步骤2.4、根据所述任意两个节点间的正边相似度和负边相似度,利用随机游走模型计算所有未聚类节点中任意第i个未聚类节点vi属于所有n个初始社团中第k个初始社团Yk的正概率值Pik+和负概率值Pik-

步骤2.5比较未聚类节点vi属于某初始社团的正概率值和负概率值,若使得Pik+>Pik-,执行步骤2.6;若对都有Pik+≤Pik-,则执行步骤2.7;

步骤2.6、将第i个未聚类节点vi加入第k个初始社团Yk中;并执行步骤2.9;

步骤2.7、将第i个未聚类节点vi作为新的局部度中心点,利用步骤1.3寻找新的初始社团;若发现了新的初始社团,则执行步骤2.9,否则,执行步骤2.8;

步骤2.8、利用式(3)计算第i个未聚类节点vi与第k个初始社团Yk的连接强度T(vi,Yk),从而获得第i个未聚类节点vi与所有初始社团的连接强度,并将第i个未聚类节点vi加入最大连接强度所对应的初始社团中;

<mrow> <mi>T</mi> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>Y</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <msub> <mi>num</mi> <mn>1</mn> </msub> </mrow> <mrow> <msub> <mi>num</mi> <mn>2</mn> </msub> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

式(3)中,num1表示第i个未聚类节点vi与第k个初始社团Yk所有节点的连接边数,num2表示第k个初始社团Yk的节点数目;

步骤2.9、更新所有初始社团中所有已聚类节点;

步骤2.10、更新所述符号网络中所有未聚类节点;

步骤2.11、判断所述符号网络中是否存在未聚类节点时,若存在,则返回步骤2.4;否则,执行步骤2.12;

步骤2.12、判断两个社团是否满足式(4),若满足,则将社团进行优化合并,并得到所述符号网络的社团检测结果:

<mrow> <mfrac> <mrow> <mo>|</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>&cap;</mo> <msub> <mi>C</mi> <mi>j</mi> </msub> <mo>|</mo> </mrow> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <mo>|</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>|</mo> <mo>,</mo> <mo>|</mo> <msub> <mi>C</mi> <mi>j</mi> </msub> <mo>|</mo> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>&gt;</mo> <mi>&xi;</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

式(4)中,Ci和Cj分别表示第i个社团和第j个社团中节点的集合,ξ为阈值。

所述步骤2.4中的随机游走模型是按如下步骤进行:

步骤2.4.1、假设从第i个未聚类节点vi开始游走,根据社团个数相应次的利用随机游走模型计算出第i个未聚类节点vi属于每一个社团的正概率与负概率;

步骤2.4.2、假设第i个未聚类节点vi与第k个初始社团Yk中所有节点有边相连,则构造第k个随机游走图Gk,且Gk=(U′k,E′k),U′k表示所有社团中的节点与第i个未聚类节点vi的并集;E′k表示所有社团中的边以及第i个未聚类节点vi分别与第k个初始社团Yk中所有节点相连所形成的边;即

步骤2.4.3、定义循环变量t,并初始化t=1;

步骤2.4.4、计算第i个未聚类节点vi与Gk中其他节点u之间的正边相似度值及负边相似度值,并利用式(5)将相似度值进行归一化处理,获得初始正概率向量s1+与初始负概率向量s1-

<mrow> <msup> <mi>x</mi> <mo>&prime;</mo> </msup> <mo>=</mo> <mfrac> <mrow> <mi>x</mi> <mo>-</mo> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> <mo>-</mo> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

式(5)中,x表示归一化前的正边(负边)相似度值,x′表示归一化后的正边或负边的相似度值,max表示vi与Gk中其他节点之间正边或负边相似度的最大值,min表示vi与Gk中其他节点之间正边或负边相似度的最小值;

步骤2.4.5、利用式(6)计算第i个未聚类节点vi第t次游走到随机游走图Gk中所有节点的正概率向量和负概率向量

<mrow> <msubsup> <mi>s</mi> <mi>t</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>+</mo> </mrow> </msubsup> <mo>=</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>&alpha;</mi> <mo>)</mo> </mrow> <mo>&CenterDot;</mo> <msup> <msub> <mi>M</mi> <mo>+</mo> </msub> <mi>T</mi> </msup> <mo>&CenterDot;</mo> <msubsup> <mi>s</mi> <mrow> <mi>t</mi> <mo>-</mo> <mn>1</mn> </mrow> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>+</mo> </mrow> </msubsup> <mo>+</mo> <mi>&alpha;</mi> <mo>&CenterDot;</mo> <mi>d</mi> </mrow>

<mrow> <msubsup> <mi>s</mi> <mi>t</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>-</mo> </mrow> </msubsup> <mo>=</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>&alpha;</mi> <mo>)</mo> </mrow> <mo>&CenterDot;</mo> <msup> <msub> <mi>M</mi> <mo>-</mo> </msub> <mi>T</mi> </msup> <mo>&CenterDot;</mo> <msubsup> <mi>s</mi> <mrow> <mi>t</mi> <mo>-</mo> <mn>1</mn> </mrow> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>-</mo> </mrow> </msubsup> <mo>+</mo> <mi>&alpha;</mi> <mo>&CenterDot;</mo> <mi>d</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

式(6)中,矩阵M+与M-分别表示所有社团中任意节点间正边相似度值所构成的正边相似度矩阵和负边相似度值所构成的负边相似度矩阵;M+T和M-T分别表示是n×n维的矩阵M+与M-的转置;α表示跳转概率;d表示转移概率向量,且为vi第t次游走到随机游走图Gk中所有节点的正概率向量;为vi第t次游走到随机游走图Gk中所有节点的负概率向量;

步骤2.4.6、循环执行步骤2.4.6,直到概率向量与收敛为止;并将收敛时的正概率向量记为将负概率向量记为表示在随机游走图Gk中,未聚类节点vi游走到第j个已聚类节点uj的正概率;即表示在随机游走图Gk中,未聚类节点vi游走到第j个已聚类节点uj的负概率;即

步骤2.4.7、利用式(7)获得在随机游走图Gk中,未聚类节点vi游走到第j个初始社团Yj的正概率p+(vi→Yj|vi∈Gk)及负概率p-(vi→Yj|vi∈Gk):

<mrow> <msup> <mi>p</mi> <mo>+</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&RightArrow;</mo> <msub> <mi>Y</mi> <mi>j</mi> </msub> <mo>|</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <msub> <mi>G</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mi>m</mi> <mi>e</mi> <mi>a</mi> <mi>n</mi> <mo>{</mo> <msup> <mi>p</mi> <mo>+</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&RightArrow;</mo> <mi>u</mi> <mo>|</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <msub> <mi>G</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>|</mo> <mo>&ForAll;</mo> <mi>u</mi> <mo>&Element;</mo> <msub> <mi>Y</mi> <mi>j</mi> </msub> <mo>}</mo> </mrow>

<mrow> <msup> <mi>p</mi> <mo>-</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&RightArrow;</mo> <msub> <mi>Y</mi> <mi>j</mi> </msub> <mo>|</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <msub> <mi>G</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mi>m</mi> <mi>e</mi> <mi>a</mi> <mi>n</mi> <mo>{</mo> <msup> <mi>p</mi> <mo>-</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&RightArrow;</mo> <mi>u</mi> <mo>|</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <msub> <mi>G</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>|</mo> <mo>&ForAll;</mo> <mi>u</mi> <mo>&Element;</mo> <msub> <mi>Y</mi> <mi>j</mi> </msub> <mo>}</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>7</mn> <mo>)</mo> </mrow> </mrow>

式(7)中,和分别表示vi游走到初始社团Yj中所有节点正概率和负概率的均值;

步骤2.4.8、利用式(8)计算第i个未聚类节点vi游走到第j个初始社团Yj的正概率Pij+与负概率Pij-

<mrow> <msubsup> <mi>P</mi> <mi>i</mi> <mrow> <mi>j</mi> <mo>+</mo> </mrow> </msubsup> <mo>=</mo> <msup> <mi>p</mi> <mo>+</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&RightArrow;</mo> <msub> <mi>Y</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>q</mi> </msubsup> <mo>&lsqb;</mo> <msup> <mi>p</mi> <mo>+</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&RightArrow;</mo> <msub> <mi>Y</mi> <mi>j</mi> </msub> <mo>|</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <msub> <mi>G</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>&times;</mo> <msup> <mi>p</mi> <mo>+</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <msub> <mi>G</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>&rsqb;</mo> </mrow>

<mrow> <msubsup> <mi>R</mi> <mi>i</mi> <mrow> <mi>j</mi> <mo>-</mo> </mrow> </msubsup> <mo>=</mo> <msup> <mi>p</mi> <mo>-</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mn>2</mn> </msub> <mo>&RightArrow;</mo> <msub> <mi>Y</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>q</mi> </msubsup> <mo>&lsqb;</mo> <msup> <mi>p</mi> <mo>-</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&RightArrow;</mo> <msub> <mi>Y</mi> <mi>j</mi> </msub> <mo>|</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <msub> <mi>G</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>&times;</mo> <msup> <mi>p</mi> <mo>-</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <msub> <mi>G</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>&rsqb;</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>8</mn> <mo>)</mo> </mrow> </mrow>

式(8)中:表示第i个未聚类节点vi能够与第k个初始社团Yk中所有节点相连的概率;S+(vi,uj)与S-(vi,uj)分别表示节点vi与节点uj的正边相似度与负边相似度。

与已有技术相比,本发明的有益效果体现在:

1、本发明无需符号网络中社团个数、规模等先验知识,即可获取到诸如生物符号网络、社交符号网络等符号网络的社团划分结果,易于操作实现;综合利用了符号网络中正边信息与负边信息,避免了因负边信息未充分利用而造成的精度损失;本发明不依赖于初始点的选择,避免了因算法对初始点的依赖而导致的社团划分结果的不稳定;同时,当符号网络中社团结构不明显时,本发明亦可获得较为准确的社团划分结果。

2、本发明提出基于节点的度与正度寻找局部度中心点,充分考虑了节点的正度与负度所赋予的节点的重要性,使得所得局部度中心点度大同时正度也大,提高了局部度中心点作为初始社团的核心点的准确度。

3、本发明提出利用局部度中心点寻找初始社团的方法,使得初始社团具有不依赖于初始节点的选择和不易导致局部最优等特点。

4、本发明提出利用基于随机游走的全概率模型计算未聚类节点属于初始社团的概率,从而能够有效利用概率方法处理社团边界模糊情形下的社团检测问题。

5、本发明提出同时利用正边信息与负边信息判断未聚类节点最可能归属的社团,避免了仅利用正边信息划分社团的所带来的不准确性,最大限度的降低了未聚类节点误入某个社团的概率。

6、本发明提出综合利用正边相似度和负边相似度确定对未聚类节点的处理方式,即未聚类节点应加入到某一初始社团或是将未聚类节点作为局部度中心点寻找新社团,从而使当前未聚类节点得到最妥善处理,显著提高了算法对社团的检测精度

7、本发明提出构造随机游走图,从而便于运用条件概率公式及全概率公式计算当前处理节点属于某社团的概率。

8、本发明在对符号网络社团结构检测过程中,当未聚类节点不属于当前任意一个社团时,通过将该未聚类节点作为新的局部度中心点,动态挖掘新社团,提高了社团检测精度。

9、本发明通过不断更新随机游走图,提高了社团检测精度。

附图说明

图1为本发明的结构示意图;

图2为本发明寻找初始社团方法的流程图;

图3为本发明基于随机游走的符号网络社团扩充方法的流程图;

图4a为本发明随机游走模型中构造游走图的流程图;

图4b为本发明随机游走模型中构造游走图G1的流程图;

图4c为本发明随机游走模型中构造游走图G2的流程图。

具体实施方式

本实施例中,一种基于正负边信息的符号网络社团结构方法是按如下步骤进行:如图1所示,首先寻找初始社团,其次利用随机游走模型扩充初始社团,最后进行社团优化:

步骤1、如图2所示,利用符号网络中节点的正度和负度寻找初始社团:

步骤1.1、利用式(1)计算符号网络中节点v的度deg(v):

deg(v)=degP(v)+|degN(v)| (1)

式(1)中,degP(v)和degN(v)分别表示节点v的正度和负度;假设符号网络中共含有N个节点,则需计算N个节点的度。

步骤1.2、将符号网络中所有节点均作为初始节点,从每一个初始节点出发,基于符号网络中节点的度deg(v)来寻找得到与每一个初始节点对应的局部度中心点;

对符号网络中每一个初始节点,将其邻接节点中度最大的节点视为局部度中心节点,节点度的计算方式如式(1)所示。当然,会存在如下情况,即对于多个初始节点可能找到的局部度中心节点是同一个节点。对于这种节点有重复的情况,只需保留一个局部度中心节点即可,重复的节点删除。

步骤1.3、根据所得局部度中心节点及其正度,获取q个初始社团,并根据获取的先后顺序进行排序,组成初始社团集合,记为Y={Yk|k=1,...,q};Yk表示第k个初始社团;以q个初始社团内的节点作为已聚类节点,并组成已聚类节点集,记为U={uj|j=1,...,n};uj表示第j个已聚类节点;同在第k个初始社团Yk中的节点组成第k个已聚类节点集,记为Uk,并有以符号网络中未包含于任一初始社团的所有节点作为未聚类节点,并组成未聚类节点集,记为V={vi|i=1,...,m},vi表示第i个未聚类节点;

具体实施中,对每一个局部度中心节点寻找对应的初始社团。对当前局部度中心节点a来说,找到它所有邻居节点中正度最大的节点b,在找到节点b的基础上,查看节点a和节点b的所有共同邻居节点,找到它们中正度数最大的节点c。由节点a、b和c构成了一个完全图,即为初始社团。由不同的局部度中心节点找到的初始社团可能相同,对于这种有重复的情况,只保留一个初始社团,删除重复的初始社团。

步骤2、利用基于正负边信息的社团扩充方法对初始社团进行扩充,得到符号网络的社团检测结果。具体的说,如图3所示,基于正负边信息的社团扩充方法是按如下步骤进行:

步骤2.1、利用式(2)计算符号网络中任意两个节点u和v间的相似度Ssigned(u,v):

<mrow> <msub> <mi>S</mi> <mrow> <mi>s</mi> <mi>i</mi> <mi>g</mi> <mi>n</mi> <mi>e</mi> <mi>d</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>u</mi> <mo>,</mo> <mi>v</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <munder> <mo>&Sigma;</mo> <mrow> <mi>x</mi> <mo>&Element;</mo> <mi>&Gamma;</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo> </mrow> <mo>&cup;</mo> <mi>&Gamma;</mi> <mrow> <mo>(</mo> <mi>v</mi> <mo>)</mo> </mrow> </mrow> </munder> <mi>&psi;</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> <mrow> <msqrt> <mrow> <munder> <mo>&Sigma;</mo> <mrow> <mi>x</mi> <mo>&Element;</mo> <mi>&Gamma;</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo> </mrow> </mrow> </munder> <msup> <mi>w</mi> <mn>2</mn> </msup> <mrow> <mo>(</mo> <mi>u</mi> <mo>,</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> </msqrt> <mo>&CenterDot;</mo> <msqrt> <mrow> <munder> <mo>&Sigma;</mo> <mrow> <mi>x</mi> <mo>&Element;</mo> <mi>&Gamma;</mi> <mrow> <mo>(</mo> <mi>v</mi> <mo>)</mo> </mrow> </mrow> </munder> <msup> <mi>w</mi> <mn>2</mn> </msup> <mrow> <mo>(</mo> <mi>v</mi> <mo>,</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> </msqrt> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

式(2)中,w(u,x)表示节点u和节点x之间的边的权值;w(v,x)表示节点v和节点x之间的连边的权值;在符号网络的邻接矩阵中,以w(u,x)为例说明权值所代表的信息,w(u,x)有三种取值情况:w(u,x)>0表示节点u和节点x之间连边是正边;w(u,x)<0表示节点u和节点x之间连边是负边;w(u,x)=0表示节点u和节点x之间没有边相连。Γ(u)表示节点u的邻接节点集合,Γ(v)表示节点v的邻接节点集合;

步骤2.2、从符号网络的邻接矩阵中分别获得只包含正边信息的邻接矩阵和负边信息的邻接矩阵;符号网络的邻接矩阵A的维数为N×N。假设第i个节点和第j个节点分别是节点u和节点v,则第i行第j列的元素A(i,j)表示节点u和节点v之间边的权值w(u,v),即A(i,j)=w(u,v)。在获取只包含正边信息的邻接矩阵时,将邻接矩阵A中小于0的元素全部设置为0,所得的邻接矩阵中的元素均大于等于0,即为只包含正边信息的邻接矩阵;同样,在获取只包含负边信息的邻接矩阵时,将邻接矩阵A中大于0的元素全部设置为0,所得邻接矩阵的元素均小于等于0,再将矩阵中所有元素取其绝对值,即为只包含负边信息的邻接矩阵。

步骤2.3、利用式(2),分别基于所得正边信息的邻接矩阵和负边信息的邻接矩阵,计算任意两个节点间的相似度,从而获得任意两个节点间的正边相似度和负边相似度;

步骤2.4、根据任意两个节点间的正边相似度和负边相似度,利用随机游走模型计算所有未聚类节点中任意第i个未聚类节点vi属于所有n个初始社团中第k个初始社团Yk的正概率值Pik+和负概率值Pik-

当在随机游走模型中用到的相似度值是任意两个节点间的正边相似度时,可以计算出所有未聚类节点中任意第i个未聚类节点vi属于所有n个初始社团中第k个初始社团Yk的正概率值Pik+;同样,当在随机游走模型中用到的相似度值是任意两个节点间的负边相似度时,可以计算出所有未聚类节点中第i个未聚类节点vi属于所有n个初始社团中第k个初始社团Yk的负概率值Pik-

步骤2.5、比较未聚类节点vi属于某初始社团的正概率值和负概率值,若使得Pik+>Pik-,执行步骤2.6;若对都有Pik+≤Pik-,则执行步骤2.7;

若使得Pik+>Pik-,表示第i个未聚类节点vi的正边与第k个初始社团的连接紧密程度大于其负边与该社团的连接紧密程度。具体实施中,满足Pik+>Pik-的k可能有多个。

步骤2.6、将第i个未聚类节点vi加入第k个初始社团Yk中;并执行步骤2.9;

具体实施过程中,若满足Pik+>Pik-的k有多个,不妨设为k1,…,kn′。若Pik′+=max{Pik+|k=k1,…,kn′},则将未聚类节点vi加入第k′个社团中,即将vi加入到使得正概率值最大的社团中。

步骤2.7、将第i个未聚类节点vi作为新的局部度中心点,利用步骤1.3寻找新的初始社团;若发现了新的初始社团,则执行步骤2.9,否则,执行步骤2.8;

对都有Pik+≤Pik-,表示第i个未聚类节点vi的正边与任意初始社团的连接紧密程度小于其负边与该社团的连接紧密程度,表明第i个未聚类节点vi不属于任意一个初始社团,则将第i个未聚类节点vi视作局部度中心节点,按照步骤1寻找新的初始社团。

步骤2.8、利用式(3)计算第i个未聚类节点vi与第k个初始社团Yk的连接强度T(vi,Yk),从而获得第i个未聚类节点vi与所有初始社团的连接强度,并将第i个未聚类节点vi加入最大连接强度所对应的初始社团中;

<mrow> <mi>T</mi> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>Y</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <msub> <mi>num</mi> <mn>1</mn> </msub> </mrow> <mrow> <msub> <mi>num</mi> <mn>2</mn> </msub> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

式(3)中,num1表示第i个未聚类节点vi与第k个初始社团Yk所有节点的连接边数,num2表示第k个初始社团Yk的节点数目;

此时,第i个未聚类节点vi的度较低,与其他社团的连接不紧密,无法再开辟新的社团,按照该步骤将其加入到与其联系最紧密的社团中。

步骤2.9、更新所有初始社团中所有已聚类节点;

当按照步骤2.5处理完第i个未聚类节点vi时,初始社团个数或初始社团中包含的点数会发生变化,因此更新所有初始社团,即更新所有已聚类节点。

步骤2.10、更新符号网络中所有未聚类节点;

当对第i个未聚类节点vi处理完毕后,未聚类节点数目发生变化,即更新符号网络中所有未聚类节点。

步骤2.11、判断符号网络中是否存在未聚类节点时,若存在,则返回步骤2.4;否则,执行步骤2.12;

步骤2.12、判断两个社团是否满足式(4),若满足,则将社团进行优化合并,并得到符号网络的社团检测结果:

<mrow> <mfrac> <mrow> <mo>|</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>&cap;</mo> <msub> <mi>C</mi> <mi>j</mi> </msub> <mo>|</mo> </mrow> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <mo>|</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>|</mo> <mo>,</mo> <mo>|</mo> <msub> <mi>C</mi> <mi>j</mi> </msub> <mo>|</mo> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>&gt;</mo> <mi>&xi;</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

式(4)中,Ci和Cj分别表示第i个社团和第j个社团中节点的集合,ξ为阈值,ξ=0.5。

在对初始社团进行优化合并时,设定阈值ξ=0.5。表明两个社团中,规模较小的社团有超过一半的节点包含在规模较大的社团中时,将规模较小的社团合并到规模较大的社团中。

具体实施中,步骤2.4中的随机游走模型是按如下步骤进行:

将利用全概率模型及条件概率公式计算未聚类节点vi游走到每个初始社团的概率。首先计算在未聚类节点vi属于第k个初始社团的条件下游走到其他初始社团的条件概率,再计算未聚类节点vi属于第k个初始社团的概率,最后,利用全概率模型计算得到未聚类节点vi游走到每个初始社团的概率。

步骤2.4.1、假设从第i个未聚类节点vi开始游走,根据社团个数相应次的利用随机游走模型计算出第i个未聚类节点vi属于每一个社团的正概率与负概率;

从第i个未聚类节点vi开始游走,根据社团个数相应次的利用随机游走模型计算第i个未聚类节点vi属于所有社团的概率。假设此时网络中的社团个数为q,在每次利用随机游走模型时,先构造随机游走图,即对每一个未聚类节点都需要构造q次随机游走图。

步骤2.4.2、假设第i个未聚类节点vi与第k个初始社团Yk中所有节点有边相连,则构造第k个随机游走图Gk,且Gk=(U′k,E′k),U′k表示所有社团中的节点与第i个未聚类节点vi的并集;E′k表示所有社团中的边以及第i个未聚类节点vi分别与第k个初始社团Yk中所有节点相连所形成的边;即

为了创造未聚类节点vi属于第k个初始社团Yk这一条件,构造随机游走图Gk。随机游走图Gk中的节点是所有初始社团中的节点以及未聚类节点vi。因为每个初始社团都是一个完全图,所以如果vi属于初始社团Yk,那么vi将与Yk中的每个节点都有边相连。随机游走图Gk中的边是所有初始社团中的边以及vi分别与Yk中所有节点相连所形成的边。

图4a-4c给出了构造随机游走图的示意图。图4a中含有5个节点,分别为节点1,2,3,5,6,且均为已聚类节点,5个节点形成两个初始社团,第一个初始社团由节点1,2,3及节点1,2,3间的边构成,第二个初始社团由节点3,5,6及节点3,5,6间的边构成,;图4b中节点4为未聚类节点,将节点4与第一个初始社团中的所有节点相连,得到随机游走图G1;图4c中节点4为未聚类节点,将节点4与第二个初始社团中的所有节点相连,得到随机游走图G2

步骤2.4.3、定义循环变量t,并初始化t=1;

循环变量t表示第t次利用随机游走模型。

步骤2.4.4、计算第i个未聚类节点vi与Gk中其他节点u之间的正边相似度值及负边相似度值,并利用式(5)将相似度值进行归一化处理,获得初始正概率向量s1+与初始负概率向量s1-

<mrow> <msup> <mi>x</mi> <mo>&prime;</mo> </msup> <mo>=</mo> <mfrac> <mrow> <mi>x</mi> <mo>-</mo> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> <mo>-</mo> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

式(5)中,x表示归一化前的正边(负边)相似度值,x′表示归一化后的正边(负边)相似度值,max表示vi与Gk中其他节点之间正边(负边)相似度的最大值,min表示vi与Gk中其他节点之间正边(负边)相似度的最小值;

未聚类节点vi与Gk中其他节点u之间的相似度值有两类,分别是正边相似度和负边相似度,分别针对两类相似度值进行归一化处理。

步骤2.4.5、利用式(6)计算第i个未聚类节点vi第t次游走到随机游走图Gk中所有节点的正概率向量和负概率向量

<mrow> <msubsup> <mi>s</mi> <mi>t</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>+</mo> </mrow> </msubsup> <mo>=</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>&alpha;</mi> <mo>)</mo> </mrow> <mo>&CenterDot;</mo> <msup> <msub> <mi>M</mi> <mo>+</mo> </msub> <mi>T</mi> </msup> <mo>&CenterDot;</mo> <msubsup> <mi>s</mi> <mrow> <mi>t</mi> <mo>-</mo> <mn>1</mn> </mrow> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>+</mo> </mrow> </msubsup> <mo>+</mo> <mi>&alpha;</mi> <mo>&CenterDot;</mo> <mi>d</mi> </mrow>

<mrow> <msubsup> <mi>s</mi> <mi>t</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>-</mo> </mrow> </msubsup> <mo>=</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>&alpha;</mi> <mo>)</mo> </mrow> <mo>&CenterDot;</mo> <msup> <msub> <mi>M</mi> <mo>-</mo> </msub> <mi>T</mi> </msup> <mo>&CenterDot;</mo> <msubsup> <mi>s</mi> <mrow> <mi>t</mi> <mo>-</mo> <mn>1</mn> </mrow> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>-</mo> </mrow> </msubsup> <mo>+</mo> <mi>&alpha;</mi> <mo>&CenterDot;</mo> <mi>d</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

式(6)中,矩阵M+与M-分别表示所有社团中任意节点间正边相似度值所构成的正边相似度矩阵和负边相似度值所构成的负边相似度矩阵。M+T和M-T分别表示是n×n维的矩阵M+与M-的转置;α表示跳转概率,且α=0.15;d表示转移概率向量,且为vi第t次游走到随机游走图Gk中所有节点的正概率向量;为vi第t次游走到随机游走图Gk中所有节点的负概率向量。

未聚类节点vi可能直接跳转到Gk中其他节点,也可能未直接跳转而是基于节点间的相似度游走到Gk中其他节点。其中,vi直接跳转到Gk中其他节点的概率为α·d,vi基于节点间的相似度游走到Gk中其他节点的正概率为负概率为

由于所有初始社团中节点数目之和为n,故矩阵M维数为n×n,向量d是n维的,概率向量与也是n维的。

步骤2.4.6、循环执行步骤2.4.6,直到概率向量与收敛为止;并将收敛时的正概率向量记为将负概率向量记为表示在随机游走图Gk中,未聚类节点vi游走到第j个已聚类节点uj的正概率;即表示在随机游走图Gk中,未聚类节点vi游走到第j个已聚类节点uj的负概率;即

步骤2.4.7、利用式(7)获得在随机游走图Gk中,未聚类节点vi游走到第j个初始社团Yj的正概率p+(vi→Yj|vi∈Gk)及负概率p-(vi→Yj|vi∈Gk):

<mrow> <msup> <mi>p</mi> <mo>+</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&RightArrow;</mo> <msub> <mi>Y</mi> <mi>j</mi> </msub> <mo>|</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <msub> <mi>G</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mi>m</mi> <mi>e</mi> <mi>a</mi> <mi>n</mi> <mo>{</mo> <msup> <mi>p</mi> <mo>+</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&RightArrow;</mo> <mi>u</mi> <mo>|</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <msub> <mi>G</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>|</mo> <mo>&ForAll;</mo> <mi>u</mi> <mo>&Element;</mo> <msub> <mi>Y</mi> <mi>j</mi> </msub> <mo>}</mo> </mrow>

<mrow> <msup> <mi>p</mi> <mo>-</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&RightArrow;</mo> <msub> <mi>Y</mi> <mi>j</mi> </msub> <mo>|</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <msub> <mi>G</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mi>m</mi> <mi>e</mi> <mi>a</mi> <mi>n</mi> <mo>{</mo> <msup> <mi>p</mi> <mo>-</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&RightArrow;</mo> <mi>u</mi> <mo>|</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <msub> <mi>G</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>|</mo> <mo>&ForAll;</mo> <mi>u</mi> <mo>&Element;</mo> <msub> <mi>Y</mi> <mi>j</mi> </msub> <mo>}</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>7</mn> <mo>)</mo> </mrow> </mrow>

式(7)中,和分别表示vi游走到初始社团Yj中所有节点正概率和负概率的均值。

该步骤利用上步所得结果,即在未聚类节点vi属于第k个初始社团Yk的条件下游走到所有初始社团中节点的正概率或者负概率,计算未聚类节点vi游走到第j个初始社团Yj中所有节点正概率或者负概率的均值。

步骤2.4.8、利用式(8)计算第i个未聚类节点vi游走到第j个初始社团Yj的正概率Pij+与负概率Pij-

<mrow> <msubsup> <mi>P</mi> <mi>i</mi> <mrow> <mi>j</mi> <mo>+</mo> </mrow> </msubsup> <mo>=</mo> <msup> <mi>p</mi> <mo>+</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&RightArrow;</mo> <msub> <mi>Y</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>q</mi> </msubsup> <mo>&lsqb;</mo> <msup> <mi>p</mi> <mo>+</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&RightArrow;</mo> <msub> <mi>Y</mi> <mi>j</mi> </msub> <mo>|</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <msub> <mi>G</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>&times;</mo> <msup> <mi>p</mi> <mo>+</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <msub> <mi>G</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>&rsqb;</mo> </mrow>

<mrow> <msubsup> <mi>P</mi> <mi>i</mi> <mrow> <mi>j</mi> <mo>-</mo> </mrow> </msubsup> <mo>=</mo> <msup> <mi>p</mi> <mo>-</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&RightArrow;</mo> <msub> <mi>Y</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>q</mi> </msubsup> <mo>&lsqb;</mo> <msup> <mi>p</mi> <mo>-</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&RightArrow;</mo> <msub> <mi>Y</mi> <mi>j</mi> </msub> <mo>|</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <msub> <mi>G</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>&times;</mo> <msup> <mi>p</mi> <mo>-</mo> </msup> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <msub> <mi>G</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>&rsqb;</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>8</mn> <mo>)</mo> </mrow> </mrow>

式(8)中:表示第i个未聚类节点vi能够与第k个初始社团Yk中所有节点相连的概率;S+(vi,uj)与S-(vi,uj)分别表示节点vi与节点uj的正边相似度与负边相似度。

该步骤中,p+(vi∈Gk)与p-(vi∈Gk)分别是节点vi与Gk中所有节点正边相似度或是负边相似度的平均值。该步骤利用全概率公式及条件概率公式计算节点vi属于社团Yj的正概率Pij+或是负概率Pij-

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