图机器学习
这门课学什么
课程讲在网络数据上做机器学习:节点嵌入、图神经网络、知识图谱、推荐系统和图生成模型。练习使用 PyTorch Geometric。
内容摘要
CS224W 讲怎样在图结构数据上做机器学习。公开视频是 Jure Leskovec 2021 年主讲的版本,共 19 讲,每讲拆成 1–4 段短视频,播放列表共 60 段。课程主线是:先用传统方法和嵌入表示图,再系统讲图神经网络(GNN),最后讲 GNN 的理论、扩展和应用。
第 1 阶段(第 1–5 讲)讲图的基础表示:图的类型和应用场景,节点、边、整图的手工特征,DeepWalk 和 node2vec 节点嵌入,PageRank 与随机游走,以及标签传播做节点分类。第 2 阶段(第 6–9 讲)是 GNN 主体:消息传递框架、单层设计和多层堆叠、图增强与训练流程、GNN 的表达能力和图同构网络(GIN)。
第 3 阶段(第 10–15 讲)讲具体问题:知识图谱嵌入、知识图谱上的多跳推理、用 GNN 做子图匹配、社区检测、传统图生成模型和深度图生成模型。第 4 阶段(第 16–19 讲)讲进阶话题:位置感知与身份感知 GNN、对抗鲁棒性、大图上的扩展方法、计算生物学应用、GNN 预训练和双曲嵌入。
作业包括 3 次书面作业和 5 个 Colab 编程练习。Colab 练习用 PyTorch Geometric(PyG)实现 GNN 并训练。学生还要完成一个期末项目,提交提案和报告。
学完后,学生能把实际问题建模成节点级、边级或图级的预测任务,并能用 PyG 写出可训练的 GNN。Leskovec 讲课结构清楚,每讲先定义问题,再给方法和直觉。短视频切分方便按主题挑着看。
为什么值得学
Leskovec 团队提出了多种主流图神经网络方法和工具。这门课是图学习的一手教材。
课程信息
- 学校
- 斯坦福(Stanford)
- 课程号
- CS224W
- 讲师
- Jure Leskovec
- 学期
- Winter 2021
- 平台
- 课程官网
- 费用
- 免费
- 难度
- 高级
- 先修
- 需要 CS229 程度的机器学习基础、线性代数和 Python。
- 材料
- 视频、幻灯片、作业、代码
- 许可证
- 未注明
课程大纲 · 共 19 节
大纲依据:Winter 2021 课程表(19 讲),与 YouTube 播放列表 60 段视频(按讲拆分)对应(查看原始页面 ↗)
- 1导论:图机器学习Introduction; Machine Learning for Graphs
说明为什么用图表示数据。介绍节点级、边级、图级任务的应用,以及图的表示方式选择。
- 2图上的传统机器学习方法Traditional Methods for ML on Graphs
讲手工设计的节点特征(度、中心性、聚类系数、graphlet)、链接特征和整图核方法。
- 3节点嵌入Node Embeddings
讲编码器—解码器框架。介绍 DeepWalk 和 node2vec 两种随机游走嵌入方法,以及整图嵌入。
- 4链接分析:PageRankLink Analysis: PageRank
用矩阵形式定义 PageRank,讲幂迭代求解。介绍带重启随机游走,说明节点嵌入与矩阵分解的关系。
- 5节点分类的标签传播Label Propagation for Node Classification
讲基于同质性的消息传递。介绍关系分类、迭代分类和集体分类。
- 6图神经网络 1:模型Graph Neural Networks 1: GNN Model
复习深度学习基础。讲怎样在图上聚合邻居信息,构造图神经网络。
- 7图神经网络 2:设计空间Graph Neural Networks 2: Design Space
把 GNN 拆成消息计算和聚合两步。比较 GCN、GraphSAGE、GAT 的单层设计,讨论多层堆叠。
- 8图神经网络的应用Applications of Graph Neural Networks
讲图增强和 GNN 训练流程。说明怎样为节点、边、图级任务划分数据集。
- 9图神经网络理论Theory of Graph Neural Networks
用 Weisfeiler-Lehman 测试分析 GNN 的表达能力。推出表达能力最强的图同构网络(GIN)。
- 10知识图谱嵌入Knowledge Graph Embeddings
讲异构图和关系图卷积网络(RGCN)。介绍 TransE、TransR、DistMult 和 ComplEx 4 种知识图谱补全方法。
- 11知识图谱推理Reasoning over Knowledge Graphs
讲怎样回答多跳逻辑查询。介绍把查询嵌入成盒子的 Query2box 方法。
- 12用 GNN 挖掘频繁子图Frequent Subgraph Mining with GNNs
讲子图和 motif 的概念。用 GNN 做子图匹配,并介绍频繁子图搜索方法。
- 13网络的社区结构Community Structure in Networks
讲社区与模块度。介绍 Louvain 算法和重叠社区检测。
- 14传统图生成模型Traditional Generative Models for Graphs
讲真实网络的统计性质。介绍 Erdős–Rényi 随机图、小世界模型和 Kronecker 图模型。
- 15深度图生成模型Deep Generative Models for Graphs
介绍 GraphRNN 逐步生成节点和边。讲扩展到大图的方法、生成质量评估和分子生成应用。
- 16GNN 进阶话题Advanced Topics on GNNs
分析 GNN 的局限。介绍位置感知 GNN、身份感知 GNN,以及 GNN 的对抗鲁棒性。
- 17把 GNN 扩展到大图Scaling Up GNNs
讲 GraphSAGE 邻居采样、Cluster-GCN 子图训练,以及简化模型结构的扩展方法。
- 18客座讲座:计算生物学中的 GNNGuest Lecture: GNNs for Computational Biology
客座讲者介绍 GNN 在生物网络和医学问题上的应用。
- 19面向科学的 GNNGNNs for Science
讲 GNN 预训练策略和双曲空间图嵌入。介绍系统搜索 GNN 设计空间的方法。
斯坦福的其他AI课
- 机器学习 · Machine Learning
- 深度学习 · Deep Learning
- 面向计算机视觉的深度学习 · Deep Learning for Computer Vision
- 基于深度学习的自然语言处理 · Natural Language Processing with Deep Learning
- 人工智能:原理与技术 · Artificial Intelligence: Principles and Techniques
- 强化学习 · Reinforcement Learning