图神经网络基础

  1. 拉普拉斯矩阵
    1.1 图的拉普拉斯矩阵L=D-A,其中D是顶点的度矩阵(对角矩阵),对角线上元素依次为各个顶点的度, A是图的邻接矩阵。如下图所示:
    在这里插入图片描述
    1.2 对称归一化的拉普拉斯矩阵
    L s y m = D − 1 / 2 L D − 1 / 2 = I − D − 1 / 2 A D − 1 / 2 L^{sym}=D^{-1/2}LD^{-1/2}=I-D^{-1/2}AD^{-1/2} Lsym=D1/2LD1/2=ID1/2AD1/2
    1.3 随机游走归一化的拉普拉斯矩阵
    L r w = D − 1 L = I − D − 1 A L^{rw}=D^{-1}L=I-D^{-1}A Lrw=D1L=ID1A

    易知拉普拉斯矩阵都是实对称矩阵,因此实对称矩阵必然可对角化,因此可以进行特征分解(特征分解,其充要条件为n阶方阵存在n个线性无关的特征向量)。图的拉普拉斯矩阵共有三个性质:

  • 对称矩阵一定n个线性无关的特征向量

  • 半正定矩阵的特征值一定非负

  • 对阵矩阵的特征向量相互正交,即所有特征向量构成的矩阵为正交矩阵

    因此拉普拉斯矩阵的特征值分解如下:
    L = U [ λ 1 ⋱ λ n ] U − 1 L=U\begin{bmatrix} \lambda _{1} & & \\ & \ddots & \\ & & \lambda _{n} \end{bmatrix}U^{-1} L=Uλ1λnU1
    其中 λ \lambda λ为特征值,U是正交矩阵,即: U U T = E UU^{T} = E UUT=E,所以上式特征值分解可以写成:
    L = U [ λ 1 ⋱ λ n ] U T L=U\begin{bmatrix} \lambda _{1} & & \\ & \ddots & \\ & & \lambda _{n} \end{bmatrix}U^{T} L=Uλ1λnUT

  1. 图的傅里叶变换
    传统的傅里叶变换公式: F ( ω ) = F [ f ( t ) ] = ∫ f ( t ) e − i ω t d t F(\omega )=\mathcal{F}[f(t)]=\int f(t)e^{-i\omega t}dt Fω=F[f(t)]=f(t)eiωtdt
    由于 e − i ω t e^{-i\omega t} eiωt满足: Δ e − i ω t = ∂ 2 ∂ t 2 e − i ω t = − ω 2 e − i ω t \Delta e^{-i\omega t}=\frac{\partial ^{2}}{\partial t^{2}}e^{-i\omega t}=-\omega ^{2}e^{-i\omega t} Δeiωt=t22eiωt=ω2eiωt类似于 A V = λ V AV=\lambda V AV=λV的特征方程。因此 e − i ω t e^{-i\omega t} eiωt就是 Δ \Delta Δ的特征函数, − ω 2 -\omega ^{2} ω2视为特征值。

    定义图的傅里叶变换: F ( λ l ) = f ^ ( λ l ) = ∑ i = 1 N f ( i ) u l ∗ ( i ) F(\lambda _{l})=\hat{f}(\lambda _{l})=\sum_{i=1}^{N}f(i)u_{l}^{*}(i) Fλl=f^(λl)=i=1Nf(i)ul(i),其中 f f f为图上的N维向量, f ( i ) f(i) f(i)与图的顶点一一对应。 u l ∗ ( i ) u_{l}^{*}(i) ul(i)表示第 l l l特征向量的第 i i i个分量, ∗ * 为共轭。推广到矩阵形式:
    ( f ^ ( λ 1 ) f ^ ( λ 2 ) ⋮ f ^ ( λ N ) ) = ( u 1 ( 1 ) u 1 ( 2 ) ⋯ u 1 ( N ) u 2 ( 1 ) u 2 ( 2 ) ⋯ u 2 ( N ) ⋮ ⋮ ⋱ ⋮ u N ( 1 ) u N ( 2 ) ⋯ u N ( N ) ) ( f ( 1 ) f ( 2 ) ⋮ f ( N ) ) \begin{pmatrix} \hat{f}(\lambda _{1})\\ \hat{f}(\lambda _{2})\\ \vdots \\ \hat{f}(\lambda _{N}) \end{pmatrix}=\begin{pmatrix} u_{1}(1) &u_{1}(2) & \cdots &u_{1}(N) \\ u_{2}(1)& u_{2}(2) & \cdots & u_{2}(N)\\ \vdots & \vdots & \ddots & \vdots \\ u_{N}(1)& u_{N}(2) & \cdots & u_{N}(N) \end{pmatrix}\begin{pmatrix} f(1)\\ f(2)\\ \vdots \\ f(N) \end{pmatrix} f^(λ1)f^(λ2)f^(λN)=u1(1)u2(1)uN(1)u1(2)u2(2)uN(2)u1(N)u2(N)uN(N)f(1)f(2)f(N)
    即为: f ^ = U T f \hat{f}=U^{T}f f^=UTf

    类似的,传统傅里叶逆变换如下公式: F − 1 ( ω ) = 1 2 π ∫ f ( t ) e i ω t d t F^{-1}(\omega )=\frac{1}{2\pi }\int f(t)e^{i\omega t}dt F1ω=2π1f(t)eiωtdt,定义图的傅立叶逆变换的矩阵形式为: f = U f ^ f=U\hat{f} f=Uf^

  2. 图卷积基础GCN
    由于空域上的卷积等价于频域上的乘积,即:
    f ∗ h = F [ f ^ ( ω ) h ^ ( ω ) ] = 1 2 π ∫ f ^ ( ω ) h ^ ( ω ) e i ω t d w f*h=\mathcal{F}[\hat{f}(\omega )\hat{h}(\omega )]=\frac{1}{2\pi }\int \hat{f}(\omega )\hat{h}(\omega )e^{i\omega t}dw fh=F[f^(ω)h^(ω)]=2π1f^(ω)h^(ω)eiωtdw,
    因此利用图的傅里叶变换进行如下推导:

    h h h的傅里叶变换写成对角矩阵的形式: ( h ( λ 1 ) ^ ⋱ h ( λ n ) ^ ) \begin{pmatrix} \hat{h(\lambda _{1})}& & \\ & \ddots & \\ & & \hat{h(\lambda _{n})} \end{pmatrix} h(λ1)^h(λn)^,则 f ^ ( ω ) h ^ ( ω ) = ( h ( λ 1 ) ^ ⋱ h ( λ n ) ^ ) U T f \hat{f}(\omega )\hat{h}(\omega )=\begin{pmatrix} \hat{h(\lambda _{1})}& & \\ & \ddots & \\ & & \hat{h(\lambda _{n})} \end{pmatrix}U^{T}f f^(ω)h^(ω)=h(λ1)^h(λn)^UTf,接下来求逆变换,则 f ∗ h = U ( h ( λ 1 ) ^ ⋱ h ( λ n ) ^ ) U T f f*h=U\begin{pmatrix} \hat{h(\lambda _{1})}& & \\ & \ddots & \\ & & \hat{h(\lambda _{n})} \end{pmatrix}U^{T}f fh=Uh(λ1)^h(λn)^UTf,很多论文也写成如下形式: f ∗ h = U ( ( U T h ) ⨀ ( U T f ) ) f*h=U((U^{T}h)\bigodot(U^{T}f)) fh=U((UTh)(UTf)),其中 ⨀ \bigodot 为Hadamard product。

  3. 神经网络中的图卷积
    由于在神经网络中我们需要对卷积核的参数进行更新优化进而达到学习的目的,在图卷积中我们也需要类似的参数。

    第一代GCN就把 d i a g ( h ( λ l ) ^ ) diag(\hat{h(\lambda _{l})}) diag(h(λl)^)直接作为卷积核,对角线上的参数进行更新学习。然而这种方法缺陷太多,包括:

    • O ( n 2 ) O(n^{2}) O(n2)的计算复杂度,
    • 卷积核需要n个参数
    • 卷积核不具备spatial localization(啥意思?)

    第二代GCN将 h ( λ l ) ^ \hat{h(\lambda _{l})} h(λl)^设计成了 ∑ j = 0 K α j λ l j \sum_{j=0}^{K}\alpha _{j}\lambda _{l}^{j} j=0Kαjλlj,即
    ∑ j = 0 K α j Λ j = ( ∑ j = 0 K α j λ 1 j ⋱ ∑ j = 0 K α j λ n j ) \sum_{j=0}^{K}\alpha _{j}\Lambda ^{j}=\begin{pmatrix} \sum_{j=0}^{K}\alpha _{j}\lambda _{1}^{j} & & \\ & \ddots & \\ & &\sum_{j=0}^{K}\alpha _{j}\lambda _{n}^{j} \end{pmatrix} j=0KαjΛj=j=0Kαjλ1jj=0Kαjλnj
    进而导出 U ∑ j = 0 K α j Λ j U T = ∑ j = 0 K α j U Λ j U T = ∑ j = 0 K α j L j U\sum_{j=0}^{K}\alpha _{j}\Lambda ^{j}U^{T}=\sum_{j=0}^{K}\alpha _{j}U\Lambda ^{j}U^{T}=\sum_{j=0}^{K}\alpha _{j}L^{j} Uj=0KαjΛjUT=j=0KαjUΛjUT=j=0KαjLj,好处包括:

    • 卷积核有K个参数,降低复杂度
    • 矩阵变换后不需要进行特征分解,可以直接利用拉普拉斯矩阵,但复杂度还是 O ( n 2 ) O(n^{2}) O(n2)
    • K为感受野,卷积核具有很好的spatial localization
      在这里插入图片描述
      在这里插入图片描述

    切比雪夫多项式进复杂度。具体不细说…

  4. 图注意力网络GAN
    首先计算注意力系数,即对于定点 i i i,计算他的邻居们( j ∈ N i j\in N_{i} jNi)和自己的相关系数: e i j = a ( [ W h i ∣ ∣ W h j ] ) e_{ij}=a([Wh_{i}||Wh_{j}]) eij=a([WhiWhj]),其中W是线性映射,体现对特征的增强。 [ . ∣ ∣ . ] [.||.] [..]指对变换后的特征进行拼接,最后 a a a将拼接的特征映射到一个实数上。这样,相关性的学习就等价于 W W W a a a的学习。有了相关系数后,对其使用softmax得到注意力系数,公式如下:
    α i j = e x p ( L e a k y R e L U ( e i j ) ) ∑ k ∈ N i e x p ( L e a k y R e L U ( e i k ) ) \alpha _{ij}=\frac{exp(LeakyReLU(e_{ij}))}{\sum_{k\in N_{i}}^{}exp(LeakyReLU(e_{ik}))} αij=kNiexp(LeakyReLU(eik))exp(LeakyReLU(eij))
    得到注意力系数后,对特征加权求和。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值