一种基于偏好学习机制的重叠社区发现方法及系统与流程

文档序号:15558420发布日期:2018-09-29 01:40阅读:166来源:国知局

本发明涉及复杂网络重叠社区发现领域,尤其涉及一种基于偏好学习机制的重叠社区发现方法及系统。



背景技术:

近年来,复杂网络的研究受到了学术界及商业界的普遍关怀,尤其是随着web2.0技术的迅猛发展及移动终端的普及,信息共享网络、博客网络、通讯系统、邮件网络、短信网络与在线聊天室等在线社区网络的飞速发展吸引了人们高度的注意,成为人们生活中必不可少的社交工具,帮助人们在虚拟世界中维护着自己的化会关系。因此,对以社交网络系统为代表的复杂系统进行评估成为一项越来越重要的事情。其中,复杂网络研究中的一个热门话题就是社区发现。社区概念可从两个方面来理解:一是社区的成员有共同的兴趣爱好;二是社区的成员之间的联系相比于社区外的联系要紧密。因此,发现社区的过程,主要是通过一定的算法计算这些成员间的紧密程度,来实现社区网络的划分。在大型复杂网络中自动搜寻或发现社区,具有非常重要的实用价值。比如发现潜在的犯罪团伙、更加精准的进行市场营销、预测防备病毒的传播等。移动通讯公司可以针对不同的社区提供不同的个性化服务,根据具体需求为用户推荐业务,在知晓社区恃性及网络结构的前提下,这样的推荐具有更高的成功率。此外,在生物学网络中,通过社区可以发现物质元素的组成具有一定的规律化,能助于人们理解其中的网络结构,更清晰地探索其内部的运行机理。在计算机科学中,社区网络的分析和研究有助于在并行计算中合理地分配任务,减少通信成本,提高计算的效率。

社区网络包括非重叠社区与重叠社区,现实生活中的社区网络节点大多属于多个社区,比如节点1既属于社区a,又属于社区b,则认为社区a与社区b为重叠社区;由于社交网络中每个人的兴趣并不是单一的,因此重叠社区普遍存在,且通过重叠社区进行分析与研究能得到更符合现实需要的结果;目前,采用发现重叠社区的发现方法多为仅仅关注连接本身而忽略了连接中所隐藏的偏好信息,且当前大多数算法进行标签传播过程时节点更新顺序是随机的,这就容易导致每一次执行算法产生的结果都有可能不一样,从而导致算法的不稳定性和分析结果不准确等局面。

因此,如何考虑偏好关系,快速、高效、准确、稳定的检测出复杂网络中的重叠社区结构成为急需解决的问题。



技术实现要素:

本发明目的在于提供一种基于偏好学习机制的重叠社区发现方法及系统,以考虑偏好关系,达到快速、高效、准确、稳定的检测出复杂网络中的重叠社区的目的。

为实现上述目的,本发明提供了一种基于偏好学习机制的重叠社区发现方法,包括以下步骤:

s1:为每一个节点分配唯一的标签,设定节点对该标签的从属度,然后根据节点的度数和局部聚类系数定义节点的重要性,其中,将节点的局部聚类系数记为c(x),采用计算公式为:

式中,n(x)表示节点x的度数,n表示节点x与其邻居节点所形成集合中节点之间所能形成的边的个数;

将节点的重要性记为importance(x),采用计算公式为:

importance(x)=|n(x)"2*c(x);

s2:根据所述节点的重要性以从高到低的顺序对节点进行排序,定义各节点之间的标签相似度、jaccard系数以及连接强度,并计算节点之间的偏好程度,其中,偏好程度的计算公式为:

preference(x,y)=|n(y)|*jaccard(x,y)*ec(y)+cs(x,y)+ls(x,y)

式中,preference(x,y表)示节点x对节点y的偏好程度,n(y)表示节点y的度数,jaccard(x,y)表示节点x与节点y的jaccard系数,c(y)表示节点y的局部聚类系数,cs(x,y)表示节点x与节点y的连接强度,ls(x,y)表示节点x与节点y的标签相似度;

s3:选择最重要的节点,根据所述最重要的节点的偏好程度为所述最重要的节点选择学习对象,并根据学习结果对所述最重要的节点进行归一化处理;然后选择第二重要的节点,根据所述第二重要的节点的偏好程度为所述第二重要的节点选择学习对象,并根据学习结果对所述第二重要的节点进行归一化处理;以此类推,直至完成对排序最末的节点的归一化处理,以实现一次迭代过程,得到经过一次迭代后的各节点关系图;其中,所述各节点关系图包括各节点拥有的标签和各节点对该标签的从属度;

s4:基于上一次迭代后的各节点关系图,并对各节点引入新的学习对象重复上述步骤s3,以此类推,直至迭代至设定次数以得到最终的各节点关系图,将拥有相同标签的节点划分为同一个社区,将拥有至少两个标签的节点视为重叠节点,将所述重叠节点所在的社区视为重叠社区。

优选地,所述根据所述节点的节点度数和节点局部聚类系数定义所述节点的重要性具体包括以下步骤:

(1)为待检测社区的每一个节点分配一个唯一的标签;

(2)计算节点的局部聚类系数c(x),采用计算公式为:

式中,|n(x)|表示节点x的邻居个数,n表示节点x与其邻居节点所形成集合中节点之间所能形成的边的个数。

(3)根据所述局部聚类系数和节点度数计算节点的重要性importance(x),采用计算公式为:

importance(x)=|n(x)|2*c(x)。

优选地,所述步骤s2具体包括以下步骤:

(1)定义节点x与其邻居节点y的jaccard系数为:

式中,γ(x)表示包含节点x与其邻居节点的集合,γ(y)表示包含节点y与其邻居节点的集合,其中,γ(x)的计算公式为:

γ(x)={y∈v|(x,y)∈e}∪{x};

式中,v表示各节点集合,e表示各节点的连边集合;

(2)定义节点x与其邻居节点y的连接强度:

节点x和其两个邻居节点能形成一个三角形,式中,tx表示包含节点x的三角形个数,|n(x)∩n(y)|表示同时包含节点x和节点y的三角形个数;

(3)定义节点x与其邻居节点y的标签相似度:

式中,cx表示节点x所属的标签,ls(x,y)的取值范围为[0,1];

(4)根据上述步骤(1)、步骤(2)以及步骤(3)计算得到偏好学习公式为:

preference(x,y)=|n(y)|*jaccard(x,y)*ec(y)+cs(x,y)+ls(x,y)

优选地,在进行所述步骤(1)之前,节点x根据以下公式计算得到需学习的对象节点y:

式中,n(x)表示节点x邻居节点的集合,yi表示节点x的邻居节点。

优选地,所述步骤s3中所述归一化处理具体包括传播节点标签、更新节点对相应标签的从属度以及淘汰从属度小于设定值的节点。

优选地,所述设定值为1/|n(x)|,其中,|n(x)|表示节点x的度数。

为实现上述目的,本发明提供一种基于偏好学习机制的重叠社区发现系统,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。

本发明具有以下有益效果:

1)根据节点的度数和局部聚类系数定义节点的重要性,并基于节点的重要性对节点进行排序,保证了节点更新时的固定顺序,克服了原有算法的随机性,提高了本方法在使用过程中的稳定性与鲁棒性;

2)基于偏好学习机制的重叠社区发现方法模拟了现实生活中人们信息交流场景,保证了算法结果的高准确性、高稳定性以及高效率性;

3)本发明基于lpa算法提出基于偏好学习机制的重叠社区发现方法,具有快速且高效的收敛能力,且实现了分析过程的无参化,适用性强。

下面将参照附图,对本发明作进一步详细的说明。

附图说明

构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明优选实施例1的基于偏好学习机制的重叠社区发现方法流程图;

图2是本发明优选实施例1的karate网络中各节点重要性示意图;

图3是本发明优选实施例3的风筝网络拓扑图;

图4是本发明优选实施例2的风筝网络中各节点重要性示意图;

图5是本发明优选实施例2的风筝网络中各节点被初始化后的拓扑示意图;

图6(a)是本发明优选实施例2的风筝网络第一次迭代后的节点关系图;

图6(b)是本发明优选实施例2的风筝网络若干次迭代后的最终节点关系图;

图7是本发明优选实施例2的重叠社区划分结果图;

图8是本发明优选实施例3中各算法实验结果对比图。

具体实施方式

以下结合附图对本发明的实施例进行详细说明,但是本发明可以由权利要求限定和覆盖的多种不同方式实施。

实施例1

参见图1,本实施例公开一种基于偏好学习机制的重叠社区发现方法,包括以下步骤:

s1:为每一个节点分配唯一的标签,设定节点对该标签的从属度,然后根据节点的度数和局部聚类系数定义节点的重要性,其中,将节点的局部聚类系数记为c(x),采用计算公式为:

式中,n(x)表示节点x的度数,n表示节点x与其邻居节点所形成集合中节点之间所能形成的边的个数;

将节点的重要性记为importance(x),采用计算公式为:

importance(x)=|n(x)|2*c(x);

s2:根据节点的重要性以从高到低的顺序对节点进行排序,定义各节点之间的标签相似度、jaccard系数以及连接强度,并计算节点之间的偏好程度,其中,偏好程度的计算公式为:

preference(x,y)=|n(y)|*jaccard(x,y)*ec(y)+cs(x,y)+ls(x,y)

式中,preference(x,y表)示节点x对节点y的偏好程度,n(y)表示节点y的度数,jaccard(x,y)表示节点x与节点y的jaccard系数,c(y)表示节点y的局部聚类系数,cs(x,y)表示节点x与节点y的连接强度,ls(x,y)表示节点x与节点y的标签相似度;

s3:选择最重要的节点,根据最重要的节点的偏好程度为最重要的节点选择学习对象,并根据学习结果对最重要的节点进行归一化处理;然后选择第二重要的节点,根据第二重要的节点的偏好程度为第二重要的节点选择学习对象,并根据学习结果对第二重要的节点进行归一化处理;以此类推,直至完成对排序最末的节点的归一化处理,以实现一次迭代过程,得到经过一次迭代后的各节点关系图;其中,各节点关系图包括各节点拥有的标签和各节点对该标签的从属度;

s4:基于上一次迭代后的各节点关系图,并对各节点引入新的学习对象重复上述步骤s3,以此类推,直至迭代至设定次数以得到最终的各节点关系图,将拥有相同标签的节点划分为同一个社区,将拥有至少两个标签的节点视为重叠节点,将重叠节点所在的社区视为重叠社区。

需要说明的是,首先对各节点进行重要性判别,并将节点按照重要性高低进行排序,以便于在后续的学习与更新过程中依据该节点的重要性完成操作,能改变现有算法的结果不稳定的现状,进一步提高系统的稳定性和鲁棒性。

优选地,经过多次实验,上述设定次数设为50次,但本发明并不仅限于此,在能达到相同目的的情况下,设定次数可稍作调整。

需要说明的是,经过第一次迭代之后,每个节点拥有的标签个数发生改变,且该节点对其拥有的标签从属度也发生变化,其具体变化原理和过程详见以下风筝网络实施例。

作为本实施例优选的实施方式,步骤s2具体包括以下步骤:

(1)为待检测社区的每一个节点分配一个唯一的标签;

(2)计算节点的局部聚类系数c(x),采用计算公式为:

式中,|n(x)|表示节点x的邻居个数,n表示节点x与其邻居节点所形成集合中节点之间所能形成的边的个数。

(3)根据局部聚类系数和节点度数计算节点的重要性importance(x),采用计算公式为:

importance(x)=|n(x)|2*c(x)。

作为本实施例优选的实施方式,根据信息相似度计算偏好程度具体包括以下步骤:

(1)定义节点x与其邻居节点y的jaccard系数为:

式中,γ(x)表示包含节点x与其邻居节点的集合,γ(y)表示包含节点y与其邻居节点的集合,其中,γ(x)的计算公式为:

γ(x)={y∈v|(x,y)∈e}∪{x};

式中,v表示各节点集合,e表示各节点的连边集合;

(2)定义节点x与其邻居节点y的连接强度:

节点x和其两个邻居节点能形成一个三角形,式中,tx表示包含节点x的三角形个数,|n(x)∩n(y)|表示同时包含节点x和节点y的三角形个数;

(3)定义节点x与其邻居节点y的标签相似度:

式中,cx表示节点x所属的标签,ls(x,y)的取值范围为[0,1];

(4)根据上述步骤(1)、步骤(2)以及步骤(3)计算得到偏好学习公式为:

preference(x,y)=|n(y)|*jaccard(x,y)*ec(y)+cs(x,y)+ls(x,y)

需要说明的是,定义节点相似度概念,并基于该相似度概念提出基于偏好机制来发现重叠社区的方法,能提升整个分析方法中信息的传播效率,缩短整个方法的运行时间,并且能提高社区划分的准确性。

作为本实施例优选的实施方式,在进行步骤(1)之前,节点x根据以下公式计算得到需学习的对象节点y:

式中,n(x)表示节点x邻居节点的集合,yi表示节点x的邻居节点。

作为本实施例优选的实施方式,步骤s3中归一化处理具体包括传播节点标签、更新节点对相应标签的从属度以及淘汰从属度小于设定值的节点。优选地,该设定值为1/|n(x)|,其中,|n(x)|表示节点x的度数。

如上所述,本发明根据节点的节点度数和节点局部聚类系数定义节点的重要性,并基于节点重要对节点进行排序,保证了节点更新时的固定顺序,克服了原有算法的随机性,提高了本方法在使用过程中的稳定性与鲁棒性;且基于偏好学习机制的重叠社区发现方法模拟了现实生活中人们信息交流场景,保证了算法结果的高准确性、高稳定性以及高效率性。

具体地,选取美国空手道karate网络作为真实数据集,该网络是社会网络分析领域的经典数据集。其大致为美国一所大学中的空手道俱乐部34名成员之间的社会关系。基于这些成员在俱乐部内部的交往情况构造了成员之间的社会关系网,将每一位成员视为一个节点,两节点之间有一条边则意味着相应成员之间至少是交往频繁的朋友关系。经过初步分析,该网络包含34个节点和78条边。后来因为对俱乐部未来发展方向的想法分歧,该俱乐部分裂成了以教练员(1号节点)和队长(33号节点)为首的两个社团。

首先,使用本发明提出的节点重要性公式对karate网络中节点的重要性进行仿真计算,得到各节点重要性如图2所示,其中,图2只显示奇数节点,不显示偶数节点。从图2可以看出,利用本发明所提出的节点重要性公式所计算出的节点中比较重要的节点有1、33、34号节点,比较不重要的节点包括10、12号节点。而事实上1、33、34号均为该俱乐部核心人员;而10号节点游离于分裂后的两个社团之间,12号节点则是边缘人物。基于上述事实,可以证实本发明所提出的节点重要性公式能较为准确的反应出真实网络的重要性特征。

实施例2

本实施例以风筝网络为例进行分析说明,首先,需要明确的是,风筝网络是复杂网络社团划分领域常见的一种小型模拟网络,该网络具有7个节点和10条边,其网络的拓扑图如图3所示,根据本发明提出的节点重要性公式计算拓扑图中所有节点重要性,得到风筝网络中各节点重要性如图4所示,则将风筝网络中各节点按照节点重要性从高到低进行排序后的顺序为4、1、3、5、7、2、6。初始化中以节点id作为初始社区标签,得到初始化后的拓扑示意图如图5所示,然后,节点按照上述顺序依次进行学习与归一化完成一次迭代过程,其中,该风筝网络第一次迭代后的节点关系图如图6(a)所示,经过若干次迭代之后,得到最终的节点关系图,即网络拓扑图社区划分到达稳定状态,如图6(b)所示。进一步地,进行社区划分,具体地,将稳定之后的状态中包含同样标签的节点划分为同一社区,可以得到重叠社区划分结果如图7所示,其中,4号节点同时属于两个社区,为重叠节点。

至此,该风筝网络简单重现了本发明所提出的基于偏好学习机制的重叠社区发现方法中的每一个步骤。通过实验结果证明,本发明提供的一种基于偏好学习机制的重叠社区发现方法能准确且快速地发现重叠社区。

实施例3

本实施例中,选取了六个该领域常用的真实数据集验证本发明提出的一种基于偏好学习机制的重叠社区发现方法(以下简称plpa),另外选取四种经典算法进行对比,在评价指标方面采取受到广泛应用的扩展的模块度指标eq作为本实验的评价指标。其中,实验环境为:inteli5-45903.2ghzcpu,8g内存,windows8操作系统的pc机。

具体地,采用六个重叠社区发现领域常用的数据集对plpa算法进行验证,数据集的参数如下表1所示:

表1真实网络数据集

另外,采用四种经典算法进行对比实验,更具体地,该四种经典算法包括cpm算法、link算法、copra算法以及slpa算法。

首先,本领域技术人员应当明确的是:cpm算法是由palla基于完全子图概念提出的,该算法假设是由若干完全链接子图构成,通过搜寻邻接团子图的方式构建重叠社区;link算法是由tsevans与rlambiotte与2009年提出的重叠社区发现算法,该算法通过网络的链接进行划分用于揭示社团结构,该算法允许社区在节点上重叠,进而通过对原始网络的线图进行节点划分来实现重叠社区发现;copra算法是由gregory于2010年提出的基于标签传播算法(lpa算法)扩展的,该算法的核心思想是允许每个节点携带多个标签,这就意味着允许每个节点同时属于多个社区,每次标签更新过程中随机制定节点更新顺序,标签传播过程中随机从邻居节点中学习标签并作归一化,该算法的缺点是容易形成怪兽社区;slpa算法是xiejr于2011年提出的,其特色在于将一个节点作为信息的收集方而将其邻居定义为发送方,发送方定义了speakrule用于向接受者提供标签,而接受方根据预先制定的listenerrule接受标签并存储在本节点的记忆区中,经过一定次数的迭代后,删除占比小于一定阈值的标签后将拥有相同标签的节点视作同个社区,同时拥有多个标签的节点被称作重叠节点。

值得指出的是,由于本实施例在具体实验时采取的数据集属于真实数据集,而真实数据集的社团结构是不明确的,因此采用扩展的模块度eq作为本实验的评价指标,eq的取值范围为[0,1],eq的值越大表示重叠社区的发现结果越好。eq的表达式为:

式中,ki表示节点i的度,m表示网络的边数,a表示网络的邻接矩阵,qi表示节点i所属社团个数,qj表示节点j所属社团个数。

其中,每个算法采取运行100次取平均值的方式避免算法的随机性,得到实验结果如图8所示,根据图8可知,除个别实验数据集外,其他数据集上本发明所提出的plpa算法得到的重叠社区结构都明显高于其余对比算法。

实施例4

与上述实施例1相对应地,本实施例提供一种基于偏好学习机制的重叠社区发现系统,包括存储器、处理器及存储在所述存储器上并可在该处理器上运行的计算机程序,该处理器执行上述程序时实现上述实施例1中所述方法的步骤。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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