图神经网络笔记(二)——卷积图神经网络概述

文章目录

    • 基于谱分解的方法
      • Spectral Network
      • ChebNet
      • GCN
      • AGCN(Adaptive GCN)
    • 基于空间结构的方法
      • Neural FP
      • PATCHY-SAN
      • DGCN
      • LGCN
      • GraphSAGE

  • 卷积图神经网络主要分为两类:
    • 1)基于谱分解的方法;
    • 2)基于空间结构的方法;

基于谱分解的方法

  • 四种经典模型:Spectral Network, ChebNet, GCN, AGCN

Spectral Network

  • Joan Bruna等人14年提出,通过计算图的拉普拉斯矩阵的特征分解,在傅里叶域中定义卷积运算。该运算可以定义为信号 x x x与一个卷积核 g θ g_{\theta} gθ的乘积:
    • g θ ★ x = U g θ ( Λ ) U T x g_{\theta}\bigstar x = Ug_{\theta}(\Lambda )U^{T}x gθx=Ugθ(Λ)UTx
    • U U U是归一化拉普拉斯矩阵的特征向量组成的矩阵,即 L = I N − D 1 2 A D − 1 2 = U Λ U T L=I_{N}-D^{\frac{1}{2}}AD^{- \frac{1}{2}}=U\Lambda U^{T} L=IND21AD21=UΛUT
    • D D D表示图的度矩阵, A A A表示邻接矩阵, Λ \Lambda Λ表示特征值的对角矩阵。

ChebNet

  • 11年David Hammond等人提出用切比雪夫多项式的前K阶 T k ( x ) T_{k}(x) Tk(x)逼近 g θ ( Λ ) g_{\theta}(\Lambda) gθ(Λ)

    • g θ ★ x ≈ ∑ k = 0 K θ k T k ( L ~ ) x g_{\theta}\bigstar x \approx \sum_{k=0}^{K}\theta_{k}T_{k}(\tilde{L})x gθxk=0KθkTk(L~)x
    • 切比雪夫多项式: T k ( x ) = 2 x T k − 1 ( x ) − T k − 2 ( x ) T_{k}(x)=2xT_{k-1}(x)-T_{k-2}(x) Tk(x)=2xTk1(x)Tk2(x),其中 T 0 ( x ) = 1 , T 1 ( x ) = x T_{0}(x)=1, T_{1}(x)=x T0(x)=1,T1(x)=x
    • L ~ = 2 λ m a x L − I N \tilde{L}=\frac{2}{\lambda_{max}}L-I_{N} L~=λmax2LIN λ m a x \lambda_{max} λmax L L L的最大特征值, θ \theta θ是切比雪夫多项式系数组成的向量。
  • 16年Michael Defferrard等人用上述的K跳卷积定义图上的卷积,提出ChebNet,省去了计算拉普拉斯矩阵特征向量的过程。

GCN

  • 17年,Thomas Kipf和Max Welling在ChebNet的基础上将层级运算的K限制为1,以此缓解模型在节点的度分布范围较大的图上存在的局部结构过拟合的问题。不仅如此, 假定 λ m a x ≈ 2 \lambda_{max}\approx 2 λmax2,公式可简化为:

    • g θ ′ ★ x ≈ θ 0 ′ x + θ 1 ′ ( L − I N ) x = θ 0 ′ x − θ 1 ′ D − 1 2 A D − 1 2 x g_{\theta^{'}}\bigstar x \approx \theta_{0}^{'}x+\theta_{1}^{'}(L-I_{N})x=\theta_{0}^{'}x-\theta_{1}^{'}D^{-\frac{1}{2}}AD^{-\frac{1}{2}}x gθxθ0x+θ1(LIN)x=θ0xθ1D21AD21x
    • 其中 θ 0 ′ \theta_{0}^{'} θ0 θ 1 ′ \theta_{1}^{'} θ1可调节,将其限制为 θ = θ 0 ′ = − θ 1 ′ \theta=\theta_{0}^{'}=-\theta_{1}^{'} θ=θ0=θ1,公式最终简化为: g θ ★ x ≈ θ ( I N + D − 1 2 A D − 1 2 ) x g_{\theta} \bigstar x \approx \theta(I_{N}+D^{-\frac{1}{2}}AD^{-\frac{1}{2}})x gθxθ(IN+D21AD21)x
  • 若使用上述方法在节点上迭代执行,运算可能会导致数值的不稳定以及梯度消失或爆炸问题。因此,Renormalization(重归一化)被引入。

    • I N + D − 1 2 A D − 1 2 → D ~ − 1 2 A ~ D ~ − 1 2 I_{N}+D^{-\frac{1}{2}}AD^{-\frac{1}{2}}\rightarrow \tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}} IN+D21AD21D~21A~D~21
    • A ~ = A + I N \tilde{A}=A+I_{N} A~=A+IN D ~ i i = ∑ j A ~ j j \tilde{D}_{ii}=\sum_{j}\tilde{A}_{jj} D~ii=jA~jj
    • Z = D ~ − 1 2 A ~ D ~ − 1 2 X Θ Z=\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}X\Theta Z=D~21A~D~21XΘ

AGCN(Adaptive GCN)

  • 为学习不同节点之间可能存在的隐式关系,AGCN被提出。AGCN可以学习“残差”图拉普拉斯矩阵 L r e s L_{res} Lres并将其添加到原始的拉普拉斯矩阵中: L ^ = L + α L r e s \hat{L}=L+\alpha L_{res} L^=L+αLres

    • L r e s = I − D ^ − 1 2 A ^ D ^ − 1 2 L_{res}=I-\hat{D}^{-\frac{1}{2}}\hat{A}\hat{D}^{-\frac{1}{2}} Lres=ID^21A^D^21
    • D ^ = d e g r e e ( A ^ ) \hat{D}=degree(\hat{A}) D^=degree(A^) A ^ \hat{A} A^是通过一个学习获得的度量指标计算得到的。
  • AGCN使用广义的Mahalanobis distance(马哈诺比斯距离)计算节点距离:

    • D ( x i , x j = ( x i − x j ) T M ( x i − x j ) ) D(x_{i}, x_{j}=\sqrt{(x_{i}-x_{j})^{T}M(x_{i}-x_{j})}) D(xi,xj=(xixj)TM(xixj) )
    • M = W d W d T M=W_{d}W_{d}^{T} M=WdWdT,是一个学习得到的矩阵。 W d W_{d} Wd是自适应空间的转换基础。
  • AGCN计算高斯核并将其归一化,以获得密集邻接矩阵 A ^ \hat{A} A^

    • G x i , x j = e x p ( − D ( x i , x j / ( 2 σ 2 ) ) G_{x_{i},x_{j}}=exp(-D(x_{i},x_{j}/(2\sigma^{2})) Gxi,xj=exp(D(xi,xj/(2σ2))

基于空间结构的方法

  • 谱方法的卷积核都依赖于拉普拉斯矩阵的特征基向量,而后者取决于图的结构。这意味着针对特定结构训练的模型不能直接用于具有不同结构的图,即模型泛化性较差。基于空间结构的方法则直接在图上定义卷积运算,从而针对在空间上相邻的邻域进行运算。这种方法的主要挑战是针对大小不同的邻域卷积运算并保持CNN的局部不变性。

Neural FP

  • David Duvenaud等人15年提出针对具有不同度的节点使用不同的权重矩阵:

    • x = h v t − 1 + ∑ i = 1 ∣ N v ∣ h i t − 1 x=h_{v}^{t-1}+\sum_{i=1}^{|N_{v}|}h_{i}^{t-1} x=hvt1+i=1Nvhit1
    • h v t = σ ( x W t ∣ N v ∣ ) h_{v}^{t}=\sigma(xW_{t}^{|N_{v}|}) hvt=σ(xWtNv)
    • W t ∣ N v ∣ W_{t}^{|N_{v}|} WtNv是第 t t t层、度为 ∣ N v ∣ |N_{v}| Nv的节点的权重矩阵, N v N_{v} Nv表示节点 v v v的相邻节点集合, h v t h_{v}^{t} hvt是节点 v v v在第 t t t层的嵌入表示。
  • Neural FP首先将相邻节点连同本身的嵌入表示累加,然后使用权重矩阵进行转换。但在节点具有多种度的大规模图上,会由于参数量太大而难以应用。

PATCHY-SAN

  • 该模型首先为每个节点选择k个相邻节点并归一化,然后将这些经过归一化的相邻节点作为感受野进行卷积。主要步骤如下:
    1. 选择节点序列 模型并不会处理途中所有的节点,而会先通过节点标注来获得节点的顺序,然后使用s大小的步长在序列中选择节点,直到选中w个节点为止。
    2. 选择相邻节点 对选中的每一个节点进行宽度优先搜索,以选取k个相邻节点。首先选取1跳的相邻节点,然后再考虑更远的节点,直到选取的相邻节点数达到k为止。
    3. 图归一化 为感受野中的节点排序,以便从无序的图空间映射到矢量空间。为不同的图中的两个具有相似结构地位的节点分配相似的相对位置。
    4. 应用卷积架构 在归一化后,使用CNN进行卷积。

DGCN

  • 模型使用两个卷积网络来捕获图的局部一致性和全局一致性,并采用无监督损失函数来聚合两部分。
    • 第一部分对局部一致性建模(相邻的节点可能有相似的标签): Z = D ~ − 1 2 A ~ D ~ − 1 2 X Θ Z=\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}X\Theta Z=D~21A~D~21XΘ
    • 第二部分对全局一致性建模(具有相似上下文的节点可能具有相似的标签):使用positive pointwise mutual information matrix(PPMI)正向点互信息矩阵替换邻接矩阵。 H ′ = σ ( D p − 1 2 X p D p − 1 2 H Θ ) H^{'}=\sigma(D_{p}^{-\frac{1}{2}}X_{p}D_{p}^{-\frac{1}{2}}H\Theta) H=σ(Dp21XpDp21HΘ) X p X_{p} Xp表示PPMI矩阵, D p D_{p} Dp X p X_{p} Xp的对角度矩阵, σ \sigma σ是非线性激活函数。
  • 损失函数聚合两个卷积结果: L = L 0 ( C o n v A ) + λ ( t ) L r e g ( C o n v A , C o n v P ) L=L_{0}(Conv_{A})+\lambda(t)L_{reg}(Conv_{A},Conv_{P}) L=L0(ConvA)+λ(t)Lreg(ConvA,ConvP)。其中, C o n v A Conv_{A} ConvA表局部一致性卷积, C o n v P Conv_{P} ConvP表全局一致性卷积。 λ ( t ) \lambda(t) λ(t)是调节两部分损失的动态权重。
  • L 0 ( C o n v A ) L_{0}(Conv_{A}) L0(ConvA)是结合节点标签的监督损失函数。假设有 c c c类标签,那么 Z A Z^{A} ZA是局部一致性卷积的输出矩阵, Z ^ A \hat{Z}^{A} Z^A是该输出矩阵经过softmax运算后的结果。 y L y_{L} yL Y Y Y分别是训练数据下标和样本标签。
    • L 0 ( C o n v A ) = − 1 ∣ y L ∣ ∑ l ∈ y L ∑ i = 1 c Y l , i l n ( Z ^ l , i A ) ) L_{0}(Conv_{A})=-\frac{1}{|y_{L}|}\sum_{l\in y_{L}}\sum_{i=1}^{c}Y_{l,i}ln(\hat{Z}_{l,i}^{A})) L0(ConvA)=yL1lyLi=1cYl,iln(Z^l,iA))
  • L r e g ( C o n v A , C o n v P ) L_{reg}(Conv_{A},Conv_{P}) Lreg(ConvA,ConvP)是衡量 Z ^ P , Z ^ A \hat{Z}^{P}, \hat{Z}^{A} Z^P,Z^A之间差异的无监督损失函数。 Z ^ P \hat{Z}^{P} Z^P是局部一致性卷积输出经过softmax的运算结果。
    • L r e g ( C o n v A , C o n v P ) = 1 n ∑ i = 1 n ∥ Z ^ i , : P − Z ^ i , : A ∥ L_{reg}(Conv_{A},Conv_{P})=\frac{1}{n}\sum_{i=1}^{n}\left \| \hat{Z}_{i,:}^{P}-\hat{Z}_{i,:}^{A} \right \| Lreg(ConvA,ConvP)=n1i=1nZ^i,:PZ^i,:A

LGCN

  • 网络基于可学习得图卷积网络层(learnable graph convolutinal layer, LGCL)和子图训练策略。LGCL使用CNN作为聚合器,他对节点的邻域矩阵进行最大池化获取前k个特征元素,然后应用一维CNN计算隐表示。计算过程如下:

    • H ^ t = g ( H t , A , k ) \hat{H}_{t}=g(H_{t},A,k) H^t=g(Ht,A,k)
    • H t + 1 = c ( H ^ t ) H_{t+1}=c(\hat{H}_{t}) Ht+1=c(H^t)
    • A A A为邻接矩阵, g ( ⋅ ) g(\cdot) g()是对前k个节点的选取操作, c ( ⋅ ) c(\cdot) c()是常规的一维CNN。
  • 模型使用对前k个节点的选取操作来收集每个节点的信息。对给定的节点,首先收集其相邻节点的特征。然后,选择每一维最大的k个节点值,也就是将没一列中的值排序并选择前k个值。之后将自身的节点嵌入表示插入到第一行得到矩阵,并用一维CNN来聚合特征。

GraphSAGE

  • 一个通用的归纳推理框架,通过采样和聚合相邻节点的特征来生成节点的嵌入表示。传播过程为:
    • h N v t = A G G R E G A T E t ( { h u t − 1 , ∀ u ∈ N v } ) h_{N_{v}}^{t}=AGGREGATE_{t}(\left \{ h_{u}^{t-1}, \forall u \in N_{v} \right \}) hNvt=AGGREGATEt({hut1,uNv})
    • h v t = σ ( W t ⋅ [ h v t − 1 ∣ ∣ h N v t ] ) h_{v}^{t}=\sigma(W^{t}\cdot [h_{v}^{t-1}||h_{N_{v}}^{t}]) hvt=σ(Wt[hvt1hNvt])
  • 不使用所有的相邻节点,而是均匀采样固定数量的相邻节点。Hamilton等人提出了以下三种聚合函数的具体实现:
    • 均值聚合器: h v t = σ ( W ⋅ M E A N ( { h v t − 1 } ∪ { h v t − 1 } ) ) h_{v}^{t}=\sigma(W\cdot MEAN(\left \{ h_{v}^{t-1} \right \} \cup \left \{ h_{v}^{t-1} \right \})) hvt=σ(WMEAN({hvt1}{hvt1}))
    • LSTM聚合器:基于LSTM实现,具有更强的表达能力,但由于LSTM的输入是有序的,因此不同的排列会产生不同的结果。
    • 池化聚合器:将相邻节点的隐状态输入一个全连接层并进行最大池化, h N v t = m a x ( { σ ( W p o o l h u t − 1 + b ) , ∀ u ∈ N v } ) h_{N_{v}}^{t}=max(\left \{ \sigma (W_{pool}h_{u}^{t-1}+b), \forall u \in N_{v} \right \}) hNvt=max({σ(Wpoolhut1+b),uNv})

注:笔记参考自书籍《图神经网络导论》,刘志远,周界,李泺秋。如有侵权,联系即删。

你可能感兴趣的:(deep,learning,神经网络,机器学习,深度学习)