当前位置: 首页 > news >正文

图卷积网络(Graph Convolutional Network, GCN)

图卷积网络(Graph Convolutional Network, GCN)是一种用于处理图结构数据的深度学习模型。GCN编码器的核心思想是通过邻接节点的信息聚合来更新节点表示。

图的表示

一个图 G通常表示为 G=(V,E),其中:

  • V 是节点集合,包含 N个节点。
  • E是边集合,包含图中所有的边。

节点特征矩阵

假设每个节点 i有一个特征向量 x_i(维度为 F),所有节点的特征可以表示为矩阵 \mathbf{X} \in \mathbb{R}^{N \times F}

邻接矩阵

图的邻接矩阵 \mathbf{A} \in \mathbb{R}^{N \times N}表示图中节点之间的连接关系,其中 \mathbf{A}_{ij} = 1表示节点 i和节点 j之间有边,反之为 0。

度矩阵

度矩阵\mathbf{D} \in \mathbb{R}^{N \times N}是一个对角矩阵,其中 \mathbf{D}_{ii}表示节点 i的度,即节点 i的邻居数量: \mathbf{D}_{ii} = \sum_{j} \mathbf{A}_{ij}

图卷积层

GCN编码器由多个图卷积层组成,每一层的运算可以描述为:

\mathbf{H}^{(l+1)} = \sigma\left( \mathbf{\tilde{D}}^{-\frac{1}{2}} \mathbf{\tilde{A}} \mathbf{\tilde{D}}^{-\frac{1}{2}} \mathbf{H}^{(l)} \mathbf{W}^{(l)} \right)

其中:

  • \mathbf{\tilde{A}} = \mathbf{A} + \mathbf{I},即在邻接矩阵A中加上自环(self-loop),其中 I是单位矩阵。
  • \mathbf{\tilde{D}} 是对应的度矩阵,计算方式与度矩阵 D类似,只不过这里考虑了自环。
  • \mathbf{H}^{(l)}是第 l层的节点表示矩阵,初始表示 \mathbf{H}^{(0)} = \mathbf{X}
  • \mathbf{W}^{(l)}是第 l层的权重矩阵。
  • σ 是非线性激活函数(例如ReLU)。

归一化的邻接矩阵

\mathbf{\hat{A}} = \mathbf{\tilde{D}}^{-\frac{1}{2}} \mathbf{\tilde{A}} \mathbf{\tilde{D}}^{-\frac{1}{2}}

因此,图卷积层的更新规则可以简化为:

\mathbf{H}^{(l+1)} = \sigma\left( \mathbf{\hat{A}} \mathbf{H}^{(l)} \mathbf{W}^{(l)} \right)

GCN通常由多层图卷积层堆叠而成。假设有 L层,那么经过 L 层图卷积后,最终的节点表示为 \mathbf{H}^{(L)}

聚合和更新

每一层的图卷积操作本质上是对每个节点的邻居节点信息进行聚合,然后通过线性变换和非线性激活函数进行更新。具体过程如下:

  1. 聚合邻居信息:使用归一化的邻接矩阵\mathbf{\hat{A}}对节点表示进行线性变换,得到聚合后的邻居信息。
  2. 线性变换:通过权重矩阵 \mathbf{W}^{(l)}对聚合后的邻居信息进行线性变换。
  3. 非线性激活:应用非线性激活函数 σ进行非线性变换。

最后

GCN编码器的结构可以通过如下递归公式表示:

\mathbf{H}^{(l+1)} = \sigma\left( \mathbf{\hat{A}} \mathbf{H}^{(l)} \mathbf{W}^{(l)} \right)

初始状态下 \mathbf{H}^{(0)} = \mathbf{X},经过 L层图卷积后,得到最终的节点表示 \mathbf{H}^{(L)}。每层的图卷积通过聚合邻居信息、线性变换和非线性激活来更新节点表示。

http://www.lryc.cn/news/376746.html

相关文章:

  • 【diffusers 极速入门(一)】pipeline 实际调用的是什么? __call__ 方法!
  • 【DPDK学习路径】二、DPDK简介
  • python基础 002 - 2 常用数据类型
  • 爆赞!GitHub首本Python开发实战背记手册,标星果然百万名不虚传
  • Spring源码-xxxAware实现类和BeanPostProcessor接口调用过程
  • Uni-app x
  • Python 基础:文件
  • WebForms 母版页
  • Java应用打包成Docker镜像
  • 什么是自动驾驶中的CopyCat?
  • 为什么没人详细说过智能猫砂盆?最受欢迎的好用智能猫砂盆解析!
  • AI视频智能监管赋能城市管理:打造安全有序的城市环境
  • 多态性(Java)
  • 国际期货行情相关术语
  • LeetCode20.有效的括号
  • 尚玩助手广告变现app开发
  • Anti-human IL-10 mAb (12G8), biotin:Mabtech热销品
  • 【植物大战僵尸杂交版】致敬传奇游戏玩家——一个普通人的六年坚持
  • 【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 部门组队编程(200分) - 三语言AC题解(Python/Java/Cpp)
  • 民生银行信用卡中心金融科技24届春招面经
  • HTML李峋同款跳动的爱心代码(双爱心版)
  • 【linux】内核从tcp层调用IP层摸索中
  • Python 中的 Pandas(数据分析与处理)
  • 【文档智能 RAG】RAG增强之路-智能文档解析关键技术难点及PDF解析工具PDFlux
  • 五大API接口:提升你的应用性能与用户体验
  • RabbitMQ实践——在Ubuntu上安装并启用管理后台
  • Ubuntu中防火墙的使用 和 开放 关闭 端口
  • ansible 模块进阶及变量
  • MYSQL数据库安装
  • Pycharm配置远程调试