李正光,林鸿飞,申 晨,徐 博,郑 巍
(1. 大连理工大学 计算机科学与技术学院,辽宁 大连 116023;2. 大连交通大学 软件学院,辽宁 大连 116028)
化学物质诱导疾病(Chemical-induced disease,CID)关系对于药物发现、精准医疗、药物不良反应等生物医学研究至关重要[1],所以生物信息学家通过人工标注的方式将化学物质-疾病关系整理成生物医学数据库,如CTD(Comparative Toxicogenomic Database)[2]。然而人工标注CID关系耗费大量时间和精力,而且很难满足生物医学文献日益增长的需求。因此通过自然语言处理技术自动地从生物医学文献中抽取CID关系成为一个重要的研究热点。但由于缺乏一个全面的基准数据集,很难对不同的技术进行评估。为了提高CID关系提取的研究水平,BioCreative在2015年组织了一个从MEDLINE文献中自动提取CID关系的评测任务。研究者在该任务中面临的挑战主要包括: ①CID关系隐含在句子内或句子间;②生物医学领域的文章包含更多结构复杂的长句[3]。
在评测任务中,XU等人设计的CD-REST系统训练并融合句子级别和文档级别的SVM分类器以抽取CID关系[4]。Pons等利用先验知识和多种语言学特征进行训练[5]。后续研究者利用词法、BON(Bag ofN-gram)、句子级和文档级特征[6],图核与协同训练相结合[7]识别CID关系。然而基于特征的方法依赖于预先定义的启发式规则,导致其泛化性能不佳。因此,一些学者利用卷积神经网络[8]、循环神经网络[9]自动抽取CID关系并取得了较好的性能。文档级关系抽取分为句间关系和句内关系抽取。如Sahu等人[10]将基准数据集分成句内和句间两个子数据集,分别进行训练和测试,并利用图卷积网络进行关系抽取。Gu等人[11]引入注意力机制对句内和句间的CID关系进行抽取。研究结果表明,虽然CID关系抽取在句内关系上已经取得了很多积极成果,但是在句间关系上大部分系统表现很差,这也导致了最终性能在不引入外部资源的条件下不理想。所以,更具泛化性能且无外部资源以及能同时识别句内和句间CID关系的CID抽取系统更值得研究。
对现有系统研究发现,多数现有系统主要从句子级或者转换为句子级抽取CID关系,而忽略整篇文档中不同位置的实体对识别性能的影响,这可能是导致性能较差的原因。因此,本文提出了一种交互自注意力(Cross self-attention,CSA)机制并将该机制与BERT(Bidirectional Encoder Representations from Transformers)相结合,以提升CID关系抽取的性能。该模型由BERT输入、CSA操作、实体信息收集及预测输出组成。其中BERT输入包含标题、摘要和最短依赖路径(Shortest Dependency Paths,SDPs)。首先,模型利用工具Spacy Library将摘要拆分为多个句子,并且使用工具Stanford Parser从共现化学物质和疾病的句子提取最短依赖路径。其次,将标题、摘要和SDPs作为BERT输入以便获取它们的上下语义信息。第三,利用交互自注意力学习其交互语义信息以增强彼此语义表示,从而在文档级上捕获完整的语义。最后通过改进的R-BERT[12]收集不同句子中的实体语义信息,并且将收集到的化学物质、疾病语义表示和BERT的特殊标记[CLS]的表示进行连接,采用Softmax操作输出结果。
CID关系抽取研究方法主要涉及传统机器学习和深度神经网络。而根据研究者对语料的处理程度又可分为句子级、文档级和二者结合方法。Daniel等[13]利用启发式规则并且引入疾病本体库、MeSH(Medical Subject Headings)和Wikipedia在句子级层面识别CID关系。BRAN[14]系统使用自注意力编码在文档级层面抽取CID关系。CD-REST[4]首先利用(1)词级特征包括BOW、POS、拼写信息; (2)词典特征; (3)上下文特征,Bi-gram和Tri-gram; (4)词向量,分别训练了句子级和文档级SVM,然后分别对句内和句间CID关系识别,最后经过后处理操作得到最终的识别结果。CTD库中包含有大量准确的化学物质—诱导疾病关系,因此部分研究者引入CTD中的关系以提升整个CID的抽取性能。如Gu等[15]自动从CTD关系知识中生成训练数据,然后分别采用基于注意力的神经网络和堆叠式的自动编码网络来引导模型学习,并在句内和句间两个层级上辨别CID关系。句间CID关系抽取是目前研究的瓶颈,是一项值得研究的任务。
文档级关系抽取所涉及的语料中的实例都是由摘要和标题组成的,而且摘要和标题都是出自同一篇文献,因此它们之间在语义上存在内在关系。此外,一些研究表明,标题有助于改善系统的抽取性能[16]。而现有CID抽取系统表明,SDP对于句内CID关系的确定起到很大作用。本文所提出的模型将标题、摘要和SDP作为输入。整个系统框架如图1所示。该模型主要包含四个组件: ①多条最短依赖路径的构建; ②BERT表示; ③交互自注意力机制; ④文档中实体语义收集以及CID关系预测。
图1 系统框架图
SDP集中了两个目标实体的重要相关信息,因此它是确立两个实体句内关系的重要线索[17]。然而文档级语料中的一个实例包含多个句子,而且实体之间的关系有句内关系和句间关系。确立两个实体关系是基于整篇文档的语义,而不是单个句子的语义表达。因此文档级实例的SDP构建方法不同于现有SDP构建方法。本文构建SDP的方法步骤如下:
Step1: 使用“$CHEMICAL$”和“#TARGET#”替换实例中包括标题在内的所提及的目标化学物质和疾病。
Step2: 利用自然语言处理的分句工具将摘要拆分为多个句子。
Step3: 构建共现“$CHEMICAL$”和“#TARGET#”的所有句子(不妨称之为共现句)集合,Setco
Step4: 若集合Setco不为空,则利用斯坦福句法工具获取所有共现句的SDP,并且用特殊符号“ESDP” 将SDP串联在一起。若集合Setco为空,则表示该实例是句间的CID关系。算法转Step5,即采用近邻合并规则获取一条SDP。
Step5: 假设一个文档表示为D={S0,S1,S2,…,Si,…,Sn},其中,S0和Si分别表示标题和摘要的第i条句子,而且S0和Si都不是共现句。假设包含目标化学物质实体的句子集合为Dc={Sm1,Sm2,…,Smk,…},mk∈[0,n],而包含目标疾病实体的句子集合为Dt={Sn1,Sn2,…,Snj,…},nj∈[0,n]。当mk和nj的绝对差最小时,算法合并句子Smk和Snj。
Step6: 若合并后的句子仍然未获得SDP,则该实例的SDP为空,用单词“empty”表示。
BERT由多层双向Transformer编码组成。BERT的每个输入序列的第一个标记总是特殊标记“CLS”,分类任务常以该标记对应的最终隐藏状态分类[18]。对于文档级关系抽取任务,整篇文档中的实体语义信息对抽取性能都有影响,因此本文模型保留所有Token的最终隐藏状态以便获取更完整的语义信息。本文模型采用BERT产生标题、摘要和SDP的语义信息。它们的语义表示将用于交互语义的获取。
在CID关系抽取任务中,一个实例可能会多次提及目标实体,而且可能会出现在不同的句子中,即CID关系的表达可能跨越句子边界,并不总是位于单个句子中。因此,即使在化学物质与疾病同时发生的句子中存在诱导关系,但真正的CID关系也可能在整篇文章中无法确定。而标题、摘要和SDP相互之间存在内在关系,因此标题、摘要和SDP的语义信息应该通过它们之间的相互作用来增强,以更充分地表达整个文章的语义信息,从而更好地确定CID关系。这种通过交互得到的语义信息,本文称之为交互语义信息。交叉注意力机制(Cross-attention)[19]是获取交互语义的常用方法。但是,CID关系抽取任务不同于文献[19]中的问答任务,而且生物医学语料库中大多由句法复杂的长句组成,因此,文献[19]提出的交叉注意力机制并不适合从MEDLINE文献中学习交互语义信息。自注意力(Self-attention)机制可以有效地帮助模型学习长句的语义信息[17]。所以,自我注意力作为本文的基本注意力机制。此外,摘要中隐藏的语义信息更完整,标题、摘要和SDP对CID关系抽取性能的影响显然也不同。换言之,交互语义信息对彼此的语义增强权重应不同。因此,本文揭示一种交叉自注意力机制,利用标题对摘要、SDP对摘要的交叉自注意力操作增强摘要的语义信息,而摘要对标题的交叉自注意力操作增强标题的语义信息。利用增强后的标题和摘要的语义信息,能更充分地表达整篇文章的语义。
提出的模型将BERT的最终输出序列拆分成摘要HA、SDPHS和标题HT,定义交互自注意力操作的输入表示如式(1)~式(3)所示。
其中,A、S和T分别表示摘要、SDP和标题用于交互自注意力操作的输入;WA、WS和WT是它们的权重。最终交互自注意力输出定义为式(4)~式(6)。
其中,dA和dT表示摘要和标题的长度。CSA(S,A)、CSA(T,A)、CSA(A,T)分别表示SDP对摘要、标题对摘要和摘要对标题的交互自注意力输出。摘要和标题的最终表示定义如式(7)、式(8)所示。
Ao=[α1A+α2CSA(S,A)+α3CSA(T,A)]
(7)
To=[β1T+β2CSA(A,T)]
(8)
其中,α1,α2,α3,β1,β2都是学习参数。
R-BERT[12]在目标实体前后加入特殊标记,并利用预先训练好的BERT提取丰富的实体语义信息。然后将实体语义表示与BERT的分类标记CLS表示串联,对句子级别关系进行预测,在通用领域的关系抽取任务上取得了良好的效果。因此,为了能从文档级生物医学文献中获得丰富且完整的实体语义信息,本文利用上述思想改进了文献中的R-BERT,称之为DocR-BERT。根据文献定义给出BERT的CLS标记表示如式(9)所示。
目标化学物质和疾病实体的语义表示如式(10)~式(13)所示。
prob=Wosoftmax([H[cls];Hc;Ht])+bo
(14)
其中“;”为串联操作,Wo和bo分别表示预测时的权重矩阵和偏置向量。
为了验证模型的有效性,本文在BioCreative于2015年发布的CDR语料上进行了实验。CDR语料总共包含了1 500篇来自MEDLINE的文档,其中训练集、验证集和测试集各500篇。官方只给出每一篇文档中真实的CID关系,因此实验前必须构建正例和负例。一篇文档所有实例集合通过该篇文档的化学物质集合和疾病集合的笛卡尔集得到。如果官方为一篇文档中的某个化学物质-疾病对标注了CID关系,则该实例标记为正例,否则标记为负例。为了验证模型在句间和句内的CID关系抽取性能,本文将数据集分为句间、句内和所有数据集。句内关系定义为标题和拆分摘要所得的句子中至少包含一个共现句,否则定义为句间关系。最终得到的各数据集分布如表1所示。
表 1 CDR 语料静态统计
所有实验代码都是使用Python3.6开发的,并且运行在后端为TensorFlow2.0的开源深度学习包Keras上。实验中使用的BERT是Lee等人预训练的BioBERT[18](1)可以从网址https://github.com/naver/biobert-pretrained获得。。采用准确率(P)、召回率(R)和F值(F)评价模型的性能。实验中的其他超参数设置如表2所示。
表 2 超参数设置
本文主要完成了与现有系统比较实验以及消融实验。为了方便叙述,本节中用“DocR-BERT+CSA_All”表示提出的模型,其中“DocR-BERT”表示改进的R-BERT,“CSA_All”表示所有的交互自注意力操作。“CSA@S-A”,“CSA@T-A”和“CSA@A-T”分别表示SDP对摘要,标题对摘要和摘要对标题的交互自注意力操作。“&”表示且关系。“[CLS]+T+A+S”表示用标题、摘要和SDP作为输入,仅用特殊标记“CLS”的最终隐藏输出预测;而“[CLS]+T+A”表示移出SDP后用“CLS”预测。
3.3.1 与现有系统的性能比较
本文中的模型未引入任何外部资源,而且为了更好地验证其有效性,将数据集划分为句间和句内子数据集,分别进行了实验。因此,为了比较的公平,只对比了现有的不使用外部资源的系统和本文模型的结果,如表3所示。
表3 与现有系统性能比较
Gu等[18]利用丰富的语言特征构建句间和句内两个分类器,然后通过后处理合并最终的结果,在句间和句内以及整个数据集上分别获得37.7%、68.2%和58.3%的F值。他们随后提出使用卷积神经网络自动确定CID关系,并且在后处理中用启发式规则优化结果。整个数据集上的F值提升至61.3%,遗憾的是在句间和句内两个子数据集上,准确率、召回率和F值几乎没有变化,甚至句间数据集上的召回率降低了22%,从而导致只获得了11.7%的F值。Gu等[11]又引入知识和注意力机制,依然采用句间和句内双模型相结合,并且使用双向长短时记忆网络继续对CID关系识别。当他们的新模型不使用知识库CTD时,相较于前两次研究明显有了性能提升,而加入知识库时,取得了目前最好的F值,即72.1%。他们的实验表明: ①句间CID关系确定是后续研究者所面临的严峻挑战; ②注意力机制有助于性能提升; ③CTD知识库有利于该数据集。Sahu等[10]针对文档级关系抽取中的句间关系抽取提出了文档级图卷积网络。他们构建了句法依赖边、利用指代消解构建的共指边、邻接句边和自节点边分别表示句间和句内依存关系。在CDR和他们构建的CHR数据集上进行了验证,其实验结果表明GCN对句间文档级实体关系的识别有较好的效果。Zheng等[8]提出一种将双向长短时记忆网络与卷积网络相结合,以摘要和标题为输入,并且将二者进行了适当交互的有效CID识别模型。该模型在句间、句内和整个数据集上都表现出了良好的性能。尤其是在确定句间CID关系上,取得了43.9%的F值,超越了其他系统。这表明标题以及标题与摘要的交互有效提升了文档级关系抽取性能。
与Zheng等的方法相比,本文提出的方法“DocR-BERT+CSA_All”在句间、句内和整个数据集上的F值分别提升了8.8%,2%,1.3%。究其原因可能如下: ①本文以标题、摘要和最短依赖路径(SDP)为输入,其中SDP的构建借鉴了Sahu等的思想,通过邻接句合并获得了句间化学物质和疾病的依存关系,标题和摘要同时作为输入来源于Zheng等的思想; ②得益于BioBERT生成的高质量语义表达,BioBERT训练语料来源于PubMed和MEDLINE,与CDR语料来源一致,而BERT能够学习到语料中的浅层和深层语义; ③借鉴Zheng等的交互思想以及Gu等的注意力机制,提出了交互自注意力机制,更加有效地学习到彼此的交互语义,从而增强了标题和摘要的语义表示; ④通过改进R-BERT,收集到更加完整的目标实体语义信息。
3.3.2 消融实验
为了探讨每个组件对系统性能的影响,本文进行了消融研究,结果如表4所示。从表4可以观察到,整个表格由交互自注意力操作组件和SDP输入的影响组成。
表4 各组件对性能的影响
首先,进行了单个交互自注意力操除移出的研究实验。单独移除“CSA@S-A”和“CSA@T-A”操作时,句间数据集上的F值分别下降了2.1%和2.5%,而句内数据集的F值也下降了0.8%和0.7%,从而导致整体性能下降了0.9%和0.5%。这表明SDP对摘要和标题对摘要的交互自注意力操作对跨句的CID关系确定影响更大。换言之,对摘要的交互语义有助于句间CID关系抽取性能的提升。当移除“CSA@A-T”时,句间、句内和整体性能分别下降了3.4%、4.4%和3%。该结果说明摘要对标题的交互语义对句间和句内CID关系的确定影响很大。尤其是它对提升句内CID关系抽取性能起到很好的作用。
其次,将两两交互自注意力操作移除时,我们发现了与单个交互自注意力移除时相似的现象。当“CSA@S-A”和“CSA@T-A”分别被移除时,相对于单独移除“CSA@S-A”和“CSA@T-A”,句间性能分别下降了1.2%和0.8%,句内性能分别下降了0.5%和0.6%。但是当移除“CSA@S-A & CSA@A-T”时,句间和句内性能相对于“CSA@S-A”下降了0.5%和3.8%。当“CSA@T-A & CSA@A-T”移出时,句间和句内性能相对于“CSA@T-A”下降了2.3%和5.3%,整体性能也下降了3.4%;再次表明摘要对标题的交互语义对CID关系抽取的重要性。而相对于“CSA@A-T”,移除“CSA@A-T & CSA@T-A”时句间和句内性能分别上升了0.8%和下降了0.2%,句间和句内性能分别下降了1.4%和1.6%,整个数据集上的F值随之下降了0.9%。该结果说明标题对摘要、摘要对标题的交互自注意力操作相互影响,互为补充。
第三,“CSA@S-A & CSA@T-A & CSA@A-T” 移除,即移除CSA_All,只保留改进的R-BERT时,系统整体性能相对于移除“CSA@T-A & CSA@A-T”保持不变,可能是因为句间F值下降0.5%而句内F值却上升了1.4%。同时,从表4还能发现,对于句内CID关系,准确率都高于召回率,说明错误的正例(False Positive,FP)较少,而错误的负例(False Negative,FN)较多。即模型易将正例误判为负例,而将负例误判为正例相对较少。
最后,将标题、摘要和SDP作为BERT的输入,直接使用特殊标记[CLS]的最终隐藏状态进行预测时,系统在句间、句内和整体数据集上分别获得了50.3%、66.8%和59.3%的F值。而当移除SDP时,F值在三个数据集上分别下降了2.2%、3.6%和0.8%。这说明: ①BERT帮助模型取得了标题、摘要和SDP的高质量的语义表达; ②SDP对于CID关系确定也有一定的促进作用。
本文提出一种称之为交互自注意力的新机制,并将其与改进R-BERT集成。新模型利用交互自注意力从BERT生成语义表达中学习标题、摘要和最短依赖路径之间的交互语义,这些语义有助于增强标题和摘要的语义表示,有利于捕获整篇文档的完整语义,从而提升系统抽取效果。实验结果验证了新模型在生物医学文档级关系抽取任务中的有效性。因为新模型未引入任何的外部资源,所以其适合其他关系抽取任务。目前,该模型没有考虑标题中目标实体以及文档中不同句子对性能的影响。后续工作中,我们将考虑使用权重系数以及引入少量的实体特征,进一步改善系统性能。