基于双路注意力机制的化学结构图像识别
2020-09-18季秀怡李建华
季秀怡,李建华
(华东理工大学 信息科学与工程学院,上海 200237)
0 概述
随着通信、计算机、自动化等技术的不断发展,以深度学习为代表的机器学习算法在图像识别、语音识别、自然语言处理等领域得到广泛应用。由于在科学文献和网络中包含的化学信息对分子结构检索、新药设计等具有重要作用,但大部分化学信息以JPEG、PNG、GIF及BMP等图像格式呈现,因此失去了原有的化学意义。研究人员通过ChemDraw、ChemSketch等化学绘图软件人工绘制文献中的化学结构图像耗时耗力且容易出错,甚至需要结合专业知识来消除结构之间的歧义性,所以利用深度学习算法将文献中的化学结构图像自动地转化成计算机能够识别的InChI、SDF、SMILES等结构化信息数据格式具有实际应用价值。
现有化学结构图像识别方法一般基于传统图像处理技术并结合流水线方式,先识别化学原子符号,再识别原子间的化学键,且在识别过程中制定了大量规则。但此类方法需针对特定情况设计不同规则,且识别效果严重依赖于人工特征,如文献[1]制定了18条规则用于识别原子之间的化学键。由于规则之间有可能存在相互依赖的情况,因此使得对于此类方法的改进变得异常困难。而且此类方法虽然对于常见的化学键识别效果较好,但是难以处理化学键与化学符号粘连的情况,同时对于双键、苯环及楔形键等结构容易识别错误或者识别不完整。此外,流水线方式还容易产生误差累积,导致最终识别准确率降低。
近年来,以深度学习算法为基础的计算机视觉和自然语言处理技术得到快速发展,利用深度学习技术从图像中提取出有价值的信息得到越来越广泛的应用。深度神经网络能自动提取特征,并且在化学结构图像上具有较好的鲁棒性和泛化能力。SMILES是一种常用的化学结构表示方法,其先将分子图结构转换为树结构,再以纵向优先遍历的顺序获得树结构的序列表示。SMILES作为化学结构图像的存储格式,其利用深度神经网络模型将化学结构图像转化为SMILES序列,并且需要学习SMILES序列的语法规则以及化学结构图像的局部信息与SMILES序列子串之间的映射关系,若复杂化学结构对应的SMILES序列较长,则其在序列生成过程中需保持较长的记忆以及不同抽象层次的推理能力。
本文基于空间注意力机制与通道注意力机制,并结合基于卷积神经网络(Convolutional Neural Network,CNN)与长短期记忆(Long Short-Term Memory,LSTM)网络的深度神经网络模型,提出一种新的化学结构图像识别方法。该深度神经网络模型由编码和解码两部分组成,编码部分使用预训练的ResNet网络提取图像特征并对其参数进行微调。解码部分将双路注意力机制与LSTM网络相结合预测SMILES序列。
1 相关工作
1.1 化学结构图像识别
早期的化学结构图像识别方法一般基于传统图像处理技术并结合流水线方式。CLiDE[2]通过识别阶段、字符分组阶段和解释阶段扫描化学结构的连接表,并利用霍夫曼方法进行线检测。CLiDE Pro[3]是CLiDE的扩展版本,对化学结构图像进行预处理并识别连接的组件和图像区域后,结合相关组件的形状、上下文分析以及化学知识,应用特殊规则检测和解释难以绘制的特征。ChemReader[4]根据像素的连接方式将像素分为字符和图像两部分,并采用霍夫曼变换和角点检测算法表示键连接的图像组件。开源OSRA[5]使用Potrace库,采用OCR与线检测相结合的方式进行化学结构识别。MLOCSR[6]基于模式识别技术与概率知识表示和推理的流水线集成方法识别化学结构。以上工作均基于规则进行化学结构图像的重建,并且字符与图像之间通常分开检测,需要手工提取特征。
基于深度神经网络的化学结构图像识别方法因深度学习技术在计算机视觉和自然语言处理领域的快速发展而得到广泛应用。文献[7]提出一种基于深度学习技术的化学结构图像识别方法,将输入文档生成对应的SMILES序列。该方法先分割化学结构图像,再对分割出的图像进行化学结构预测,但其主要用于识别低分率图像。
1.2 序列生成
序列到序列(Sequence to Sequence,Seq2Seq)[8]模型由谷歌于2014年提出,其输入与输出均为不定长序列,并且主要用于机器翻译任务。随着深度学习技术在自然语言处理领域的发展,序列生成被应用于文本摘要生成[9-10]、机器翻译[11-12]及图像描述生成[13-14]等任务中。早期序列生成较多采用循环神经网络(Recurrent Neural Network,RNN),其主要包括门控循环单元(Gated Recurrent Unit,GRU)[15]和LSTM[16]模型。在图像描述生成任务中,文献[17]采用编码-解码架构的序列生成模型,其中将CNN作为编码器用于提取图像特征,RNN作为解码器用于序列生成。文献[18]将注意力机制应用于翻译任务并取得了良好的效果,因此注意力机制逐渐成为提高序列生成准确率的重要方法。2017年,谷歌提出的Transformer[19]完全通过自注意力机制学习文本的表示,并使用编解码模型生成序列,在自然语言处理任务中取得了较好的应用效果。
2 基于注意力机制的化学结构图像识别
本文基于双路注意力机制,并结合基于CNN与LSTM的深度神经网络模型,提出一种新的化学结构图像识别方法。深度神经网络模型结构如图1所示,由编码模块、解码模块和字符嵌入模块组成。编码模块旨在通过多层卷积等操作对图像进行特征提取,得到的特征图表示为fi(i=1,2,…,L),其中L代表特征图的个数。字符嵌入模块对SMILES序列进行字符嵌入获得字符的向量表示,解码模块基于双路注意力机制并结合编码模块得到特征图、当前时刻的SMILES字符嵌入以及LSTM结构预测下一个时刻的SMILES字符,其中特征图表示为zi(i=1,2,…,L)。
图1 深度神经网络模型
2.1 编码模块
V=Encoder(X)
(1)
Vs=Squeeze(V)
(2)
Vc=Squeeze(Permute(V))
(3)
2.2 解码模块
解码模块接收编码模块输出的图像特征表示并结合注意力机制生成SMILES序列。现有注意力机制通常是指被建模为空间概率的注意力机制,该机制对语义相关区域赋予较高的权重[23]。CNN具有空间性、通道性和多层性等特性,考虑到化学结构图像的复杂性,除了空间注意力机制外,为通道维度赋予不同的权重对化学结构识别任务同样具有重要作用。文献[24]利用自注意力机制的上下文依赖关系,提出一种用于场景分割的双路注意力机制并取得了较好的效果。针对传统空间注意力存在的问题,本文在解码阶段将空间注意力机制与通道注意力机制相结合,具体过程如图2所示。
图2 解码过程
目前,一般采用RNN作为序列生成网络,考虑到LSTM对长序列的语义具有较好的表示能力[25],因此本文采用LSTM作为序列生成网络。在图2中,空间特征图与通道特征图对应的注意力权重分别表示为α和β。设t-1时刻利用空间注意力机制与通道注意力机制得到的特征融合表示为δt-1,t时刻SMILES的字符表示为wt,嵌入表示为vt,δt-1与字符嵌入向量进行拼接得到的xt为t时刻LSTM的输入,LSTM的输入还包括上一时刻隐层的信息ht-1,最终预测出当前时刻的字符y。t时刻字符的得分计算如式(4)~式(10)所示:
ft=σ(Wf·[ht-1,[δt-1;vt]]+bf)
(4)
it=σ(Wi·[ht-1,[δt-1;vt]]+bi)
(5)
(6)
(7)
ot=σ(Wo[δt-1;vt]+Uoht-1+bo)
(8)
ht=ot⊙tanh(ct)
(9)
scorest=Wsht+bs
(10)
其中,ft、it、ot、ht、ct分别表示遗忘门、输入门、输出门、隐状态和中间状态,Wf、Wi、Wo、Wc、bf、bi、bo、bc分别表示遗忘门、输入门、输出门和中间状态的权值矩阵以及偏置。
2.2.1 空间注意力机制
在通常情况下,SMILES序列中的某一个字符或者某一个子序列只与图像中的某个区域有关,例如预测子序列“c1ccccc1”(苯环)时,只与图像中包含苯环的区域有关,因此仅使用一个全局图像特征表示进行序列生成,但各区域的权重相同会导致预测结果变差,而利用空间注意力机制为语义相关的位置信息赋予更高的权重能显著提高序列生成的准确率。
经过图像编码后得到的空间特征图为Vs={s1,s2,…,si,…,sL},si表示第i个位置的视觉特征。空间注意力机制的计算公式如式(11)~式(13)所示:
(11)
(12)
et-1,i=ht-1Wesi
(13)
2.2.2 通道注意力机制
文献[26]提出通道注意力机制并将其应用于目标检测网络模型SENet中。由于CNN卷积核提取的特征之间存在一定冗余性,因此对每个通道赋予不同的权重并计算特征图的加权平均以重新生成一个特征图,该特征图包含通道之间的相关关系,可视作对空间注意力机制的二次筛选,即语义选择过程。通道特征图表示为Vc={c1,c2,…,ci,…,cC},与空间注意力机制类似,通道注意力机制的计算公式如式(14)~式(16)所示:
(14)
(15)
zt-1,i=ht-1Wzci
(16)
2.3 SMILES字符嵌入
{"C":1,"(":2,"=":3,"O":4,")":5,"[":6,"-":7,"]":8,"N":9,"+":10,"1":11,"P":12,"c":13,"l":14,"n":15,"2":16,"3":17,"H":18,"S":19,"4":20,"o":21,"#":22,"I":23,"s":24,"B":25,"r":26,"5":27,"F":28,"i":29,"A":30,".":31,"a":32,"g":33,"e":34,"6":35,"K":36,"Z":37,"7":38,"b":39,"M":40,"d":41,"u":42,"T":43,"G":44,"t":45,"V":46,"R":47,"h":48,"p":49,"W":50,"
2.4 注意力机制与损失函数的融合
考虑到空间注意力机制和通道注意力机制分别存在相应权重,文献[27]提出一种双重随机正则化激励模型对图像的每个部分赋予不同权重,且在同一时刻所有区域的注意力权重之和为1,根据LSTM前一时刻的输出ht-1生成一个权重门控标量。本文在此基础上提出一种基于双路加权正则化的类别交叉熵损失函数,引入空间门控标量和通道门控标量融合空间注意力机制和通道注意力机制,通过最小化损失函数训练深度神经网络模型,具体计算公式如下:
gateα,t=σ(Wαht-1+bα)
(17)
gateβ,t=σ(Wβht-1+bβ)
(18)
(19)
λ1(1-α)2+λ2(1-β)2
(20)
3 实验结果与分析
3.1 实验数据集
本文实验使用的数据集来自PubChem[28],包含10万个不同的SMILES序列,每个SMILES序列包含的字符数量为20个~80个。图3为序列长度分布情况。本文利用Rdkit[29]工具将SMILES序列转换成相应的化学结构图像,并将数据集划分为训练集、验证集和测试集3个部分,其中序列数量分别为85 000、5 000、10 000。
图3 SMILES序列长度分布
3.2 实验评价指标
BLEU值[30]是一种评估机器翻译质量的指标,通常采用BLEU值衡量预测序列的质量。本文除采用准确率、BLEU值作为评价指标外,还采用Tanimoto[6]相似性指标衡量预测SMILES序列与真实SMILES序列之间化学结构模式的一致性。Tanimoto相似度指标采用化学指纹进行两种化学结构的相似性评估,例如两种化学结构之间的差异仅为一个原子(中心氮),但由于它们之间的化学指纹不匹配,因此相似度较低[6]。Tanimoto相似度计算公式如下:
(21)
其中,m1、m2表示SMILES字符串,fp表示分子指纹计算函数。
3.3 实验设置
为验证本文基于双路注意力机制的深度神经网络模型(CNN+Dual+LSTM)的有效性,将其分别与无注意力机制的深度神经网络模型(CNN+LSTM)、基于空间注意力机制的深度神经网络模型(CNN+Spa+LSTM)以及基于通道注意力机制的深度神经网络模型(CNN+Chan+LSTM)进行对比。在解码阶段,词嵌入维度设置为16,LSTM与注意力机制的隐层维度设置为256。空间注意力机制和通道注意力机制的维度设置为512,批处理大小设置为16。此外,设置Dropout为0.5防止过拟合,使用Adam优化算法加快模型收敛速度。在测试阶段,采用束搜索策略提高预测准确率,Beam Size设置为n,n取1、2、3。
实验基于PyTorch深度学习框架,在Ubuntu 16.0、NVIDIA GeForce RTX 2080 Ti环境下运行。4种模型的参数量、批处理运行时间及运行时的显存占用情况如表1所示。可以看出,虽然本文CNN+Dual+LSTM模型的参数量大,但其运行时间与单注意力机制的深度神经网络模型相比没有较大差距。
表1 4种模型的参数量及运行时间比较
3.4 结果分析
在测试集中,4种模型在Beam Size分别取1、2、3时的准确率如表2所示。可以看出,注意力机制对于化学结构图像识别具有重要作用。在特征提取网络相同的情况下,不含注意力机制的深度神经模型在化学结构图像识别任务上表现一般,单独引入空间注意力机制和通道注意力机制后识别准确率大幅提升。从整体上看,空间注意力机制优于通道注意力机制,双路注意力机制比单独使用空间注意力机制提升了3%的SMILES序列预测准确率,说明空间注意力机制与通道注意力机制的联合有助于更好地预测SMILES序列。
表2 4种模型的准确率对比
表3给出了4种模型在Beam Size分别取1、2、3时的BLEU值,其中BLEU-N分别衡量了预测序列与真实序列在1个字符、2个连续字符、……、N个连续字符尺度上的相似程度,本文中N取1~4。可以看出,本文提出的CNN+Dual+LSTM化学结构图像识别模型在BLEU值指标上均优于其他3种模型。从表2和表3也可以看出,在Beam Size取3的情况下,准确率约提高1%,而BLEU值也有不同程度的提升。
表3 4种模型的BLEU值对比
表4给出了4种模型生成的无效化学结构比例以及Tanimoto相似度分数。由于生成的SMILES序列可能未遵守SMILES语法规则,因此是无效的化学结构。可以看出,本文CNN+Dual+LSTM模型生成的无效化学结构序列最少,得到的Tanimoto相似度最高,表明本文CNN+Dual+LSTM模型在SMILES语法表示能力上优于其他模型。图4为本文CNN+Dual+LSTM模型在训练集和验证集上的损失函数对比结果。损失函数共训练了20个轮次,其在前两轮次时损失函数值下降较快,之后开始缓慢下降,验证集的损失函数值也缓慢下降,最终在第18轮收敛,模型性能达到最优。
表4 4种模型的Tanimoto相似度对比
图4 CNN+Dual+LSTM模型在训练集和验证集上的损失函数对比
通过选取测试集中的一部分图像,对比不同模型预测的SMILES序列,如表5所示,其中SMILES序列这列中的第1行~第5行分别表示真实化学结构图像的原始SMILES序列及CNN+LSTM、CNN+Spa+LSTM、CNN+Chan+LSTM和CNN+Dual+LSTM模型预测的SMILES序列。本文将识别出的SMILES序列应用Rdkit重新转化为化学结构图像,如图5所示,其中,黑楔形线表示方向向外的键,灰楔形线表示方向向内的键。图5(a)为不包含黑楔形键和灰楔形键的普通化学结构图像,可以看出4种模型都能识别出图像中的原子,但是前3种模型对原子之间的关系识别有误。图5(b)给出的化学结构图像包含了黑楔形键和灰楔形键,4种模型均能较好地识别出原子信息,然而前3种模型难以区分黑楔形键和灰楔形键,表明双路注意力机制在识别复杂化学结构方面具有一定优势。由图5(c)可以看出,虽然4种模型都未能完全正确地识别出SMILES序列,但是CNN+Dual+LSTM模型在原子及原子间关系识别上的性能表现要优于其他模型。
表5 4种模型预测的SMILES序列对比
图5 4种模型预测的SMILES序列识别出的化学结构图像
4 结束语
本文提出一种化学结构图像识别方法,将化学结构图像识别看作序列生成任务,分别采用预训练的ResNet网络以及基于双路注意力机制与LSTM相结合的深度神经网络进行图像编码与解码。实验结果表明,本文方法能够有效捕捉图像中化学结构与SMILES序列之间的对应关系,并且识别出的SMILES序列准确率较高。但由于本文实验仅针对不含基团且分辨率较高的化学结构图像,因此下一步将通过筛选更长的SMILES序列进行化学结构图像生成,并对图像添加噪声增强图像多样性,同时针对取代基数据,引入取代基字母与角标的组合表示,使其更适用于专利文献中存在的数据表示形式,从而提高深度神经网络模型在复杂且分辨率较低的化学结构图像中的泛化性能。