论文笔记:E(n) Equivariant Graph Neural Networks

本文介绍了一种新型图神经网络EGNN,它具有平移、旋转、反射和排列等变性,避免了中间层高阶表示的复杂计算。EGNN适用于3维及以上维度,且在保持性能的同时简化了架构。文章还讨论了其在等变性、GNN应用和拓展动量方面的细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0 介绍

        本文介绍了一种新模型来学习与旋转、平移、反射和排列等变的图神经网络,称为 E(n)-等变图神经网络 (EGNN)。

         与现有方法相比,EGNN不需要在中间层中计算昂贵的高阶表示,同时仍能获得有竞争力或更好的性能。 此外,虽然现有方法仅限于 3 维空间的等变性,但EGNN很容易扩展到更高维空间。 

1  introduction

        尽管深度学习在很大程度上取代了手工制作的特征,但许多进步严重依赖于深度神经网络中的归纳偏差。(inductive bias)

         将神经网络限制为和研究问题相关函数的一种有效方法是,利用问题的对称性、变换等变性(equivariance),通过研究某个对称组来简化当前问题的计算。【eg,CNN的卷积是等变形、池化是近似不变性;GNN的点的排列顺序是等变性(不同点的排列对应不同的邻接矩阵,但是最终这张graph表达的信息是一样的)】

        许多问题都表现出 3D 平移和旋转对称性。论文中将这些对称操作的集合记为SE(3) ,如果包含反射,那么集合记为 E(3)。 通常希望对这些任务的预测相对于 E(3) 变换是等变的或不变的。、

        最近,已经提出了等变E(3) 或 SE(3) 的各种形式和方法。 其中许多工作在研究中间网络层的高阶表示类型方面实现了创新。 然而,这些高阶表示的转换需要计算成本高昂的系数或近似值。 此外,在实践中,对于许多类型的数据,输入和输出仅限于标量值(例如温度或能量,在文献中称为 type-0)和 3d 矢量(例如速度或动量,在文献中称为 type-1)。

        这篇paper提出了一种新的架构,它是平移、旋转和反射等变 (E(n)),以及关于输入点集的置换等变模型比以前的方法更简单,同时模型中的等变性不限于 3 维空间,并且可以扩展到更大的维空间,而不会显着增加计算量。

2 背景知识

2.1 等变性

定义:

        

通俗地说,先平移/旋转/排列再映射,和先映射再平移/旋转/排列 效果是一样的

2.2 GNN

GNN笔记:消息传播模型_UQI-LIUWJ的博客-CSDN博客

3 EGNN

  • 考虑一张图\mathcal{G}=(\mathcal{V,E}),其中v_i \in \mathcal{V}, e_{ij} \in \mathcal{E},
  • 每一个点的特征embedding是h_i \in R^{nf} (和2.2的GNN一样)[这个nf指的是node feature,并不是n乘f]【不带方向的物理信息,标量】
  • 但在此基础上,EGNN对每个点加了一个n维的坐标x_i \in R^n【带方向的几何信息,矢量】

GNN将保持与这些坐标 xi 旋转和平移的等变性,并且它还将以与 GNN 相同的方式保持与节点集 V 上排列的等变性。

 用公式表示第l层EGNN,Equivariant Graph Convolutional Layer (EGCL)有:h^{l+1},x^{l+1}=EGCL[h^l,x^l,\mathcal{E}]

和传统GNN不一样的地方用绿色框框画出来了

  • 在等式3中,EGNN增加了两个坐标之间的距离||x_i^l-x_j^l||^2作为参数
  • 在等式 4 中,按照论文的意思,xi的位置更新为径向的矢量场,由所有(x_i-x_i)_{\forall j}共同决定【这里我不是很理解,为什么会是径向的,因为不同的xi,它的方向是不一样的,(x_i-x_i)_{\forall j}作为向量减法,不一定沿着径向呀】
    • 等式4每一项的加权系数是通过函数\phi_x:R^{nf} \rightarrow R^1 计算的
    • 这里的C=1/(M-1)
  • ——>等式3&4可以保证等变性
  • ——>与此同时,另外一个区别是,这边考虑了所有(i,j)对,而不仅仅是邻居点之间的pair,也就是说,embedding  mij可以包含全图的信息

 

 

 3.1 平移等变性

g是一个平移向量,x(type-1向量)是平移等变性(equivariant),h(type-0向量)是平移不变性(invariant)

 ——>不难发现,EGCL的组合也是具有等变性的

3.2 拓展EGNN

这里对前面的EGNN进行轻微修改,以便我们明确地跟踪粒子的动量。

这不仅可以用于获得粒子在每一层的速度估计值,还可以将动量引入进来

用公式表示,就是将

 表示成

 h^{l+1},x^{l+1},v^{l+1}=EGCL[h^l,x^l,v^{init},\mathcal{E}]'

如果v^{init}为0,那么等式4和等式7表达的是一个意思

3.3 得到点的信息

在某些情况下,我们可能并不总是得到一个邻接矩阵。 在这些情况下,我们可以假设一个全连接图,其中所有节点相互交换消息。

这种全连接方法可能无法很好地扩展到大图,我们希望只需考虑邻居节点N(i)的点之间的交互。

论文这里使用如下的方式

其中如果(i,j)有连边,那么eij为1,否则为0

论文通过一个函数来近似eij :\phi_{inf}:R^{nf} \rightarrow [0,1]^1(线性层+sigmoid激活函数,输入边embedding,输出边value的soft estimation)

 

### EGNN 的输入输出数据格式解释 #### 输入数据格式 EGNNEquivariant Graph Neural Network)是一种用于处理图结构数据的神经网络模型,其核心在于保留 SE3 等变性质。为了实现这一点,EGNN 的输入通常由以下几个部分组成: 1. **节点特征矩阵 \( X \)** 节点特征矩阵是一个二维数组,形状为 \( (N, F_x) \),其中 \( N \) 是图中节点的数量,\( F_x \) 表示每个节点的特征维度。这些特征可以是描述原子属性的信息(如电荷、化学键类型等),或者更复杂的嵌入向量。 2. **节点坐标矩阵 \( C \)** 节点坐标矩阵也是一个二维数组,形状为 \( (N, 3) \),表示每个节点在三维空间中的位置坐标。对于分子建模任务来说,这通常是原子的空间坐标。 3. **边索引矩阵 \( E \)** 边索引矩阵定义了图中节点之间的连接关系,形状为 \( (2, M) \),其中 \( M \) 是边的数量。每一列代表一条边,第一行为源节点索引,第二行为目标节点索引。 4. **边特征矩阵 \( A \)** (可选) 如果存在额外的边特征,则可以用一个形状为 \( (M, F_a) \) 的矩阵来存储每条边的特征信息,例如化学键的类型或强度[^1]。 综合以上几点,EGNN 的典型输入可以表示为: \[ (\text{X}, \text{C}, \text{E}, \text{A}) \] --- #### 输出数据格式 EGNN 的输出取决于具体的应用场景,但在大多数情况下,它的输出会包含更新后的节点特征和节点坐标。以下是常见的两种情况: 1. **更新后的节点特征矩阵 \( H' \)** 更新后的节点特征矩阵仍然是一个二维数组,形状为 \( (N, F_h') \),其中 \( F_h' \) 可能与原始特征维度不同。这个新的特征矩阵包含了通过消息传递机制聚合而来的邻居信息以及自身的初始状态。 2. **更新后的节点坐标矩阵 \( C' \)** 类似于输入中的节点坐标矩阵,更新后的节点坐标矩阵也是一维数组,形状为 \( (N, 3) \)。这种变化反映了物理系统的动态演化过程,比如分子中原子间相互作用引起的位移调整。 因此,EGNN 的标准输出形式一般为: \[ (\text{H}', \text{C}') \] 需要注意的是,在某些特定应用下,可能还会附加其他类型的输出,例如预测的能量值或其他标量回归结果。 --- ```python import torch def egnn_forward(X, C, E, A=None): """ Simulate the forward pass of an Equivariant Graph Neural Network. Parameters: X (torch.Tensor): Node feature matrix of shape (N, Fx). C (torch.Tensor): Node coordinate matrix of shape (N, 3). E (torch.Tensor): Edge index matrix of shape (2, M). A (torch.Tensor, optional): Edge attribute matrix of shape (M, Fa). Returns: tuple: Updated node features and coordinates. """ # Placeholder for actual implementation details... updated_features = ... # Shape: (N, Fh') updated_coordinates = ... # Shape: (N, 3) return updated_features, updated_coordinates ``` ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值