图机器学习(基本介绍)
1.Why Graphs
1. 图机器学习中的常用工具:NetworkX, PyTorch Geometric, DeepSNAP, GraphGym, SNAP.PY
2. 选择图的原因:图是用于描述并分析有关联/互动的实体的一种普适语言。它不将实体视为一系列孤立的点,而认为其互相之间有关系。它是一种很好的描述领域知识的方式。
3. 网络与图的分类
- networks / natural graphs:自然表示为图
1. Social networks: Society is a collection of 7+ billion individuals
2. Communication and transactions: Electronic devices, phone calls, financial transactions
3. Biomedicine: Interactions between genes/proteins regulate life(大概是基因或蛋白质之间互动从而调节生理活动的过程)
4. Brain connections: Our thoughts are hidden in the connections between billions of neurons - graphs:作为一种表示方法
- Information/knowledge are organized and linked
- Software can be represented as a graph
- Similarity networks: Connect similar data points
- Relational structures: Molecules, Scene graphs, 3D shapes, Particle-based physics simulations
- 有时network和graph之间的差别是模糊的
Event Graphs | Computer Networks | Disease Pathways | Food Webs(食物链) | Particle Networks | Underground Networks |
---|---|---|---|---|---|
Social Networks | Economic Networks | Code Graphs | Communication Networks | Citation Networks | Internet |
Networks of Neurons | Knowledge Graphs | Gene regulatory network基因调控网络 | Scene Graphs从真实图片中分割对象并形成网络 | Molecules | 3D Shapes |
4. 复杂领域会有丰富的关系结构,可以被表示为关系图relational graph,通过显式地建模关系,可以获得更好的表现
5. 但是现代深度学习工具常用于建模简单的序列sequence(如文本、语音等具有线性结构的数据)和grid(图片具有平移不变性,可以被表示为fixed size grids或fixed size standards)这些传统工具很难用于图的建模,其难点在于网络的复杂:
- 任意大小和复杂的拓扑结构
- 没有基准点,没有节点固定的顺序。没有那种上下左右的方向
- 经常出现动态的图,而且会有多模态的特征
6. 图的表示学习:大致来说就是将原始的节点(或链接、或图)表示为向量(嵌入embedding),图中相似的节点会被embed得靠近(指同一实体,在节点空间上相似,在向量空间上就也应当相似)如(figure 1)
2.Applications of Graph ML
类型 | 任务 | 实例 |
---|---|---|
Node level | Node classification: Predict a property of a node | Categorize online users / items |
Edge-level | Link prediction: Predict whether there are missing links between two nodes | Knowledge graph completion |
Community(subgraph) level | Clustering: Detect if nodes form a community | Social circle detection |
Graph-level | Graph classification: Categorize different graphs | Molecule property prediction |
其他 | Graph generation、Graph evolution | Drug discovery、Physical simulation |
1. node-level的例子:解决蛋白质折叠问题——AlphaFold3 【1】
大致来说就是蛋白质由一系列氨基酸(氨基酸链chains of amino acids或amino acid residues)结合而成,这些氨基酸之间的交互使其形成不同的折叠方式,组成三维蛋白质结构(这个组合方式很复杂,但是一系列氨基酸交互之后形成的结构就是唯一的,所以理论上可以预测出最终结果)。学习任务就是输入一系列氨基酸,预测蛋白质的3D结构。
AlphaFold将一个被折叠的蛋白质视作spatial graph,residue视作节点,在相近的residue之间建立边,形成图结构,搭建深度学习模型,预测节点在空间中的位置(也就是蛋白质的三维结构)。
【1】
DeepMind’s AlphaFold Is Close to Solving One of Biology’s Greatest Challenges (singularityhub.com)
AlphaFold: Using AI for scientific discovery (deepmind.com)
AlphaFold: a solution to a 50-year-old grand challenge in biology (deepmind.com)
2. edge-level的例子
1. 推荐系统——PinSage【2】
在网站Pinterest上给用户推荐相关图片。
节点是图片和用户,组成如左下角所示的bipartite图。figure 4中的d是嵌入向量之间的距离,即任务目标是使相似节点嵌入之间的距离比不相似节点嵌入之间的距离更小。
【2】Graph Convolutional Neural Networks for Web-Scale Recommender Systems
是一个全网级别的大型推荐系统,使用random walk和图卷积神经网络,结合图结构和节点特征来产生节点嵌入
2. 在同时吃2种药的情况下预测药的副作用–Biomedical Graph Link Prediction【3】
背景:很多人需要同时吃多种药来治疗多种病症。
任务:输入一对药物,预测其有害副作用。
【3】Modeling Polypharmacy Side Effects with Graph Convolutional Networks
提出模型Decagon,建立了一个由蛋白质-蛋白质交互、蛋白质-药物交互、药物-药物交互(即对应成对药物的副作用,每一种副作用都是一种边的类型)组成的多模态图。文章提出了一种用于多模态网络多关系预测的图卷积神经网络模型,该模型预测概率最高的组合药物副作用。其中有一部分已经有论文证明存在
3. subgraph-level的例子:Traffic Prediction【4】
Google Map预测一段路程的长度、耗时等:将路段建模成图,在每个子图上建立预测模型。
【4】DeepMind文章:Traffic prediction with advanced Graph Neural Networks
Google Map用机器学习结合当前交通情况及历史交通情况来预测未来交通情况。为了在全球范围解决这个任务,用GNN结合关 系学习偏好来建模真实世界道路网络的连接结构,以实施时空推理。
4. graph-level的例子
1. 药物发现——用图神经网络的图分类任务来从一系列备选图(分子被表示为图,节点是原子,边是化学键)中预测最有可能是抗生素 的分子【5】
2. Graph Generation —— Molecule Generation / Optimization【6】
3. Graph Evolution —— Physics Simulation(粒子间的相互作用)将整个物质表示为图(proximity graph),用GNN来预测粒 子的下一步活动(组成一个新位置、新图)【7】
【5】论文链接:A Deep Learning Approach to Antibiotic Discovery
由于抗药性细菌大量出现,所以产生了对抗生素发现的更多需求。本文建立了一种深度学习模型来找抗生素。【6】论文链接:You et al., Graph Convolutional Policy Network for Goal-Directed Molecular Graph Generation, NeurIPS 2018
任务:基于某些给定条件(满足物理定律,如化学价等),生成优化某些目标(某些需要的特性,如是药的概率、人造可得 性)的图结构(分子)。本文提出了一个Graph Convolutional Policy Network (GCPN),一个通过强化学习完成上述任务 的图卷积网络。训练过程遵守特定领域规则,以特定领域的reward来做优化。【7】论文链接:Sanchez-Gonzalez et al., Learning to simulate complex physics with graph networks, ICML 2020
3.Choice of Graph Representation
1. 图的组成成分如table 3
Component | Name | Notation |
---|---|---|
Objects | nodes, vertices | N |
Interactions | links, edges | E |
System | network, graph | G(N,E) |
2. 图是一种解决关系问题时的通用语言,各种情况下的统一数学表示。将问题抽象成图,可以用同一种机器学习算法解决所有问题。
3. 但为问题选择合适的表示方法是个很难的任务。
用论文间的引用作为关系就比用论文题目含有同一单词作为关系,表达能力会好很多。
4.建图时需要考虑以什么作为节点,以什么作为边.
对某一领域或问题选择合适的网络表示方法会决定我们能不能成功使用网络:
- 有些情况下只有唯一的明确做法
- 些情况下可以选择很多种做法
- 分配链接的方式将决定可以学习的问题的性质
5.节点和边的属性,可选项:
- 重量(例如,通信频率)
- 排名(最好的朋友,第二好的朋友…)
- 类型(朋友、亲戚、同事)
- 标志:朋友对敌人,信任对不信任
- 属性取决于图表其余部分的结构:共同好友数
6.加权/未加权,如figure 7
7. 自循环、多图
这个multigraph有时也可被视作是weighted graph,就是说将多边的地方视作一条边的权重(在邻接矩阵上可看出效果是一样的)。 但有时也可能就是想要分别处理每一条边,这些边上可能有不同的自身的属性和附加的属性。
8.连通性
1. 无向图的Connectivity
- connected:任意两个节点都有路径相通
- disconnected:由2至多个连接的子图构成,如figure 10
这种图的邻接矩阵可以写成块对角线的形式,数字只在连接的组件之中出现
2.有向图的Connectivity
- 强连接有向图:具有从每个节点到每个其他节点的路径,反之亦然(例如,A-B 路径和 B-A 路径)
- 弱连接有向图:如果我们忽略边缘方向,则为连接图如图
- 强连接组件(figure 12)