近期,麻省理工学院计算机科学与人工智能实验室的Jiang Guo等人在J Chem Inf Model杂志发表文章,介绍了一种从化学文献中提取反应的自动化方法。该方法将这类任务表述为结构预测问题,并通过一个由产物提取和反应角色标记组成的两个阶段的深度学习架构来解决。
摘要
获取结构化的化学反应数据对于化学家进行实验室实验和计算机辅助药物设计具有关键意义。现有的反应数据库通常由人类专家从已发表的文献 (如专利和期刊) 中手工摘录,既费时又费力。
在这项研究中,我们专注于开发从化学文献中提取反应的自动化方法。我们将期刊出版物视为信息的目标来源,与专利相比,这些出版物更全面,更能代表化学的最新发展。但是,它们对反应的描述不够公式化。
为了实现反应提取,我们首先设计了一个化学反应架构,主要包括一个中心产物,以及一组相关的反应角色,如反应物、催化剂、溶剂等等。我们将任务表述为结构预测问题,并通过一个由产物提取和反应角色标记组成的两个阶段的深度学习架构来解决。两个模型都建立在基于Transformer的编码器上,这些编码器使用领域和任务相关的无标签数据进行自适应预训练。
我们的模型被证明是有效的,而且效率高,在产物提取和角色提取方面分别取得了76.2%和78.7%的F1分数,每项任务只使用了数百个训练实例。
前言
长期以来,科学文献 (如期刊文章和专利) 一直是合成化学家寻找执行特定化学反应或感兴趣的合成程序的重要信息来源。为了减少信息检索所需的时间和成本,以及促进反应数据的获取,商业上已经投入了大量的精力,从非结构化文献中构建结构化数据库,如Reaxys和SciFinder等。这些数据库通常是由人类专家通过手工从文献中提取来填充的,成本高、耗时长、专业知识密集,特别是在近年来科学化学出版物指数式增长的情况下。这一挑战促使人们开发从非结构化文献数据中提取反应的自动方法。
在过去的十年中,化学领域的信息提取得到了越来越多的关注。现有的工作集中在命名实体识别 (NER) 和它们相关性质的提取上,如OSCAR和ChemDataExtractor。只有很少的工作针对化学反应的提取。与通过NER提取的化合物相比,化学反应的结构性更强,信息量更大,也更有实际意义。NER有助于将化合物和文档联系起来,但是化学家仍然需要去看原始文章以了解该化合物的背景。而反应往往是化学家想要了解的。为此开发的两个代表性工具包是ChemicalTagger和OPSIN。
ChemicalTagger和OPSIN这些基于规则的系统代表了这一努力的良好起点,但它们在很大程度上依赖于人工设计的规则,并且对语言使用或预处理步骤所引入的噪音很敏感,这限制了它们对非专利数据 (如期刊文章) 的可扩展性。与专利文献相比,学术期刊中使用的语言通常具有更高的复杂性和更少的公式化。例如,一句话可以描述多个反应或一个反应在不同条件下有不同的产物/产量。这种复杂性要求开发具有更高能力的更先进的自然语言处理模型。
另一种越来越受欢迎的反应数据是合成动作序列 (synthesis action sequences),它包含了实验室化学家或机器人系统进行反应所需的细节。Mehr等人通过与专家定义的启发式方法进行架构匹配,将文献中的合成程序解析为机器可执行的动作。Vaucher等人则提出了一个深度学习序列到序列 (sequence to sequence) 的模型,将非结构化的实验程序转换为动作序列,使用专家注释和基于规则的系统相结合进行训练。
在这项研究中,我们专注于开发一种自动解析期刊文章的方法,并将反应提取到与Reaxys和SciFinder等先前数据库工作一致的架构中。我们设计了一个架构,在一个统一的结构化语义架构中表征化学反应,其中包含作为中心元素的主要产物和作为其关联槽的一组基本化学角色。
除了为化学家提供结构化的、容易获得的反应信息外,这种格式的数据还可以直接用于计算机辅助化学,用于训练反应预测、反应条件推荐、和自动合成规划系统。
我们提出了一个用于反应提取的两个阶段的级联架构,它由两个主要的子模块组成:产物提取和反应角色标签。在第一阶段,一个序列标签模型被用来识别给定 (预处理) 文本中提到的所有可能的产物。对于每个产物,一个角色标签模型被用来从其上下文中提取所有可能的反应角色,并按照架构中的定义填充相应的槽。这两个模型都是数据驱动的,用深度神经网络构建,因此首先需要注释数据来进行训练和评估。为此,我们定义了全面的准则来注释化学文献文本,以获得化学反应数据,从中可以进一步编制特定任务的训练数据,分别用于产物提取和反应角色的标注。
考虑到反应数据集的注释既费力又需要专业知识,我们试图减少对深度神经模型的监督训练通常需要的大量标记数据的依赖。受最近在NLP中占主导地位的预训练和微调 (pretraining-and-finetuning) 范式的启发,我们首先在大量的未标记的文献文本上预训练了一个基于Transformer的文本编码器,名为ChemBERT。然后将该编码器与特定于任务的解码器相结合,并利用每个终端任务的有限注释量进行微调。此外,反应角色标签的输入文本预计与反应有关,即至少描述一个化学反应及其主要产物,从而形成一般化学文献文本中一个非常有限的子空间。
我们引入了一种自适应的预训练方法,通过反应相关的文本检索来找到一个与我们的目标任务在分布上更为相似的未标记数据的子空间。对这个子空间的持续预训练产生了一个任务自适应的编码器,ChemRxnBERT,它给反应角色标签带来了进一步的改进。
实验表明,我们的模型既有效又有数据效率。我们在产物提取和角色标记方面分别取得了76.2%和78.7%的F1分数,每项任务只使用了数百个训练实例。我们的代码、注释数据和反应提取的训练模型公开提供。
方法
反应架构
一个化学反应可以被描述为从一组化学物质到另一组化学物质的化学转化过程。因此,一个理想的反应架构应该有足够的信息量来反映这种转化,主要包括源化学物质、结果和反应条件。除了在化学上具有信息量之外,我们还希望该架构能够简洁明了,对数据驱动的模型友好。
根据这一设计原则,我们引入了一个架构,在一个统一的语义架构中表征反应,其中包含产物作为中心因素和八个相关的反应角色 (反应物、反应类型、催化剂/试剂、加工试剂、溶剂、温度、时间和产量) 作为槽位来填充。图1显示了使用该架构从一个示例文本中提取的反应。
图1. 使用提议的架构提取反应的例子
数据和注释
本文使用了1906年至2016年在多种化学期刊上发表的200,000篇文章的集合。
对于每篇与反应有关的文章,整个正文中只有少数段落包含形式良好的反应描述,而且通常没有明确的章节。我们首先采用了一套基于关键词匹配和章节过滤的规则来选择最有可能包含反应信息的段落。然后使用ChemDataExtractor工具箱对所得到的段落进行预处理 (句子分割、标记化)。
接下来,我们将所有预处理过的段落送入我们的注释工具。我们为该工具配备了丰富的功能,允许注释者:(1)注释和验证反应作用,(2)拒绝和分类一个段落,以及(3)查阅原始文章以获得更大的背景。
我们雇用了13名化学或化学工程实验室的研究生和博士后以及两名计算机科学的博士后进行第一轮的注释。然后,我们手工检查了注释的质量和一致性,并通过澄清一些含糊不清的术语来完善我们的注释指南,随后由相同的注释者进行了额外的整体验证过程。整个注解过程中,第一轮注解耗时280-240小时,段落级准确率为89.3%,精炼阶段耗时40小时。最终的语料库包含329个段落,每个段落都有一个或多个反应的注释。我们按照8:1:1的比例将我们的语料库分为训练、开发和测试集。
模型
任务的制定
我们将反应提取任务表述为一个结构预测问题,该问题将一连串的标记作为输入,并输出反应结构,每个结构都包含一组产物-角色关系对。我们提出了一个两阶段的架构,结合产物提取模块和反应角色标签模块来提取反应。在第一阶段,产物提取模块旨在从给定文本中识别所有可能的产物。对于每个产物,反应角色标签模块被用来提取对应于其上下文中出现的不同反应角色的相关元素,它们共同构成了最终的反应结构。这两个流水线模块是独立训练的。
产物提取可以被表述为对单个词的标准序列标记任务。然而,角色标签本质上是一个关系提取任务,旨在识别反应角色实体,并将其与给定产物的关系归入预定义的角色类别之一。我们通过在输入中添加特殊的标记,把目标产物告知编码器,从而把相关的角色标记的预测以输入文本和给定的产物为条件,把它制定为一个条件序列标签任务。图3说明了角色标签任务是如何制定的。
图3. 反应角色提取,一个关系提取问题 (顶部),这里被表述为以给定产物为条件的序列标签任务 (底部)。"Product.01"表征当前文本中的第一个产物。
在本节的其余部分,我们首先介绍了每个模块的结构设计,然后描述了一个自适应的预训练策略,以便在低资源的情况下的有效学习。
产物提取
产物提取的目标是识别所有提到化学反应的某些项目的实体跨度。具体来说,给定输入的标记序列,我们的模型旨在为每个标记分配一个分类标签。
Transformer 编码器本质上由一堆多头自注意力层和前馈层组成,它们计算每个词块的隐藏表征。我们将每个单词的第一个单词片段作为条件随机字段 (CRF) 的输入用于序列标记的解码器。
图4说明了我们标签模型的结构。在这项工作中,我们将结构标识符 (例如"4a") 视为独立的实体,以便于今后将文本与化学结构图连接起来的工作,其中标识符将被用于定位相应的分子结构。
图4. 产物提取的模型结构
该模型是用最大似然估计 (MLE) 训练的。
反应角色标签
对于第一阶段识别出的每个产物,我们继续识别并将其相关的反应角色归入我们的反应架构中预定的角色类型。
在这里,我们使用了Max-pooling,因为在我们的实验中,它比其他方法有更好的表现。
图5. 化学角色提取的模型结构。
以这个产物表征为条件,我们对所有剩余的标记进行序列标记,以识别相关的反应角色。
自适应预训练
我们利用pretraining-and-finetuning的范式来训练产物提取和角色标签模型。其关键思想是首先使用无监督目标在大规模无标签文本上预训练Transformer编码器,然后在规模有限的特定任务标签训练数据上对其进行微调。
我们从Devlin等人的BERT模型开始,该模型作为一个通用的Transformer编码器,在主要从BookCorpus和English Wikipedia收集的混合来源的文本上进行预训练。
作为最成功的迁移学习范式之一,用于预训练的无标签数据最好与用于特定任务微调的有标签数据有类似的分布。然而,在我们的案例中,化学文本似乎与BERT所训练的一般领域的文本高度不同。这种分布上的分歧给知识转移带来了困难,使BERT成为化学反应提取的次优选择。在这项工作中,我们建议通过自适应预训练使BERT适应化学领域,特别是我们的反应提取任务。
对产物提取模型的预期输入可以是化学文章中的任何文本,因为除了一组有限的关键词之外,没有明确的线索可以可靠地预先确定包含反应的文本。相反,角色标签模型的输入被保证至少包含一个产物,因此预期是反应相关的。预期输入数据分布的这种差异使得为这两项任务开发两个独立的预训练编码器成为必要。
事实上,角色标签模型的输入应该是产物提取模型的输入空间的一个子集。因此,我们提出了一个级联的自适应预训练方法,它由两个阶段组成:领域自适应预训练,产生一个针对化学领域的预训练编码器 (ChemBERT);任务自适应预训练,产生一个针对任务的预训练编码器 (ChemRxnBERT)。这两个产生的编码器分别用于产物提取和反应角色的标记。领域和任务自适应预训练工作流程如图6所示。
图6. 领域和任务自适应预训练的工作流程。
ChemBERT
为了使BERT适应化学文献领域 (ChemBERT),我们从一组200,000篇化学期刊文章中收集了未标记的文本,用于持续的预训练。
在ChemBERT的预训练中,我们保留了带有全词屏蔽的MLM目标,但放弃了NSP目标,因为在以前的研究中,NSP目标对大多数终端任务几乎没有好处。然后,预训练的ChemBERT被用来初始化产物提取模型的Transformer编码器 (图4),并在之后进行微调。
ChemRxnBERT
对ChemRxnBERT的预训练需要一个更有约束性的化学文本子集,它与目标任务更加一致。然而,反应作用标注的训练数据不足以满足这一目标。为了解决这个问题,我们建议使用产物提取模型作为文本检索器,从整个化学文本空间中自动识别反应相关的数据。具体来说,我们选择了至少包含一个产物的句子,这大约是全部未标记语料库的10%。
为了更深入地了解这个过程,我们从未标记的化学文本和角色标记的小型注释数据中随机抽出一组句子,使用训练好的产物提取模型的表征组件 (编码器) 对其进行编码,并通过平均上一层的上下文嵌入来计算其句子嵌入。然后通过主成分分析 (PCA) 将所得的768维句子嵌入还原为2维,并在图7a中进行了可视化。
我们可以清楚地看到,注释的反应数据紧凑地分布在整个化学数据的一个小子空间中。这个子空间中的数据点应该构成预训练ChemRxnBERT的一个理想数据集。图7b显示,我们检索到的句子与目标反应数据分布很吻合。然后这个数据子集被用于任务适应性预训练。
图7.化学文本嵌入的二维可视化。(a) 反应数据位于完整化学数据的一个小的子空间中。(b) 我们检索到的反应数据与注释的反应数据很一致。
结果和讨论
评估设置和基准
由于内存和优化的限制,我们用有限的序列长度进行了实验。对于产物的提取,我们发现大多数产物可以从同一句子的上下文中推断出来,所以我们进行了句子级的标记,以找到一个给定段落的所有可能的产物。然而,角色的识别在某些情况下可能涉及跨句子的推理。
为了确定合理的语境大小,我们分析了语料库中产物-角色距离的分布,如图8所示 (左为句子级距离;右为单词级距离)。
图8. 产物-角色距离的分布 (负数表征目标产物左侧的角色)。
我们对产物提取和反应角色标记模型的性能进行了评估,这些测试集是由注解数据集汇编而成的。在这种情况下,反应角色标签模型使用地面真实产物作为输入。
我们认为基于BERT的对应模型是我们主要的比较基准模型,除了使用一般领域的BERT编码器外,它们使用的架构与我们的相同。在整个实验中,我们将BERT称为正式发布的预训练的基于BERT的模型。
此外,我们还与BioBERT进行了比较,这是一个在生物医学文献上预训练的BERT模型。对于产物提取,我们还报告了一个开创性的基于规则的系统--OPSIN以及双向LSTM (BiLSTM) 的性能,后者一直是NLP中广泛的标签任务的标准方法。
产物提取
表4显示了产物提取模型的性能。正如预期的那样,OPSIN在我们的数据中表现不佳,显示了基于规则的方法在处理期刊文章中使用的自由语言方面的局限。BERT证实了其强大的表征能力,并显示出比BiLSTM编码器的实质性收益。ChemBERT在F1上比BERT取得了10.27%的绝对改进,这意味着领域适应性预训练的必要性和有效性。
表4. 产物提取的性能
反应角色标记
表5显示了上下文大小为1 (即句子级) 和3的反应角色标签的表现。在句子层面,ChemBERT比BERT取得了巨大的收益,而任务适应性的ChemRxnBERT在F1中又有2%的改进。我们发现,当使用较大的上下文规模时,ChemBERT在角色标记上优于ChemRxnBERT。原因应该是ChemRxnBERT是通过句子级的屏蔽语言建模来适应ChemBERT的。用更大的语境规模进行预训练应该是比较理想的,我们把它作为未来工作的一部分。
表5. 反应角色标签的性能
表6显示了按反应角色类型分列的表现。有些反应角色似乎比其他角色更难预测,如催化剂/试剂。我们在此排除了Workup reagents角色,因为它们在数据集中出现的次数非常少。
表6. 各反应角色类型的表现
定性分析
接下来,我们对我们的模型所提取的反应进行了定性分析,以证明其能力和潜在的弱点。
多重反应
图10展示了从我们的数据集中提取的反应的几个例子。我们首先展示了一个包含单一反应的简单案例 (Example (A))。Example (B)是一个多步骤的反应,其中第一个反应的产物是第二个反应中产生29的反应物。然而,传统的基于标签或基于规则的反应提取方法无法处理这种情况。Example (C)描述了一个化合物 (CpFe(CO)2 SiMe3) 在与不同的反应物偶合时得到不同的结果 (产物和产率) 的反应。
图10. 我们的模型所提取的反应实例。
催化剂/试剂与反应物
为了更好地理解我们的模型所犯的主要错误,我们在此提供一个有代表性的例子,催化剂/试剂的角色被错误地预测为反应物 (图11)。
我们发现,催化剂/试剂和反应物有一组相似的上下文结构。这就带来了额外的挑战,同时也带来了通过纳入潜在的外部领域知识 (如催化剂/试剂的字典) 或有效反应的化学约束 (如原子映射) 来进一步改进我们的模型的机会。
图11. 模型在区分催化剂/试剂和反应物时做出的不正确预测。
与Reaxys的比较
为了更好地了解我们方法的优势和局限性,我们对我们系统提取的反应与人工构建的Reaxys数据库进行了定性比较。我们选择了图10中的三个例子来分析其差异。使用数字对象标识符 (DOI) 检索了Reaxys中相应的反应记录。下面我们总结一下主要的发现。
反应角色分类的不匹配
大多数化合物可以有多种分类方式。这种模糊性常常导致我们的系统和Reaxys产生不同的注释。例如,在图12中,"DMSO"被我们的系统识别为溶剂,这符合文本描述。而Reaxys将DMSO归类为反应物,因为DMSO确实作为硫源参与了这个反应。
图12. 我们的系统 (ChemRxnExtractor) 提取的反应与Reaxys中手动抽象的反应在Example (A) (图10) 中的比较。为了更好地展示,化学名称被转换为结构式。
数值的四舍五入与精确报告
我们注意到在某些情况下,Reaxys报告的数值是四舍五入的。与此相反,我们的系统被设计为报告输入文章中所述的精确数值。这在反应产量值中得到了说明 (图12),我们的系统提取的是文本中所说的89%,而在Reaxys中四舍五入为90%。
从全局背景下提取的能力
我们的提取是基于有限的上下文范围 (即段落),因此可能无法提取某些反应角色,而这些反应角色的推断需要全局性的上下文 (例如,完整的文件)。例如,在图12中,Reaxys包括时间条件 ("12h") 和其他条件,如反应过程 ("密封管"),我们的系统未能提取这些条件。虽然在原来的文章中,这些都是在一个单独的章节中描述的,并且适用于文章中进行的所有实验,但在这个特定的段落中,这些都没有提到。
化学实体的确认
在反应描述中,化学品通常由标识符表征,与图中的具体结构描述相联系 (例如,图13)。因此,在将提取的反应填充到数据库之前,化学实体确认是一个关键步骤。在Reaxys中,这些化学实体是由人类专家手动建立的。相比之下,我们的自动化系统应该与额外的光学化学结构识别 (OCSR) 工具结合起来,进行化学实体的确认。
OCSR是迈向全自动化学文献挖掘的重要且具有挑战性的一步。现有的努力包括基于规则的方法和最近基于深度学习的模型。然而,为OCSR开发一个足够准确、强大和开源的解决方案仍然是一个挑战。
图13. ChemRxnExtractor与Reaxys中手动提取的反应在Example (C) (图10) 中的比较。
反应覆盖率
负面反应或失败 (例如图 13 中的反应 #2) 在Reaxys中大多被忽略。这些负面数据可能具有重要的科学价值,这项工作展示了从化学文献中系统地提取这些数据的潜力。一些反应也可能由于人类潜在的偏好而没有被纳入Reaxys。
例如,图10中的Example (B) 的反应没有被记录在Reaxys中。这是一个生产用于后续合成的中间体的反应,因此与文章中描述的其他反应相比,很可能被认为是"非必要的",因此被忽略了。
结论
这项工作实现了一个从化学文献中提取反应的自动化系统。我们引入了一个新的以产物为中心的化学反应架构,与现有的手工策划的商业数据库相一致,并按照这个架构收集了少量的注释。该任务被分解成两个级联的子任务,即产物提取和反应角色标签,并为每个子任务开发了单独的模块。这两个模块都建立在一个编码器-解码器的架构上,其中一个Transformer被用作编码器,而条件随机场被用作 (条件) 序列标记的解码器。
为了应对数据稀缺的挑战,我们提出了使用从文献中提取的大规模无标签语料进行领域和任务适应性的预训练。我们的系统在产物提取和角色提取方面分别取得了76.2%和78.7%的F1分数,大大超过了先前基于规则的方法,以及更强大的BERT和BioBERT基线模型。
对多反应提取的定性分析表明,我们的系统确实能够发现文本中复杂的产物-角色关系。同时,由于催化剂/试剂和反应物的上下文内容基本相同,目前的系统在区分催化剂/试剂和反应物方面仍然存在错误。最后,我们将我们的提取结果与人工构建的Reaxys数据库中的反应记录进行了比较,并分析了我们方法的优势和局限性,这对未来的发展方向有所启示。
数据和软件的可用性
这项工作中使用的 200,000 篇期刊文章由美国化学学会和麻省理工学院根据私人访问协议共享。我们的注释语料库、代码和预训练模型在 GitHub 上根据 MIT 许可公开提供。
支持信息
https://pubs-acs-org.tue.80599.net/doi/10.1021/acs.jcim.1c00284
参考资料
Guo J, Ibanez-Lopez AS, Gao H, Quach V, Coley CW, Jensen KF, Barzilay R. Automated Chemical Reaction Extraction from Scientific Literature. J Chem Inf Model. 2022 May 9;62(9):2035-2045. doi: 10.1021/acs.jcim.1c00284.
--------- End ---------