Deep learning in graph clustering 论文两篇

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)。

由于自编码器的计算复杂度 O(n) (指训练好之后的前向传播过程) 要远低于谱聚类中的特征分解 O(n3) ,因此这个方法计算复杂度低于谱聚类。其次,当加入稀疏性限制之后,自编码网络可以转化为稀疏自编码,而稀疏谱聚类却无法直接实现。

个人感觉作者提出的这两个优点都颇为牵强。关于第一个优点,抛开模型的训练时间去谈预测时间有点耍流氓了,更何况文中使用的还是深层的栈式自编码网络(SAE);其次,拿稀疏性去要求谱聚类,这是以己之长比人之短,稀疏性只是为了避免自编码网络自身的缺陷而提出的改进策略,对图聚类的结果并没有实质的提升效果,作者也只是说这能 “improve the efficiency of the data processing”。

GraphEncoder模型

模型的核心结构是以稀疏自编码网络为基本单元构建的栈式自编码网络。给定一个 n 个节点的图 G ,其相似度矩阵(或邻接矩阵) S , 可以 S 看成是由 n 个实例组成的训练集,每个实例即为矩阵的一行。将规则化了的训练集 D1S 作为模型的输入,模型的输出即为提出的特征,将这些特征作为k-means的输入,得到最终结果。

此处输入图片的描述

步骤如下
  • step1 得到graph的 n×n 的邻接矩阵S和度矩阵D
  • step2 DS 作为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

关于算法复杂度

算法复杂度: O(ncd) (不包括k-means的复杂度)
d : 隐藏层最大节点数
c : 节点平均度 (没有理解是咋来的…)

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值