一种基于节点Jaccard相似度的社交网络社团发现方法

文档序号:6502275阅读:1538来源:国知局
一种基于节点Jaccard相似度的社交网络社团发现方法
【专利摘要】本发明公开了一种基于节点Jaccard相似度的社交网络社团发现方法,包括:对网络数据进行预处理;根据Jaccard相似度算法计算出每对节点的相似度;初始将每个节点分别看作一个社团;聚合相似度最高的社团;再次聚合根据所得社团计算的相似度最高的社团,直至网络中没有再能聚合的社团。本发明提出了通过计算社团点之间的Jaccard相似度采用层次聚类的思想进行社团划分的方法,有益效果为:在计算机处理过程中使用该方法较为简单、灵活;在社交网络计算中能准确的发现出用户所需的网络社团。
【专利说明】—种基于节点Jaccard相似度的社交网络社团发现方法
[0001]【技术领域】
本发明公开了一种基于节点Jaccard相似度的社交网络社团发现方法,属于复杂网络技术,具体地说是一种社交网络的社团发现技术。
【背景技术】
[0002]近几年,社交网络的发展如火如荼,国外的知名社交网站如Facebook、Twitter及Google+等,国内有人人网、QQ朋友网等等。从某种意义上说,社交网络是现实网络的一种映射。研究发现很多现实网络是具有社团结构的,通过分析,可以根据用户需求找到用户感兴趣的社团。现今人们对网络中的社团划分算法已经做了相当多的研究工作,已成为当前重要的学科研究领域之一。
[0003]在研究社团划分算法时,通常将网络用图来描述,即由节点集合V和边集合E组成的图G=(V,E)可表示一个网络。归纳图形分割研究而发展起来的算法如下:
Kernighan-Lin算法是一种基于贪婪算法原理的二分法。其基本原理是:定义一个增益函数Q,Q为两个社团内部的边数与连接两个社团之间的边数之差,之后寻找使Q值最大的划分方法。KL算法只采用最好的候选解,而拒绝接受所有较差的候选解,因此所找的是局部最优解而不是全局最优解。此外这种二分法最大的局限性在于事先知道社团的个数和社团的规模,用先验知识产生一个较好的初始社团结构;该算法对其初始解非常敏感,不好的初始解往往导致缓慢的收敛和较差的最终解。由此可见KL很难应用于不预先得知的网络大小的实际网络分析中。
[0004]基于Laplace矩阵特征值的谱平分法最先在计算机图形分割中被应用,它之所以在图形分割中有着较好的划分效果,是由于以严密的数学理论依据为指导的。它的基本思想是:基于一个无向图G对应的对称矩阵L,根据它的不同特征值对应的不同特征向量来确定网络的划分。由分析可知:在复杂网络划分中可以根据网络对应的Laplace矩阵的第二小的特征值将其首先分为2个社团,再对每个社团迭代进行划分,直到划分得到实际的网络,再此迭代过程中往往出现错误的划分,效果并不理想;谱平分法每次只能将网络平分,如果一个网络存在多个社团,就必须对子社团多次重复划分,然而多次划分必然依赖于第一次划分的正确性;分析复杂网络比较耗时;所以该算法不适合多社团或者多节点存在模糊性的复杂网络。
[0005]基于层次聚类发展而来的算法有很多,这类算法主要又分为两类:
(I)凝聚类算法,这种算法是自下而上的,其思想是首先将网络中的每个节点划分为单独的一个社团,然后基于社团聚合规则将不同的小社团聚合成更大的社团,直到满足要求为止;(2)分裂类方法,这种算法是自上而下的,其思想是首先将整个网络看成一个社团,然后依据社团划分规则,不停的将大的社团划分为较小的社团。
[0006]GN算法是一个基于边介数的社团发现算法,是典型的分裂方法。GN算法的基本原理是从网络中逐步移去介数最大的边。GN算法的基本步骤如下:
步骤1:计算复杂网络中所有边的边介数;步骤2:比较网络中所有的边介数并移除边介数最高的边;
步骤3:重复执行步骤I和2,直到每个节点就是一个独立的社团。
[0007]GN算法虽然克服了之前算法仅能二分的缺点,但没有一个量的定义,即不能判断网络的社团分解到什么程度才算是最合适;而且求取边介数这一个重要步骤耗时比较长,每次移除边介数最高的边之后,都要重新计算网络的边介数。
[0008]Newman快速算法是一种典型的凝聚算法。Newman快速算法借鉴了层次聚类算法的思想,基于协调混合定义了一个衡量网络划分质量的标准,度模块。算法首先将网络中的所有节点初始化为一个社团,即初始时,一个社团只包含一个节点,此外A个社团构成的左阶方阵A= (A7)初始化为:
【权利要求】
1.一种基于节点Jaccard相似度的社交网络社团发现方法,包括以下步骤: 步骤一:对社交网络数据进行预处理,其中包括:将社交网络中的用户抽象成网络中的节点,获取包括所有节点构成的集合,两节点之间边构成的集合; 步骤二:根据步骤一预处理的结果通过Jaccard相似度的计算方法计算出所述社交网络中的每两个节点的Jaccard相似度; 所述两节点的Jaccard相似度计算方法如下; 2-1具体地,计算社交网络数据中任意节点i和节点j的Jaccard相似度:首先分别获取与节点i或节点j相互连接的各个节点以及包含节点i或j本身的节点的集合,既集合Vi或集合Vj ; 2-2计算节点i和节点j的Jaccard相似度:集合Vi和Vj的交集与并集的比值,即SIM (Vi, Vj) = (Vi n Vj)/(Vi U Vj); 步骤三:根据步骤一所得的所有节点和步骤二所得每对节点的相似度,组成一个节点相似度矩阵; 步骤四:选择步骤三所述节点相似度矩阵中相似度最大的进行聚合,由此获得新的社团; 步骤五:计算所述社交网络数据中两个社团之间的Jaccard相似度; 所述两个社团之间的Jaccard相似度计算方法如下: 5-1具体地,计算社交网络数据中任意社团k和社团I的Jaccard相似度:首先获取来自社团k的任意节点m和来自社团I的任意节点η ; 5-2如所述步骤二的方法计算节点m和节点η的Jaccard相似度; 5-3重复5-1步骤至5-2步骤计算出分别来自社团k和社团I组成的所有节点对的相似度; 5-4根据步骤5-3得出的社团k和社团I的每对节点相似度并根据结果求出平均值,既两个社团之间的Jaccard相似度; 步骤六:根据所述步骤五的方法计算社交网络数据中所有社团间的Jaccard相似度;步骤七:根据所述社交网络数据中社团和所述步骤六计算的结果,构成网络中各个社团的社团相似度矩阵; 步骤八:根据步骤七所述社团相似度矩阵中相似度最大的社团进行聚合,构成新的社团; 步骤九:重复步骤五至步骤八,直到整个网络聚合成一个社团为止。
2.根据权利要求1所述一种基于节点Jaccard相似度的社交网络社团发现方法,其特征包含:所述步骤三得到所诉节点相似度矩阵后,将社团网络数据中每一个节点初始化为一个社团。
3.根据权利要求1所诉的一种基于节点Jaccard相似度的社交网络社团发现方法,其特征包含:所述对社交网络数据进行预处理,可获得一个邻接矩阵,所述邻接矩阵中的元素只有I和O,I表示行和列代表的节点相连,O表示行和列代表的节点不相连。
4.根据权利要求1所述的一种基于节点Jaccard相似度的社交网络社团发现方法,其特征包含:两个社团之间的Jaccard相似度,所述步骤五中5_1或5_3需获取的节点对必须分别来自所求的两个社团。
【文档编号】G06F17/30GK103838803SQ201310154663
【公开日】2014年6月4日 申请日期:2013年4月28日 优先权日:2013年4月28日
【发明者】张小松, 牛伟纳, 罗强, 李建彬, 廖军, 张可, 陈瑞东, 王东, 李宏鸢 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1