跳转至

Lecture 14 Parallel Machine Learning, Part 2

Unsupervised and Semi-Supervised Learning

回忆在chapter12中,我们提到了ML的分类,着重讲解了 Supervised Learning,以及我们暂且不会提及 Reinforcement Learning

因此,这节课是对剩下内容的介绍:无监督学习 + 半监督学习

本节课大纲:

  1. 聚类 (Clustering):
    • Spectral Clustering
    • Markov Clustering
  2. 降维 (Dimensionality Reduction):
    • PCA (主成分分析)
    • NNMF (非负矩阵分解)
  3. 自监督学习: 图神经网络(GNN)
术语介绍
  1. Clustering: 聚类
  2. Dimensionality Reduction: 降维
  3. Non-Negative Matrix Factorization: 非负矩阵分解
  4. GNN: Graph Neural Networks, 图神经网络
  5. MCL: Markov CLustering algorithm
  6. PCA: Principal Components Analysis, 主成分分析

Clustering

本质

将一堆数据点进行合理的分类

直观理解如下:

alt text

Spectral Clustering

频谱聚类

图表示:Node是数据点,Edge表示关联,Weight表示关联程度

限制因素:

  1. 关联度大于 threshold ϵ 才算数
  2. 每个点最多可以向外拓展k条边

最小正则划分:recursively partition the data set into two sets of similar sizes

解决最小正则划分的算法:拉普拉斯图算子 (Graph Laplacian)

Markov Cluster Algorithm

马尔可夫聚类,MCL

出发点: 集群内的edge数 >> 集群间的edge数 -> random walks 更大概率在同一个cluster内

算法原理: “将差异放大”,从而更加清晰的“分类”

alt text

时间复杂度估量:

  1. 建图: 图算法
  2. Prune: ✅
  3. Recovery and Selection: k-selection,会在sort/search中提及
  4. 稀疏矩阵乘法: ✅
  5. File I/O: 由于数据量很大,这个不能忽略

Dimensionality Reduction

本质

数据中可能有很多的影响因素,哪些才是最重要的呢?我们要提取核心!

矩阵的rank同时也标志着一个空间的维度,因此降维在数学上的解释就是:降低矩阵的rank

因此我们有两种出发点:

  1. 矩阵提取特征向量集: 主成分分析 (PCA)
  2. 矩阵低秩分解: 非负矩阵分解 (NNMF)

直观理解如下:

alt text

Principal Component Analysis

主成分分析,PCA

alt text

Non-Negative Matrix Factorization

非负矩阵分解,NNMF

NMF强制将矩阵A分解成两个低秩矩阵W和H,从而实现“维度降低 (rank降低)”

alt text

Semi-supervised Learning: GNN

特征: 只有一小部分数据有标签,大多数都是没有标签的

Label Propagation: 半监督学习的图算法的典型

工作流程:

alt text

一般而言,GNN需要非常强大的算力,即使稀疏图也需要。

From Image Convolution to Graph Convolution

回顾上节课所说的,Image Convolution 对应于 CNN

同理,Graph Convolution 对应于 GNN

What is Convolution

卷积,本质上是用来提取特征和关联信息的

比如这里Graph Convolution,目的是在graph上提取特征

通过聚合邻居节点之间的信息,更新每个node的特征

alt text

全图 / 小批量 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(摊销).

alt text

alt text

采样举例

(1)数据点分开看:

GraphSAGE Sampler

alt text

(2)数据点打包,看关联:

LADIES Sampler

alt text

Review

Chapter 12 跟 Chapter 14 是姊妹篇,这两节课逐渐从 并行与分布式系统 转向 AI系统底层构建

重点其实就是最开始的这张图: