群体检测方法、装置、电子设备和计算机存储介质

文档序号:1939239 发布日期:2021-12-07 浏览:15次 >En<

阅读说明:本技术 群体检测方法、装置、电子设备和计算机存储介质 (Group detection method, group detection device, electronic equipment and computer storage medium ) 是由 饶玮 于 2021-01-25 设计创作,主要内容包括:本发明实施例提出了一种群体检测方法、装置、电子设备和计算机存储介质,该方法包括:获取社交关系网络中社群大小的先验分布;根据所述先验分布确定所述社交关系网络的模块度的计算方式;以最大化所述社交关系网络的模块度为目标,对所述社交关系网络进行社群划分,得到社群划分结果。(The embodiment of the invention provides a group detection method, a group detection device, electronic equipment and a computer storage medium, wherein the method comprises the following steps: obtaining prior distribution of community sizes in a social relationship network; determining a calculation mode of the modularity of the social relationship network according to the prior distribution; and carrying out community division on the social relationship network by taking the maximization of the modularity of the social relationship network as a target to obtain a community division result.)

群体检测方法、装置、电子设备和计算机存储介质

技术领域

本发明涉及计算机技术领域,尤其涉及一种群体检测方法、装置、电子设备和计算机存储介质。

背景技术

在相关技术中,群体检测是将社交关系网络的节点划分为多个社群的技术,使用群体检测技术划分出社群后,每个社群内部节点之间的连接为强连接,而社群之间的连接为弱连接。在相关技术中,可以采用基于模块度的方法实现对社交关系网络的群体检测,模块度不仅仅作为优化的目标函数提出,它也是目前是最流行的用来衡量社群结果好坏的标准之一,模块度指标的提出也被认为是群体检测研究历史上的里程碑;然而,发明人发现:采用基于模块度的方法得出的社群划分结果与社交关系网络真实的社群结构不完全相符,即,采用基于模块度的方法得出的社群划分结果不够准确。

发明内容

本发明实施例期望提供群体检测的技术方案,可以解决相关技术中得出的社群划分结果不够准确的问题。

本发明实施例提供了一种群体检测方法,所述方法包括:

获取社交关系网络中社群大小的先验分布;

根据所述先验分布确定所述社交关系网络的模块度的计算方式;

以最大化所述社交关系网络的模块度为目标,对所述社交关系网络进行社群划分,得到社群划分结果。

在一些实施例中,所述社交关系网络为非加权网络时,所述根据所述先验分布确定所述社交关系网络的模块度的计算方式,包括:

根据所述先验分布、所述社交关系网络的总边数、所述社交关系网络中每个社群的边数、以及所述社交关系网络中每个社群的节点度数之和,确定所述社交关系网络的模块度的计算方式。

在一些实施例中,所述社交关系网络为加权网络时,所述根据所述先验分布确定所述社交关系网络的模块度的计算方式,包括:

根据所述先验分布、所述社交关系网络的节点强度之和、所述社交关系网络中每个社群的节点强度之和、以及所述社交关系网络中每个社群内的边的权重和,确定所述社交关系网络的模块度的计算方式。

在一些实施例中,所述以最大化所述社交关系网络的模块度为目标,对所述社交关系网络进行社群划分,得到社群划分结果,包括:

根据所述社交关系网络中任意两个社群的权重系数、以及所述任意两个社群合并后的新社群的权重系数,确定模块度变化函数;其中,所述社交关系网络中的社群的权重系数与社群的节点数相关;

根据所述模块度的计算方式和所述模块度变化函数,并采用Louvain方法对所述社交关系网络进行社群划分,得到所述社群划分结果。

在一些实施例中,所述根据所述社交关系网络中任意两个社群的权重系数、以及所述任意两个社群合并后的新社群的权重系数,确定模块度变化函数,包括:

在所述社交关系网络为非加权网络时,根据所述社交关系网络中任意两个社群的权重系数、所述任意两个社群合并后的新社群的权重系数、所述社交关系网络的总边数、所述任意两个社群中每个社群的节点度数之和、所述任意两个社群中每个社群的边数、以及所述任意两个社群之间连边的数量,确定所述模块度变化函数。

在一些实施例中,所述根据所述社交关系网络中任意两个社群的权重系数、以及所述任意两个社群合并后的新社群的权重系数,确定模块度变化函数,包括:

在所述社交关系网络为加权网络时,根据所述社交关系网络中任意两个社群的权重系数、所述任意两个社群合并后的新社群的权重系数、所述社交关系网络的节点强度之和、所述任意两个社群中每个社群的节点强度之和、所述任意两个社群中每个社群的边的权重和、以及所述任意两个社群之间连边的权重和,确定所述模块度变化函数。

在一些实施例中,所述获取社交关系网络中社群大小的先验分布,包括:

统计样本数据中社群大小的分布信息,根据所述样本数据中社群大小的分布信息,构造所述社交关系网络中社群大小的先验分布。

本发明实施例还提供了一种群体检测装置,所述装置包括:

获取模块,用于获取社交关系网络中社群大小的先验分布;

第一处理模块,用于根据所述先验分布确定所述社交关系网络的模块度的计算方式;

第二处理模块,用于以最大化所述社交关系网络的模块度为目标,对所述社交关系网络进行社群划分,得到社群划分结果。

在一些实施例中,所述社交关系网络为非加权网络时,所述第一处理模块,用于根据所述先验分布确定所述社交关系网络的模块度的计算方式,包括:

根据所述先验分布、所述社交关系网络的总边数、所述社交关系网络中每个社群的边数、以及所述社交关系网络中每个社群的节点度数之和,确定所述社交关系网络的模块度的计算方式。

在一些实施例中,所述社交关系网络为加权网络时,所述第一处理模块,用于根据所述先验分布确定所述社交关系网络的模块度的计算方式,包括:

根据所述先验分布、所述社交关系网络的节点强度之和、所述社交关系网络中每个社群的节点强度之和、以及所述社交关系网络中每个社群内的边的权重和,确定所述社交关系网络的模块度的计算方式。

在一些实施例中,所述第二处理模块,用于以最大化所述社交关系网络的模块度为目标,对所述社交关系网络进行社群划分,得到社群划分结果,包括:

根据所述社交关系网络中任意两个社群的权重系数、以及所述任意两个社群合并后的新社群的权重系数,确定模块度变化函数;其中,所述社交关系网络中的社群的权重系数与社群的节点数相关;

根据所述模块度的计算方式和所述模块度变化函数,并采用Louvain方法对所述社交关系网络进行社群划分,得到所述社群划分结果。

在一些实施例中,所述第二处理模块,用于根据所述社交关系网络中任意两个社群的权重系数、以及所述任意两个社群合并后的新社群的权重系数,确定模块度变化函数,包括:

在所述社交关系网络为非加权网络时,根据所述社交关系网络中任意两个社群的权重系数、所述任意两个社群合并后的新社群的权重系数、所述社交关系网络的总边数、所述任意两个社群中每个社群的节点度数之和、所述任意两个社群中每个社群的边数、以及所述任意两个社群之间连边的数量,确定所述模块度变化函数。

在一些实施例中,所述第二处理模块,用于根据所述社交关系网络中任意两个社群的权重系数、以及所述任意两个社群合并后的新社群的权重系数,确定模块度变化函数,包括:

在所述社交关系网络为加权网络时,根据所述社交关系网络中任意两个社群的权重系数、所述任意两个社群合并后的新社群的权重系数、所述社交关系网络的节点强度之和、所述任意两个社群中每个社群的节点强度之和、所述任意两个社群中每个社群的边的权重和、以及所述任意两个社群之间连边的权重和,确定所述模块度变化函数。

在一些实施例中,所述获取模块,用于获取社交关系网络中社群大小的先验分布,包括:

统计样本数据中社群大小的分布信息,根据所述样本数据中社群大小的分布信息,构造所述社交关系网络中社群大小的先验分布。

本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任意一种群体检测方法。

本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任意一种群体检测方法。

本发明实施例提出的群体检测方法、装置、电子设备和计算机存储介质中,首先,获取社交关系网络中社群大小的先验分布;然后,根据所述先验分布确定所述社交关系网络的模块度的计算方式;最后,以最大化所述社交关系网络的模块度为目标,对所述社交关系网络进行社群划分,得到社群划分结果。

如此,在本发明实施例中,可以在考虑社交关系网络中社群大小的先验分布的基础上,确定社交关系网络的模块度的计算方式,进而进行社群划分,也就是说,最终得出的社群划分结果可以反映社交关系网络中社群大小,在一定程度上提高了社群划分结果的准确度。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本发明的实施例,并与说明书一起用于说明本发明的技术方案。

图1为相关技术中采用基于模块度的方法进行群体检测的一个示意图;

图2为本发明实施例的群体检测方法的流程图;

图3为本发明实施例中采用Louvain方法对社交关系网络进行社群划分的流程的示意图;

图4为本发明实施例的群体检测装置的结构示意图;

图5为本发明实施例的电子设备的结构示意图。

具体实施方式

在相关技术中,社交关系网络表示由不同用户构成的反映用户之间关系的网络,社群可以反映社交关系网络的结构特性、体现用户相互关系、显示用户兴趣特征等。通过对社交关系网络进行群体检测,能在社交关系网络中识别具有共同兴趣的社群(用户组),向正确的受众传播正确的信息,对实现精准的信息推送有着重要作用。

在相关技术中,对社交关系网络的群体检测方法包括图分割、聚类、谱方法、标签传播、基于模块度的方法等;其中,图分割把图中的节点分成预定大小的群组,这些群组之间的边数目最小,这个问题属于NP-hard问题。聚类法将社群看作一组内容相似的物体的集合,其重点在于节点相似度的定义。谱方法由于需要计算矩阵的特征值,开销很大,在大规模的社交关系网络中难以适用。标签传播方法具有计算量小的优点,可以用于解决快速社群检测问题,适合大规模网络中的社群检测。标签传播方法通常会出现一个社群规模差异较大的现象。模块度不仅仅作为优化的目标函数提出,它也是目前是最流行的用来衡量社群结果好坏的标准之一。

基于模块度的方法普遍存在分辨率限制问题,即,采用基于模块度的方法得出的社群划分结果不够准确;如图1所示,环状网络共有24个团,每个团内的节点两两相互连接(图中未示出团中的节点),每个团内有5个节点;这里,团是图中的节点子集,团中任意两个不同节点都相互邻接,团也称为完全图。团间通过单一链接进行连接,最终形成图中的环状。从直观上来看,每个团都应该被划分为单独的社群,其模块度为Q1=0.8674。然而,在采用基于模块度的方法时,按照模块度指标,最优的社群划分会将两个团进行组合,此时对应的模块度为Q2=0.8712。这意味着模块度最优并不对应最好的社群检测结果。由此可见,基于模块度的方法无法找到一些比某一规模更小的社团结构。导致分辨率限制主要原因是模块度定义中没有包括关于社群中节点个数的信息,并且社群划分结果会对网络中连边权重也高度敏感。

在相关技术中,可以利用用户之间通话信息、位置信息、设备登录信息来预测用户之间的社交关系,例如家庭关系、同人关系等。理想情况下,预测后得到的数据集已经是社群内完全内聚,社群间完全零连接,这样用户群体检测只要通过一轮连通图分析就直接得到结果。然而,在实际场景中不可能有如此理想的情况,数据源质量、可用数据类型少、算法模型性能限制等都可能造成不同社群之间存在连接关系。因此需要进一步通过社群检测算法来进行群体划分。在一些场景中,根据经验,同一家庭内的成员往往也就2~6人,如果对社群大小不加任何限制,基于模块度的方法得到的每个社群的大小往往远远大于该数量(2~6);其根本原因在于相关技术中关于社群的先验信息较少,导致其社群划分结果可能无法满足关于社群的认识,使得其结果不够准确。

在相关技术中,模块度指标通过与随机网络内链接关系结构相比较而提出,模块度采用以下公式(1)进行计算:

其中,m表示社交关系网络的总边数,在社交关系网络中,每个节点表示一个用户,节点之间的连接为社交关系网络中的边;ki和kj分别表示节点i和节点j的度,节点的度表示与节点相关联的边的条数;ci和cj分别表示节点i和节点j所属社群,当ci=cj时,δ(ci,cj)=1,否则,δ(ci,cj)=0;ei表示社群ci内边的数量,di表示社群ci内所有节点的度数之和;Aij的取值可以用公式(2)说明。

在采用基于模块度的方法实现对社交关系网络的群体检测时,社群划分结果对应的模块度越大,则表明社群划分结果越合理。

然而,基于上述记载的内容可以看出,相关技术中模块度的定义只考虑了社交关系网络的结构信息,并未考虑社群大小的先验分布,因此,如何在考虑社群大小的先验分布的基础上,准确地得出社群划分结果,是亟待解决的技术问题。

为解决相关技术中采用基于模块度的方法得出的社群划分结果不够准确的问题,提出本发明实施例的技术方案。

以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本发明,并不用于限定本发明。另外,以下所提供的实施例是用于实施本发明的部分实施例,而非提供实施本发明的全部实施例,在不冲突的情况下,本发明实施例记载的技术方案可以任意组合的方式实施。

需要说明的是,在本发明实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其他要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元,例如的单元可以是部分电路、部分处理器、部分程序或软件等等)。

本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或C,可以表示:单独存在A,同时存在A和C,单独存在C这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合。

例如,本发明实施例提供的群体检测方法包含了一系列的步骤,但是本发明实施例提供的群体检测方法不限于所记载的步骤,同样地,本发明实施例提供的群体检测装置包括了一系列模块,但是本发明实施例提供的群体检测装置不限于包括所明确记载的模块,还可以包括为获取相关信息、或基于信息进行处理时所需要设置的模块。

本发明实施例可以基于终端和/或服务器实现,这里,终端可以是瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统,等等。服务器可以是小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。

服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

本发明实施例提出了一种群体检测方法,图2为本发明实施例的群体检测方法的流程图,如图2所示,该流程可以包括:

步骤201:获取社交关系网络中社群大小的先验分布。

本申请实施例中,可以基于样本数据得出社交关系网络中社群大小的先验分布,样本数据表示已知的社交关系网络数据。在一些实施例中,可以统计样本数据中社群大小的分布信息,根据样本数据中社群大小的分布信息,构造社交关系网络中社群大小的先验分布。

可以看出,通过统计样本数据中社群大小的分布信息,有利于容易地得出社交关系网络中社群大小的先验分布。

在一些实施例中,可以从样本数据中统计社群大小的直方图分布,然后,基于该直方图分布确定社交关系网络中社群大小的先验分布。

示例性地,可以从样本数据中估计出社群大小的概率密度函数p(|c|)作为先验分布,|c|表示社群c中节点的数量。

示例性地,可以采用Parzen窗方法构造社交关系网络中社群大小的先验分布,Parzen窗方法又称为核密度估计(Kernel Density Estimation)方法,是在概率论中用来估计未知的密度函数的方法,属于非参数检验方法之一,Parzen窗函数可以是高斯函数或其它函数。Parzen窗函数可以通过公式(3)表示。

其中,n表示样本数据的个数,σ表示标准差,xi表示样本数据中第i个样本的值,x为自变量,p(x)表示样本的值为x的先验概率。

参照上述公式(3),可以看出,社交关系网络中社群大小的概率密度函数逼近高斯函数的平均值,在σ越小(趋近于0时),p(x)越趋近于直方图分布,σ越大,p(x)越平滑;示例性地,σ可以经验性地设置为0.6。

步骤202:根据先验分布确定社交关系网络的模块度的计算方式。

在相关技术中,社交关系网络的模块度可以根据上述公式(1)计算得出,而在公式(1)中并未考虑社交关系网络中社群大小的先验分布。

在本申请实施例中,可以根据上述先验分布,重新确定社交关系网络的模块度的计算方式,即,本申请实施例对相关技术中社交关系网络的模块度的定义进行了修正,在修正后的模块度的定义中体现了社交关系网络中社群大小的先验分布。

步骤203:以最大化社交关系网络的模块度为目标,对社交关系网络进行社群划分,得到社群划分结果。

在一些实施例中,可以将上述社交关系网络的模块度作为优化的目标函数,确定各种社群划分结果对应的模块度的函数值,将最大的函数值对应的社群划分结果作为最终得出的社群划分结果。

可以理解地,如果直接将上述社交关系网络的模块度作为优化的目标函数,从而得出社群划分结果,可能导致计算复杂度过高,因此,在另一些实施例中,可以借用Louvain方法的贪婪优化策略,通过寻找小型社群来局部优化模块度,再通过聚合与迭代,最终得出社群划分结果,

示例性地,可以根据社交关系网络中任意两个社群的权重系数、以及上述任意两个社群合并后的新社群的权重系数,确定模块度变化函数;其中,社交关系网络中的社群的权重系数与社群的节点数相关;

然后,根据上述模块度的计算方式和模块度变化函数,并采用Louvain方法对社交关系网络进行社群划分,得到所述社群划分结果。

在一种实现方式中,在得出社群的节点数后,可以根据预先设定的社群的权重系数计算公式,得出社交关系网络中的社群的权重系数;社群的权重系数的取值范围可以是0至1。

可以理解地,Louvain方法是一种通过聚合与迭代,实现快速计算社群划分结果的方法,因而,本申请实施例借鉴了Louvain算法的思想,通过改进的模块度变化函数进行局部优化,可在保证生成社群划分结果的同时,有利于实现快速计算。

在实际应用中,步骤201至步骤203可以基于电子设备的处理器实现,上述处理器可以为特定用途集成电路(Application Specific Integrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital SignalProcessing Device,DSPD)、可编程逻辑装置(Programmable Logic Device,PLD)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、中央处理器(Central ProcessingUnit,CPU)、控制器、微控制器、微处理器中的至少一种。

可以理解地,本发明实施例中,可以在考虑社交关系网络中社群大小的先验分布的基础上,确定社交关系网络的模块度的计算方式,进而进行社群划分,也就是说,最终得出的社群划分结果可以反映社交关系网络中社群大小,在一定程度上提高了社群划分结果的准确度。

在一些实施例中,上述社交关系网络可以是加权网络或非加权网络;加权网络中每一条边都有对应的权重,加权网络中不同的边对应的权重可以不同;非加权网络中所有边的权重是相同的。

在一些实施例中,在社交关系网络为非加权网络时,可以根据上述先验分布、社交关系网络的总边数、社交关系网络中每个社群的边数、以及社交关系网络中每个社群的节点度数之和,确定社交关系网络的模块度的计算方式。

示例性地,为了确定社交关系网络的模块度的计算方式,可以利用上述先验分布对社交关系网络中每个社群的节点数进行约束;在社交关系网络为非加权网络时,社交关系网络的模块度的计算公式可以是公式(4)。

其中,Qv表示社交关系网络为非加权网络时社交关系网络的模块度,m表示社交关系网络的总边数,W(|ci|)表示社交关系网络中社群ci的权重系数,W(|ci|)=p(|ci|),可以看出,社交关系网络中社群ci的权重系数可以反映社群ci内节点数量的概率;ei表示社群ci的边数,di表示社群ci内所有节点的度之和。

对于非加权网络,可以认为网络中各个社群的数量是均匀分布的,即各个社群的大小服从均匀分布,不同的社群对应的社群大小的概率密度函数是相同的。

可以看出,针对非加权网络,可以结合社群大小的先验分布以及网络的图结构,较为容易地对社交关系网络的模块度的计算方式进行修正。

在一些实施例中,在社交关系网络为非加权网络时,可以根据社交关系网络中任意两个社群的权重系数、上述任意两个社群合并后的新社群的权重系数、社交关系网络的总边数、上述任意两个社群中每个社群的节点的度之和、上述任意两个社群中每个社群的边数、以及上述任意两个社群之间连边的数量,确定出上述模块度变化函数。

这里,在采用Louvain方法对社交关系网络进行社群划分时,需要对社交关系网络中两个社群进行合并,得到合并后的新社群;连边表示实现上述任意两个社群直连的边,如果社交关系网络的任意两个社群直接相连,则认为上述任意两个社群之间存在连边,此时可以确定上述任意两个社群之间连边的数量;如果社交关系网络的任意两个社群不直接相连,则可以认为上述任意两个社群之间连边的数量为0。

在一些实施例中,在采用Louvain方法对非加权网络进行社群划分时,如果要对社群ci和社群cj进行合并,则由社群ci和社群cj合并带来的模块度变化函数可以通过公式(5)表示。

其中,ΔQ表示模块度变化函数,ej表示社群cj的边数,eij表示社群ci和社群cj之间连边的数量;Wi表示社群ci的权重系数,Wj表示社群cj的权重系数,Wij表示社群ci和社群cj合并后的新社群的权重系数;dj表示社群cj内所有节点的度之和。

可以看出,针对非加权网络,可以基于构造的模块度变化函数,采用Louvain方法对社交关系网络进行社群划分,有利于快速得出社交关系网络的社群划分结果。

在一些实施例中,在社交关系网络为加权网络时,根据上述先验分布、社交关系网络的节点强度之和、社交关系网络中每个社群的节点强度之和、以及社交关系网络中每个社群内的边的权重和,确定社交关系网络的模块度的计算方式。

示例性地,在社交关系网络为加权网络时,可以首先计算加权网络的邻接矩阵A,邻接矩阵是表示网络中节点之间相邻关系的矩阵,在i和j均为大于0的整数时,矩阵A第i行第j列的元素可以记为aij,aij表示社交关系网络中节点i和节点j的相邻关系,节点i的强度可以定义为si=∑jaij;示例性地,社交关系网络的模块度的计算公式可以是公式(6)。

其中,Qw表示社交关系网络为加权网络时社交关系网络的模块度,2w表示社交关系网络所有节点的强度之和,W(|ci|)表示社交关系网络中社群ci的权重系数,wi表示社交关系网络中社群ci的所有节点的强度之和,li表示社交关系网络中社群ci内的边的权重和。

可以看出,针对加权网络,可以结合社群大小的先验分布以及网络的图结构,较为容易地对社交关系网络的模块度的计算方式进行修正。

在一些实施例中,在社交关系网络为加权网络时,可以根据社交关系网络中任意两个社群的权重系数、上述任意两个社群合并后的新社群的权重系数、社交关系网络的节点强度之和、上述任意两个社群中每个社群的节点强度之和、上述任意两个社群中每个社群的边的权重和、以及上述任意两个社群之间连边的权重和,确定出上述模块度变化函数。

在一些实施例中,在采用Louvain方法对加权网络进行社群划分时,如果要对社群ci和社群cj进行合并,则由社群ci和社群cj合并带来的模块度变化函数可以通过公式(7)表示。

其中,ΔQw表示模块度变化函数,Wi表示社群ci的权重系数,Wj表示社群cj的权重系数,Wij表示社群ci和社群cj合并后的新社群的权重系数;li表示社交关系网络中社群ci内的边的权重和,lj表示社交关系网络中社群cj内的边的权重和,lij表示社交关系网络中上述任意两个社群之间连边的权重和;wi表示社交关系网络中社群ci的所有节点的强度之和,wj表示社交关系网络中社群cj的所有节点的强度之和。

可以看出,针对加权网络,可以基于构造的模块度变化函数,采用Louvain方法对社交关系网络进行社群划分,有利于快速得出社交关系网络的社群划分结果。

在一些实施例中,对于非加权网络或加权网络,上述模块度变化函数是采用Louvain方法对网络进行社群划分的关键所在。

参照图3,采用Louvain方法对社交关系网络进行社群划分的流程可以包括:

步骤301:将社交关系网络中的每个节点视为一个独立的社群。

可以看出,在初始时刻,社交关系网络中的节点数等于初始时刻划分的社群数。

步骤302:确定与每个社群合并的社群,并进行社群合并。

在一些实施例中,针对每个社群,依次尝试与各个相邻社群(相邻社群表示与对应的社群的邻居节点所在的社群)进行合并,在每次尝试进行社群合并后,根据上述模块度变化函数确定对应的模块度变化函数的值;针对每个社群,记录使模块度变化函数的值最大的相邻社群。

本发明实施例中,针对社群ci,可以将最大的模块度变化函数的值记为maxΔQ,在maxΔQ大于0时,将社群ci与使模块度变化函数的值最大的相邻社群进行合并;在maxΔQ小于或等于0时,对于社群ci不进行社群合并。

根据上述记载的内容可知,为了计算模块度函数的值,需要预先获取社交关系网络中社群大小的先验分布。

步骤303:判断各个节点所属的社群是否发生变化,如果是,则返回至步骤302,如果否,则执行步骤304。

步骤304:对社交关系网络的节点进行压缩。

在一些实施例中,可以将在同一个社群内的节点压缩成一个新节点,此时,可以将同一个社群内节点之间的边的权重和转化为新节点的权重系数,将相邻社群间的边的权重转化为对应的新节点之间的边的权重。

步骤305:判断社交关系网络的模块度是否发生变化,如果是,则返回至步骤301,如果否,则执行步骤306。

在一些实施例中,在每次执行步骤304后,均可以对社交关系网络的模块度进行一次计算,在本次计算得出的社交关系网络的模块度与上次计算得出的社交关系网络的模块度不同时,认为社交关系网络的模块度发生变化;在本次计算得出的社交关系网络的模块度与上次计算得出的社交关系网络的模块度相同时,认为社交关系网络的模块度未发生变化。

步骤306:按照当前的社群合并结果,进行社群划分。

在前述实施例提出的群体检测方法的基础上,本发明实施例还提出了一种群体检测装置。

图4为本发明实施例的群体检测装置的组成结构示意图,如图4所示,该装置可以包括:

获取模块401,用于获取社交关系网络中社群大小的先验分布;

第一处理模块402,用于根据所述先验分布确定所述社交关系网络的模块度的计算方式;

第二处理模块403,用于以最大化所述社交关系网络的模块度为目标,对所述社交关系网络进行社群划分,得到社群划分结果。

在一些实施例中,所述社交关系网络为非加权网络时,所述第一处理模块402,用于根据所述先验分布确定所述社交关系网络的模块度的计算方式,包括:

根据所述先验分布、所述社交关系网络的总边数、所述社交关系网络中每个社群的边数、以及所述社交关系网络中每个社群的节点度数之和,确定所述社交关系网络的模块度的计算方式。

在一些实施例中,所述社交关系网络为加权网络时,所述第一处理模块402,用于根据所述先验分布确定所述社交关系网络的模块度的计算方式,包括:

根据所述先验分布、所述社交关系网络的节点强度之和、所述社交关系网络中每个社群的节点强度之和、以及所述社交关系网络中每个社群内的边的权重和,确定所述社交关系网络的模块度的计算方式。

在一些实施例中,所述第二处理模块403,用于以最大化所述社交关系网络的模块度为目标,对所述社交关系网络进行社群划分,得到社群划分结果,包括:

根据所述社交关系网络中任意两个社群的权重系数、以及所述任意两个社群合并后的新社群的权重系数,确定模块度变化函数;其中,所述社交关系网络中的社群的权重系数与社群的节点数相关;

根据所述模块度的计算方式和所述模块度变化函数,并采用Louvain方法对所述社交关系网络进行社群划分,得到所述社群划分结果。

在一些实施例中,所述第二处理模块403,用于根据所述社交关系网络中任意两个社群的权重系数、以及所述任意两个社群合并后的新社群的权重系数,确定模块度变化函数,包括:

在所述社交关系网络为非加权网络时,根据所述社交关系网络中任意两个社群的权重系数、所述任意两个社群合并后的新社群的权重系数、所述社交关系网络的总边数、所述任意两个社群中每个社群的节点度数之和、所述任意两个社群中每个社群的边数、以及所述任意两个社群之间连边的数量,确定所述模块度变化函数。

在一些实施例中,所述第二处理模块403,用于根据所述社交关系网络中任意两个社群的权重系数、以及所述任意两个社群合并后的新社群的权重系数,确定模块度变化函数,包括:

在所述社交关系网络为加权网络时,根据所述社交关系网络中任意两个社群的权重系数、所述任意两个社群合并后的新社群的权重系数、所述社交关系网络的节点强度之和、所述任意两个社群中每个社群的节点强度之和、所述任意两个社群中每个社群的边的权重和、以及所述任意两个社群之间连边的权重和,确定所述模块度变化函数。

在一些实施例中,所述获取模块401,用于获取社交关系网络中社群大小的先验分布,包括:

统计样本数据中社群大小的分布信息,根据所述样本数据中社群大小的分布信息,构造所述社交关系网络中社群大小的先验分布。

上述获取模块401、第一处理模块402和第二处理模块403均可由位于电子设备中的处理器实现,上述处理器为ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。

另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

具体来讲,本实施例中的一种群体检测方法对应的计算机程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与一种群体检测方法对应的计算机程序指令被一电子设备读取或被执行时,实现前述实施例的任意一种群体检测方法。

基于前述实施例相同的技术构思,参见图5,其示出了本发明实施例提供的一种电子设备50,可以包括:存储器501、处理器502及存储在存储器501上并可在处理器502上运行的计算机程序;其中,

存储器501,用于存储计算机程序和数据;

处理器502,用于执行所述存储器中存储的计算机程序,以实现前述实施例的任意一种群体检测方法。

在实际应用中,上述存储器501可以是易失性存储器(volatile memory),例如RAM;或者非易失性存储器(non-volatile memory),例如ROM,快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向处理器502提供指令和数据。

上述处理器502可以为ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。

在一些实施例中,本发明实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述

上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述

本申请所提供的各方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。

本申请所提供的各产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。

本申请所提供的各方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:页岩单井含气丰度预测方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!