Introduction to Graph Neural Network翻译-第二章数学与图基础

2. 数学与图基础

2.1 线性代数

线性代数的语言和概念在计算机科学的许多领域都得到了广泛的应用,机器学习也不例外。对机器学习的良好理解是建立在对线性代数的透彻理解的基础上的。
在这一节中,我们将简要回顾线性代数中的一些重要概念和计算,这对于理解本书的其余部分是必要的。在这一节中,我们将回顾线性代数中的一些基本概念和计算,这对于理解本书的其余部分是必要的。

2.1.1 基本概念

标量: 一个数

向量: 一列有序的数字,可以表示为:

x=[x1x2xn](2.1) \mathbf{x}=\left[\begin{array}{c} x_{1} \\ x_{2} \\ \vdots \\ x_{n} \end{array}\right] \tag{2.1}
向量的范数衡量其长度。LpL_p范数定义如下:

xp=(i=1nxip)1p(2.2)\|\mathbf{x}\|_{p}=\left(\sum_{i=1}^{n}\left|x_{i}\right|^{p}\right)^{\frac{1}{p}} \tag{2.2}

L1L_1范数、L2L_2范数和LL_{\infty}范数常被用于机器学习。

L1L_1范数可以简化为:

x1=i=1nxi(2.3)\|\mathbf{x}\|_{1}=\sum_{i=1}^{n}\left|x_{i}\right|\tag{2.3}

在欧式空间Rn\mathbb{R}^{n}L2L_2范数常被用来测量两个向量直接的距离:

x2=i=1nxi2(2.4)\|\mathbf{x}\|_{2}=\sqrt{\sum_{i=1}^{n} x_{i}^{2}}\tag{2.4}

LL_\infty范数也叫最大范数,如:

x=maxixi(2.5)\|\mathbf{x}\|_{\infty}=\max _{i}\left|x_{i}\right|\tag{2.5}

对于LpL_p范数,向量x1,x2x_1,x_2之间的距离(其中,x1,x2x_1,x_2都在相同的线性空间)可以定义为:

Dp(x1,x2)=x1x2p(2.6)\mathbf{D}_{p}\left(\mathbf{x}_{1}, \mathbf{x}_{2}\right)=\left\|\mathbf{x}_{1}-\mathbf{x}_{2}\right\|_{p}\tag{2.6}

一组向量x1,x2,...,xmx_1,x_2,...,x_m当且仅当不存在一组不全为0的标量λ1,λ2,,λm\lambda_{1}, \lambda_{2}, \cdots, \lambda_{m}时可以称为线性无关,例如:

λ1x1+λ2x2++λmxm=0(2.7)\lambda_{1} \mathbf{x}_{1}+\lambda_{2} \mathbf{x}_{2}+\cdots+\lambda_{m} \mathbf{x}_{m}=\mathbf{0}\tag{2.7}

矩阵: 二维数组,可以表示为:

A=[a11a12a1na21a22a2nam1am2amn](2.8)\mathbf{A}=\left[\begin{array}{cccc} a_{11} & a_{12} & \dots & a_{1 n} \\ a_{21} & a_{22} & \dots & a_{2 n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m 1} & a_{m 2} & \dots & a_{m n} \end{array}\right]\tag{2.8}

其中,ARm×n\mathbf{A} \in \mathbb{R}^{m \times n}

给定两个矩阵ARm×n,BRn×p\mathbf{A} \in \mathbb{R}^{m \times n},\mathbf{B} \in \mathbb{R}^{n \times p}ABAB的矩阵积可以表示为CRm×p\mathbf{C} \in \mathbb{R}^{m \times p},其中:

Cij=k=1nAikBkj(2.9)\mathbf{C}_{i j}=\sum_{k=1}^{n} \mathbf{A}_{i k} \mathbf{B}_{k j}\tag{2.9}

可以证明矩阵乘积是可结合的,但不一定是可交换的。

(AB)C=A(BC)(2.10)(\mathbf{A B}) \mathbf{C}=\mathbf{A}(\mathbf{B C})\tag{2.10}

适用于任意矩阵A,B和C(假定乘法是合法的)

AB=BA(2.11)\mathbf{A B}=\mathbf{B A}\tag{2.11}
上式并不总是为真。

对于n×nn\times n的方阵AA,其行列式(也称为A|A|)定义为:

det(A)=k1k2kn(1)τ(k1k2kn)a1k1a2k2ankn(2.12)\operatorname{det}(\mathbf{A})=\sum_{k_{1} k_{2} \cdots k_{n}}(-1)^{\tau\left(k_{1} k_{2} \cdots k_{n}\right)} a_{1 k_{1}} a_{2 k_{2}} \cdots a_{n k_{n}}\tag{2.12}

如果AA是方阵,意味着m=nm=n,矩阵AA的逆(表示为A1A^{-1}),其满足:

A1A=I(2.14)\mathbf{A}^{-1} \mathbf{A}=\mathbf{I}\tag{2.14}

其中IIn×nn\times n的单位阵。

矩阵之间还有另一个经常使用的乘积称为Hadamard product.
两个矩阵ARm×n,BRm×n\mathbf{A} \in \mathbb{R}^{m \times n},\mathbf{B} \in \mathbb{R}^{m \times n}Hadamard productCRm×n\mathbf{C} \in \mathbb{R}^{m \times n}

Cij=AijBij(2.15)\mathbf{C}_{i j}=\mathbf{A}_{i j} \mathbf{B}_{i j}\tag{2.15}

Tensor: 具有任意维度的数组。大多数矩阵运算也适用于张量。

2.1.2 特征分解

AA是一个矩阵,其中ARn×nA\in \mathbb{R}^{n\times n}。一个非0向量vCnv\in \mathbb{C}^n叫做AA的特征向量,如果存在一个标量λC\lambda\in \mathbb{C}

Av=λv(2.16) \mathbf{Av} = \lambda \mathbf{ v} \tag{2.16}

标量λ\lambda是对应于特征向量v\mathbf{v}的一个A\mathbf{A}的特征值。
如果矩阵A\mathbf{A}nn个线性无关的特征向量v1,v2,...,vn\mathbf{v_1,v_2,...,v_n},则对应的特征值为λ1,λ2,...,λn{\lambda_1,\lambda_2,...,\lambda_n},然后可以推导出:

A[v1v2vn]=[v1v2vn][λ1λ2λn](2.17)\mathbf{A}\left[\begin{array}{llll} \mathbf{v}_{1} & \mathbf{v}_{2} & \ldots & \mathbf{v}_{n} \end{array}\right]=\left[\begin{array}{llll} \mathbf{v}_{1} & \mathbf{v}_{2} & \ldots & \mathbf{v}_{n} \end{array}\right]\left[\begin{array}{cccc} \lambda_{1} & & & \\ & \lambda_{2} & & \\ & & \ddots & \\ & & & \lambda_{n} \end{array}\right]\tag{2.17}

V=[v1v2vn]\mathbf{V}=\left[\begin{array}{llll}\mathbf{v}_{1} & \mathbf{v}_{2} & \dots & \mathbf{v}_{n}\end{array}\right];很明显V\mathbf{V}是一个可逆矩阵。我们有A\mathbf{A}的特征分解(也叫对角化)

A=Vdiag(λ)V1(2.18)\mathbf{A}=\mathbf{V} \operatorname{diag}(\lambda) \mathbf{V}^{-1}\tag{2.18}

也可以写成以下形式:

A=i=1nλiviviT(2.19)\mathbf{A}=\sum_{i=1}^{n} \lambda_{i} \mathbf{v}_{i} \mathbf{v}_{i}^{T}\tag{2.19}

然而,并不是所有的方阵都能以这种形式对角化,因为一个矩阵可能没有nn个线性无关的特征向量。幸运的是,可以证明每个实对称矩阵都有一个特征分解。

2.1.3 奇异值分解

由于特征分解只能应用于某些矩阵,我们引入了奇异值分解,它是对所有矩阵的推广。

首先,我们需要引入奇异值的概念。让rr表示ATA\mathbf{A^TA}的秩,然后存在rr个正标量σ1σ2σr>0\sigma_{1} \geq \sigma_{2} \geq \cdots \geq \sigma_{r}>0,对于1ir1 \leq i \leq rvi\mathbf{v}_i是矩阵ATA\mathbf{A^TA}对应于特征值σi2\sigma_{i}^{2}的特征向量。
注意v1,v2,...,vr\mathbf{v_1,v_2,...,v_r}是线性无关的。rr个正标量σ1,σ2,...,σr\sigma_1,\sigma_2,...,\sigma_r叫做AA的奇异值。然后我们有奇异值分解:

A=UΣVT(2.20)\mathbf{A}=U \Sigma V^{T}\tag{2.20}

其中,URm×m,V(n×n)U \in \mathbb{R}^{m\times m},V(n\times n)是正交矩阵并且Σ\Sigmam×nm\times n的矩阵定义如下:

Σij={σi if i=jr0 otherwise \Sigma_{i j}=\left\{\begin{array}{ll} \sigma_{i} & \text { if } i=j \leq r \\ 0 & \text { otherwise } \end{array}\right.

事实上,矩阵U\mathbf{U}的列向量是AAT\mathbf{AA^T}的特征向量,ATA\mathbf{A^TA}的特征向量由V\mathbf{V}的列向量组成。

2.2 概率论

不确定性在机器学习领域无处不在,因此需要使用概率理论来量化和处理不确定性。在本节中,我们回顾了概率论中的一些基本概念和经典分布,这对于理解本书的其余部分至关重要。

2.2.1 基本概念和公式

在概率论中,随机变量是具有随机值的变量。例如,我们用XX表示一个具有两个可能值x1,x2x_1,x_2的随机值,则X=x1X=x_1的概率为P(X=x1)P\left(X=x_{1}\right),显然,以下等式仍然成立:

P(X=x1)+P(X=x2)=1(2.21)P\left(X=x_{1}\right)+P\left(X=x_{2}\right)=1 \tag{2.21}

假设有另一个随机变量YY,它的可能值是y1y_1X=x1,Y=y1X=x_1,Y=y_1的概率可以写为P(X=x1,Y=y1)P(X=x_1,Y=y_1),这称为X=x1,Y=y1X=x_1,Y=y_1的联合分布。
有时我们需要知道随机变量之间的关系,例如在Y=y1Y=y_1的情况下X=x1X=x_1的概率,这个可以写为P(X=x1Y=y1)P(X=x_1|Y=y_1)。这个我们称为在给定Y=y1Y=y_1的情况下,X=x1X=x_1的条件概率。

有了以上的概念,我们可以写出概率论的两个基本规则:

P(X=x)=yP(X=x,Y=y)(2.22)P(X=x)=\sum_{y} P(X=x, Y=y)\tag{2.22}

P(X=x,Y=y)=P(Y=yX=x)P(X=x)(2.23)P(X=x, Y=y)=P(Y=y | X=x) P(X=x)\tag{2.23}

前者是求和法则,后者是乘积法则。稍微修改乘积法则的形式,我们得到了另一个有用的公式:

P(Y=yX=x)=P(X=x,Y=y)P(X=x)=P(X=xY=y)P(Y=y)P(X=x)(2.24)\begin{aligned} P(Y=y | X=x) &=\frac{P(X=x, Y=y)}{P(X=x)} \\ &=\frac{P(X=x | Y=y) P(Y=y)}{P(X=x)} \end{aligned}\tag{2.24}

这就是著名的贝叶斯公式。注意,它也适用于两个以上的变量:

P(Xi=xiY=y)=P(Y=yXi=xi)P(Xi=xi)j=1nP(Y=yXj=xj)P(Xj=xj)(2.25)P\left(X_{i}=x_{i} | Y=y\right)=\frac{P\left(Y=y | X_{i}=x_{i}\right) P\left(X_{i}=x_{i}\right)}{\sum_{j=1}^{n} P\left(Y=y | X_{j}=x_{j}\right) P\left(X_{j}=x_{j}\right)}\tag{2.25}

利用乘积法则,我们可以推出链式法则:

P(X1=x1,,Xn=xn)=P(X1=x1)i=2nP(Xi=xiX1=x1,,Xi1=xi1)(2.26)\begin{array}{l} P\left(X_{1}=x_{1}, \cdots, X_{n}=x_{n}\right) \\ =P\left(X_{1}=x_{1}\right) \prod_{i=2}^{n} P\left(X_{i}=x_{i} | X_{1}=x_{1}, \cdots, X_{i-1}=x_{i-1}\right) \end{array}\tag{2.26}

其中X1,X2,...,XnX_1,X_2,...,X_nnn个随机变量。

在概率分布P(x)P(x)下某个函数f(x)f(x)的平均值(其中xx是某个随机变量的值)称为f(x)f(x)期望。对于离散分布,可以写成:

E[f(x)]=xP(x)f(x)(2.27)\mathbb{E}[f(x)]=\sum_{x} P(x) f(x)\tag{2.27}

f(x)=xf(x)=x时,E[x]\mathbb{E}[x]代表xx的期望。

为了测量f(x)f(x)在其均值Ef(x)\mathbb{E}{f(x)}周围的离散程度,我们引入了方差:

Var(f(x))=E[(f(x)E[f(x)])2]=E[f(x)2]E[f(x)]2(2.28)\begin{aligned} \operatorname{Var}(f(x)) &=\mathbb{E}\left[(f(x)-\mathbb{E}[f(x)])^{2}\right] \\ &=\mathbb{E}\left[f(x)^{2}\right]-\mathbb{E}[f(x)]^{2} \end{aligned}\tag{2.28}

标准差是方差的平方根。在某种程度上,协方差表示两个变量同时变化的程度:

Cov(f(x),g(y))=E[(f(x)E[f(x)])(g(y)E[g(y)])](2.29)\operatorname{Cov}(f(x), g(y))=\mathbb{E}[(f(x)-\mathbb{E}[f(x)])(g(y)-\mathbb{E}[g(y)])]\tag{2.29}

协方差越大,表明f(x)f(x)g(y)g(y)之间的相关性越高。

2.2.2 概率分布

概率分布描述了一个或多个随机变量在每个状态下的概率。下面列出了几个在机器学习领域有用的发行版。

高斯分布: 它也被称为正态分布,可以表示为:

N(xμ,σ2)=12πσ2exp(12σ2(xμ)2)(2.30)N\left(x | \mu, \sigma^{2}\right)=\sqrt{\frac{1}{2 \pi \sigma^{2}}} \exp \left(-\frac{1}{2 \sigma^{2}}(x-\mu)^{2}\right)\tag{2.30}

其中,μ\mu是变量xx的均值,σ2\sigma^2是方差。

伯努利分布: 随机变量XX可以是0或1,概率是P(X=1)=pP(X=1)=p。那么分布函数是

P(X=x)=px(1p)1x,x{0,1}(2.31)P(X=x)=p^{x}(1-p)^{1-x}, x \in\{0,1\}\tag{2.31}

很明显E(X)=pE(X)=pVar(X)=p(1p)Var(X)=p(1-p)

二项分布: 重复伯努利实验NN次,X=1X=1的次数用YY表示

P(Y=k)=(Nk)pk(1p)Nk(2.32)P(Y=k)=\left(\begin{array}{l} N \\ k \end{array}\right) p^{k}(1-p)^{N-k}\tag{2.32}

二项分布满足E(Y)=np,Var(Y)=np(1p)E(Y)=np,Var(Y)=np(1-p)

拉普拉斯分布: 拉普拉斯分布被描述为

P(xμ,b)=12bexp(xμb)(2.33)P(x | \mu, b)=\frac{1}{2 b} \exp \left(-\frac{|x-\mu|}{b}\right)\tag{2.33}

2.3 图论

图是GNNs研究的基础课题。因此,要对GNN有一个全面的了解,就需要用到基础图论。

2.3.1 基本概念

图通常用G=(V,E)G=(V,E)表示;其中VV是顶点的集合,EE是边的集合。

e=u,ve=u,v有两个端点u,vu,v,可以认为是由ee连接的。在这种情况下,uu被称为vv邻居,换句话说,这两个顶点是相邻的。注意,边可以是有向的也可以是无向的。
如果所有边都是有向的,则将图称为有向图;如果所有边都是无向的,则将图称为无向图。
顶点vv的度,由d(v)d(v)表示,是与vv连接的边数。

2.3.2 图的代数表示

有一些有用的图代数表示形式,如下所示。

邻接矩阵: 对于有nn个顶点的简单图G=(V,E)G=(V,E),可以用邻接矩阵ARn×nA\in \mathbb{R}^{n\times n}来描述,其中:

Aij={1 if {vi,vj}E and ij0 otherwise A_{i j}=\left\{\begin{array}{ll} 1 & \text { if }\left\{v_{i}, v_{j}\right\} \in E \text { and } i \neq j \\ 0 & \text { otherwise } \end{array}\right.

显然,当G是无向图时,这种矩阵是对称矩阵。

度数矩阵: 对于有nn个顶点的图G=(V,E)G=(V,E),其度数矩阵DRn×nD\in \mathbb{R}^{n\times n}
是对角矩阵,其中

Dii=d(vi)D_{ii}=d(v_i)

拉普拉斯矩阵: 对于有nn个顶点的图G=(V,E)G=(V,E),如果我们认为GG中的所有边都是无向的,
然后其拉普拉斯矩阵LRn×nL\in \mathbb{R}^{n\times n}可以定义为:

L=DAL=D-A

因此,我们具有以下元素:

Lij={d(vi) if i=j1 if {vi,vj}E and ij0 otherwise L_{i j}=\left\{\begin{array}{ll} d\left(v_{i}\right) & \text { if } i=j \\ -1 & \text { if }\left\{v_{i}, v_{j}\right\} \in E \text { and } i \neq j \\ 0 & \text { otherwise } \end{array}\right.

注意,该图被认为是邻接矩阵的无向图。

对称归一化拉普拉斯算子: 对称归一化拉普拉斯算子定义为:

Lsym=D12LD12=ID12AD12\begin{aligned} L^{s y m} &=D^{-\frac{1}{2}} L D^{-\frac{1}{2}} \\ &=I-D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \end{aligned}

元素由下式给出:

Lijsym={1 if i=j and d(vi)01d(vi)d(vj) if {vi,vj}E and ij0 otherwise L_{i j}^{s y m}=\left\{\begin{array}{ll} 1 & \text { if } i=j \text { and } d\left(v_{i}\right) \neq 0 \\ -\frac{1}{\sqrt{d\left(v_{i}\right) d\left(v_{j}\right)}} & \text { if }\left\{v_{i}, v_{j}\right\} \in E \text { and } i \neq j \\ 0 & \text { otherwise } \end{array}\right.

随机游走归一化的拉普拉斯算子: 它定义为:

Lrw=D1L=ID1AL^{r w}=D^{-1} L=I-D^{-1} A

可以通过以下方式计算元素:

Lijrw={1 if i=j and d(vi)01d(vi) if {vi,vj}E and ij0 otherwise L_{i j}^{r w}=\left\{\begin{array}{ll} 1 & \text { if } i=j \text { and } d\left(v_{i}\right) \neq 0 \\ -\frac{1}{d\left(v_{i}\right)} & \text { if }\left\{v_{i}, v_{j}\right\} \in E \text { and } i \neq j \\ 0 & \text { otherwise } \end{array}\right.

关联矩阵: 表示图的另一个常用矩阵是关联矩阵。对于有nn个顶点和mm条边的
G=(V,E)G=(V,E),对应的关联矩阵MRn×mM\in \mathbb{R}^{n\times m},其中:

Mij={1 if k s.t ej={vi,vk}1 if k s.t ej={vk,vi}0 otherwise. M_{i j}=\left\{\begin{array}{ll} 1 & \text { if } \exists k \text { s.t } e_{j}=\left\{v_{i}, v_{k}\right\} \\ -1 & \text { if } \exists k \text { s.t } e_{j}=\left\{v_{k}, v_{i}\right\} \\ 0 & \text { otherwise. } \end{array}\right.

对于无向图,对应的关联矩阵满足这个条件

Mij={1 if k s.t ej={vi,vk}0 otherwise M_{i j}=\left\{\begin{array}{ll} 1 & \text { if } \exists k \text { s.t } e_{j}=\left\{v_{i}, v_{k}\right\} \\ 0 & \text { otherwise } \end{array}\right.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章