舟山房屋出租:【cs224w】Lecture 5 - 谱聚类

admin 7个月前 (04-08) 科技 59 0

目录
  • Spectral ClUStering
    • Graph Partitioning
    • $d$-Regular Graph
  • Motif-Based Spectral Clustering

转自本人:https://blog.csdn.net/New2World/article/details/105372317

Spectral Clustering

前面的课程说到了 community detection 并先容了两种算法。这次来说说另外一类做社区聚类的算法,谱聚类。这种算法一样平常分为三个步骤

  1. pre-processing: 构建一个形貌图结构的矩阵
  2. decomposition: 通过特征值和特征向量剖析矩阵
  3. grouping: 基于剖析后的矩阵以及点的 representation 举行聚类

在先容具体操作前我们先领会几个观点

Graph Partitioning

图的划分就是将节点分到差异的组内,若是分为两个组就是二分。划分的目的实在就是找社区,那若何判断一个划分的质量呢?回首之前说到的社区的特点,即社区内部毗邻厚实而社区间毗邻希罕。因此我们希望我们的划分能最大化每个划分内的毗邻并最小化划分间的毗邻数。我们用割这个观点来形貌差异划分间的毗邻数 \(cut(A,B)=\sum\limits_{i\in A,j\in B}w_{ij}\)。对于无权图这里的 \(w\) 就是 \(\{0,1\}\)。但这个界说并不完善,由于这样并不能保证划分平均。例如,一个图中有一个节点的度为 \(1\) 那么只要把这个节点和其余节点离开就能保证 cut 为 \(1\)。因此我们将划分后差异组内节点的度纳入思量就能较为周全的评估一个划分的好坏了,即 Conductance,其中 \(vol\) 是划分内所有节点的度之和。

\[\phi(A,B)=\frAC{cut(A,B)}{\min(vol(A),vol(B))} \]

然而直接最小化 conductance 是个 NP-hard 的问题。那接下来就进入今天的正题:谱聚类。

首先温习一下线性代数,给定一个图的毗邻矩阵 \(A\),那 \(i\) 行示意节点 \(i\) 的所有出度,\(j\) 列示意节点 \(j\) 的所有入度。在无向图上出度入度一样,因此 \(A^T=A\),。思量无向图,那 \(Ax\) 代表什么?\(Ax\) 的输出是一个向量,而向量的每一个元素是矩阵的行和向量 \(x\) 的内积。若是将 \(x\) 看作图中每个节点的分类标签,那获得的效果向量的每个元素代表了每个节点所有毗邻节点的标签之和。
而特征值的界说是 \(Ax=\lambda x\),而谱聚类就是研究凭据特征值 \(\lambda\) 升序排序后的特征向量。(这里划定 \(\Lambda=\{\lambda_1,\lambda_2,...,\lambda_n\}\)\(\lambda_1\leq\lambda_2 \leq...\leq\lambda_n\))

\(d\)-Regular Graph

现在给出一个特殊的连通图 \(G\),图中所有节点的度都为 \(d\)。然后令 \(x=(1,1,...,1)\) 那么 \(Ax=(d,d,...,d)=\lambda x\),因此 \(\lambda=d\)。可以证实 \(d\) 是最大的特征值。

证实:
由于我们希望特征值为 \(d\),那对向量 \(x\) 必须有 \(x_i=x_j\)。也就是说 \(x=c\cdot(1,1,...,1)\)
那么对于随便不知足 \(c\cdot(1,1,...,1)\) 的向量 \(y\)说明并非所有节点都为 \(1\)。令不为 \(1\) 的节点集为 \(S\),显然并非所有节点都在 \(S\) 中。
这样一来肯定存在节点 \(j\),其毗邻节点不属于 \(S\)。这样一来在节点 \(j\) 这里获得的内积值肯定严酷小于 \(d\)
因此 \(y\) 不是特征向量,且 \(d\) 是最大的特征值

以上是针对连通图。若是图不连通而是有两个部门,且每部门都是 \(d\)-regular 的。我们做类似处置,不外对 \(x\) 的界说会适当改变。

\[\beGIn{CASes} x'=(1,...,1,0,...,0)^T, Ax'=(d,...,d,0,...,0)^T \\ x''=(0,...,0,1,...,1)^T, Ax''=(0,...,0,d,...,d)^T \end{cases}\]

这样一来对应的特征值仍然是 \(\lambda=d\),但这个最大特征值对应了两个特征向量。

为什么不继续用 \(x=(1,1,...,1)^T\)
你试试 \(Ax=\lambda x\) 对得上不?

如下图稍微推广一下,第一种不连通情形下,最大和第二大的特征值相等。第二种情形属于存在显著社区结构,此时图实在是连通的,但最大和第二大的特征值差异不大。而 \(\lambda_{n-1}\) 能告诉我们两个社区的划分情形。

那为什么说 \(\lambda_{n-1}\) 能告诉我们划分情形?首先我们知道特征向量是相互垂直的,即两个特征向量的内积为 \(0\)。因此在已知 \(x_n=(1,1,...,1)^T\) 的情形下,\(x_nx_{n-1}=0\) 说明 \(\sum_ix_{n-1}[i]=0\)。因此,在 \(x_{n=1}\) 内肯定有正有负。那我们就可以依此将图中的节点分为两组了。(这是大致思绪,另有许多细节需要思量)
那思量无向图,我们界说以下几个矩阵

  1. 毗邻矩阵 \(A\)
    • 对称
    • \(n\) 个实数特征值
    • 特征向量为实数且相互垂直
  2. 度矩阵 \(D\)
    • 对角矩阵
  3. 拉普拉斯矩阵 \(L=D-A\)
    • 半正定
    • 特征值为非负实数
    • 特征向量为实数且相互垂直
    • 对所有 \(x\)\(x^TLx=\sum_{ij}L_{ij}x_ix_j\geq 0\)

这里有个定理:对随便对称矩阵 \(M\)

\[\lambda_2=\min\limits_{x:x^Tw_1=0}\frac{x^TMx}{x^Tx} \]

\(w_1\) 是最小特征值对应的特征向量。剖析一下这个表达式

\[\begin{aligned} x^TLx&=\sum\limits_{i,j=1}^nL_{ij}x_ix_j=\sum\limits_{i,j=1}^n(D_{ij}-A_{ij})x_ix_j \\ &=\sum_iD_{ii}x_i^2-\sum_{(i,j)\in E}2x_ix_j \\ &=\sum_{(i,j)\in E}(x_i^2+x_j^2-2x_ix_j) \\ &=\sum_{(i,j)\in E}(x_i-x_j)^2 \end{aligned}\]

由于度矩阵 \(D\) 是对角矩阵,以是上面才会化简为 \(D_{ii}\)。 由于这里的求和是针对每条边,而每条边有两个端点,因此第三步是 \(x_i^2+x_j^2\)。化简了定理里的表达式能看出什么?\(\lambda_2\) 是特征向量里各元素的差的平方(距离)的最小值。这与我们找最小割目的不约而同,即最小化各部门间的毗邻数。

这样获得的 \(x\) 叫 Fiedler vector。然而直接用离散的标签 \(\{-1,1\}\) 太硬核了,我们思量允许 \(x\) 为知足约束的实数。即 \(\sum_ix_i=0, \sum_ix_i^2=1\)

实在这里偷换了观点。表达式里应该将 \(x\) 替换为 \(y\)。由于剖析的时刻我们将 \(y\) 视为划分后的标签,而特征值 \(x_2\) 只是这个标签 \(y\) 的最优解而已。

这里提到了 approx. guarantee,若是将网络划分为 \(A\)\(B\),那可以保证 \(\lambda_2\) 和 conductance \(\beta\) 存在关系 \(\lambda_2\leq2\beta\) (证实略,自己看 slide 吧)

凭据这种方式获得的效果照样不错的。若是网络中包含了不止一个划分,我们可以递归使用上述算法,即先划分为两部门,然后对两部门划分再用使用一次或多次谱聚类。除此之外还可以使用 \(x_3,x_4,...\) 等特征向量一起举行聚类,这样一来相当于将每个点示意为 \(k\) 维的向量举行聚类。一样平常来说多用几个特征向量能制止信息丢失,获得更好的聚类效果。那这个 \(k\) 怎么选呢?看 \(\Delta_k=|\lambda_k-\lambda_{k-1}|\)。选令 eigengap 最大的 \(k\) 就好。(注重!!这里的特征值又是按降序排列的了)[1]

舟山房屋出租:【cs224w】Lecture 5 - 谱聚类 第1张

Motif-Based Spectral Clustering

上面的谱聚类是基于边实现的,若是我们想针对某种特定的结构举行划分呢?自然而然的想到之前先容的 motif。基于 motif 也就是说在一个划分内特定的 motif 普遍泛起。类似对边的划分,我们界说 \(vol_M(S)\) 为在划分 \(S\) 里的 motif 的端点个数,\(\phi(S)=\frac{\#(motifs\ cut)}{vol_M(S)}\)。固然这也是 NP-hard 的。

舟山房屋出租:【cs224w】Lecture 5 - 谱聚类 第2张

走流程,首先我们需要界说矩阵 \(W^{(M)}\)。这里矩阵内每个元素代表了对应边被几个 motif 共享。然后是度矩阵 \(D^{(M)}=\sum_JW_{ij}^{(M)}\) 和拉普拉斯矩阵 \(L^{(M)}=D^{(M)}-W^{(M)}\)。求特征值和特征向量后取第二小的特征值对应的特征向量 \(x_2\)。按升序对 \(x_2\) 各元素巨细排序,并依次通过盘算 motif conductance 来找最佳的划分。(前 \(k\) 小的元素为 \(x_2^{(1)},x_2^{(2)},...,x_2^{(k)}\),然后盘算 conductance。取令 conductance 最小的 \(k\) 值)[2]

舟山房屋出租:【cs224w】Lecture 5 - 谱聚类 第3张

固然这个算法也只是一个近似,它能保证 \(\phi_M(S)\leq4\sqrt{\phi_M^*}\)

  1. 虽然选最大的 gap 是 make sense 的。但要说个以是然照样有点讲不清楚,需要再明白明白。 ↩︎

  2. 这个方式叫 sweep procedure,差异于之前以 \(0\) 为界的划分。那 motif-based 能用之前的方式吗?sweep procedure 有什么优势吗?基于边的谱聚类能用 sweep procedure 吗? ↩︎

,

进入suNBet官网手机版登陆

欢迎进入sunbet官网手机版登陆!Sunbet 申博提供申博开户(sunbet开户)、SunbetAPP下载、Sunbet客户端下载、Sunbet代理合作等业务。

皇冠APP声明:该文看法仅代表作者自己,与本平台无关。转载请注明:舟山房屋出租:【cs224w】Lecture 5 - 谱聚类

网友评论

  • (*)

最新评论

站点信息

  • 文章总数:695
  • 页面总数:0
  • 分类总数:8
  • 标签总数:1138
  • 评论总数:287
  • 浏览总数:17919