发明名称 基于三角簇多标签传播的复杂网络社区结构挖掘方法
摘要 一种基于三角簇多标签传播的复杂网络社区挖掘方法,包括以下步骤:搜索网络中互不相交的三角簇;为不同三角簇中的节点设置互不相同的标签作为标签传播的起始状态;按照多标签更新规则,对于网络中的所有节点,同步进行标签的传播更新;将更新后得到的标签数组与之前更新得到的标签数组进行比较;如果标签仍在传播,则继续进行更新;如果标签产生振荡,则进行振荡消除处理后再继续进行更新;如果标签不再改变,则停止更新,得到网络中的具有重叠的社区结构。本发明的时间复杂度很低,适用于大规模的复杂网络。此外,本发明可以很好地检测出网络社区结构的重叠部分,并且具有良好的鲁棒性,检测的准确度很高。
申请公布号 CN103020267B 申请公布日期 2016.01.20
申请号 CN201210573195.X 申请日期 2012.12.26
申请人 上海交通大学 发明人 李生红;赵郁忻;张爱新;刘超
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 上海新天专利代理有限公司 31213 代理人 张泽纯
主权项 一种基于三角簇多标签传播的复杂网络社区挖掘方法,包括以下步骤:搜索网络中互不相交的三角簇;为不同三角簇中的节点设置互不相同的标签作为标签传播的起始状态;按照多标签更新规则,对于网络中的所有节点,同步进行标签的传播更新;将更新后得到的标签数组与之前更新得到的标签数组进行比较;如果标签仍在传播,则继续进行更新;如果标签产生振荡,则进行振荡消除处理后再继续进行更新;如果标签不再改变,则停止更新,得到网络中的具有重叠的社区结构,其特征在于:该方法的具体步骤如下:①为待测的复杂网络G的每个节点赋予一个空标签;②按下列公式计算每条边e<sub>ij</sub>的三角簇系数TC(e<sub>ij</sub>):TC(e<sub>ij</sub>)=|N(v<sub>i</sub>)∩N(v<sub>j</sub>)|其中:N(v<sub>i</sub>)是节点v<sub>i</sub>的邻居节点的集合,∩是求交集的运算符,|·|是求集合基数的运算符,i为1、2、3、……,N;③搜索出三角簇系数最大的边;④将该边的三角簇中的所有节点赋予一个不同于网络中其他标签的基数为1的标签;之后将这些节点从网络中删除,得到新的网络G’,⑤判断是否存在三角簇系数大于0的边,存在,则返回步骤②,否则将此时网络中所有节点的标签保存为一个标签数组L<sup>(0)</sup>,作为标签传播的初始状态,进入步骤⑥;⑥利用下式同步进行标签的传播更新:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msubsup><mi>L</mi><mi>i</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></msubsup><mo>=</mo><mi>arg</mi><munder><mi>max</mi><mi>l</mi></munder><munder><mi>&Sigma;</mi><mrow><msub><mi>v</mi><mi>j</mi></msub><mo>&Element;</mo><mi>N</mi><mrow><mo>(</mo><msub><mi>v</mi><mi>i</mi></msub><mo>)</mo></mrow></mrow></munder><mi>&delta;</mi><mrow><mo>(</mo><msubsup><mi>L</mi><mi>j</mi><mrow><mo>(</mo><mi>t</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>,</mo><mi>l</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000688262570000011.GIF" wi="739" he="148" /></maths><maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>&delta;</mi><mrow><mo>(</mo><msubsup><mi>L</mi><mi>j</mi><mrow><mo>(</mo><mi>t</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>,</mo><mi>l</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mn>1</mn><mo>,</mo></mtd><mtd><mi>l</mi><mo>&Element;</mo><msubsup><mi>L</mi><mi>j</mi><mrow><mo>(</mo><mi>t</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></msubsup></mtd></mtr><mtr><mtd><mn>0</mn><mo>,</mo></mtd><mtd><mi>l</mi><mo>&NotElement;</mo><msubsup><mi>L</mi><mi>j</mi><mrow><mo>(</mo><mi>t</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></msubsup></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000688262570000012.GIF" wi="847" he="219" /></maths>其中:<img file="FDA0000688262570000013.GIF" wi="88" he="89" />是节点v<sub>i</sub>进行第t次更新后的标签,t为1以上的正整数,N(v<sub>i</sub>)是节点v<sub>i</sub>的邻居节点的集合,<img file="FDA0000688262570000014.GIF" wi="117" he="94" />是节点v<sub>i</sub>的邻居节点v<sub>j</sub>在第t‑1次更新后的标签,|·|是求集合基数的运算符,<img file="FDA0000688262570000015.GIF" wi="187" he="84" />是求元素l的集合的运算符,所求得的l使得max后所定义的函数取得最大值,在第t次更新时,利用第t‑1次更新得到的标签数组L<sup>(t‑1)</sup>,对于复杂网络G中的所有节点按照多标签更新的规则,同步进行标签的传播更新,并保存至新的标签数组L<sup>(t)</sup>;⑦比较标签数组:将第t次更新得到的标签数组L<sup>(t)</sup>与之前t‑1次更新得到的标签数组L<sup>(1)</sup>,L<sup>(2)</sup>,…,L<sup>(t‑1)</sup>进行比较,当t次的标签数组均不相同,则返回步骤⑥;当L<sup>(1)</sup>,L<sup>(2)</sup>,…,L<sup>(t‑2)</sup>中存在和L<sup>(t)</sup>相同的标签数组,则进入表明更新出现了振荡,则进行步骤⑧;当标签数组L<sup>(t‑1)</sup>和L<sup>(t)</sup>相同,则进入步骤⑨;⑧振荡消除处理:假定标签数组L<sup>(1)</sup>,L<sup>(2)</sup>,…,L<sup>(t‑2)</sup>中存在L<sup>(k)</sup>和L<sup>(t)</sup>相同,则在标签数组L<sup>(k+1)</sup>,…,L<sup>(t)</sup>中搜索出所有从第k+1次更新至第t次更新标签发生过改变的节点,在L<sup>(t)</sup>中将这些节点的标签分别替换成不同于网络中其他标签的基数为1的标签;然后返回步骤⑥;⑨得到网络的具有重叠的社区结构,网络中拥有相同标签元素的节点属于同一个网络社区结构,标签基数大于1的节点即为网络社区结构的重叠部分。
地址 200240 上海市闵行区东川路800号