1. Learning Deep Representations for Graph Clustering
论文信息:Tian, Fei, et al. “Learning Deep Representations for Graph Clustering.” AAAI. 2014.
来自微软亚洲研究院,这是最早将深度学习应用于图聚类问题(graph clustering)的文章。论文的思路非常简单,首先将自编码器(autoencoder)应用到图结构中进行特征提取,然后使用 k-means 聚类。这种思路的 motivation 源于谱聚类(spectral clustering)。
由于自编码器的计算复杂度
个人感觉作者提出的这两个优点都颇为牵强。关于第一个优点,抛开模型的训练时间去谈预测时间有点耍流氓了,更何况文中使用的还是深层的栈式自编码网络(SAE);其次,拿稀疏性去要求谱聚类,这是以己之长比人之短,稀疏性只是为了避免自编码网络自身的缺陷而提出的改进策略,对图聚类的结果并没有实质的提升效果,作者也只是说这能 “improve the efficiency of the data processing”。
GraphEncoder模型
模型的核心结构是以稀疏自编码网络为基本单元构建的栈式自编码网络。给定一个
步骤如下:
-
step1
得到graph的n×n 的邻接矩阵S和度矩阵D -
step2
将D′S 作为SAE的输入,实际上是graph有n个node,作为n个sample的训练集输入到 SAE中,每个sample的feature的维度是n表示该点与其他各点的连接情况。 -
step3
训练SAE,文中采用的是稀疏自编码的栈式形式。(自编码器一般都采用lbfgs的最优化策略来bp,效率和效果较好) -
step4
取栈底的AE的hidden层的vector作为node embedding的结果 -
step5
将embedding结果作为k-means的输入,进行graph cluster,最后用 NMI 来评价cluster的结果
优点:
1. 速度快,相比于谱聚类(涉及了EVD)
2. 对于稀疏图而言,SAE有更好的表达效果
3. SAE更易于扩展成更deep的structure
缺点:
1. 需要遍历所有的node,存储所有node的邻接点信息,对于big graph 可能在效率上不怎么work
2. 只是考虑了1-hop的信息,embedding的效果可能不够好
(参考自BVL的博客:http://blog.csdn.net/bvl10101111/article/details/54292016 )
关于算法复杂度
算法复杂度:
自编码器的时间复杂度:
假设自编码器三层节点数分别为n1,n2,n3 . 要要得到隐藏层**值,需要进行一次矩阵乘法(实际上是n1 向量与n1×n2 矩阵相乘), 需要进行n1×n2 次运算,由于输入层n1 和输出层节点数n2 均为固定值,那么它的前向传播时间复杂度为O(n2)
2. Modularity Based Community Detection with Deep Learning
论文信息:Yang, Liang, et al. “Modularity Based Community Detection with Deep Learning.” IJCAI. 2016.
这篇文章与上一篇文章的思路非常类似,依然是使用自编码网络进行特征提取,然后k-means聚类。只不过将其中的拉普拉斯矩阵替换为模块度矩阵(modularity matrix)。此外,模型还扩展到了半监督学习,利用已知邻接节点是否同属一个社团的信息(community menbership constraints)来提升社团发现的结果。
关于模块度矩阵
模块度由Newman在2006年提出,后来他自己证明了模块度的最优化等价于是在做谱聚类。
模块度
其中
-
hi 为社团成员指示向量:hi={1ifvertexibelongstothefirstcommunity−1otherwise kikj2m 是在连边随机分布情况下节点i 和j 之间的期望连边数目-
ki 是节点i 的度。
模块度矩阵定义为
对于 Q 的最优化是NP-hard的,对其进行近似。将
对于
问题的解即为模块度矩阵的的最大k个特征向量。
细节请参考论文:Newman, Mark EJ. “Finding community structure in networks using the eigenvectors of matrices.” Physical review E 74.3 (2006): 036104.
DNR模型(Deep Nonlinear Reconstruction Model)
除使用的矩阵不同之外,其它各方面与上一篇文章大同小异,这篇文章不再强调稀疏性,转而强调神经网络的非线性表达能力(nonlinear representation power),例如节点之间的关系(如距离)可能不一定是线性的。
作者在多个人工合成数据集和社交网络数据集上与多个社团发现算法(SP,EO,FUA,MABA,FN,FEC,Infomap)进行了对比。结果表明,在人工合成数据集GN上,DNR优于所有其它对比算法;在LFR人工数据集上,DNR整体优于其他对比算法,在社团混合系数较低时,Infomap对于小社团的检测有轻微优势。在社交网络数据集上,使用L2范数及交叉熵的DNR模型优于其它所有对比算法。
由于使用了模块度,因此很明显DNR模型的结果是要优于GraphEncoder的。