Nat. Mach. Intell 2023 | RT:首个统一分子性质预测(回归) 与条件生成的模型

news2024/11/18 18:30:33

原文标题:Regression Transformer enables concurrent sequence regression and generation for molecular language modelling

论文地址:Regression Transformer enables concurrent sequence regression and generation for molecular language modelling | Nature Machine Intelligence

代码地址: https://github.com/IBM/regression-transformer

1、思想

学习输入和目标变量的联合分布可以模糊预测与条件生成模型之间的界限(统一预测模型与条件生成模型), permutation language modelling (PLM)模型同时擅长回归与条件序列生成。

目前只有ChemFormer同时解决了这两个问题,但是需要调整特定任务头,因此没有真正提出一个多任务模型。现有的transformer模型要么调整特定的任务头,要么将两者之间通信限制为奖励/损失(图a),从而无法完成回归与结构生成。性质驱动的生成模型应当擅长性质识别(图bcdef)。

 

2、模型方法

1)模型架构选择(XLNet backbone):

语言模型包括:自回归 (RNN、GPT)或者MLM (BERT)。自回归适合长序列,但是不能应用于文本填充和从MLM中获益。MLM不适合生成长序列。因此选择综合模型XLNet作为backbone,其主要是自回归模型,但是设置了特殊的训练目标,因此可以获得双向关注。如BERT双向模型中的独立性假设随着<mask>被逐步填充,其破坏性也随着增加(因为前面的都预测准确后,后面一旦错误,前面预测的都是白费的),特别是基于骨架的“装饰”,由于大量被mask,导致单个原子的生成会严重影响分子功能。所选择的模型应当:受益于具有完整序列关注的自回归生成

2)Tokenization

数字:以前对于指定性质的生成都是整数(8-bit),此处用任意浮点精度表示实数。由于数字的稀疏性(一旦指定一个数,就变得稀疏了),将单个数字作为单个token是次优的,因此将数字的回归转化为序列的分类任务(实际上是将数字按正则表达式拆分设计为字符串):

每个能够匹配上的数字字符被转化为一个token Tv,p ,其中v为数字,p为位置,如12.3 → [1_2,2_0.,3_-1]

字母:对于SMILES,转化为SMLFIES,并使用固有的tokenizer

蛋白质序列:氨基酸token

3)Numerical Encodings (NE)

由于数字的固有结构,以纯粹数据驱动的方式学习数字token embedding可能是无效的。(应该是作者定义的数字固有结构,去直接学习每个token是可能无效的)。此外由于RT模型是交叉熵损失训练的(典型回归模型),因此没有传达数字token之间的相似性概念。因此提出NEs(类似于位置编码),给定一个token Tv,p,其N_dim为j,

因此NE的振幅随着数值的变化而变化(NE在百位上与千位上存在一个数量级上的振幅,没有数字的位子NE设为0)。同时表示正负数之间的接近性(在NE上只相差一维)。但是NE在奇数-偶数维度上的正负交替在高纬度上逐步消失(图5a 表明正负在高纬度上并没有啥影响)。关键是,成对距离是对称的,并随着浮点值单调衰减(图5b,???这说明了啥)

 

4)Training objectives

输入包括k property tokens +  l textual tokens ,为:

全长 T = k + l。

PLM objective.

思想:通过在运行时对序列x的因式分解顺序z采样来自回归地填充masked token。根据分解顺序分解似然pθ(x),期望得到一个双向自回归模型:

在实际中,只部分预测(预测最后c个token)。因此损失可以改为(c为一个超参数):

通常每个batch中,masked ratio = 1/c . 注意这里没有对property tokens 、 textual tokens做区分,形式上通用,但是实际中需要排列(堆叠后就仅仅对一个),因此需要特殊处理:交替训练(设置两个目标,分别用于性质预测、文本预测),使得模型可以预测数字标记或者文本标记。

Property prediction objective.

屏蔽全部性质token,就是将前c = l个token mask,因此损失为:

 

注意:x向量排列顺序变为(文本token,性质token)

Conditional text generation objective.

在给定性质token和部分文本token的情况下促进了masked文本token的生成(即重建全文序列),即前k个token不mask,设置c≥k,保证只mask文本:

注意:x向量排列顺序变为(性质token,文本token)

Self-consistency (SC) objective.

如果生成的序列符合primed性质,则上述(6)不会奖励(即损失不会再次下降),单个符号(即原子、氨基酸或(子)词)的变化可以极大地改变序列(句子)的性质(含义),添加一个SC term(第二项)来补充:

直观地说,它是样本的性质与生成样本的预测性质之差

在这样的公式中,RT在其自身优化过程中充当了一个约束层(类似于自监督的额外层)。奖励与训练样本不同的分子的生成,只要符合属性。

3、Model training and evaluation procedure

Implementation

HuggingFace库XLNet作为backbone,添加了一个额外的编码层用于预训练heads,数字Ndim = 16 (即j = 16),在Transformer encoder 32个隐藏层, feed-forward的维度为256和1024,16个heads(20% dropout)。大约2700万个可训练的参数(确切的数字取决于词汇量的大小)。单个(NVIDIA Tesla A100或V100)

Chemical language modelling.

药物相似度(QED)。从ChEMBL72中的约160万个生物活性分子开始,通过使用RDKit计算所有分子的QED分数(q∈[0,1])并舍入到小数点后三位。约140万训练,1000个验证,10000个测试。使用公式4训练模型,直到验证集收敛,然后训练公式5、7每隔50步交替。SMILES/SELFIES的词库量为509/724。在评估中,greedy decoding用于性质预测,beam search decoding用于分子生成。设置c=2.5(大约40%的token的被mask,maximum span: seven tokens)

MoleculeNet benchmark.

ESOL, FreeSolv and Lipophilicity。使用15%的验证数据执行三次随机分割。使用QED初始化热启动,并只训练了50,000step(batchsize=4)。由于QED预训练使用了[0,1]中的数值,将整个MoleculeNet数据集的值归一化到相同的范围(仅使用训练数据),并将它们四舍五入到小数点后三位。对于所有目标,除非另有约束,设置屏蔽c = 5,并将连续屏蔽令牌的跨度限制为最多5 tokens。

Property optimization benchmark.

目标是调整种子分子,使其属性最大化,同时固定的相似性约束,其中215,381个训练和799个测试。pLogP是辛醇-水分配系数(logP),由 synthetic accessibility score和大于6个原子的循环数决定。因此,pLogP可以像QED一样从分子中确定地计算出来。QED初始化进行热启动,训练50,000step,用相同的种子分子prompting 80次,但改变分数和掩码的最大跨度,形成一个分子池

Protein sequence language modelling.

蛋白质相互作用指数(Boman)。专注于波曼指数(衡量肽的潜在蛋白质相互作用的指标)。从UniProt中收集了包含15-45个氨基酸的全部2,648,205条肽,计算了它们的Boman指数,并分别使用10,000和1,000进行测试和验证。

最初在[−3.1,6.1]范围内的Boman指数数值被归一化为0,1(仅使用训练数据),并四舍五入到小数点后三位。一组用于PLM目标(方程(4)),两组用于交替目标。再次在优化(方程(5)和方程(7))之间每隔50step交替进行,并训练一组有SC损失的模型和一组没有SC损失的模型(方程(7)中的α分别= 1和α = 0)。

TAPE benchmark.  

Fluorescence and Stability数据集。目标是分别预测与训练蛋白相差一到四个突变的蛋白质的荧光和内在折叠稳定性。这两个数据集都有固定的分割。荧光(稳定性)数据集有21,446(53,416)个训练样本,5,362(2,512)个验证样本和27,217(12,851)个测试样本。

使用Boman初始化(PLM目标)热启动三个模型,并训练直到验证性能饱和(~100,000步),数值再次缩放到[0,1]。

对于条件生成任务的评估,模型被赋予了更大的灵活性:60%的令牌被屏蔽(即式(3)中的c = 1.7),最大跨度为7个氨基酸残基。用于预训练的Boman数据集包含15-45个残差(mean±s.d)。(36±7),荧光蛋白显著增加(246±0.2个残基,P < 0.001)。相反,稳定性数据集中的蛋白质大小与预训练数据相似(45±3个残基)。

Chemical reaction modelling.

USPTO数据集。由于这两个反应产率数据集只覆盖了化学空间的狭窄区域(一个模板应用于许多前体组合),对从USPTO中提取的更广泛的反应化学模型进行了预热。总共有5000个反应进行验证,并对模型进行训练,直到方程(5)和方程(7),α = 1上的验证性能饱和。c设为2.5。reaction SELFIES 的词汇包含861个token。

Reaction yield datasets.

10个模型分别在重复的随机分裂上进行微调。10个模型分别在重复的随机分裂上进行微调。训练目标再次在属性预测(方程(5))和条件生成(方程(7),α = 1)之间每隔50步交替进行,最多50,000步

4、Results

1、Chemical language modelling

Initial validations—learning drug likeness.

对于生成任务,验证分子进行10次查询,其间隔为[0,1]和40%的掩码文本标记。“引物”的意思是用期望的性质值代替序列的真实性质。高秩相关ρ(引物与唯一生成分子的QED之间)值表明该模型成功地完成了损坏序列以生成具有所需QED的完整分子。值得注意的是,所有模型的新颖性得分>99%。RT可以产生新的化学物质,坚持一个连续的性质感兴趣。

NEs(类似于位置编码),在所有任务中都略微提高了性能

回归任务甚至实现了均方根误差(RMSE) <0.06

对于单目标可以取得较好表现,但是当任务难度逐渐增加(即seed分子的QED与primed QED的距离)时,生成分子的QED与引物属性的距离线性增加),因为构成了一个局外分布(模型只用seed == primed预训练)。

SELFIES模型远远超过了SMILES模型,因为SMILES在语法上是无效的(发现60%的有效性)。然而,这个数字很难与非种子生成模型进行比较,因为(1) RT必须修复损坏的SMILES,不能简单地依赖其自身的内部状态;(2)同时提供的属性引物捕获了从低到高的QED分数的整个范围,从而激励模型冒险地装饰序列以坚持约束属性-这一任务通常是不可能的,并且很容易导致broken SMILES; (3) RT训练不依赖于教师强迫。虽然SELFIES有1.6%损坏,但是相对而言很低了

Learning embeddings of numbers.

NEs对于QED的提升很小。如扩展数据图3所示,在没有 static NEs的情况下,模型从数据中学习数字的自然顺序。大量的嵌入维数(小数点- 1和- 2分别为47%和36%)直接和显著地编码了数字的顺序(即,10个嵌入值与严格单调向量之间的P < 0.05和∣PCC∣>0.62)。例如,在扩展数据图3(左)中,数字值与其嵌入值单调相关。

 

2、Regression benchmark (MoleculeNet)

MoleculeNet的最强基线模型XGBoost在所有任务上都优于我们的所有模型。我们所有的模型都优于BERT和BART。值得注意的是,这些模型在微调回归头之前利用了大规模的自监督预训练,而我们使用的是分类损失。由于这些结果可能无法直接与带有XLNet主干的RT进行比较,因此我们还对带有传统回归头的XLNet模型进行了微调。值得注意的是,尽管没有回归损失,RT是相同的(亲脂性)或只是轻度较差(即在sd范围内;ESOL, FreeSolv)到XLNet。

 

3、Conditional molecular generation benchmark

 given in Tanimoto similarity 阈值δ,生成高plogP, RT竞争的最先进的模型。这与RT训练形成鲜明对比,RT训练只有在重建分子具有与种子分子相似的(预测的)plogP时才会获得奖励(我们没有为训练构建定向plogP查询;它们仅在推理时使用)。因此,RT在价态上是不可知的,同样可以用来使分子适应较低的plogP。RT能够在目标定向分子生成中与专门的条件生成模型竞争。同时,RT还预测了plogP值,Pearson相关系数(PCC)为0.92,这是常规条件生成模型无法解决的任务

4、Protein sequence language modelling

Pre-training on potential protein interaction (Boman index).

RT成功地生成了具有所需的波曼指数的肽,给定部分损坏的氨基酸序列(斯皮尔曼ρ为0.84;表3 b)。此外,更高比例的掩码令牌在蛋白质生成任务中可以获得更好的结果。

TAPE datasets (protein fluorescence and protein stability).

RT的竞争性预测性能表明,自监督预训练的好处可以扩展到数字标记的数据集。这产生了一个条件生成模型,用于蛋白质序列空间的属性驱动的局部探索。关于这一点的证据可以在表3b中找到:尽管所有的TAPE模型以及UniRep方法都无法解决这一生成任务,但RT能够修改测试蛋白,使其(预测的)稳定性与引物特性强烈相关(ρ = 0.44)。

5、Modelling chemical reactions

 

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

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

相关文章

Servlet编程---Day 07

目录 一、过滤器概述 二、过滤器使用 &#xff08;一&#xff09;开发第一个过滤器 &#xff08;二&#xff09;过滤器的生命周期 &#xff08;三&#xff09;FilterChain(过滤器链) 1.过滤器链认识 2.过滤器链代码实现 3.过滤器链顺序 &#xff08;四&#xff09;请求…

【C++进阶】多态详解(上)

文章目录 一、多态的概念二、多态的定义及实现1.多态的构成条件2.虚函数3.虚函数的重写(1)虚函数重写概念(2)虚函数重写的两个例外&#xff1a;(3)析构函数是否要定义为虚函数(4)C11 override 和 final 三、抽象类1.概念2.接口继承和实现继承 四、多态的原理1.虚函数表2.多态的…

各种常见的word格式符号(回车字符、软回车、分页符等)

一、如何显示编辑符号 1、打开WORD-选项-显示&#xff0c;勾选格式标记 2、如下图所示。在【开始】一【段落】选项卡中&#xff0c;它可以帮助我们识别编辑过程中的格式符号。 二、各种常见的word格式符号 第一种 描述&#xff1a;向下的箭头 样式&#xff1a;↓ 名字&#xff…

Esbuild基本使用与插件开发

作为Vite的双引擎之一&#xff0c;Esbuild在很多关键的构建阶段(如依赖预编译、TS语法转译、代码压缩)让Vite获得了相当优异的性能&#xff0c;是Vite高性能的得力助手。无论是在Vite的配置项还是源码实现&#xff0c;都包含了不少Esbuild的基本概念和高阶用法。因此&#xff0…

idea线上debug

idea线上debug 1. 为什么需要线上debug2. 基本原理3.远程调试配置3.1 1. 融合云增加JVM参数3.2 idea配置 4. 注意附录 1. 为什么需要线上debug 在微服务开发中&#xff0c;开发的服务可能会依赖数据库、消息队列等资源&#xff0c;也有可能依赖其他的服务&#xff0c;这些服务…

PCB 布线技术~PCB 基础

PCB量测的单位 • PCB设计起源于美国&#xff0c;所以其常用单位是英制&#xff0c; 而非公制 – 版子的大小通常使用英尺 – 介质厚度&导体的长宽通常使用英尺及英寸 • 1 mil 0.001 inches • 1 mil .0254 mm – 导体的厚度常使用盎司(oz) • 一平方英尺金属的重量 •…

redis学习(十八) 部署redis哨兵模式

文章目录 前言一、搭建主从数据库二、搭建哨兵三、验证哨兵 前言 哨兵模式核心还是主从复制&#xff0c;只不过在相对于主从模式在主节点宕机导致不可写的情况下&#xff0c;多了一个竞选机制&#xff1a;在所有的从节点竞选出新的主节点。每一个哨兵都是一个独立的sentinel进…

PCB 布线技术~PCB结构:Traces,电源平面

PCB导体:Traces • 铜是PCB中最常用的导体 – 走线或连接器一般通过镀金来提供一个抗腐蚀的电传导特性 – 走线的宽度和长度-由PCB布线工程师控制 • 在通常的制造工艺下&#xff0c;走线的宽度和之间的间距一般要≥5 mil – 走线厚度-制造工艺的变量 • 典型值 0.5oz – 3oz •…

Linux---目录结构、绝对路径与相对路径、命令基础格式、ls命令

1. Linux的目录结构 Linux的目录结构是一个树型结构。 Windows 系统可以拥有多个盘符, 如 C盘、D盘、E盘。 Linux没有盘符这个概念, 只有一个根目录 /, 所有文件都在它下面。 在Linux系统中&#xff0c;路径之间的层级关系&#xff0c;使用&#xff1a;/ 来表示。 Linux只…

Inodb引擎 内存+磁盘+MVCC(多版本并发控制)

目录 逻辑存储结构 Innodb引擎内存结构介绍 Innodb引擎磁盘结构介绍 内存和磁盘交互 MVCC(多版本并发控制)原理 预备知识 mvcc基本概念 mvcc的具体实现 总的来说mvcc原理&#xff1a; 逻辑存储结构 Innodb引擎内存结构介绍 Buffer Pool(缓冲池) 缓冲池是内存的一个区域&am…

001 hive简介

一. hive概述 1. hive的产生背景 mapreduce程序大部分解决的问题是结构化数据&#xff0c;而解决结构化数据最佳方案是一条sql语句 hive出现的主要原因是解决mapreduce开发成本高的问题。但hive不能完全替代mr&#xff0c;只能处理mr中的结构化数据。 2. hive是什么 hive提…

【数据结构】常见数据结构汇总

文章目录 前言一、数组二、链表三、栈四、队列五、哈希表--散列表六、堆七、树八、图参考与感谢 前言 数据结构是计算机存储、组织数据的方式。一种好的数据结构可以带来更高的运行或者存储效率。数据在内存中是呈线性排列的&#xff0c;但是我们可以使用指针等道具&#xff0…

hive学习入门

第四章 HQL基础语法 Hive中的语句叫做HQL语句,是一种类似SQL的语句,基本上和SQL相同但是某些地方也是有很大的区别. 4.1 数据库操作 创建数据库 1.创建一个数据库,数据库在HDFS上的默认存储路径是/hive/warehouse/*.db。 create database hive01; 避免要创建的数据库已经存…

算法设计与分析:分治法

目录 第1关&#xff1a;分治法介绍 任务描述&#xff1a; 相关知识&#xff1a; 基本概念&#xff1a; 解题步骤&#xff1a; 实例演示&#xff1a; 关键代码&#xff1a; 编程要求&#xff1a; 测试说明&#xff1a; 第2关&#xff1a;归并排序 任务描述&#xff1a;…

网安行业「iPhone时刻」!深信服首秀安全GPT技术应用

5月18日&#xff0c;深信服正式对外首秀安全GPT技术应用。深信服科技董事长何朝曦在现场分享了安全GPT技术应用的研发背景、技术应用特点及未来设想。深信服科技研发总经理梁景波、深信服安全攻防专家演示了安全GPT技术应用在XDR平台上的效果&#xff0c;包括高级威胁检测、安全…

Midjourney8种风格介绍+使用场景(2)

引言 我相信大家都或多或少玩过Midjourney&#xff0c;但是要形成自己独特的个人IP&#xff0c;那么有必要知晓画作的一些基础知识&#xff0c;如果你没有时间实践&#xff0c;没有关系&#xff0c;我来操作&#xff0c;定期分享画作相关知识&#xff0c;既简单又方便&#xff…

软件测试面试常常遇到的十大“套路”

面试中&#xff0c;如何回答HR提出的问题很大程度上决定了面试能不能成功。 下面是软件测试人员在面试过程中经常被问到的10个问题&#xff0c;告诉你怎么回答才不会被面试官套路...... 一、请你做一个自我介绍 误区&#xff1a; 一般人回答这个问题过于平常&#xff0c;只说…

5th-Generation Mobile Communication Technology(四)

目录 一、5G/NR 1、 快速参考&#xff08;Quick Reference&#xff09; 2、5G Success 3、5G Challenges 4、Qualcomm Videos 二、PHY and Protocol 1、Frame Structure 2、Numerology 3、Waveform 4、Frequency Band 5、BWP 6、Synchronization 7、Beam Management 8、CSI Fra…

闭包?什么是闭包?--JavaScript前端

大厂面试题分享 面试题库 前后端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 web前端面试题库 VS java后端面试题库大全 闭包的背景 由于js中只有两种作用域&#xff0c;全局作用域和函数作用域&#xff08;模块…

模拟封装C标准库

文章目录 1. 准备工作2. my_fopen3. my_fwrite4. my_fclose和my_fflush5. syncfs 1. 准备工作 举个例子&#xff1a; 这里我们要实现my_fopen&#xff0c;my_fwrite和my_fclose这三个函数&#xff0c;并封装MyFILE。 这是MyFILE的封装&#xff0c;然后我们把三个函数接口完成…