网上有关“MPNN:消息传递神经网络 ”话题很是火热 ,小编也是针对MPNN:消息传递神经网络寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您 。
近年来,随着量子化学计算和分子动力学模拟等实验的展开产生了巨大的数据量 ,大多数经典的机器学习技术都无法有效利用目前的数据。而原子系统的对称性表明,能够应用于网络图中的神经网络也能够应用于分子模型。所以,找到一个更加强大的模型来解决目前的化学任务可以等价于找到一个适用于网络图的模型。
本文的目标是证明:能够应用于化学预测任务的模型可以直接从分子图中学习到分子的特征 ,并且不受到图同构的影响 。本文提出的MPNN是一种用于图上监督学习的框架,能够概括之前一些文献提出的一些方法,并且能够按照这个框架提出一些新的架构。本文提出的新的MPNN变种基于实际的应用场景:预测有机小分子的量子力学性质。并且 ,作者希望以后提出的新的MPNN变种能够从实际的应用出发,从实际应用中获得启发 。
本文以QM9作为benchmark数据集,这个数据集由130k个分子组成 ,每个分子有13个性质,这些性质是通过一种计算昂贵的量子力学模拟方法(DFT)近似生成的,相当于13个回归任务。这些任务似乎代表了许多重要的化学预测问题 ,并且目前对许多现有方法来说是困难的。
本文提出的模型的性能度量采用两种形式:
①DFT近似的平均估计误差;
②化学界已经确立的目标误差,称为“化学精度” 。
本文介绍了能够应用MPNN框架的8篇文献,为了简便起见,以处理无向图 为例 ,无向图 包含节点特征 和边的特征 ,将这种形式推广到有向重图是不重要的。MPNN前向传播的过程包含两个阶段,即消息传递阶段(message passing phase)和读出阶段(readout phase)。消息传递阶段运行 个时间步并且依赖消息函数 以及节点更新函数 。在消息传递阶段 ,每个节点的隐状态 都会根据消息 进行更新,具体过程是:
代表节点 的邻居节点集合。读出阶段使用某种读出函数 来为整个图计算一个特征向量:
都是用来学习的可微函数。 作用于节点状态集合,并且必须对节点状态的排列保持不变 ,以使MPNN对图同构保持不变 。注意MPNN也可以学习边的特征,这可以通过为每条边引入隐状态 并应用前面的两个过程来实现。接下来,我们通过指定所使用的消息函数 、顶点更新函数 和读出函数 来定义以前文献中的模型。
本文提出的模型采用的消息函数是:
代表拼接。节点更新函数是:
是节点 的度 , 对应于时间步 以及节点度 的学习矩阵 。读出函数将之前所有隐状态 进行连接:
是一个神经网络, 是时间步 的一个学习矩阵。
这样的消息传递的方法可能有问题,因为最终得到的消息向量为 ,这是边和节点状态向量的加和,缺乏边和节点状态向量的交互。
消息函数为:
是特定于边的标签的学习矩阵(这个模型假设边有离散的标签) 。更新函数如下:
GRU就是门控循环单元,一种循环神经网络,对于每个时间步进行权重共享 ,也就是说每个时间步共用同一个更新函数。最后,读出函数:
代表神经网络, 代表哈达玛积。
这个模型考虑了两种情况 ,一种是每个节点都有自己的目标,另一种是有一个graph level的目标 。它还考虑了在每个时间步骤中存在node level影响的情况,在这种情况下 ,更新函数将 连接作为输入,其中 是一个外部向量,表示顶点 受到的外部影响。消息函数 是一个神经网络 ,使用拼接向量 作为输入,节点更新函数 也是一个神经网络,使用 作为输入。最终读出函数得到一个graph level的输出: ,这里 是一个神经网络 。注意,这个模型只定义了 的情况。
这个模型与之前的MPNNs稍微有一些不同,是因为它引入了边的表示 ,并且会在消息传递阶段进行更新。消息函数为:
节点更新函数为:
同样的 代表拼接 , 代表ReLU激活函数, 是学习权重矩阵 。边状态更新的方式是:
都是学习矩阵。
消息函数为:
是矩阵, 是偏置向量。更新函数为:
读出函数使用单个隐层神经网络独立地通过每个节点 ,并对输出进行求和:
8篇文献中有3篇属于这一类。其中两篇采用消息函数:
矩阵 通过拉普拉斯矩阵的特征向量和模型的学习参数来参数化 。更新函数为:
代表非线性函数,比如ReLU激活函数。
另一篇文献采用消息函数:
这里 。节点更新函数为:
本文以前述GG-NN作为baseline进行改进,提出一种新的MPNN变种 。下文中以 代表节点特征的维度 ,以 代表图的节点的数量。这一变种适用于有向图,这意味着入边和出边有分别的信息通道,那么信息 由 和 拼接而成 ,当我们将模型应用无向图时,就把无向图的边看做两条边,包含一条入边 ,一条出边,有相同的标签,这样处理的方式意味着信息通道的大小是 而不是 。
模型的输入是每个节点的特征向量 以及邻接矩阵 ,邻接矩阵 具有向量分量 ,表示分子中的不同化学键以及两个原子之间的成对空间距离 。初始状态 是原子输入特征集合 ,并且需要padding到维度 。在实验中的每个时间步 都要进行权重共享,并且更新函数采用GRU。
GG-NN原本采用的消息函数 ,采用矩阵相乘的方式(注意原来的GG-NN的边有离散的标签,而现在我们假设的边有一个特征向量 ):
是特定于边的标签的学习矩阵 。为了兼容边特征,本文提出了新的消息函数:
是一个神经网络 ,将边的特征向量 映射到一个 的矩阵。上述两种消息函数的特点是消息只依赖于 和 而不依赖于 ,如果消息同时依赖目标节点与源节点,那么应该是更加高效的 ,可以尝试以下这种消息函数:
这里 是一个神经网络。
对于有向图,一共有两个消息函数 和 ,对于边 应用哪个消息函数取决于边的方向 。
本文探索了两种方式来改变模型中信息的传递。第一种是为未连接的节点对添加一个单独的“虚拟”边类型。这一处理可以在预处理时实现 ,效果是可以使得在传播过程中让信息传播更远的距离。
另一种方式是添加一个“master”节点,让它通过一种特殊类型的边与所有节点连接 。“master ”节点充当全局暂存空间,每个节点在消息传递的每个步骤中都对其进行读写操作。另外“master”节点拥有单独的节点维度 ,以及内部更新函数(实验中是GRU)的单独权重。这同样可以使得在传播过程中让信息传播更远的距离 。这样可以允许模型有更大的容量 ,同时也不会过多的损失效率,其复杂度为 。
读出函数采用set2set模型,这个模型使用 作为输入 ,然后再经过 步计算后生成一个graph level的embedding ,其中过程与 内节点顺序无关,最终将 输入到一个神经网络中来获得最终输出。具体参考文献: Sequence to sequence for sets 。
由于消息传递阶段的复杂度为 ,当 和 增大时,计算上就会是昂贵的。处理的方法是将 拆分成 个不同的 维的embedding ,并且在每个 上独立运行传播过程得到 ,然后进行混合:
代表神经网络, 代表拼接, 在所有节点上共享。这样的混合过程保持了节点排列的不变性 ,同时允许图的不同副本在传播阶段相互通信 。这样的设计提升了计算效率,比如在使用矩阵相乘的消息函数时一个副本的复杂度为 ,当有 个副本时一共为 。
一个分子有很多特征,如下图所示:
边的特征包括化学键与距离 ,因此有以下三种表示方式:
①化学图(Chemical Graph):在不考虑距离的情况下,邻接矩阵的值是离散的键类型:单键,双键 ,三键或芳香键;
②距离分桶(Distance bins):GG-NN基于矩阵乘法的消息函数的前提假设是“边信息是离散的”,因此作者将键的距离分为 10 个 bin,比如说 中均匀划分 8 个 bin , 为 1 个 bin, 为 1 个 bin;
③原始距离特征(Raw distance feature):也可以同时考虑距离和化学键的特征,这时每条边都有自己的特征向量 ,此时邻接矩阵的每个实例都是一个 5 维向量,第一维是距离,其余4维是一个独热向量 ,代表4种不同的化学键。
实验中对比了本文提出的方法与现有的方法:
以下为不考虑空间信息的结果:
以下为一些消融实验:
具体实验设置参照原文 。
最小割集是在图论中常见的一个概念,它指的是将一个连通图分割成两个不相交的子图所需要删除的最少的边的集合。求解最小割集在某些算法和应用中是非常重要的,例如网络流算法、图像分割和社交网络分析等。下面介绍两种求解最小割集的方法:Ford-Fulkerson算法和Stoer-Wagner算法。
Ford-Fulkerson算法
Ford-Fulkerson算法是一种经典的求解最小割集的方法,它基于增广路的概念 ,通过不断地增广割集来逼近最小割集 。具体步骤如下:
1.1. 初始化流量为0,选择任意一对源点和汇点。
1.2. 在残留网络中寻找一条增广路,即一条从源点到汇点的路径 ,使得路径上所有边的残留容量都大于0。
1.3. 对于增广路上的每条边,将其流量加上该边的残留容量 。
1.4. 重复步骤1.2和1.3,直到无法找到增广路为止。
1.5. 根据最终的流量 ,将图分割成两个不相交的子图,其中源点属于一个子图,汇点属于另一个子图。
1.6. 最小割集即为所有从第一个子图到第二个子图的边的集合 。
Ford-Fulkerson算法的时间复杂度为O(Ef) ,其中E为图中边的数量,f为最大流量。虽然该算法的理论时间复杂度很高,但实际应用中效率较高 ,并且易于实现。
Stoer-Wagner算法
Stoer-Wagner算法是一种基于谱图理论的求解最小割集的方法,它通过不断合并节点来逼近最小割集 。具体步骤如下:
2.1. 初始化割集为一个空集。
2.2. 选择任意一个节点作为初始节点。
2.3. 对于剩余的节点,计算它们与当前节点的连边的权值和,选择权值和最大的节点作为下一个节点 。
2.4. 将当前节点和下一个节点合并 ,得到一个新的节点。
2.5. 重复步骤2.3和2.4,直到所有节点都被合并为止。
2.6. 根据最终的割集,将图分割成两个不相交的子图。
2.7. 如果割集的权值小于当前的最小割集 ,则更新当前的最小割集 。
2.8. 重复步骤2.2到2.7,直到所有的节点都被作为初始节点进行了一次操作为止。
Stoer-Wagner算法的时间复杂度为O(V^3),其中V为图中节点的数量。该算法的时间复杂度较高 ,但是它对于一些特殊类型的图,如稠密图和有向图等,具有较好的效果 。
综上所述 ,Ford-Fulkerson算法和Stoer-Wagner算法是求解最小割集的两种经典方法。这两种方法均可应用于不同类型的图,但它们的时间复杂度和适用场景有所不同,需要根据具体情况进行选择。
关于“MPNN:消息传递神经网络 ”这个话题的介绍 ,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!
本文来自作者[sqyy]投稿,不代表瑞骐号立场,如若转载,请注明出处:https://sz-rich.com.cn/cshi/202507-8359.html
评论列表(4条)
我是瑞骐号的签约作者“sqyy”!
希望本篇文章《MPNN:消息传递神经网络》能对你有所帮助!
本站[瑞骐号]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育
本文概览:网上有关“MPNN:消息传递神经网络”话题很是火热,小编也是针对MPNN:消息传递神经网络寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您...