图论基础知识
1 图的表示
1.1 图的定义(图)
- 一个图被记为 G = { V , E } \mathcal{G}=\{\mathcal{V}, \mathcal{E}\} G={V,E},其中 V = { v 1 , … , v N } \mathcal{V}=\left\{v_{1}, \ldots,v_{N}\right\} V={v1,…,vN}是数量为 N = ∣ V ∣ N=|\mathcal{V}| N=∣V∣ 的节点的集合 E = { e 1 , … , e M } \mathcal{E}=\left\{e_{1}, \ldots, e_{M}\right\} E={e1,…,eM} 是数量为 M M M 的边的集合。
- 图用结点表示实体,用边表示实体之间的关系。
- 节点和边的信息可以是类别型的(称为标签),也可以是数值型**的(称为属性)。
1.2 邻接矩阵
- 给定一个图 G = { V , E } \mathcal{G}=\{\mathcal{V}, \mathcal{E}\} G={V,E},其对应的邻接矩阵被记为 A ∈ { 0 , 1 } N × N \mathbf{A} \in\{0,1\}^{N \times N} A∈{0,1}N×N。 A i , j = 1 \mathbf{A}_{i, j}=1 Ai,j=1表示存在从节点 v i v_i vi到 v j v_j vj的边,反之表示不存在从节点 v i v_i vi到 v j v_j vj的边。
- 在无向图中,邻接矩阵是对称的;有向图中,邻接矩阵可以是不对成的。
- 在无权图中,各条边的权重被认为是等价的,即认为各条边的权重为 1 1 1;在有权图中,其对应的邻接矩阵通常被记为 W N × N \mathbf{W} ^{N \times N} WN×N,其中 W i , j = w i j \mathbf{W}_{i, j}=w_{ij} Wi,j=wij表示从节点 v i v_i vi到 v j v_j vj的边的权重。若边不存在时,边的权重为 0 0 0。
无向图
有向图
加权图
2 图的属性
2.1 节点的度
- 对于有向有权图,节点 v i v_i vi的出度等于从 v i v_i vi出发的边的权重之和,节点 v i v_i vi的入度等于连向 v i v_i vi的边的权重之和。
- 对于无向图,出度与入度相等,为节点所连边的数量。
- 节点 v i v_i vi的度记为 d ( v i ) d(v_i) d(vi),入度记为 d i n ( v i ) d_{in}(v_i) din(vi),出度记为 d o u t ( v i ) d_{out}(v_i) dout(vi)。
2.2 邻接节点
- 节点 v i v_i vi的邻接节点为与节点 v i v_i vi直接相连的节点,其被记为** N ( v i ) \mathcal{N(v_i)} N(vi)**。
- **节点 v i v_i vi的 k k k跳远的邻接节点(neighbors with k k k-hop)**指的是到节点 v i v_i vi要走 k k k步的节点(一个节点的 2 2 2跳远的邻接节点包含了自身)。
2.3 行走
- w a l k ( v 1 , v 2 ) = ( v 1 , e 6 , e 5 , e 4 , e 1 , v 2 ) walk(v_1, v_2) = (v_1, e_6,e_5,e_4,e_1,v_2) walk(v1,v2)=(v1,e6,e5,e4,e1,v2),这是一次“行走”,它是一次从节点 v 1 v_1 v1出发,依次经过边 e 6 , e 5 , e 4 , e 1 e_6,e_5,e_4,e_1 e6,e5,e4,e1,最终到达节点 v 2 v_2 v2的“行走”。
- 在“行走”中,节点是允许重复的。
2.4 邻接矩阵A的n次方
有一图,其邻接矩阵为 A \mathbf{A} A, A n \mathbf{A}^{n} An为邻接矩阵的 n n n次方,那么 A n [ i , j ] \mathbf{A}^{n}[i,j] An[i,j]等于从节点 v i v_i vi到节点 v j v_j vj的长度为 n n n的行走的个数。(也就是,以节点 v i v_i vi为起点,节点 v j v_j vj为终点,长度为 n n n的节点访问方案的数量,节点访问中可以兜圈子重复访问一些节点)。
2.5 路径
路径是节点不重复的“行走”。
2.6 子图
有一图 G = { V , E } \mathcal{G}=\{\mathcal{V}, \mathcal{E}\} G={V,E},另有一图 G ′ = { V ′ , E ′ } \mathcal{G}^{\prime}=\{\mathcal{V}^{\prime}, \mathcal{E}^{\prime}\} G′={V′,E′},其中 V ′ ∈ V \mathcal{V}^{\prime} \in \mathcal{V} V′∈V, E ′ ∈ E \mathcal{E}^{\prime} \in \mathcal{E} E′∈E并且 V ′ \mathcal{V}^{\prime} V′不包含 E ′ \mathcal{E}^{\prime} E′中未出现过的节点,那么 G ′ \mathcal{G}^{\prime} G′是 G \mathcal{G} G的子图。
2.7 连通分量
给定图
G
′
\mathcal{G}^{\prime}
G′是图
G
\mathcal{G}
G的子图。记属于图
G
\mathcal{G}
G但不属于
G
′
\mathcal{G}^{\prime}
G′图的节点集合记为
V
/
V
′
\mathcal{V}/\mathcal{V}^{\prime}
V/V′ 。如果属于
V
′
\mathcal{V}^{\prime}
V′的任意节点对之间存在至少一条路径,但不存在一条边连接属于
V
′
\mathcal{V}^{\prime}
V′的节点与属于
V
/
V
′
\mathcal{V}/\mathcal{V}^{\prime}
V/V′的节点,那么图
G
′
\mathcal{G}^{\prime}
G′是图
G
\mathcal{G}
G的连通分量。
左右两边子图都是整图的连通分量。
2.8 连通图
当一个图只包含一个连通分量,即其自身,那么该图是一个连通图。
2.9 最短路径
v
s
,
v
t
∈
V
v_{s}, v_{t} \in \mathcal{V}
vs,vt∈V 是图
G
=
{
V
,
E
}
\mathcal{G}=\{\mathcal{V}, \mathcal{E}\}
G={V,E}上的一对节点,节点对
v
s
,
v
t
∈
V
v_{s}, v_{t} \in \mathcal{V}
vs,vt∈V之间所有路径的集合记为
P
s
t
\mathcal{P}_{\mathrm{st}}
Pst。节点对
v
s
,
v
t
v_{s}, v_{t}
vs,vt之间的最短路径
p
s
t
s
p
p_{\mathrm{s} t}^{\mathrm{sp}}
pstsp为
P
s
t
\mathcal{P}_{\mathrm{st}}
Pst中长度最短的一条路径,其形式化定义为:
p
s
t
s
p
=
arg
min
p
∈
P
s
t
∣
p
∣
p_{\mathrm{s} t}^{\mathrm{sp}}=\arg \min _{p \in \mathcal{P}_{\mathrm{st}}}|p|
pstsp=argp∈Pstmin∣p∣
其中,
p
p
p表示
P
s
t
\mathcal{P}_{\mathrm{st}}
Pst中的一条路径,
∣
p
∣
|p|
∣p∣是路径
p
p
p的长度。
2.10 直径
给定一个连通图
G
=
{
V
,
E
}
\mathcal{G}=\{\mathcal{V}, \mathcal{E}\}
G={V,E},其直径为其所有节点对之间的最短路径的最大值,形式化定义为:
diameter
(
G
)
=
max
v
s
,
v
t
∈
V
min
p
∈
P
s
t
∣
p
∣
\operatorname{diameter}(\mathcal{G})=\max _{v_{s}, v_{t} \in \mathcal{V}} \min _{p \in \mathcal{P}_{s t}}|p|
diameter(G)=vs,vt∈Vmaxp∈Pstmin∣p∣
2.11 拉普拉斯矩阵
给定一个图
G
=
{
V
,
E
}
\mathcal{G}=\{\mathcal{V}, \mathcal{E}\}
G={V,E},其邻接矩阵为
A
A
A,度矩阵为
D
D
D,其拉普拉斯矩阵为:
L
=
D
−
A
\mathbf{L=D-A}
L=D−A
其规范化的拉普拉斯矩阵定义为:
L
=
D
−
1
2
(
D
−
A
)
D
−
1
2
=
I
−
D
−
1
2
A
D
−
1
2
\mathbf{L=D^{-\frac{1}{2}}(D-A)D^{-\frac{1}{2}}=I-D^{-\frac{1}{2}}AD^{-\frac{1}{2}}}
L=D−21(D−A)D−21=I−D−21AD−21
3 图的种类
- 同质图:只有一种类型的节点和一种类型的边的图。
- 异质图:存在多种类型的节点和多种类型的边的图。
- 二部图:节点分为两类,只有不同类的节点之间存在边。
4 图结构数据上的机器学习
- 节点预测:预测节点的类别或某类属性的取值
- 例子:对是否是潜在客户分类、对游戏玩家的消费能力做预测
- 边预测:预测两个节点间是否存在链接
- 例子:Knowledge graph completion、好友推荐、商品推荐
- 图的预测:对不同的图进行分类或预测图的属性
- 例子:分子属性预测
- 节点聚类:检测节点是否形成一个社区
- 例子:社交圈检测
- 其他任务
- 图生成:例如药物发现
- 图演变:例如物理模拟
5 图结构数据的特点和挑战
5.1 图结构数据的特点
图数据是非规则的非结构化的,它具有以下的特点:
- 任意的大小和复杂的拓扑结构;
- 没有固定的节点排序或参考点;
- 通常是动态的,并具有多模态的特征;
- 图的信息并非只蕴含在节点信息和边的信息中,图的信息还包括了图的拓扑结构。
5.1 深度学习在图结构数据上所面临的挑战
以往的深度学习模型是为结构化数据设计的,而无法适应非结构化数据。对于图这种非结构化数据要求深度学习模型具有如下特点:
- 适用于不同度的节点;
- 节点表征的计算与邻接节点的排序无关;
- 不但能够根据节点信息、邻接节点的信息和边的信息计算节点表征,还能根据图拓扑结构计算节点表征。
这俩图节点数量、类别均相等;变得数量也相等;各节点的度也相等,但是拓扑结构不同,因此需要深度学习模型能够区分这俩图。
参考:
DataWhale开源内容