MPNN消息传递神经网络论文阅读

前言

最近读了Neural Message Passing for Quantum Chemistry(MPNN arxiv),我导和我一致认为这篇论文有点拉跨,但毕竟是Message Passing Neural Networks的首次提出,所以还是讲一下。本文旨在提供一个high level的idea,并不讨论细节。

任务

给定化学分子,对它的量子化学性质进行预测,DFT方法计算昂贵,本文提出了MPNN方法,速度很快,且误差也很小。

方法

1. 框架

作者从六大类图神经网络中抽象出了一个框架:MPNN,并且以GG-NN作为baseline(原文:We began our exploration of MPNNs around the GG-NN model which we believe to be a strong baseline.)。

该框架分为三个部分:Message passingVertex updatingReadout

M_t是一个函数/神经网络,Message passing就是说用顶点v以及它的邻居w的隐藏状态(hidden state),以及连接它们的边的信息,生成信息m_v^{t+1}

U_t是一个函数/神经网络,Vertex updating就是说用刚才生成的m_v^{t+1},和自己的隐藏状态,更新为h_v^{t+1}

R是一个函数/神经网络,Readout就是说整合所有节点T次迭代(Message passing+Vertex updating)之后的隐藏状态,做一个输出。

2. baseline

作者的思想就是以GG-NN为baseline,然后替换三大部分中的构件,取得一个好的效果。

Message passing:使用可学习的、与边vw相关的矩阵A,去乘节点w的隐藏状态。缺点是没有利用顶点v的隐藏状态。

Vertex updating:GRU是Gated Recurrent Unit,读者可以自行去了解。

Readout:熟悉GLU(Gated Linear Units)的读者会一眼看出这个结构:σ()⊙()。内部的i和j是两个不同的神经网络,i将初始状态也作为输入。但是二者的输出维度必须是一样的,因为要做对应元素相乘⊙。

3. Interaction

f是一个神经网络,它用到了顶点v的隐藏状态。

4. set2set

论文里说的是将元组(h_v^T,x_v)进行线性投影,形成T=\{(h_v^T,x_v)\},然后经过M步计算,得到一个图级的嵌入q_t^*,再将q_t^*输入到一个神经网络中得到最终的输出。

5. multiple towers

为了提高模型的运行速度以及对大图的泛化能力,作者提出了多塔(其实就是MapReduce的思想)。节点属性的维度是d,现在将属性划分为k个维度是d/k的属性,每个分布式分别迭代所有节点的d/k属性,最后再拼接起来输入到一个神经网络中进行readout。

实验

1. 数据集

作者选择了QM-9数据集,内含130462个分子,随机选择其中的10000个作为验证集,10000个作为测试集。分子的性质包括原子类型、质子数等。

2. 步骤

这里放原文的一句话:We focused on trying different message functions, output functions, finding the appropriate input representation, and properly tuning hyperparameters.其实就是炼丹。

结果

1. 超越baseline

在所有的13个性质预测中都取得了最小的误差(Target是13个预测任务,左边是之前的方法,中间是baseline,右侧是作者的方法)。

2. 类似消融实验

Virtual edge虚拟边(对没连接的节点进行连接) ,Master node主节点(与所有的节点相连),set2set就是之前提到的readout阶段的东西。可以看出set2set效果是最好的。

对比joint training(13个任务联合训练)和individual training(对每个任务分别训练),肯定是有针对性效果更好;对比有8个tower和没有,有塔的误差更小,达到了泛化能力强的目标。

结语

有问题欢迎在评论区探讨!

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Burger~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值