图神经网络专栏

GraphGAN

GraphGAN是一种结合了图神经网络和生成对抗网络(GAN)概念的机器学习模型。它旨在通过对抗学习框架解决图数据中的节点分类和链接预测问题,特别是在缺少标签数据的情况下。GraphGAN通过结合生成器和判别器两个主要组件来学习图中节点的有效表示。 GraphGAN的框架如下:设\(G=(V,\mathcal{E})\)为一个给定的图,其中\(V=\begin{Bmatrix}v_1,\ldots,v_V\end{Bmatrix}\)代表顶点的集合,而$\mathcal{E} = \left\{ e_{ij} \right\}_{i,j=1}^{V}$代表边的集合。对于给定的顶点\(\nu_{c}\),定义\(\mathcal{N}\left(\nu_{c}\right)\)为直接连接到\(\nu_{c}\)的顶点集,也就是顶点\(\nu_{c}\)的1-hop邻居。我们将顶点\(\nu_{c}\)的真实连通性分布表示为条件概率\(p_{\mathrm{true}}\left(\nu|\nu_{c}\right)\),它反映了\(\nu_{c}\)的连通性偏好和它所连接顶点的类型。从这个视角来看,\(\mathcal{N}\left(\nu_{c}\right)\)可以被看作是从\(p_{\mathrm{true}}\left(\nu|\nu_{c}\right)\)抽取的一组观察样本。给定图\(\mathrm{G}\),GraphGAN旨在学习以下两个模型: 生成器\(\mathrm{G}\)和判别器\(\mathrm{D}\)作为两个对手: 生成器\(\mathrm{G}\)将试图完美地匹配\(p_{\mathrm{true}}\left(\nu|\nu_{c}\right)\)并生成类似于\(\nu_{c}\)的真实直接邻居的相关顶点以欺骗判别器。而判别器\(\mathrm{D}\)则相反,会尝试检测这些顶点是\(\nu_{c}\)的真实邻居还是由其对手\(\mathrm{G}\)生成的。形式上, \(\mathrm{G}\)和\(\mathrm{D}\)在一个有以下价值函数\(V(G,D)\)的双人博弈中进行对抗: \(\min_{\theta_G}\max_{\theta_D}V(G,D)=\sum_{c=1}^V\left(\mathbb{E}_{\nu\sim p_{\mathbf{tne}}(\nu|\nu_c)}\left[\log D(\nu,\nu_c;\theta_D)\right]+\mathbb{E}_{\nu\sim p_G(\nu|\nu_c;\theta_G)}\left[\log\left(1-D(\nu,\nu_c;\theta_D)\right)\right]\right)\)       (1) 上式描述的最小最大(Minimax)博弈公式是生成对抗网络的核心。在图生成对抗网络(GraphGAN)的上下文中,生成器\(\mathrm{G}\)的目标是生成看起来像真实数据的样本。在GraphGAN的情境下,生成器试图生成看似是\(\nu_{c}\)的1-hop邻居的顶点。而鉴别器\(\mathrm{D}\)的目标是区分输入样本是来自于真实数据还是生成器生成的假数据。在GraphGAN中,它试图区分一个顶点对\((\nu,\nu_{c})\)是否是真实的1-hop邻点对。这个公式包含了两个期望(Expectations): 第一部分为真实数据的期望\(E_{v\sim p_{\mathrm{true}}\left(v\mid v_{c}\right)}\left[\log […]

GraphGAN Read More »

Deep Graph Infomax

Deep Graph Infomax(DGI)是一种基于图的无监督学习方法,其主要目标是学习图中节点的有效表示,即图数据的Embedding。DGI由Petar Veličković等人在2019年的论文中提出,这种方法通过最大化局部图结构(节点)和全局图结构(整个图)之间的互信息来学习节点表示,DGI整体的模型计算流程如图1所示。 从图1可以看出,第一步,算法需要一个正常图\((X,A)\)的扰动版本\((\widetilde{X},\widetilde{A})\),扰动版本通过负样本操作\(\mathrm{C}\)来实现。负样本操作可以通过多种方式实现,本质是一个函数。这个函数会接受图的节点特征\(\mathbf{X}\)和邻接矩阵\(\mathrm{A}\)作为输入,然后对原图结构进行变换,比如随机打乱节点的特征,或者在邻接矩阵中随机重排列边。目的是创建一个与原始图在统计特性上有显著区别的样本,这个负样本在后续步骤中用来帮助判别器学习如何区分图的正样本表示和与图不相关的表示。 第二步使用编码器函数\(\varepsilon(X,A)\)处理原始图的每个节点,从而得到每个节点的向量表示。这里的编码器\(\mathcal{E}\)通常是一个图神经网络(如GCN),它能够考虑节点的特征以及节点之间的连接(通过邻接矩阵\(\mathrm{A}\))来产生一个低维而信息丰富的特征向量\(\boldsymbol{h}_i\)。编码器的目的是捕获节点的局部图结构和节点特征,生成的集合\((H,A)=h_1,h_2,\cdots,h_n\)包含了输入图所有节点的这些表示。同理,在上一步中采样的负样本也需要经过编码器\(\boldsymbol{\varepsilon}\)的处理得到对应的\((\widetilde{H},\widetilde{A})\)。 第三步,算法需要从整个输入图的节点表示中提取一个单一的图级别的表示\(\mathbf{s}\)。这通常通过一个汇总函数\(R\left(\boldsymbol{H},A\right)\)完成,它可以是简单的平均节点表示,或者一个更复杂的结构,如基于注意力的汇总方法。这个图级别的表示\(\mathbf{s}\)应该捕获整个图的全局性质,它将在损失函数中用于比较正样本和负样本的节点表示。 最后一步是模型学习的关键。在这一步中,通过梯度下降来更新编码器\(\boldsymbol{\varepsilon}\)、汇总函数\(\text{R}\)以及判别器\(\text{D}\)的参数。判别器也是一个图神经网络,其任务是根据节点表示(\(h_{i}\)或\(h_{j}\))和图表示来判断节点是否属于该图。损失函数\(\text{L}\)在正样本的情况下鼓励判别器给出高的得分,而在负样本的情况下给出低的得分。通过最大化损失函数中定义的互信息量,模型能够训练出区分原始图节点和负样本节点表示的能力。 这个训练过程的目标是调整模型的参数,使得从正样本图中提取的节点表示与图的全局表示尽可能接近,而从负样本图中提取的节点表示则与图的全局表示尽可能远。即最大化节点表示和对应图级表示的互信息。这种方法认为,如果节点表示能够捕捉到与整个图表示高度相关的信息,那么这些节点表示就是有用的。这便完成了DGI的主要目标:学习图中节点的有效表示,即图数据的Embedding。 随机游走算法的目的也是学习图中节点的有效表示,且与DGI同属无监督学习方法,但在方法和理念上存在显著差异。随机游走侧重于通过模拟从一个节点开始的随机路径来捕捉图中节点的局部连接模式,以探索和利用图的局部结构特性。这种方法通过观察节点间的“游走”行为,直接反映了节点的邻近关系。相比之下,DGI采用基于互信息最大化的策略,通过学习节点表示和全局图表示之间的互信息来提取特征,不仅考虑了局部结构,还尝试捕捉整个图的全局上下文。DGI通常使用图神经网络如图卷积网络(GCN)作为编码器,更侧重于深度学习技术。总体而言,随机游走方法更加直观和简单,适用于图的局部特征学习;而DGI则是一种更复杂的深度学习方法,能够综合局部与全局信息,适合于需要深层特征提取的复杂图形任务。 此外,DGI(Deep Graph Infomax)和GAN(生成对抗网络)虽然都涉及到一个判别器组件,但它们的目标和训练过程有本质的不同。GAN由两个模型组成:生成器(Generator)和判别器(Discriminator)。生成器的目标是创建尽可能接近真实数据的新数据实例,而判别器则试图区分真实数据和生成器创建的伪造数据。这两个模型在训练过程中相互竞争,生成器不断改进其生成的数据质量以试图“欺骗”判别器,而判别器也不断改进其识别真伪数据的能力。这种对抗性的训练过程导致了生成器学会生成高质量的数据。DGI的目的不是生成新的数据,而是从图数据中学习有用的节点表示。在DGI中,判别器的作用不是与编码器对抗,而是帮助编码器学习生成高质量的节点嵌入。DGI使用一个非对抗的信息最大化原则,这个原则指导编码器生成的节点表示要包含足够的信息以便判别器可以准确区分节点是来自原始图还是扰动后的图(即正样本或负样本)。换句话说,判别器用于指导编码器捕捉到有意义的特征——使得这些特征对于区分不同图结构是有信息的。DGI的目标是通过这种方式提升表示的质量,而不是在编码器和判别器之间创建对抗。

Deep Graph Infomax Read More »

Relational Graph Convolutional Neural Network

对比GCN讲解RGCN的基本思想。GCN通过将图的邻接矩阵与节点特征结合,利用统一的权重矩阵\(\mathrm{W}\)来更新节点的特征,从而捕获图中的拓扑结构信息。这种方法在处理同质图时非常有效,即所有节点和边被假定具有相同的类型和属性。然而,GCN不直接处理图中的异质性或复杂的关系类型。 与GCN不同,RGCN(Relational Graph Convolutional Neural Network)被设计用来处理具有多种关系的异构图。此时,节点或边的种类有很多种情况,每种类型可能有其特定的属性和语义。例如,在生物医学的异构图中,不同类型的节点(如药物分子、疾病名称、蛋白质名称、生物通路等)和边(如促进、抑制、治疗、包含等)包含丰富的语义信息。RGNN能够对这些不同类型的实体和关系分别学习表示,这样能够更好地理解它们各自以及它们之间的复杂关系。用公式表示为: \(G=(V,E,R,T)\) 其中\(\text{V}\)为节点集,每个节点在下文表示为\(\nu_{i}\);\(\text{E}\)为边集,边\((\nu_{i},r,\nu_{j})\in E\);\(T(\nu_{i})\)为节点类型;\(\mathrm{R}\)为边类型集合,\(r_{i}\)在下文表示每个边的属性。 【例1】边有三种不同的类型\((r_1,r_2,r_3)\),分别用三种不同的线段格式表示,如图1所示。例如,节点A通过类型为\(r_{1}\) 的边与节点B和D相连,通过类型为\(r_{2}\) 的边与节点C相连等等。图1中也展示了关系图卷积网络(RGCN)的一个关键特点:不同类型的边使用不同的权重矩阵\((W_{_{r1}},W_{_{r2}},W_{_{r3}})\)来处理信息。这意味着,当更新一个节点的特征时,RGCN 会根据边的类型使用不同的权重矩阵。值得注意的是,在这个例子中,\(r_{1}\) 有三种类型,但这并不意味着要维护三个独立的神经网络。实际上,\(W_{_{r1}},W_{_{r2}},W_{_{r3}}\)可以共同组成一层神经网络的参数。假设用于更新边信息的神经网络输入输出都是由12个神经元组成的网络层,那么第1-3个神经元可以用于更新第一种边类型;第4-6个神经元用于更新第二种边类型;第7-9个神经元用于更新第三种边类型。 RGCN为每种类型的边引入了不同的权重矩阵,以此来捕获不同关系类型之间的细微差异。每一种关系类型的权重矩阵负责编码特定类型的边对节点特征更新的贡献。这样,RGCN能够综合节点的特征以及与其相连的各种类型边的信息,生成更丰富的节点表征。实际上,RGNN更像是一种思想,而不是固定的模型,它可以扩展到其它GNN模型上,如GraphSAGE、RGAT等。节点\(\mathrm{i}\)的特征更新规则在RGCN中可以表示为: \(\boldsymbol{h}_i^{(l+1)}=\sigma\left(\sum_{r\in R}\sum_{j\in N_r(i)}\frac{1}{c_{i,r}}\boldsymbol{W}_r^{(l)}\boldsymbol{h}_j^{(l)}\right)\) 其中: 在每一层中,对于每种类型的关系\(\mathrm{r}\),我们首先使用权重矩阵\(W_{r}^{(l)}\)来转换与节点\(\mathrm{i}\)相连的每个邻居节点\(\mathrm{j}\)的特征。然后,我们将所有这些转换后的特征进行加权求和,其中每个邻居的特征向量除以归一化常数\(c_{i,r}\),以避免不同数量的邻居对聚合结果的不均衡影响。最终,我们对所有关系类型的累加结果应用非线性激活函数,以得到节点\(\mathrm{i}\)在下一层的新特征向量\(h_i^{(l+1)}\)。这种机制允许RGCN分别学习不同类型的关系如何影响节点特征,而不是像GCN那样对所有边一视同仁,或者像GraphSAGE那样只是简单地聚合邻居节点的特征。

Relational Graph Convolutional Neural Network Read More »

Residual Gated Graph Convnets

Gated GCN 结合了GCNs的空间聚合能力和LSTM中的门控机制。这种结构设计旨在解决传统GCN在处理复杂图数据时面临的信息过载和信息损失问题。每个节点的状态更新不仅依赖于其邻居的信息,还受到门控机制的控制。这种操作使得网络可以在每一层学习到如何最有效地聚合邻近节点的信息,同时根据任务的需要丢弃无关信息,使其能够适应不同的图结构和动态变化的图数据,提供了更精细的信息处理能力。Gated GCN的模型设计如图1所示。 从图1中可以看到节点特征向量\(h_{i}\)和边特征向量\(e_{ij}\)的具体数据更新流程。首先每个节点\(\mathrm{i}\)在每一层\(\mathrm{l}\)有一个特征表示\(h_i^l\),节点\(\mathrm{i}\)邻居节点的特征向量集合为\(\begin{Bmatrix}h_j^l\end{Bmatrix}\)。每条边\((i,j)\)在每一层\(\mathrm{l}\)也有一个特征表示\(\boldsymbol{e}_{ij}\)。节点特征\(h_{i}^{l}\)通过矩阵\(U^{l}\)和\(A^{l}\)转换。相邻节点的特征\(\begin{Bmatrix}h_j^l\end{Bmatrix}\)通过矩阵\(V^{l}\)和\(B^{l}\)转换。边特征\(\begin{Bmatrix}e_{ij}^l\end{Bmatrix}\)通过矩阵\(C^{l}\)转换,这里的矩阵实际上是神经网络层中的参数矩阵。节点特征\(h_{i}^{l}\)、邻居节点的特征\(\begin{Bmatrix}h_j^l\end{Bmatrix}\)和边特征\(\begin{Bmatrix}e_{ij}^l\end{Bmatrix}\)分别经过\(A^{l}\)、\(B^{l}\)和\(C^{l}\)映射后的新特征表示将进行求和(Sum)操作,这一步的含义是进行边特征与节点特征的信息交互和融合,求和后的结果会经过激活函数ReLU的处理。处理后的结果一方面作为更新后的边特征\(\begin{Bmatrix}\boldsymbol{e}_{ij}^{l+1}\end{Bmatrix}\);另一方面将经过Sigmoid函数\(\sigma\)的处理产生一个门控信号,这个门控信号与相邻节点特征的加权(经过\(V^{l}\)变换后的\(h_{j}^{l}\))和相乘,实际上是对每个邻居节点的贡献进行缩放。这就是门控机制,它控制着信息的流向,与LSTM中的门控机制类似。最终,门控后的信息被累加到当前节点特征上 (经\(U^{l}\)变换后的\(h_{i}^{l}\)),通过一个求和(Sum)操作。结果再次通过ReLU激活函数得到当前层的输出结果。 经过上述处理后得到的结果\(\boldsymbol{h}_i^{l+1}\)是节点\(\mathrm{i}\)在下一层\(\mathrm{l+1}\)的新特征表示。同时,边的特征也更新为\(e_{ij}^{l+1}\)。这个过程体现了Gated GCN在图卷积中加入门控机制的重要性。通过调节门控信号,模型能够控制每个节点在其邻居之间传递的信息量,这样就可以捕捉到图中更加复杂的结构模式,同时减少不必要的信息传递,提高了模型的泛化能力和处理大规模图数据的效率。

Residual Gated Graph Convnets Read More »

Graph Isomorphism Network

在讲解Graph Isomorphism Network(GIN)之前,有必要先学习了解一下GNN模型的表达能力(Expressive Power),即GNN将不同图数据表示为不同嵌入向量的能力。这里会涉及一个被称为计算图的概念,图神经网络(GNN)的计算图是一种数据结构,它表示图中的节点以及它们之间的连接关系,用于有效地实施图数据上的学习算法。在这种结构中,每个节点聚合其邻居节点的信息,通过多次迭代更新其状态,从而捕捉和利用图的局部连接性质。为了研究GNN模型的表达能力,先来了解一下图数据的局部信息结构,如图1所示。 考虑图1两跳(2-hop)范围内计算图的几个特殊情况: (1)节点1和节点4,具有相同度数,但到其两跳(2-hop)邻居的信息上度数不同,导致计算图结构不同,因此可以区分这两个节点,如图2所示。 (2)节点1和节点5,因其自身度数不同而具有不同的局部结构信息,如图3所示。 (3)节点1和节点2,具有相同度数,也具有相同的邻居结构,在两跳邻居上,都具有相同的局部结构,如图4所示。 在图4的情况下,假设所有节点的初始化特征向量相同,且聚合节点信息时仅考虑两跳范围内的信息,那么节点1和节点2将被嵌入到同一个表示向量,GNN无法区分这两个节点。相比之下节点3、4、5由于计算图不同,理论上是可能由GNN区分开的。GNN模型应该有将不同的计算图映射到不同的节点向量的能力。想要区分不同的计算图,聚合的方式是关键,聚合函数表达能力越强,GNN表达能力越强。 然而,不管是求和、求平均,还是求最大值这些广泛被使用的聚合方式,都不是最佳的选择,如图5所示,两种图数据的计算图是不同的。但针对图5 (a)的初始化节点向量,求平均和求最大值的聚合方式都不能有效的区分出不同的计算图。类似的,对于图5(b)的初始化节点向量,求和的聚合方式也不能有效区分这两种计算图。这是因为图通过聚合节点向量后却得到了相同的新的节点向量。 从数学的角度上来讲,希望GNN的聚合函数是一种单射函数(Injective Function),即可把不同的元素映射成不同输出。换句话说,希望GNN的聚合函数能把不同的计算图映射生成不同的节点向量。显然,求和函数、求平均函数、求最大值函数都不是单射函数。根据Xu et al. 在论文Graph Wavelet Neural Network中得到定理可知:任一单射函数都可以表示为: \(\phi(\sum_{x\in

Graph Isomorphism Network Read More »

SE(3)-Transformers

SE(3)-Transformers: 3D Roto-Translation Equivariant Attention Networks是一篇研究如何在三维空间中实现旋转和平移等变性的深度学习网络的工作。这种网络通过结合\(SE(3)\)群的等变性,将传统的Transformer结构扩展到了三维空间,从而在不牺牲表达能力的前提下,显著提升了对三维几何信息的建模能力。此项工作为在三维空间中的物理模拟、生物信息学以及计算机视觉等领域的应用提供了强大的工具。 1、SE(3)-Transformer的计算流程 图1展示了一个用于\(SE(3)\)-Transformer等变注意力机制的工作流程。该流程分为四个步骤:首先获取节点的最近邻居及其相对位置,然后通过\(SE(3)\)等变权重矩阵进行特征映射,接着将查询、键和值向量传递到边上,最后通过注意力机制计算并聚合邻居节点的信息。整个过程确保了在旋转等变性下节点特征的更新,适用于需要保持空间对称性的图形数据处理任务。 在第一步中,节点\(\mathrm{i}\)的最近邻居(节点\(\mathrm{j}\))及其相对位置\(x_{j}-x_{i}\)被获取。最近邻居通常通过在三维空间中的某个距离度量来定义,图1中节点\(\mathrm{i}\)和它的邻居节点\(\mathrm{j}\)以向量的形式表示它们之间的相对位置。 在第二步中,重点在于构造\(SE(3)\)等变的权重矩阵\(W(x)\),这是为了确保在\(SE(3)\)群的选择操作下,模型的输出结果保持不变。具体而言,权重矩阵\(W(x)\)是通过结合Clebsch-Gordan系数\(\varrho_{Jm}^{\ell k}\)、径向神经网络\(\varphi_J^{\ell k}(\parallel x\parallel)\)和球谐函数\(Y_{Jm}\left(\frac{x}{\parallel x\parallel}\right)\)来构建的。Clebsch-Gordan系数用于处理不同角动量态之间的耦合关系,径向神经网络则基于距离\(\left|x\right|\)来建模径向特征,而球谐函数用于处理角度方向上的信息。通过这些成分的组合,构建出的权重矩阵能够确保特征在旋转操作下依然保持\(SE(3)\)等变性。这一矩阵为后续计算中的查询、键和值向量提供了基础,使得模型能够在处理三维空间中的数据时保持旋转对称性,即对数据进行旋转时输出结果不会发生改变。这对于处理具有空间对称性的数据(如3D点云、分子结构等)尤其关键。 在第三步中,模型通过\(SE(3)\)等变权重矩阵将节点的特征向量映射为査询(query)、键(key)和值(value)向量,并将这些向量传递到图的边上。具体来说,给定目标节点\(\mathrm{i}\)的特征向量\(f_{i}\)和其邻居节点\(\mathrm{j}\)的特征向量\(f_{j}\),模型首先利用相对位置(\(x_j-x_i\))结合特征\(f_{j}\),通过等变权重矩阵\(W_{K}\)和\(W_{V}\)生成键向量\(k_{ij}\)和值向量\(\boldsymbol{v}_{{ij}}\)。同时,目标节点\(\mathrm{i}\)的查询向量\(q_{i}\)由其自身特征向量\(f_{i}\)通过另一权重矩阵\(W_{Q}\)生成。这个过程确保了在图的每条边上都有与目标节点和邻居节点相关联的查询、键和值向量,且这些向量的生成过程具有\(SE(3)\)等变性,即在旋转和平移操作下保持不变。这一机制为后续的注意力计算和信息聚合奠定了基础,使得模型能够有效地捕捉邻居节点对目标节点的影响,并保证结果的空间变换不变性。 在第四步中,模型利用先前计算的查询、键和值向量,通过注意力机制对邻居节点的信息进行加权聚合。具体来说,目标节点\(\mathrm{i}\)和其邻居节点\(\mathrm{j}\)之间的注意力权重\(\alpha_{ij}\)是通过目标节点的查询向量\(q_{i}\)和邻居节点的键向量\(k_{ij}\)的点积计算得出的,表达式为: \(\alpha_{ij}=\frac{\exp(q_i^\top k_{ij})}{\sum_{j^{\prime}}\exp(q_i^\top k_{ij^{\prime}})}\) 这种注意力权重反映了目标节点\(\mathrm{i}\)对邻居节点\(\mathrm{j}\)信息的关注程度。随后,目标节点的输出特征\(f_{\mathrm{out},i}\)是对所有邻居节点的信息(即值向量\(\boldsymbol{v}_{{ij}}\))进行加权求和后的结果,公式为:

SE(3)-Transformers Read More »

SEGNN

Geometric and Physical Quantities Improve E(3) Equivariant Message Passing是另一篇研究如何通过几何和物理量来增强E(3)等变消息传递的论文。E(3) 等变性指的是在三维欧几里得空间中,模型在平移、旋转和反射变换下保持不变性。在分子模拟和其他三维数据应用中,捕捉输入数据的对称性(如平移、旋转和反射)是至关重要的。SEGNN实际上与TFN非常相似,甚至其模型计算与结构更加简单,但是SEGNN对于一些操作的术语使用与描述更加专业合理,可能在某些情况下提供了更为直观和易于理解的等变性实现方法。另一方面,TFN强调使用张量场来捕捉几何关系,而SEGNN则更多地依赖于图神经网络的结构和消息传递机制。 1、可导向特征 使用可导向向量(Steerable features)是在图神经网络中实现等变性的有效方法。这里的“可导向性”指的是是一类在特定变换下具有特定行为的特征。例如,如果一个结构被旋转,那么它的可导向特征将以已知的方式响应这次旋转。这些特征通常是在网络的设计中引入对称性和等变性原则,以确保在变换(如旋转、平移或反射)下,特征能够保留输入的对称性。简单说,可导向特征确保了特征表示的等变性,即当输入发生变换时,特征表示也会相应变换。 在SEGNN中,可导向向量的定义如下:向量\(\tilde{h}\)被定义为可导向的,这意味着它可以通过矩阵\(\boldsymbol{D}(g)\)来响应变换\(\mathrm{g}\)。例如,在三维空间中,一个欧几里得向量通过旋转矩阵\(\mathrm{R}\)进行变换,为了表示向量在变换下的行为,矩阵\(\boldsymbol{D}^{(l)}(g)\)通常是Wigner-D,根据球谐函数的定义,这些矩阵是\((2l+1)\)维的,可以作用于对应维数的向量空间。Wigner-D矩阵帮助实现了向量在旋转下的等变性,如图1所示。 图1(a)显示了一个可导向向量\(\tilde{\boldsymbol{h}}^{(l)}\)。可导向向量在不同\(\mathrm{l}\)阶的球谐函数子空间中被展开,这里\(l=0,1,2\),分别表示标量空间、向量空间和张量空间。每个子空间通过基函数\(Y_m^{(l)}\)(球谐函数)进行表示,向量的不同分量\(\left[h\right]_l^m\)与对应的阶数的球谐函数相乘,形成了这个向量的完整表达。具体来说,\(Y^{(l)}(x)\cdot Y_m^{(l)}(\cdot)\) 的运算表示在点\(\mathrm{x}\)处的球谐函数展开与基函数\(Y_{m}^{(l)}(\cdot)\)的组合。\(Y^{(l)}(x)\)是一个向量,包含所有磁量子数\(\mathrm{m}\)对应的球谐函数值,\(Y_{m}^{(l)}(\cdot)\)是具体的一个基函数,表示在某个特定模式下的值。\(Y^{(l)}(x)\)和\(Y_{m}^{(l)}(\cdot)\)的乘积表示一种分解和重构方式,将复杂函数表示为一组基函数的线性组合。这种表示在处理具有旋转对称性的系统时非常有效,能够方便地进行旋转和其他对称操作的计算。 图1(b)描述的是展示了应用旋转矩阵\(\mathrm{R}\)后向量\(\tilde{\boldsymbol{h}}^{(l)}\)的变化。每个子空间分别变换,向量的整体形态随着旋转而变化,但其基本结构和信息保持一致,体现了等变性。旋转矩阵\(\mathrm{R}\)的本质是Winger-D矩阵,Wigner-D 矩阵是对球谐函数在旋转下的变换进行描述,保证了每个分量在旋转下的正确变换行为。因此,当应用旋转矩阵\(\mathrm{R}\)时,不同阶数\(\mathrm{l}\)的子空间\(V_{l}\)内的向量部分通过相应的 Wigner-D

SEGNN Read More »

张量场神经网络TFN

张量场网络(Tensor Field Networks, TFNs)源于论文Tensor Field Networks: Rotation- and translation-equivariant neural networks for 3D point clouds,是一个为分子和物质建模量身定制的工具,其设计充分考虑了化学和物理学的原理,特别是对称性和不变性。通过这种方式,TFN提供了一个强大的框架,可以精确地捕捉分子的三维结构和它们如何相互作用。 1、TFN输入数据的Embedding 嵌入层的作用是将每个点的输入特征(例如原子的类型和状态)映射到一个高维空间,从而能更丰富地表示其化学性质和物理状态。在分子建模中,通过嵌入层将每个原子的类型和状态映射到一个高维空间,张量场网络能够更丰富地表示分子的化学性质和物理状态。这种嵌入表示为网络的后续层提供了基础,同时也是可学习的,确保了网络在训练过程中能够优化这些特征来更好地捕捉分子属性。特别是在处理三维空间中的分子时,张量场网络进一步将这些嵌入向量与SO(3)群的表示相关联,允许网络通过一系列不可约表示来捕捉不同旋转对称性级别的信息。 具体来说,张量场网络的每一层的输入和输出都是一个有限节点集\(\mathrm{S}\),这些点位于3D空间\(\mathbb{R}^3\)中,每个节点都有一个与SO(3)群的表示相关联的向量。换句话说,网络中的每个节点不仅仅是三维空间中的一个坐标点,它还携带了一定的附加信息,这些信息以向量的形式体现,且这个向量是如SO(3)群元素那样可以变换的。在物理意义上,这意味着这些向量能够反映点的旋转性质和对旋转的响应方式,确保网络在处理旋转时能够保持一致性和不变性。这些向量实际上就是Winger D矩阵(详见第一章)不同的不可约表示,对应于旋转对称性的不同球谐函数阶数,这被称作\(\mathrm{l}\) -旋转阶数不可约表示。例如,\(l=0\)对应于标量(无方向的量),\(l=1\)对应于向量(有方向的量),而更高的\(\mathrm{l}\)

张量场神经网络TFN Read More »

LEFTNet

1、三种图同构问题 图同构问题是图论中的一个基本问题,它要求确定两个图是否在结构上完全相同。具体来说,这意味着存在一种顶点间的一对一映射,使得两个图中的顶点相互连接的方式完全一致。如果这样的映射存在,这两个图被认为是同构的。图神经网络是一种专为处理图结构数据设计的神经网络架构,它能够通过节点的特征信息和连接模式来学习图的表示。一个优秀的几何GNN模型可以有效地学习和提取节点和边的特征。这种学习方式使得GNN能够捕捉到图的局部和全局结构特征,这是判断图同构问题时的关键。简单说,对于图同构的识别能力是衡量GNN模型表征能力的重要方面。 LEFTNet中,定义了三种图同构结构: (1)树同构:任意邻接的两原子间的距离一致。 (2)三角同构:任意邻接的三原子构成的三角形一致。 (3)子图同构:任意两个三角形的相对位置保持一致。 具体示例如图1所示: 在图1(a)中,展示了一种满足树同构,但不满足三角同构的情况。三角同构不仅仅是距离上的相似,还包括了角度和方向的一致性。在图1(b)中,展示了一种满足三角同构,但不满足子图同构的情况,而LEFTNet的模型设计方向是让模型对这三种情况都有表征能力。 首先,为了满足树同构的要求,作者认为:只要正确抽取原子间距离即可,所有的几何GNN,无论是等变性质的还是不变性质的几乎均满足。 其次,为了满足三角同构的要求,作者认为:三角同构本质上是局域完备性问题。通过设计一个合理的局域正交坐标系,让此局域坐标有能力可以表征局部空间范围内所有的几何向量。同时还需要满足等变要求,通过将原坐标映射到局域坐标,即可满足局域完备性的要求。这里,LEFTNet的模型直接采用ClofNet中提出的局域坐标系。 最后,为了满足子图同构的要求,模型需要将局域完备性扩展到全域完备性,且这个过程是信息无损的。不幸的是,图结构中不同的节点建立的局域坐标系是不同的。不同局域坐标系相对位置不一样,换句话说,对不同局域坐标系对局部范围内点位置信息的建模角度不同,这导致局域信息汇聚过程中遭受信息损失,如图2所示。 如图2所示,点b和点c分别建立了局域坐标系,在这两个局域坐标系下,cluster(团簇)b和cluster c进行了有效映射。但由于局域坐标下的不同,b处的局域信息和c处的局域信息融合时会存在问题。类比理解可以将cluster b和cluster c看作喜结连理的一对夫妻的原生家庭,由于两个原生家庭所在的生活环境不同,直接交流起来难免存在矛盾。这时候怎么办呢?当然是找夫妻的家人或朋友做中间调理人呀!同理,可以通过节点b和c二者共同的邻居们 a(可能不止一个),两个局域坐标系的信息交互与融合便会更加的有效。下面给出相关概念的具体定义: 令\(S_{i}\)表示与上图节点\(\mathrm{b}\)关联的局域\(\text{clusterb}\),这个局域包含节点\(\mathrm{b}\)的所有一跳邻居(1-hop neighbors)。类似的,定义令\(S_{j}\)表示与上图节点\(\mathrm{c}\)关联的局域\(\text{clusterc}\)。这个局域包含节点\(\mathrm{c}\)的所有一跳邻居(1-hop neighbors)。此时可以定义\(S_{i-j}\),表示节点\(\mathrm{b}\)和节点\(\mathrm{c}\)之间的共享或相互的3D子结构。具体来说,是通过取两个局域\(\text{clusterb}\)和\(\text{clusterc}\)的交集来定义的,这意味着\(S_{i-j}\)包括了所有同时是节点\(\mathrm{b}\)和节点\(\mathrm{c}\)的一跳邻居的节点,以及连接这些节点的边。 2、LSE模块提取局域信息

LEFTNet Read More »

ClofNet

1、局部坐标系 ClofNet的作者指出,在传统的等变几何GNN表征框架中(例如EGNN),通常只考虑了原子或粒子之间的相对位置来描述它们的相互作用,这种方法并没有考虑到外部条件,如恒定电场对粒子间相互作用的影响。在一个恒定电场中,电场对粒子的作用是一个固定方向的向量,这对所有粒子都是一样的,并且与它们的相对位置无关。因此,ClofNet提出了局域坐标系的解决方案,这个坐标系不仅能够捕捉粒子间的相对位置,还能够包含其他的物理因素,如电场方向,局域坐标系具体的定义方法如图1所示。 如图1所示,考虑了一个多体系统中的两体子系统\((x_i,x_j)\),这个系统不随时间变化,可以被看作是一个具有两个节点和一条边的图。一般而言,两个粒子间的相互作用函数可以分解成两部分:\(U\left(x_{i},x_{j}\right):=U_{\mathrm{in}}\left(\parallel x_{i}-x_{j}\parallel\right)+U_{\mathrm{ext}}\left(x_{i},x_{j}\right)\) ,其中第一部分是相对距离\(\left|x_i-x_j\right|\)的函数(例如电静力),第二部分描述了可能取决于相对距离和角度(例如电磁场、扭力)的外部力场的影响。因此,\(U_{\mathrm{ext}}\left(x_i,x_j\right)\)的梯度可以沿着任意方向在3D空间中发散。大多数几何GNN方法在处理这种力预测问题时,都是通过采用不变特征(例如,相对距离)作为输入,并表示沿径向的力,即\(F_{i}=k\left(x_{i}-x_{j}\right)\),这在梯度\(\nabla U_{\mathrm{ext}}(x_i,x_j)\)不是沿着径向时是不够的。为了解决这个问题,clofNet提出了一个正交的等变局部坐标系框架(一种正交基组),用于构建和表示几何数据更完备的局部结构。具体来说,取\(x_{i}-x_{j}\)作为第一个分量/方向\(\mathrm{a}\),然后\(x_i\times x_j\)作为第二方向\(\mathrm{b}\)。最后,前两个方向的叉积被作为第三方向\(\mathrm{c}\)。这三个向量\(\mathrm{a}\),\(\mathrm{b}\)和\(\mathrm{c}\) 定义了一个局部坐标系,由于叉乘的性质,\(\mathrm{b}\)垂直于\(\mathrm{a}\),\(\mathrm{c}\)垂直于\(\mathrm{a}\)和\(\mathrm{b}\) 。换句话说,这个坐标系具有正交性。 2、clofNet模型总体架构 clofNet模型处理数据的流程可以分为中心化(Centralization)、局部完备框架(Complete Frame)、标量化(Scalarize)、消息传递模块(GMP)、向量化(Vectorize)和迭代更新六个步骤,如图2所示。 针对输入数据,模型首先将每个点的位置进行中心化处理。这通常意味着会从每个位置向量中减去所有位置向量的平均值,以确保模型对平移保持不变。这是因为通过减去所有点位置向量的平均值,实际上是在重新定位整个系统的中心(质心)到原点(坐标系的中心)的距离。这样,模型就不会将任何特定的位置作为参考点,因此无论系统在空间中如何平移,模型的输出都将保持不变。 局部完备框架\(\mathcal{F}_{ij}\)就是上一小节解释的局部正交坐标系。具体来说,令\(a_{ij}^{t}=\frac{x_{i}(t)-x_{j}(t)}{\begin{Vmatrix}x_{i}(t)-x_{j}(t)\end{Vmatrix}}\),则可以定义\(b_{ij}^{t}=\frac{x_{i}(t)\times x_{j}(t)}{\left|x_{i}(t)\times x_{j}(t)\right|}\)和\(c_{ij}^t=a_{ij}^t\times b_{ij}^t\)。这三个相互正交的基组可以构建一个\(SO(3)\)-等变框架\(\mathcal{F}{ij}:\mathrm{EquiFrame}\left(x_{i},x_{j}\right)=\left(a_{ij}^{t},b_{ij}^{t},c_{ij}^{t}\right)\)。实际操作中,我们添加一个小常数\(\epsilon\)到归一化因子中,以防\(x_{i}\)和\(x_{j}\)发生重合。 基于上述的局部完备框架\(\mathcal{F}_{ij}\),可以将任意几何向量转换为\(SO(3)\)不变的标量值。具体方法是将几何向量投影到\(\mathcal{F}_{ij}\)的基组上,通过内积获得相应的系数,这些系数是不变标量,表示为\(t_{ij}=\left(x_{i}\cdot a_{ij}^{t},x_{i}\cdot b_{ij}^{t},x_{i}\cdot

ClofNet Read More »

Scroll to Top