目录

  • 1 谱聚类分析的三个基本步骤
  • 2 问题的引入——Graph Partitioning 图的分割
  • 3 图分割的评价指标
  • 4 图的谱——Spectral Graph Partitioning
  • 5 图的矩阵(Matrix representations)
  • 6 Find Optimal Cut
  • 7 Spectral Clustering Algorithms 谱聚类算法(详细)
  • 8. K-way Spectral Clustering
  • 9. 拓展:基于motif的谱聚类 Motif-based Spetural Clustering


谱聚类是一种基于图论的聚类方法,通过对样本数据的拉普拉斯矩阵的特征向量进行聚类,从而达到对样本数据聚类的母的。谱聚类可以理解为将高维空间的数据映射到低维,然后在低维空间用其它聚类算法(如KMeans)进行聚类。

1 谱聚类分析的三个基本步骤

(1)Pre-processing 预处理

  • Construct a matrix representation of the graph 构造图的矩阵表示

(2)Decomposition 分解

  • Compute eigenvalues and eigenvectors of the matrix 计算矩阵的特征值和特征向量
  • Map each point to a lower-dimensional representation based on one or more eigenvectors 将每个点映射到一个低维向量

(3)Grouping 聚类

  • Assign points to two or more clusters, based on the new representation 根据降维后的向量进行分组

2 问题的引入——Graph Partitioning 图的分割

在讲到谱聚类之前,我们先来看一下我们要解决的问题。

图神经网络节点聚类 神经网络聚类分析_图论

给定一张无向图图神经网络节点聚类 神经网络聚类分析_图神经网络节点聚类_02中,谱聚类的任务可以定义为Bi-partitioning task,就是将图图神经网络节点聚类 神经网络聚类分析_图论_03中的节点分为两个不相交的集合图神经网络节点聚类 神经网络聚类分析_图论_04图神经网络节点聚类 神经网络聚类分析_神经网络_05

那么,现在有两个问题需要解决:

  • How can we define a “good” partition of 图神经网络节点聚类 神经网络聚类分析_机器学习_06? 怎么定义图图神经网络节点聚类 神经网络聚类分析_机器学习_06的分割是好的?
    好的分割主要由两个因素决定 (What makes a good partition?):
    – Maximize the number of within-group connections 组内成员的连接尽可能的多
    – Minimize the number of between-group connections 组间成员的连接尽可能的少
  • How can we efficiently identify such a partition? 怎样快速有效地识别这些分割?
    这就需要一些评价指标。

3 图分割的评价指标

(1)Cut 和 Minimum-cut

Cut: Set of edges with one endpoint in each group.

第一个评价指标称作Cut,也就是将图的分割的情况表示为两个分割块的Edge cut的函数(Express partitioning objectives as a function of the “edge cut” of the partition)
图神经网络节点聚类 神经网络聚类分析_深度学习_08

如果是有权图,图神经网络节点聚类 神经网络聚类分析_机器学习_09为边的权值;如果是无权图,图神经网络节点聚类 神经网络聚类分析_机器学习_09图神经网络节点聚类 神经网络聚类分析_机器学习_11,连接为1,不连接为0。

下面就是一个例子:

图神经网络节点聚类 神经网络聚类分析_神经网络_12


前面说到,好的分割的标准之一就是不同分割块的成员之间的连接尽可能地少。所以使用cut这个标准来衡量图分割的目标就是找到Minimum-cut,也就是图神经网络节点聚类 神经网络聚类分析_神经网络_13。但是,cut这个指标只考虑了外部连接,没有考虑分割块内部的连接。这样会带来一个问题,就是最小的不一定是最优的,比如:

图神经网络节点聚类 神经网络聚类分析_神经网络_14


在此基础上,[Shi-Malik, ’97]提出了一个新的衡量图分割的指标Conductance。

(2)Conductance

Conductance的定义式如下:

图神经网络节点聚类 神经网络聚类分析_神经网络_15


与Cut相比,Conductance考虑了分割块的“体积”,使得分割后得到的不同的块更加平衡。但是,去得到最好的Conductance值是一个NP难度的问题。Spectral Graph Partitioning是一种得到近似优化值的方法。

4 图的谱——Spectral Graph Partitioning

  • 图神经网络节点聚类 神经网络聚类分析_图论_16为无向图图神经网络节点聚类 神经网络聚类分析_深度学习_17的邻接矩阵,图神经网络节点聚类 神经网络聚类分析_神经网络_18
  • 图神经网络节点聚类 神经网络聚类分析_图神经网络节点聚类_19维向量图神经网络节点聚类 神经网络聚类分析_机器学习_20为图图神经网络节点聚类 神经网络聚类分析_深度学习_17图神经网络节点聚类 神经网络聚类分析_图神经网络节点聚类_19个节点的标签/值(特征向量)。

则:
图神经网络节点聚类 神经网络聚类分析_神经网络_23

图神经网络节点聚类 神经网络聚类分析_图神经网络节点聚类_24有什么含义呢?我们通过线性代数的知识可以知道,图神经网络节点聚类 神经网络聚类分析_神经网络_25,也就是说,图神经网络节点聚类 神经网络聚类分析_深度学习_26计算的是节点图神经网络节点聚类 神经网络聚类分析_神经网络_27的邻居的标签之和。

图神经网络节点聚类 神经网络聚类分析_深度学习_28,可以得到特征值(eigenvalues)图神经网络节点聚类 神经网络聚类分析_图论_29和相应的特征向量(eigenvectors)图神经网络节点聚类 神经网络聚类分析_神经网络_30。对于图图神经网络节点聚类 神经网络聚类分析_图论_03来说,它的**谱(Spectrum)**定义为其一组特征向量图神经网络节点聚类 神经网络聚类分析_神经网络_30,且这组特征向量满足其对应的特征值为图神经网络节点聚类 神经网络聚类分析_神经网络_33,其中图神经网络节点聚类 神经网络聚类分析_神经网络_34

① 设图神经网络节点聚类 神经网络聚类分析_图论_03为一个所有节点的度为图神经网络节点聚类 神经网络聚类分析_图神经网络节点聚类_36的连通图(d-regular graph),设特征向量为图神经网络节点聚类 神经网络聚类分析_神经网络_37,则图神经网络节点聚类 神经网络聚类分析_图神经网络节点聚类_36为图图神经网络节点聚类 神经网络聚类分析_图论_03的邻接矩阵图神经网络节点聚类 神经网络聚类分析_图论_04的特征值,且为最大特征值,即图神经网络节点聚类 神经网络聚类分析_图神经网络节点聚类_41。【老师的PPT里面给了证明】

② 设图图神经网络节点聚类 神经网络聚类分析_图论_03为两个不连通的d-regular graph组成,如下图所示。此时图神经网络节点聚类 神经网络聚类分析_图论_43

图神经网络节点聚类 神经网络聚类分析_机器学习_44


推广:

图神经网络节点聚类 神经网络聚类分析_深度学习_45

  • 如果d-regular graph是连通的,那么我们知道图神经网络节点聚类 神经网络聚类分析_神经网络_46是图的一个特征向量。
  • 由于邻接矩阵图神经网络节点聚类 神经网络聚类分析_图论_16是实对称矩阵,属于矩阵图神经网络节点聚类 神经网络聚类分析_图论_16不同特征值的特征向量是相互正交的,所以
    对于剩下的特征向量来说,图神经网络节点聚类 神经网络聚类分析_图论_49,即图神经网络节点聚类 神经网络聚类分析_图论_50。也就是说,第二大特征向量图神经网络节点聚类 神经网络聚类分析_图论_51将剩下的点分成了两部分,图神经网络节点聚类 神经网络聚类分析_图神经网络节点聚类_52的和图神经网络节点聚类 神经网络聚类分析_神经网络_53的。

这样一来,我们就有了将图的节点进行分割的方法。并且,将图和线性代数(矩阵)结合,提供了计算机参与的切入点。

5 图的矩阵(Matrix representations)

(1)邻接矩阵 Adjacency matrix 图神经网络节点聚类 神经网络聚类分析_图论_16

邻接矩阵 图神经网络节点聚类 神经网络聚类分析_图论_04图神经网络节点聚类 神经网络聚类分析_神经网络_56 的矩阵,图神经网络节点聚类 神经网络聚类分析_图论_57,如果节点图神经网络节点聚类 神经网络聚类分析_神经网络_27和节点图神经网络节点聚类 神经网络聚类分析_图神经网络节点聚类_59有边相连,则图神经网络节点聚类 神经网络聚类分析_图论_60

图神经网络节点聚类 神经网络聚类分析_图论_61


邻接矩阵 图神经网络节点聚类 神经网络聚类分析_图论_04

  • Symmetric matrix 对称矩阵
  • Has 图神经网络节点聚类 神经网络聚类分析_图神经网络节点聚类_19 real eigenvalues 有图神经网络节点聚类 神经网络聚类分析_图神经网络节点聚类_19个实特征值
  • Eigenvectors are real-valued and orthogonal 特征向量均为实向量,且不同特征值对应的特征向量正交

(2)度矩阵 Degree Matrix 图神经网络节点聚类 神经网络聚类分析_机器学习_65

度矩阵 图神经网络节点聚类 神经网络聚类分析_神经网络_66 是一个 图神经网络节点聚类 神经网络聚类分析_神经网络_56 的对角矩阵,图神经网络节点聚类 神经网络聚类分析_神经网络_68

图神经网络节点聚类 神经网络聚类分析_神经网络_69

(3)Laplacian matrix 图神经网络节点聚类 神经网络聚类分析_深度学习_70

定义:图神经网络节点聚类 神经网络聚类分析_神经网络_71

图神经网络节点聚类 神经网络聚类分析_机器学习_72


Laplacian matrix 图神经网络节点聚类 神经网络聚类分析_深度学习_73有以下属性:

  • 图神经网络节点聚类 神经网络聚类分析_神经网络_74,则图神经网络节点聚类 神经网络聚类分析_神经网络_75,因此(最小)特征值为图神经网络节点聚类 神经网络聚类分析_机器学习_76。那么对于特征值图神经网络节点聚类 神经网络聚类分析_图论_77对应的特征向量图神经网络节点聚类 神经网络聚类分析_神经网络_78来说,图神经网络节点聚类 神经网络聚类分析_神经网络_78是一个单位向量,即图神经网络节点聚类 神经网络聚类分析_神经网络_80;且图神经网络节点聚类 神经网络聚类分析_深度学习_81
  • Eigenvalues are non-negative real numbers 特征值均为非负实数
  • Eigenvectors are real (and always orthogonal) 特征向量均为实向量,且不同特征值对应的特征向量正交
  • 对所有的图神经网络节点聚类 神经网络聚类分析_神经网络_78图神经网络节点聚类 神经网络聚类分析_图神经网络节点聚类_83。那么,我们来看一下图图神经网络节点聚类 神经网络聚类分析_深度学习_17图神经网络节点聚类 神经网络聚类分析_图神经网络节点聚类_85是什么含义呢?
    图神经网络节点聚类 神经网络聚类分析_神经网络_86
  • 图神经网络节点聚类 神经网络聚类分析_深度学习_70可以写作 图神经网络节点聚类 神经网络聚类分析_图论_88

引理:对于对称矩阵图神经网络节点聚类 神经网络聚类分析_深度学习_89,特征值
图神经网络节点聚类 神经网络聚类分析_图神经网络节点聚类_90
其中图神经网络节点聚类 神经网络聚类分析_图论_91是特征值图神经网络节点聚类 神经网络聚类分析_深度学习_92对应的特征向量。
(关于这个引理的证明在老师的课件里面有)

那么对于Laplacian矩阵
图神经网络节点聚类 神经网络聚类分析_机器学习_93

图神经网络节点聚类 神经网络聚类分析_图论_94


因为图神经网络节点聚类 神经网络聚类分析_图神经网络节点聚类_95,所以所求的解有正有负,而最理想的情况就是使尽可能少的边经过“0轴”。

6 Find Optimal Cut

我们还是回到最开始的问题——怎样得到图的最佳分割?

[Fiedler '73]提出了一种寻找最佳切分点的方案:

图神经网络节点聚类 神经网络聚类分析_机器学习_96


图神经网络节点聚类 神经网络聚类分析_机器学习_97

7 Spectral Clustering Algorithms 谱聚类算法(详细)

最后,我们再来回顾一下谱聚类算法的三个步骤:

(1)Pre-processing 预处理

  • Construct a matrix representation of the graph 构造图的矩阵表示

(2)Decomposition 分解

  • Compute eigenvalues and eigenvectors of the matrix 计算矩阵的特征值和特征向量
  • Map each point to a lower-dimensional representation based on one or more eigenvectors 将每个点映射到一个低维向量

(3)Grouping 聚类

  • Assign points to two or more clusters, based on the new representation 根据降维后的向量进行分组

图神经网络节点聚类 神经网络聚类分析_图神经网络节点聚类_98

下面是一些案例:

例1

例2

例3

图神经网络节点聚类 神经网络聚类分析_神经网络_99

图神经网络节点聚类 神经网络聚类分析_图论_100

图神经网络节点聚类 神经网络聚类分析_深度学习_101

8. K-way Spectral Clustering

怎样将图上的节点分成图神经网络节点聚类 神经网络聚类分析_神经网络_102类呢?有两种方法:

(1) 递归 Recursive bi-partitioning [Hagen et al., ’92]

递归利用二分算法,将图进行划分。但是递归方法效率比较低,且比较不稳定。

(2)Cluster multiple eigenvectors [Shi-Malik, ’00]

通过特征向量进行聚类。该方法目前比较常用,且效果较好。

图神经网络节点聚类 神经网络聚类分析_图神经网络节点聚类_103


这种方法有以下几个优点:

  • Approximates the optimal cut 更接近最优分割——Can be used to approximate optimal k-way normalized cut
  • Emphasizes cohesive clusters 着重于更凝聚的类别——①Increases the unevenness in the distribution of the data 考虑了数据的不均匀性 ②Associations between similar points are amplified, associations between dissimilar points are attenuated 相似点之间的关联被放大,不同点之间的关联被减弱 ③The data begins to “approximate a clustering” “近似聚类”

那么,怎么选择图神经网络节点聚类 神经网络聚类分析_神经网络_104呢?——How to select 图神经网络节点聚类 神经网络聚类分析_神经网络_104——通过两个连续的特征值之间的差来确定。

图神经网络节点聚类 神经网络聚类分析_神经网络_106

9. 拓展:基于motif的谱聚类 Motif-based Spetural Clustering

前面讲到的都是基于两个节点之间的关系的聚类,那么,如果我们想要基于Motif进行聚类呢?比如说下面这张图,我们给定一个图结构,并给定不同的Motif结构,就可以得到不同的聚类结果。

图神经网络节点聚类 神经网络聚类分析_神经网络_107


我们可以将Conductance的定义进行相应的推广:

图神经网络节点聚类 神经网络聚类分析_图神经网络节点聚类_108

下面是一个计算的例子。因为分割线图神经网络节点聚类 神经网络聚类分析_神经网络_109经过一个Motif,且Motif类中包含10个节点,可以知道图神经网络节点聚类 神经网络聚类分析_深度学习_110

图神经网络节点聚类 神经网络聚类分析_图论_111


类似的,问题就变成了给定图图神经网络节点聚类 神经网络聚类分析_图论_03和Motif结构,找到分割方式使得图神经网络节点聚类 神经网络聚类分析_机器学习_113最小。同样的,需要通过近似算法——Motif Spectral Clustering来得到最优结果。

图神经网络节点聚类 神经网络聚类分析_深度学习_114


同样的,近似算法分为三步:

(1)预处理 Pre-processing

定义矩阵图神经网络节点聚类 神经网络聚类分析_神经网络_115,其中图神经网络节点聚类 神经网络聚类分析_图神经网络节点聚类_116表示图图神经网络节点聚类 神经网络聚类分析_图论_03中的边图神经网络节点聚类 神经网络聚类分析_神经网络_118在给定的Motif结构图神经网络节点聚类 神经网络聚类分析_图神经网络节点聚类_119中参与的次数。下图是一个例子:

图神经网络节点聚类 神经网络聚类分析_图论_120


用矩阵形式表示:

图神经网络节点聚类 神经网络聚类分析_图论_121


(2) Decomposition 分解

第二步是分解,定义度矩阵图神经网络节点聚类 神经网络聚类分析_图论_122,定义拉布拉斯矩阵图神经网络节点聚类 神经网络聚类分析_机器学习_123,计算特征值与特征向量图神经网络节点聚类 神经网络聚类分析_图论_124,由得到的特征向量图神经网络节点聚类 神经网络聚类分析_神经网络_125来对图进行分割。

(3)Grouping 分组

这一步和之前的谱聚类方法类似。

图神经网络节点聚类 神经网络聚类分析_图神经网络节点聚类_126