目录
- 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 图的分割
在讲到谱聚类之前,我们先来看一下我们要解决的问题。
给定一张无向图中,谱聚类的任务可以定义为Bi-partitioning task,就是将图中的节点分为两个不相交的集合和。
那么,现在有两个问题需要解决:
- How can we define a “good” partition of ? 怎么定义图的分割是好的?
好的分割主要由两个因素决定 (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)
如果是有权图,为边的权值;如果是无权图,为,连接为1,不连接为0。
下面就是一个例子:
前面说到,好的分割的标准之一就是不同分割块的成员之间的连接尽可能地少。所以使用cut这个标准来衡量图分割的目标就是找到Minimum-cut,也就是。但是,cut这个指标只考虑了外部连接,没有考虑分割块内部的连接。这样会带来一个问题,就是最小的不一定是最优的,比如:
在此基础上,[Shi-Malik, ’97]提出了一个新的衡量图分割的指标Conductance。
(2)Conductance
Conductance的定义式如下:
与Cut相比,Conductance考虑了分割块的“体积”,使得分割后得到的不同的块更加平衡。但是,去得到最好的Conductance值是一个NP难度的问题。Spectral Graph Partitioning是一种得到近似优化值的方法。
4 图的谱——Spectral Graph Partitioning
- 设为无向图的邻接矩阵,。
- 设维向量为图中个节点的标签/值(特征向量)。
则:
有什么含义呢?我们通过线性代数的知识可以知道,,也就是说,计算的是节点的邻居的标签之和。
令,可以得到特征值(eigenvalues)和相应的特征向量(eigenvectors)。对于图来说,它的**谱(Spectrum)**定义为其一组特征向量,且这组特征向量满足其对应的特征值为,其中。
① 设为一个所有节点的度为的连通图(d-regular graph),设特征向量为,则为图的邻接矩阵的特征值,且为最大特征值,即。【老师的PPT里面给了证明】
② 设图为两个不连通的d-regular graph组成,如下图所示。此时
推广:
- 如果d-regular graph是连通的,那么我们知道是图的一个特征向量。
- 由于邻接矩阵是实对称矩阵,属于矩阵不同特征值的特征向量是相互正交的,所以
对于剩下的特征向量来说,,即。也就是说,第二大特征向量将剩下的点分成了两部分,的和的。
这样一来,我们就有了将图的节点进行分割的方法。并且,将图和线性代数(矩阵)结合,提供了计算机参与的切入点。
5 图的矩阵(Matrix representations)
(1)邻接矩阵 Adjacency matrix
邻接矩阵 是 的矩阵,,如果节点和节点有边相连,则。
邻接矩阵
- Symmetric matrix 对称矩阵
- Has real eigenvalues 有个实特征值
- Eigenvectors are real-valued and orthogonal 特征向量均为实向量,且不同特征值对应的特征向量正交
(2)度矩阵 Degree Matrix
度矩阵 是一个 的对角矩阵,。
(3)Laplacian matrix
定义:
Laplacian matrix 有以下属性:
- 令,则,因此(最小)特征值为。那么对于特征值对应的特征向量来说,是一个单位向量,即;且。
- Eigenvalues are non-negative real numbers 特征值均为非负实数
- Eigenvectors are real (and always orthogonal) 特征向量均为实向量,且不同特征值对应的特征向量正交
- 对所有的,。那么,我们来看一下图的是什么含义呢?
- 可以写作
引理:对于对称矩阵,特征值
其中是特征值对应的特征向量。
(关于这个引理的证明在老师的课件里面有)
那么对于Laplacian矩阵
因为,所以所求的解有正有负,而最理想的情况就是使尽可能少的边经过“0轴”。
6 Find Optimal Cut
我们还是回到最开始的问题——怎样得到图的最佳分割?
[Fiedler '73]提出了一种寻找最佳切分点的方案:
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 根据降维后的向量进行分组
下面是一些案例:
例1 | 例2 | 例3 |
8. K-way Spectral Clustering
怎样将图上的节点分成类呢?有两种方法:
(1) 递归 Recursive bi-partitioning [Hagen et al., ’92]
递归利用二分算法,将图进行划分。但是递归方法效率比较低,且比较不稳定。
(2)Cluster multiple eigenvectors [Shi-Malik, ’00]
通过特征向量进行聚类。该方法目前比较常用,且效果较好。
这种方法有以下几个优点:
- 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” “近似聚类”
那么,怎么选择呢?——How to select ?——通过两个连续的特征值之间的差来确定。
9. 拓展:基于motif的谱聚类 Motif-based Spetural Clustering
前面讲到的都是基于两个节点之间的关系的聚类,那么,如果我们想要基于Motif进行聚类呢?比如说下面这张图,我们给定一个图结构,并给定不同的Motif结构,就可以得到不同的聚类结果。
我们可以将Conductance的定义进行相应的推广:
下面是一个计算的例子。因为分割线经过一个Motif,且Motif类中包含10个节点,可以知道。
类似的,问题就变成了给定图和Motif结构,找到分割方式使得最小。同样的,需要通过近似算法——Motif Spectral Clustering来得到最优结果。
同样的,近似算法分为三步:
(1)预处理 Pre-processing
定义矩阵,其中表示图中的边在给定的Motif结构中参与的次数。下图是一个例子:
用矩阵形式表示:
(2) Decomposition 分解
第二步是分解,定义度矩阵,定义拉布拉斯矩阵,计算特征值与特征向量,由得到的特征向量来对图进行分割。
(3)Grouping 分组
这一步和之前的谱聚类方法类似。