图神经网络与分子表征:7. LEFTNet

在执行性质预测任务时,我们需要考虑两个问题:1. 如何正确的将图结构进行编码?2. 如何汇聚编码信息预测整个分子的任务?
LEFTNet 就是通过回答上述问题来进行模型设计的。
原文地址

算法设计

原文中,作者定义了三个图同构问题:

  1. 树同构:任意邻接的两原子间的距离一致即可
  2. 三角同构:任意邻接的三原子构成的三角形一致
  3. 子图同构:任意两个三角形的相对位置保持一致

作者认为,一个好的编码器能够甄别上述所有同构问题,就像一台高分辨率的相机一样。为了方便理解,作者给出了两个案例:
在这里插入图片描述
在图(a)中,作者展示了一种,满足树同构,但不满足三角同构的情况。
在图(b)中,作者展示了一种,满足三角同构,但不满足子图同构的情况。
有了模型设计方向,作者开始讲述设计思路:
首先,为了满足树同构的要求。作者认为,只要正确抽取原子间距离即可,所有的 3DGNN 均满足。
其次,为了满足三角同构的要求。作者认为,三角同构本质上是局域完备性问题。作者设计了一个局域坐标系,通过将原坐标映射到局域坐标,即可满足局域完备性的要求,同时还能满足等变要求。此处直接采用了作者上一篇文章 ClofNet。
注:能够满足局域完备性的模型很多,可以参考我之前的博客
最后,为了满足子图同构的要求,作者认为,不同局域坐标系相对位置不一样,这导致局域信息汇聚过程中遭受信息损失。在信息汇聚过程中有效考虑不同坐标系的相对位置,能够有效解决这一问题。
在这里插入图片描述

如上图所示,点 b 和点 c 分别建立了局域坐标系,在这两个局域坐标系下,cluster(团簇)b 和 cluster c 进行了有效映射。b 处的局域信息如何才能有效和 c 处的局域信息融合呢?
作者指出,通过二者共同的邻居 a,以及两个局域坐标系的相对位置,能够实现信息的转换融合。因此,模型设计时需要考虑两点:

  1. 编码时需要纳入尽可能完备的局域信息;
  2. 信息汇聚时需要考虑不同局域坐标系的相对位置;

算法实现

一共两处 github 仓库与 LEFTNet 的实现有关:m2hub, leftnet

二者差别不大,此处以 m2hub 中的为例。
在这里插入图片描述

作者在原文中给出了模型框架图(上图)和算法流程(下图):
在这里插入图片描述

实际代码实现与原文存在些许区别。按原文的模型框架图,LEFTNet 是向量、标量双通道模型,与 PAINN 一致。
在消息传递模块中,模型会首先通过 LSE 抽取子图信息,并将其抽象成邻居消息的权重 Aij.
邻居消息就是边的 embedding,通过与权重进行糅合,有效融入局域信息。
最后,在消息的聚合阶段,通过考虑不同局域坐标系的相对位置,实现子图级的消息融合。
下面我们读一下代码:

  1. 抽取局域信息的 LSE 模块
    该模块在 interaction 之前,属于数据预处理:
    在这里插入图片描述
  2. 消息传递主函数
    在这里插入图片描述
    实际实现过程中,原文提到的 FTE 模块进行了简化,取消了node_frame的介入,因此可以看做是简单的 scalar vector infusion
  3. 消息传递模块
    此处是直接调用的 torch geometric 的消息传递类
    原文中消息是由三个成分构成,实际代码实现中仅使用了前两项
    在这里插入图片描述
    消息传递模块如下:
    在这里插入图片描述
  4. 标量、向量融合阶段

对应原文中的 FTE(进行了简化)
在这里插入图片描述

核心思路是向量标量化,与原标量信息融合。融合标量再向量化,与原向量信息进行融合。
使用类似融合方法的模型很多,例如:
so3krate 和 torchmd-net, BAMBOO 中的 GET layer,如下图所示:
在这里插入图片描述

写在最后

LEFTNet 这篇论文行文晦涩难懂,这是和其他模型文章最大的区别。大量的定理证明展现了作者扎实的数学功底。在 LEFTNet 之后,西班牙团队很快发展出了 torchmd-net (有名 tensornet, neruips 2023),torchmd-net 在纳入电荷信息后升级到了 torchmd-net 2。字节团队在 torchmd-net 2 之上搭建了 BAMBOO。这些论文相对容易理解,感兴趣的读者可以拓展阅读。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小米安卓春招面试一面

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 1.多态 2.hashmap,hashtable和concurrenthashmap,问的定义实现和区别 3.jvm的运行…

02 - ArcGIS For JavaScript-矢量数据的符号化处理(Symbol)

文章目录 综述Symbol的分类Point的符号化Point符号化为二维几何:Point位图符号化:Point的三维结合符号化Point 符号化为GLTF模型 PolylineSymbol-线符号化基本样式管道样式墙体样式条带样式方管样式 PolygonSymbol-面符号化水面效果拉伸效果填充效果 Mes…

PCB----Allegro软件使用小技巧

1.修改画好的同面积: 2.修改铜的网络,或者铺铜铺错网络了: 点击需要修改的铜 在点击要修改成的网络 3.铺铜需要注意: 铜片和铜片之间间隔2个点(点设置6.25,如下图1-2:) 每一个单独的…

差速机器人模型LQR 控制仿真——路径模拟

LQR路径跟踪要求路径中带角度,即坐标(x,y,yaw),而一般我们的规划出来的路径不带角度。这里通过总结相关方法,并提供一个案例。 将点路径拟合成一条完整的线路径算法 将点路径拟合成一条完整的线路径是一个常见的问题…

ai智能电话机器人是如何自主学习的

电话机器人的出现,帮助很多传统电销行业企业进入新的发展阶段。它主要通过语音识别和针对语意的理解识别客户所说的内容,针对性的回答问题,为企业高效筛选意向客户。除了电话机器人语音识别之外,电话机器人能够自主学习&#xff0…

大模型推理性能优化之KV Cache解读

0. 引言 做大模型性能优化的一定对KV Cache不陌生,那么我们对这个技术了解到什么程度呢?请尝试回答如下问题: KV Cache节省了Self-Attention层中哪部分的计算?KV Cache对MLP层的计算量有影响吗?KV Cache对block间的数据传输量有影响吗?本文打算剖析该技术并给出上面问题…

每日一题 — 最小覆盖子串

76. 最小覆盖子串 - 力扣(LeetCode) 解法一:暴力遍历哈希表 解法二:滑动窗口哈希表 定义left和right初始化为零,固定left,先向右遍历right,放到哈希表中这个时候我们需要统计有效字符的个数&…

五种主流数据库:集合运算

关系型数据库中的表与集合理论中的集合类似,表是由行(记录)组成的集合。因此,SQL 支持基于数据行的各种集合运算,包括并集运算(Union)、交集运算(Intersect)和差集运算&a…

chromedriver最新版下载地址

地址1.百度网盘 链接(提取码:2vo3):百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.baidu.com…

数据很重要,ASM磁盘组损坏,使用AMDU来抢救

欢迎关注“数据库运维之道”公众号,一起学习数据库技术! 本期将为大家分享“数据很重要,ASM磁盘组损坏,使用AMDU来抢救”的处置案例。这个案例对个人来说比较经典,下面我将把自己的处理思路进行整理与总结。 环境信息&#xff1…

STC15系列库中两个自定义函数的更新

一、事件背景 1.出于操作IO口的需求,在LED操作例程当中我在官方库当中添加了两个gpio函数;详见基于STC15系列库操作LED灯-CSDN博客;在新的例程中察觉到两个函数操作的局限性,于是将两个函数内容进行相应修改,使其能适…

安装Milvus的可视化工具Attu教程

提供两种方式来安装可视化工具Attu 一、docker安装 # 执行命令,加个 -d 在后台运行 docker run -d -p 8000:3000 -e MILVUS_URL127.0.0.1:19530 zilliz/attu:v2.2.8 至此安装完成! 浏览器输入地址 http:127.0.0.1:8000即可访问 Attu主页 如果拉取最新…

I设计需要学习什么?我们应该掌握什么软件?

I设计需要学习什么?我们应该掌握什么软件? 许多新人在进入UI设计行业之前都会有很多疑问。我应该学习什么,应该掌握什么软件?如果要学习ui设计,首先应该知道什么是UI设计。“ UI”的原始含义是用户界面,它是…

使用nginx发布tomcat站点

之前我们在访问的时候使用的都是类似http://serverip/test或者http://serverip/jpress这种字样的URL,使用起来比较麻烦,所以呢,我们可以将tomcat和nginx结合在一起,可以通过nginx以下功能发布: 使用nginx url重写使用nginx的反向代理功能一、部署tomcat网站 通过部署两个…

大数据操作第二天

文章目录 大数据命令的方式现在有三个命令的方式 启动一个计算圆周率的jar包方式什么是文件系统数据元数据传统的存储方式分布式存储方式元数据记录文件位置信息副本机制的方式 hafs 存储方式shell 操作大数据的方式创建目录查看文件目录下的方式上传文件的方式 大数据命令的方…

MySQL怎么排查慢sql语句,排查后一般怎么优化

当排查和优化MySQL中的慢SQL语句时,通常会涉及以下步骤: 识别慢查询: 使用MySQL的慢查询日志(slow query log)来记录执行时间超过一定阈值的SQL语句。你可以通过修改MySQL配置文件来启用慢查询日志,并设置阈…

2024年国内五大企业邮箱,哪个最靠谱?

电子邮件是企业办公的重要手段,目前我国五大企业的邮箱都有Zoho Mail公司邮箱、腾讯企业邮箱、阿里企业邮箱、网易企业邮箱、263公司邮箱。可是哪个电子邮件最可靠呢?可靠的企业邮箱必须要安全性高、稳定性高,能够保护企业的隐私不被泄露&…

Git常见命令行操作和IDEA图形化界面操作

设置Git用户名和标签 在安装完Git以后需要设置用户和签名,至于为什么要设置用户签名可以看一下这篇文章【学了就忘】Git基础 — 11.配置Git用户签名说明 - 简书 (jianshu.com) 基本语法: git config --global user.name 用户名 git config --global u…

HTML学习笔记:(一)基础方法

Html格式 里面文件使用平台为&#xff1a;w3school 1、基础功能&#xff1a; <html><head> <title>这是我的第一个html页面,会显示在浏览器的标题栏中</title> </head> <!--修改背景颜色 --> <body bgcolor"yellow"> …

浅浅了解一下 LibTorch

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ LibTorch 是 PyTorch 提供的一个二进制发行版&#xff0c;包含了所有必要的头文件、库和 CMake 配置文件&#xff0c;便于开发者依赖 PyTorch 开发应用。用户可以从 PyTorch 官网下载包含最新 LibTorch…