论文笔记|百度AI制药大赛冠军背后的技术(ViSNet)

2023-11-10 07:20

本文主要是介绍论文笔记|百度AI制药大赛冠军背后的技术(ViSNet),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

         在首届全球AI药物研发大赛中,微软研究院王童研究员带领的ViSNet-Drug团队,凭借其团队自主开发的AI2BMD高精度动力学模拟系统、ViSNet三维分子结构建模图神经网络和蛋白质全构象数据集AIMD-Chig在三轮比赛中均排名第一并获得总冠军。王童研究员团队提出全新的新冠小分子药物解决方案:通过AI2BMD高精度的分子动力学模拟有效区分正负样本小分子与主蛋白酶靶点之间的结合自由能,利用AIMD-Chig蛋白全构象数据集对ViSNet模型进行预训练,最终通过对预训练的ViSNet网络进行fine tuning,得到高准确度的预测结果。为了了解这份成果背后的技术,我开始阅读了相关的论文,首先阅读的是ViSNet,论文标题为

ViSNet: a scalable and accurate geometric deep learning potential for molecular dynamics simulation

论文:https://arxiv.org/abs/2210.16518

源码:没找到直接的源码,找到了相关另一篇文章的源码。内容大致相同。GitHub - microsoft/ViSNet at OGB-LSC@NIPS2022

背景介绍

        分子动力学模拟(MD)描述了分子系统的动力学和热力学性质。它广泛应用于物理、化学、生物和制药领域。过去主要采用以下两种模拟方法:

  1. 从头算分子动力学模拟,例如由密度泛函理论 (DFT) 驱动的模拟。其优点是可以精确计算能量和力,但计算成本高昂,限制了其在大型分子系统和长时间模拟中的应用。
  2. 采用经验力场的经典 MD 可以进行快速且合适的模拟,因为它们适用于大型系统,但电子运动引起的量子效应无法捕获,力场参数通常不可转移。

        近年来随着机器学习(ML)和深度学习(DL)的发展,由于其强大的特征提取能力和表示能力,得到越来越多的关注。特别是对数据依赖度更低的几何深度学习方法(GDL),GDL通过纳入分子的几何信息使模型对数据保持旋转平移不变性。尽管神经网络模型的预测精度已经接近传统的模拟方法,但任然存在几何信息利用不足和高计算成本的问题,这阻碍了它们在分子动力学模拟中的应用。为了缓解上上面的问题,文章作者提出了一种名为 ViSNet 的可扩展且高精度的分子动力学图深度学习模型。在ViSNet中,作者提出了一种运行时几何计算(RGC)策略,以线性计算复杂度提取和编码角度和二面体信息,显着加速模型训练和推理并减少内存消耗。然后,设计了一种新颖有效的矢量-标量交互式等变消息传递机制,称为 ViS-MP,通过将矢量表示与标量表示交互来充分利用几何信息。通过合并这两个模块,结合了两种类型 EGNN 各自的优点,使计算效率更高且几何信息也得到了更充分利用。在一些基准上进行综合评估时,ViSNet 在 MD17 数据集上的所有分子上均优于所有最先进的算法,并且在 QM9 数据集上表现出优越的性能,表明分子几何表示的强大能力。

模型架构

概述

        如图 1(a)所示,ViSNet模型由一个embedding块和多个堆叠的 ViSNet 块组成,后面加上一个输出块。首先,embedding块把分子中各原子信息和化学键信息嵌入成向量,然后混合分子中的几何信息一起输入ViSNet块中聚合和更新。更新后的分子表示就包含了几何信息,然后这样的分子表示就可以在不同的输出块下进行各种下游任务了。其中每个ViSNet块由Message Block和Message Block组成,连续的两个ViSNet块之间有残差链接。

嵌入快

它首先嵌入原子,并通过径向基函数(RBF)计算其距离在截止范围内的边缘表示。然后将原子 i 的初始嵌入、其 1 跳邻居 j 和边 eij 融合在一起,作为初始节点嵌入 和边嵌入 。嵌入块表示式:

        表示节点i的1跳邻居节点集合,j是其邻居之一。初始向量嵌入 设置为 。向量嵌入 通过投影到嵌入空间中。

Message Block

分子表示聚合:如下面参考图左边表示,从上一模块得到的分子表示通过函数 φ s m 聚合更新,表示式如下:

其中是块的索引,是节点i在第l层的嵌入向量,表示在第l层节点i和节点j之间的边特征。

几何信息聚合:几何信息的聚合同分子表示聚合类似,如下面参考图右边所示,表示式如下:

其中表示聚合j特征的i节点的特征表示。表示节点 i 到其相邻节点 j 的方向向量。 是节点i的“方向单元”,保留了节点i的几何信息,是从节点 i 到其所有相邻节点 j 的所有单位向量的总和,表示式如下:

的单位向量。

参考图:

Message Block

更新节点的嵌入向量:完整的分子表示除了需要融合周围邻居点的特征 之外,还需融合原子周围的空间信息。融合的方法如下面展示图左侧,表示式如下式(7),通过聚合函数 融合原子的原始特征和聚合特征,还有原子的方向单位向量的内积。

另外,结合上面方程式(1)计算节点i的方向单位向量的内积,可以满足下式:

即,方向单位向量的内积等于节点i与其任意两个相邻节点所形成的所有角度的余弦值之和。其中表示节点i到其所有邻居节点的单位向量内积之和。

更新边的嵌入向量:和节点特征更新一样,边的特征更新也需要融合空间信息。融合的方法如上图右侧,表示式如下式(8)。

其中fij是边的原始特征,表示节点i的方向单元向量在节点 i 到其相邻节点 j 的方向向量的投影。按照几何的运算规则,可以满足下式(3,4)

在上面等式1中定义,是 的单位向量。表示m,I,j,n四个节点形成的二面角。可以参考图C进行理解。

更新节点的“方向单元”向量:节点方向单元向量的更新需要聚合原始方向单元向量,聚合周边节点特征后的节点特征和聚合几何信息后的方向单元向量。表示式如下式(9):

这篇关于论文笔记|百度AI制药大赛冠军背后的技术(ViSNet)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/381187

相关文章

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Spring AI ectorStore的使用流程

《SpringAIectorStore的使用流程》SpringAI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中发挥着至关重要的作用,本文给大家介... 目录一、VectorStore的基本概念二、VectorStore的核心接口三、VectorStore的

Spring AI集成DeepSeek三步搞定Java智能应用的详细过程

《SpringAI集成DeepSeek三步搞定Java智能应用的详细过程》本文介绍了如何使用SpringAI集成DeepSeek,一个国内顶尖的多模态大模型,SpringAI提供了一套统一的接口,简... 目录DeepSeek 介绍Spring AI 是什么?Spring AI 的主要功能包括1、环境准备2

Spring AI集成DeepSeek实现流式输出的操作方法

《SpringAI集成DeepSeek实现流式输出的操作方法》本文介绍了如何在SpringBoot中使用Sse(Server-SentEvents)技术实现流式输出,后端使用SpringMVC中的S... 目录一、后端代码二、前端代码三、运行项目小天有话说题外话参考资料前面一篇文章我们实现了《Spring

Spring AI与DeepSeek实战一之快速打造智能对话应用

《SpringAI与DeepSeek实战一之快速打造智能对话应用》本文详细介绍了如何通过SpringAI框架集成DeepSeek大模型,实现普通对话和流式对话功能,步骤包括申请API-KEY、项目搭... 目录一、概述二、申请DeepSeek的API-KEY三、项目搭建3.1. 开发环境要求3.2. mav

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2