首页> 中国专利> 一种社交网络中的多标签传播重叠社区发现方法

一种社交网络中的多标签传播重叠社区发现方法

摘要

本发明涉及社交网络技术领域,特别是一种社交网络中的多标签传播重叠社区发现方法,包括如下步骤:读取社交网络数据,构造以社交网络用户为节点,用户关系为边的社交网络图;根据社交网络图,进行社交网络的初步社区划分,采用综合考虑节点中心度以及标签度分布约束的标签传播方法进行社区发现,获得非重叠社区结构;根据获得的非重叠社区结构以及节点在所属社区的中心度值,标记节点所属的层级;根据节点所属层级,计算不同层级节点之间的标签传播增益,并利用多标签传播进行重叠节点挖掘,得到社交网络的重叠社区结构。该方法可有效挖掘社交网络中的重叠社区结构,有利于提高社区检测的精度和效率,可应用于目标群体挖掘、精确营销等领域。

著录项

  • 公开/公告号CN103729475A

    专利类型发明专利

  • 公开/公告日2014-04-16

    原文格式PDF

  • 申请/专利权人 福州大学;

    申请/专利号CN201410034425.4

  • 发明设计人 陈羽中;陈国龙;郭文忠;施松;

    申请日2014-01-24

  • 分类号G06F17/30(20060101);

  • 代理机构35100 福州元创专利商标代理有限公司;

  • 代理人蔡学俊

  • 地址 350108 福建省福州市闽侯县上街镇大学城学园路2号福州大学新区

  • 入库时间 2024-02-19 23:28:07

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-10-26

    授权

    授权

  • 2014-05-14

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20140124

    实质审查的生效

  • 2014-04-16

    公开

    公开

说明书

技术领域

本发明涉及社交网络技术领域,特别是一种社交网络中的多标签传播重叠社区发现方法。

背景技术

从社会网络中检测社区结构是社会网络分析中的一项重要任务,无论是理论上还是实际应用中都具有十分重要的意义。通过挖掘网络中的社区结构,能够发现网络中隐含的组织结构信息、社会功能以及社区成员之间隐含的有趣属性,如共同爱好等。通过研究社会网络中社区之间、个体之间以及个体与社区之间的关系,可以挖掘出大量有价值的信息,可应用于许多领域。

针对社区发现,已经出现了很多经典的方法。2002年Girvan和Newman基于边介数,提出GN方法,并最早提出模块度Q值作为网络社区划分结果好坏的指标。 总体上,社区发现的经典方法包括模块度优化算法、谱分析法、信息论方法以及标签传播方法等。在上述方法中,节点只能属于一个社区,但是真实的社会网络的社区往往是相互重叠的,即允许节点属于多个社区,如在一个社交网站上,一个用户会拥有多个朋友圈;科研工作者的研究领域经常存在交叉;在生物系统中,一种蛋白质通常存在于多种复合物。Palla, G.等基于CPM(Clique Percolation Method)思想,提出用于重叠社区发现的CFinder方法。方法将社区定义为相互连通的k-派系构成的集合,归属于多个k-派系社区的节点即为社区间的重叠节点,之后通过节点社区归属情况输出重叠社区,该方法适用于社区内聚强的网络,难以应用在情况复杂的大规模复杂网络。Ahn等基于边划分的思想,将原始网络中的边映射成新的网络的节点,再利用非重叠社区发现方法划分转换后的网络,则原始网络中连接不同社区的边的节点即为重叠节点。Lancichinetti等利用局部优化及拓展的方法,随机选取种子节点集合,种子节点根据局部优化策略不断向外扩张,直至获得评价函数最大的社区,但是方法对优化函数以及种子节点的选择敏感且算法时间复杂度在最坏情况下为O(n2)。考虑到节点与社区之间的隶属度,Zhang等利用谱分析法将图映射到低维的欧几里得空间,利用模糊C均值聚类进行重叠社区发现,该方法需要每个节点的隶属向量的维数做为算法参数。

上述重叠社区发现算法通常存在参数敏感或者时间复杂度高的问题,难以应用于大规模复杂网络的社区发现,Raghavan等提出标签传播方法用于社区发现,该算法具有线性时间复杂度,但是只能用于非重叠社区发现。LPA的一些扩展方法如COPRA、SLPA、MLPA等允许一个节点拥有多个标签,可用于重叠社区发现,但是上述方法的鲁棒性有待提高,当网络的社区结构不明显或社区之间的重叠程度较高时,社区挖掘精度大大降低

综上,现有的社会网络社区发现方法从发现的社区结构质量以及时间效率上看都尚有很大的提升空间。面对大规模社交网络的场景,现有方法无论实在效果和效率上都难以满足要求。

发明内容

本发明的目的在于提供一种社交网络中的多标签传播重叠社区发现方法,该方法有利于提高社区检测的精度和效率。

为实现上述目的,本发明的技术方案是:一种社交网络中的多标签传播重叠社区发现方法,包括以下步骤:

步骤A:读取社交网络数据,构造以社交网络用户为节点,用户关系为边的社交网络图;

步骤B:初步社区划分:根据社交网络图,采用综合考虑节点中心度以及标签度分布约束的标签传播方法进行社区发现,获得非重叠社区结构;

步骤C:节点层级标记:根据初步社区划分获得的非重叠社区结构以及节点在所属社区的中心度值,标记节点所属的层级;

步骤D:重叠社区细化:根据节点所属的层级,计算不同层级节点之间的标签传播增益,并利用多标签传播进行重叠节点挖掘,得到社交网络的重叠社区结构。

进一步地,所述步骤B中,社交网络的初步社区划分具体包括以下步骤:

步骤B1:根据社交网络图,进行节点标签初始化,为社交网络图中的每个节点分配一个全局唯一的标签号;

步骤B2:根据标签更新规则,对社交网络图中的每个节点进行标签更新,同时根据邻居节点信息更新节点的中心度值,反复迭代,直到满足迭代终止条件;

步骤B3:根据迭代终止时节点所分配的标签,将具有相同标签的节点归属到同一社区,输出非重叠社区结构。

进一步地,所述步骤B2中,综合考虑了节点中心度与标签度分布差异约束条件,进行标签更新,标签更新规则为:

其中表示进行标签更新后节点v选择的标签,Nl(v)表示与节点v具有相同标签号的邻居节点集合,m为一参数,kv为节点v的度大小,Kl为标签度的大小,表示属于标签l的各个节点的度大小的总和,定义为:

V为社交网络图的节点集合,为克罗内克函数,定义为:

pu为节点中心度,表示节点u处于社区内部的中心程度,pu值越大表示节点越处于社区的中心位置,在社区发现的迭代过程中,社区归属越稳定;在标签更新的迭代过程中,每个节点u的中心度pu基于节点u的所有邻居集合中与其具有同样标签的各个节点对其中心度值的贡献总和进行同步的迭代更新,节点中心度pu定义为

其中l表示节点v的当前标签号,Nl(u)表示与节点u具有相同标签号的邻居集合,表示节点u的邻居中标签号为l的节点个数;

迭代终止条件为标签数目不再发生变化终止迭代。

进一步地,所述步骤C中,所述节点的层级定义为两级:核心层级与边界层级,用于层级划分的方法包括显式层级划分和模糊层级划分;

显式层级划分的节点层级映射函数定义为:

其中H(v)表示节点v所划分的层级,Boundary=1表示边界层级,Core=2表示核心层级,pMaxlpMinl分别表示各个社区内部节点中心度的最大值和最小值,r为阈值参数,取值范围为0.5~0.8;

模糊层级划分的节点层级映射函数定义为:

其中pv为节点v的节点中心度值。

进一步地,所述步骤D中,重叠社区细化具体包括以下步骤:

步骤D1:标签初始化:每个节点的标签集合初始化为步骤B3迭代终止时所分配的唯一标签,同时设置该标签的隶属度为1;

步骤D2:按照随机顺序遍历社交网络中各节点,对每个节点v,遍历其邻居节点集合中的各节点,根据邻居节点的标签集合,按照标签集合更新规则,更新节点v的标签集合;

步骤D3:根据节点的标签集合中标签个数是否超过阈值,过滤与归一化节点的标签集合;

步骤D4:判断是否满足迭代条件,若满足迭代条件,则终止迭代,否则返回步骤D2执行;

步骤D5:后处理:根据节点的标签集合输出社交网络的重叠社区结构。

进一步地,所述步骤D2中,采用的标签集合更新规则为:随机获取还未更新标签的节点v,遍历该节点的邻居节点集合N(v),假定邻居节点u的标签集合为labelset(u),则节点v的标签集合labelset(v)更新为邻居节点的标签集合的并集,定义为:

节点v的标签集合labelset(v)中的标签l,隶属度定义为:

其中b(l,v)表示节点v隶属于标签l的程度,b(l,u)表示节点v的邻居节点u隶属于标签l的程度,gain(u,v)为节点v的邻居节点u对节点v的标签传播增益,gain(u,v)反映了不同类型节点之间的标签传播能力,定义为:

进一步地,所述步骤D3中,标签集合的过滤规则为:若节点v的标签集合labelset(v)中的标签个数超过给定的阈值LSIZE,则保留隶属度最大的前LSIZE个标签;若节点v的标签集合labelset(v)中的标签个数未超过给定的阈值LSIZE,则保留所有标签;标签集合过滤后,对节点v保留下来的标签进行隶属度归一化,保证保留下来的标签的隶属度之和为1。

进一步地,所述步骤D4中,迭代终止条件为社交网络中的标签数目不再发生变化终止迭代。

相较于现有技术,本发明的有益效果是:相较于现有的重叠社区发现算法,在保留现有多标签传播方法的时间效率高的优势的前提下,实现重叠社区的高精度挖掘,并提高了算法的稳定性,综上,本发明的方法能够高效的检测社交网络的社区结构。

附图说明

图1是本发明方法的实现流程图。 

图2是本发明方法中步骤B的实现流程图。

图3是本发明方法中步骤D的实现流程图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步的说明。

图1是本发明的社交网络中的多标签传播重叠社区发现方法的实现流程图。如图1所示,所述方法包括以下步骤:

步骤A:读取社交网络数据,构造以社交网络用户为节点,用户关系为边的社交网络图。

如针对微博网络,将每个微博注册用户作为社交网络中的一个节点,以用户间的相互关注、评论关系作为社交网络中的一条边;如针对协作网络,将每个作者作为网络中的一个节点,以两个作者至少共同发表过一篇文章的协作关系作为社交网络中的一条边。采用稀疏矩阵的数据结构存储社交网络图的邻接矩阵。

步骤B:初步社区划分:根据社交网络图,采用综合考虑节点中心度以及标签度分布约束的标签传播方法进行社区发现,获得非重叠社区结构,同时在标签传播过程中,利用局部更新方法计算节点中心度。

具体的,图2是本发明的社交网络中的多标签传播重叠社区发现方法中步骤B的实现流程图,所述步骤B中,使用单标签传播方法进行社交网络的初步社区划分,具体包括以下步骤:

步骤B1:根据社交网络图,进行节点标签初始化,为社交网络图中的每个节点分配一个全局唯一的标签号;

步骤B2:根据标签更新规则,对社交网络图中的每个节点进行标签更新,同时根据邻居节点信息更新节点的中心度值,反复迭代,直到满足迭代终止条件;

步骤B3:根据迭代终止时节点所分配的标签,将具有相同标签的节点归属到同一社区,输出非重叠社区结构。

具体的,所述步骤B2中,综合考虑了节点中心度与标签度分布差异约束条件,进行标签更新,标签更新规则为:

其中表示进行标签更新后节点v选择的标签,Nl(v)表示与节点v具有相同标签号的邻居节点集合,m为一参数,kv为节点v的度大小,Kl为标签度的大小,表示属于标签l的各个节点的度大小总和,定义为:

V为社交网络图的节点集合,为克罗内克函数,定义为:

pu为节点中心度,表示节点u处于社区内部的中心程度,pu值越大表示节点越处于社区的中心位置,在社区发现的迭代过程中,社区归属越稳定;在标签更新的迭代过程中,每个节点u的中心度pu基于节点u的所有邻居集合中与其具有同样标签的各个节点对其中心度值的贡献总和进行同步的迭代更新,节点中心度pu定义为

其中l表示节点v的当前标签号,Nl(u)表示与节点u具有相同标签号的邻居集合,表示节点u的邻居中标签号为l的节点个数;

迭代终止条件为标签数目不再发生变化终止迭代。

步骤C:节点层级标记:根据初步社区划分获得的非重叠社区结构以及节点在所属社区的中心度值,标记节点所属的层级。

具体的,所述步骤C中,节点层级的标记方法如下:节点的层级定义为核心层级与边界层级两个层级,用于层级划分的方法包括显式层级划分和模糊层级划分两种。

显式层级划分的节点层级映射函数定义为:

其中H(v)表示节点v所划分的层级,Boundary=1表示边界层级,Core=2表示核心层级,pMaxlpMinl分别表示各个社区内部节点中心度的最大值和最小值,r为阈值参数,通常取值范围为0.5~0.8。

模糊层级划分的节点层级映射函数定义为:

其中pv为节点v的节点中心度值。模糊层级划分直接利用节点中心度以一种模糊方式表明节点在所属社区内的层级高低。

显式层级划分的优势在于划分方法比较直观,严格区分社区内部节点的层级后,标签在社区间的传播受到更大程度限制,尽可能保证清晰的网络社区结构,模糊层级划分方式同样能够限制标签在社区间的传播力度,但通过更精细地刻画社区层级,细化不同节点间的标签传播强度。

步骤D:重叠社区细化:根据节点所属的层级,计算不同层级节点之间的标签传播增益,并利用多标签传播进行重叠节点挖掘,得到社交网络的重叠社区结构。

具体的,图3是本发明的社交网络中的多标签传播重叠社区发现方法中步骤D的实现流程图,所述步骤D中,使用多标签传播方法进行重叠社区细化,具体包括以下步骤:

步骤D1:标签初始化:每个节点的标签集合初始化为步骤B3迭代终止时所分配的唯一标签,同时设置该标签的隶属度为1;

步骤D2:按照随机顺序遍历社交网络中各节点,对每个节点v,遍历其邻居节点集合中的各节点,根据邻居节点的标签集合,按照标签集合更新规则,更新节点v的标签集合; 

步骤D3:根据节点的标签集合中标签个数是否超过阈值,过滤与归一化节点的标签集合;

步骤D4:判断是否满足迭代条件,若满足迭代条件,则终止迭代,否则返回步骤D2执行;

步骤D5:后处理:根据节点的标签集合输出社交网络的重叠社区结构。

具体的,所述步骤D2中,采用的标签集合更新规则为:随机获取还未更新标签的节点v,遍历该节点的邻居节点集合N(v),假定邻居节点u的标签集合为labelset(u),则节点v的标签集合labelset(v)更新为邻居节点的标签集合的并集,定义为:

节点v的标签集合labelset(v)中的标签l,隶属度定义为:

其中b(l,v)表示节点v隶属于标签l的程度,b(l,u)表示节点v的邻居节点u隶属于标签l的程度,gain(u,v)为节点v的邻居节点u对节点v的标签传播增益,gain(u,v)反映了不同类型节点之间的标签传播能力,定义为:

其中,H(u)、H(v)为上面定义的显式层级划分或模糊层级划分的节点层级映射函数。标签传播增益使得边界层级的节点对核心层级节点的标签传播增益为负,弱化了核心节点在网络重叠程度高的情况下被边界节点影响的程度,优化了核心节点的稳定性。

具体的,所述步骤D3中,标签集合的过滤规则为:若节点v的标签集合labelset(v)中的标签个数超过给定的阈值LSIZE,则保留隶属度最大的前LSIZE个标签;若节点v的标签集合labelset(v)中的标签个数未超过给定的阈值LSIZE,则保留所有标签;标签集合过滤后,对节点v保留下来的标签进行隶属度归一化,保证保留下来的标签的隶属度之和为1。

具体的,所述步骤D4中,迭代终止条件为社交网络中的标签数目不再发生变化终止迭代。

本发明所述社交网络中的多标签传播重叠社区发现方法,将社区划分过程划分为初步社区发现、节点层级标记、重叠社区细化三个阶段,首先读取社交网络数据,构造以社交网络用户为节点,用户关系为边的社交网络图;根据社交网络图,进行社交网络的初步社区划分,采用综合考虑节点中心度以及标签度分布约束的标签传播方法进行社区发现,获得初步的非重叠社区结构,同时在标签传播过程中,利用局部更新方法计算节点中心度;根据初步社区划分获得的非重叠社区结构以及节点在所属社区的中心度值,标记节点所属的层级;根据节点所属层级,计算不同层级节点之间的标签传播增益,并利用多标签传播进行重叠节点挖掘,得到社交网络的重叠社区结构。所述方法通过引入节点层级的思想及不同层级节点间的标签传播增益来规范标签在节点间的强度,使得在社区发现过程中,减小高层级的节点收影响的程度,同时低层级节点通常处于多个社区的交叉区域,能够根据自身的邻居节点的社区归属及层级信息选择合理的标签集合。方法无需社区数目的先验知识,并对网络结构自适应,可有效的挖掘社交网络中的重叠社区结构,可应用于目标群体挖掘、精确营销等领域。

以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号