职场文秘网

首页 > 心得体会 > 学习材料 / 正文

基于深度学习多模型融合的医疗命名实体识别

2023-02-08 13:45:07

梁文桐 朱艳辉 詹 飞 冀相冰 张 旭

(湖南工业大学计算机学院 湖南 株洲 412008)(湖南省智能信息感知及处理技术重点实验室 湖南 株洲 412008)

医疗命名实体识别(Medical Named Entity Recognition, MNER)是指从电子病历(Electronic Medical Records, EMR)等医疗文本中抽取特定的实体术语作为医疗知识,如疾病和解剖部位等,是后续计算机辅助诊断、医疗知识图谱的构建和应用等任务的基础。

早期MNER方法包括基于规则和基于统计机器学习。其中,基于规则的方法往往需要医疗专家利用专业领域知识来编辑大量的规则,随着医疗数据不断增加,该类方法需要耗费大量的时间;
基于统计机器学习的方法需要构建大量的特征,如词性特征、字符特征和词典特征等,需要较高的特征工程成本而且很难获取隐含特征信息。近年来,基于深度学习的方法成为医疗命名实体识别的主流方法。双向循环神经网络(RNN)结构经常在MNER任务中被使用,Xu等[1]使用混合语义的双向LSTM和CRF模型针对疾病名进行实体识别,Chowdhury等[2]提出一种多任务的双向RNN模型,通过使用词性标注任务中获得的知识更好地从中文电子病历中抽取医疗实体。但是,RNN是一种序列结构,后一状态的输入依赖于前一状态的输出,无法很好地进行并行计算,需要较多的训练时间。因此,Strubell等[3]提出了IDCNN模型以进行NER任务,在保持较高的识别精度的同时可以有效地进行并行计算。Gao等[4]提出了基于IDCNN的医疗电子病历实体识别方法,该方法在嵌入层加入位置嵌入信息,同时使用注意力机制[5](Attention Mechanism)对不同的字符分配不同的权重,在两种测试数据集上都取得了较好的效果。Wu等[6]在BiLSTM-CRF模型的基础上加入自注意力机制完成中文MNER任务。2018年10月,谷歌提出了BERT预训练语言模型,在多项自然语言处理任务中都有最好的表现[7]。Gong等[8]将BERT中文预训练嵌入运用到NER任务中,在中文数据集中取得了良好的效果。为了充分利用词语边界和语义信息,Zhang等[9]提出了用于中文NER任务的Lattice LSTM模型,该模型能够很好地将潜在词信息整合到基于字符的LSTM-CRF模型中。近期,图卷积网络[10](Graph Convolutional Networks, GCN)被运用到NER任务中,该类方法能够很好地捕获不同的语义和边界信息,Cetoli等[11]使用GCN构建依赖关系树来完成英文NER任务。Gui等[12]引入具有全局语义的基于词典的图卷积网络,从而缓解基于RNN的模型容易受到单词歧义影响的问题。GAT[13]在GCN的基础上加入自注意力机制来分配给每个节点的邻接节点不同的权重。

现有的MNER方法大多是使用单一神经网络模型进行命名实体识别,识别时容易造成医疗实体边界和类别识别错误,获取文本语义特征不足,导致最终识别的效果较差。为了解决上述问题,本文提出一种基于深度学习多模型融合的医疗命名实体识别方法:首先使用BERT-MNER、IDCNN-MNER和GAT-MNER模型分别自动识别医疗实体,BERT预训练语言模型可以得到电子病历上下文相关的语义表示,IDCNN保证了后续模型融合时子模型的多样性和结构差异性,可以取得更好的融合结果,GAT通过构建三种字词图可以充分利用词语的边界和语义信息;
然后采用基于变异系数的加权投票算法将三种模型的识别结果进行融合处理;
最后构建基于历史信息的实体纠错算法优化融合结果。

电子病历通常由专业的医务人员编写,包含大量的医疗知识,医疗命名实体识别能够将电子病历中疾病名称、解剖部位和药品名称等医疗实体识别出来。与通用领域实体识别相比,医疗实体识别存在实体数量众多,实体长度不定,实体界限模糊,存在大量的别名、嵌套和缩略词等特点,识别难度更大,单一模型很难达到较好的识别效果。

本文构建的融合模型整体框架如图1所示,基于深度学习融合模型的医疗命名实体识别整体算法如下:

Step1预处理医疗电子病历数据集。将电子病历集合按照字符进行标注,标注时字符和预定义类别使用空格隔开。

Step2训练BERT-MNER、IDCNN-MNER和GAT-MNER模型。基于深度学习训练上述三种医疗命名实体识别模型。

Step3识别电子病历文本测试数据集。通过训练好的模型对测试集的电子病历文本进行预测。

Step4构建融合模型。采用基于变异系数的加权投票算法对BERT-MNER、IDCNN-MNER和GAT-MNER的识别结果进行融合处理。

Step5优化融合模型结果。设计基于历史信息的实体纠错算法对融合结果进一步优化,得到最终医疗命名实体识别结果。

1.1 BERT-MNER模型

BERT-MNER模型结合BERT预训练语言模型和BiLSTM-CRF模型对电子病历中的医疗实体进行识别。传统的BiLSTM-CRF模型使用在中文维基百科语料上训练的字向量来进行字的嵌入表示,该嵌入表示是上下文无关的,而BERT-MNER模型使用BERT预训练语言模型可以得到电子病历句子中每个字的上下文相关的字嵌入表示。

该模型主要分为BERT层、BiLSTM层和CRF层。BERT层主要获取电子病历句子中每个字的上下文相关的字嵌入表示,BiLSTM层将字嵌入进行编码自动抽取上下文特征,CRF层使用维特比算法解码,从而得到全局最优的标签序列。图2为该模型的整体结构。

预训练语言模型能够表示字符或词语的多义性,在自然语言处理的各项任务中有着广泛的应用。BERT预训练语言模型的结构如图3所示,使用Transformer作为编码器,总特征向量由字向量、句子切分向量和位置向量相加得到,位置向量的计算公式如式(1)和式(2)所示,其中使用正弦和余弦函数编码,pos表示的是电子病历中的字符,i表示第几维,dmodel是编码后向量的维度。

(1)

PE(pos,2i+1)=cos(pos/10 0002i/dmodel)

(2)

LSTM是循环神经网络(RNN)的一种变体,可以有效地解决由长期依赖问题带来的梯度消失和梯度爆炸。CRF层的作用是约束电子病历中每个字的预测标签的依赖关系,进而获得全局最优序列。

1.2 IDCNN-MNER模型

IDCNN-MNER模型的整体结构如图4所示。该模型主要分为字嵌入层、IDCNN层和CRF层。字嵌入层将词表中的字映射成低维稠密的实值向量,把序列中每个字对应的字向量送入IDCNN层自动进行特征提取。IDCNN层是将结构相同的膨胀卷积块堆叠,每次迭代将前一次的结果作为输入,这种参数共享可以有效地防止模型过拟合,每个膨胀卷积块有膨胀宽度分别为1-1-2 的三层膨胀卷积。最后,通过CRF层约束预测标签的依赖关系,获取全局最优序列。

IDCNN[14]在进行卷积运算时增加了膨胀宽度,同时取消了池化操作,在增加感受域的同时减少了信息损失,能够更快速和准确地获取较长的序列信息依赖。IDCNN-MNER模型的整体结构与BiLSTM-CRF模型相似,其中IDCNN是一种特殊的CNN,该模型保证了后续模型融合时子模型的多样性和结构差异性,可以取得更好的融合结果。

1.3 GAT-MNER模型

GAT-MNER模型的整体框架如图5所示,该模型包括Embedding层、Graph层、Fusion层和CRF层。其中Embedding层包括电子病历句子中的每个字符和该句子在词向量中匹配到的词语即潜在词词典信息,使用双向门控循环单元(BiGRU)自动提取字符级别的特征,将获取的字符和词语特征输入到Graph层,该层包括字词包含图(C-graph)、字词转移图(T-graph)和字词网格图(L-graph),使用图注意力网络(GAT)对三种图进行建模,然后通过Fusion层进行融合,最后使用CRF层进行解码,获得最优预测序列。

1.4 基于变异系数的加权投票算法的多模型融合

因为单个医疗命名实体识别模型很容易导致预测结果的假阴性和假阳性,从而影响最终的识别准确率。所以本文在一般的加权投票算法基础上,引入变异系数这一统计量,提出一种基于变异系数的加权投票算法对BERT-MNER、IDCNN-MNER和GAT-MNER三种模型的结果进行融合处理。

每个子模型可以看成一个二分类器,即分类正确和分类错误。对于二分类问题,假设存在n个分类器且相互独立,第n个分类器分类正确的概率是P,错误的概率是1-P。H(n)表示n次分类中正确的概率,则n个分类器中有k个分类器分类正确的概率如式(3)所示。若错误率是δ,f(x)表示正确分类,则每个分类器h(x)分类错误的概率如式(4)所示。

(3)

P(h(x)≠f(x))=δ

(4)

对于一个医疗实体,假设超过半数的分类器识别出这个实体,那么最终认为该实体识别正确。由霍夫丁不等式[15]可得,对于ε>0,k=(p-ε)n时,霍夫丁上界将按照指数级变化,有公式:

P(H(n)≤(p-ε)n)≤e-2ε2n

(5)

(6)

可以看出,当融合模型的数量n逐渐增大时,其错误率呈指数下降。该结论说明,通过将BERT-MNER、IDCNN-MNER和GAT-MNER三个模型进行融合,能够提升医疗命名实体识别的精度。

在评价指标中,变异系数在数值上等于标准差与平均数的比率,是衡量各观测值的一个统计量,是刻画离中趋势的重要指标,反映了取值的差异和波动。如果评价指标中某因素取值差异大,那么该因素是反映所评价对象的关键因素,因此要赋予更高权重。一般的加权投票算法往往选取评价指标中的F1值作为赋予权重的依据,但是这种算法不能全面地反映评价指标中各因素的差异和波动。因此,本文将评价指标中的精确率、召回率和F1值看作反映所评价对象的因素。因素的取值差异越大,该因素被赋予的权重越高。本文提出的基于变异系数的加权投票算法过程如下。首先,计算第i个分类器的精确率、召回率和F1值这三个因素的变异系数CVMi1、CVMi2和CVMi3:

(7)

式中:σMik、μMik分别是第i个分类器的第k个因素的标准差和平均数。

其次,计算各分类器的权重公式如下:

(8)

式中:weighti表示第i个分类器的权重;
Mik表示第i个分类器的k个因素的值;
CVMik是第i个分类器第k个因素的变异系数;
n是分类器的个数。将第i个分类器所有k个因素的变异系数和该因素占所有因素的比例对应相乘求和后,即可得到各分类器的权重大小。确定完各分类器的权重后,计算第j个预测实体的投票综合得分sum-scorej:

(9)

(10)

1.5 基于历史信息的实体纠错算法

由于数据的标注不一致,实体识别模型会不可避免地产生一些实体边界预测错误的问题,为了解决该问题,本文提出基于历史信息的实体纠错算法,如算法1所示。该算法纠错的处理准则是如果预测的实体边界与构建的医疗实体历史信息库中存在的实体边界不一致,那么将该实体边界更新为库中实体的边界。

算法1基于历史信息的实体纠错算法

输入:实体信息字典(Entity Dictionary,ED),电子病历语句集(EMR Sentences,ES),电子病历语句中识别出的实体列表(Recognized Entities List,REL)。

输出:完成纠错的实体列表(Complete Error Correction Entities List,CECEL)。

Step:

2.foreachsentence in ESdo

3. if string match with EDT

5.endfor

6.foreachrecognized entity in RELdo

7. if matching entity in MEL and recognized entity are overlap in position

8. if len(recognized entity)

9. update recognized entity position;

11.endfor

12.returnCECEL

该算法能够利用训练集和验证集中的医疗实体历史信息构建医疗实体历史信息库来纠正预测错误的实体。算法的输入是实体信息字典ED、电子病历语句集ES和电子病历语句中识别出的实体列表REL,输出是完成纠错的实体列表CECEL。其中,实体信息字典是根据电子病历训练集和验证集的标注实体信息构建的,字典中的键为实体的名称,值为实体的预定义类别。首先,使用Trie树结构将实体信息字典ED存储为实体信息词典树EDT;
其次,依次输入电子病历测试集的语句ES,查找该语句与实体信息词典树EDT中所有匹配的医疗实体,将其存储为匹配实体列表(Matching Entities List, MEL);
然后,对于电子病历中的每一个语句,如果该语句中识别出的实体列表REL中的实体与匹配实体列表MEL中实体的位置存在重叠,且REL中该实体的长度小于MEL中实体的长度,那么就更新REL中的该实体的位置,将该实体添加至完成纠错的实体列表CECEL;
最后,返回完成纠错的实体列表CECEL。

2.1 实验数据集

本文使用的实验数据集源自CCKS2019评测任务一的子任务“面向中文电子病历的医疗实体识别”。该数据集包括训练集和测试集,各包含7 717个句子和379个句子,每个句子标注了医疗实体的名称、开始位置、结束位置和预定义类别信息。共有六类预定义医疗实体,分别为解剖部位、疾病和诊断、手术、药物、实验室检验和影像检查。采用BIO标注方法,共有13种标签,如“B-ANA”“I-ANA” “B-DIS”“I-DIS”等。在数据集预处理的过程中,针对预定义实体边界标注错误和标注前后不一致等问题,使用人工纠错的方式将标注错误的实体纠正。

2.2 评价指标

医疗命名实体识别任务使用精确率(P)、召回率(Recall)以及F1值作为评价指标,具体公式如式(11)-式(13)所示。其中,正确识别的医疗实体个数是TP,识别到不相关的医疗实体个数是FP,未识别出的医疗实体个数是FN。P值是正确识别的医疗实体个数占识别出的所有医疗实体的比率,R值是正确识别的医疗实体个数占标注的所有医疗实体的比率,F1值是P值和R值的调和平均值。

(11)

(12)

(13)

2.3 实验环境与参数设置

本文实验基于PyTorch框架,具体实验环境如表1所示。

表1 实验环境

BERT-MNER、IDCNN-MNER和GAT-MNER三种深度学习识别模型的超参数设置相同,具体信息如表2所示,其他参数设置信息如表3所示。

表2 三种模型的超参数表

表3 三种模型的参数表

2.4 结果分析

2.4.1不同模型对比实验与分析

将本文提出的融合模型(CV-Weighted-Fusion)与BERT-MNER、IDCNN-MNER和GAT-MNER三个单一模型进行对比实验,实验结果如图6所示,本文方法的P值和F1值相比单个模型有显著提升,分别达到88.72%和85.11%。P值相比三种模型分别提升5.95百分点、5.66百分点和5.73百分点,F1值相比三种模型分别提升1.83百分点、2.38百分点和1.99百分点。实验结果表明,本文提出的融合模型获得了较好的实体识别效果。

为了更直观地对比本文提出的融合模型与其他单一模型的实验效果,表4列举了一段电子病历语料和其中包含的预定义医疗实体及类别。同时,对比了不同模型识别结果,如表5所示。

表4 电子病历语料示例

表5 不同模型识别结果示例

由表5可看出,本文提出的融合模型识别的医疗实体更加精确。BERT-MNER模型错误识别“肿块”实体,IDCNN-MNER模型和GAT-MNER模型错误识别“髂嵴水平上腹部L5腰椎”实体的边界,而本文提出的基于变异系数的加权投票算法的融合模型则正确识别出“CT,影像检查”和“髂嵴水平上腹部L5腰椎,解剖部位”两个电子病历语料示例中预定义的医疗实体及类别。

2.4.2投票算法对比实验与分析

将本文提出的基于变异系数的加权投票算法(CV-Weighted-Fusion)与常用的多数投票算法(Fusion)、加权投票算法(Weighted-Fusion)进行对比实验,结果如表6所示。

表6 投票算法实验结果(%)

可以看出,使用基于变异系数的加权投票算法进行模型融合后,R值虽然降低1.68百分点,但是P值提升较多,达2.40百分点,F1值亦有提升。实验结果表明,基于变异系数的加权投票算法相比多数投票算法和加权投票算法进行模型融合,能较大幅度提升实体识别的准确率。

2.4.3基于历史信息的实体纠错算法实验与分析

表7是基于历史信息的实体纠错算法(Algorithm)在融合模型上的实验结果。如表7所示,使用该算法对单个模型和融合模型进行优化后,P值、R值和F1值均有提升。将基于变异系数的加权投票算法得到的融合结果进行优化后,P值、R值和F1值分别提升0.84百分点、0.98百分点和0.92百分点。同时,CV-Weighted-Fusion+Algorithm的方法与所有模型相比F1值最高。该实验表明,基于历史信息的实体纠错算法能够优化模型融合的结果,在医疗命名实体识别任务中取得很好的效果。

表7 基于历史信息的实体纠错算法实验结果(%)

本文提出一种基于深度学习多模型融合的医疗命名实体识别方法:首先,分别使用BERT-MNER、IDCNN-MNER和GAT-MNER模型识别医疗实体,其中BERT预训练语言模型能够更加精确地表示电子病历文本中的上下文相关语义,IDCNN保证了后续模型融合时子模型的多样性和结构差异性,GAT通过构建三种字词图可以充分利用词语的边界和语义信息;
然后,使用基于变异系数的加权投票算法对三种模型的识别结果进行融合;
最后,使用基于历史信息的实体纠错算法优化融合结果。实验表明,与基于单一深度学习网络的命名实体模型相比,该方法能够更好地识别电子病历中的医疗实体。下一步工作是在融合时,尝试增加NER模型的个数,同时将更多更新的模型运用其中,从而达到更好的识别性能。

猜你喜欢 病历分类器实体 学贯中西(6):阐述ML分类器的工作流程电子产品世界(2022年4期)2022-04-21基于朴素Bayes组合的简易集成分类器①计算机系统应用(2021年2期)2021-02-23“病例”和“病历”作文评点报·低幼版(2020年25期)2020-07-23基于动态分类器集成系统的卷烟感官质量预测方法计算机应用与软件(2020年1期)2020-01-14前海自贸区:金融服务实体中国外汇(2019年18期)2019-11-25一种自适应子融合集成多分类器方法计算机测量与控制(2019年4期)2019-05-08实体书店步入复兴期?当代陕西(2019年5期)2019-03-21两会进行时:紧扣实体经济“钉钉子”领导决策信息(2017年9期)2017-05-04振兴实体经济地方如何“钉钉子”领导决策信息(2017年9期)2017-05-04临床表现为心悸的预激综合征B型心电图1例中国社区医师(2016年8期)2016-12-20

Tags: 实体   命名   深度  

搜索
网站分类
标签列表