引言

我们在 机器学习分子力场:综述 中提到,2017年消息传递框架的提出解放了原子环境的表示学习。此后四年间,沿着”往网络里塞进更多几何信息”这条主线,出现了四个里程碑式的不变神经网络:SchNet、PhysNet、DimeNet和GemNet。它们全部满足同一个约束——输出在$E(3)$群作用下严格不变:

其中$R$是任意旋转,$\vec{t}$是平移,$\mathcal{P}$是同种元素间的置换。实现不变性的代价是把所有几何信息压缩为标量,四个模型的差异恰恰在于压缩时保留了多少信息。这篇文章依次解析它们。

SchNet:连续滤波卷积

SchNet(Schütt et al., 2017)是第一个把MPNN框架完整用于力场的模型,它要解决的问题是:如何让卷积对任意旋转不变?

标准CNN的卷积核在空间上是各向异性的——这正是它能识别方向性特征的原因,但在分子图里邻居没有固定的空间排布,各向异性滤波器会破坏旋转不变性。SchNet的方案干脆利落:把滤波器做成径向函数,只依赖原子间距离:

其中$\odot$是逐元素乘法,$W^{(l)}(r)$称为连续滤波器,由一个小型全连接网络从距离生成:

高斯展开保证了滤波器对$r$可微——这一点至关重要,因为力需要通过能量对坐标求导得到。

SchNet的贡献与其说是精度(以今天的眼光看它的QM9误差并不突出),不如说是范式:端到端、纯数据驱动、无需任何手工描述符。它的缺陷同样明显:只看距离意味着两个夹角不同的三原子构型在网络眼里毫无区别,而化学键的方向性恰恰由角度主导。

PhysNet:物理先验的回归

PhysNet(Unke & Meuwly, 2019;常被引用为Unke & Tkatchenko后续工作的基础架构)在架构上与SchNet同源,但它回答的是另一个问题:纯数据驱动的网络能不能学会正确的长程物理?

答案是否定的。Unke等人指出,机器学习势有一个系统性缺陷:在分子解离的渐近区,网络给出的能量行为是错误的。原因是训练集里几乎不存在大间距构型,网络只能靠外推,而神经网络的外推臭名昭著。具体来说,两个中性片段分离到无穷远时,相互作用应渐近于色散力:

但一个只看局部环境的多项式型网络无法产生这样的标度律。

PhysNet的解决方案是把物理先验显式写进能量分解中:

其中$q_i$是由网络预测的部分电荷(通过 electronegativity equalization 原理保证电荷守恒),静电项和色散项按物理形式显式计算。这样即使网络部分外推出错,长程行为仍由解析式兜底。

PhysNet同时预测能量、力、偶极矩和部分电荷的多任务训练方案也成了后来者的标配。它的教训值得铭记:归纳偏置不是越少越好,该有的物理一项都不能省

DimeNet:方向消息传递

DimeNet(Klicpera, Gastegger, Gasteiger et al., ICLR 2020)正面攻克了角度问题。它的出发点是一个观察:原子$i$的局部环境中,真正有化学意义的信息藏在键角$\theta_{jk}$——即两条相邻键$\vec{r}_{ij}$与$\vec{r}_{ik}$之间的夹角——里。但MPNN的消息$m_{ij}=M(h_i,h_j,e_{ij})$天然不含角度。

DimeNet的关键创新是把消息嵌入到由相邻键定义的局部坐标系中。对于消息$h_{ij}^{(0)}$(从$j$指向$i$),构造以键$\vec{r}_{ji}$为$z$轴的Bessel坐标系,将另一条键$\vec{r}_{jk}$相对于该坐标系的方位编码进去:

这里用到了两组基函数:

  • 径向部分用球Bessel函数$\mathcal{B}_n(r)$替代高斯展开,它在截断半径内正交归一且在边界处平滑归零,避免了高斯基的冗余与不连续;
  • 角度部分用球谐函数$Y_l^m$展开。

注意球谐函数在这里只是作为一组完备的角度基被使用,展开系数仍是标量,所以整个模型依然旋转不变——这是DimeNet最精巧也最容易误读的地方。

消息更新规则也随之改为方向感知的形式:

即更新$j\to i$的消息时要参考$j\to k$的消息和嵌入的角度信息,故称方向消息传递(directional message passing)。

效果是立竿见影的:在MD17基准上DimeNet比此前最好的GNN力场误差降低76%,在QM9上降低31%。不过方向消息传递的图遍历复杂度是$O(n^3)$级别,计算成本高昂,这也为后来的工程改进埋下伏笔。

GemNet:两跳消息传递

GemNet(Gasteiger et al., NeurIPS 2021)是DimeNet作者团队的收官之作,它做了两件事:理论上的证明和工程上的简化。

理论证明:文章首先证明了两个命题——(1) 使用有向边嵌入(directed edge embeddings,即区分$h_{ij}$与$h_{ji}$)的消息传递模型是万能逼近器;(2) 在此基础上引入两跳消息传递(two-hop message passing,即更新一条边的消息时参考经过中间原子的二阶邻域路径)后,模型对几何配置的表达能力达到该框架下的上限。这为”为什么角度信息必须通过两跳路径进入消息”给出了数学解释。

架构设计:基于上述结论,GemNet设计了如下的量子化消息更新:

每条边$(j\to i)$的消息聚合来自所有两跳路径$k\to j\to i$,路径的角度结构由球谐基函数编码。相比DimeNet,GemNet去掉了昂贵的对称化步骤和全局消息聚合,速度更快、参数更省,在COLL、MD17和OC20上分别取得34%、41%、20%的提升。

到GemNet为止,不变网络的进化到达了逻辑终点:能塞进标量的几何信息已经全部塞进去了。再往前走一步,就必须放弃不变性本身——这就是等变神经网络的起点,详见 等变神经网络:原理与脉络

总结:不变网络的天花板

回望这条进化链,每一代模型都在回答同一个问题:如何在保持旋转不变的前提下保留更多几何信息?

模型 距离 键角 长程物理 表达力证明
SchNet
PhysNet
DimeNet
GemNet

天花板是结构性的:力是矢量、偶极矩是矢量、极化率是张量,把它们全部经由”标量表示→求导还原”的迂回路径获得,既浪费样本又损失精度。等变神经网络直接让中间表示携带张量属性,从根子上解决了这个问题。