Graph介绍
可以视为graph的data type
- 社交网络
- 因特网
- 文件引用
- 地铁等
简单来说,可以视为net的事物,大部分情况也可以视为graph。
Sometimes the distinction between networks & graphs is blurred
数据结构与机器学习
在进行学习前需要明确输入的数据结构,而机器学习更适合用于简单的序列或网格结构,但由于graph没有明确的大小并且其拓扑结构复杂,没有grids的空间局部性。
目前,graph是deep learning的前沿研究领域
在对graph模型做train之前需要做预处理,因为Raw Data 不能用于特征工程
图像的表达需要用到embedding技术,即将图从高维矩阵变为低维向量。图嵌入需要捕捉到图的拓扑结构,顶点与顶点的关系,以及其他的信息 (如子图,连边等)。如果有更多的信息被表示出来,那么下游的任务将会获得更好的表现。在嵌入的过程中存在着一种共识:向量空间中保持连接的节点彼此靠近。
Applications of Graph ML
传统机器学习的任务级别可以划分为三个级别:Node-level、Edge-level、Graph-level
-
节点级别
-
蛋白质结构的预测
蛋白质的三维空间结构基于其氨基酸链,可以蛋白质作为一个,通过机器学习进行结构的预测。
Nodes:蛋白质链中的氨基酸
Edges: 氨基酸之间的连接
-
-
边级别
-
推荐系统
课程中用蛋糕与衣服进行举例
Nodes: 用户和商品
Edges:用户与商品之间的相互联系[d(z_{cake1},z_{cake2}) < d(z_{cake1},z_{sweater}) ]cake1与cake2 之间的联系比cake1与sweater之间的联系更强,所以推荐系统会推荐cake2,而不是sweater。
-
预测side effects
以药物为例,两种不同的药物之间可以发挥1+1>2的作用,graph机器学习还可以做到的任务就是预测两种药物的联合作用,也就是side effects
Nodes: Drugs & protein
Edges: Interactions如图所示,可以预测药物S与C之间的相互联系 -
预测交通
Nodes: Road segments
Edges: connectivity between road segments
-
-
图级别
-
药物发现
Nodes: Atoms
Edges: Chemical bonds
将已经有的药物分子视为一个图结构,并将这些图作为训练集进行训练,从而预测新的药物分子的结构。
可以产生新的药物分子,也可以优化现有的药物分子。 -
物理模拟
Nodes: particles
Edges: Interaction between particles
-
graph的结构
一个图可以由多个节点构成,节点之间可能存在边进行关联,这样的系统称为图。
$ N, E, G(E,N) $
选择合适的网络描述方式决定了能否很好地解决问题
图可以分为两种,有向图和无向图
-
有向图
连接是没有指向的,常用于合作关系、朋友关系等没有指向性的情况。
degree:$ K_i = $ edges num of Node iAvg.degree: (overline{k} = frac{1}{N}sumlimits_{i=1}^{N}K_i = cfrac{2E}{N})
全连接无向图:只有一个最大连通子图
-
无向图
连接是有指向性的,常用于打电话,或者社交媒体的关注等有指向性的情况。
degree分为入度和出度,节点degree为二者之和强连接:任意两个节点之间都有路径
Bipartite Graph
Bipartite Graph is a graph whose nodes can be divided into two disjoint sets U and V such that every link connects a node in U to one in V; that is, U and V are independent sets
图的表示
- 邻接矩阵(有时候每个节点的度远远小于N-1)
- 邻接表
图的其他分类
- Unweighted
- Weighted
- self-edges
- Multigraph
传统图机器学习方法
传统机器学习的任务级别可以划分为三个级别:Node-level、Edge-level、Graph-level
按照节点的不同,特征也分别为nodes、links、graphs