ACM-BCB2019 | SMILES-BERT:基于大规模无监督预训练的分子属性预测模型

news2024/11/20 0:23:17

原文标题:SMILES-BERT: Large Scale Unsupervised Pre-Training for Molecular Property Prediction

 链接:https://doi.org/10.1145/3307339.3342186

 

一、问题提出

分子指纹:可用于分子性质分类、回归或生成新分子等各种应用。传统的分子指纹不是计算基本性质,而是提供分子结构的特定部分的描述。然而,传统的分子指纹需要密集的手工特征工程和强大的领域知识。此外,这种指纹具有很强的任务依赖性,对于其他属性预测任务来说还不够通用。

SMILES:支持基于RNN的方法在多个gpu和多个设备上进行并行训练并非易事,它需要不同的训练技巧,如梯度裁剪和早期停止,以确保模型收敛;

Graph:基于gcns的方法通常计算复杂度较高,限制了探索更复杂的分子性质预测方法。(附加:深度不能太深)

现有过程发现:用筛选实验获得如此规模的分子性质的成本是异常高的。无法用大量的数据来实现对数据分布的完全拟合。

二、模型方法

希望利用无限的非标记数据中的基本信息来建立一个强大的半监督模型,以提高在有限的标记数据下的预测性能。其次,模型在训练阶段是有效的:1)支持并行训练2)用于预训练的模型全部参加调优阶段,没有像Seq3seq指纹的解码器那样的脚手架部分。

1、transformer block

2、Pre-training as Masked SMILES Recovery

与自然语言建模不同的是,SMILES没有连续的关系,the consecutive sentences classification无法使用。masked language learning仍然有希望用未标记的SMILES对模型进行预训练,我们将该任务命名为the task Masked SMILES Recovery。

3、Fine-tuning for Molecular Property Prediction

在预训练期间,用token <GO>填充每个输入SMILES。在微调阶段,使用令牌对应的模型输出进行分子性质预测。

4、Model Structure

前注意层和后注意层完全连接层将输入特征嵌入到1024大小的特征空间中。对于自我注意块,SMILES-BERT使用了一个head=4的多头注意机制。因为SMILES比自然语言序列相对简单。此外,smile的词汇量远远少于自然语言的词汇量。尝试了BERT的基础结构设置对分子性质的预测,并没有提供明显的改善。然后将SMILES-BERT保持在当前的设置中,因为在实践中对模型的计算和内存需求更少更好。

使用FairSeq进行代码编写。

屏蔽token的最小数量被设置为1。因此,每个输入SMILES至少包含一个掩码令牌。通过对这些数据集的训练,所提出的SMILES-BERT的泛化能力得到了增强。

随机保留10000个样本进行验证,另外10000个样本进行评估。训练集最终为18,671,355

Adam,前4000个step中引入了warmup(lr从10−9增加到10−4),如果没有warmup,即使经过长时间的训练,模型也不会收敛。warmup结束后,学习速率从10−4开始,采用反平方根更新策略。adam 中beta为(0.9,0.999),权值衰减为0.1。batch_size设为256,dropout为0.1。训10个epoch,ZINC验证数据集上的准确率为82.85%,这意味着从未掩码部分获得的信息可以准确地恢复82.85%的掩码SMILES。

预训练性能:

下游微调:尝试了10−5、10−6、10−7等学习率,都能得到很好的预测结果

使用50个epoch对模型进行微调,并选择验证数据上的最佳模型进行最终评估

使用三个数据集,LogP数据集,PM2数据集和PCBA-686978数据集

19年文章,目前也有3年(近4年了)。文章现在读起来质量偏低,内容也少。但证明了一件事,bert用于SMILES预训练后下游微调是可行。(虽然不能以现在的视角看待过去技术,但是要是放在现在......)

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

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

相关文章

【强化学习论文合集】IJCAI-2022 强化学习论文 | 2022年合集(五)

强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。 本专栏整理了近几年国际顶级会议中,涉及强化学习(Rein…

设计模式之美——单一职责原则和开闭原则

“看懂”和“会用”是两回事&#xff0c;而“用好”更是难上加难。 SOLID 原则&#xff1a; SRP单一职责原则&#xff08;the single responsibility principle &#xff09; OCP开闭原则&#xff08;the open closed principle&#xff09; LSP里氏替换原则&#xff08;the l…

【HMS Core】School Diary应用集成多个HMS Core服务,更好的体验华为生态系统

一、介绍 总览 通过建立本次的School Diary应用&#xff0c;您可以更好地体验华为生态系统的组成部分&#xff0c;包括认证服务、云存储和云数据库等Serverless服务。此外您还可以了解到如何使用账号服务集成应用登录功能。老师和学生两种角色的匹配过程是本应用的一大特色。…

SpringCloud微服务(九)——Ribbon负载均衡

Ribbon负载均衡服务调用 SpringCloud 已停更 github官网&#xff1a;https://github.com/netflix/ribbon Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具&#xff0c;它基于Netflix Ribbon实现。通过Spring Cloud的封装&#xff0c;可以让我们轻松地将面向服务…

高斯分布的乘积与卷积

高斯分布是一个很重要的连续分布形式&#xff0c;频繁出现各种应用场景里也可以导出很多分布&#xff0c;如在典型的线性回归中对误差 的建模就是用的标准正态分布&#xff0c;统计学的学生分布就是从正态分布中导出。随着贝叶斯统计学的广泛应用&#xff0c;相乘的高斯分布&am…

【仿真建模】第四课:AnyLogic入门基础课程 - 轨道交通仿真入门讲解

文章目录一、轨道库的概念和特点二、轨道交通仿真三、更换车头和车身样式一、轨道库的概念和特点 二、轨道交通仿真 新建模型 搭建轨道 定义轨道上的起点和终点 拖拽出一个trainSource&#xff0c;设置其车厢数量为4&#xff08;默认为11&#xff0c;车厢太多会超出轨道&…

nginx(六十)proxy模块(一)proxy_pass指令

一 proxy模块处理请求的流程 ① 流程图 说明&#xff1a; nginx从client接收的是http协议,转发给上游的也是http协议备注&#xff1a; 后续根据处理请求的流程,来讲解相关指令 二 proxy_pass ① 基本解读 说明&#xff1a; proxy_pass是一个动作指令 ② proxy_pass的…

【题型总结】找到第n个自定义数 | 丑数系列 + 神奇数字

文章目录找到第n个自定义数丑数【LC263】丑数Ⅱ【LC264】优先队列多指针超级丑数【LC313】优先队列【超时】多指针第N个神奇数字【LC878】找规律二分查找数学丑数Ⅲ【LC1201】二分查找数学总结找到第n个自定义数 因为神奇数字做了相关的题目&#xff0c;个人建议做题顺序&…

涨知识!Python 的异常信息还能这样展现

【导语】&#xff1a;在日常开发的过程中&#xff0c;当代码报错时&#xff0c;我们通常要不断打印、阅读traceback提示信息&#xff0c;来调试代码&#xff0c;这篇文章介绍了如何实现一个Exception Hooks&#xff0c;使得traceback模块的提示信息更加精确&#xff1b;同时还介…

java项目-第159期ssm超市管理系统_ssm毕业设计_计算机毕业设计

java项目-第159期ssm超市管理系统-ssm毕业设计_计算机毕业设计 【源码请到资源专栏下载】 今天分享的项目是《ssm超市管理系统》 该项目分为2个角色&#xff0c;管理员、员工。 员工登录后台主要负责商品的出入库&#xff0c;以及个人事项办理&#xff0c;比如&#xff1a; 上…

技术分享| 快对讲视频调度功能说明

随着计算机技术的日趋成熟&#xff0c;融合调度方案已经在行业信息化中普及&#xff0c;由于近几年实时音视频能力的提升&#xff0c;融合调度中的视频调度方案也在往实时性、高清方向靠拢。快对讲视频调度正是结合了视频监控&#xff0c;以及实时通信的特性&#xff0c;在市面…

传奇GOM引擎单机架设图文教程

T:准备下载好服务端&#xff08;版本&#xff09;gom引擎架设 选择GOM引擎版本 注;版本可以去论坛有免费&#xff0c;电脑还需要下载安装好客户端。 1.首先下载好版本后会有2个压缩包&#xff0c;一个是版本&#xff0c;一个是补丁&#xff0c; 简单来说架设分三部&#xff1…

Scrum 四个会议的正确召开方式

敏捷开发有一些重要的实践方法&#xff0c;可以帮助团队更快地适应敏捷开发框架。这些方法不能简单照搬执行&#xff0c;比如&#xff0c;只在瀑布开发模式下中加入 Scrum 的四个会议&#xff0c;这无法让瀑布团队转成敏捷团队。敏捷转型需要深入理解概念和思维&#xff0c;团队…

【Linux】第十四章 多线程(生产者消费者模型+POSIX信号量)

&#x1f3c6;个人主页&#xff1a;企鹅不叫的博客 ​ &#x1f308;专栏 C语言初阶和进阶C项目Leetcode刷题初阶数据结构与算法C初阶和进阶《深入理解计算机操作系统》《高质量C/C编程》Linux ⭐️ 博主码云gitee链接&#xff1a;代码仓库地址 ⚡若有帮助可以【关注点赞收藏】…

JavaSE中split方法详细原理讲解分析

文章目录方法1:split(String [regex](https://so.csdn.net/so/search?qregex&spm1001.2101.3001.7020))入门案例1入门案例2入门案例3入门案例4分隔符三个特殊位置特殊案例1特殊案例2方法2:split(String regex,int limit)limit用法:进阶案例:limit>0限制分割次数limit&l…

图神经网络关系抽取论文阅读笔记(二)

1 用于关系抽取的生成式参数图神经网络 论文&#xff1a;Graph Neural Networks with Generated Parameters for Relation Extraction&#xff08;2019 ACL&#xff09; 1.1 创新点 传统的图神经网络在进行NLP任务时&#xff0c;图的拓扑结构都是预先定义好的&#xff0c;之后再…

已解决OSError: [Errno 22] Invalid argument

已解决OSError: [Errno 22] Invalid argument 文章目录报错代码报错翻译报错原因解决方法帮忙解决报错代码 粉丝群里面的一个粉丝用Python读取文件的时候&#xff0c;发生了报错&#xff08;跑来找我求助&#xff0c;然后顺利帮助他解决了&#xff0c;顺便记录一下希望可以帮助…

PTA题目 前世档案

网络世界中时常会遇到这类滑稽的算命小程序&#xff0c;实现原理很简单&#xff0c;随便设计几个问题&#xff0c;根据玩家对每个问题的回答选择一条判断树中的路径&#xff08;如下图所示&#xff09;&#xff0c;结论就是路径终点对应的那个结点。 现在我们把结论从左到右顺序…

UnityVR一体机报错:GL_OUT_OF_MEMORY,[EGL] Unable to acquire context

一、 报错信息一览 &#xff08;1&#xff09; [EGL] Unable to acquire context: E Unity : [EGL] Unable to acquire context: EGL_BAD_SURFACE: An EGLSurface argument does not name a valid surface (window, pixel buffer or pixmap) configured for GL rendering. 解决…

AQS源码解析 4.Condition条件队列入门_手写BrokingQueue

AQS源码解析—Condition条件队列入门_手写BrokingQueue Condition 条件队列介绍 AQS 中还有另一个非常重要的内部类 ConditionObject&#xff0c;它实现了 Condition 接口&#xff0c;主要用于实现条件锁。ConditionObject 中也维护了一个队列&#xff0c;这个队列主要用于等…