文/张慧军
社团发现是一种研究网络的重要技术,目前被广泛应用于生物网络、社交网络以及技术网络的分析中,然而在当前的相关研究中,大部分工作主要是针对网络的拓扑结构来研究如何提高社团发现算法的效率以及准确性等。随着当前信息的多样化,很多真实的网络数据除了拓扑信息还兼具语义信息,其中语义信息不仅能够帮助用户进一步解释社团,还能为社团结构的调整提供了语义依据。如在电子邮件网络数据中,拓扑结构主要指邮件联系人以及他们之间的邮件收发关系,而语义信息主要是指邮件的主题和内容等。从网络的拓扑结构来看,社团内的节点之间有紧密的联系,而社团之间的连接相对稀疏;从网络的语义信息来看,社团内的节点语义信息相似,而社团之间的语义信息差别较大。在社团分析中融合拓扑信息与语义信息有利于发现更加准确以及更具解释性的社团结构。
可视分析技术将以人为中心的交互式可视化和以机器为中心的自动算法结合起来,逐渐成为了一种有效的决策手段。本文提出了一种社团可视分析方法,在该方法通过拓扑空间和语义空间的可视化及其交互技术,来帮助用户更好的解释、调整社团结构。
本文将交互式可视分析方法和社团发现算法结合起来帮助用户理解和调整社团结构,所以本文的相关研究主要包括社团发现算法的研究和网络数据可视化方法研究两个方面。
图1:社团可视分析研究框架
社团发现算法按照其思想可以分为基于图划分、基于聚类、基于模块度优化、重叠社团发现算法等多种方法。基于图划分的算法将图划分为预定义大小的多个簇,簇内的连接比簇之间的连接更多。基于图划分的代表算法有谱分区算法和 Kernighan-Lin算法。基于聚类的算法包括基于层次聚类的算法、基于划分聚类的算法、基于谱聚类的算法等。模块度是社团质量的一种衡量函数,模块度越大,分区越好。基于模块优化的代表性算法有Newman算法及其变种。重叠社团发现算法包括Top Graph Clusters,SVINET和标签传播算法等。
网络数据常用的可视化方法主要有节点链接法、邻接矩阵法等。节点链接法是网络数据中最常用的一种图形表示,其中每个节点均显示为一个点、圆、多边形或其他图形对象,而每条边均显示为连接两个节点的线段或曲线。在节点链接图中,存在许多用于计算节点和边的位置的复杂算法,如Sugiyama-Tagawa-Toda算法,该算法将节点定位在分层布局的级别上。在基于力导向布局的一类算法中,节点被想象为物理粒子,它们位置初始化为的随机位置,然后在各种力的作用下逐渐位移,直至到达最终位置。不同算法对作用力的定义不同。
邻接矩阵法是另一种常用的网络数据可视化方法。在邻接矩阵中,网络中的每个节点都对应一个行和一个列。对于给定的两个节点i和j,矩阵中位于(i,j)和(j,i)位置上的单元格包含了这两个节点之间连接边的信息。通常,每个单元格都包含一个布尔值,来指示两个节点之间是否存在边。如果网络是无向的,则邻接矩阵是对称的,即两个单元格(i,j)和(j,i)对应同一条边。但是,如果网络是有向的,则邻接矩阵是不对称的。
综上所述,在社团发现算法的研究中,用户很难理解算法为什么会把一些节点划分在同一社团内,某个社团的节点之间到底有什么共性;在网络数据可视化方法研究中,大部分工作主要集中在网络拓扑结构的可视化上,对社团的语义解释以及社团结构的优化调整方面的研究还比较缺乏。本文的目的是使用可视分析技术打通拓扑空间和语义空间之间的通道,帮助用户解释和调整社团结构。
本文提出的社团可视分析框架主要包括拓扑空间与语义空间两部分(如图1所示)。拓扑空间包括社团发现算法、网络及其社团结构的可视化表示等。语义空间主要指节点或边的语义信息可视化。在本文中,语义主要是指网络数据的节点或者边所包括的属性,文中更多关注于文本类属性值的分析。社团可视分析框架的这两个空间通过丰富的交互技术相互联动与协调来支持用户对社团的解释和调整。
社团解释是从拓扑空间到语义空间的操作,用户从算法所发现的社团结构、社团内部及社团之间的拓扑连接关系出发,分析社团的语义信息,来进一步解释社团。社团调整是从语义空间到拓扑空间的操作,用户从社团的语义信息出发,发现语义信息与社团结构之间的冲突,并通过调整节点所处的社团以及合并社团等操作来调整社团结构。
图2:社团可视分析系统界面
社团可视分析系统主要包括网络拓扑结构及社团可视化概览图、社团内部拓扑连接视图、社团之间拓扑连接视图、语义视图等四个主要视图,其系统界面如图2所示。
社团可视分析系统的拓扑空间主要包括了社团发现算法、网络拓扑结构及社团可视化概览图(图2a)、社团内部拓扑连接视图(图2b)以及社团之间的拓扑连接视图(图2c)。
4.1.1 社团发现算法
社团可视分析系统中采用了Fast Unfolding算法,选择该算法是由于它适用于挖掘较大网络数据中的社团结构。它是一种基于模块度优化的算法,该类算法的目标就是通过不断地迭代来划分社团,使得模块度不断增大。Fast Unfolding算法主要包括以下两个主要步骤:
第一个步骤是模块优化,它通过将网络中的每个节点划分到与其连接的节点所在的社团中,使得模块度不断增大;
第二个步骤是社团聚合,它将第一个步骤中划分出的社团聚合成为一个节点,重新构造网络。
算法不断迭代重复以上过程,直到网络的结构不再变化为止。
本文在拓扑空间中采用了Fast unfolding社团发现算法,但是本文的方法也同样适用于其他类似的社团发现算法。然而不同算法的运行效率各不相同,进而有可能会对系统的响应时间有所影响。
4.1.2 网络拓扑结构及社团可视化概览图
本系统的拓扑空间设计遵循了“总览为先,缩放过滤,按需查看细节”的原则。网络拓扑结构及社团可视化概览图(图2a)为用户提供了社团分析的总览及上下文,社团内部拓扑连接视图(图2b)以及社团之间拓扑连接视图(图2c)提供了分析过程中的细节信息。
网络整体的拓扑结构在本系统中采用了节点链接表示法,为了能够适应大图的布局,本文采用了YiFan Hu力导向布局方法,该布局不仅时间效率较高而且能够很好地将分属于不同社团的节点分散开来。同时,为了在概览图中区分不同的社团,系统中对社团使用颜色进行编码。
4.1.3 社团内部拓扑连接视图
在网络拓扑空间的设计中,系统采用节点链接图和邻接矩阵结合的布局方式,由于社团内部节点之间的联系紧密,所以用户很难在节点链接图中快速、准确地查看它们之间的联系。邻接矩阵在表达紧密连接的图形数据时,空间利用率也比较高。
社团可视分析系统中设计了社团内部拓扑连接视图来查看焦点社团内节点之间连接边的具体细节信息,该视图采用了邻接矩阵的可视化技术。邻接矩阵的每一行和每一列都表示一个节点,每一个单元都表示两个节点之间连接情况。该视图还提供了丰富的交互功能。用户可以通过点击每个节点来查看该节点相关的语义信息。用户也可以通过点击一个单元格来查看与边相关联的语义信息。
4.1.4 社团之间拓扑连接视图
社团之间拓扑连接视图显示了不同社团之间的关系。社团之间的关系在社团的分析过程中也非常重要,用户通过分析社团之间的关系可以获得下一步调整社团的见解。如用户发现两个社团之间的联系比较紧密,而且他们的语义也相近,则可以合并这两个社团。用户通过社团之间的联系还可以找到了那些社团边界上的关键节点,正式这些关键节点促进了社团之间的联系。
语义空间的语义可视化视图显示了网络数据的相关语义信息,如在电子邮件网络中,语义信息可以指用户之间收发电子邮件的主题信息。在该视图中,系统采用了气泡图来表示不同的语义信息,气泡的大小表示语义主题词出现的频率。用户可以通过交互在如下所示的不同层次下查看网络数据的语义信息。
在全局层次下,用户可以查看整个网络中的语义信息,如整个电子邮件数据的主题。
在社团层次下,用户可以查看每一个社团的语义信息,如技术部工作人员之间的电子邮件主题。
在跨社团层次下,用户可以查看社团之间联系的信息,如查看技术部和财务部之间收发电子邮件的主题。
在节点层次下,用户可以查看每一个节点相关的信息,如查看某个部门的某个工作人员收发电子邮件的主题。
在跨节点层次下,用户可以看两个邻接的节点之间联系的信息,如查看网络中两个工作人员之间收发电子邮件的主题。
在不同层次上分析网络的语义信息,可以帮助用户解释社团结构。除此之外,用户点击每个主题相应的气泡也可以查看与该主题相关的节点和社团,即实现从语义信息到拓扑信息的分析。这种从语义到拓扑的分析还可以帮助用户进一步调整社团,如在某个社团中发现了某个节点与其他节点相关的语义不同,则这个节点有可能不属于这个社团。
本文将网络的拓扑信息与语义信息融合起来,提出了一种网络社团结构可视分析的方法,该方法支持用户对社团结构的解释和调整。本文主要是针对静态社团,很多网络数据通常还包括时间戳,我们可以将本文的方法进一步延伸至动态社团的可视分析上。
更正
兹有卢云宏、周世平、于京艳同志发表在《电子技术与软件工程》杂志2019年12月上半月刊第233页中《新教育模式下程序设计课程体系的构建与实践》一文,原基金项目:烟台大学校级教改项目“计算机专业试题库建设与应用”(jyxm2016022)更正为:烟台大学校级教改项目“新教育模式下程序设计项目实训课程的教学运行模式研究”(jyxm2019023)。
《电子技术与软件工程》编辑部
2019年12月