CS224W-图神经网络 笔记5.3:Spectral Clustering - 谱图聚类的具体操作步骤

本文总结之日CS224W Winter 2021只更新到了第四节,所以下文会参考2021年课程的PPT并结合2019年秋季课程进行总结以求内容完整

课程主页:CS224W: Machine Learning with Graphs

视频链接:【斯坦福】CS224W:图机器学习( 中英字幕 | 2019秋)

文章目录

  • CS224W-图神经网络 笔记5.3:Spectral Clustering - 谱图聚类的具体操作步骤
    • 引言
    • 1 谱聚类流程
      • 1.1 谱聚类步骤
      • 1.2 如何实现 K 分类呢?
      • 1.3 如何选择社区的数量 K?
        • 1.3.1 特征间距
    • 2 基于motif 的图划分
      • 2.1 Motif Conductance
      • 2.2 Motif Spectral Clustering
      • 2.3 基于motif的谱聚类案例
    • 参考文章

引言

通过前一篇文章介绍,我们知道如何评价图划分的好坏;和为什么能根据图拉普拉斯矩阵的第二小特征值对应的特征向量对图进行近似分割。前面算是理论部分,下面进入实践部分。

1 谱聚类流程

1.1 谱聚类步骤

谱聚类过程分为三个步骤。

第三步划分组,对倒数第二小特征向量进行升序排列后,如何确定分割的点呢?

  • 基础操作

    • 0点 作为分割点,(正负号)
    • 中位数作为分割点
  • 其他 (相对复杂方法)

    • 逐步计算,选择使得Normalied cut 最小的分割点。(Sweep procedure)

1.2 如何实现 K 分类呢?

上面介绍的都是二分的情况,如何推广到多(K)分的情况呢?

具体,有2个基本的方法:

  1. 以分层划分的方式递归地调用二分类算法

    • 缺点是效率低,不稳定(每一次都是近似,误差会放大)。
  2. 采用多个特征向量的谱聚类

  • 按照 λ \lambda λ的值(排除最小的 λ)从小到大依次取 m 个特征向量,将节点嵌入到低维空间中,每个节点通过 m 维数据表示,之后通过 K-means 算法进行聚类。通常也不需要取很大的值。多个特征向量,减少信息丢失,并已被证明能够近似地逼近最优划分。

1.3 如何选择社区的数量 K?

1.3.1 特征间距

可将特征值从大到小排序后,两个连续的特征值之间的差被称为特征间距(Eigengap)

通常来说,通过选取最大化特征差距的 K 大概率能获得稳定的划分结果。如下图对应的K=2是特征间距最大。

2 基于motif 的图划分

第三节中有介绍到motif,将图拆解为一个个子图来重新看待网络,motif给了网络一个新的定义方式,可以考虑从motif的角度(而不是上述边的角度)出发来进行谱图聚类。

具体操作过程与基于边分割类似,不同的是需要对于划分标准,拉普拉斯矩阵进行转换。

2.1 Motif Conductance

对于最优划分标准类比edge cut和conductance,针对motif思想也是同样,就是要组内motif尽可能多,组间motif尽可能少。具体对比定义如下

所以问题就变成了,给定motif M和图G,如何划分节点,使motif conductance最小。但找到最小motif conductance也为np问题,也需要采用算法近似估算

2.2 Motif Spectral Clustering

类比一般谱图聚类,基于motif的谱聚类也分为三步:

1. 数据预处理:基于motif对图边权重进行重新定义,每个边权重为出现过的motif次数.得到权重矩阵和拉普拉斯矩阵。

2. 分解:类似于标准的谱图聚类方法,计算拉普拉斯矩阵和对应的特征值特征向量

3. 分组:利用Sweep procedure方法,对第二小的特征值对应的特征向量x的元素从小到达排列,计算每一种划分下的motif conductance,选择使motif conductance最小的划分。

如下图左下角所示,当r=5时,motif conductance最小。

此外,最小 motif conductance 也可以根据cheeger 不等式。

基于motif 的谱聚类算法的价值:

  • 它提供了从更高维度去观察网络社区结构的新角度。
  • 算法简单、快速和灵活,便于应用。

2.3 基于motif的谱聚类案例

课上老师给了一个食物链网络中基于motif的谱图聚类结果。可以看出,基于motif的聚类在每一类结果中捕捉了特定的motif的结构,在每一类内部有较多的给定motif,而类与类之间这种motif较少。

参考文章

  1. https://blog.csdn.net/klcola/article/details/104800804
  2. 图网络机器学习 | 社区发现 — 谱聚类算法
  3. 斯坦福CS224W 图与机器学习5】Spectral Clustering
  4. 谱聚类方法推导和对拉普拉斯矩阵的理解
  5. https://linalg.apachecn.org/#/docs/chapter21
  6. https://www.cnblogs.com/xingshansi/p/6702188.html?utm_source=itdadao&utm_medium=referral
  7. http://www.cs.yale.edu/homes/spielman/sgta/SpectTut.pdf
  8. http://www.math.ucsd.edu/~fan/wp/cheeger.pdf

CS224W-图神经网络 笔记5.3:Spectral Clustering - 谱图聚类的具体操作步骤相关推荐

  1. CS224W-图神经网络 笔记5.2:Spectral Clustering - 谱聚类主要思想及关键结论的证明

    CS224W-图神经网络 笔记5.2:Spectral Clustering - 谱聚类主要思想及关键结论的证明 本文总结之日CS224W Winter 2021只更新到了第四节,所以下文会参考202 ...

  2. CS224W-图神经网络 笔记5.1:Spectral Clustering - 谱聚类基础知识点

    CS224W-图神经网络 笔记5.1:Spectral Clustering - 谱聚类基础知识点 本文总结之日CS224W Winter 2021只更新到了第四节,所以下文会参考2021年课程的PP ...

  3. 首篇 NLP 领域图神经网络综述:127 页,从图构建到实际应用面面观

    点击下面卡片,关注我呀,每天给你送来AI技术干货! 选自 | arXiv 作者 | Lingfei Wu等 转自 | 机器之心 编辑 | Panda 在 Transformer 推动自然语言处理领域迅 ...

  4. 首篇NLP领域图神经网络综述:127页,从图构建到实际应用面面观

    来源:机器之心本文约4900字,建议阅读10分钟 本文带你了解如何用图神经网络解决自然语言处理问题. 在 Transformer 推动自然语言处理领域迅猛发展的当下,基于图神经网络的 NLP 研究也不 ...

  5. 使用神经网络中的卷积核生成语谱图

    主题思想: 正交基函数, sin,cos 是通过网络训练得到的参数. 使用一维卷积核直接对于原始音频,进行卷积生成语谱图: 使用一维卷积核生成语谱图特征, 不同于以往的方式,正是因为这些正交基函数是通 ...

  6. 图神经网络笔记(二)——卷积图神经网络概述

    文章目录 基于谱分解的方法 Spectral Network ChebNet GCN AGCN(Adaptive GCN) 基于空间结构的方法 Neural FP PATCHY-SAN DGCN LG ...

  7. 图神经网络笔记(一)

    图是一种数据结构,它对一组对象(节点)及其关系(边)进行建模.近年来,由于图结构的强大表现力,用机器学习方法分析图的研究越来越受到重视.图神经网络(GNN)是一类基于深度学习的处理图域信息的方法.由于 ...

  8. Spectral clustering 谱聚类讲解及实现

    简述 https://github.com/Sean16SYSU/MachineLearningImplement 这篇是在网上看了wiki之后写出来的代码. 附上一篇看过论文之后根据论文实现的版本: ...

  9. spectral clustering谱聚类论文解读(上)

    关于A Tutorial on Spectral Clustering的解读 1.介绍 2.相似图 2.1 图的标号 2.2 不同的相似图 3.拉普拉斯图与它的基础参数 3.1未归一化的拉普拉斯矩阵 ...

最新文章

  1. Youth---青春
  2. 第五篇:JMeter 定时器
  3. matlab 图像分割 提取人像_数字图像处理实验合集(含代码、报告)
  4. linux shell 数值计算let和expr
  5. 在cds学到的(非技术)
  6. Spring mvc参数类型转换
  7. python为什么叫爬虫?Python和爬虫有什么关系?
  8. 微信小程序跳转到其他网页(外部链接)公众号等的实现方法
  9. 【CodeForces - 508B】Anton and currency you all know (思维贪心)
  10. python分解word文档为多个_用python批量处理word文档
  11. mysql 组内排名_【原】MySQL分组排序(包含组内排名、求中位数)
  12. matlab角点坐标获取,MatLab角点检测(harris经典程序) | 学步园
  13. mysql 5.7基本优化_mysql5.7优化
  14. C语言中指针数组和数组指针
  15. 看,程序员是如何白嫖百度文库的!
  16. uushare.com(原uubox.net)的功能简介
  17. Linux并行执行权限,如何在Linux中使用flock控制程序的异步执行
  18. 采用原笔迹电子签名有什么好处
  19. 单片机数据用matlab处理程序设计,单片机串口论文,关于基于单片机MATLAB实现信号的波形显示相关参考文献资料-免费论文范文...
  20. 推断基因调控网络的算法的评估

热门文章

  1. 用数组实现一个队列改进版
  2. MAC安装chromedriver碰到的问题
  3. 弘辽科技:拼多多改销量是什么意思?
  4. 计算机视觉之旅(Day5)
  5. 数据结构——树和二叉树章节思维导图
  6. c++ 随机生成数独(不保证唯一解)
  7. 2019年第十届蓝桥杯决赛(国赛) C++大学A组 D题 序列求和【全网找不到的题解?】
  8. 场景分析法设计测试用例
  9. 显示空闲链表和隐式空闲链表_使用空闲资源添加Espresso UI测试
  10. Python实现统一社会信用代码校验(GB32100-2015)