发明名称 一种基于信任关联度的微博网络社区发现方法
摘要 目前,现有的社交网络快速划分社区算法存在质量低、不能充分利用节点链接信息的问题,而效果较好的划分算法也存在时间复杂度高、无法应用于大规模社交网络的问题。为此,提出了基于信任关联度的微博网络社区发现算法。在定义社区节点对信息群度、动态分配网络边权重值的基础上,计算节点的信任关联度矩阵,再通过改进的K-medoids算法对节点进行聚类分析,通过计算社区数的LC模块度确定网络社区的理想结构。在新浪微博数据集上进行实验,结果表明,该算法能使得社区的划分结果更准确。
申请公布号 CN105159918A 申请公布日期 2015.12.16
申请号 CN201510439245.9 申请日期 2015.07.23
申请人 常州大学 发明人 刘玲;杨长春;顾寰;吕晨
分类号 G06F17/30(2006.01)I;G06Q50/00(2012.01)I 主分类号 G06F17/30(2006.01)I
代理机构 代理人
主权项 一种基于信任关联度的微博网络社区发现方法,其特征在于包括以下步骤:101、获取微博数据来定义节点的信息群度,具体包括以下步骤:Al、根据节点的原创微博数o<sub>ij</sub>、微博转发数r<sub>ij</sub>来计算出节点之间的活跃值a<sub>ij</sub>,其中有a<sub>ij</sub>=(β<sub>1</sub>×o<sub>ij</sub>+β<sub>2</sub>×r<sub>ij</sub>)/n;Bl、根据节点之间的评论数为c<sub>ij</sub>、赞数为l<sub>ij</sub>,微博总数n来计算出节点之间的博文质量值q<sub>ij</sub>,其中有q<sub>ij</sub>=(λ<sub>1</sub>×c<sub>ij</sub>+λ<sub>2</sub>×l<sub>ij</sub>)/n;Cl、将节点之间边权重w<sub>ij</sub>的值设为节点对的信息群度,即d<sub>ij</sub>=1/(a<sub>ij</sub>+q<sub>ij</sub>)w<sub>ij</sub>=d<sub>ij</sub>102、根据101中求得的信息群度来计算节点之间的信任关联度,具体包括以下步骤:A2、由于节点i与j之间的节点对的信息群度越小,它们的信任关联度就越大,定义两个相邻节点v<sub>i</sub>、v<sub>j</sub>的信任关联度:node Relation(v<sub>i</sub>,v<sub>j</sub>)=1‑w<sub>ij</sub>B2、利用深度优先搜索算法求得图中所有的非相邻节点之间的最短路径,然后再求出非相邻节点之间的最大信任关联度。假设微博网络中非相邻节点v<sub>i</sub>和节点v<sub>j</sub>之间的最短路径为shortPath(v<sub>i</sub>,v<sub>j</sub>)={(v<sub>i</sub>,v<sub>k</sub>),(v<sub>k</sub>,v<sub>m</sub>),...,(v<sub>n</sub>,v<sub>j</sub>)},如果非相邻节点间的最短路径数为s,则选择其中乘积最大的作为非相邻节点的信任关联度,即<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>n</mi><mi>o</mi><mi>d</mi><mi>e</mi><mi> </mi><mi>Re</mi><mi>l</mi><mi>a</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi><mrow><mo>(</mo><msub><mi>v</mi><mi>i</mi></msub><mo>,</mo><msub><mi>v</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>=</mo><munder><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow><mi>s</mi></munder><mo>{</mo><munder><mi>&Pi;</mi><mrow><mo>(</mo><msub><mi>v</mi><mi>i</mi></msub><mo>,</mo><msub><mi>v</mi><mi>k</mi></msub><mo>)</mo><mo>&Element;</mo><mi>s</mi><mi>h</mi><mi>o</mi><mi>r</mi><mi>t</mi><mi>P</mi><mi>a</mi><mi>t</mi><mi>h</mi><mo>(</mo><msub><mi>v</mi><mi>i</mi></msub><mo>,</mo><msub><mi>v</mi><mi>j</mi></msub><mo>)</mo></mrow></munder><mi>n</mi><mi>o</mi><mi>d</mi><mi>e</mi><mi> </mi><mi>Re</mi><mi>l</mi><mi>a</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi><mrow><mo>(</mo><msub><mi>v</mi><mi>i</mi></msub><mo>,</mo><msub><mi>v</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>}</mo></mrow>]]></math><img file="FDA0000765624730000011.GIF" wi="1348" he="187" /></maths>C2、根据A2、B2可以构造微博网络的节点信任关联度矩阵R,即R=[node Relation(v<sub>i</sub>,v<sub>j</sub>)]<sub>|V|×|V|</sub>D2、由于R是一个对称矩阵,根据节点与其自身的信任关联度值为1,因此为了计算方便,将矩阵R主对角线上的元素值设为相应节点的度,即<img file="FDA0000765624730000012.GIF" wi="970" he="157" />103、在101、102的基础上再采用LC模块度,它与社区的连接密度和内聚系数相关,具体包括以下步骤:A3、假设有某种划分形式,将网络G划分为S<sub>1</sub>,S<sub>2</sub>,…,Sn。首先,计算社区Si的连接密度L(Si),其中,n<sub>i</sub>表示社区Si的节点数;E(S<sub>i</sub>)表示社区Si内部的边数,即<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>L</mi><mrow><mo>(</mo><msub><mi>S</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><mfenced open = '{' close = ''><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mrow><msub><mi>n</mi><mi>i</mi></msub><mo>=</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mfrac><mrow><mn>2</mn><mi>E</mi><mrow><mo>(</mo><msub><mi>S</mi><mi>i</mi></msub><mo>)</mo></mrow></mrow><mrow><msub><mi>n</mi><mi>i</mi></msub><mrow><mo>(</mo><msub><mi>n</mi><mi>i</mi></msub><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></mfrac></mtd><mtd><mrow><msub><mi>n</mi><mi>i</mi></msub><mo>&gt;</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000765624730000021.GIF" wi="542" he="226" /></maths>B3、然后,计算社区Si的内聚系数Coh(Si),其中,i≠j,并且A(S<sub>i</sub>,S<sub>j</sub>)表示连接社区Si和Sj之间的边的总数,即<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>C</mi><mi>o</mi><mi>h</mi><mrow><mo>(</mo><msub><mi>S</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><mfenced open = '{' close = ''><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mi>E</mi><mrow><mo>(</mo><msub><mi>S</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mfrac><mrow><mi>E</mi><mrow><mo>(</mo><msub><mi>S</mi><mi>i</mi></msub><mo>)</mo></mrow></mrow><mrow><mi>E</mi><mrow><mo>(</mo><msub><mi>S</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>+</mo><munder><mi>&Sigma;</mi><mrow><mi>j</mi><mo>&NotEqual;</mo><mn>1</mn></mrow></munder><mi>A</mi><mrow><mo>(</mo><msub><mi>S</mi><mi>i</mi></msub><mo>,</mo><msub><mi>S</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow></mfrac></mtd><mtd><mrow><mi>E</mi><mrow><mo>(</mo><msub><mi>S</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>&gt;</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000765624730000022.GIF" wi="891" he="276" /></maths>C3、在A3、B3的基础上计算LC模块度Q(S<sub>1</sub>,S<sub>2</sub>,...,S<sub>n</sub>),即<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>Q</mi><mrow><mo>(</mo><msub><mi>S</mi><mn>1</mn></msub><mo>,</mo><msub><mi>S</mi><mn>2</mn></msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>S</mi><mi>n</mi></msub><mo>)</mo></mrow><mo>=</mo><mfenced open = '{' close = ''><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mi>n</mi><mo>=</mo><mn>0</mn></mrow></mtd></mtr><mtr><mtd><mfrac><mrow><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><mi>L</mi><mrow><mo>(</mo><msub><mi>S</mi><mi>i</mi></msub><mo>)</mo></mrow><mi>C</mi><mi>o</mi><mi>h</mi><mrow><mo>(</mo><msub><mi>S</mi><mi>i</mi></msub><mo>)</mo></mrow></mrow><mi>n</mi></mfrac></mtd><mtd><mrow><mi>n</mi><mo>&gt;</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000765624730000023.GIF" wi="892" he="291" /></maths>D3、再用改进的K‑medoids算法对节点进行聚类,首先为每个簇随意选择一个代表对象,剩余的对象根据其与代表对象的距离分配给最近的一个簇,以簇类各个节点轮换为相应的聚类中心,最后得出最大的LC模块度值对应社区划分的最佳结果。
地址 213164 江苏省常州市武进区滆湖路1号