CN110334264A - 一种针对异构动态信息网络的社区检测方法及装置 - Google Patents

一种针对异构动态信息网络的社区检测方法及装置 Download PDF

Info

Publication number
CN110334264A
CN110334264A CN201910608243.6A CN201910608243A CN110334264A CN 110334264 A CN110334264 A CN 110334264A CN 201910608243 A CN201910608243 A CN 201910608243A CN 110334264 A CN110334264 A CN 110334264A
Authority
CN
China
Prior art keywords
community
node
network
increment
core
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910608243.6A
Other languages
English (en)
Other versions
CN110334264B (zh
Inventor
卢美莲
曲之赫
叶小卫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING GOZAP TECHNOLOGY Co Ltd
Beijing University of Posts and Telecommunications
Original Assignee
BEIJING GOZAP TECHNOLOGY Co Ltd
Beijing University of Posts and Telecommunications
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING GOZAP TECHNOLOGY Co Ltd, Beijing University of Posts and Telecommunications filed Critical BEIJING GOZAP TECHNOLOGY Co Ltd
Publication of CN110334264A publication Critical patent/CN110334264A/zh
Application granted granted Critical
Publication of CN110334264B publication Critical patent/CN110334264B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出一种针对异构动态信息网络的社区检测方法及装置,对从网络中爬取的数据构建的动态异构信息网络进行社区检测。本装置包括动态网络生成模块、基础网络社区检测模块、动态社区检测模块和基于增量的社区结构更新模块。本方法包括:对待研究数据建立基础网络和增量序列,基础网络为多路网络,对每一层网络检测社区结构,再构建一致图,检测一致图中的社区结构;对节点增加和删除、边产生和边消失四种增量类型设置社区结构更新策略,对网络中产生的增量序列,依据更新策略来更新社区结构。本发明充分考虑了各种可能的增量类型,以及不同类型增量可能导致的社区演化情况,能准确地检测出网络当前社区结构。

Description

一种针对异构动态信息网络的社区检测方法及装置
技术领域
本发明属于网络数据处理技术领域,具体涉及一种在异构动态信息网络上进行社区检测的方法及装置。
背景技术
在现实世界中存在着许多复杂网络,如互联网、人际关系网络、疾病传播网络和科学家合作网络。大量的研究表明,社区结构是复杂网络的一个重要特征,节点在社区内紧密相连,在社区之间连接较少。社区结构在复杂网络中扮演着越来越重要的角色。它可以帮助我们理解复杂网络的功能,找到潜在的规律,并预测复杂网络的行为。例如,社区结构代表社交网络中具有相同兴趣爱好的群体;Web页面在同一个社区内有更多的链接;在文献网络中,同一社区内的文献涉及同一研究领域。
目前,复杂网络社区检测研究取得了较大进展,并提出了许多有代表性的方法。首先是针对静态同构信息网络的社区检测方法。静态同构信息网络包括单一类型的节点和节点间关系,且网络中节点和节点间关系不会随时间发生改变。相应的社区检测方法包括使用层次聚类思想检测分层社区结构,利用节点信息或连边信息检测社区结构,基于模块度优化检测社区,基于标签传播检测社区结构等。不同于静态同构信息网络,静态异构信息网络包含多种类型的节点和节点间关系。基于静态异构信息网络的社区检测方法包括基于矩阵分解的方法,基于概率模型的方法,基于局部最优函数的方法和基于多路网络的方法等。
然而,在现实生活中的网络是动态变化的。以微博等社交网络为例,从宏观角度来看,用户数量将继续增长,网络规模将会增加。从微观角度来看,用户可以添加新朋友或删除现有的好友关系。这些变化将导致整个网络社区结构的变化,例如新社区的形成,旧社区的消失,社区的合并或分裂以及社区规模的改变。
相应的,动态信息网络社区检测的方法主要有两种:
第一种是按照一定的时间构建网络快照,基于不同的快照进行动态的社区检测。这类社区检测方法主要有三类:第一类是基于独立快照的社区检测及匹配方法;第二类是基于快照迭代的社区检测方法;第三类是基于所有快照的全局社区检测方法。这三类方法都需要确定存在演化关系的社区,以匹配不同快照间的社区结构。但是由于不同时间的网络快照上的社区结构可能变化很大,找到这种对应关系是很困难的。另外,由于需要间隔一段时间获取网络快照来进行社区检测,不能根据网络变化及时检测新的社区结构。
第二种是将动态信息网络看作由一个基础网络和后续网络增量构成,针对每个增量动态调整网络的社区结构。这类方法被称为基于增量的动态社区检测方法。这类方法的思想为,首先使用静态网络社区检测方法获取基础网络的初始社区结构,然后将网络的变化看作节点加入、节点离开、边产生和边消失四种不同类型的增量,针对不同类型的增量,采取不同的策略对初始社区结构进行局部调整。如Guo等人通过自定义的距离指标来计算网络产生增量后网络中节点之间的距离,并基于距离的度量来判断节点的社区归属(参考文件1:Guo Q,Zhang L,Wu B,et al.Dynamic community detection based on distancedynamics[C]//Ieee/acm International Conference on Advances in Social NetworksAnalysis and Mining.IEEE,2016:329-336)。但这个方法没有对可能导致的社区结构改变进行判断和处理,且无法适用于重叠社区检测。基于增量的动态社区检测方法复杂度较低,由于社区的动态检测只涉及网络变化的部分,所以可以快速得到处理结果。
综上,基于增量的动态社区检测方法可以在动态信息网络中快速获取网络当前的社区结构。但是这类方法存在如下一些问题:
1)在处理增量时,考虑的增量类型不全,或处理某一个类型增量的方法不完善,导致不能合理检测出可能存在的全部社区演化情况,社区检测结果不够准确。
2)现有基于增量的社区检测方法通过局部调整社区结构来获取动态的社区检测结果,导致当网络持续变化一段时间后,无法保证全局社区结构的合理性,这个问题也被称作“长期一致问题”。
3)现有基于增量的方法无法应用于异构动态信息网络的社区检测。
针对动态异构信息网络的社区检测方法可以应用于很多实际的应用场景,如检测社交网络中具有相似兴趣的用户群体,发现科研学术网络中相关研究领域的学者群体和学术论文等。以科研活动为例,典型的科研活动以科研工作者为主体,通过在学术期刊、会议上发表学术论文来完成。此外,专利、学位论文等为科研活动提供了大量学术数据。在学术大数据中包含了多种实体,如学者、论文、期刊/会议、论文关键词等,这些实体存在多种类型的关系,如学者和论文之间的著作关系、论文和期刊/会议之间的发表关系,学者之间的论文合著关系等,这些实体和他们之间的关系可形成异构的学术网络。异构学术网络中的节点的定义并不唯一,可以是论文节点、作者节点、关键词节点,或者是期刊/会议节点。并且,随着时间、用户数量继续增长,学术网络规模也在不断增加。学术网络的变化将导致异构学术网络中社区结构的变化,通过本发明提出的异构信息网络社区检测方法可以更准确地发现这种变化,从而可以更准确地发现相应研究领域的学者群体和研究论文的变化情况。在上面已经说明目前动态信息网络社区检测方法所存在的问题,这些问题同样存在于对异构学术网络的社区检测中。而异构动态信息网络的社区检测对于分析动态变化中的网络中的群体性关系的变化具有重要意义,所以针对异构动态信息网络需要更好的社区检测方法。
发明内容
针对现有社区检测方法中增量处理不完善,存在长期社区一致问题,以及现有基于增量的社区检测方法都是针对同构动态信息网络,无法应用于异构动态信息网络的问题,本发明提供了一种针对异构动态信息网络的社区检测方法及装置,基于增量的思想处理网络动态变化对社区结构的影响,并通过构建多路网络和一致图的方法支持异构动态信息网络的社区检测。
本发明的社区检测装置包括动态网络生成模块、基础网络社区检测模块、动态社区检测模块和基于增量的社区结构更新模块。动态网络生成模块利用输入的网络数据集信息构建基础网络和增量序列;基础网络社区检测模块负责获取基础网络的社区结构;动态社区检测模块基于基础社区检测结果和增量序列得到更新后的社区结构,该处理过程需要调用基于增量的社区结构更新模块;基于增量的社区结构更新模块针对某个增量,基于不同增量的处理策略更新同构网络社区结构。
动态网络生成模块利用所获取的网络数据构建基础网络和增量序列。构建基础网络时,指定某种类型的节点为中心类型节点,然后抽取中心类型节点为首尾的元路径,并从网络中提取元路径对应的实体构成多路网络,多路网络的每一层表示一种元路径对应的实体构成的网络。构建增量序列时,在增量序列中记录节点增加、节点删除、边产生和边消失的信息。
基础网络社区检测模块用于获取基础网络的社区结构。基础网络社区检测模块首先检测多路网络中每一层的社区结构,再利用检测结果构建一致图,然后检测一致图中的社区结构。一致图中的节点是中心类型节点,一致图中存在连边的两个节点一定至少在多路网络中一层的同一个社区内且彼此之间存在连边。
动态社区检测模块基于基础社区检测结果和增量序列得到更新后的社区结构,该处理过程需要调用基于增量的社区结构更新模块。动态社区检测模块对增量序列中的每个增量,先基于元路径映射到多路网络,获取多路网络每一层的增量,再对多路网络的每一层,基于该层原有社区结构和该层产生的增量,调用基于增量的社区结构更新模块更新该层网络的社区结构,然后将多路网络的增量映射到一致图上,得到一致图的增量,再基于一致图原有社区结构和产生的增量,调用基于增量的社区结构更新模块更新一致图的社区结构,对更新后的一致图的社区结构计算全局监测量,若监测到社区结构持续变差,则对当前网络的一致图重新进行全局社区检测,否则继续处理下一个增量,在处理完所有的增量后,输出更新后的社区检测结果;所述的监测到社区结构持续变差的判断依据是,当前网络的全局模块度低于基础网络的全局模块度,并且当前网络的全局监测量大于前序网络的全局监测量。
基于增量的社区结构更新模块针对某个增量,基于不同增量的处理策略更新同构网络社区结构。增量的类型包括节点增加、节点删除、边产生和边消失。
本发明提供一种针对异构动态信息网络的社区检测方法,从网络中爬取或下载待研究的数据,然后执行以下步骤:
步骤1、处理通过爬取或下载的网络数据,将某个设定时刻之前的全部数据作为基础网络数据,将这个时刻之后的数据作为增量数据。本步骤包括构建基础网络和构建增量序列两个部分:
a)构建基础网络:对于基础网络数据,指定某种类型的节点为中心类型节点,然后抽取中心类型节点为首尾的元路径,并从网络中提取这些元路径对应的实体构成多路网络,多路网络的每一层表示一种元路径对应的实体构成的网络。
b)构建增量序列:标注划分为增量类型的数据,包括节点增加、节点删除、边产生和边消失,以模拟网络的不同变化。
步骤2、检测多路网络中每一层的社区结构,利用检测结果构建一致图,检测一致图的社区结构。
a)获取多路网络的社区结构:对每一层使用静态同构信息网络社区检测方法获取多路网络社区结构,并保存社区检测结果。
b)构建一致图:基于多路网络每一层的社区检测结果构建一致图。一致图的节点就是全部的中心类型节点,节点间是否存在连边与多路网络每一层社区检测结果有关。
c)检测一致图的社区结构:使用静态同构信息网络社区检测方法检测一致图的社区结构,并保存社区检测结果。
步骤3、基于网络中产生的增量,更新网络社区结构。首先,基于元路径将网络增量映射到多路网络,获取多路网络每一层的增量;其次,对多路网络的每一层,基于该层原有社区结构和该层产生的增量,调用基于增量的动态社区结构更新方法更新该层网络的社区结构;然后,将多路网络的增量映射到一致图上,得到一致图的增量;再基于一致图原有社区结构和产生的增量,调用基于增量的动态社区结构更新方法更新一致图的社区结构;最后,对更新后的一致图的社区结构计算全局监测量,若监测到社区结构持续变差,则重新运行全局社区检测方法,否则继续处理下一个增量;在处理完所有的增量后,输出更新后的社区检测结果。
在步骤2检测到基础网络的一致图的社区结构后,对基础网络的一致图计算初始的全局模块度Q;所述的全局监测量为网络模块度的变化量ΔQ,利用Q+ΔQ作为增量更新后的当前网络的全局模块度;若当前网络的全局模块度低于基础网络的全局模块度,并且当前网络的全局监测量大于前序网络的全局监测量时,表示网络的社区质量不断变差,此时需要对当前网络重新运行全局社区检测方法获取全网的社区结构。
步骤4,基于增量的动态社区结构更新方法,是根据增量类型的不同,依据不同策略来更新社区结构;增量类型包括节点增加、节点删除、边产生和边消失四种。
对于节点增加和边产生,检测是否产生了新社区核心,若是,代表新社区产生,此时将新的社区核心和原有的社区核心分别作为一个子社区;否则,计算新增节点或边的顶点与其邻居节点所属社区的归属度,将新增节点或边的顶点加入社区归属度最大的社区内;当产生新社区或出现重叠节点时,计算新旧两个社区的相似性或都包含同一节点的两个社区的相似性,合并相似社区。
对于节点删除和边消失,检测删除的节点或消失的边是否属于社区核心,如果是,判断社区核心个数,如果是1个,解散社区,对每个解散的节点计算其与邻居节点所属社区的归属度,将节点或边的顶点加入社区归属度最大的社区内;如果社区核心有多个或者删除的节点或消失的边不属于社区核心,计算社区密度,进行社区分裂操作。
本发明装置及方法,可以用于多种异构动态信息网络,实现动态检测具有相同性质或标准的社区,发现社区的演化情况,提高基于社区检测的各种应用的准确性。
本发明装置及方法用于异构学术网络时,从网络中爬取学术数据,建立异构学术网络,网络中包含的节点类型有:论文节点、作者节点、关键词节点和论文发表的期刊/会议节点;包含的节点间的关系类型有:论文间引用关系、论文-作者间著作关系、论文-关键词间包含关系、论文-期刊/会议间发表关系。所选取的中心类型节点为论文类型的节点,所述的节点增加、节点删除、边产生、边消失分别指新论文的发表、旧论文被撤稿、论文间建立了新的引用关系、论文间引用关系取消。通过本发明装置及方法,得到当前异构学术网络的社区结构,并基于社区结构发现特定研究领域的学者或者推荐相关论文。
本发明提供的社区检测装置及方法与现有技术相比,具有以下优势:
(1)本发明充分考虑了各种可能的增量类型,以及不同类型增量可能导致的社区演化情况,并对每一种情况设置相应的处理方法,从而可以准确地检测出网络当前社区结构,例如能够实现及时准确的论文推荐等功能。
(2)本发明从两个角度来解决现有方法存在的社区结构长期一致的问题,即在处理增量的过程中会考虑到局部的社区结构优化问题,同时通过设置一个全局监测量来实时监测全局社区结构,当网络社区结果较差时,重新获取网络社区结构,这样既节约了计算时间,也增加了社区检测结果的准确性。
(3)本发明通过引入多路网络的思想,将改进的基于增量的社区检测算法扩展到异构动态信息网络中去,从而可以获得异构动态信息网络的社区检测结果。
附图说明
图1是本发明针对异构动态信息网络的社区检测方法的实现框架图;
图2是本发明异构学术网络的模型示意图;
图3是本发明实施例的一个异构学术网络的示例图;
图4是本发明实施例从异构学术信息网络中抽取指定类型实体的多路网络示例图;
图5是本发明实施例基于多路网络和一致图的基础网络社区检测结果示例图;
图6是本发明实施例产生增量后多路网络和一致图的社区检测示例图,其中,(a)为增量类型是节点的社区检测;(b)为增量类型是边的社区检测。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图对本发明作进一步的详细和深入描述。
现实世界的信息网络大多是包含多种实体类型和实体间关联关系的异构网络,并且网络往往会随着时间推移发生动态的变化,其网络社区结构也会随之发生改变。在动态变化的异构网络中实时获取网络社区结构,利用网络社区演化,可以帮助分析动态网络中的变化对网络结构的影响。在分析了现有的动态网络社区检测方法的相关研究的基础上,本发明提出了一种基于增量分析的动态异构信息网络社区检测方法,用来在实时变化的动态异构信息网络中进行社区检测。分析各种类型增量可能导致的社区演化情况,并通过调整社区归属度计算、加入社区密度来检测社区结构合理性等方法,提高处理增量的准确性,可以针对不同类型的网络变化量进行网络社区结构调整。另外通过引入全局监测量来保证网络全局社区结构优良性,并且利用多路网络的思想抽取异构网络信息进行社区检测。
异构学术网络是一个异构动态信息网络,网络中包括不同类型的节点。本发明实施例以异构学术网络来说明本发明所提供的装置及方法,以实时获取网络中某个指定类型节点的社区结构,例如论文类型节点的社区结构,在同一个社区内的论文相关性比较强,以便在进行学术研究时,为研究者推荐属于同一个社区内的文献,帮助研究者迅速获取一个领域中相关性比较强的研究内容,便于研究者迅速把握研究领域的发展脉络和研究现状。
如图1所示,本发明提供的异构动态信息网络的社区检测装置,从功能实现上分为动态网络生成模块、基础网络社区检测模块、动态社区检测模块和基于增量的社区结构更新模块。动态网络生成模块利用输入的网络数据集信息构建基础网络和增量序列;基础网络社区检测模块负责获取基础网络的社区结构;动态社区检测模块基于基础社区检测结果和增量序列得到更新后的社区结构,该处理过程需要调用基于增量的社区结构更新模块;基于增量的社区结构更新模块针对某个增量,基于不同增量的处理策略更新同构网络社区结构。相对应地,实现本发明针对异构动态信息网络的社区检测方法的过程也如图1所示。
动态网络生成模块利用所爬取的网络数据构建基础网络和增量序列。构建基础网络时,指定某种类型的节点为中心类型节点,然后抽取中心类型节点为首尾的元路径,并从网络中提取元路径对应的实体构成多路网络,多路网络的每一层表示一种元路径对应的实体构成的网络。构建增量序列时,在增量序列中记录节点增加、节点删除、边产生和边消失的信息。
基础网络社区检测模块用于获取基础网络的社区结构。基础网络社区检测模块首先对多路网络中的每一层检测社区结构,再利用检测结果构建一致图,然后检测出一致图中的社区结构。一致图中的节点是中心类型节点,一致图中存在连边的两个节点一定至少在多路网络中一层的同一个社区内且彼此之间存在连边。
动态社区检测模块基于基础社区检测结果和增量序列得到更新后的社区结构,该处理过程需要调用基于增量的社区结构更新模块。动态社区检测模块对增量序列中的每个增量,先基于元路径映射到多路网络,获取多路网络每一层的增量,再对多路网络的每一层,基于该层原有社区结构和该层产生的增量,调用基于增量的社区结构更新模块更新该层网络的社区结构,然后将多路网络的增量映射到一致图上,得到一致图的增量,再基于一致图原有社区结构和产生的增量,调用基于增量的社区结构更新模块更新一致图的社区结构,对更新后的一致图的社区结构计算全局监测量,若监测到社区结构持续变差,则对当前网络的一致图重新进行全局社区检测,否则继续处理下一个增量,在处理完所有的增量后,输出更新后的社区检测结果;所述的监测到社区结构持续变差的判断依据是,当前网络的全局模块度低于基础网络的全局模块度,并且当前网络的全局监测量大于前序网络的全局监测量。
基于增量的社区结构更新模块针对某个增量,基于不同增量的处理策略更新同构网络社区结构。增量的类型包括节点增加、节点删除、边产生和边消失。
基于增量的社区结构更新模块针对节点增加和边产生,检测是否产生了新社区核心,若是,代表新社区产生,此时将新的社区核心和原有的社区核心分别作为一个子社区;否则,计算新增节点或边的顶点与其邻居节点所属社区的归属度,将新增节点或边的顶点加入社区归属度最大的社区内;当产生新社区或出现重叠节点时,计算新旧两个社区的相似性或都包含同一节点的两个社区的相似性,合并相似社区。
基于增量的社区结构更新模块针对节点删除和边消失,检测删除的节点或消失的边是否属于社区核心,如果是,判断社区核心个数,如果是1个,解散社区,对每个解散的节点计算其与邻居节点所属社区的归属度,将节点或边的顶点加入社区归属度最大的社区内;如果社区核心有多个或者删除的节点或消失的边不属于社区核心,计算社区密度,进行社区分裂操作。
如图2所示,异构学术网络中包括四种类型的节点:论文P(paper)、作者A(author)、关键词K(keyword)和论文发表的期刊或会议V(venue),网络中四种边关系:论文间引用关系、论文-作者间著作关系、论文-关键词间包含关系、论文-期刊/会议间发表关系。首先需要获取学术网络数据,本发明实施例中从微软学术(https://academic.microsoft.com/home)上爬取或下载学术网络数据来获得数据集。下面说明本发明的针对异构动态信息网络的社区检测方法的实现步骤。
步骤1、对从网络获取的学术数据集,进行划分,构建基础网络,以及模拟网络的动态增长过程。本步骤包括构建基础网络和构建增量序列两部分。
一般根据网络中的时间信息,将某个时刻之前的全部数据作为基础网络数据,将这个时刻之后的数据作为增量数据。对于学术网络数据集,由于其最精确时间单位是年,因此本发明实施例利用2016年之前的数据构建基础网络,将2017年的数据等分成12份,模拟网络在2017年的12个月中的增量。
a)构建基础网络:对于基础网络数据,指定某种类型的节点为中心类型节点,然后抽取中心类型节点为首尾的元路径,并从网络中提取这些元路径对应的实体构成多路网络,多路网络的每一层表示一种元路径对应的实体构成的网络。
b)构建增量序列:标注划分为增量类型的数据,包括节点增加、节点删除、边产生和边消失,以模拟网络的不同变化。对于学术网络数据集,节点的变化可以是新的论文的发表,原有论文被撤刊,新的关键字,新的作者发表论文,原有作者被移除,新的期刊/会议的产生,原有期刊/会议停办等情况。边的变化包括论文之间产生新的引用关系,论文与期刊会议之间产生新的发表关系或者由于被撤稿导致发表关系解除等情况。
设给定时刻为t0,所得到基础异构学术网络表示为G0=(V0,E0),V0为网络G0的节点集合,其中包括q种类型的节点,V0=(V0 [1]∪V0 [2]∪...∪V0 [q]),本发明实施例q为4,E0为网络G0的边集合,包括s种类型的连边关系,E0=(E0 [1]∪E0 [2]∪...∪E0 [s]),本发明实施例s为4。在t0到目标时刻t期间产生的增量序列表示为ε={ε12,...,εS},S表示增量序列的个数,例如本发明实施例中对2017年的12个月中的增量分别进行统计,S为12,每个增量序列包含节点和边的增减,表示为εx∈{n+,n-,e+,e-},x=1,2,…S,其中,n+表示节点增加,n-表示节点离开,或称节点删除,e+表示边产生,e-表示边消失。在构建基础网络,对q种类型节点,指定第k种类型节点V0 [k]为中心类型节点,本发明实施例中指定以论文节点P为中心类型节点。
如图3所示,是本发明实施例的一个异构学术网络的结构图,包括论文节点、作者节点、期刊/会议节点以及关键词节点,这四种类型节点分别用Enity P、Enity A、Enity V、Enity K来表示。图3中相同类型节点间的连边用实线来表示,不同类型节点间的边用虚线表示。多路网络是一种包含单一类型实体和多种类型关联关系的特殊的异构信息网络,多路网络通常是针对于异构信息网络中的某种指定类型的中心类型节点而言的。如图4所示,是由图3的异构学术网络中抽取的七层多路网络。本发明实施例中,以Enity P节点为中心类型节点V0 [k],接着选取这些中心类型节点之间的多种关联关系,提取出针对第k种节点类型的七层多路网络其中,表示多路网络的第l层网络,本例中l=7。图4中的关联关系也就是所选取的元路径,元路径的首尾节点均为中心类型节点,指定需要抽取的关系元路径P-P(论文引用关系)、P-A-P(同作者关系)、P-V-P(发表于相同期刊/会议关系)、P-K-P(包含相同关键字关系)、P-A-A-P(存在合著关系作者的撰写关系)、P-V-V-P(论文发表于相同研究领域的期刊/会议关系)和P-K-K-P(论文包含相似关键字关系),构成一个七层的多路网络。
本发明实施例构建多路网络的一个具体实现步骤如下:
a1)构建异构信息网络模式图并指定中心类型节点V0 [k],本例中指定论文节点即图3中的Enity P节点为中心类型节点。
a2)基于网络模式图选取7条首尾节点类型均为中心类型节点的元路径,设对k类型节点的第y种元路径使用来表示,得到7条元路径的集合P[k]={P1 [k],P2 [k],...,Pl [k]},本例中l=7。
a3)从异构信息网络中提取每条元路径对应的实体构成多路网络的一层网络,从而构建基于l条元路径的多路网络本例中l=7。
元路径的抽取方法是:对于中心类型节点论文节点P和元路径P-A-P(同作者关系),如果存在一个作者节点,使得两个论文节点均与这个作者节点存在连边,即这两篇论文有相同的作者,则这两个论文节点之间在多路网络中元路径P-A-P的对应层中存在连边。显然,多路网络的每一层构成了一个只包含一种类型实体和一种关联关系的同构信息网络。
步骤2、获取多路网络中的社区结构,构建一致图,获取一致图的社区结构。
获取如图4所示多路网络后,显然,多路网络的每一层只包含论文类型的节点和一种论文之间的关联关系,所以多路网络每一层都是一个同构网络,所以可以使用同构社区检测方法来获取社区结构。本步骤分为如下2a、2b和2c三部分。
2a)获取多路网络社区结构:对多路网络中的每一层,使用针对静态同构信息网络的社区检测方法来获取多路网络社区结构,并保存其结果。
本发明实施例中,在多路网络的每一层采用重叠社区检测算法LPANNI(参考文件2:Meilian L,Zhenlin Z,Zhihe Q,et al.LPANNI:Overlapping Community DetectionUsing Label Propagation in Large-Scale Complex Networks[J].IEEE Transactionson Knowledge and Data Engineering,2018:1-1),获得七层多路网络中每一层网络的社区检测结果,即社区结构,多路网络第y层的社区检测结果使用MRy [k]表示,则七层多路网络社区检测结果的集合表示为MR[k]={MR1 [k],MR2 [k],...,MRl [k]},本例中l=7,其中表示多路网络的第y层的社区检测结果,ym表示多路网络第y层检测到的社区数,表示多路网络第y层检测得到的第ym个社区,y=1,2,…l。重叠社区检测的方法还可以采用其他方法,本发明中并不局限于LPANNI。
2b)构建一致图:基于多路网络每一层的社区检测结果构建一致图。一致图是无权图,一致图的节点就是全部的中心类型节点,节点间是否存在连边与多路网络每一层社区检测结果有关,一致图中存在连边的两个节点一定至少在多路网络中一层的同一个社区内且彼此之间存在连边。
基于多路网络及其社区检测结果MR[k]={MR1 [k],MR2 [k],...,MRl [k]}构建一致图CG[k]。一致图中节点均为中心类型节点论文节点V0 [k],节点之间连边利用多路网络每层社区检测结果构建。如果两个节点在多路网络的至少一层中属于同一个社区并且存在连边,则这两个节点在一致图中存在连边。
2c)获取一致图社区结构:使用静态同构信息网络的社区检测方法获取一致图社区结构,也就是论文节点的社区结构,并保存其结果。
本发明实施例中,在一致图上再次运行重叠社区检测算法LPANNI,最终得到利用网络异构信息检测到的论文节点V0 [k]的社区结构其中n表示一致图上检测得到的社区数,表示一致图上检测到的第n个社区。
如图5所示,是本发明实施例基于多路网络和一致图的基础网络的社区检测。图5的示例中,节点被划分为两个社区,用不同颜色表示这两个社区。根据一致图中连边的构建规则,由七层多路网络构建一致图,一致图中存在连边的两个点一定至少在七层多路网络中的一层的同一个社区内且彼此之间存在连边。获得一致图后,使用静态同构社区的检测方法获取一致图社区结构,也就是指定的中心类型节点的社区结构。
针对同构信息网络中,获取基础网络的社区结构后,接下来,对于网络中到来的每个不同类型的增量,基于增量与网络的连接关系,利用本发明定义的相关指标来确定增量可能导致的社区演化情况,从而更新社区结构。
本发明在设计更新社区结构策略前,首先分析了现有的基于增量的社区检测方法在处理不同类型增量时,对于增量可能导致的社区演化情况考虑的不足之处,然后针对存在的问题,设计相应的可以检测出所有可能的网络演化情况的策略。在处理完每个增量后,利用本发明定义的全局监测量监测网络全局社区结构的变化,在网络社区结构持续变差时,重新获取全网的社区结构,而不是基于当前增量更新局部社区结构,从而解决了社区结构长期一致问题。
首先说明本发明所涉及的指标,如下:
(1)社区核心:社区核心是一组全连接的节点。网络中每个社区都是由一个或多个社区核心以及与这些社区核心相关联的节点共同构成。本发明实施例中使用k-clique算法来检测社区核心,当产生新的社区核心时,认为产生新的社区。在网络中节点离开或者边消失的情形中,如果该节点或者边属于社区核心且社区内只包含一个社区核心时,则该社区被解散。如果社区内包含多个社区核心,则一个社区核心结构的破坏并不会对整个社区的结构造成影响,也就不会导致整个社区解散,但可能会导致社区的分裂或社区规模收缩。如果离开的节点或者消失的边不属于社区核心,则认为其离开不会导致整个社区的解体,但是会导致社区分裂或者社区规模收缩。
参考文件3中指出网络结构简单可以设置社区核心大小为3,网络规模复杂设置社区核心大小为4。由于本发明面向大规模的网络,网络结构复杂,因此将社区核心大小设置为4。参考文件3:Cazabet R,Amblard F.Simulate to detect:a multi-agent system forcommunity detection[C]//Proceedings of the 2011IEEE/WIC/ACM InternationalConferences on Web Intelligence and Intelligent Agent Technology-Volume02.IEEE Computer Society,2011:402-408。
本发明实施例中对社区核心的检测并不限于使用k-clique算法,其他能够检测出社区核心的方法也同样适用。
(2)节点的社区归属度δ(v,C):用于判断一个节点v是否归属于社区C。一个节点更倾向于加入与之更相似的邻居节点所在的社区,同时节点加入一个社区后可能会对局部社区结构产生影响。因此,为了提高社区检测质量,本发明综合两个方面计算节点的社区归属度,即节点与社区中其他邻居节点的相似性,以及节点加入后社区的局部模块度,如下公式所示。
其中,N(v)表示节点v的邻居节点集合,Sim(v,u)表示节点v和u的相似性,通过其公共邻居数来度量,C代表节点v加入的社区。W(C)为Hu等人提出的局部模块度(参考文件4:Hu Y,Yang B,Lv C.A local dynamic method for tracking communities and theirevolution in dynamic networks[J].Knowledge-Based Systems,2016,110:176-190)。
其中,I(C)表示社区C包含的边数,O(C)表示社区C和其他社区之间的边数,Aij为网络邻接矩阵,公式(3)中的vi和vj分别表示社区C内的任意两个节点,CC表示网络中除社区C之外的其他社区,公式(4)中的vi和vj分别表示社区C内的一个节点与其他社区内的任意一个节点。|.|表示集合中的节点总数,|C|表示社区C的节点数,表示其他社区CC的节点总数。
(3)社区相似性Sim(C1,C2):度量两个社区C1,C2之间的相似程度,基于该指标判断是否需要将两个社区进行合并。本发明使用已有方法来度量社区间相似性,并参考相关文献5(Loe C W,Jensen H J.Comparison of communities detection algorithms formultiplex[J].Physica A Statistical Mechanics&Its Applications,2015,431:29-45),将社区相似性阈值α设置为0.3。相似性值大于等于0.3合并,相似性值小于0.3不合并。社区间相似性计算如下:
其中,|C1∩C2|表示社区C1,C2之间共有节点个数,|C1∪C2|表示社区C1,C2的总节点数。
(4)社区密度:度量一个社区结构的紧密性。本发明基于社区密度来分析社区发生分裂的可能性。社区密度与社区内节点之间连接的紧密程度相关,可以利用社区内节点的度来计算。本发明使用已有的社区密度ρ(C)来度量社区结构的紧密性。
其中,ρ(C)表示社区C的密度,ρ(v,C)表示节点v对社区C的紧密性计算结果的贡献值。deg(v)表示节点v的度,而degin(v,C)表示节点v在社区C内的邻居数。
(5)全局监测量:用来检测全局社区结构的变化。本发明定义全局监测量为网络从时间t到时间t+1的网络模块度的变化量ΔQ,如下计算。
其中,mt表示异构学术网络在时刻t的边数,mt+1表示异构学术网络在时刻t+1的边数;N(i)表示节点i的邻居节点的集合;weight(v,i)表示节点i与节点v连边的权值;ki表示节点i与所有邻居节点的连边的权值之和;分别为在t时刻、t+1时刻的ki值;ki,in表示在节点i所在社区C内,节点i与在社区C内的所有邻居节点的连边的权值之和;分别为在t时刻、t+1时刻的节点i的ki,in值;∑tot表示与节点i所在同一社区C内的全部节点的连边的权值之和;分别为在t时刻、t+1时刻的∑tot值。
此处,对于权重weight(v,i)的设置方式是:若节点i仅属于一个社区,则weight(v,i)=1,若节点i属于n个社区,则weight(v,i)=n/1。
步骤3、基于网络中产生的增量,更新网络社区结构。
当异构信息网络产生新的增量时,将该增量映射到多路网络的每一层,使用本发明提出的HomoIA算法获取更新后的多路网络的社区结构,并将每一层的变化映射到一致图上,在一致图上再次使用HomoIA算法获取在网络产生增量后中心类型节点的社区检测结果。
与动态同构信息网络的社区检测类似,本发明同样需要考虑基于增量的方法存在的长期一致问题。对于网络中每个新产生的增量,在获取一致图上更新的社区结构后,计算全局监测量,在当前网络的全局模块度低于基础网络的全局模块度并且当前网络的全局监测量大于前序网络的全局监测量时,运行全局社区检测算法重新进行社区检测。本发明的步骤3的具体实现过程包括如下3a~3d。
(3a)基于元路径将网络增量映射到多路网络,获取多路网络每一层的增量。
对多路网络的每一个增量,基于指定的元路径提取该增量在多路网络每一层可能产生的增量。如图6的(a)中七层多路网络,异构信息网络中新增一个名为“New”的论文节点,该节点映射到多路网络的每一层,并在不同层产生了不同的连接关系。如图6的(b)中的七层多路网路,异构信息网络中产生一个非中心类型节点或产生一条新的连边,导致多路网络的第一层、第四层和第五层产生了新的连边关系。图6的(a)和(b)中黑色虚线代表新增的连边。
(3b)调用基于增量的动态社区结构更新模块,即HomoIA算法,更新多路网络社区结构。基于增量的动态社区结构更新模块的实现在下面步骤4中说明。
在每一层上使用HomoIA算法进行基于增量的社区检测,得到产生增量后多路网络在时间t的社区结构其中表示多路网络第l层在时间t的社区结构。如图6(a)三层多路网络所示,新增论文节点在七层多路网络中被划分到不同的社区。将多路网络的增量映射到一致图上,得到一致图的增量。
(3c)调用基于增量的动态社区结构更新模块更新一致图的社区结构。
根据一致图中节点间连边的构建方法,获取产生的增量与一致图中原有结构的关联关系。另外,由于多路网络每一层的社区结构会发生变化,即原有节点的社区归属可能也发生改变,从而使一致图上的连边发生变化。因此,这里需要统计这两方面的变化,假设一致图上产生了S′个增量,则得到一致图上的增量序列ε'={ε′1,ε′2,...,ε′S′},ε'中包含S′个增量。
如图6(a)中新增论文节点与一致图原有结构之间有三条边关系,图6(b)中一致图中连边没有发生改变。利用HomoIA算法在一致图上进行社区检测,得到更新后的一致图的社区检测结果,即社区结构,检测结果包含两个社区,则一致图的社区检测结果可以表示为其中p表示检测到的社区数目,本例中p=2。如图6(a)右侧所示,新增论文节点在一致图中被划分到深灰色节点所在社区,图6(b)中一致图中连边情况没有发生变化,所以没有影响一致图上原有的社区结构。
(3d)计算更新后的一致图的全局监测量ΔQ,用来监测是否重新运行全局的社区检测方法。
首先,对基础网络计算其初始的全局社区模块度Q。为了降低计算的时间复杂度,在进行增量社区检测时,本发明只针对基础网络计算一次全局模块度。之后,每次处理完一个网络增量,不再计算全局模块度,而是统计当前网络的全局监测量ΔQ。全局模块度Q根据参考文件5(Newman M E J.Finding and Evaluating Community Structure in Networks[J].Physical Review E,2004,69(2):026113)的定义来计算。
接着,基于更新后的一致图的社区结构,计算全局监测量ΔQ,将其与基础网络全局模块度之和Q+ΔQ作为更新后的一致图,即当前网络的全局模块度。
然后,检测当前网络的全局模块度是否低于基础网络的全局模块度,若是,并且当前网络的全局监测量大于前序网络的全局监测量时,也就是当次模块度改变量比上次模块度绝对值大,说明网络社区质量不断变差,此时需要对当前网络的一致图重新运行全局的社区检测方法,并重新获取全局模块度。进行全局社区检测与初始社区结构检测的方法一致,即运行全局社区检测算法LPANNI重新获取全网的社区结构,假设重新检测到p'个社区,则社区检测结果可以表示为否则继续处理下一个增量。
本发明的基于增量分析的动态同构信息网络社区检测算法HomoIA,在更新多路网络每层的社区结构、更新一致图的社区结构时被调用。下面步骤4中说明基于增量的社区结构更新模块对于不同类型增量所使用的不同的策略。
步骤4、基于增量的社区结构更新模块HomoIA的实现,如图1中所示。
网络中有四种类型的增量,节点增加、节点离开、边产生、和边消失。本发明实施例此处,以图4中多路网络的第一层,即论文间引用关系层为例,说明基于增量的动态社区结构更新,相对应地,节点增加即代表一篇新的论文的发表,一篇旧有的论文被撤稿即为一个节点离开,边产生代表论文间建立了新的引用关系,边消失代表论文间引用关系取消。下面说明针对4种不同类型的增量,本发明所设计的不同的增量处理策略,如4A~4D。
4A、节点增加New_Node情况的处理,包括如下4A.1~4A.4。
4A.1)对于新加入的节点v,获取其邻居节点集合Neighbor(v)={v1,v2,...,vs},s表示邻居节点的个数。
4A.2)判断Neighbor(v)是否为空,若Neighbor(v)为空,则v是孤立点,暂时将v作为一个独立的社区。若不为空,继续执行4A.3。
4A.3)使用k-clique算法检测节点v与邻居节点Neighbor(v)是否构成一个新的社区核心,然后执行如下过程:
4A.3a)如果产生了新的社区核心,则意味着产生了一个新的社区,保持原有社区的E个社区核心不变,原有的E个社区核心共同构成一个子社区,将新的社区核心Cnew从原有社区中独立出来,形成子社区。然后,将原有社区中其余节点加入待处理队列。对于队列中每个节点j利用社区归属度计算δ(j,Cold)和δ(j,Cnew),将节点j加入社区归属值最大的社区内。若节点j对两个社区归属度相同,则作为重叠节点加入两个社区。
4A.3b)如果没有产生新的社区核心,则不产生新的社区,计算新增节点v对其邻居节点所属社区Ct的社区归属度δ(v,Ct),并将新增节点v加入到社区归属度值最大的社区,因此导致相应社区规模增长。
4A.4)通过步骤4A.3,如果节点v被分配给了多个社区{C1,C2,...,CO},O表示社区个数,即导致社区间产生新的重叠节点,则对于其中的任意两个社区Ca,Cb∈{C1,C2,...,CO},a≠b,计算社区间相似性Sim(Ca,Cb)。若产生了新的社区,则计算原有社区所分成的两个新旧社区的相似性Sim(Cold,Cnew)。
若社区间的相似性大于设置的阈值α,则将两个社区合并,否则不进行合并。
4B、节点离开Node_Removal情况的处理,包括如下4B.1~4B.3。
4B.1)对于离开的节点v,获取其邻居节点集合Neighbor(v)。
4B.2)判断节点v是否是重叠节点,若是,重叠节点的离开会导致社区规模收缩,同时使得社区结构更加清晰,因此不做其他处理。若否,执行4B.3。
4B.3)若节点v不是重叠节点,获取其所在原社区的社区核心集合Cold,判断该节点是否属于某个社区核心,然后执行如下过程:
4B.3a)若离开的节点v是社区核心的节点,计算原社区包含的社区核心的个数|Cold|。
若|Cold|=1,则将节点v所在的原社区解散,社区内全部节点加入待处理队列,然后对于队列中每个节点j,获取其邻居节点所属的N个社区{C1,C2,...,CN},对其中的每个社区Cx∈{C1,C2,...,CN},计算节点j对社区Cx的社区归属度值δ(j,Cx),最后将节点j加入归属度值最大的社区,因此导致相应社区规模的增长。
若|Cold|>1,则计算节点v所在原社区的密度ρ(C),若社区密度低于设置的阈值β,则原社区发生社区分裂,社区中原有的M个社区核心各自形成子社区对于社区中每个非社区核心成员j,计算j对每个子社区的社区归属度,计算并将节点j加入归属值最大的社区。若社区密度ρ(C)大于等于阈值β,则不做额外处理,节点的离开导致原有社区规模收缩。
4B.3b)若离开的节点v是非社区核心节点,则计算该节点所在原社区的密度ρ(C),若社区密度ρ(C)低于阈值β,则原有社区发生分裂,社区中原有的社区核心各自形成子社区,设为计算社区中每个非社区核心成员j对每个子社区的社区归属度,将节点j加入归属值最大的社区,其中若社区密度ρ(C)大于等于阈值β,则不做额外处理,节点的离开导致原有社区规模收缩。
4C、边产生New_Edge情况的处理,包括如下4C.1~4C.3。
4C.1)对于新产生的边e,获取边e的两个顶点的邻居节点集合,设有sr个邻居节点,表示为有ek个邻居节点,表示为
4C.2)使用k-clique算法检测新增边e与是否构成一个新的社区核心,然后执行如下过程:
4C.2a)如果产生了新的社区核心,则意味着产生了一个新的社区,处理方法与上面节点增加情况时导致新社区产生的处理方法相同。
如果产生了新的社区核心,则代表产生了一个新的社区,将原有社区的社区核心Cold共同构成一个子社区,将新的社区核心Cnew形成一个子社区,然后,将原有社区中其余节点加入待处理队列,对队列中的每个节点j计算对于两个子社区的归属度,将节点j加入社区归属度最大的社区内;若节点j对两个社区的归属度相同,则作为重叠节点加入两个社区。
4C.2b)如果没有产生新的社区核心,则意味着没有产生新的社区,则判断该连边e的两个顶点是否属于同一个社区,分情况处理,如下:
i.如果属于同一个社区,社区内新增边关系会使得社区结构更紧密,不会导致社区演变;
ii.如果不属于同一个社区,则分别获取两个顶点的邻居节点所属的社区集合,分别设为其中的邻居节点所属的社区有su个,的邻居节点所属的社区有ev个。然后计算新增边的每个顶点与其邻居节点所属社区的社区归属度。对于节点计算其对于每个社区的社区归属度对于计算其对于每个社区的社区归属度将两个顶点分别加入其归属度值较大的社区,节点离开的原有社区规模收缩,节点新加入的社区规模增长。
4C.3)上述步骤4C.2中,如果产生了新的社区或边的顶点被分配给了多个社区,都可能导致社区合并的发生,社区处理的过程与上面节点增加处理策略的步骤4A.4相同。
4D、边消失Edge_Removal情况的处理,包括如下4D.1~4D.2。
4D.1)对于消失的边e,设边e的两个顶点分别为获取两个顶点的邻居节点集合,设有sr个邻居节点,表示为有ek个邻居节点,表示为
4D.2)判断消失的边的两个顶点是否属于同一个社区。若不属于同一个社区,则边消失会使得原有社区结构更加清晰,不会导致社区演变。若属于同一个社区,则获取两个顶点所在的原社区的社区核心集合并判断边是否属于某个社区核心部分,并分为如下两种情况进行处理。
4D.2a)若消失的边属于社区的核心部分,处理过程与增量类型是节点离开、且离开的节点属于社区核心部分的处理方法类似。首先,计算原社区包含的社区核心的个数|Cold|。若|Cold|=1,将原社区解散,对原社区内的每个节点j,获取其邻居节点所属的社区,计算节点j对其邻居节点所在社区的社区归属度,将节点j加入归属度值最大的社区。若|Cold|>1,则计算原社区的密度ρ(C)。若ρ(C)低于设置的阈值β,则原社区发生社区分裂,将社区中原有的M个社区核心各自形成一个子社区,对社区中的每个非社区核心的节点j,计算j对每个子社区的归属度,将节点j加入社区归属度值最大的社区。若ρ(C)大于等于阈值β,此时与节点离开策略的处理不同。节点离开策略对这种情况不做额外处理,离开的节点导致社区规模收缩,但边消失后其两个顶点的社区归属会受到影响,所以这里需要对消失边的两个顶点进行额外处理,即分别判断其社区归属,处理过程与增量类型是边产生,且新产生的边没有导致新社区核心的产生的情况下的步骤ii相同。
4D.2b)若消失的边不属于社区核心部分,则计算消失的边原来所在社区的密度ρ(C)。若社区密度ρ(C)低于阈值β,与上面4B.3b中社区密度低于阈值β的情况下的处理过程相同。若社区密度ρ(C)大于等于阈值β,需要计算消失边的两个顶点的社区归属,处理过程与增量类型是边产生,且新产生的边没有导致新社区核心的产生的情况下的步骤ii相同。
根据上面实施例的说明,本发明能够为研究者推荐属于同一个社区内的文献,并且由于网络中论文节点的社区检测利用到了网络中丰富的异构关系,所以同属于一个社区内的论文投稿的期刊/会议也会比较相似,可以在研究者发表论文选择投稿的期刊/会议时作为参考。另外,由于本发明提出的方法可以进行重叠社区的检测,所以当一篇文献属于多个社区时,意味着它属于多个研究领域,这篇论文就有很大可能是跨领域交叉学科的研究,分析这类论文有助于研究者扩展视野,了解研究趋势。网络在不断发生动态变化,本发明提出的方法可以实时获取网络上发生变化后社区结构的更新结果,来为研究者提供最新的论文分析结果。本发明提出的方法还可以追踪网络上社区结构的演化过程,从而方便分析网络中变化对于社区结构的影响。比如检测到网络中发生社区合并,意味着原本属于多个研究方向的研究领域现在研究的内容越来越集中到某个相同的问题上;检测到网络中发生社区分裂,意味着原有的一个大的研究领域分化出了多个独立的研究领域;检测到网络中新社区的产生,意味着某个时刻出现了一个新的问题,而很多研究者开始对其进行研究;检测到网络中旧有社区的消失,则可能意味着某个问题已经很少被人关注,这方面的研究越来越少。分析动态网路中社区的演化行为,可以帮助研究者对感兴趣的领域的发展历程有一个宏观的把握。
显然,所描述的实施例也仅仅是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

Claims (9)

1.一种针对异构动态信息网络的社区检测装置,其特征在于,所述装置包括动态网络生成模块、基础网络社区检测模块、动态社区检测模块和基于增量的社区结构更新模块;
动态网络生成模块利用所爬取的网络数据构建基础网络和增量序列;构建基础网络时,指定某种类型的节点为中心类型节点,然后抽取中心类型节点为首尾的元路径,并从网络中提取元路径对应的实体构成多路网络,多路网络的每一层表示一种元路径对应的实体构成的网络;构建增量序列时,在增量序列中记录节点增加、节点删除、边产生和边消失的信息;
基础网络社区检测模块用于获取基础网络的社区结构,首先对多路网络中的每一层检测社区结构,再利用检测结果构建一致图,然后检测出一致图中的社区结构;一致图中的节点是中心类型节点,一致图中存在连边的两个节点一定至少在多路网络中一层的同一个社区内且彼此之间存在连边;
动态社区检测模块基于基础社区检测结果和增量序列得到更新后的社区结构;动态社区检测模块对增量序列中的每个增量,先基于元路径映射到多路网络,获取多路网络每一层的增量,再对多路网络的每一层,基于该层原有社区结构和该层产生的增量,调用基于增量的社区结构更新模块更新该层网络的社区结构,然后将多路网络的增量映射到一致图上,得到一致图的增量,再基于一致图原有社区结构和产生的增量,调用基于增量的社区结构更新模块更新一致图的社区结构,对更新后的一致图的社区结构计算全局监测量,若监测到社区结构持续变差,则对当前网络的一致图重新进行全局社区检测,否则继续处理下一个增量,在处理完所有的增量后,输出更新后的社区检测结果;所述的监测到社区结构持续变差的判断依据是,当前网络的全局模块度低于基础网络的全局模块度,并且当前网络的全局监测量大于前序网络的全局监测量;
基于增量的社区结构更新模块针对某个增量,基于不同增量的处理策略更新同构网络社区结构;增量的类型包括节点增加、节点删除、边产生和边消失;
基于增量的社区结构更新模块针对节点增加和边产生,检测是否产生了新社区核心,若是,代表新社区产生,此时将新的社区核心和原有的社区核心分别作为一个子社区;否则,计算新增节点或边的顶点与其邻居节点所属社区的归属度,将新增节点或边的顶点加入社区归属度最大的社区内;当产生新社区或出现重叠节点时,计算新旧两个社区的相似性或都包含同一节点的两个社区的相似性,合并相似社区;
基于增量的社区结构更新模块针对节点删除和边消失,检测删除的节点或消失的边是否属于社区核心,如果是,判断社区核心个数,如果是1个,解散社区,对每个解散的节点计算其与邻居节点所属社区的归属度,将节点或边的顶点加入社区归属度最大的社区内;如果社区核心有多个或者删除的节点或消失的边不属于社区核心,计算社区密度,进行社区分裂或社区规模收缩。
2.根据权利要求1所述的装置,其特征在于,所述的节点的社区归属度为:
节点v归属于社区C的社区归属度表示为其中,N(v)表示节点v的邻居节点集合,Sim(v,u)表示节点v和u的相似性,通过其公共邻居数来度量,W(C)为社区C的局部模块度。
3.一种针对异构动态信息网络的社区检测方法,从网络中爬取或下载待研究的数据,然后执行如下步骤:
步骤1,对所获得的网络数据,构建基础网络和增量序列;
依据设定的时刻,将该时刻之前的网络数据作为基础网络数据,之后的数据作为增量数据;其中,构建基础网络时,指定某种类型的节点为中心类型节点,然后抽取中心类型节点为首尾的元路径,并从网络中提取元路径对应的实体构成多路网络,多路网络的每一层表示一种元路径对应的实体构成的网络;构建增量序列时,在增量序列中记录节点增加、节点删除、边产生和边消失的信息;
步骤2,对多路网络中的每一层检测社区结构,利用检测结果构建一致图,检测一致图的社区结构;
一致图中的节点是全部的中心类型节点,一致图中存在连边的两个节点一定至少在多路网络中一层的同一个社区内且彼此之间存在连边;
步骤3,对网络中所产生的增量,进行如下处理:
首先,基于元路径将网络增量映射到多路网络,获取多路网络每一层的增量;其次,对多路网络的每一层,基于该层原有社区结构和该层产生的增量,调用基于增量的动态社区结构更新方法更新该层网络的社区结构;然后,将多路网络的增量映射到一致图上,得到一致图的增量;再基于一致图原有社区结构和产生的增量,调用基于增量的动态社区结构更新方法更新一致图的社区结构;最后,对更新后的一致图的社区结构计算全局监测量,若监测到社区结构持续变差,则重新运行全局社区检测方法,否则继续处理下一个增量;在处理完所有的增量后,输出更新后的社区检测结果;
在步骤2检测到基础网络的一致图的社区结构后,对基础网络的一致图计算初始的全局模块度Q;所述的全局监测量为网络模块度的变化量ΔQ,利用Q+ΔQ作为增量更新后的当前网络的全局模块度;若当前网络的全局模块度低于基础网络的全局模块度,并且当前网络的全局监测量大于前序网络的全局监测量时,表示网络的社区质量不断变差,此时需要对当前网络重新运行全局社区检测方法获取全网的社区结构;
步骤4,基于增量的动态社区结构更新方法,是根据增量类型的不同,依据不同策略来更新社区结构;增量类型包括节点增加、节点删除、边产生和边消失四种;
对于节点增加和边产生,检测是否产生了新社区核心,若是,代表新社区产生,此时将新的社区核心和原有的社区核心分别作为一个子社区;否则,计算新增节点或边的顶点与其邻居节点所属社区的归属度,将新增节点或边的顶点加入社区归属度最大的社区内;当产生新社区或出现重叠节点时,计算新旧两个社区的相似性或都包含同一节点的两个社区的相似性,合并相似社区;
对于节点删除和边消失,检测删除的节点或消失的边是否属于社区核心,如果是,判断社区核心个数,如果是1个,解散社区,对每个解散的节点计算其与邻居节点所属社区的归属度,将节点或边的顶点加入社区归属度最大的社区内;如果社区核心有多个或者删除的节点或消失的边不属于社区核心,计算社区密度,进行社区分裂或社区归属收缩。
4.根据权利要求3所述的方法,其特征在于,所述的步骤3中,所述的全局监测量ΔQ的计算方法是:
设计算异构信息网络从时刻t到时刻t+1的网络模块度的变化量,如下:
其中,mt表示网络在时刻t的边数,mt+1表示网络在时刻t+1的边数;ki表示节点i与所有邻居节点的连边的权值之和,分别为在t时刻、t+1时刻的ki值;N(i)表示节点i的邻居节点的集合;weight(v,i)表示节点i与节点v连边的权值,权重weight(v,i)的设置方式是:若节点i仅属于一个社区,则weight(v,i)=1,若节点i属于n个社区,则weight(v,i)=n/1;ki,in表示节点i与节点i所在社区C内的所有邻居节点的连边的权值之和;分别为在t时刻、t+1时刻的ki,in值;∑tot表示与节点i在同一社区C内的全部节点的连边的权值之和; 分别为在t时刻、t+1时刻的∑tot值。
5.根据权利要求3所述的方法,其特征在于,所述的节点的社区归属度为:
节点v归属于社区C的社区归属度表示为其中,N(v)表示节点v的邻居节点集合,Sim(v,u)表示节点v和u的相似性,通过其公共邻居数来度量,W(C)为社区C的局部模块度。
6.根据权利要求3或4所述的方法,其特征在于,所述的步骤4中,对于节点增加时,具体执行如下步骤:
4A.1)对于新加入的节点v,获取其邻居节点集合Neighbor(v);
4A.2)判断Neighbor(v)是否为空,若是,则v是孤立点,暂时将v作为一个独立的社区;若不为空,继续执行4A.3;
4A.3)检测节点v与邻居节点Neighbor(v)是否构成一个新的社区核心,然后执行如下过程:
4A.3a)如果产生了新的社区核心,则代表产生了一个新的社区,设原有社区有E个社区核心,则原有的E个社区核心Cold共同构成一个子社区,将新的社区核心Cnew从原有社区中独立出来,形成子社区;然后,将原有社区中其余节点加入待处理队列,对队列中的每个节点j计算社区归属度δ(j,Cold)和δ(j,Cnew),将节点j加入社区归属度最大的社区内;若节点j对两个社区的归属度相同,则作为重叠节点加入两个社区;
4A.3b)如果没有产生新的社区核心,计算新增节点v对其邻居节点所属社区Ct的社区归属度δ(v,Ct),并将新增节点v加入到社区归属度最大的社区;
4A.4)通过步骤4A.3,如果节点v被分配给了多个社区{C1,C2,...,CO},O表示社区个数,则对于其中的任意两个社区Ca,Cb∈{C1,C2,...,CO},a≠b,计算社区间相似性Sim(Ca,Cb);若产生了新的社区,则计算原有社区所分成的两个新旧社区的相似性Sim(Cold,Cnew);若社区间的相似性大于设置的阈值α,则将两个社区合并,否则不进行合并。
7.根据权利要求3或4所述的方法,其特征在于,所述的步骤4中,对于节点删除时,具体执行如下步骤:
4B.1)对于删除的节点v,获取其邻居节点集合Neighbor(v);
4B.2)判断节点v是否是重叠节点,若是,不做处理;若否,执行4B.3;
4B.3)若节点v不是重叠节点,获取其所在原社区的社区核心集合Cold,判断该节点是否属于某个社区核心,然后执行如下过程:
4B.3a)若节点v是社区核心的节点,计算原社区包含的社区核心的个数|Cold|;
若|Cold|=1,则将节点v所在的原社区解散,社区内全部节点加入待处理队列,然后对队列中的每个节点j,获取其邻居节点所属的社区,对其中的每个社区Cx,计算节点j对社区Cx的社区归属度δ(j,Cx),最后将节点j加入归属度最大的社区;
若|Cold|>1,则计算节点v所在原社区的密度ρ(C),若社区密度低于设置的阈值β,则原社区发生社区分裂,社区中原有的每个社区核心各自形成一个子社区,对于社区中的每个非社区核心节点j,计算j对每个子社区的归属度,将节点j加入归属度最大的社区;若社区密度ρ(C)大于等于阈值β,则不做处理;
4B.3b)若节点v不是社区核心的节点,计算该节点所在原社区的密度ρ(C),若社区密度ρ(C)低于阈值β,则原有社区发生分裂,社区中原有的每个社区核心各自形成一个子社区,对社区中的每个非社区核心节点j,计算j对每个子社区的归属度,将节点j加入归属度最大的社区;若社区密度ρ(C)大于等于阈值β,则不做处理。
8.根据权利要求3或4所述的方法,其特征在于,所述的步骤4中,对于边产生时,具体执行如下步骤:
4C.1)对于新产生的边e,获取边e的两个顶点的邻居节点集合
4C.2)检测边e与是否构成一个新的社区核心,然后执行如下过程:
4C.2a)如果产生了新的社区核心,则代表产生了一个新的社区,将原有社区的社区核心Cold共同构成一个子社区,将新的社区核心Cnew形成一个子社区,然后,将原有社区中其余节点加入待处理队列,对队列中的每个节点j计算对于两个子社区的归属度,将节点j加入社区归属度最大的社区内;若节点j对两个社区的归属度相同,则作为重叠节点加入两个社区;
4C.2b)如果没有产生新的社区核心,则判断该连边e的两个顶点是否属于同一个社区,分情况处理,如下:
i.如果属于同一个社区,不会导致社区演变;
ii.如果不属于同一个社区,则分别获取两个顶点的邻居节点所属的社区集合,对每个顶点,计算顶点与其邻居节点所属社区的社区归属度,将顶点加入社区归属度值最大的社区;
4C.3)在步骤4C.2中,如果产生了新的社区或边的顶点被分配给了多个社区,计算新旧两个社区的相似性或包含同一顶点的两个社区的相似性,进行相似社区合并。
9.根据权利要求3或4所述的方法,其特征在于,所述的步骤4中,对于边产生时,具体执行如下步骤:
4D.1)对于消失的边e,获取边e的两个顶点的邻居节点集合
4D.2)判断消失的边的两个顶点是否属于同一个社区,若不属于同一个社区,则不会导致社区演变;若属于同一个社区,则获取两个顶点所在的原社区的社区核心集合Cold,并判断边是否属于某个社区核心部分,并分为如下两种情况进行处理:
4D.2a)若消失的边属于社区的核心部分,计算原社区包含的社区核心的个数|Cold|;
若|Cold|=1,将原社区解散,对原社区内的每个节点j,获取其邻居节点所属的社区,计算节点j对其邻居节点所在社区的社区归属度,将节点j加入归属度值最大的社区;
若|Cold|>1,则计算原社区的密度ρ(C),若ρ(C)低于设置的阈值β,则原社区发生社区分裂,将社区中原有的M个社区核心各自形成一个子社区,对社区中的每个非社区核心的节点j,计算j对每个子社区的归属度,将节点j加入社区归属度值最大的社区;若ρ(C)大于等于阈值β,分别对消失边的两个顶点判断其社区归属;
4D.2b)若消失的边不属于社区核心部分,则计算消失的边原来所在社区的密度ρ(C),若社区密度ρ(C)低于阈值β,则原有社区发生分裂,社区中原有的每个社区核心各自形成一个子社区,对社区中的每个非社区核心节点j,计算j对每个子社区的归属度,将节点j加入归属度最大的社区;若社区密度ρ(C)大于等于阈值β,计算消失边的两个顶点的社区归属。
CN201910608243.6A 2019-06-27 2019-07-08 一种针对异构动态信息网络的社区检测方法及装置 Active CN110334264B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2019105681261 2019-06-27
CN201910568126 2019-06-27

Publications (2)

Publication Number Publication Date
CN110334264A true CN110334264A (zh) 2019-10-15
CN110334264B CN110334264B (zh) 2021-04-09

Family

ID=68143234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910608243.6A Active CN110334264B (zh) 2019-06-27 2019-07-08 一种针对异构动态信息网络的社区检测方法及装置

Country Status (1)

Country Link
CN (1) CN110334264B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110781239A (zh) * 2019-10-25 2020-02-11 北京锐安科技有限公司 一种数据展示方法、装置、设备及存储介质
CN111047453A (zh) * 2019-12-04 2020-04-21 兰州交通大学 基于高阶张量分解大规模社交网络社区的检测方法及装置
CN111382318A (zh) * 2020-03-14 2020-07-07 平顶山学院 一种基于信息动力学的动态社团检测方法
CN111475736A (zh) * 2020-03-18 2020-07-31 华为技术有限公司 社区挖掘的方法、装置和服务器
CN111597396A (zh) * 2020-05-13 2020-08-28 深圳计算科学研究院 异构网络社群检测方法、装置、计算机设备及存储介质
CN111641518A (zh) * 2020-04-29 2020-09-08 深圳壹账通智能科技有限公司 基于异质网络的社群划分方法、装置、计算机设备及介质
CN111784528A (zh) * 2020-05-27 2020-10-16 平安科技(深圳)有限公司 异常社群检测方法、装置、计算机设备及存储介质
CN112819049A (zh) * 2021-01-22 2021-05-18 中国空间技术研究院 用于动态时序通信网络的分布式社区演化方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605793A (zh) * 2013-12-04 2014-02-26 西安电子科技大学 基于遗传算法的异构社会网络社区检测方法
CN107527295A (zh) * 2017-08-24 2017-12-29 中南大学 基于时态合著网络的学术团队动态社区发现方法及其质量评估方法
WO2019081631A1 (en) * 2017-10-26 2019-05-02 Airbus Defence And Space Sas METHOD AND SYSTEM IMPLEMENTED BY COMPUTER FOR DETECTING A SET OF RELEVANT COMMUNITIES
CN109840720A (zh) * 2019-03-01 2019-06-04 同济大学 车联网社区动态演化方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605793A (zh) * 2013-12-04 2014-02-26 西安电子科技大学 基于遗传算法的异构社会网络社区检测方法
CN107527295A (zh) * 2017-08-24 2017-12-29 中南大学 基于时态合著网络的学术团队动态社区发现方法及其质量评估方法
WO2019081631A1 (en) * 2017-10-26 2019-05-02 Airbus Defence And Space Sas METHOD AND SYSTEM IMPLEMENTED BY COMPUTER FOR DETECTING A SET OF RELEVANT COMMUNITIES
CN109840720A (zh) * 2019-03-01 2019-06-04 同济大学 车联网社区动态演化方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MEILIAN LU等: "Hete_MESE: Multi-Dimensional Community Detection Algorithm Based on Multiplex Network Extraction and Seed Expansion for Heterogeneous Information Networks", 《IEEE ACCESS》 *
XIAOMING LI: "Dynamic Community Detection Algorithm Based on Incremental Identification", 《2015 IEEE 15TH INTERNATIONAL CONFERENCE ON DATA MINING WORKSHOPS》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110781239A (zh) * 2019-10-25 2020-02-11 北京锐安科技有限公司 一种数据展示方法、装置、设备及存储介质
CN111047453A (zh) * 2019-12-04 2020-04-21 兰州交通大学 基于高阶张量分解大规模社交网络社区的检测方法及装置
CN111382318A (zh) * 2020-03-14 2020-07-07 平顶山学院 一种基于信息动力学的动态社团检测方法
CN111382318B (zh) * 2020-03-14 2024-02-02 平顶山学院 一种基于信息动力学的动态社团检测方法
CN111475736A (zh) * 2020-03-18 2020-07-31 华为技术有限公司 社区挖掘的方法、装置和服务器
CN111641518A (zh) * 2020-04-29 2020-09-08 深圳壹账通智能科技有限公司 基于异质网络的社群划分方法、装置、计算机设备及介质
CN111597396A (zh) * 2020-05-13 2020-08-28 深圳计算科学研究院 异构网络社群检测方法、装置、计算机设备及存储介质
CN111597396B (zh) * 2020-05-13 2021-05-28 深圳计算科学研究院 异构网络社群检测方法、装置、计算机设备及存储介质
WO2021227130A1 (zh) * 2020-05-13 2021-11-18 深圳计算科学研究院 异构网络社群检测方法、装置、计算机设备及存储介质
CN111784528A (zh) * 2020-05-27 2020-10-16 平安科技(深圳)有限公司 异常社群检测方法、装置、计算机设备及存储介质
CN112819049A (zh) * 2021-01-22 2021-05-18 中国空间技术研究院 用于动态时序通信网络的分布式社区演化方法
CN112819049B (zh) * 2021-01-22 2024-05-28 中国空间技术研究院 用于动态时序通信网络的分布式社区演化方法

Also Published As

Publication number Publication date
CN110334264B (zh) 2021-04-09

Similar Documents

Publication Publication Date Title
CN110334264A (zh) 一种针对异构动态信息网络的社区检测方法及装置
CN110210227B (zh) 风险检测方法、装置、设备和存储介质
Yang et al. Community mining from signed social networks
Hoffman et al. Detecting clusters/communities in social networks
Lu et al. Selective transfer learning for cross domain recommendation
Çavdar et al. Airline customer lifetime value estimation using data analytics supported by social network information
CN108763319A (zh) 融合用户行为和文本信息的社交机器人检测方法和系统
Bouneffouf et al. Optimal exploitation of clustering and history information in multi-armed bandit
CN107391542A (zh) 一种基于文件知识图谱的开源软件社区专家推荐方法
Zhang et al. Blockchain phishing scam detection via multi-channel graph classification
CN107516235A (zh) 商品偏好预估方法和装置
CN109934615A (zh) 基于深度稀疏网络的产品营销方法
CN112580902B (zh) 对象数据处理方法、装置、计算机设备和存储介质
CN110210248A (zh) 一种面向隐私保护的网络结构去匿名化系统及方法
Palchykov et al. Ground truth? Concept-based communities versus the external classification of physics manuscripts
CN110909195A (zh) 基于区块链的图片标注方法、装置及存储介质、服务器
CN108846043A (zh) 基于互联网大数据的网络痕迹挖掘分析方法及系统
Bhat et al. OCMiner: a density-based overlapping community detection method for social networks
Wang et al. Uncovering fuzzy communities in networks with structural similarity
Wang et al. Temporal dual-attributed network generation oriented community detection model
Cetin et al. A new network-based community detection algorithm for disjoint communities
Bidoki et al. Predicting social network evolution from community data partitions
CN112818241B (zh) 一种内容推广方法、装置、计算机设备和存储介质
Tabarzad et al. Incremental community miner for dynamic networks
Zhang et al. Web service community discovery based on spectrum clustering

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant