分享

J Cheminform|基于Swin Transformer的端到端光学化学结构识别

 智药邦 2022-09-02 发布于上海

2022年7月1日,来自华东理工大学的李洪林等人在Journal of Cheminfomatics上发表文章,提出了SwinOCSR,这是一种基于Swin Transformer的端到端模型。该模型使用Swin Transformer作为骨干来提取图像,以将化学结构信息从出版物转换为SMILES。实验结果表明,模型明显优于所比较的方法,证明了模型的有效性。此外,作者使用focal loss来解决化学结构图的文本表示中的标签不平衡问题。

背景

光学化学结构识别(Optical chemical structure recognition,OCSR)是指利用光学字符识别(Optical character recognition,OCR)从科学出版物中识别出化学结构图。

科学出版物印刷的化学结构通常采用PDF或者图像格式。它们不能直接地被计算机使用,因为它们不是分子的机器可读表示。OCSR的目的是正确地将此化学结构信息转换为机器可读的表示形式,例如SMILES。随着化学领域科学出版物继续呈指数增长,OCSR在化学的许多子领域中起着至关重要的作用,例如有机合成,天然产物研究,药物发现等。然而,OCSR耗时且容易出错,并且需要领域知识以消除结构中的歧义。

OCSR任务是将化学结构图转换为可读的文本表示的过程。研究者们已经提出了几种基于深度学习的OCSR方法。例如,DECIMER 1.0[4]使用EfficientNet-B3 和Transformer来搭建OCSR模型。Image2SMILES[5]使用ResNet-50作为骨干(backbone)来提取图像特征,利用Transformer解码。在这些方法中,许多CNN及其变体被用作骨干,以在OCSR任务中提取图像功能。Swin Transformer模型是一种最新的骨干,超过了计算机视觉领域的许多先前模型。

为了学习全局表示并获得更全面的化学结构信息,作者使用Swin Transformer作为骨干,来提取分子的图像特征。此外,相比于自然语言来说,分子的文本表示中,一个明显的现象是,分子中元素的出现频率不平衡。例如,C,H和O出现更频繁,而Br,Cl等出现的频率较低。这会导致文本表示中标签的不平衡。为此,作者使用focal loss来解决不平衡问题。这种端到端的深度学习方法,学习了分子的全局表示形式,与其他方法相比,也获得了更丰富的图像特征。

方法

SwinOCSR模型如图1所示,由Backbone,Transformer编码器和Transformer解码器组成。首先,Backbone从输入分子图像中提取图像特征,以获得高维序列。接下来,将序列和位置信息嵌入Transformer编码器中以输出表示序列。最后,Transformer解码器使用表示序列来解码相应的SMILES。

图1. SwinOCSR模型图

Backbone是基于图2所示结构来构建的。首先,分子图像被分配到非重叠的切片中,切片的大小为4×4。它的特征为原始像素RGB值。然后,将线性嵌入层用于将此原始值的功能投射到特定维度(这里设为192),并使用多个Swin Transformer块来提取功能信息。如图3所示,每个Swin Transformer块包含两个重要的模块,窗口多头自注意力(window multi-head self attention,W-MSA)和滑动窗口多头自注意力(shift window multi-head self attention,SW-MSA)模块。 

W-MSA用于在窗口中提取局部特征信息。SW-MSA用于在Windows之间提取全局特征信息。这显著增强了Swin Transformer的特征提取能力。这个过程就是图2中的“阶段1”。在阶段2-4中,为了生成层次表示,Swin Transfromer不使用通常在CNN中使用的池化,而是采用合并相邻的片以减少特征图的大小,避免信息丢失。最后,为了构建一个序列作为编码器输入,空间维度中的特征被拉平,从而产生代表化学结构信息的序列。

图2. Backbone模块

图3. Swin Transformer块

编码模块由位置编码操作和六个Transformer encoder层组成,每个层都包含两个特定的子层。第一个子层是多头注意力层,第二个是MLP层。如图4所示,每个子层之后都有一个残差连接操作和归一化操作。多头注意力层的Q,K和V,是通过将三个可学习的权重矩阵与输入序列相乘而得到。然后,注意力函数用于将Q和一组K-V对映射到输出。获得计算结果后,将数据传输到MLP层。

图4. 编码器

解码模块由位置编码操作,六个Transformer decoder层,线性层和SoftMax层组成。Transformer decoder层包含三个特定的子层。第一个子层是一个包含掩模的多头注意力层,接收来自上一个子层的信息。第二个子层是多头注意力层,融合来自上一个子层的信息与编码器输出的信息。第三个是MLP层。与编码模块类似,每个子层兼有残差连接和归一化,如图5所示。解码输出通过线性层和SoftMax层得到最终的SMILES输出。

图5. 解码器

为解决元素类别不均衡(C, H, O等少数几种元素出现频率远高于其他元素)问题,使用multi-label focal loss(MFL)作为损失函数。给定n个类别,该模型在SoftMax后,每类输出一个得分oi,i=1,2,…,n,用σ表示sigmoid函数,每个标签的概率pi为

实验

如表所示,使用MFL作为损失函数,准确度高于交叉熵(CE)损失。

随着训练轮次的增加,损失函数曲线图和准确度曲线图表明,以Swin Transformer作为backbone,优于以ResNet作为backbone的OCSR模型Image2SMILES[5],和以EfficientNet作为backbone的DECIMER 1.0[4]。

图6. 损失函数曲线图

图7. 准确度曲线图

下表在两种具体分子上做了案例分析。SwinOCSR从图片中提取的SMILES(Predicted SMILES from the real-world image)与实际的SMILES(Manual-labeled SMILES)一致。接着,用CDK(chemistry development kit)从实际的SMILES中生成分子图像,用SwinOCSR识别生成的图片,得到的结果(Predicted SMILES from the generated image)依然正确。

总结

在这项研究中,作者提出了一种端到端的化学结构图像识别方法SwinOCSR,该方法可以直接识别原始化学结构图而无需手动提取特征。与现有的方法相比,SwinOCSR具有更高的精度和更快的收敛速度,可以有效地提取化学结构的关键特征,并捕获化学结构图和SMILES之间的对应关系。

参考资料

[1]Xu et al., SwinOCSR: end‑to‑end optical chemical structure recognition using a Swin Transformer, J Cheminform, 2022

[2]Liu et al., Swin transformer: Hierarchical vision transformer using shifted windows, in ICCV, 2021

[3]Lin et al., Focal loss for dense object detection, in ICCV, 2017

[4]Rajan et al., DECIMER 1.0: Deep Learning for Chemical Image Recognition using Transformers. J Cheminform, 2021

[5]Khokhlov et al., Image2SMILES: transformer-based molecular optical recognition engine. Chem Meth, 2021

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多