通俗理解图神经网络GNN

理解GNN的训练过程

GNN的“模拟卷积核”在每个节点做的事情就是按照连接关系对每个节点进行聚合:
n e w _ n o d e _ e m b e d d i n g = α ∗ o l d _ n o d e _ e m b e d d i n g + β ∗ f ( a r o u n d _ n o d e s _ e m b e d d i n g s ) new_node_embedding = \alphaold_node_embedding +\betaf(around_nodes_embeddings)new_node_embedding=α∗old_node_embedding+β∗f(around_nodes_embeddings)
其中f ff可以看作是对其周围所有节点的一种操作方式,α , β \alpha, \betaα,β以及f ff内部对应的参数都可以成为训练的对象。
这就是GNN做的事情。

import numpy as np

# 这个图是一个有向无环图(DAG)
# -1 代表什么也不连
# 图用二维列表,第一行代表节点编号,第二行为对应节点的指向节点
graph = [
    [0,0,1,2,3],
    [1,2,3,3,4]
]

# 定义5个节点的初始特征值
embeddings = [
    [1,2,3],
    [2,6,5],
    [2,3,7],
    [7,8,6],
    [1,0,0]
]

# 定义聚合的权重w全为1
w = [1,1,1,1,1]

# 下面开始图神经网络的聚合过程(训练过程)
# 在这里每个节点只按照方向聚合一层
for i in range(len(graph[0])):  # 每个节点
    # 先寻找指向节点i的节点们
    temp_roots = []
    for j, eve in enumerate(graph[1]):
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值