GCN学习笔记

  • 1 基于谱域的GCN
    • 1.1 知识要点:
    • 1.2 Spectral-based models
      • 1.2.1 Spectral Network
      • 1.2.2 ChebNet(2016)
      • 1.2.3 GCN(2017)
      • 1.2.4 AGCN(2018)
      • 1.2.5 DGCN(2018)
      • 1.2.6 GWNN
      • 1.2.7 小结
  • 2 基于空间的GCN
    • 2.1 知识要点
    • 2.2 Spatial-based models
      • 2.2.1 Neural FPs
      • 2.2.2 DCNN
      • 2.2.2 PATCHY-SAN
      • 2.2.3 GraphSAGE
      • 2.2.4 LGCN
      • 2.2.5 小结
  • 3 基于注意力机制的GCN
    • 3.1 知识要点
    • 3.2 Attention-based spatial models
      • 3.2.1 GAT
      • 3.2.2 GaAN
  • 参考文献:

1 基于谱域的GCN

1.1 知识要点:

在spectral-based GCN模型中,会将每个节点的输入看作是信号,并且在进行卷积操作之前,会利用转置后的归一化拉普拉斯矩阵的特征向量将节点的信号进行傅里叶变换,卷积完了之后再用归一化拉普拉斯矩阵的特征向量转换回来。其中,将信号进行傅里叶变换的公式如下:
F(x)=UTxF(x)=U^TxF(x)=UTx
F−1(x)=UxF^{-1}(x) = UxF−1(x)=Ux
其中,UUU为归一化拉普拉斯矩阵L=IN−D−1/2AD−1/2L=I_N-D^{-1/2}AD^{-1/2}L=IN​−D−1/2AD−1/2的特征向量。基于卷积理论,卷积操作被定义为:
gx=F−1(F(g)F(x))=U(UTgUTx),g x=F^{-1}(F(g) F(x))=U(U^TgU^Tx),gx=F−1(F(g)F(x))=U(UTgUTx),
其中,UTgU^TgUTg为谱域的过滤器,若将UTgU^TgUTg简化为一个可学习的对角矩阵gwg_wgw​,则有
gx=UgwUTxg x=Ug_wU^Txgx=Ugw​UTx.

1.2 Spectral-based models

1.2.1 Spectral Network

该模型的思想是直接将gwg_wgw​转换为一个参数对角矩阵gw=diag(w)g_w=diag(w)gw​=diag(w),这种策略显然是较为低效,且非空间定位的。

1.2.2 ChebNet(2016)

ChebNet的思想就是利用切比雪夫多项式来作为参数,得到
gx=∑k=0KwkTk(L~)xgx=\sum_{k=0}^K w_kT_k(\widetilde{L}) xgx=k=0∑K​wk​Tk​(L)x,
其中,Tk(x)=2xTk−1(x)−Tk−2(x),T0(x)=1,T1(x)=xT_k(x) =2xT_{k-1}(x)-T_{k-2}(x), T_0(x)=1,T_1(x)=xTk​(x)=2xTk−1​(x)−Tk−2​(x),T0​(x)=1,T1​(x)=x,L~=2λmaxL−IN\widetilde{L}=\frac{2}{\lambda_{max}}L-I_NL=λmax​2​L−IN​,λmax\lambda_{max}λmax​为LLL的最大特征值。

1.2.3 GCN(2017)

GCN在ChebNet的基础上,令K=1K=1K=1,λmax≈2\lambda_{max} \approx 2λmax​≈2,得到
gwx=w0x+w1L~xg_w x = w_0x+w_1 \widetilde{L} xgw​x=w0​x+w1​Lx,其中,L~\widetilde{L}L被简化为了D−1/2AD−1/2D^{-1/2}AD^{-1/2}D−1/2AD−1/2,得到
gwx=w(IN+D−1/2AD−1/2)xg_w x=w(I_N+D^{-1/2}AD^{-1/2})xgw​x=w(IN​+D−1/2AD−1/2)x,令IN+D−1/2AD−1/2=D~−1/2A~D~−1/2I_N+D^{-1/2}AD^{-1/2} = \widetilde{D}^{-1/2}\widetilde{A}\widetilde{D}^{-1/2}IN​+D−1/2AD−1/2=D−1/2AD−1/2,得到
H=D~−1/2A~D~−1/2XWH=\widetilde{D}^{-1/2}\widetilde{A}\widetilde{D}^{-1/2}XWH=D−1/2AD−1/2XW
其中,X∈RN×FX \in R^{N \times F}X∈RN×F为输入,即节点的特征矩阵,W∈RF×F′W\in R^{F \times F'}W∈RF×F′为参数,F′F'F′为第一层输出size。

1.2.4 AGCN(2018)

AGCN的出发点为:除了已有的节点之间的关系外,在处理不同的任务时节点之间可能还会存在一些潜在的关系,这些信息是有价值的,但GCN则没有考虑这些信息。AGCN通过学得一个残差图拉普拉斯矩阵,并将其加入到拉普拉斯矩阵中来对图拉普拉斯矩阵进行补充。具体地,计算残差图拉普拉斯矩阵首先要计算节点之间的距离,由马氏距离计算得到

D(xi,xj)=(xi−xj)TM(xi−xj),D(x_i,x_j)=\sqrt{(x_i-x_j)^TM(x_i-x_j)},D(xi​,xj​)=(xi​−xj​)TM(xi​−xj​)​,
其中,M=WdWdTM=W_dW_d^TM=Wd​WdT​,WdW_dWd​为参数矩阵(注意:这里使用马氏距离是因为对图结构数据,欧式距离无法准确的度量数据之间的相似性);接着基于马氏距离进行高斯核的映射得到
G(xi,xj)=e−D(xi,xj)2σ2G(x_i,x_j)=e^{-\frac{D(x_i,x_j)}{2\sigma ^2}}G(xi​,xj​)=e−2σ2D(xi​,xj​)​
其中,G(xi,xj)G(x_i,x_j)G(xi​,xj​)为残差邻接矩阵AresA_{res}Ares​中第iii行,第jjj列的值,根据AresA_{res}Ares​可以计算出Lres=ID+Dres−12AresDres−12L_{res}=I_D+D_{res}^{-\frac{1}{2}}A_{res}D_{res}^{-\frac{1}{2}}Lres​=ID​+Dres−21​​Ares​Dres−21​​。对原始的图拉普拉斯矩阵进行补充调整,有
L^=L+αLres,\hat{L} = L+\alpha L_{res},L^=L+αLres​,其中,α\alphaα为自由参数。

AGCN最大的贡献就是上面这个残差图拉普拉斯矩阵,该矩阵很好地将潜在的节点关系引入了进来。基于此AGCN的结构如下:

SGC-LL: 传统的CNN中,第ttt层的输出是第t−1t-1t−1层所有特征映射的加和,其中特征映射都是用独立的滤波器计算出来的。这意味着新的特征不仅仅只是基于邻居节点建立的,同时也考虑了节点内其他的特征。但在图卷积中,为不同的节点特征创建或训练独立的拓扑结构是难以解释的。因此为了构建节点内和节点间的特征映射,加入了一个转换矩阵和一个bias向量 Y=(gθ(L^)X)W+bY = (g_{\theta}(\hat{L} )X)W+bY=(gθ​(L^)X)W+b,其中SGC-LL层的训练参数为M、W、b
Max pooling: 对于节点iii的第jjj个特征,经过maxpooling之后,该特征的值为其自身和其邻居节点中在该特征上的最大值,x^v(j)=max({xv(j),xi(j),})\hat{x}_v(j)=max(\{x_v(j),x_i(j),\})x^v​(j)=max({xv​(j),xi​(j),})。
Bilateral filtering: 该层用于防止过拟合的发生。
Graph gather: 一个用于表示图的嵌入向量,该向量中的第iii个元素是所有节点第iii个特征的值之和。

1.2.5 DGCN(2018)

DGCN(Dual-GCN)的出发点为:前人的工作只考虑了节点的局部信息(距离近的节点通常有相同的标签),但是没有考虑到全局信息(出现在类似背景下的节点通常有相同的标签)。作者通过引入一个PPMI矩阵来捕获节点的全局信息,其中每个输入样本都会经过两种类型的卷积神经网络。基于Karate club network的可视化展示如下

基于局部一致性的模型缺陷在于,其认为距离较近的节点更有可能包含相似的标签,如上图中(a)子图的节点8和节点30虽然相连,但他们属于不同的类别。子图(d)是利用GCN将节点进行了映射,然后用t-SNE进行降维后的可视化结果,可见节点8和节点30的位置非常接近。将邻接矩阵中A[30,8],A[8,30]设为0,可以明显的看到节点8和节点30的距离就远了很多。随之而来的一个问题就是:如何自动的减少这种类似情况的发生? DGCN就利用PPMI矩阵来捕获节点的全局信息来缓解这一问题。

首先,PPMI矩阵的计算流程如下:1)首先获得一个频率矩阵F,伪代码如下

Eq.(8)为 p(s(t+1)=xj∣s(t)=xi)=Ai,j∑jAi,jp(s(t+1)=x_j|s(t)=x_i)= \frac{A_{i,j}}{\sum_j A_{i,j}}p(s(t+1)=xj​∣s(t)=xi​)=∑j​Ai,j​Ai,j​​;
2)计算PPMI矩阵

本质上,DGCN其实就是让每个节点都经过两个卷积神经网络,一个是GCN,另一个就是将归一化图拉普拉斯矩阵替换为PPMI矩阵,并且在训练中这两个矩阵共享参数,结构如下

具体地,DGCN致力于解决半监督节点分类问题,其在损失函数中引入了一个正则项,得到损失函数为
Loss=L0+λ(t)Lreg,Loss=L_0+\lambda(t)L_{reg},Loss=L0​+λ(t)Lreg​,其中,L0=−1∣yL∣∑l∈yL∑i=1cYl,ilnZ^l,iAL_0=-\frac{1}{|y_L|}\sum_{l\in y_L}\sum_{i=1}^cY_{l,i}ln\hat{Z}_{l,i}^AL0​=−∣yL​∣1​∑l∈yL​​∑i=1c​Yl,i​lnZ^l,iA​,yLy_LyL​为给定标签的索引集合,YYY为真正的标签,ccc为类别总数。实际上就是一个交叉熵损失;Lreg=1n∑i=1n∣∣Z^i,:P−Z^i,:A∣∣2L_{reg}=\frac{1}{n}\sum_{i=1}^n||\hat{Z}_{i,:}^P-\hat{Z}_{i,:}^A||^2Lreg​=n1​∑i=1n​∣∣Z^i,:P​−Z^i,:A​∣∣2为正则化项,属于无监督学习,目的在于使ConvPConv_PConvP​预测出来的结果与ConvAConv_AConvA​的得结果相同。λ(t)\lambda(t)λ(t)的作用在于动态的调节学习率,使得损失函数一开始主要取决于监督学习项,然后再加大λ(t)\lambda(t)λ(t)使模型考虑ConvPConv_PConvP​的信息。

DGCN伪代码如下:

1.2.6 GWNN

GWNN将傅里叶变换替换为了wavelet变换,优点在于1)无需进行矩阵分解就可以得到图wavelet;2)图wavelet是系数且局部的,所以结果更好且解释性更强。

1.2.7 小结

AGCN和DGCN都是希望通过扩充图拉普拉斯矩阵来提高GCN的准确率,GWNN是希望了通过改变信号转换方式来提高性能。但是,以上这些spectral-based模型都是基于图结构的,当图结构发生改变后有需要进行重新训练。

2 基于空间的GCN

2.1 知识要点

基于空间的GCN直接将卷积定义在图上,其关键挑战在于如何在保证CNN的局部不变性情况下,针对不同大小邻域定义卷积操作。

2.2 Spatial-based models

2.2.1 Neural FPs

Nueral FPs为度不同的节点分别设置了不同的参数矩阵
t=hvt+∑u∈Nvhutt=h_v^t+\sum_{u \in N_v}h_u^tt=hvt​+u∈Nv​∑​hut​
hvt+1=σ(tW∣Nv∣t+1)h_v^{t+1}= \sigma(tW^{t+1}_{|N_v|})hvt+1​=σ(tW∣Nv​∣t+1​)
其中,W∣Nv∣t+1W^{t+1}_{|N_v|}W∣Nv​∣t+1​为t+1t+1t+1层节点度为∣Nv∣|N_v|∣Nv​∣的参数矩阵。其缺陷在于当该方法应用在了大规模网络时,计算复杂度会过高。

2.2.2 DCNN

DCNN利用转换矩阵来定义节点的邻域,在节点分类任务中,每个节点的diffusion表示为
H=f(WcP∗X)∈RN×K×F,H=f(W_c P^*X) \in R^{N \times K \times F},H=f(Wc​P∗X)∈RN×K×F,
其中,P∗={P,P2,P3,...,PK}P^*=\{P,P^2,P^3,...,P^K\}P∗={P,P2,P3,...,PK},PPP是由邻接矩阵得到的度归一化转换矩阵。

2.2.2 PATCHY-SAN

PATCHY-SAN的思想是提取每个节点固定大小的邻居节点集合,然后将该邻居网络作为CNN的感受野

2.2.3 GraphSAGE

GraphSAGE是一个经典的inductive模型,该模型的目的在于训练出一个邻居信息聚合器,以使其可以利用在其他网络当中。具体的,该方法通过在一个节点的邻域内采样和聚合特征来生成节点的嵌入表示
hNvt+1=AGGt+1({hut,u∈Nv})h^{t+1}_{N_v}=AGG_{t+1}(\{h^t_u, u \in N_v\})hNv​t+1​=AGGt+1​({hut​,u∈Nv​})
hvt+1=σ(Wt+1[hvt∣∣hNvt+1])h^{t+1}_v=\sigma(W^{t+1} [h^t_v || h^{t+1}_{N_v}] )hvt+1​=σ(Wt+1[hvt​∣∣hNv​t+1​])
其中,这里的aggregator可以是均值、LSTM或者池化。

2.2.4 LGCN

LGCN将CNN视为一个aggregator,通过在节点的邻域矩阵上进行最大池化操作以获取top-k特征元素,然后利用一维的CNN来计算隐藏层的表示。

2.2.5 小结

基于空间的方法在利用领域信息上的技巧比较多。此外,这类方法中不再只局限于transductive,有更多的inductive方法。

3 基于注意力机制的GCN

3.1 知识要点

注意力机制在机器翻译、机器阅读等领域取得了巨大的成功。基于注意力机制的GCN与先前两类方法不同,其会为不同的邻居赋予不同的权重。

3.2 Attention-based spatial models

3.2.1 GAT

GAT将注意力机制应用在了propagation step,通过关注每个节点的邻居来生成节点的隐藏层状态

hvt+1=p(∑u∈NvavuWhut),h^{t+1}_v = p(\sum_{u \in N_v}a_{vu}Wh^t_u),hvt+1​=p(u∈Nv​∑​avu​Whut​),
avu=exp(LeakyReLU(aT[Whv∣∣Whu]))∑k∈Nvexp(LeakyReLU(aT[Whv∣∣Whk]))a_{vu}=\frac{exp(LeakyReLU(a^T[Wh_v || Wh_u]))}{\sum_{k \in N_v}exp(LeakyReLU(a^T[Wh_v || Wh_k]))}avu​=∑k∈Nv​​exp(LeakyReLU(aT[Whv​∣∣Whk​]))exp(LeakyReLU(aT[Whv​∣∣Whu​]))​
其中,WWW为参数矩阵,aaa为单层神经网络的参数向量。GAT利用多头注意力来使学习过程变得稳定,其使用K个独立的注意力头矩阵来计算隐藏层,接着将其特征进行组合
hvt+1=∣∣k=1Kσ(∑u∈NvavukWkhut),h^{t+1}_v =||_{k=1}^{K} \sigma(\sum_{u \in N_v}a^k_{vu}W_kh^t_u),hvt+1​=∣∣k=1K​σ(u∈Nv​∑​avuk​Wk​hut​),
hvt+1=σ(1K∑k=1K∑u∈NvavukWkhut)h^{t+1}_v =\sigma(\frac{1}{K} \sum_{k=1}^K\sum_{u \in N_v}a^k_{vu}W_kh^t_u)hvt+1​=σ(K1​k=1∑K​u∈Nv​∑​avuk​Wk​hut​)
特点:1)节点-邻居对的计算是并行的,所以有较高的效率;2)可用于具有不同度值的节点;3)可用于inductive学习。

3.2.2 GaAN

GaAN将GAT在组合多头特征时的均值操作改为了基于self-attention机制的操作。

参考文献:

[1] Graph neural networks: A review of methods and applications.

图神经网络(GNNs)模型学习笔记与总结相关推荐

  1. 文本分类模型学习笔记

    文本分类模型学习笔记 TextCNN 模型结构 HAN 模型结构 实验 数据集 预处理 模型内容 模型训练 模型测试 近年来,深度学习模型在计算机视觉和语音识别中取得了显著成果.在自然语言处理中,深度 ...

  2. 神经网络与深度学习笔记汇总二

    神经网络与深度学习笔记汇总二 正交化(方便调整参数) 迭代 单实数评估指标(判断几种手段/方法哪个更好) 指标选取 训练集.开发集.测试集作用与用途 评估指标 判断算法是好是坏 迁移学习 总结 往期回 ...

  3. 概率图模型学习笔记:HMM、MEMM、CRF

    作者:Scofield 链接:https://www.zhihu.com/question/35866596/answer/236886066 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权 ...

  4. 今晚直播 | 北邮博士生纪厚业:异质图神经网络之模型和应用

    「PW Live」是 PaperWeekly 的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和交流可能会让知识的传播更加有意义, ...

  5. PW Live 直播 | 北邮博士生纪厚业:异质图神经网络之模型和应用

    「PW Live」是 PaperWeekly 的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和交流可能会让知识的传播更加有意义, ...

  6. 详解机器学习的凸优化、图神经网络、强化学习、贝叶斯方法等四大主题

    AI是一门入门简单,但想深入却很难的学科,这也是为什么AI高端人才一直非常紧缺的重要原因.在AI领域技术领域,我们可以说机器学习功底决定了一个人的上限也不为过.为什么?机器学习就像物理学中的数学,如果 ...

  7. 【卷积神经网络环境搭建学习笔记】

    卷积神经网络环境搭建学习笔记 前言 首先,特别感谢B站UP主:肆十二- csdn链接:https://blog.csdn.net/ECHOSON/article/details/117964438 再 ...

  8. 神经网络与深度学习笔记汇总三

    神经网络与深度学习笔记汇总三 往期回顾 将之前掘金写的学习笔记所遇困难搬到这里,方便查看复习 遇到问题: 异常值处理 学习内容 1..drop() 返回的是一个新对象,原对象不会被改变. 2.遇到问题 ...

  9. ARIMA模型学习笔记

    ARIMA模型学习笔记 目录 ARIMA模型学习笔记 ARIMA模型 时间序列平稳性 什么是平稳性 严平稳 弱平稳 平稳性检验 ADF检验(Augmented Dickey-Fuller test) ...

  10. 神经网络与深度学习——笔记1

    神经网络与深度学习--笔记1 一.线性回归及线性分类 1.多元线性回归 2.线性多分类(softmax回归) 3.SGD算法更新参数 二.感知机 1.单神经元模型与单层感知机 2.多层感知机(MLP) ...

最新文章

  1. python简易版实例_Python3之简单搭建自带服务器的实例讲解
  2. Centos6.7安装docker1.7.1
  3. 美国政府突然宣布放弃对 DNS 根区的控制
  4. [导入]Google Earth坐标集(能更看清这个世界喽!)
  5. wordpress的下载和安装介绍
  6. 从标准到开发,解读基于MOF的应用模型管理
  7. Java网络编程(一)- 一个简单的服务端/客户端应用程序
  8. ppt上的倒计时小工具_英孚线上精品小班课平台操作指南这些课堂小工具你都知道吗?更多课前指引看这里!...
  9. 从零开始搭建ELK+GPE监控预警系统
  10. 商业计划书的“三·七”原则
  11. 网络安全--安全攻防概述
  12. Therapy-Induced Evolution of Human Lung CancerRevealed by Single-Cell RNA Sequencing 治疗后肺癌单细胞测序文章分享
  13. CentOS 7安装TeamViewer
  14. 利用NCBIdatasets批量下载大规模生信数据集
  15. 先搞清楚这些问题,简历上再写你熟悉Java!
  16. 智能网 联汽车信息安全发展趋势
  17. 面试非常通用的四道送命题
  18. vs2019下载不了的解决办法
  19. Python实战技巧(11)使用python收发邮件时需要的邮箱授权码如何获取
  20. jQuery对Class属性的操作

热门文章

  1. html2canvas做pdf导出时字体样式错乱
  2. 使用PS调整图片大小
  3. Python数学问题17:鸡兔同笼问题
  4. 基于numpy实现矩阵计算器
  5. kali下使用phpstudy
  6. 兆骑科创创业大赛,线上直播路演,高层次人才引进服务平台
  7. 书论94 梁同书《频罗庵论书》
  8. jvm调试工具arthas的tt命令记录参数和返回值使用案例
  9. QCustomPlot 连续快速地调用replot()改善速度
  10. 树与二叉树——由前序序列和中序序列确定一刻二叉树