GCN基本原理与tensorflow2.0实现


图卷积神经网络(GCN)的核心思想: 学习一个映射 f ( . ) f(.) f(.),通过该映射图中的节点 v i v_i vi可以聚合它自己的特征 x i x_i xi与它的邻居特征 x j    ( j ∈ N ( v i ) ) x_j \;(j \in N(v_i)) xj(jN(vi))来生成节点的新 v i v_i vi表示。

图卷积本质上是一种aggregation(聚合)操作,是一种局部加权平均运算。在图中"局部"是指他的邻居,简单起见,把有边的权重定义为1,无边的权重定义为0。

基本符号定义

N = 1 , 2 , 3 ⋯ n N=1,2,3\cdots n N=1,2,3n 代表所有节点的编号

X i X_i Xi 代表节点 i i i 的特征向量

A A A 代表邻接矩阵, A i j A_{ij} Aij代表节点 i , j i,j i,j之间的边的权。

D D D 代表图的度的矩阵,是一个对角矩阵(是邻接矩阵的列和或行和),即: D i i = ∑ k = 1 N A i k D_{ii} = \sum_{k=1}^N A_{ik} Dii=k=1NAik

L = D − A L=D-A L=DA 是图的拉普拉斯矩阵(Laplacian Matrix)。

下面是一个例子(无权图):

在这里插入图片描述

图神经网络的公式定义

这是GCN图卷积层的示意图:

在这里插入图片描述

1、基本版本

先仔细思考:通过该映射图中的节点 v i v_i vi可以聚合它自己的特征 x i x_i xi与它的邻居特征 x j    ( j ∈ N ( v i ) ) x_j \;(j \in N(v_i)) xj(jN(vi))来生成节点的新 v i v_i vi表示 如何将这个过程用数学公式实现?主要包括两个部分:

(1)先聚合邻居特征,最简单的是加权平均法
a g g r e g a t e ( X i ) = ∑ j ∈ n e i g h b o r ( i ) A i j X j aggregate(\mathbf X_i) = \sum_{j \in neighbor(i)}A_{ij}X_j aggregate(Xi)=jneighbor(i)AijXj
注:A是带权邻接矩阵。

将其写成矩阵运算(矩阵式聚合):
a g g r e g a t e ( X i ) = A X aggregate(\mathbf X_i) = \mathbf A \mathbf X aggregate(Xi)=AX

(2)添加自环,加入自己的特征
a g g r e g a t e ( X ) = ( A + I ) X = A X + X a g g r r e g a t e ( X i ) = ∑ j ∈ N A i j X j + X i aggregate(X) = (A+I) X = AX +X \\ aggrregate(X_i) = \sum_{j \in N} A_{ij}X_{j} + X_{i} aggregate(X)=(A+I)X=AX+Xaggrregate(Xi)=

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值