Machine Learning for Graphs
- 一、Application of Graph ML
一、Application of Graph ML
图机器学习的任务可以分为四个类型:
- N o d e l e v e l Node\ level Node level(结点级别)
- E d g e l e v e l Edge\ level Edge level(边级别)
- C o m m u n i t y ( s u b g r a p h ) l e v e l Community(subgraph)\ level Community(subgraph) level(社区/子图级别)
- G r a p h l e v e l p r e d i c t i o n , G r a p h g e n e r a t i o n Graph\ level\ prediction,Graph\ generation Graph level prediction,Graph generation(图级别,图生成)
典型的图机器学习任务有:
-
N
o
d
e
c
l
a
s
s
i
f
i
c
a
t
i
o
n
Node\ classification
Node classification:(结点分类)
主要做的是预测结点的属性- 应用实例:对在线用户/项目进行分类
-
L
i
n
k
p
r
e
d
i
c
t
i
o
n
Link\ prediction
Link prediction:(链接预测)
主要做的是预测两个节点之间是否缺少链接- 应用实例: K n o w l e d g e g r a p h c o m p l e t i o n Knowledge\ graph\ completion Knowledge graph completion
-
G
r
a
p
h
c
l
a
s
s
i
f
i
c
a
t
i
o
n
Graph\ classification
Graph classification:(图分类)
主要做的是将不同的图及逆行分类- 应用实例:分子属性的预测
-
C
l
u
s
t
e
r
i
n
g
Clustering
Clustering:
主要做的是检测节点是否形成社区- 应用实例:社区搜索
-
O
t
h
e
r
t
a
s
k
s
Other\ tasks
Other tasks:
-
G
r
a
p
h
g
e
n
e
r
a
t
i
o
n
Graph\ generation
Graph generation(图生成):
- 应用实例:药物发现
-
G
r
a
p
h
e
v
o
l
u
t
i
o
n
Graph\ evolution
Graph evolution(图演变):
- 应用实例:物理模拟
-
G
r
a
p
h
g
e
n
e
r
a
t
i
o
n
Graph\ generation
Graph generation(图生成):
n o d e l l e v e l nodel\ level nodel level应用实例: P r o t e i n F o l d i n g Protein\ Folding Protein Folding
蛋白质有一些列氨基酸组成,氨基酸之间相互作用,在局部形成类似螺旋、薄片的形状,这些形状折叠起来称为更大尺度的三维蛋白质结构。
所以需要做的是:仅基于蛋白质的氨基酸序列,来预测蛋白质的三维结构。
这一直以来都是一个难以完成的任务;最近 A l p h a F o l d AlphaFold AlphaFold的提出,解决了 P r o t e i n F o l d i n g Protein\ Folding Protein Folding问题。
其关键思想是:构建 S p a t i a l g r a p h Spatial\ graph Spatial graph
- N o d e s Nodes Nodes:蛋白质序列中的氨基酸构成 S p a t i a l g r a p h Spatial\ graph Spatial graph的节点
- E d g e s Edges Edges:氨基酸之间的邻接关系构成 S p a t i a l g r a p h Spatial\ graph Spatial graph的边
通过对 S p a t i a l g r a p h Spatial\ graph Spatial graph的学习,搭建深度学习模型,预测节点(蛋白质氨基酸序列)在空间中的位置,从而预测蛋白质的三维结构。
e d g e l e v e l edge\ level edge level应用实例: D r u g S i d e E f f e c t s Drug\ Side\ Effects Drug Side Effects(药物副作用)
在现实生活中,许多病人会同时复用多种药物以治疗疾病,不同的药物之间相互复用可能会导致一些副作用。然而因为有很多的药物,所以很多药物组合的副作用还未知晓。
所以需要做的是:给定一对药物,预测其可能的不良副作用。
现有的研究已有通过 B i o m e d i c a l G r a p h L i n k P r e d i c t i o n Biomedical\ Graph\ Link\ Prediction Biomedical Graph Link Prediction对该问题进行了求解。
其思想是构建一张只包含两种类型的异构网络图:
- N o d e s Nodes Nodes:节点由药物 D r u g s Drugs Drugs和蛋白质( P r o t e i n s Proteins Proteins)组成
- E d g e s Edges Edges:若药物之间会相互作用、药物与蛋白质之间相互作用、蛋白质之间会相互作用,则在两节点之间连接一条边。
如下图:
对于某两个药物,如
S
i
m
v
a
s
t
a
t
i
n
Simvastatin
Simvastatin和
C
i
p
r
o
f
l
o
x
a
c
i
n
Ciprofloxacin
Ciprofloxacin,我们可以预测一起服用时,分解肌肉组织的可能性有多大。其实就是这两个药物之间存在
r
2
r_2
r2边的可能性;如下图:
S
u
b
g
r
a
p
g
−
l
e
v
e
l
Subgrapg-level
Subgrapg−level应用实例:
T
r
a
f
f
i
c
P
r
e
d
i
c
t
i
o
n
Traffic\ Prediction
Traffic Prediction(交通预测)
如地图软件上的到达目的地的路线长度、耗时的预测。
此问题可以将公路网络作为一张图:
- N o d e s Nodes Nodes:将路段作为节点
- E d g e s Edges Edges:若两路段之间是连通的,则添加一条边
之后就可以使用图神经网络预测到达时间。
G r a p h l e v e l Graph\ level Graph level应用实例: D r u g D i s c o v e r y Drug\ Discovery Drug Discovery(药物发现)
一些抗生素可以表示为一些小的分子,而分子可以表示成一张图:
- N o d e s Nodes Nodes:原子作为节点
- E d g e s Edges Edges:化学键作为边
接下来搭建一种图神经网络图分类模型,输入一组候选分子结构图,从候选分子中预测有希望是抗生素的分子。
即通过 G r a p h Graph Graph来判断该分子是否含有某种属性,如判断该分子结构图中是否有两个环。
G r a p h g e n e r a t i o n Graph\ generation Graph generation应用实例: G e n e r a t i n g n o v e l m o l e c u l e s Generating\ novel\ molecules Generating novel molecules(生成新分子)
如构建一个图生成模型,学习现有的分子模型,从而生成一个新的具有某种属性的新分子(如耐高温属性)
G
r
a
p
h
e
v
o
l
u
t
i
o
n
Graph\ evolution
Graph evolution应用实例:
P
h
y
s
i
c
a
l
s
i
m
u
l
a
t
i
o
n
Physical\ simulation
Physical simulation
通过构建一整物理模拟图:
- N o d e s Nodes Nodes: 粒子作为节点
- E d g e s Edges Edges: 粒子之间的相互作用做为边
接下来构建一个模型,根据例子当前的位置、领域粒子的关系,来预测图将如何演变。