《A Comprehensive Survey on Community Detection with Deep Learning》简要笔记

本文记录《A Comprehensive Survey on Community Detection with Deep Learning》的简要阅读笔记。本篇综述是《Deep Learning for Community Detection-Progress, Challenges and Opportunities》的改进版本

论文基本信息:
期刊名:IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS(TNNLS)
期刊级别:CCF-B(人工智能)
年份:2021
标题:A Comprehensive Survey on Community Detection with Deep Learning
作者及工作单位:
image.png

Abstract

一个社区揭示了其成员不同于网络中其他社区的特征和节点间的联系。(社区的概念)社区发现在网络分析中具有重要意义。(进而指出社区发现的意义)除了经典的谱聚类和统计推断方法外,深度学习技术在处理高维网络数据方面的优势在近年来得到了显著的发展。(深度学习方法的优势)因此,通过深度学习全面概述社区发现的最新进展对于学者和从业者来说是及时的。(写本篇综述的动机)(以下介绍综述的内容)这项调查设计并提出了一个新的分类,涵盖了不同的最新方法,包括基于深度神经网络的深度学习模型(DNN),深度非负矩阵分解(NMF)和深度稀疏过滤(SF)。其中主要的类别,即深度神经网络,进一步分为卷积网络(CNN),图注意网络(GAT),生成对抗网络(GAN)和自编码器(AE)。该调查还总结了常用的基准测试数据集、评估指标和开源实现,以解决实验设置存在的问题。(相较于之前那篇的区别)然后我们讨论了社区发现在各个领域的实际应用,并指出了实现场景。最后,我们通过提出这个快速增长的深度学习领域的挑战性问题来概述未来的方向和机遇。
关键词:Community Detection, Deep Learning, Social Networks, Network Representation, Graph Neural Network
阅读过程中重点关注每一个深度学习模型在社区发现这个任务上的贡献,或者说这个模型的特别之处在哪,为什么能用于社区发现?能不能把这种方法用在恶意群体发现这个问题上?

1 INTRODUCTION

社区发现方法的简单演化(社区一词最开始出现在社会学)
社区发现的应用意义(社区发现的重要性,举例不同方面)
深度学习方法的优势(传统方法的不足,引出深度学习的优势)
本篇综述的贡献:

  • 系统分类与综合论述

本文为这项调查提出了一个新的系统分类。对于每一个分类,都会进行回顾、总结和比较具有代表性的工作。我本文还简要介绍了现实世界中的社区发现的应用场景,这些场景为未来的社区发现研究和实践提供了机遇。
image.png

  • 总结了丰富的资源和高水平的参考文献

本文调查收集了开放资源,包括基准数据集、评估指标和技术实现。最新的高影响力国际会议和高质量同行评议期刊上的出版物,涵盖数据挖掘、人工智能、机器学习和知识发现等领域。

  • 未来的研究方向

由于深度学习是一个新的研究领域,本文讨论了当前的局限性、关键挑战和未来方向的开放机遇。

2 DEFINITIONS AND PRELIMINARIES

本节给出 网络、社区以及深度学习模型输入和输出的定义

Network

根据图论,加权网络表示为G = (V, E, W),未加权网络表示为G = (V, E),其中V和E分别表示节点和边的集合,W表示E对应的权重。在非加权网络中,W被认为是1,可以从G中去除。
子图 g⊆G 是保留原始网络结构的图的一个分区。子图的划分遵循预先定义的规则,不同的规则会产生不同形式的子图。社区是一种表示真实社会现象的子图。换句话说,社区是一群具有共同特征的人或物。

Community

社区是网络中的子图,其中节点共享密集的连接。我们使用C = {C1, C2,…, Ck}表示从网络G中划分出的k个社区体的集合,其中Ci是该网络分区的第i个社区。聚类到到社区Ci中的节点v满足一个条件:社区内每个节点的入度大于其出度。

Community Detection Input

深度学习模型将网络的拓扑结构和属性作为输入,其中节点间的关系(拓扑结构)可用邻接矩阵 A 来表示;网络属性可以用矩阵 X 来表示(特征矩阵)

Community Detection Output

社区发现任务的目的是划分社区,所以输出就是一组社区(不相交/重叠)
不相交:一个成员只能属于一个社区
重叠:一个成员可以属于多个社区

3 A DEVELOPMENT OF COMMUNITY DETECTION

image.png
传统方法主要从网络结构层面来发现社区。在本节中,我们简要回顾这七类方法。深度学习揭示了深度网络信息,并对从高维数据到低维向量的复杂关系进行建模。
image.png

  • Graph Partition

这些方法被称为图聚类,它们将网络划分为K个社区(K为超参数,提前给定)。

  • Statistical Inference
  • Hierarchical Clustering

这类方法以三种方式发现分层社区结构(即树状图):分裂、聚集和混合。

  • Dynamical Methods

利用随机游走方式来动态地发现社区。

  • Spectral Clustering

从 spectral 角度出发,可以发现社区结构

  • Density-based Algorithms

基于密度的方法(如密度聚类DBSCAN)

  • Optimizations

还有一些优化方法
为什么需要深度学习方法来发现社区?
(1)采用深度学习方法能改进性能
(2)能够基于更丰富的特征来发现社区(高维特征数据)
(3)基于网络拓扑和节点属性的社区发现能力,以获得更健壮、性能更好的模型
(4)在大规模网络中检测更复杂结构的能力(拓扑结构)

4 A TAXONOMY OF COMMUNITY DETECTION WITH DEEP LEARNING

6个分类:卷积网络(CNN、GCN)、GAT、GAN、AE、DNMF、DSF
image.png

5 CONVOLUTIONAL NETWORK-BASED COMMUNITY DETECTION

社区发现中应用卷积网络的模型包括 CNNs 和 GCNs
CNNs:欧式数据(如图像数据),卷积操作可以减少计算量,池化操作确保CNN在特征表示时的鲁棒性
GCNs:非欧式数据(图结构数据)

5.1 CNN-based Community Detection

现有的基于CNN的社区发现方法在实现CNN模型时存在严格的数据输入限制,需要对图像格式化和标记的数据进行预处理。
通用的基于CNN的社区发现方法框架:
image.png

第一步(Input + Preprocess):将图预处理为节点或边上的图像数据作为CNN的输入
第二步(CNN + Full Connected Layer):d维特征在多个CNN隐藏层中进行卷积映射,最终的全连接层输出每个节点或每条边的表示进行分类。
第三步(Classification + Detection + Output):
关注于节点,flow①对每个节点打上标签(class1 / class2),然后具有同样类别的节点聚集到同一个社区
关注于边,flow②首先对每条边打上标签(inner/inter),初步的社区是通过去除社区间的边形成的,并通过度量指数(如Modularity Q)来优化。(问题:Detection 和 Output 两处的社区?)

5.2 GCN-based Community Detection

GCNs在深度图卷积层中聚合节点邻域信息,全局捕获复杂特征(GCN在社区发现方面的优势),用于社区发现。
通用的基于GCN的社区发现方法框架:
image.png
第一步(Input):将图结构数据(用邻接矩阵A表示)和节点特征数据(用矩阵X表示)
第二步(GCN + Embeddings):通过多个GCN层聚合邻居节点的信息,得到每个节点的特征表示(图表示学习,每个节点的特征用向量来表示)
第三步
(Classification):
flow①:在得到节点表示 H 后,为每个节点打上标签,然后基于每个节点的标签来发现社区(同一标签的节点属于同一社区)
(Clustering):
flow②和③:在得到节点表示 H 后实现节点聚类,并可以通过一些指标来优化,以获得最佳的社区隶属关系
flow④:联合优化聚类结果和GCN得到的节点嵌入表示,逐渐将每个节点归属到最佳社区
基于GCNs的社区发现方法有两类:(1)有监督/半监督社区分类,(2)无监督网络表示的社区聚类。社区分类方法在现实世界中由于缺乏标签而受到限制。相比之下,通过矩阵重构和目标优化等技术,网络表示对聚类社区更加灵活

6 GRAPH ATTENTION NETWORK-BASED COMMUNITY DETECTION

图注意力网络(Graph Attention Networks, GATs)通过具有注意力的可训练权重来聚合邻域中的节点特征(也就是相当于设置了权重)
通用的基于GAT的社区发现方法框架:
image.png
第一步(Input):输入图结构数据(邻接矩阵A),也可能会再输入节点特征数据(矩阵X)
第二步(GAT):与GCN不同的是,比如在更新h3时,会根据权重来从其他隐藏层获取信息(这里的权重用注意力系数来表示,绿/蓝/紫)
第三步(Analysis):
flow①:在多层网络中,相同节点对会根据不同颜色对应的系数来获取
flow②:异构网络中,用定义元路径的方式
第四步(Clustering + Output):得到节点表示后,进行聚类
在社区发现中,注意力机制有助于自适应地学习邻域中每个节点的重要性。相似节点之间的相关性,与同一社区内成员间相似这一基本事实是符合的。这些注意过滤了空间关系或整合了元路径。因此,在有属性的、多重的、异构的网络中,可以很容易地检测到社区。

7 GENERATIVE ADVERSARIAL NETWORK-BASED COMMUNITY DETECTION

对抗训练在生成模型中是有效的,可以提高区分能力。但是,在应用于社区发现时,需要解决过拟合问题
通用的基于GAN的社区发现方法框架:
image.png
第一步(Input):输入图结构数据(邻接矩阵A),也可能会再输入节点特征数据(矩阵X)
第二步(GAN):GAN通过生成器 φg 产生假样本 φg(z) 来欺骗判别器器φd。GAN的真实样本可以是节点嵌入表示Hv,局部拓扑(例如三元组)或社区。因此,真样本和假样本竞争性地微调社区特征,来达到最佳
第三步(Detection):
flow①:获取社区成员
flow②:基于节点表示来聚类,发现社区
flow③:直接通过判别器来发现社区

8 AUTOENCODER-BASED COMMUNITY DETECTION

自编码器(AEs)由于其无监督设置,最常用于社区发现,包括堆叠自编码、稀疏自编码、去噪自编码、卷积自编码和变分自编码。AEs可以描述非线性、有噪声的现实世界网络,并通过重构从丰富的信息中表示社区。
通用的基于AE的社区发现方法框架:
image.png
第一步(Input):输入可以是静态无属性图(只包含拓扑结构信息,用邻接矩阵A表示)、静态有属性图(既有拓扑结构信息,也有节点属性信息,用矩阵X表示)、动态图、cross-domain图、异构图、多通道属性图
第二步(AE):多个AE层,编码器对输入进行编码(降维),得到编码之后的结构,解码器再进行解码重构,然后最小化重构之后的信息与原始输入信息之间的损失,来实现优化。
第三步(Clustering):得到节点嵌入表示后,通过聚类来发现社区

9 DEEP NONNEGATIVE MATRIX FACTORIZATION-BASED COMMUNITY DETECTION(基于深度非负矩阵分解的社区发现)

10 DEEP SPARSE FILTERING-BASED COMMUNITY DETECTION(基于深度稀疏过滤的社区发现)

11 PUBLISHED RESOURCES

本节总结数据集、评估指标、代码实现相关的开源资料,具体见论文。

12 Practical applications

社区发现领域的实际应用
image.png

13 FUTURE DIRECTIONS


社区数量:社区发现前,我们并不知道要划分成多少个社区(相当于聚类里的聚类簇数,可视为一个超参数K)
社区嵌入表示:关注的是整个社区的表示,而不只是节点表示(不止1阶和2阶邻居,如何去获取更高阶邻居的信息)
分层网络:像Web这样的网络通常显示出不同规模的社区的树状分层组织,其中较低级别的小社区组合在一起,形成较高级别的较大社区。因此,需要从低到高进行社区发现。
多层网络:所谓多层,指的是由多个相互依赖的图组成,称为层,其中每一层表示实体之间不同类型的交互,跨层链接反映实体之间的依赖关系。
网络异质性:对于异质网络,社区发现将会有更大的挑战性,但也为社区发现提供了更有价值的信息
拓扑结构不完整:在网络拓扑信息不完整的情况下,如何有效地划分社区?
跨域网络:每个网络都有其独立的域。如何从跨域获取信息来划分社区?
多通道属性网络:如何在具有多维度特征的网络上划分社区?
边的信息:如何考虑边的不同信息?
网络动态性:如今的社交网络是变化的,如何关注到网络动态性?(如拓扑结构改变)
大规模网络:大规模网络的社区发现

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【强烈推荐,非常好的论文】如今人们生活在一个网络无处不在的时代,例如,交通运输网、移动通信网、互联网、在线社交网等,这些网络结构复杂,人们无法直接从中提取有用信息。社区发现作为一种重要的网络分析技术,能够挖掘出网络中具有某些共性的节点集合,有助于人们更加清楚的认识网络,吸引了很多专家的注意。随着现实网络和人们需求的变化,社区发现研究的侧重点也在不断变化。最初研究静态小规模网络的社区发现算法,随后由于网络规模的增大,算法的可伸缩性受到限制,人们开始研究如何提高算法效率。鉴于网络动态变化的本质特征以及人们对社区结构准确性和实时性的要求,动态网络社区发现开始受到关注。 本文首先介绍了社区发现相关技术,分析了经典的静态和动态社区发现算法及其优缺点,例如,GN算法、KL算法、CMP算法、GraphScope算法、FaceNet算法等。然后深入分析了基于贪婪思想的SHRINK-G算法,该算法不需要用户提供参数并且对每个节点只访问一次,算法效率较高,但存在的问题是对社区边界点的处理并不合理,容易使其成为无社区归属的节点,为此我们改进SHRINK-G算法,提出了 MSHRINK-G算法。随后基于MSHRINK-G算法研究了动态网络中的社区发现问题,并提出了基于增量处理的DMSHRINK-G算法。通过在LFR合成数据集和不同规模的真实数据集上的实验结果表明,MSHRINK-G算法准确性得到较大提高,DMSHRINK-G算法能够准确处理网络变化且算法效率较高。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值