拉普拉斯矩阵(Laplacian matrix)


我们要首先清楚,图拉普拉斯矩阵不是为了图神经网络而生,而在之前就存在了很久很久。

简单介绍

简单地说,拉普拉斯矩阵就是 L = D − A L=D-A L=DA A A A是邻接矩阵, D D D是度矩阵。如下例:

在这里插入图片描述

A = ( 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 0 0 1 0 0 ) D = ( 2 0 0 0 0 0 0 3 0 0 0 0 0 0 2 0 0 0 0 0 0 3 0 0 0 0 0 0 3 0 0 0 0 0 0 1 ) A=\left(\begin{array}{llllll}0 & 1 & 0 & 0 & 1 & 0 \\ 1 & 0 & 1 & 0 & 1 & 0 \\ 0 & 1 & 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 & 1 & 1 \\ 1 & 1 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0\end{array}\right) D=\left(\begin{array}{llllll}2 & 0 & 0 & 0 & 0 & 0 \\ 0 & 3 & 0 & 0 & 0 & 0 \\ 0 & 0 & 2 & 0 & 0 & 0 \\ 0 & 0 & 0 & 3 & 0 & 0 \\ 0 & 0 & 0 & 0 & 3 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1\end{array}\right) A=010010101010010100001011110100000100D=200000030000002000000300000030000001
可求得拉普拉斯矩阵 L L L
L = D − A = ( 2 − 1 0 0 − 1 0 − 1 3 − 1 0 − 1 0 0 − 1 2 − 1 0 0 0 0 − 1 3 − 1 − 1 − 1 − 1 0 − 1 3 0 0 0 0 − 1 0 1 ) L=D-A=\left(\begin{array}{rrrrrr}2 & -1 & 0 & 0 & -1 & 0 \\ -1 & 3 & -1 & 0 & -1 & 0 \\ 0 & -1 & 2 & -1 & 0 & 0 \\ 0 & 0 & -1 & 3 & -1 & -1 \\ -1 & -1 & 0 & -1 & 3 & 0 \\ 0 & 0 & 0 & -1 & 0 & 1\end{array}\right) L=DA=210010131010012100001311110130000101

为什么在图中会用到Laplacian matrix

初次接触图神经网络时,大家肯定会看到图拉普拉斯矩阵 L = I − D − 1 2 A D − 1 2 L = I - D ^ { - \frac { 1 } { 2 } } A D ^ { - \frac { 1 } { 2 } } L=ID21AD21或者 L = D − A L=D-A L=DA, 那么为什么需要这么定义,下面我们就来仔细推导一下:

我们规定:

  • A A A:邻接矩阵, D D D:度矩阵
  • f f f:将图 G G G看作一个包含 N N N个变量的离散函数
  • x i x_i xi:节点 i i i的取值
  • N i N_i Ni:图中节点的一阶所有邻居节点集合, j ∈ N i j∈N_i jNi表示节点 i i i的一个一阶邻居节点

为了对上述节点的邻居节点集合 N i N_i Ni使用邻接矩阵进行替换,需要继续对上述图中的拉普拉斯算子进行矩阵形式的推导;首先,将图 G G G中的各个节点的取值表示成矩阵的形式:
X N × 1 = ( x 1 x 2 ⋮ x N ) X^{N \times 1}=\left(\begin{array}{c}x_{1} \\ x_{2} \\ \vdots \\ x_{N}\end{array}\right) XN×1=x1x2xN
那么对于节点 i i i, 可以进一步进行展开:
Δ f x i = ∑ j ∈ N i ( x i − x j ) = ∑ j ∈ N a i j ( x i − x j ) = ∑ j ∈ N a i j x i − ∑ j ∈ N a i j x j = x i ∑ j ∈ N a i j − ∑ j ∈ N a i j x j \begin{aligned} \Delta f_{x_{i}} &=\sum_{j \in N_{i}}\left(x_{i}-x_{j}\right) \\ &=\sum_{j \in N} a_{i j}\left(x_{i}-x_{j}\right) \\ &=\sum_{j \in N} a_{i j} x_{i}-\sum_{j \in N} a_{i j} x_{j} \\ &=x_{i} \sum_{j \in N} a_{i j}-\sum_{j \in N} a_{i j} x_{j} \\ \end{aligned} Δfxi=jNi(xixj)=jNaij(xixj)=jNaijxijNaijxj=xijNaijjNaijxj
注意到, ∑ j ∈ N a i j \sum_{j \in N} a_{i j} jNaij可以看作第 i i i个节点的度之和,也可以看作邻接矩阵A的第 i i i A i A_i Ai,进行替换后:
= x i D i − ∑ j ∈ N a i j x j = x i D i − A i X \begin{aligned} &=x_{i} D_{i}-\sum_{j \in N} a_{i j} x_{j} \\ &=x_{i} D_{i}-A_{i} X \end{aligned} =xiDijNaijxj=xiDiAiX
推广至所有节点:
Δ f = ( Δ f x 1 Δ f x 2 ⋮ Δ f x N ) = ( x 1 D 1 − A 1 X x 2 D 2 − A 2 X ⋮ x N D N − A N X ) = ( x 1 D 1 x 2 D 2 ⋮ x N D N ) − ( A 1 X A 2 X ⋮ A N X ) \Delta f=\left(\begin{array}{c}\Delta f_{x_{1}} \\ \Delta f_{x_{2}} \\ \vdots \\ \Delta f_{x_{N}}\end{array}\right)=\left(\begin{array}{c}x_{1} D_{1}-A_{1} X \\ x_{2} D_{2}-A_{2} X \\ \vdots \\ x_{N} D_{N}-A_{N} X\end{array}\right)=\left(\begin{array}{c}x_{1} D_{1} \\ x_{2} D_{2} \\ \vdots \\ x_{N} D_{N}\end{array}\right)-\left(\begin{array}{c}A_{1} X \\ A_{2} X \\ \vdots \\ A_{N} X\end{array}\right) Δf=Δfx1Δfx2ΔfxN=x1D1A1Xx2D2A2XxNDNANX=x1D1x2D2xNDNA1XA2XANX
继续分别进行简化,以求化成邻接矩阵 A A A和度矩阵 D D D
( A 1 X A 2 X : A N X ) = A N × N X N × 1 = A X \left( \begin{array} { l } { A _ { 1 } X } \\ { A _ { 2 } X } \\ { : } \\ { A _ { N } X } \end{array} \right) = A ^ { N \times N } X ^ { N \times 1 } = A X A1XA2X:ANX=AN×NXN×1=AX

( x 1 D 1 x 2 D 2 ⋮ x i D N ) = ( D 1 0 0 ⋯ 0 0 D 2 0 ⋯ 0 ⋮ ⋮ ⋮ ⋱ ⋮ 0 0 0 ⋯ D N ) N × N X N × 1 = D N × N X N × 1 = D X \left(\begin{array}{c}x_{1} D_{1} \\ x_{2} D_{2} \\ \vdots \\ x_{i} D_{N}\end{array}\right)=\left(\begin{array}{ccccc}D_{1} & 0 & 0 & \cdots & 0 \\ 0 & D_{2} & 0 & \cdots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \cdots & D_{N}\end{array}\right)^{N \times N }X^{N\times1} =D ^ { N \times N } X ^ { N \times 1 } = D X x1D1x2D2xiDN=D1000D2000000DNN×NXN×1=DN×NXN×1=DX

这样,我们便可得到拉普拉斯算子在图上的等式
Δ f = D X − A X = ( D − A ) X \begin{array} { l } { \Delta f = D X - A X = ( D - A ) X } \end{array} Δf=DXAX=(DA)X
L = D − A { L = D - A } L=DA L L L被称作为拉普拉斯矩阵

两种形式

1. 标准拉普拉斯矩阵

L = D − A L=D-A L=DA

各元素的值:
L i j = { D i i ,  if  i = j − 1 ,  if  i , j  in edge set  0 ,  otherwise  L_{i j}=\left\{\begin{array}{ll}D_{i i}, & \text { if } \mathrm{i}=\mathrm{j} \\ -1, & \text { if } \mathrm{i}, \mathrm{j} \text { in edge set } \\ 0, & \text { otherwise }\end{array}\right. Lij=Dii,1,0, if i=j if i,j in edge set  otherwise 

  • 拉普拉斯矩阵的对角线上取值为节点的度
  • 如果节点和节点相邻,那么取值为-1
  • 显然,拉普拉斯矩阵为对称的矩阵

可以结合刚开始的例子进行理解。

2. 归一化的拉普拉斯矩阵(Symmetric normalized Laplacian)

这就是大家会在各个模型里见到比较多的形式:
L s m m = D − 1 2 L D − 1 2 = I − D − 1 2 A D − 1 2 L _ { s m m } = D ^ { - \frac { 1 } { 2 } } L D ^ { - \frac { 1 } { 2 } } = I - D ^ { - \frac { 1 } { 2 } } A D ^ { - \frac { 1 } { 2 } } Lsmm=D21LD21=ID21AD21
各元素的值:
L i j = { 1 ,  if  i = j − 1 D i i D j j ,  if  i , j  in edge set  0 ,  otherwise  L_{i j}=\left\{\begin{array}{ll}1, & \text { if } \mathrm{i}=\mathrm{j} \\ \frac{-1}{\sqrt{D_{i i}} \sqrt{D_{j j}}}, & \text { if } \mathrm{i}, \mathrm{j} \text { in edge set } \\ 0, & \text { otherwise }\end{array}\right. Lij=1,Dii Djj 1,0, if i=j if i,j in edge set  otherwise 

  • 34
    点赞
  • 110
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值