当前位置: 首页 > news >正文

UNI-MOL: A UNIVERSAL 3D MOLECULAR REPRESENTATION LEARNING FRAMEWORK

UNI-MOL: A UNIVERSAL 3D MOLECULAR REPRESENTATION LEARNING FRAMEWORK

Neurips23

推荐指数:#paper/⭐⭐⭐#​(工作量不小)

动机

在大多数分子表征学习方法中,分子被视为 1D 顺序标记或2D 拓扑图,这限制了它们为下游任务整合 3D 信息的能力,这使得 3D几何预测/生成几乎不可能。为此,作者提出了一种3D分子表征学习方法

模型框架

在这里插入图片描述

贡献:

  1. backborn:基于 Transformer 的模型,可以有效地捕获输入的 3D 信息,并直接预测 3D 位置。
  2. 预训练。两个大规模数据集:一个 209M 分子构象数据集和一个 3M 候选蛋白质口袋数据集,分别用于分子和蛋白质口袋的预训练 2 个模型。以及两个预训练任务:3D 位置恢复和掩蔽原子预测,用于有效学习 3D 空间表示。
  3. 微调。适用于各种下游任务的多种微调策略。例如,如何在分子性质预测任务中使用预训练的分子模型;如何在蛋白质-配体结合姿势预测中结合两个预训练模型。

backborn的设计:

常用有两种的设计:GNN与transformer

由于GNN在捕获领域信息有优势,而局部连接的图缺乏捕捉原子之间长距离相互作用的能力。作者认为长距离信息更有用,因此选择Transformer 作为 Uni-Mol 中的主干模型。因为它完全连接了节点/原子,因此可以学习可能的长程相互作用。

在这里插入图片描述

整体结构概述

如图 2 所示,Uni-Mol 主干是基于 Transformer 的模型。它有两个输入,原子类型和原子坐标。模型中维护了两种表示形式(atom 和 pair)。原子表示由 Embedding 层从 atom 类型初始化;对表示由原子坐标计算的不变空间位置编码初始化。特别是,基于原子之间的成对欧几里得距离,对表示对全局旋转和平移是不变的。这两种表示在 self-attention 模块中相互通信。

编码3D位置:

编码 3D 位置 由于其排列不变性,Transformer 在没有位置编码的情况下无法区分输入的位置。与 NLP/CV 中使用的离散位置不同 ,3D 空间中的位置(坐标)是连续值。此外,位置编码过程在全局旋转和平移下需要保持不变。已经提出了几种 3D 空间位置编码来解决这个问题,我们没有兴趣重新发明一种新的编码。因此,我们对现有的编码进行了基准测试,并使用了一个简单而有效的编码:原子对的欧几里得距离,然后是一个对类型感知的高斯核。

此外,由于不变的 3D 空间位置编码是在对级编码的,作者还在 Transformer 中维护了对级表示,以增强 3D 空间表示。具体来说,对表示被初始化为上述空间位置编码。

然后,为了更新对表示,作者通过 self-attention 中的多头Query-Key 产品的结果使用atom到pair 通信。形式上,ij 对表示的更新表示为

q i j l + 1 = q i j l + { Q i l , h ( K j l , h ) T d ∣ h ∈ [ 1 , H ] } , \boldsymbol{q}_{ij}^{l+1}=\boldsymbol{q}_{ij}^l+\{\frac{\boldsymbol{Q}_i^{l,h}(\boldsymbol{K}_j^{l,h})^T}{\sqrt{d}}|h\in[1,H]\}, qijl+1=qijl+{d Qil,h(Kjl,h)Th[1,H]},(多头注意力,H是通道数)

从形式上讲,具有对原子通信的自我注意表示为:

A t t e n t i o n ( Q i l , h , K j l , h , V j l , h ) = s o f t m a x ( Q i l , h ( K j l , h ) T d + q i j l − 1 , h ) V j l , h , \mathrm{Attention}(\boldsymbol{Q}_i^{l,h},\boldsymbol{K}_j^{l,h},\boldsymbol{V}_j^{l,h})=\mathrm{softmax}(\frac{\boldsymbol{Q}_i^{l,h}(\boldsymbol{K}_j^{l,h})^T}{\sqrt{d}}+\boldsymbol{q}_{ij}^{l-1,h})\boldsymbol{V}_j^{l,h}, Attention(Qil,h,Kjl,h,Vjl,h)=softmax(d Qil,h(Kjl,h)T+qijl1,h)Vjl,h,

其中 V l V_l Vl h j h_j hj是第l层第h个头中第 j 个原子的值。

预测位置编码

x ^ i = x i + ∑ j = 1 n ( x i − x j ) c i j n , c i j = R e L U ( ( q i j L − q i j 0 ) U ) W , \hat{\boldsymbol{x}}_i=\boldsymbol{x}_i+\sum_{j=1}^n\frac{(\boldsymbol{x}_i-\boldsymbol{x}_j)c_{ij}}{n},\quad c_{ij}=\mathrm{ReLU}((\boldsymbol{q}_{ij}^L-\boldsymbol{q}_{ij}^0)\boldsymbol{U})\boldsymbol{W}, x^i=xi+j=1nn(xixj)cij,cij=ReLU((qijLqij0)U)W,

此外,为了与 delta 位置预测保持一致,Uni-Mol 使用 delta 对表示来更新坐标,而 EGNN 直接使用对表示。我们在附录 D.3 中的基准测试表明 Uni-Mol 中的那个更好。

预训练策略

由于目的是预测位置信息,因此像bert一样的mask操作实际上是不可行的。因此,作者设计了一种新的mask策略。

在这里插入图片描述

具体的是,随机位置被用作损坏的输入 3D 位置,而不是掩码,并且模型经过训练以预测正确的位置。然而,学习从随机位置到真实原子位置的映射是非常具有挑战性的。

  1. 重新分配,给定 m 个原子和 m 个随机位置,有 m!可能的任务。其中,遵循稳态作用原理 [47],我们可以使用具有最小 delta 位置的那个。由于难以找到最优解,我们使用高效的贪婪算法来找到次优的重新分配。
  2. 噪声范围,我们可以限制随机位置的空间,只允许具有噪声 (r) 的随机位置围绕真实位置。这里有一个权衡;如果 r 很大,则需要重新分配以使学习可行;如果 r 很小,则可能不需要重新分配

然后,在输入坐标损坏的情况下,使用两个额外的头来恢复正确的位置。1) 配对距离预测。基于对表示,该模型需要预测损坏的原子对的正确欧几里得距离。2) 坐标预测。基于 SE(3)-Equivariant 坐标头,该模型需要预测损坏原子的正确坐标。

最后,mask corrupt原子的原子类型,并使用head来预测正确的原子类型。为了方便微调,与 BERT 类似,使用一个特殊的原子 [CLS],其坐标是所有原子的中心,用于表示整个分子/口袋。

微调阶段

这部分有不同的任务,需要不同的微调。

非 3D 预测任务

我们可以简单地使用 [CLS] 的表示,它代表整个分子/口袋,或者所有原子的平均表示,带有线性头来微调下游任务。在具有口袋-分子对的任务中,我们可以连接它们的 [CLS] 表示,然后用线性头进行微调。

分子或口袋的 3D 预测任务

在 Uni-Mol 中,这个任务直接变成了一个构象优化任务:根据不同的输入构象生成一个新的构象。具体来说,在微调中,模型监督学习从 Uni-Mol 生成的构象到标记构象的映射。此外,输出构象可以通过 SE(3)-Equivariant head 端到端生成

蛋白质-配体对的 3D 预测任务

见论文

在这里插入图片描述

后续内容和这个方向的积累有关,等积累够,重读这篇文章(读前面的文章以及transformer)

相关文章:

UNI-MOL: A UNIVERSAL 3D MOLECULAR REPRESENTATION LEARNING FRAMEWORK

UNI-MOL: A UNIVERSAL 3D MOLECULAR REPRESENTATION LEARNING FRAMEWORK Neurips23 推荐指数:#paper/⭐⭐⭐#​(工作量不小) 动机 在大多数分子表征学习方法中,分子被视为 1D 顺序标记或2D 拓扑图,这限制了它们为下游任务整合…...

笔记day7

文章目录 1 分页功能实现2 分页器的展示需要哪些数据(条件)?3 自定义分页器4 分页器存在问题5 分页器动态展示6 开发某一个商品的详情页面 1 分页功能实现 为什么很多项目采用分页功能,比如电商平台同时展示的数据有很多&#xf…...

106,【6】 buuctf web [SUCTF 2019]CheckIn

进入靶场 文件上传 老规矩&#xff0c;桌面有啥传啥 过滤了<? 寻找不含<?的一句话木马 文件名 123(2).php.jpg 文件内容 GIF89a? <script language"php">eval($_GET[123]);</script> 123即密码&#xff0c;可凭借个人喜好更换 再上传一个文…...

基于Ubuntu2404搭建Zabbix7.2

Zabbix 搭建zabbix zabbix7.2已推出&#xff1a;官网 增加的新功能如下&#xff1a; 1.使用新的热门商品小部件全面概览指标 数据概览小部件已转换为热门项目小部件使用项目模式可以实现细粒度的项目选择利用条形图、指标和迷你图来可视化您的数据定义价值阈值以动态地可视化…...

OPENGLPG第九版学习 - 着色器基础

文章目录 2.1 着色器与OpenGL2.2 0penGL的可编程管线2.3 OpenGL着色语言GLSL概述2.3.1 使用GLSL构建着色器变量的声明变量的作用域变量的初始化构造函数 、 类型转换聚合类型访问向量和矩阵中的元素结构体数组多维数组 2.3.2 存储限制符const 存储限制符in 存储限制符out 存储限…...

Android 使用ExpandableListView时,需要注意哪些细节

1. 布局属性设置 尺寸属性 宽度和高度&#xff1a;要合理设置 android:layout_width 和 android:layout_height 属性。如果设置为 match_parent&#xff0c;它会填满父容器&#xff1b;设置为 wrap_content&#xff0c;则会根据内容自动调整大小。例如&#xff0c;若想让 Exp…...

redis简介及应用

文章目录 1.redis简介2.安装配置2.1 单机部署2.2 配置 3 主从部署4 哨兵部署5.集群部署6.客户端工具 1.redis简介 某些网站出现的问题&#xff0c;如12306、淘宝等… 2.安装配置 2.1 单机部署 安装gcc、关闭防火墙、关闭selinux等 #安装gcc yum -y install gcc #关闭防火墙…...

Electron使用WebAssembly实现CRC-8 MAXIM校验

Electron使用WebAssembly实现CRC-8 MAXIM校验 将C/C语言代码&#xff0c;经由WebAssembly编译为库函数&#xff0c;可以在JS语言环境进行调用。这里介绍在Electron工具环境使用WebAssembly调用CRC-8 MAXIM格式校验的方式。 CRC-8 MAXIM校验函数WebAssembly源文件 C语言实现C…...

人工智能赋能企业系统架构设计:以ERP与CRM系统为例

一、引言 1.1 研究背景与意义 在数字化时代&#xff0c;信息技术飞速发展&#xff0c;人工智能&#xff08;Artificial Intelligence, AI&#xff09;作为一项具有变革性的技术&#xff0c;正深刻地影响着各个领域。近年来&#xff0c;AI 在技术上取得了显著突破&#xff0c;…...

NacosRce到docker逃逸实战

NacosRce到docker逃逸实战 1、Nacos Derby Rce打入内存马 这个漏洞的原理大家应该都知道&#xff0c; 2.3.2 < Nacos < 2.4.0版本默认derby接口未授权访问&#xff0c;攻击者可利用未授权访问执行SQL语句加载构造恶意的JAR包导致出现远程代码执行漏洞。 在日常的漏洞挖…...

Linux:文件系统(软硬链接)

目录 inode ext2文件系统 Block Group 超级块&#xff08;Super Block&#xff09; GDT&#xff08;Group Descriptor Table&#xff09; 块位图&#xff08;Block Bitmap&#xff09; inode位图&#xff08;Inode Bitmap&#xff09; i节点表&#xff08;inode Tabl…...

在Spring Cloud中将Redis共用到Common模块

前言 在分布式系统中&#xff0c;共用组件的设计可以极大地提升代码复用性和维护性。Spring Cloud中将Redis共用到一个公共模块&#xff08;common模块&#xff09;是一个常见的设计实践&#xff0c;这样可以让多个微服务共享相同的Redis配置和操作逻辑。本文将详细介绍如何在…...

如何解决 Vue 应用中的内存泄漏

如何解决 Vue 应用中的内存泄漏 如何解决 Vue 应用中的内存泄漏常见的内存泄漏原因1. 组件生命周期管理不善2. 闭包引起的引用3. 数据订阅与发布系统4. 第三方库的内存泄漏5. 路由缓存和组件实例堆积排查内存泄漏的工具1. **Chrome DevTools**2. **Firefox Developer Tools**3.…...

什么是物理地址,什么是虚拟地址?

摘要 什么是物理地址&#xff0c;什么是虚拟地址&#xff1f; 如果处理器没有MMU或未启用&#xff0c;CPU执行单元发出的内存地址直接传到芯片引脚上&#xff0c;被内存芯片接受&#xff0c;这称为物理地址&#xff08;Physical Addraress&#xff09; 如果处理器启用了MMU&a…...

find 和 filter 都是 JavaScript 数组的常用方法

find 和 filter 都是 JavaScript 数组的常用方法&#xff0c;用来查找符合条件的元素&#xff0c;但它们有一些关键的区别&#xff1a; 1. find 方法 返回值&#xff1a;find 方法返回数组中 第一个符合条件的元素&#xff0c;如果没有找到符合条件的元素&#xff0c;返回 un…...

MVC、MVP和MVVM模式

MVC模式中&#xff0c;视图和模型之间直接交互&#xff0c;而MVP模式下&#xff0c;视图与模型通过Presenter进行通信&#xff0c;MVVM则采用双向绑定&#xff0c;减少手动同步视图和模型的工作。每种模式都有其优缺点&#xff0c;适合不同规模和类型的项目。 ### MVVM 与 MVP…...

基于RTOS的STM32游戏机

1.游戏机的主要功能 所有游戏都来着B站JL单片机博主开源 这款游戏机具备存档与继续游戏功能&#xff0c;允许玩家在任何时候退出当前游戏并保存进度&#xff0c;以便日后随时并继续之前的冒险。不仅如此&#xff0c;游戏机还支持多任务处理&#xff0c;玩家可以在退出当前游戏…...

【CPP】CPP经典面试题

文章目录 引言1. C 基础1.1 C 中的 const 关键字1.2 C 中的 static 关键字 2. 内存管理2.1 C 中的 new 和 delete2.2 内存泄漏 3. 面向对象编程3.1 继承和多态3.2 多重继承 4. 模板和泛型编程4.1 函数模板4.2 类模板 5. STL 和标准库5.1 容器5.2 迭代器 6. 高级特性6.1 移动语义…...

WPF基础03——InitializeComponent()函数解释

总述 InitializeComponent&#xff08;&#xff09;&#xff0c;是MainWindow中的构造函数&#xff0c;实际写项目过程中&#xff0c;多多少少都会碰到该函数报错的情况&#xff0c;现在对InitializeComponent()做一些理解和说明。 在 WPF 中&#xff0c;XAML 文件和代码后台…...

如何在自己mac电脑上私有化部署deep seek

在 Mac 电脑上私有化部署 DeepSeek 的步骤如下&#xff1a; 1. 环境准备 安装 Homebrew&#xff08;如果尚未安装&#xff09;&#xff1a; Homebrew 是 macOS 上的包管理工具&#xff0c;用于安装依赖。 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...