15

图中的谱聚类详解

 3 years ago
source link: https://zhuanlan.zhihu.com/p/266604288
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

在Neural network还未使用在graph里时, 图聚类就有着很大的需求, 比如在社交网络中的群体分类,如何在图中完成相应地工作,本文基于对cs224w 《Spectral Clustering》的学习笔记,尝试描述清楚,这方面经典的工作。

Graph Partitioning

何谓graph partitioning, 如下图,给定无向图 equation?tex=G%28V%2CE%29 , 将这些节点分为两个组:

v2-e196a2a87ac915f9e037f056d6a50fbc_b.jpg

逻辑很简单,但是难点在于:

  1. 如何定义一个尺度,来保证图的切分是合理的:
    1. 组内成员连接尽可能多;
    2. 组与组之间连接尽可能少;
  1. 如何高效地识别这些分区;

Criterion

Cut(A,B): 如下图,图当中,两个点分别在两个分组的边的数量;

v2-7bafbd0052c28f7bb50b7613f47970ff_b.jpg

Minimum-cut

最小化图分组间的连接(如果有权重,则考虑权重): equation?tex=arg+min_%7BA%2C+B%7D%5C+Cut%28A%2CB%29 这样会存问题:

  • 仅仅考虑图当中分组的外部连接;
  • 未考虑图中分组的内部连接;

因此,在下面图中,会出现,假如是minimum cut不是optimal cut :

v2-832990fb83b0035c4b420888acfa3437_b.jpg

Conductance

与Minimum-cut逻辑不一样, Conductance不仅仅考虑分组间的连接, 也考虑了分割组内的“体积块”, 保证分割后得到的块更均衡,Conductance指标如下:

equation?tex=%5Cphi%28A%2C+B%29%3D%5Cfrac%7Bcut%28A%2CB%29%7D%7Bmin%28vol%28A%29%2C+vol%28B%29%29%7D

其中 equation?tex=vol%28A%29 指分组块A内节点所有的权重度之和; 但是,得到最好的Conductance是一个np难题。

Spectral Graph Partitioning

假定A为无连接图G的链接矩阵表示,如(i,j)中存在边,则 equation?tex=A_%7Bij%7D%3D1 ,否则为0; 假定x是维度为n的向量 equation?tex=%28x_1%2C+...%2C+x_n%29 ,我们认为他是图当中每个节点的一种标签; 那么 equation?tex=A%2Ax 的意义是, 如下图, equation?tex=y_i 表示i的邻居节点与对应标签和:

v2-732996cd70fd7af87a022e8b1fcfe4ee_b.jpg

equation?tex=Ax%3D%5Clambda+x ,可以得到特征值: equation?tex=%5Clambda_i , 和对应的特征向量 equation?tex=x_i 。对于图G, spectral(谱)定义为对应特征值 equation?tex=%7B%5Clambda_1%2C+%5Clambda_2%2C+...%2C+%5Clambda_n%7D ,其 equation?tex=%5Clambda_1+%5Cleq+%5Clambda_2+%5Cleq+...+%5Cleq+%5Clambda_n+ 对应的特征向量组 equation?tex=%7Bx_i%2C+x_2%2C+...%2C+x_n%7D

d-Regular Graph 举例

假定图当中每个节点的度均为 equation?tex=d ,且G是连通的,即称为 d-Regular Graph 。 假定 equation?tex=x+%3D+%281%2C1%2C...%2C1%29 ,那么 equation?tex=Ax+%3D+%28d%2C+d%2C+...%2C+d%29+%3D+%5Clambda+x , 故会有对应的特征对:

equation?tex=x%3D%281%2C1%2C...%2C1%29%2C+%5Clambda+%3Dd 且d是A最大的特征值(证明课程未讲)

d-Regular Graph on 2 Components

假定G有两个部分, 每个部分均为d-Regular Graph, 那么必然存在:

equation?tex=x%5E%7B%27%7D%3D%281%2C...%2C1%2C0%2C...%2C0%29%5ETequation?tex=A+x%5E%7B%27%7D%3D%28d%2C...%2Cd%2C0%2C...%2C0%29%5ETequation?tex=x%5E%7B%27%27%7D%3D%280%2C...%2C0%2C1%2C...%2C1%29%5ETequation?tex=A+x%5E%7B%27%7D%3D%280%2C...%2C0%2Cd%2C...%2Cd%29%5ET

所以必然存在两个特征值 equation?tex=%5Clambda_%7Bn%7D+%3D+%5Clambda_%7Bn-1%7D , 推广起来,如果图G中两个部分互相连通,如下图, 则最大的特征值很近似:

v2-423082f23d57de90bb687e15b00cda95_b.jpg

推广, 这里有点没有太理解:

v2-1cbd36167c7ceabe8a8f7f12306a3dd7_b.jpg

Matrix Representations

邻接矩阵A

  • 对称矩阵;
  • n个实数特征值;
  • 特征向量均为实数向量且正交:
v2-a0f636b4b29eb9c4566cdb268572b58f_b.jpg

度矩阵

  • 对角矩阵;
  • equation?tex=D%3D%5Bd_%7Bii%7D%5D , equation?tex=d_%7Bii%7D 表示节点i的度;
v2-767a39f15653a65af2e5dba669cf73fa_b.jpg

Laplacian matrix

v2-63e5a76bbf23e2000b341d865268333e_b.jpg

Laplacian matrix 有以下特点:

  • 令x=(1,...,1)则 equation?tex=L%2Ax%3D0 , 故 equation?tex=%5Clambda%3D%5Clambda_%7B1%7D%3D0
  • L的特征值均为非负实数;
  • L的特征向量均为实数向量,且正交;
  • 对于所有x, equation?tex=x%5E%7BT%7DLx%3D%5Csum_%7Bij%7D+L_%7Bij%7Dx_%7Bi%7Dx_%7Bj%7D+%5Cgeq+0
  • L能够表示为 equation?tex=L+%3D+N%5E%7BT%7D+N

Find Optimal Cut

分组表示(A,B)为一个向量,其中

v2-c714d7fcc7bdc7450f59ee4f11bafb23_b.jpg

问题转换为寻找最小化各部分间连接:

v2-e13e57d299b74113e5e057d513d502a3_b.jpg

相关证明间slide,这里老师没有做过多解读;

Spectral Clustering Algorithm

基础方法

如下图:主要包括三个步骤: - 预处理:构造图的表示, 包括Laplacian Matrix; - 矩阵分解:

  • 计算Laplacian Matrix的所有的特征值与特征向量;
  • 将节点使用特征向量表示(对应 equation?tex=%5Clambda_2 的特征向量 equation?tex=x_2 );
v2-b5a04ebfb4287d60b06a23c7ec0c29a7_b.jpg

- 聚类, 将节点的特征表示,排序, 按大于0与小于来进行拆分:

v2-0dd29944831d5da140230513361f90c8_b.jpg

以下是多个实例, 看起来使用 equation?tex=%5Clambda_%7B2%7D 对应的特征向量 equation?tex=x_2 来切分是比较合适的:

v2-8a4bae99ecd35bf80992565fd8835ce0_b.jpgv2-6a7d67366162d5fa0969421a81394ddc_b.jpg

k-Way Spectral Clustering

如何将图切分为k个聚类呢?

  • 递归利用二分算法,将图进行划分。但是递归方法效率比较低,且比较不稳定;
  • 使用降维方法,将节点表示为低维度的向量表示,然后利用k-mean类似的方法对节点进行聚类;

那么如何选择合适的k呢,如下图,计算连续的特征值之间的差值,选择差异最大的即为应该选择的k?

v2-df160edd758a49ce017f8782c0be50cb_b.jpg

Motif-Based SPectral Clustering

是否能够通过专有的pattern 来进行聚类呢?上一篇文章有提到motif, 如下图:

v2-4229a9ae921cfde2575b2d0984ffc326_b.jpg

给定motif,是否能够得到相应地聚类结果:

v2-b558b781aa600670ff4711b1fbbf70e7_b.jpg

答案当然是可以的, 而且也是复用前面的逻辑

Motif Conductance

和上文中, 按边来切分逻辑不通, conductance指标,应该表征为motif的相关指标,如下:

v2-2182bf8e1aef32f3620b5388aafde43b_b.jpg

这里给出一个计算的例子, 如下图, 该出模式分子为切分经过的该模式数量, 分母为该模式覆盖的所有节点数量:

v2-e491155cd65630fcd1ae629baf11ed45_b.jpg

所以motif的谱聚类就变成了给定图G与Motif结构来找到 equation?tex=%5Cphi_%7BM%7D%28S%29 最小的, 很不幸, 找到最小化motif conductance也是一个np问题; 同样地,也专门提出了解决motif 谱聚类的方法:

  1. 给定图G和motif M;
  2. 按M和给定的G,生成新的权重图 equation?tex=W_%7B%28M%29%7D ;
  3. 在新的图上应用spectral clustering方法;
  4. 输出对应的类簇;

大致过程如下图所示:

v2-6bbb20cd0832868a2841034509be8785_b.jpg

具体过程如下:

  1. 给定图G与motif M, 计算权重图 equation?tex=W%5E%7B%28M%29%7D
v2-63cda3c1028d9d6a1ecb8c97db230d19_b.jpg

2. 应用谱聚类, 计算其Laplacian Matrix的特征值与特征向量,得到第二小的特征向量,:

v2-bba441695703748f08eea72a188c6590_b.jpg

3. 按升序对第二小特征值的对应的特征向量进行排序(对应的节点ID需要保存以计算motif conductance), 以 equation?tex=S_r+%3D+%7Bx_1%2C+...%2Cx_r%7D 计算motif conductance值,选择最小地的值即为划分点, 如下图,1,2,3,4,5为一个类:

v2-8334fb97e485b5936d59eafb97001be2_b.jpg

Summary

本章我们学习了谱聚类相关的工作, 首先,讲了关于表征切分图的指标cut(A,B)以及conductance,如何切分图以及为什么切分图是一个np难题,然后提出了利用谱聚类的方法来解决该问题,从而学习到了degree matrix, Laplacian matrix等概念; 而后提出是否有按motif来进行图聚类的方法, 并基于谱聚类的方法来解决来转换原图为带权重的图来解决;


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK