一、创新点
1、提出DNR模型
2、对DNR模型改进,加入节点约束,提出semi-DNR模型
3、第一次将深度学习应用到社区检测
二、研究背景
模块或群落结构的识别对于描述和理解复杂系统非常重要。现有的多种社团检测算法中有两类代表:随机模型和模块度最大化模型。
2.1 问题描述
设无向无权图 G =(V,E),其中V = {v1, v2, …, vN } 是N个顶点的集合,E = {eij} 是边的集合,每条边都连接着V中的两个顶点。
G的邻接矩阵是一个非负对称的矩阵 A = [aij],aij = 1,顶点 i 和 j 之间有边;aij = 0,顶点 i 和 j 之间无边。
社团检测的问题是要找到 K个模块或社区 {𝑉𝑖 𝑖=1)𝐾} 的子图,这些子图的顶点之间的联系比与外部顶点的联系更紧密。在这里,考虑不相交的社区。
2.2 随机模型(Stochastic Model)
在随机模型中,aij 可以被看作是结点 i 和 j 相连的概率。如果结点 i 和 j 是相连的,可以进一步认为此概率由结点 i 和 j 生成属于同一社区的边的概率确定。
引入潜在变量 H = [hik]∈𝑅+(𝑁×𝐾),其中 hik 代表结点 i 产生属于社区 k 的边的概率。这个潜在变量还可以捕捉到结点 i 属于社区k的概率。H 的每一行都可以被视为社区成员的分布的结点。结点 i 和 j 被属于社区 k 的链接连接的概率为 hikhjk,它们连接的概率为:
因此,社区检测问题可以被表述为非负矩阵分解 𝐴≈𝐴 ̂=𝐻𝐻𝑇。
基于NMF的社区检测方法的目的是找到一个非负的成员矩阵 H 来重建邻接矩阵 A 。有两个常见的目标(损失)函数来量化重建误差。
第一种是基于平方损失函数,它等同于两个矩阵之差的Frobenius规范的平方
第二种是基于两个矩阵之间的Kullback-Leibleer divergence(KL-divergence)。
2.3 模块度最大化模型(Modularity Optimization Model)
该模型由Newman引入最大化模块化函数Q,该函数定义为社区内边的数量与所有对顶点上此类边的预期数量之间的差。 例如,一个有两个社区的网络
Maximizing Eq. (1) 是一个NP难题,实际中,可以通过把变量hi设置成随机值解决,同时 hTh=N。
当K>2时,社团多于两个,可以定义特征矩阵 H = [hik]∈𝑅+(𝑁×𝐾) 得到
基于瑞利熵数,这个问题的解决方案是模块化矩阵B的前最大K个特征向量。矩阵H的每一行都可以被看作是潜空间中相应顶点的新表示,然后用聚类算法,如k-means,用来将结点分类到潜空间中不相干的组。
2.4 研究方法
虽然设计的目的不同,这两类模型都在寻找低秩嵌入来最好地代表和重建网络拓扑结构。
但是这两种方法都只能通过线性重建来重建原始的网络,忽略了网络的非线性特性,而真实的网络有各种非线性特征,使得这些模型在实践中不那么有效。
神经网络是一个非常好的非线性映射的方法,所以作者将深度学习应用于社团检测,提出了Deep Nonlinear Reconstruction(DNR)算法。将该方法扩展到一个半监督的社区检测算法中,在图结点之间加入成对的约束,提出了semi-DNR模型。
三、算法
3.1 DNR
自动编码器是一种特殊的神经网络,用于学习一种新的表示方法,可以最好地接近原始数据,它是该模型的一个关键构件,模型由堆叠的自编码器实现,单个自编码器的计算过程如下: