APP下载

采用Transformer-CRF的中文电子病历命名实体识别

2020-03-11康晓东张华丽王亚鸽陈亚媛

计算机工程与应用 2020年5期
关键词:命名病历注意力

李 博,康晓东,张华丽,王亚鸽,陈亚媛,白 放

天津医科大学 医学影像学院,天津300203

1 引言

随着医疗信息化的快速发展,电子病历在各大医院的应用越来越普及,不同于传统纸质病历,电子病历更便于保存和查阅。电子病历(Electronic Medical Records,EMR)产生于临床治疗过程,是由医务人员撰写的描述患者诊疗经过的重要医疗信息记录[1]。电子病历记录患者所患疾病、症状和体征、检查的检验、治疗等一系列与患者健康状况密切相关的重要信息,这些信息是医疗信息系统的核心数据,如何利用电子病历挖掘有用信息是现代化医疗中非常重要的任务之一。电子病历是非结构化数据且缺乏统一的表述标准,这是阻碍电子病历二次利用的主要原因[2-3]。因此,迫切需要找到能够自动将非结构化的文本转化成可被计算机识别的结构化数据的信息抽取方法,便于计算机理解和使用。

命名实体识别(Named Entity Recognition,NER)是自然语言处理的一项基本任务,也是信息抽取的关键组件,对信息检索、机器翻译和自动应答等研究有重要意义[4]。电子病历含有大量实体,且类型多样,其中包括疾病名称、检查方式和治疗等,识别这些实体对于文本信息的结构化起着关键作用。

目前,命名实体识别的常用方法有:(1)基于规则和词典的方法[5]。这种方法有较大的弊端,规则和词典需特定领域专家手工编写,工作量巨大且适用范围窄,很难推广使用。(2)基于统计的方法。主要包括最大熵模型(Maximum Entropy Models,MEM)[6]、支持向量机(Support Vector Machines,SVM)[7]、隐马尔可夫模型(Hidden Markov Models,HMM)[8]、条件随机场(Conditional Random Fields,CRF)等[9]。这种方法无需过多的人工干预,具有良好的灵活性和鲁棒性,但是却需要大量的标注集,依赖于选取特征的正确性。(3)基于混合的方法[10-11]。包括统计方法之间的融合和内部层叠融合;基于词典、规则和统计方法之间的融合。采用融合技术,高效地将各类模型、算法结合起来,可修正实体边界并改进实体语义分类结果,提高系统的精确率与召回率。(4)基于深度学习的方法。随着深度学习的兴起,越来越多的研究人员开始使用深度神经网络进行命名实体识别。这种方法的优势在于,不需要人工对数据进行预处理,可由搭建好的神经网络模型自行训练并提取特征。早期应用最为广泛的就是循环神经网络(Recurrent Neural Network,RNN)。RNN 能通过保存之前的历史信息来对目标进行预测,因此它对预测分类目标的文本处理能获得更好的效果。但是,RNN 的记忆功能会随着距离的变长而衰减,导致丧失学习远距离信息的能力。针对这一现象,Hochreiter等[12]在RNN的基础上,又提出长短时记忆单元(Long Short Term Memory,LSTM),通过“门”结构解决了RNN 容易出现梯度消失的问题,使网络能够获取到更多历史信息,解决了长时依赖问题。门循环单元(Gated Recurrent Unit,GRU)是RNN的另一种变体,2014年由Cho等人[13]提出,GRU将输入门与遗忘门合成一个独立的更新门,与LSTM相比,其结构更加简单,参数更少,可缩短训练时间。

单向的循环神经网络只能捕获序列的历史信息,但是对于序列标注任务而言,一个标签和该标签的上下文都有关系,为了充分地利用上下文信息,Graves 等人[14]提出了双向LSTM 模型(BiLSTM),将单向LSTM 变为双向结构,使该模型在命名实体识别等序列标注任务中得到广泛应用。此外,融合注意力机制并结合条件随机场的Attention-BiLSTM-CRF 模型更是在开放域的命名实体识别任务中获得了非常高的F1 值,成为目前识别效果最好的模型之一[15-16]。

近年来,国内中文电子病历命名实体识别的研究工作有很大进展。张祥伟等[17]基于条件随机场,通过逐一融合语言符号、词性、关键词、词典、词聚类等多种特征,提出一种多特征融合的中文电子病历命名实体识别方法。杨红梅等[18]采用BiLSTM 结合CRF 训练命名实体识别模型,并建立了目前规模最大的中文肝癌专科语料库。栗伟等[19]提出了一种基于CRF 与规则相结合的医学电子病历命名实体识别的新算法,该算法先采用CRF进行实体的初始识别,然后基于决策树生成的规则和临床知识规则进行实体识别结果优化,获得了很高的准确率。于楠等[20]先选取多种有效特征,再将高层特征与条件随机场模型融合,很好地识别出电子病历中的疾病和诊断以及症状和体征两类实体。栗冬冬[21]尝试将BiLSTM与卷积神经网络相结合,构造BiLSTM-CNN命名实体识别模型,凭借CNN 模型提取更重要的词语特征,明显提升模型的识别性能。夏宇彬等[22]将LSTM模型应用于中文电子病历命名实体识别,发现LSTM网络比依赖于手动定义特征的条件随机场模型的F1 值高出7.47%,从而证明LSTM 对于中文电子病历的命名实体识别具有更高的优越性。

由于非结构化的电子病历中含有大量的医学专业术语和专有名词缩写等特殊实体,需要高度依赖上下文信息才能精准提取实体。BiLSTM 模型以其充分考虑长距离时序的上下文信息而成为目前主流的命名实体识别模型。

随着神经网络在机器学习领域的不断发展,2017年Vaswani 等人[23]提出一种只使用注意力机制(Attention)的机器翻译模型,它摒弃了之前传统的Encoder-Decoder模型必须结合RNN或者CNN的固有模式,使用完全基于注意力机制的方式,作者将这种模型命名为Transformer。传统的基于RNN 的模型难以处理长序列的句子,无法实现并行,效率低;CNN 模型虽然可以实现并行计算,但这种模型非常耗费内存,并且在大数据量上的参数调整并不容易。基于注意力机制的Transformer模型,没有使用RNN 和CNN 的方法和模块,创新性地将注意力机制作为编码器和解码器的核心,在提高并行效率、减少计算量的同时,获得更好的学习效果。

中文电子病历文本结构复杂,命名实体种类繁多,且具有一定的领域特殊性,医学专有名词的命名实体具有独特的命名法则,因此,中文电子病历的命名实体识别的研究还不够深入。虽然随着神经网络模型应用的不断成熟,基于RNN、CNN 和BiLSTM、BiGRU 等模型已被成功应用于中文电子病历命名实体识别的研究中,但是,其识别效率不高和训练模型不稳定等问题并未得到改善。因此,针对中文电子病历命名实体识别的特点和难点,本文提出一种基于Transformer 神经网络与CRF结合的新方法构建命名实体识别模型,该模型使用注意力机制作为编码器和解码器的核心,利用Transformer模型提取上下文的文本特征,同时在该模型的输出层增加CRF结构做分类器进行联合解码。本文以真实中文电子病历作为实验数据集,同时构建BiLSTM、BiGRU、Attention-BiLSTM、BiLSTM-CRF、BiGRU-CRF、Attention-BiLSTM-CRF等多种模型进行对比实验,实验结果表明,本文提出的基于Transformer-CRF 的中文电子病历命名实体识别模型具有更高的优越性。

图1 人工标注电子病历样例

2 数据预处理

本文以有偿获得的真实电子病历数据自建数据集,用于中文电子病历的命名实体识别。对研究所使用的数据集,提取其中的入院记录部分用于标注数据集。为了保护患者隐私,首先做去隐私化脱敏处理。依据研究的数据抽取要求,由3名临床医生标注共5类医学实体,实体分为症状和体征(Symptoms)、检查和检验(Tests)、身体部位(Body)、疾病和诊断(Diseases)和治疗(Treatments),图1 是电子病历标注样例,表1 列举了相应命名实体类型和示例。为了验证数据集标注的一致性,由3 名医生分别标注同样的10 份数据(共782 个句子),计算标注的一致性达89.6%。统计训练集和测试集中各个类别的命名实体个数如表2所示。

分词是自然语言处理的基础,作为中文电子病历智能分析的第一步,对病历文本进行分词至关重要。由于中文电子病历的语言是非结构化数据,常常不同于规范的中文句子结构,因此,它具有专业性强,句子凝练的特点。Python 中常用的分词工具有很多,包括盘古分词、Yaha分词、Jieba分词、清华THULAC等。这些工具在开放领域中都有比较好的应用,但无法满足中文电子病历中特定语义的分词。例如:“去甲肾上腺素”作为一个独立的表达,会被划分为“去/甲/肾上腺/素”,而不是将其当成一个整体,这意味着命名实体识别将纳入分词的误差。为了解决这个问题,在该研究中,作者收集了现有医学术语和医学网站中常用疾病描述,以建立一个专用词典。此外,还纳入了数据集中的标注实体,基于Jieba分词,对数据集进行分词。

表1 命名实体分类

表2 数据集中各类实体个数

命名实体识别任务的输入为句子序列,识别模型无法直接处理文字序列,需要先将其转化为向量特征,然后输入到模型当中。因此,这里需要一个word embedding 词表将输入的文字序列替换成词向量的序列。word embedding可以在大量的语料上训练得到,也可以通过随机初始化得到。相对于随机初始化的方式,通过大量语料预训练得到的词向量可包含更多的信息,有助于提高模型的识别效果。由于医疗领域术语不同于其他领域,在一般的数据如维基百科数据或新闻数据上训练得到的word embedding效果并不好。因此该研究采用CCKS 2017 发布的7 815 组未标注数据在开源工具GloVe 上训练得到100 维的词向量,作为预训练的word embedding 加入到命名实体识别模型中,其中未登录词通过随机初始化得到。

3 基于Transformer和CRF的命名实体识别模型

3.1 Transformer模型

Transformer 模型[23],其本质是编码器(Encoder)—解码器(Decoder)结构,如图2 所示,左侧虚线框内为编码器结构,右侧虚线框内为解码器结构。

图2 Transformer模型框架

Transformer 模型的编码器结构由Nx(Nx=6)个相同的基本层堆叠而成,每一个基本层都由两个子层组成,第一个是多头注意力层(Multi-Head Attention),第二个是密集型全连接前馈神经网络层(Feed Forward Network),接着在两个子层中使用一次残差连接(Residual Connection),然后进行层归一化(Layer Normalization)操作。

解码器结构与编码器结构类似,也是由6个完全相同的基本层堆叠组成,每一层除了包括多头注意力层和前馈神经网络层外,还有一个隐蔽式多头注意力层(Masked Multi-Head Attention),该层用于对编码器层的输出进行Multi-Head Attention 操作。解码器的每个子层也采用残差连接,然后归一化操作。

注意力机制通常可以进行如下描述:将查询向量(Query)和一系列键向量(Key)与值向量(Value)的键值对(Key-Value pairs)映射到输出上。其计算过程主要分三步:

第一步,将Query 和每个Key 进行相似度计算得到权重,相似度用f 表示,即:

第二步,使用一个softmax 函数对这些权重进行归一化,即:

最后,将权重和相应的键值value 进行加权求和得到最后的Attention,即:

Transformer是完全基于注意力机制的模型,编码器和解码器结构中大量使用了多头注意力机制,缩放点积注意力是多头注意力机制的核心。

缩放点积注意力机制输出公式为:

其中,Q ∈Rn×dk,K ∈Rm×dk,V ∈Rm×dv,QKT即是用点积相似度函数求出Query 和Key 的相似度。在自然语言处理的研究中,通常K=V ,再经过softmax函数可得出一组归一化的相似度值。然后,对这些相似度值加权求和,来获取Value 的权重。公式中1 dk起到缩放的调节作用,使内积不至于太大,防止经过softmax函数后的结果非0即1。

多头注意力是Transformer 模型中最重要的组件。该模型是用h 次不同的线性变换将dmodel维的Queries,Keys 和Values 分别映射成dk维,dk维和dv维。基于每个映射组的Query、Key 和Value,并行执行Attention函数,产生h×dv维的输出值。然后,将它们连接并再次映射,产生最终值,具体如公式(5)所示:

式中:

式(5)与(6)中,WiQ,WiK,WiV为投影矩阵,WiQ∈Rdmodel×dk,WiK∈Rdmodel×dk,WiV∈Rdmodel×dv,WO∈Rhdv×dmodel。在本文设计的模型中,多头数目h=8,dmodel=512,dk=dv=dmodelh=64。

3.2 CRF模型

条件随机场(CRF)是一种无向图模型[9]。它是在给定一组输入随机变量的条件下,得到另一组输出随机变量的条件概率分布模型,可广泛应用于序列标注。在序列标注中,一个词的标签常常与其周围词的标签存在关联。因此,对于给定的句子,最有效的方法是将句子中当前词的标签与相邻词标签的关系结合考虑,然后解码出最优的标签序列。CRF 可从训练数据中学习到与标签相关的约束条件,以保证最终输出结果的有效性。

CRF结构能学习上下文信息,结合输出层结果和标签序列的全局概率,预测出最大概率的标签序列。以状态转移矩阵M 作为其中一个参数,对标签信息进行学习预测,从而计算出当前样本的最佳标签序列。形式地,给定句子:

其预测标签序列为:

定义其得分如式(7)所示:

图3 Transformer-CRF模型框架

其中,M 是转移矩阵,Myi,yi+1表示从yi标签转移到yi+1标签的概率,Ni,yi表示第i 个词语被标记为标签yi的概率,P(W,y)表示输入句子序列W 被标记标签序列为y 的概率分数,求出最大的P(W,y)的值,即可得到当前样本W 的最佳标签序列。

3.3 Transformer-CRF模型

由于Transformer 模型并不能充分利用输出标签之间的关联,偶尔会出现输出无效标注结果的情况。目前,在序列标注任务中,对于利用相邻的标注信息预测当前标签的处理可大体分为两类:第一类是以最大熵和最大熵马尔科夫模型为代表的,这类模型是通过先单独预测每个输入标签,再对这些结果统一解码来寻找最大概率标签的情况。第二类就是以条件随机场为代表的模型,这类模型更加注重句子整体的考虑,而不是单独某个标签的情况,因此,条件随机场在序列标注任务中可获得更好的效果。为确保输出结果的有效性,本文提出一种在Transformer 模型提取特征的基础上,以条件随机场(CRF)作为分类器得到输出结果的新方法,Transformer-CRF模型计算流程框架如图3所示。

首先,将输入的分词在预训练词向量表中查表获得词向量;其次,将词向量送入Transformer模型提取文本特征;然后,将Transformer模型的输出结果作为CRF层的输入;最后,由CRF层预测全局最优结果。

4 实验

4.1 实验环境和评价指标

本文所用实验环境的主要参数为处理器:Intel®Xeon®W-2102@2.9 GHz;内存:16 GB;操作系统:Linux CentOS 7(64 bit);使用Google 深度开源框架TensorFlow 1.12.0 构建所有神经网络模型进行训练和测试。其他软件版本如下:python 2.7.15;numpy 1.15.4;jieba 0.39;tqdm 4.28.1。

Transformer-CRF模型参数的设置对模型的准确性和鲁棒性具有很大的影响,为此,实验采用Adam 优化方法不断更新参数,为防止过拟合以及提高模型的泛化能力,在模型中引入Dropout。经过多次实验调参,得出的识别效果较好的Transformer-CRF模型主要参数如表3所示。

表3 Transformer-CRF模型主要配置参数

实验自已标注数据集中随机选取330 份中文电子病历作为实验数据集,其中80%作为训练集,20%作为测试集。实验同时构建BiLSTM、BiGRU、Attention-BiLSTM、Transformer、BiLSTM-CRF、BiGRU-CRF、Attention-BiLSTM-CRF、Transformer-CRF共8种命名实体识别模型进行对比研究,采用实体识别精确率P、召回率R 以及F1 值三个指标评价8种模型命名实体识别表现优劣,其中精确率P 、召回率R 和F1 值的具体计算公式如下:

4.2 结果分析

实验采用BiLSTM、BiGRU、Attention-BiLSTM、Transformer、BiLSTM-CRF、BiGRU-CRF、Attention-BiLSTM-CRF、Transformer-CRF 这8 种模型进行对比实验,采用精确率和召回率进行模型评价,并由此计算F1 值。症状和体征(Symptoms)、检查和检验(Tests)、身体部位(Body)、疾病和诊断(Diseases)和治疗(Treatments),这五类实体的识别结果分别如表4至表8所示。

表4 症状和体征识别各模型结果对比%

表5 检查和检验识别各模型结果对比%

表6 身体部位识别各模型结果对比 %

模型BiLSTM BiGRU Attention-BiLSTM Transformer Bi-LSTM-CRF BiGRU-CRF Attention-BiLSTM-CRF Transformer-CRF P 90.27 91.65 92.78 93.76 93.85 93.21 94.89 95.15 R 88.37 89.67 91.21 91.22 91.67 92.86 94.03 94.89 F1 89.31 90.65 91.99 92.47 92.75 93.03 94.46 95.02

表7 疾病和诊断识别各模型结果对比%

通过以上对比实验结果可以发现,身体部位和治疗这两类实体的识别效果较好,因为身体部位的实体数量较多,模型对于该类实体的文本特征可以充分学习;而治疗类实体在电子病历中的表达具有一定规律,且有固定表达格式,如“予术后好转”“予药物治疗”等,因此不易发生错误识别。表7 中疾病和诊断类实体的识别结果最差,因它与症状和体征类实体在语义上表达极为相似,易导致识别上发生混淆,从而导致疾病和诊断类实体的识别精确率、召回率和F1 值最小。而对于检查和检验类实体,虽然该类实体数量最多,但是其中包含大量的特殊字符和英文简称,如WBC、HCG 等,这使得文本特征极为复杂,特征不易提取,因此识别效果不佳。

表8 治疗识别各模型结果对比%

对比Transformer模型和BiLSTM、BiGRU、Attention-BiLSTM 模型,五类命名实体的识别结果显示,症状和体征、身体部位、疾病和诊断与治疗这四类实体的识别结果中,Transformer模型的F1 值要明显高于另外三种模型;而检查和检验类实体的识别结果中,Transformer模型精确率要高于BiGRU 模型,但召回率偏低,导致F1 值稍低于BiGRU,这可能是此类实体包含大量特殊字符导致,但是在中文电子病历整体的命名实体识别任务中,还是Transformer模型占优。同样对比Transformer-CRF 模型和BiLSTM-CRF、BiGRU-CRF Attention-BiLSTM-CRF 模型,五类命名实体的识别结果显示,所有识别结果中,Transformer-CRF模型的F1 值都要优于另外三种模型,而且Transformer-CRF 模型的F1 值是8种命名实体识别模型中最高的,并在身体部位类实体的识别中达到了最高值95.02%。

实验结果显示,引入了CRF模型可以给各模型带来不同程度效果的提升,使实体识别的精确率、召回率和F1 值都有所改善。Transformer 模型结合CRF 模型后,各类实体的识别效果都明显增强,尤其检查和检验类实体的召回率快速提升,F1 值远高于其他模型,弥补了Transformer模型对于该类实体识别的误差。

此外,通过对比分析几种模型训练过程中前50 轮次的参数更新情况,可以发现引入CRF模型可使各种模型的收敛加快。在训练初期,Transformer-CRF 模型能很快地达到较高水平,并保持持续提升;而Transformer模型在初期提升较为缓慢,需要更多轮次的训练才能缓慢达到理想水平。

最后,实验中五类命名实体的识别结果相差较大,除以上讨论的各种原因以外,样本量也是重要因素之一。对于深度学习而言,加大样本数量进行训练,可以更加充分地学习到文本特征,以获得更好的识别效果。因此,实验的后续工作拟在实体数量更大、实体种类更加丰富的数据集上进行测试。

5 结束语

本文以真实中文电子病历自建数据集,提出一种基于Transformer-CRF的中文电子病历命名实体识别模型,并将该模型与目前主流的BiLSTM、BiGRU、Attention-BiLSTM 等多种模型进行对比实验,进一步证明Transformer-CRF模型的优越性。通过比较分析精确率、召回率和F1 值三个评价指标发现,Transformer-CRF模型不仅具有更高的稳定性,同时也使得命名实体识别的精确率有了进一步的提升,为识别效果更佳的模型。

Transformer-CRF模型的优越性是因为其完全基于注意力机制,而注意力机制可以使Transformer-CRF 模型对输入的文本序列选择性学习,即利用注意力机制从大量电子病历语料中快速筛选出有用信息,有助于后期模型训练;基于注意力机制的模型能避免输入和输出序列的距离问题,完全不受输入序列长度的限制。Transformer-CRF 模型是具有明显优势的序列化模型,也可广泛应用于其他领域。

接下来的工作是,通过加大中文电子病历数据集,对疾病和诊断类实体的实验结果做进一步的分析与评估,并不断优化参数设置,以改进模型整体的命名实体识别效果。

猜你喜欢

命名病历注意力
让注意力“飞”回来
强迫症病历簿
命名——助力有机化学的学习
“大数的认识”的诊断病历
有一种男人以“暖”命名
为一条河命名——在白河源
“扬眼”APP:让注意力“变现”
为何要公开全部病历?
A Beautiful Way Of Looking At Things
村医未写病历,谁之过?