基于复杂网络社区结构的论坛热点主题发现

合集下载

复杂网络结构中的社区发现算法优化研究

复杂网络结构中的社区发现算法优化研究

复杂网络结构中的社区发现算法优化研究社区发现算法是深入研究复杂网络结构的重要研究领域。

在传统的网络分析中,一个节点通常被视为只与其他节点有一种关联,但在现实中,节点之间的联系可以非常复杂,形成社区结构。

社区发现算法旨在利用网络中节点之间的关系来推断这些社区结构,这对于进一步了解网络中的重要性和相互作用、信息传递机制等方面具有重要作用。

然而,由于复杂网络的巨大规模和高维度,社区发现算法面临很多挑战,因此,优化社区发现算法以提高算法的准确性和效率是必不可少的研究方向。

一、社区发现算法的类型社区发现算法广泛应用于不同类型的网络结构,例如社交网络、通信网络等。

在网络中,社区结构的类型也多种多样。

这种多样性意味着社区发现算法具有许多不同的方法。

其中一些主要的算法类型如下:1. 基于图划分的算法:它是一种将网络划分为若干分区的算法。

这种算法的目标是最大化分区内节点的连接并最小化分区间节点的连接。

2. 基于谱聚类的算法:谱聚类算法基于直观的假设,即节点之间的连接可以通过网络的较小特征向量进行表示。

该算法构建一个类似于拉普拉斯矩阵的矩阵,然后找到其特征向量。

3. 基于模块度的算法:模块度是一种测量节点在社区中簇合程度的度量。

模块度算法通过最大化网络中所有节点的模块度来找到网络中的社区结构。

以上这些算法是社区发现算法的主要类型,各有优缺点,需要根据网络的特点和目标进行选择。

二、社区发现算法中的优化问题由于现实网络的规模和复杂性,社区发现算法面临许多挑战。

社区发现算法的优化问题主要包括以下几个方面:1. 效率问题:当网络规模很大时,社区发现算法需要花费大量的时间和计算资源。

因此,提高效率一直是社区发现算法优化的主要问题之一。

2. 精度问题:在实际网络中,往往存在一定噪声和信息不完整。

这种情况下,社区发现算法的准确度受噪声和信息不完整的影响,需要通过对算法的进一步优化来提高准确度。

3. 节点标签问题:在某些网络中,节点标签可以提供关于节点属性的信息。

复杂网络中社区发现算法的研究

复杂网络中社区发现算法的研究

复杂网络中社区发现算法的研究随着互联网的发展,人们对于网络的依赖越来越高,网络已经成为人们生活中不可或缺的一部分。

大量的信息被不断地产生和分享,网络中的各种社交网络也得以形成。

但是,随着网络的扩张,网络结构的复杂性也不断增加,这给社区发现带来了不小的挑战。

社区发现,即在网络中寻找具有相似特征的节点组成的集合,是研究网络结构的热门领域之一。

它广泛应用于社交网络、生物网络、互联网等各种领域。

社区发现的算法种类繁多,每种算法都有其独特的优点和不足。

目前,主流的社区发现算法主要分为以下几类:1. 基于连边的社区发现算法这种算法的基本思想是将网络中的边分成不同的子群,然后将同一子群中的节点分为同一社区。

以Girvan-Newman算法为例,其首先计算网络中所有边的介数(Betweenness)值,将介数值最大的边删除,再重新计算介数值,重复操作直到所有边都被删除,最终得到多个社区。

2. 基于聚类的社区发现算法这种算法将网络中的节点聚类成不同的组,要求同一组节点的相似度高于不同组节点的相似度。

常用方法有K-Means、DBSCAN、OPTICS等。

3. 基于模块度的社区发现算法这种算法的基本思想是通过计算网络中节点的聚集程度,将节点划分为不同的社区。

模块度算法是目前最为流行的基于模块度的社区发现算法。

虽然目前已有很多社区发现算法被广泛应用于各个领域,但是社区发现仍然存在很多挑战。

首先,网络结构的复杂性增加了社区发现算法的难度,使得一些算法只适用于特定类型的网络。

其次,现有的算法在处理较大规模的网络时计算效率较低。

最后,社区发现结果的可解释性似乎仍然不够理想。

为了解决这些问题,社区发现算法的研究需要深入探索以下方面:1. 改进社区发现算法一方面,需要对现有的算法进行改进,提高其适应各种类型网络的能力。

另一方面,还需要发展出更有效的算法,提高计算效率和社区可解释性。

2. 融合多种算法社区发现算法的精度往往与算法的类型有关。

复杂网络中的社区发现算法研究

复杂网络中的社区发现算法研究

复杂网络中的社区发现算法研究社区发现是复杂网络分析中的一个重要问题,其目标是将网络中的节点划分为具有紧密联系的社区或群组。

社区发现算法可以帮助我们理解网络结构、发现隐藏的模式以及预测节点的行为。

本文将探讨复杂网络中社区发现算法的研究进展和应用。

现代社交媒体、互联网和其他大规模网络平台的兴起,使得社区发现问题变得尤为重要。

社区发现算法能够揭示网络中的主要社区结构,为社交网络分析、推荐系统、信息传播以及恶意行为检测等应用提供有力支持。

在复杂网络中,不同的社区结构可能具有不同的特征。

因此,研究者们提出了许多基于不同原理的社区发现算法。

其中,最著名的算法之一是Louvain算法。

Louvain算法是一种基于模块性优化的算法,通过不断合并具有最高模块性增益的节点,来构建社区结构。

这种算法具有计算效率高、可扩展性强等特点,并已在实际应用中得到广泛使用。

除了Louvain算法,还有许多其他经典的社区发现算法,比如基于谱聚类的算法、模拟退火算法、标签传播算法等。

这些算法在不同的场景下表现出了良好的性能。

例如,基于谱聚类的方法在图像分割和基因表达数据分析中得到了成功应用,标签传播算法在社交网络中的社区发现任务中也取得了不错的效果。

除了传统的社区发现算法,近年来,随着深度学习的兴起,基于神经网络的社区发现算法也得到了广泛关注。

这些算法利用神经网络的强大表达能力来学习节点的表征,并通过聚类算法来发现网络中的社区结构。

这种方法具有自动学习特征的优势,不需要事先定义特征,因此在一些复杂网络中能够取得良好的效果。

在实际应用中,社区发现算法的选择取决于具体的网络结构和任务需求。

有些算法适用于规模较小且稠密的网络,而另一些算法则适用于规模较大且稀疏的网络。

因此,在选择算法时需要综合考虑网络规模、网络稠密度、计算资源等因素。

除了算法的选择,评价社区发现算法的性能也是研究中的重要方面。

常用的评价指标包括模块性、归一化互信息、模块间的连接度、内外部度等。

复杂网络中的社区发现算法研究

复杂网络中的社区发现算法研究

复杂网络中的社区发现算法研究随着互联网技术的飞速发展,越来越多的数据得以存储,处理和分析。

网络作为一个系统,一直受到研究者们的关注。

随着大量个体之间的相互作用,网络中会出现许多社区结构。

而社区发现算法则是揭示网络中社区结构的方法。

本文将会从复杂网络、社区结构、社区发现算法三方面来进行阐述。

一、复杂网络复杂网络是一种由很多个体组成的网络结构。

它的结点和边是复杂的,包含数学、物理、生物、社会等多方面的知识。

复杂网络的特点包括稀疏、小世界、无标度和社区等。

其中,社区是指网络中一些紧密相连的结点集合,与其他部分相对疏离。

社区结构存在于许多实际网络中,如社交网络、互联网中的网络图等。

二、社区结构社区结构指网络中具有可辨识别性的区域,由处于这个区域内的结点相互连接而成。

它是网络中的一种全局结构,可以重要程度来划分网络的组成部分。

社区结构一般包括两个方面的特性:内部紧密性较高、与外部联系较少。

社区结构的研究有助于我们深入了解网络中的相互关系,揭示网络的基本性质和规律,以及在计算机应用中有着广泛的应用。

三、社区发现算法社区发现算法是一种在复杂网络中发现社区结构的技术。

目前有许多种社区发现算法,如基于模块度的算法、基于标签传播的算法、基于谱聚类的算法等。

1.基于模块度的算法基于模块度的算法是一种用于量化社区的算法,并在此基础上提出了很多社区发现算法。

其中比较经典的是Girvan-Newman算法,它是一种基于分离节点的策略。

该算法的基本思想是:首先将网络结构图中的所有边按照权值从大到小排序,然后逐个删除边,每次删除一条边,同时计算网络把该边删除后被拆分成的连通块的模块度。

如果待删除的边恰好连接两个不同的社区,即删除该边后网络的总模块度将增加,因此可以找到最优的分割边,将两个社区分离开来。

不断重复进行该操作,直到网络中所有节点都被划分到不同的社区。

2.基于标签传播的算法标签传播算法是一种快速而有效的社区发现算法。

算法的核心思想是:每个节点先将其邻居中的最常见标签赋给自己。

复杂网络中的社区发现算法研究

复杂网络中的社区发现算法研究

复杂网络中的社区发现算法研究随着互联网技术的发展,网络已经渗透到我们日常生活的方方面面。

在网络发展的过程中,复杂网络这个概念逐渐成为了研究的热点之一。

复杂网络指的是网络结构中存在着大量连接、结点之间联系相互影响的复杂系统。

不同于传统网络,复杂网络的规模庞大,结构更为复杂,因此需要寻找一种有效的方式来研究复杂网络。

社区发现算法是一种广泛应用于复杂网络研究中的算法。

社区发现算法通过对网络中结点之间连接关系的分析,将结点划分到不同的社区中。

简单来说,社区就是指结点之间存在着强连接的子网络。

在这些子网络中,结点之间的联系相对紧密,而与其他子网络的联系相对稀疏。

因此,社区发现算法的研究对于深入理解网络结构与行为,具有非常重要的意义。

目前,社区发现算法已经发展出了许多种类。

其中,贪心算法是社区发现算法中比较常见的一种。

贪心算法通过将网络中的结点按照某种规则进行排序,然后依次将每个结点划分到当前社区或新社区中,直到达到社区概率的最大值。

除此之外,模块度优化算法是另一种常见的社区发现算法。

模块度优化算法的核心思想是在增加网络模块化的同时,尽可能减少模块间的联系。

不同的社区发现算法存在着各自的优缺点。

例如,贪心算法的计算速度较快,但是结果不够稳定;而基于模块度优化算法的算法计算时间较长,但是结果相对更为准确。

随着对社区发现算法研究的不断深入,越来越多的新型算法正在被提出和发展。

总的来说,社区发现算法是研究复杂网络的重要手段之一。

社区发现算法通过将网络结点划分到不同社区中,从而更好地展示了网络中结点之间的联系。

在网络研究中,了解社区结构的目的是为了发现结点之间的相互作用模式,了解网络结构随着时间的推移如何变化,并更好的分析网络系统的演化规律。

面向复杂网络的社区发现算法优化研究

面向复杂网络的社区发现算法优化研究

面向复杂网络的社区发现算法优化研究复杂网络是一种非常常见的网络形态,它将多个节点相互连接,形成了一个庞大而复杂的网络系统。

随着互联网的飞速发展,复杂网络已经在我们的日常生活中扮演了越来越重要的角色。

而社区发现算法是解决复杂网络中节点分类问题的一种有效手段,它可以帮助我们在大量的节点中快速找到特定的社区。

本文将探讨如何针对复杂网络进行社区发现算法的优化研究。

一、社区发现算法的分类社区发现算法可以根据其执行方式和结果形态进行分类。

在执行方式上,社区发现算法一般分为两种类型:基于分区和基于关联。

基于分区的算法先将节点划分为若干个不同的分区,然后根据节点之间的关系分析这些分区间的相似度,最终将相似的分区合并成为社区。

而基于关联的算法则是通过分析每个节点之间的关联性来确定社区的划分。

在结果形态上,社区发现算法分为两种:基于模块化方法和基于聚类方法。

基于模块化方法的算法一般以社区划分的连通程度为主要标准,基于聚类方法的算法则是以节点之间的距离和相似度为主要考虑因素。

二、社区发现算法优化的重要性社区发现算法的优化对于处理大规模网络数据非常重要。

在实际应用中,很多情况下社区大小非常大,而且规模也非常复杂,使用传统算法来进行分析会导致运算时间过长并且精度不够高。

如果能够通过算法优化的方式来提高效率和准确度,将有助于我们更好地理解网络结构,并为我们提供更好的数据分析工具。

三、社区发现算法的优化策略要优化社区发现算法的执行效率和准确度,需要对算法进行如下优化:1.优化图形结构:社区发现算法优化的一个重要策略是通过对应用场景的图形结构进行优化,来实现更快的运算和准确度的提升。

可以采用一系列的技术来实现优化,例如分层优化和图形空间分解等。

2.改善模型预处理:模型预处理是社区发现算法必不可少的一个环节。

通过改善模型预处理的效果,能够提高算法的准确度和速度。

常用的有 PCA、SVD、LDA 等技术。

3.提高距离矩阵的计算精度:定量距离计算在大规模数据处理的过程中是必不可少的环节。

复杂网络中的社区发现算法研究

复杂网络中的社区发现算法研究

复杂网络中的社区发现算法研究摘要:近年来,复杂网络作为一种新兴的研究对象,受到了广泛的关注和研究。

复杂网络的社区结构是其中的重要组成部分,社区发现算法可以有效地揭示网络中的隐藏社区结构,对于理解复杂网络的本质和功能具有重要意义。

本文通过综述复杂网络社区发现算法的研究现状,分析了不同算法的特点和应用场景,并探讨了未来的发展方向。

一、引言复杂网络的社区结构是指网络中一组节点的集合,这些节点之间连接紧密,而与其他节点连接稀疏。

通过对复杂网络的社区结构进行研究,可以揭示网络中节点的内在组织规律,有助于理解复杂网络的演化规律、功能特性和行为模式。

因此,社区发现算法成为了复杂网络研究领域中的热点问题。

二、常见的社区发现算法1. 基于模块度的方法模块度是评估社区结构优劣的重要指标,基于模块度的方法将社区发现问题转化为优化问题,并通过最大化模块度的方式寻找节点划分的最优解。

常见的基于模块度的算法有GN算法、Louvain算法等。

这类算法在时间和空间复杂度上相对较低,适用于大规模网络社区发现。

2. 基于层次聚类的方法基于层次聚类的方法将网络的社区结构看作是树状结构,通过划分树来寻找社区结构。

这类算法具有较好的可解释性和稳定性,但在处理大规模网络时会遇到效率问题。

著名的基于层次聚类的方法包括COPRA算法、BigCLAM算法等。

3. 基于传播的方法基于传播的方法将社区发现问题转化为信息传播的过程,通过节点之间的信息传递来判断节点的社区归属。

这类算法具有较高的准确性和鲁棒性,但在处理规模较大的网络时会面临计算复杂度高的问题。

典型的基于传播的算法包括LPA算法、SLPA算法等。

三、算法评价与比较社区发现算法的评价主要包括两个方面:检测效果和性能指标。

检测效果可以通过NMI、ARI等指标来衡量,性能指标包括时间复杂度和空间复杂度。

在不同的应用场景下,需要根据实际需求选择合适的算法。

此外,对算法的扩展能力和鲁棒性也是评价的重要因素。

复杂网络中的社区发现与分析

复杂网络中的社区发现与分析

复杂网络中的社区发现与分析人们在日常生活中经常会听到“社区”这个词,指的是一群共同具有某些特性、彼此有相互交往并且相对孤立于其他群体的人或组织。

而在复杂网络中,社区也有着类似的定义:指的是网络中由一些紧密相连的节点组成的一个子图,与其他子图相对孤立。

社区也被称为群组(clique)、簇(cluster)等。

在现实中,社区的发现对很多领域都有着重要的应用价值。

例如,在生命科学中可以通过社区发现来解析蛋白质复合物、基因调控网络等;在社会网络分析中,可以通过社区发现来分析朋友圈、领导小组、商业竞争等。

因此,如何有效地发现复杂网络中的社区,一直是研究的热点和难点。

社区发现的方法目前,社区发现的方法主要有以下几类:1. 基于聚类的方法基于聚类的方法是将网络中的节点划分到不同的簇中。

其中,最简单的方法是K-means,它将节点按照相似性分到不同的组中。

这种方法的优点是速度快,适用于规模较小的网络。

但是,缺点也很明显,随着网络规模增大,聚类结果会受到噪声的干扰,导致分类不准确。

2. 基于谱聚类的方法基于谱聚类的方法将节点之间的相似性表示为矩阵,并使用谱分解来找到最优的社区划分,它不仅适用于规模较小的网络,而且对噪声有很好的抗干扰能力。

但是,它也有缺点,例如当网络具有较多的噪声时会使得谱聚类的效果变差。

3. 基于模块度优化的方法基于模块度优化的方法是划分社区的一种常用方法,其基本思路是通过最大化社区内部的联系和最小化社区与社区之间的联系,来得到最优的社区划分。

其中,例如Newman的模块度最大化法、GN算法等,都是基于模块度优化的方法。

这种方法的优势在于时间效率高,但是对于社区分布不均匀或社区重叠等情况,会降低其准确性。

4. 基于深度学习的方法近年来,深度学习在社区发现中的应用越来越广泛。

基于深度学习的方法通过训练神经网络,来预测节点所属的社区。

例如CN-Ke-GAE、SDNE等方法,都是基于深度学习的方法。

相对于其他方法,它在对规模较大、社区之间重叠等问题有着更好的应对能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

—214—基于复杂网络社区结构的论坛热点主题发现王 林1,戴冠中2(1. 西安理工大学自动化学院,西安 710048;2. 西北工业大学自动化学院,西安 710072)摘 要:社区结构是复杂网络的重要特征之一,该文通过构造基于兴趣的论坛用户网络,成功地将社区结构发现的理论与方法应用于论坛热点主题的自动发现,提出了极大社区的概念和反复挖掘极大社区的方法,发现网络结构和论坛主题在反复挖掘过程中均几乎保持不变。

仿真结果表明,提取效果令人满意。

关键词:复杂网络;社区结构;极大社区;论坛主题Forum Hot Topic Detection Based on CommunityStructure of Complex NetworksWANG Lin 1, DAI Guan-zhong 2(1. School of Automation, Xi’an University of Technology, Xi’an 710048; 2. School of Automation, Northwestern Polytechnical University, Xi’an 710072)【Abstract 】Community structure is one of important characteristics of complex networks. Community finding algorithm is successfully applied in the detection of forum hot topic in this paper, and the following conclusions are obtained: the concept of maximal community and the method of repetitive dig of maximal community is proposed, and it is found that either network structure or forum hot topic is hardly changed. The simulation results show that the method works well.【Key words 】complex network; community structure; maximal community; forum topic计 算 机 工程Computer Engineering 第34卷 第11期Vol.34 No.11 2008年6月June 2008·人工智能及识别技术·文章编号:1000—3428(2008)11—0214—03文献标识码:A中图分类号:TP3911 概述复杂网络是复杂系统的高度抽象,它除具备小世界、无标度等重要特性外,还拥有另外一个重要特征,即网络中所呈现出的社区结构。

实证研究表明,复杂网络是多种类型的节点的组合,相同类型的节点之间存在较多的连接,而不同类型的节点之间存在较少连接,如图1所示。

同一类型中的节点以及这些节点之间的边所构成的子图称为网络中的社区(community)。

图1 具有社区结构的网络在大型复杂网络中自动搜寻或发现社区,具有重要的实用价值。

如,社会网络中的社区代表根据兴趣或背景而形成的真实的社会团体;引文网络中的社区代表针对同一主题的相关论文;万维网中的社区就是讨论相关主题的若干网站[1];而生物化学网络或者电子电路网络中的社区则可能是某一类功能单元[1]。

发现这些网络中的社区有助于研究人员更加有效地理解和开发这些网络。

复杂网络中社区发现的研究起源于社会学[1]。

文献[1]中的研究成果,使得复杂网络中的社区发现成为近几年复杂网络领域的一个研究热点并形成了复杂网络中一个重要的研究方向,将把社区发现问题定义为将网络节点划分成若干组,使得组内节点之间的连接比较稠密,而不同组节点之间的连接则比较稀少,并提出了基于边介数(edge betweenness)概念的分割方法,尽管该方法计算量很大,但由于其性能优越,从而成为社区发现研究的重要参考模型。

其他一些方法涉及到很多概念[1],如电路理论、超顺磁聚类、网络三角环(triangular loop)、网络的谱性质分析、网络的Laplace 矩阵以及聚类技术等。

尽管复杂网络社区发现问题得到了大量的研究,但尚未发现关于其实质性应用的相关文献,本文将探讨如何将社区发现方法应用于论坛热点主题的提取。

2 社区发现的谱分解法下面介绍一个用于BBS 网络的社区结构发现的算法,该方法将谱分解法和层次聚类法相结合,可有效发现网络中的社区结构[2]。

设G 是一个具有n 个节点的无向图,G 的 Laplace 矩阵L 是一个n ×n 的对称矩阵,其对角线元素ii l 是节点i 的度,非对角线元素ij l 表示节点i 和节点j 的连接情况,当节点i 和节点j 之间有边相连时,1ij l =−,否则0ij l =。

容易验证,向量()1,1,,1′=I "是L 的相应于特征值0的特征向量。

基金项目:国家“863”计划基金资助项目(2005AA147030);陕西省自然科学基础研究计划基金资助项目(2007F14)作者简介:王 林(1963-),男,教授、博士,主研方向:复杂系统及其应用;戴冠中,教授、博士生导师收稿日期:2007-06-15 E-mail :wanglin@—215—如果图G 可以被分解成g 个互不重叠、互不相连的子图G k ,则其 Laplace 矩阵L 是一个块对角矩阵,每个对角块就是相应的分支子图的 Laplace 矩阵。

容易知道,此时L 存在g 个与特征值0对应的特征向量(),1,2,,k k g =v ",其中,()k v 的对应于分支G k 的分量为1,而其余分量为0。

如果图G 可以被分解成g 个子图,但子图之间存在少量的连接,此时情形与上面有所区别。

一般来说,此时L 只存在一个特征值为0的特征向量,但存在g -1个接近于0的特征值,相应的特征向量可以近似地看成上述()k v 的线性组合。

因此,只要找到 Laplace 矩阵的几个接近于0的特征值,然后求对应的特征向量的线性组合,就可以近似地得到这些 子图[3]。

作为一个特例,笔者考虑将图G 分解成2个子图。

由于对称矩阵的任意两个特征值所对应的特征向量相互正交,因此 Laplace 矩阵 L 的任意对应于非零特征值的特征向量均正交于向量()1,1,,1′=I ",从而所有非零特征值的特征向量必须具有正分量和负分量。

如果图G 可以分解为2个子图使得这2个子图之间仅存在很少的连接,则将存在一个特征向量,其特征值近似于0;该特征向量的正分量对应一个子图,负分量对应另一个子图。

因此,可以通过观察最小非零特征值所对应的特征向量,根据特征值元素的正负将一个网络分解成2个社区,该方法称为谱二分法[4-5]。

Laplace 矩阵L 包含了图G 的全部拓扑信息,这些信息(包括社区结构)应该可以反映到Laplace 矩阵L 的谱中,谱二分法实际上只利用了矩阵L 的第1个非零特征值,如果综合考察矩阵L 的前几个非零特征值及其特征向量,则期望可以发现图G 的关于社区结构的更多有用信息。

随机生成一个具有320个节点的网络,其邻接矩阵如 图2所示,其中明显包含5个社区,每个社区具有64个节点。

将该图的节点投影到由邻接矩阵的第2个~第4个特征向量所组成的三维空间中(图3),可以看到,不同社区的节点所对应的投影区域分离得较好。

图2 320×320的邻接矩阵根据上述仿真结果,给出一个复杂网络中的社区发现算法,步骤如下:(1)计算网络的Laplace 矩阵的若干非零小特征值及其对应的特征向量;(2)将网络中的节点投影到由这几个特征向量所组成的多维空间上;(3)根据投影空间中投影点之间的距离远近,分离得到不同的区域;(4)上一步所得到的不同投影区域所对应的网络节点集即是所发现的社区。

上述步骤(3)中,两个投影节点之间的距离可以是欧几里德距离,也可以是两个投影节点向量(将原点连接到投影节点即构成投影节点向量)之间的夹角。

一般认为基于向量夹角的图3 网络在第2个~第4个特征向量所组成的三维空间上的投影得到网络节点在特征向量空间中的投影后,对于小型网络,可用观察法获得社区分解(图3)。

但对于大型网络,则必须借助于系统步骤利用计算机实现,笔者采用层次聚类法对投影空间中的节点进行聚类,根据节点之间的距离(由小到大)将节点聚合:先连接距离最近的两个节点,下一步将上一步连接起来的两个节点看成一个节点,而其他节点到该新节点的距离可以定义为到组成新节点的两个节点的距离中较大的距离,然后再重复上一步,直到最终将所有的节点聚合成一个节点。

上述过程如果进行到某一步停止,则得到网络的一个分解。

为确定针对网络所进行的社区分解是否合理,文献[1]定义了一个用以评价网络分解满意度的指标,称为模块度。

模块度的定义为:假定网络已经被分裂成g 个社区,定义一个g ×g 的矩阵e ,其元素ij e 表示原网络中连接社区i 和社区j 中的节点的边数所占比例。

该矩阵的迹Tr e 表示网络中连接同一社区中节点的边所占比例,该矩阵行元素的和i ijja e =∑表示至少一个端点位于社区i 中的所有边所占的比例。

如果将网络看成一个节点度值给定前提下所生成的随机网络,那么连接社区i 和社区j 中的节点的边数所占比例应该为i j a a ,特别地,连接社区i 中的节点的边所占比例应该为2i a 。

因此,若将网络看成一个节点度值给定的随机网络,则连接同一社区中节点的边所占比例为22i ij ik ii jka e e ==∑∑∑e (1)其中,x 表示x 的所有元素之和。

可以将网络的模块度定义为2Tr Q =−e e (2) 模块度的定义独立于任何特定的社区发现算法,只是用来衡量网络分解是否合理。

就上述层次聚类法而言,只要计算每一步所得到的社区分解的模块度,然后将模块度最大的那一步确定为合理的社区分解。

根据这一思想,笔者对图2—216—对应的网络进行社区分解。

将所有网络节点投影到网络的Laplace 矩阵的第2个~第5个特征向量所组成的五维空间上,采用基于夹角的距离进行层次聚类,并计算每一步所对应的社区分解的模块度,发现最大模块度为0.540 6,对应于第315步,并且其对应的社区分解恰好为5个社区,每个社区64个节点。

3 基于社区结构的BBS 热点主题提取方法在BBS 网络中,用户通过发帖或回帖来讨论发生在现实世界中的主题,这些主题可能已经出现在广播、报纸等传统媒体上,但经过网络的交互式讨论之后最终将形成倾向性的观点,本文讨论如何利用计算机自动发现这些主题。

相关文档
最新文档