图神经网络和分子表征:3. 不变网络最后的辉煌

写这篇文章的时候已经是2023年的8月份,GNN for molecule property prediction 这个小领域正在变得火热起来,各大榜单被不断刷新,颇有当年 CNN 刷榜 imagenet 的势头。

由于对力、维里等性质有着内禀优势,当下高居榜首的模型毫无疑问是NequIP, MACE这些等变模型。与此同时,传统不变模型的江山正在一点点被蚕食,逐渐走向没落。话虽如此,学习不变模型依然是有必要的,因为不变的3D-based模型成功打败了传统的2D模型,其对角度、二面角等几何信息的利用,消息传递机制的设计都非常值得我们学习。

本篇博客,我们将依次介绍首次纳入角度信息的DimeNet(2020 ICLR),受DimeNet启发的GemNet (NeurIPS 2021),PAINN(2021 ICML)和SphereNet(2022 ICLR)以及做到局域完备性的ComENet(NeurIPS 2022)。

(放GNN Expressive的slide镇楼)
在这里插入图片描述

DimeNet

DimeNet 是划时代的一个网络架构。

之所以给这么高的评价,是因为在 DimeNet 之前,所有的网络结构最多只利用了几何信息中的距离信息,而 DimeNet 是第一个将角度信息引入 GNN 的模型,虽然引入的方式现在看十分的笨重。

其消息传递机制如下所示:
在这里插入图片描述
节点 i 有 Ni 个邻居,节点 j 是其中一个。节点 j 又有 Nj 个邻居,k1, k2, k3是其中三个。

节点 i 将收到来自 Ni 个邻居的 Ni 条信息,每一条信息的制作过程由 各个邻居负责。以邻居 j 为例,它将除了 i 意外的所有自己邻居的信息进行一个汇总,后再传给 i,这期间就包含了以 j 为核心的,角度 k1 j i 的信息。

如果你觉得上面这段话抽象,你可以设想节点 i 是一个国王,他将向子民收税。首先,国王向大臣(最近的一圈邻居)收税。大臣们收到命令后,向老百姓收税,大臣们汇集之后,再向国王缴税。当然这是一个简化的模型。

不过,可以很清晰的看到,这种消息传递的机制涉及 2-hop 的消息传递,这使得 DimeNet 的算力消耗大幅增加。

为了充分利用引入的角度信息,DimeNet 从 DFT 领域中引入了球极坐标系,以便适配 spherical harmonics 基组。

然而,DimeNet 部分模块设计非常不合理,其改进版本 DimeNet++ 很快发布,并在2020年底登上了 NeurIPS。现在 DIG 仓库中已经没有 DimeNet 了,默认的是 DimeNet++ 版本。

GemNet,PAINN和SphereNet

DimeNet 的发布引起了不小的轰动,多位研究小组加入战场。其中比较有代表性的分别是 GemNet 和 PAINN。SphereNet 入局较晚,但也收获了一篇ICLR。

GemNet 的思路比较好理解,既然 2-hop 的消息传递能够提升精度,3-hop 势必能更进一步。如果说, 2-hop 可以引入 三体 间的角度,那么 3-hop 则可以引入 四体 间的二面角。

我们顺延上一小节的例子就是,国王向大臣征税,大臣向乡绅征税,乡绅向老百姓征税,过三层。国王、大臣、乡绅和百姓构成的四体关系能够有效提炼出二面角信息。
在这里插入图片描述
然而,这样做的代价就是,虽然精度提高了,但计算量猛增。从 DimeNet 的 O ( n k 2 ) O(nk^2) O(nk2) 增到 O ( n k 3 ) O(nk^3) O(nk3)
GemNet 在 qm9 上维持了相当长时间的 SOTA 记录,但从技术角度看,这并不是一个 smart 的技术路线。

PAINN 则指出,DimeNet 的角度引入方式可以进一步精简。
在这里插入图片描述
PAINN 创新性的引入了向量的概念,如上图所示。PAINN 对比了三个几何信息。距离信息仅需要 O(N) 的计算量,但无法反映键角的变化。键角信息的计算需要 O ( n 2 ) O(n^2) O(n2) 的成本,然而方向信息可以进一步缩减至 O ( n ) O(n) O(n) 。(两向量求和本身就包含了键角信息)

因此,PAINN 将消息传递分成了由标量几何信息(距离)承载的路线和由向量几何信息(方向)承载的路线。(并行的两条)

这种方式进一步可以将整个网络架构改造成等变网络,对力,导热性质等的预测精度大幅提升。我想,这大概是等变网络兴起的开端。(至少也是起了推动作用)
在这里插入图片描述
最后,发布 DimeNet 的 ShuiwangJi 小组在2021年也发布了能够嵌入二面角信息的网络 SphereNet,然而由于 GemNet 表现过于亮眼(虽然大部分是计算量换来的)SphereNet 未能在 2021 年见刊,最终拖延到了2022年年初发表在了 ICLR 上。

SphereNet 的思路和 GemNet 是类似的,也是在 距离、角度 后面缀上二面角。既然是二面角信息,就不可避免要设计到 四体。

在 GemNet 中,四体是国王,大臣,乡绅和老百姓。等级分明。所以是 3-hop 的消息传递机制。

在 SphereNet 中,四体设计为,国王,大臣,乡绅和乡绅。具体来说,国王和大臣构成了球极坐标的z轴,众乡绅向大臣进贡的同时需要遵循一个逆时针的顺序,即需要拿自己紧邻的,逆时针方向前,的乡绅当参考点,求出四体的二面角。
在这里插入图片描述
显然,这是一个 2-hop 的消息传递机制,计算量比 GemNet O ( n k 3 ) O(nk^3) O(nk3) 小,与 DimeNet O ( n k 2 ) O(nk^2) O(nk2) 相当。

但是,SphereNet 并不是一个 local 完备的模型。在 SphereNet 原文中,作者指出,SphereNet 可以有效区分 手性分子,但对于一些特别刁钻的情形,SphereNet 依然无法有效区分。
在这里插入图片描述

ComENet

把 ComENet 放在最后并单独成章,是因为 ComENet 的发布代表了不变网络最后的辉煌。

彼时已进入2022年下半年,各大数据集早已被等变网络霸榜。不变网络似乎迎来了英雄落幕。

ComENet 从数学角度严格证明了其 local 完备性,并大幅降低计算量至 1-hop 水平。这使得 ComENet 计算速度大幅提升,同时理论上拥有不输于 SphereNet 的 local 鉴别能力。但这并没有在部分数据集上取得精度的提升(QM9),部分原因可能是(笔者个人猜测) 2-hop 的模型可能比 1-hop 抓取信息的效率更高。

那 ComENet 是怎么进行消息传递的呢?
如下图所示:
在这里插入图片描述
ComENet 也定义了一个 四体(为了拿到二面角信息),只不过这个四体是以边为中心的。

我们还用国王收税举例:

  1. 国王 i 最终是要从邻居(大臣 j )那里一一收税的,这其实对应了消息传递的最后阶段。
  2. 那么大臣 j 怎么收税呢?
    2.1 大臣 j 首先收角度的税。他找来了同样是大臣的,距离 i 最近的点 f i j f_{i\\j} fij 作为参考点,收一个角度税 f i j f_{i\\j} fij, i, j
    2.2 大臣 j 收一个二面角的税。他找来了同样是大臣的,距离 i 最近的点 f i j f_{i\\j} fij 作为一个参考点,又找来了同样是大臣的,距离 i 第二近的点 s i s_i si 作为第二个参考点。平面 f i j f_{i\\j} fij, i, j 和 平面 f i j f_{i\\j} fij, i, s i s_i si 构成一个二面角。注意, f i j f_{i\\j} fij, i, s i s_i si 平面与 j 无关,因此是一个参考平面。
    2.3 大臣 j 向自己最近的乡绅收一个二面角的税。为什么要收这个税?是因为,前面这些税,实际上已经可以将 i 的 local 固定住了。但 local i 的 completeness 并不能随着消息传递拓展至外边。对此,作者提出将 节点 j 的最近一个邻居作为参考点,只要固定住了 f i j f_{i\\j} fij, i, j, f j i f_{j\\i} fji 四者构成的二面角,我们就可以在经过消息传递后收获全局的完备性。

ComENet 的伪代码如下:
在这里插入图片描述
其中的 Eq.1 如下:
在这里插入图片描述
大眼一看,ComENet 确实是一个 1-hop 的模型。但上面国王的例子中,我们可以看到,ComENet 又确实涉及到了乡绅阶层。这是一个相对模糊的事情:

  1. ComENet 在进行点节点向量的迭代时,仅涉及了邻居节点的特征向量,从这个角度看是 1-hop 的。( Eq.1 )
  2. ComENet 在计算所谓的 rotable bond 的时候,用到了邻居的邻居,(但也紧紧是计算了一个二面角作为输入),这里面确实有一些 2-hop 的几何信息泄露。
  3. 从计算量角度看,ComENet 是一个 O ( n k ) O(nk) O(nk) ,k 指 i 的邻居,n 指 i 的个数。这个是毋庸置疑的。

总体来说,这种 local -> global 的思路与 ClofNet 不谋而和,然而, ComENet 是基于球极坐标系的,这使其难以使用等变网络的算子。虽然 ComENet 在部分实验中,和不变网络相比取得了不错的表现(尤其是速度),但这些很难和等变网络进行对比。

与之相对的, ClofNet 继承了 local completeness 的设计优点,并进一步将其与等变算子结合形成了 leftnet。leftnet 在多个数据集上爆杀特杀,预计在很长一段时间内将保持 SOTA 优势。

小结

不变网络的发展历程总体来看是一个“不断纳入更多几何信息”的过程,发展至 ComENet ,我想几何信息的收集已经可以画上完美的句号。从更庞大的视角看,不变网络第一次完美击败了 2DGNN,让3DGNN登上舞台。同时,不变网络所衍生出的技术路线——以 PAINN 为代表的等变网络,则以更加猛烈的攻势抢占分子表征疆土。

谁会是这片领土最终的统治者,我们不得而知。但至少属于不变网络的辉煌已经落幕,本文间记之。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/96328.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Nginx从入门到精通(超级详细)

文章目录 一、什么是Nginx1、正向代理2、反向代理3、负载均衡4、动静分离 二、centos7环境安装Nginx1、安装依赖2、下载安装包3、安装4、启动5、停止 三、Nginx核心基础知识1、nginx核心目录2、常用命令3、默认配置文件讲解4、Nginx虚拟主机-搭建前端静态服务器5、使用nignx搭建…

解决OpenCV的GStreamer warning警告

调用 cv::VideoCapture出现的警告: [ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (1758) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module v4l2src0 reported: Internal data stream error. [ WARN:0] global .…

TCP协议基础

一: TCP协议是什么? TCP协议是基于面向连接,可靠传输,基于字节流的传输层通信协议 1. 面向连接 TCP协议是一种面向连接的协议,意味着在双方在建立数据传输之前,需要进行一个逻辑上的连接,且是…

智慧矿山2.0:煤矿智能化综合管理AI大数据监管平台建设方案设计

一、行业背景 能源与煤矿是我国国民经济的重要物质生产部门和支柱产业之一,同时也是一个安全事故多发的高危行业,施工阶段的现场管理对工程成本、进度、质量及安全等至关重要。煤矿智能化既是未来趋势,更是产业发展需求,建设智慧…

C语言——程序执行的三大流程

顺序 : 从上向下, 顺序执行代码分支 : 根据条件判断, 决定执行代码的分支循环 : 让特定代码重复的执行

我的博客图床

突然发现csdn当作图床也是不错的

《开发实战》11 | 空值处理:分不清楚的null和恼人的空指针

11 | 空值处理:分不清楚的null和恼人的空指针 修复和定位恼人的空指针问题 NullPointerException 是 Java 代码中最常见的异常,最可能出现的场景归为以下5 种: 参数值是 Integer 等包装类型,使用时因为自动拆箱出现了空指针异常…

移动端如何适配不同的屏幕尺寸

在移动端开发中,适配不同的屏幕尺寸是一个重要的考虑因素。以下是一些常用的方法来实现移动端的屏幕适配: 使用响应式布局:使用CSS媒体查询和弹性布局来根据屏幕尺寸调整页面布局和元素大小。通过设置百分比、em或rem单位来实现元素的相对大小…

uniapp结合Canvas+renderjs根据经纬度绘制轨迹(二)

uniapp结合Canvasrenderjs根据经纬度绘制轨迹 文章目录 uniapp结合Canvasrenderjs根据经纬度绘制轨迹效果图templaterenderjsjs数据结构 ​ 根据官方建议要想在 app-vue 流畅使用 Canvas 动画,需要使用 renderjs 技术,把操作canvas的js逻辑放到视图层运…

【pyqt5界面化开发-4】垂直布局/水平布局+‘套娃‘布局

目录 一、垂直布局 二、布局器的组合 三、水平布局垂直布局(套娃) 一、垂直布局 需要模块:QVBoxLayout # 垂直布局layout QVBoxLayout()………………# 应用设置的布局器self.setLayout(layout) 模块间的伸缩器(可以理解为弹簧…

502 bad gateway什么意思502 bad gateway问题解决办法

502 bad gateway是一种常见互联网连接错误,大部分情况就是打不开页面,连接不上网络,访问服务器挂了等问题,下面来看看具体解决方法,希望能够帮助你解决问题。 502 bad gateway什么意思 简单说就是服务器没有收到回应&…

Redis——》如何评估锁过期时间

推荐链接: 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…

gitee上传本地项目bug

🤮这个破bug不知道浪费了多长时间,以前没有记录,每次都忘记,这次记下来 问题描述 gitee创建仓库,然后根据它提示的如下命令,但一直报错 原因分析: 把命令复制出来,粘贴到Sublime …

Python入门自学进阶-Web框架——40、redis、rabbitmq、git——3

git,一个分布式的版本管理工具。主要用处:版本管理、协作开发。 常见版本管理工具: VSS —— Visual Source Safe CVS —— Concurrent Versions System SVN —— CollabNet Subversion GIT GIT安装:下载安装文件:…

学习笔记:Pytorch利用MNIST数据集训练生成对抗网络(GAN)

2023.8.27 在进行深度学习的进阶的时候,我发了生成对抗网络是一个很神奇的东西,为什么它可以“将一堆随机噪声经过生成器变成一张图片”,特此记录一下学习心得。 一、生成对抗网络百科 2014年,还在蒙特利尔读博士的Ian Goodfello…

Java虚拟机内部组成

1、栈区 public class Math {public int compute(){//一个方法对应一块栈帧内存区域int a l;int b 2;int c (a b)*10;return c; } public static void main(String[] args){Math math new, Math() ;math.compute() ;System.out.println("test");}} 栈是先进后出…

centos安装MySQL 解压版完整教程(按步骤傻瓜式安装

一、卸载系统自带的 Mariadb 查看: rpm -qa|grep mariadb 卸载: rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 二、卸载 etc 目录下的 my.cnf 文件 rm -rf /etc/my.cnf 三、检查MySQL是否存在 有则先删除 #卸载mysql服务以及删除所有mysql目录 #没…

使用CSS的@media screen 规则为不同的屏幕尺寸设置不同的样式(响应式图片布局)

当你想要在不同的屏幕尺寸或设备上应用不同的CSS样式时,可以使用 media 规则,特别是 media screen 规则。这允许你根据不同的屏幕特性,如宽度、高度、方向等,为不同的屏幕尺寸设置不同的样式。 具体来说,media screen…

常见前端面试之VUE面试题汇总十一

31. Vuex 有哪几种属性? 有五种,分别是 State、 Getter、Mutation 、Action、 Module state > 基本数据(数据源存放地) getters > 从基本数据派生出来的数据 mutations > 提交更改数据的方法,同步 actions > 像一个装饰器&a…

微信小程序请求接口返回的二维码(图片),本地工具和真机测试都能显示,上线之后不显示问题

请求后端接口返回的图片&#xff1a; 页面展示&#xff1a; 代码实现&#xff1a; :show-menu-by-longpress"true" 是长按保存图片 base64Code 是转为base64的地址 <image class"code" :src"base64Code" alt"" :show-menu-by-long…