论文标题:Neural Message Passing for Quantum Chemistry
论文链接:https://arxiv.org/abs/1704.01212
论文来源:ICML 2017
一、概述
近年来,随着量子化学计算和分子动力学模拟等实验的展开产生了巨大的数据量,大多数经典的机器学习技术都无法有效利用目前的数据。而原子系统的对称性表明,能够应用于网络图中的神经网络也能够应用于分子模型。所以,找到一个更加强大的模型来解决目前的化学任务可以等价于找到一个适用于网络图的模型。
本文的目标是证明:能够应用于化学预测任务的模型可以直接从分子图中学习到分子的特征,并且不受到图同构的影响。本文提出的MPNN是一种用于图上监督学习的框架,能够概括之前一些文献提出的一些方法,并且能够按照这个框架提出一些新的架构。本文提出的新的MPNN变种基于实际的应用场景:预测有机小分子的量子力学性质。并且,作者希望以后提出的新的MPNN变种能够从实际的应用出发,从实际应用中获得启发。
本文以QM9作为benchmark数据集,这个数据集由130k个分子组成,每个分子有13个性质,这些性质是通过一种计算昂贵的量子力学模拟方法(DFT)近似生成的,相当于13个回归任务。这些任务似乎代表了许多重要的化学预测问题,并且目前对许多现有方法来说是困难的。
本文提出的模型的性能度量采用两种形式:
①DFT近似的平均估计误差;
②化学界已经确立的目标误差,称为“化学精度”。
二、消息传递神经网络
本文介绍了能够应用MPNN框架的8篇文献,为了简便起见,以处理无向图为例,无向图包含节点特征和边的特征,将这种形式推广到有向重图是不重要的。MPNN前向传播的过程包含两个阶段,即消息传递阶段(message passing phase)和读出阶段(readout phase)。消息传递阶段运行个时间步并且依赖消息函数以及节点更新函数。在消息传递阶段,每个节点的隐状态都会根据消息进行更新,具体过程是:
代表节点的邻居节点集合。读出阶段使用某种读出函数来为整个图计算一个特征向量:
都是用来学习的可微函数。作用于节点状态集合,并且必须对节点状态的排列保持不变,以使MPNN对图同构保持不变。注意MPNN也可以学习边的特征,这可以通过为每条边引入隐状态并应用前面的两个过程来实现。接下来,我们通过指定所使用的消息函数、顶点更新函数和读出函数来定义以前文献中的模型。
- Convolutional Networks for Learning Molecular Fingerprints, Duvenaud et al. (2015)
本文提出的模型采用的消息函数是:
代表拼接。节点更新函数是:
是节点的度,对应于时间步以及节点度的学习矩阵。读出函数将之前所有隐状态进行连接:
是一个神经网络,是时间步的一个学习矩阵。
这样的消息传递的方法可能有问题,因为最终得到的消息向量为,这是边和节点状态向量的加和,缺乏边和节点状态向量的交互。
- Gated Graph Neural Networks (GG-NN), Li et al.(2016)
消息函数为:
是特定于边的标签的学习矩阵(这个模型假设边有离散的标签)。更新函数如下:
GRU就是门控循环单元,一种循环神经网络,对于每个时间步进行权重共享,也就是说每个时间步共用同一个更新函数。最后,读出函数:
代表神经网络,代表哈达玛积。
- Interaction Networks, Battaglia et al. (2016)
这个模型考虑了两种情况,一种是每个节点都有自己的目标,另一种是有一个graph level的目标。它还考虑了在每个时间步骤中存在node level影响的情况,在这种情况下,更新函数将连接作为输入,其中是一个外部向量,表示顶点受到的外部影响。消息函数是一个神经网络,使用拼接向量作为输入,节点更新函数也是一个神经网络,使用作为输入。最终读出函数得到一个graph level的输出:,这里是一个神经网络。注意,这个模型只定义了的情况。
- Molecular Graph Convolutions, Kearnes et al. (2016)
这个模型与之前的MPNNs稍微有一些不同,是因为它引入了边的表示,并且会在消息传递阶段进行更新。消息函数为:
节点更新函数为:
同样的代表拼接,代表ReLU激活函数,是学习权重矩阵。边状态更新的方式是:
都是学习矩阵。
- Deep Tensor Neural Networks, Sch¨utt et al. (2017)
消息函数为:
是矩阵,是偏置向量。更新函数为:
读出函数使用单个隐层神经网络独立地通过每个节点,并对输出进行求和:
- Laplacian Based Methods, Bruna et al. (2013); Deffer�rard et al. (2016); Kipf & Welling (2016)
8篇文献中有3篇属于这一类。其中两篇采用消息函数:
矩阵通过拉普拉斯矩阵的特征向量和模型的学习参数来参数化。更新函数为:
代表非线性函数,比如ReLU激活函数。
另一篇文献采用消息函数:
这里。节点更新函数为:
三、MPNN变种
本文以前述GG-NN作为baseline进行改进,提出一种新的MPNN变种。下文中以代表节点特征的维度,以代表图的节点的数量。这一变种适用于有向图,这意味着入边和出边有分别的信息通道,那么信息由和拼接而成,当我们将模型应用无向图时,就把无向图的边看做两条边,包含一条入边,一条出边,有相同的标签,这样处理的方式意味着信息通道的大小是而不是。
模型的输入是每个节点的特征向量以及邻接矩阵,邻接矩阵具有向量分量,表示分子中的不同化学键以及两个原子之间的成对空间距离。初始状态是原子输入特征集合,并且需要padding到维度。在实验中的每个时间步都要进行权重共享,并且更新函数采用GRU。
- 消息函数
GG-NN原本采用的消息函数,采用矩阵相乘的方式(注意原来的GG-NN的边有离散的标签,而现在我们假设的边有一个特征向量):
是特定于边的标签的学习矩阵。为了兼容边特征,本文提出了新的消息函数:
是一个神经网络,将边的特征向量映射到一个的矩阵。上述两种消息函数的特点是消息只依赖于和而不依赖于,如果消息同时依赖目标节点与源节点,那么应该是更加高效的,可以尝试以下这种消息函数:
这里是一个神经网络。
对于有向图,一共有两个消息函数和,对于边应用哪个消息函数取决于边的方向。
- 虚拟图形元素
本文探索了两种方式来改变模型中信息的传递。第一种是为未连接的节点对添加一个单独的“虚拟”边类型。这一处理可以在预处理时实现,效果是可以使得在传播过程中让信息传播更远的距离。
另一种方式是添加一个“master”节点,让它通过一种特殊类型的边与所有节点连接。“master”节点充当全局暂存空间,每个节点在消息传递的每个步骤中都对其进行读写操作。另外“master”节点拥有单独的节点维度,以及内部更新函数(实验中是GRU)的单独权重。这同样可以使得在传播过程中让信息传播更远的距离。这样可以允许模型有更大的容量,同时也不会过多的损失效率,其复杂度为。
- 读出函数
读出函数采用set2set模型,这个模型使用作为输入,然后再经过步计算后生成一个graph level的embedding,其中过程与内节点顺序无关,最终将输入到一个神经网络中来获得最终输出。具体参考文献: Sequence to sequence for sets。
- Multiple Towers
由于消息传递阶段的复杂度为,当和增大时,计算上就会是昂贵的。处理的方法是将拆分成个不同的维的embedding,并且在每个上独立运行传播过程得到,然后进行混合:
代表神经网络,代表拼接,在所有节点上共享。这样的混合过程保持了节点排列的不变性,同时允许图的不同副本在传播阶段相互通信。这样的设计提升了计算效率,比如在使用矩阵相乘的消息函数时一个副本的复杂度为,当有个副本时一共为。
四、输入表示
一个分子有很多特征,如下图所示:
边的特征包括化学键与距离,因此有以下三种表示方式:
①化学图(Chemical Graph):在不考虑距离的情况下,邻接矩阵的值是离散的键类型:单键,双键,三键或芳香键;
②距离分桶(Distance bins):GG-NN基于矩阵乘法的消息函数的前提假设是“边信息是离散的”,因此作者将键的距离分为 10 个 bin,比如说 中均匀划分 8 个 bin,为 1 个 bin,为 1 个 bin;
③原始距离特征(Raw distance feature):也可以同时考虑距离和化学键的特征,这时每条边都有自己的特征向量,此时邻接矩阵的每个实例都是一个 5 维向量,第一维是距离,其余4维是一个独热向量,代表4种不同的化学键。
五、实验
实验中对比了本文提出的方法与现有的方法:
以下为不考虑空间信息的结果:
以下为一些消融实验:
具体实验设置参照原文。