图卷积神经网络

一些补充

图(Graph)

图用 G = ( V , E ) G=(V, E) G=(V,E)表示,V中元素为顶点(vertex),E中元素为边(edge)。图中边为无序对时为无向图,为有序对时为有向图。以下为一个无向图的例子。

邻居(Neighborhood)

无向图中,如果顶点 v i v_i vi是顶点 v j v_j vj的邻居,那么顶点 v j v_j vj也是顶点 v i v_i vi的邻居。 顶点 v i v_i vi的邻居 N ( i ) N(i) N(i)
N ( i ) = { v i ∈ V ∣ v i v j ∈ E } N(i)=\{v_i\in V|v_iv_j\in E\} N(i)={viVvivjE}

度矩阵(Degree)

3

度矩阵是对角阵,对角上的元素为各个顶点的度。顶点 v i v_i vi的度表示和该顶点相关联的边的数量。无向图中顶点 v i v_i vi的度 d ( v i ) = N ( i ) d(v_i)=N(i) d(vi)=N(i)。有向图中,顶点 v i v_i vi的度分为顶点 v i v_i vi的出度和入度,即从顶点 v i v_i vi出去的有向边的数量和进入顶点 v i v_i vi的有向边的数量。

邻接矩阵(Adjacency)

邻接矩阵表示顶点间关系,是n阶方阵(n为顶点数量)。分为有向图邻接矩阵和无向图邻接矩阵,无向图邻接矩阵是对称矩阵,而有向图的邻接矩阵不一定对称。对于有向图, v i v j v_iv_j vivj是有方向的,即 v i → v j v_i \to v_j vivj .
[ A ( G ) ] i j = { 1 ,  if  v i v j ∈ E , 0 ,  otherwise  [A(G)]_{ij}=\begin{cases} & 1, \text{ if } v_iv_j\in E, \\ & 0, \text{ otherwise } \end{cases} [A(G)]ij={1, if vivjE,0, otherwise 

Introduction

图

GCN也是一个神经网络层,它的层与层之间的传播方式是
H ( l + 1 ) = σ ( D ~ − 1 / 2 A ~ D ~ − 1 / 2 ) H ( l ) W ( l ) H^{(l+1)} = \sigma(\tilde D^{-1/2}\tilde A\tilde D^{-1/2})H^{(l)}W^{(l)} H(l+1)=σ(D~1/2A~D~1/2)H(l)W(l)

  • A ~ = A + I \tilde A=A+I A~=A+I I I I是单位矩阵
  • D ~ \tilde D D~是A波浪的度矩阵(degree matrix),
  • 公式为 H是每一层的特征,对于输入层的话,H就是X
  • σ是非线性激活函数

上图中的GCN输入一个图,通过若干层GCN每个node的特征从X变成了Z,但是无论中间有多少层,node之间的连接关系,即A都是共享的。
假设我们构造一个两层的GCN,则整体的正向传播的公式为:
Z = f ( X , A ) = R e L U ( A ^ t a n h ( A ^ X W ( 0 ) ) W ( 1 ) ) Z=f(X,A)=ReLU(\hat A tanh(\hat AXW^{(0)})W^{(1)}) Z=f(X,A)=ReLU(A^tanh(A^XW(0))W(1))

针对所有带标签的节点计算cross entropy损失函数
L = − ∑ l ∈ y l ∑ f = 1 F Y l f l n Z l f \mathcal L=-\sum_{l\in y_l}\sum_{f=1}^F Y_{lf}lnZ_{lf} L=lylf=1FYlflnZlf

  1. 每一层GCN的输入都是邻接矩阵A和node的特征H,那么我们直接做一个内积,再乘一个参数矩阵W,然后激活一下,得到一个简单的神经网络层。
    f ( H ( l ) , A ) = σ ( A H ( l ) W ( l ) ) f(H^{(l)}, A)=\sigma(AH^{(l)}W^{(l)}) f(H(l),A)=σ(AH(l)W(l))

但是这个模型有几个局限性:

  • 只使用A的话,由于A的对角线上都是0,所以在和特征矩阵H相乘的时候,只会计算一个node的所有邻居的特征的加权和,该node自己的特征却被忽略了。因此,需要做一个小改动,给A加上一个单位矩阵 I I I ,这样就让对角线元素变成了1。
  • A是没有经过归一化的矩阵,这样与特征矩阵相乘会改变特征原本的分布,产生一些不可预测的问题。所以要对A做一个标准化处理。首先让A的每一行加起来为1,我们可以乘以一个D的逆,D就是度矩阵。我们可以进一步把D的拆开与A相乘,得到一个对称且归一化的矩阵。
  1. 通过对上面两个局限的改进,我们便得到了最终的层特征传播公式
    f ( H ( l ) , A ) = σ ( D ~ − 1 / 2 A ~ D ~ − 1 / 2 ) H ( l ) W ( l ) f(H^{(l)}, A) = \sigma(\tilde D^{-1/2}\tilde A\tilde D^{-1/2})H^{(l)}W^{(l)} f(H(l),A)=σ(D~1/2A~D~1/2)H(l)W(l)
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值