Lecture 14 Parallel Machine Learning, Part 2¶
Unsupervised and Semi-Supervised Learning
回忆在chapter12中,我们提到了ML的分类,着重讲解了 Supervised Learning,以及我们暂且不会提及 Reinforcement Learning
因此,这节课是对剩下内容的介绍:无监督学习 + 半监督学习
本节课大纲:
- 聚类 (Clustering):
- Spectral Clustering
- Markov Clustering
- 降维 (Dimensionality Reduction):
- PCA (主成分分析)
- NNMF (非负矩阵分解)
- 自监督学习: 图神经网络(GNN)
术语介绍
- Clustering: 聚类
- Dimensionality Reduction: 降维
- Non-Negative Matrix Factorization: 非负矩阵分解
- GNN: Graph Neural Networks, 图神经网络
- MCL: Markov CLustering algorithm
- PCA: Principal Components Analysis, 主成分分析
Clustering¶
本质
将一堆数据点进行合理的分类
直观理解如下:
Spectral Clustering
频谱聚类
图表示:Node是数据点,Edge表示关联,Weight表示关联程度
限制因素:
- 关联度大于 threshold
才算数 - 每个点最多可以向外拓展k条边
最小正则划分:recursively partition the data set into two sets of similar sizes
解决最小正则划分的算法:拉普拉斯图算子 (Graph Laplacian)
Markov Cluster Algorithm
马尔可夫聚类,MCL
出发点: 集群内的edge数 >> 集群间的edge数 -> random walks 更大概率在同一个cluster内
算法原理: “将差异放大”,从而更加清晰的“分类”
时间复杂度估量:
- 建图: 图算法
- Prune: ✅
- Recovery and Selection: k-selection,会在sort/search中提及
- 稀疏矩阵乘法: ✅
- File I/O: 由于数据量很大,这个不能忽略
Dimensionality Reduction¶
本质
数据中可能有很多的影响因素,哪些才是最重要的呢?我们要提取核心!
矩阵的rank同时也标志着一个空间的维度,因此降维在数学上的解释就是:降低矩阵的rank
因此我们有两种出发点:
- 矩阵提取特征向量集: 主成分分析 (PCA)
- 矩阵低秩分解: 非负矩阵分解 (NNMF)
直观理解如下:
Principal Component Analysis
主成分分析,PCA
Non-Negative Matrix Factorization
非负矩阵分解,NNMF
NMF强制将矩阵A分解成两个低秩矩阵W和H,从而实现“维度降低 (rank降低)”
Semi-supervised Learning: GNN¶
特征: 只有一小部分数据有标签,大多数都是没有标签的
Label Propagation: 半监督学习的图算法的典型
工作流程:
一般而言,GNN需要非常强大的算力,即使稀疏图也需要。
From Image Convolution to Graph Convolution
回顾上节课所说的,Image Convolution 对应于 CNN
同理,Graph Convolution 对应于 GNN
What is Convolution
卷积,本质上是用来提取特征和关联信息的
比如这里Graph Convolution,目的是在graph上提取特征
通过聚合邻居节点之间的信息,更新每个node的特征
全图 / 小批量 SGD
- Full-graph Training
- 在整个训练集上训练
- 训练速度快,收敛慢
- Mini-batch Training
- 在训练集上采样,根据样本集训练
- 训练速度慢,但是收敛快
这里就有一个问题,图中的点可能彼此之间存在“互信息”,我们如何确保mini-batch取得的样本能“覆盖”这些特征?
CAGNET
CAGNET 聚焦于 Graph Convolutional Networks (GCNs)
Cost(SpMM) >>> Cost(DGEMM)
采样器类型
Node-wise
: 对于每个batch中的每个顶点,取它的k个邻居Layer-wise
: 对于每个batch中的每个cluster,取它的k个成员Graph-wise
: 先不管
采样Pipeline
Since sampling is too expensive, we need to sample many batches at once to amortize(摊销).
采样举例
(1)数据点分开看:
GraphSAGE Sampler
(2)数据点打包,看关联:
LADIES Sampler
Review¶
Chapter 12 跟 Chapter 14 是姊妹篇,这两节课逐渐从 并行与分布式系统 转向 AI系统底层构建。
重点其实就是最开始的这张图: