图神经网络【3】学习笔记

本文是根据我最近学习图卷积神经网络学习的内容进行记录,总结了来自知乎、以及集智学园等多个平台,整理分析并加个人思考得来的。如果有不正确的地方大家批评指正。

最早的图神经网络经典论文,可以追溯到2017Thomas N. Kipf发表在ICLR题为Semi-Supervised Classification with Graph Convolutional Networks,代码在Github链接.


以往的进展

  1. Spectral Graph theory,即将傅里叶变换扩展到图的谱域
  2. Deep learning on Graphs:
    2.1 Laplacian regurlarization in loss function
    2.2 Graph Embedding: Node2Vec, LINE
    2.3 Graph Autoencoders: SDNE
    2.4 Graph Spectral,即图上进行谱分析,进行卷积

解决的科学问题是什么

难以通过CNN在图上定义与图像上始终全局可以使用的局部卷积核。

解决问题的思路是什么?GCN给出了直观的解释

H ( l + 1 ) = σ ( D ^ − 1 2 A ^ D ^ − 1 2 H ( l ) W ( l ) ) H^{(l+1)}=σ(\hat{D}^{-\frac{1}{2}}\hat{A}\hat{D}^{{-\frac{1}{2}}}H^{(l)}W^{(l)}) H(l+1)=σ(D^21A^D^21H(l)W(l))

  1. 对邻居节点的信息进行聚合: H ( l + 1 ) = A H l H^{(l+1)}=AH^{l} H(l+1)=AHl但是由于自身向量为0,未能将自己的权重进行相加
  2. 对邻居和自己加权求和: H ( l + 1 ) = A ^ H l H^{(l+1)}=\hat{A}H^{l} H(l+1)=A^Hl A ^ = A + I \hat{A}=A+I A^=A+I因此通过添加单位矩阵将自己的元素特征也进行计算
  3. 加完之后做平均: H ( l + 1 ) = D ^ − 1 A ^ H ( l ) H^{(l+1)}=\hat{D}^{-1}\hat{A}H^{(l)} H(l+1)=D^1A^H(l)
  4. 感觉太简单,加个track: H ( l + 1 ) = D ^ − 1 2 A ^ D ^ − 1 2 H ( l ) H^{(l+1)}=\hat{D}^{-\frac{1}{2}}\hat{A}\hat{D}^{{-\frac{1}{2}}}H^{(l)} H(l+1)=D^21A^D^21H(l)
  5. DNN的权重矩阵也要: H ( l + 1 ) = D ^ − 1 2 A ^ D ^ − 1 2 H ( l ) W ( l ) H^{(l+1)}=\hat{D}^{-\frac{1}{2}}\hat{A}\hat{D}^{{-\frac{1}{2}}}H^{(l)}W^{(l)} H(l+1)=D^21A^D^21H(l)W(l)
  6. 还得再来个激活函数: H ( l + 1 ) = σ ( D ^ − 1 2 A ^ D ^ − 1 2 H ( l ) W ( l ) ) H^{(l+1)}=σ(\hat{D}^{-\frac{1}{2}}\hat{A}\hat{D}^{{-\frac{1}{2}}}H^{(l)}W^{(l)}) H(l+1)=σ(D^21A^D^21H(l)W(l))
    注: D D D表示,每个节点的度(Degree), D D D是对角度矩阵。 D − 1 D^{-1} D1表示将对角线的值取倒数, D − 1 2 D^{-\frac{1}{2}} D21表示在 D − 1 D^{-1} D1开根号。

GCN卷积公式的数学推导

图神经网络【3】学习笔记_第1张图片
卷积傅里叶变换的关系:两个函数的卷积可以用他们的傅里叶逆变换表示: ( f ∗ h ) ( x ) = 1 2 π ∫ f ^ ( λ ) h ^ ( λ ) e i λ x d λ (f*h)(x)=\frac{1}{2\pi}\int\hat{f}(λ)\hat{h}(λ)e^{iλx}dλ (fh)(x)=2π1f^(λ)h^(λ)eiλxdλ 改变定义域:时间轴 → → 二维网格,那么图片可以看作是网格上的信号。一张图片: f f f,一个卷积核: h h hCNN中的卷积操作== f f f h h h的傅里叶变换操作
*计算卷积时,可以不用显式定义卷积核!
图神经网络【3】学习笔记_第2张图片
图神经网络【3】学习笔记_第3张图片
Graph上的傅里叶变换:如何确定变换的基(base)函数,通过时域上的傅里叶变换 e − i λ t e^{-iλt} eiλt
图神经网络【3】学习笔记_第4张图片
在GCN中的拉普拉斯算子是拉普拉斯矩阵L,以图的特征向量作为基,类比傅里叶变换中的基函数 e − i λ t e^{-iλt} eiλt
图神经网络【3】学习笔记_第5张图片
U U U特征向量组成的矩阵

图神经网络【3】学习笔记_第6张图片

实验

模型公式

Z = f ( X , A ) = s o f t m a x ( A ^ ⋅ R e L u ( A ^ X W ( 0 ) ) W ( 1 ) ) Z=f(X,A)=softmax(\hat{A}·ReLu(\hat{A}XW^{(0)})W^{(1)}) Z=f(X,A)=softmax(A^ReLu(A^XW(0))W(1))

W 权 重 矩 阵 、 A 邻 接 矩 阵 、 X 输 入 特 征 矩 阵 W权重矩阵、A邻接矩阵、X输入特征矩阵 WAX

模型框架

图神经网络【3】学习笔记_第7张图片

模型数据集

图神经网络【3】学习笔记_第8张图片
前三个数据集Citeseer、Cora、Pubmed都是论文引用的数据集,为了体现半监督,前三个数据集每个类只选用20个labels,通过loss只在Cora优化超参数;NELL中每类一个节点为label。

你可能感兴趣的:(#,深度学习)