本系列博客是对斯坦福大学Jure Leskovec副教授所讲《CS224W图机器学习》所做的听课笔记。由于课程为英语授课,本人的英文理解不是很好,笔记中难免很有许多错误,欢迎大家一起纠错,一起学习。
文章目录
1 为什么要学习图(Graph)
"Graphs are a general language for describing and analyzing entities with
relations/interactions"图形是一种用于描述和分析具有关系/相互作用的实体的通用语言。
实际生活中存在许多许多数据类型都是图Graph(或者网络Network)结构的。有时,网络和图形之间的区别是模糊的。
2 图机器学习
传统的机器学习路线:
因为这些数据都是简单的序列和网格,结构简单。
为什么对图或网络运用机器学习方法比较困难呢?
网络结构是复杂的:
- Arbitrary size and complex topological
structure (i.e., no spatial locality like grids) - No fixed node ordering or reference point
- Often dynamic and have multimodal features
图深度学习:
表示学习:
简单来说就是通过学习将图结构的节点映射为一个向量,嵌入向量作为下游机器学习算法的输入。
3 图机器学习的应用
在图机器学习中,我们可以指定不同的任务:
节点分类
:预测节点属性。例如对在线用户进行分类。
链接预测
:预测两个缺失链接的节点间的链接。例如知识图谱的完善。
图分类
:例如,预测分子特性。
聚类
:社交圈检测。
图生成
:产生新的分子结构用以药物发现。
图演化
:物理现像精确模拟。
4 图机器学习案例
4.1 节点级别的图机器学习任务
Example(1):蛋白质折叠
蛋白质实际上是氨基酸序列折叠而成的,形状很复杂。任务是,给定氨基酸序列如何预测或计算蛋白质的3D结构。
4.2 边级别的图机器学习任务
Example(2):推荐系统
用户通过item进行联系。
item
:电影、玩具、音乐
节点
:用户和item
边
:用户-item之间的联系
目标:给用户推荐可能喜欢的商品。
Example(3):药物组合的副作用
背景:许多病人同时服用多种药物来治疗复杂的疾病或者并存的疾病。但是某些药物的相互作用可能会产生副作用。
任务:给定一个药物的组合,试图预测他们相互作用产生的副作用。
4.3 子图级别的图机器学习任务
Example(4):交通流量预测
节点
:路段
链接
:路段之间的连通性
我们可以根据某些条件训练一个图神经网络GNN,然后就可以预测出到达目的地的时间点或者耗费时间。
4.4 图级别的图机器学习任务
Example(5):药物发现
节点
:原子
边
:化学键