社区划分方法、装置、计算设备及存储介质制造方法及图纸

技术编号:20485157 阅读:27 留言:0更新日期:2019-03-02 19:05
本申请公开了社区划分方法、装置、计算设备及存储介质。其中,一种社区划分方法包括:获取第一有权无向图;将第一有权无向图划分为多个第一子图;对各第一子图中顶点进行合并,并将合并后生成的多个子图作为多个第二子图;迭代执行如下操作,直到顶点总数不超过数量阈值:对多个第二子图进行分组,将各分组中的第二子图合并为一个第三子图;对各第三子图中顶点执行社区合并操作得到一个第四子图;将各第四子图中任意社区内的所有顶点合并为一个新的顶点,将生成的多个子图作为最新的多个第二子图;合并迭代操作生成的多个第二子图,得到第二有权无向图;对第二有权无向图进行社区划分。根据本申请的技术方案可以提高社区划分效率。

【技术实现步骤摘要】
社区划分方法、装置、计算设备及存储介质
本申请涉及数据挖掘
,尤其涉及社区划分方法、装置、计算设备及存储介质。
技术介绍
随着互联网的发展,用户可以利用各种多媒体应用(例如,即时通讯应用、社交应用、短视频应用等等)发布和浏览多媒体内容。这里,发布多媒体内容的主体标识(例如为网络标识、终端设备标识、个人登录账号、公众号等等)急剧增长。与多媒体内容有关的主体标识可以形成一个网络结构。各个主体标识可以认为是网络结构中顶点。为了挖掘网络结构中顶点之间的关联关系,现有方案可以采用各种社区发现算法对网络中顶点进行社区划分。然而,现有的方案在面对海量的顶点数据时,处理效率有待提高。
技术实现思路
本申请提出了一种社区划分方案,能够提高社区划分速度。根据本申请一方面,提供一种社区划分方法,包括:获取第一有权无向图,其中,所述第一有权无向图用于描述由边连接顶点而形成的网络结构,所述第一有权无向图中每条边的权重值用于描述每条边连接的两个顶点之间的相似度,所述第一有权无向图中不同顶点属于不同的社区;将所述第一有权无向图划分为多个第一子图,其中,每个第一子图用于描述所述网络结构的局部结构;对各第一子图中顶点进行合并,并将合并后生成的多个子图作为所述第一有权无向图的多个第二子图;迭代执行如下操作,直到所述第一有权无向图的多个第二子图的顶点总数不超过数量阈值:对执行本次迭代操作之前得到的最新的多个第二子图进行分组,将各分组中的多个第二子图合并为与各分组对应的一个第三子图;和对各第三子图中顶点执行社区合并操作得到与各第三子图对应的一个第四子图;将各第四子图中任意社区内的所有顶点合并为一个新的顶点,将顶点合并后生成的多个子图作为所述第一有权无向图最新的多个第二子图;合并所述迭代操作生成的多个第二子图,得到第二有权无向图;以及对所述第二有权无向图进行社区划分。根据本申请一方面,提供一种社区划分装置,包括:子图生成单元,生成所述第一有权无向图的多个第一子图,其中,每个第一子图用于描述所述网络结构的局部结构;顶点合并单元,对各第一子图中顶点进行合并,并将合并后生成的多个子图作为所述第一有权无向图的多个第二子图;第一子图合并单元,迭代执行如下操作,直到所述第一有权无向图的多个第二子图的顶点总数不超过数量阈值:对执行本次迭代操作之前得到的最新的多个第二子图进行分组,并将各分组中的多个第二子图合并为一个第三子图;和对各第三子图中顶点执行社区合并操作得到与各第三子图对应的一个第四子图;将各第四子图中任意社区内的所有顶点合并为一个新的顶点,将顶点合并后生成的多个子图作为所述有权无向图最新的多个第二子图;第二子图合并单元,合并所述迭代操作生成的多个第二子图,得到第二有权无向图;以及社区划分单元,对所述第二有权无向图进行社区划分。根据本申请一方面,提供一种计算设备,包括:处理器;存储器;以及一个或多个程序,存储在该存储器中并被配置为由所述处理器执行,所述一个或多个程序包括用于执行根据本申请的方法的指令。根据本申请一方面,提供一种存储介质,存储有一个或多个程序,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行根据本申请的方法。综上,根据本申请的技术方案可以通过将第一有权无向图划分为多个子图,并且迭代执行合并子图中顶点和合并子图的方式,快速降低顶点总量。在快速降低顶点总量的基础上,本申请的社区划分方案可以并行对第二有权无向图进行社区划分,从而极大提高了社区划分的效率。另外说明的是,本申请的社区划分方案通过快速降低顶点总量,可以避免在并行执行社区划分操作(即并行执行社区发现算法)时顶点总量过大造成的高内存和高CPU消耗,从而可以极大提高本申请实施例的社区划分效率。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1A示出了根据本申请一些实施例的应用场景的示意图;图1B示出了根据本申请一些实施例的应用场景的示意图;图2示出了根据本申请一些实施例的社区划分方法200的流程图;图3示出了根据本申请一些实施例的生成第二子图的方法300的流程图;图4示出了根据本申请一些实施例的生成第二子图的方法400的流程图;图5示出了根据本申请一些实施例的确定能增加子图的模块度的邻接顶点的方法500的流程图;图6A示出了根据本申请一些实施例的第一子图的示意图;图6B示出了根据本申请一些实施例的第二子图的示意图;图7示出了根据本申请一些实施例的更新第二子图的流程图;图8示出了根据本申请一些实施例的合并子图的方法800的流程图;图9A示出了根据本申请一些实施例的第一有权无向图的部分网络结构的示意图;图9B示出了根据本申请一些实施例的第一有权无向图的多个第一子图的示意图;图9C示出了根据本申请一些实施例的第一有权无向图的多个第二子图的示意图;图9D示出了合并图9C中第二子图而得到的第三子图;图10示出了根据本申请一些实施例的增加模块度的方法1000的流程图;图11示出了根据本申请一些实施例的社区合并的方法1100的流程图;图12示出了根据本申请一些实施例的执行社区划分方法时数据的变化过程;图13示出了根据本申请一些实施例的社区划分装置1300的示意图;以及图14示出了根据本申请一些实施例的一个计算设备的组成结构图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在一些应用场景中,用于社区发现的实施例通常采用串行的社区发现算法。例如,为了研究公众号的团体性质(即研究公众号之间的关联关系),用于社区发现的实施例可以基于图计算的方式,对公众号形成的网络进行社区划分。由于公众号数量急剧增加,用于社区发现的实施例的处理速度有待提高。图1A示出了根据本申请一些实施例的应用场景100a的示意图。如图1A所示,网络生成系统102可以通过一个或多个网络106与社区划分系统104通信。这里,网络生成系统102和社区划分系统104均可以包括一个或多个计算设备(图1A未示出)。这里,一个计算设备例如可以是一个服务器节点或者虚拟服务器,还可以是台式电脑、膝上计算机、移动电话、平板电脑等各种终端设备,本申请对此不做限制。一个或多个网络106的示例包括局域网(LAN)和广域网(WAN)诸如互联网。本申请的实施例可以使用任意公知的网络协议来实现一个或多个网络106,包括各种有线或无线协议,诸如,以太网、通用串行总线(USB)、FIREWIRE、全球移动通讯系统(GSM)、增强数据GSM环境(EDGE)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、WiFi、IP语音(VOIP),Wi-MAX,或任意其他适合的通信协议。在一些实施例中,网络生成系统102可以生成由边连接顶点而得到的网络结构。这里,网络结构例如为一个有权无向图。有权无向图中每条边的权重值可以描述这本文档来自技高网...

【技术保护点】
1.一种社区划分方法,其特征在于,所述方法包括:获取第一有权无向图,其中,所述第一有权无向图用于描述由边连接顶点而形成的网络结构,所述第一有权无向图中每条边的权重值用于描述每条边连接的两个顶点之间的相似度,所述第一有权无向图中不同顶点属于不同的社区;将所述第一有权无向图划分为多个第一子图,其中,每个第一子图用于描述所述网络结构的局部结构;对各第一子图中顶点进行合并,并将合并后生成的多个子图作为所述第一有权无向图的多个第二子图;迭代执行如下操作,直到所述第一有权无向图的多个第二子图的顶点总数不超过数量阈值:对执行本次迭代操作之前得到的最新的多个第二子图进行分组,将各分组中的多个第二子图合并为与各分组对应的一个第三子图;和对各第三子图中顶点执行社区合并操作得到与各第三子图对应的一个第四子图;将各第四子图中任意社区内的所有顶点合并为一个新的顶点,将顶点合并后生成的多个子图作为所述第一有权无向图最新的多个第二子图;合并所述迭代操作生成的多个第二子图,得到第二有权无向图;以及对所述第二有权无向图进行社区划分。

【技术特征摘要】
1.一种社区划分方法,其特征在于,所述方法包括:获取第一有权无向图,其中,所述第一有权无向图用于描述由边连接顶点而形成的网络结构,所述第一有权无向图中每条边的权重值用于描述每条边连接的两个顶点之间的相似度,所述第一有权无向图中不同顶点属于不同的社区;将所述第一有权无向图划分为多个第一子图,其中,每个第一子图用于描述所述网络结构的局部结构;对各第一子图中顶点进行合并,并将合并后生成的多个子图作为所述第一有权无向图的多个第二子图;迭代执行如下操作,直到所述第一有权无向图的多个第二子图的顶点总数不超过数量阈值:对执行本次迭代操作之前得到的最新的多个第二子图进行分组,将各分组中的多个第二子图合并为与各分组对应的一个第三子图;和对各第三子图中顶点执行社区合并操作得到与各第三子图对应的一个第四子图;将各第四子图中任意社区内的所有顶点合并为一个新的顶点,将顶点合并后生成的多个子图作为所述第一有权无向图最新的多个第二子图;合并所述迭代操作生成的多个第二子图,得到第二有权无向图;以及对所述第二有权无向图进行社区划分。2.如权利要求1所述的方法,其中,所述将所述第一有权无向图划分为多个第一子图,包括:计算所述第一有权无向图中各顶点的标识除以分区阈值的余数;将所述第一有权无向图中同余数的顶点划分到同一个第一子图中。3.如权利要求1所述的方法,其中,所述对各第一子图中顶点进行合并,并将合并后生成的多个子图作为所述第一有权无向图的多个第二子图,包括:将所述多个第一子图分配到多个计算设备中;在各计算设备中,基于快速展开方式,对各计算设备分配到的第一子图中顶点进行合并;将所述合并后生成的多个子图作为所述第一有权无向图的多个第二子图。4.如权利要求1所述的方法,其中,所述对各第一子图中顶点进行合并,并将合并后生成的多个子图作为所述第一有权无向图的多个第二子图,包括:对于所述多个第一子图中任一个第一子图,对该第一子图中顶点执行社区合并操作,最大化该第一子图的模块度;对于完成所述社区合并操作的所述多个第一子图,将各第一子图中任意社区内的所有顶点合并为一个新的顶点,将合并顶点后生成的多个子图作为所述多个第二子图。5.如权利要求4所述的方法,其中,所述对于所述多个第一子图中任一个第一子图,对该第一子图中顶点执行社区合并操作,最大化该第一子图的模块度,包括:对于该第一子图中任一个允许访问的顶点,确定加入该顶点的社区能增加该第一子图的模块度的允许访问的邻接顶点;将确定的所述邻接顶点加入到该顶点的社区,并将确定的所述邻接顶点设置为不允许访问。6.如权利要求5所述的方法,其中,所述对于该第一子图中任一个允许访问的顶点,确定加入该顶点的社区能增加该第一子图的模块度的允许访问的邻接顶点,包括:对于所述顶点的任一允许访问的邻接顶点,计算在将该邻接顶点加入到所述顶点的社区之后,所述第一子图的模块度与加入到所述顶点的社区之前的所述第一子图的模块度的差值;在所述差值为正时,确定该邻接顶点在加入到所述顶点的社区时能增加所述第一子图的模块度。7.如权利要求4所述的方法,其中,所述对于完成所述社区合并操作的所述多个第一子图,将各第一子图中任意社区内的所有顶点合并为一个新的顶点,将合并顶点后生成的多个子图作为所述多个第二子图,包括:对各第一子图中任意两个社区,计算所述任意两个社区之间连接的边的权重和;对于所述任意两个社区,在各社区...

【专利技术属性】
技术研发人员:彭颖鸿
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1