APP下载

基于多层次特征提取的中文医疗实体识别

2023-09-14李正辉廖光忠

计算机技术与发展 2023年9期
关键词:实体卷积向量

李正辉,廖光忠

(1.武汉科技大学 计算机科学与技术学院,湖北 武汉 430065;2.武汉科技大学 智能信息处理与实时工业系统湖北省重点实验室,湖北 武汉 430065)

0 引 言

命名实体识别(Named Entity Recognition,NER)[1]作为自然语言处理(Nature Language Processing,NLP)的一项基本任务,旨在精准定位与识别文本信息中的预定义实体类型。近年来,随着信息技术的快速发展,自然语言处理的研究也逐渐融入各行各业,其中医疗领域的命名实体识别受到业界的广泛关注。

虽然命名实体识别在诸如机构名、人名、地点和职务等实体识别上取得了很高的成就[2],但是从中文医疗文本中提取实体是一个更复杂的任务[3]。首先,提取的实体类型易混淆,例如“左肺上叶”是属于“病理”类型还是“影像”类型;其次,数据中存在嵌套问题也是导致医疗实体识别精度下降的原因,如“患者呼吸中枢受累”这句话中,“呼吸中枢受累”的实体类型是“症状”,而“呼吸中枢”是“部位”类型;最后,中文医疗实体识别某些类型比较长,这会造成识别这类实体时边界定位错误,从而导致整体效果变差。此外,中文医疗文本中的标注错误和错别字等问题也会影响命名实体识别模型。针对以上问题,该文提出一种融合BERT预训练[4]、双向长短期记忆网络(BILSTM)[5]和结合注意力机制[6]的一维空洞卷积神经网络(Iterated Dilated Convolutional Neural Network,IDCNN)[7]的医疗实体识别模型,相较于传统模型,主要贡献如下:

(1)使用BERT预训练加强字与句子的联系,使词向量在拥有位置信息的同时,语法语义特征也得到强化,降低数据中易混淆实体类型对模型的影响。

(2)从多层次提取医疗文本特征。在BERT语言模型训练好词向量的基础上,使用BILSTM模块提取上下文信息;使用IDCNN模块捕获更长距离的特征信息,并且为了不遗漏细节特征加入注意力机制。最后在输入条件随机场(CRF)[8]预测实体前进行特征融合,得到蕴含多层次特征的词向量。

(3)分层设置学习率和学习率衰减策略。为了使模型效果更好,在训练时利用学习率衰减策略和分层设置学习率,得到更好的结果,另外为了避免模型过拟合,每个模块都加入随机失活(Dropout)层。

1 相关工作

命名实体识别研究包括统计机器学习方法和深度学习方法。随着近年来人工智能技术的发展,统计机器学习方法费时费力,深度学习方法已成为业内研究的焦点。当前基于深度学习的NER的思路主要分为序列标注和基于分类两类。其中,序列标注方法最为常见。BILSTM-CRF是实体识别中主流的模型,对中文和英文的数据都有良好的效果。李妮等人[9]使用改进传统的卷积后的空洞卷积,在实体识别方面取得不错的成果。Li等人[10]提出FLAT模型,改良lattice结构,在性能和效率上都优于其他基于词汇的模型。为了进一步提高实体识别的精度,Li等人[11]采用负采样的思想,可以有效降低未标记实体带来的误导。崔少国等人[12]融合汉字图形和五笔等特征更进一步提升了模型的效果。另外,在2018年由Google AI研究院提出的预训练模型BERT也对实体识别精度的提升有很大的帮助。

受到以上研究的启发,该文为解决中文医疗实体识别中存在的实体类型易混淆、数据嵌套和实体类型过长等问题,提出一种融合BERT预训练、BILSTM和结合注意力机制的IDCNN模型,可以从多层次提取医疗文本的特征,有效提高医疗实体识别的准确度。

2 模型设计

2.1 模型框架

该文设计了一种新的中文医疗实体识别模型,其整体结构框架如图1所示。在嵌入层,模型将输入的医疗文本通过BERT层化为词向量表示;在特征提取层,将词向量分别通过BILSTM层和融合注意力机制的IDCNN层,再将这三者词向量融合得到多层次语义特征向量;在输出层,通过CRF得到预测的结果。

2.2 嵌入层

由于输入嵌入层的医疗文本中存在易混淆的类别并且可能有错字等问题,易影响模型性能。而BERT语言模型历经几代预训练模型的迭代,克服了Word2Vec模型训练的缺点——词向量是静态的,无法表示一词多义;综合ELMO和GPT模型的优势,做到获取每个字词在当前句子中的上下文信息[13]。因此选用BERT作为嵌入层。

BERT的总体结构如图2所示,主要应用Transform[14]中的编码器(encoder),使用多个encoder组成图2中的Trm单元,使得最终的词向量具有很好的位置特征、句法特征和语义特征。

图2 BERT整体结构

Trm单元结构如图3所示。对于输入序列s=(C1,C2,…,Cn),其中Ci表示医疗文本输入句子的第i个字。首先通过Word2Vec得到该字的特征向量表示ei=[ew(Ci)],ew是Word2Vec初始化矩阵。并且需要叠加位置编码,这是因为对于文本序列来说,获取句子中每个字的相对位置很重要,其计算如公式(1)所示:

图3 Trm单元结构

(1)

其中,pos表示单词的位置,i表示单词的维度。然后到了encoder的关键部分,采用注意力思想使输入序列中每个词向量获取其与其他词向量的关联程度。具体计算如公式(2)所示:

(2)

其中,Q,K,V是词向量矩阵,dk是词向量的维度。而这里使用的多头注意力机制是基于注意力机制的基础,先将每个词向量拆分成多个词向量,然后对每个拆分的词向量单独做自注意力机制,最后将不同的结果拼接起来,计算如公式(3)所示:

(3)

因此,词向量就能得到不同空间的句法特征,其中W是权重矩阵。最后经过全连接前馈网络(FFN)做非线性变换,计算如公式(4)所示:

FFN(Z)=Relu(ZW1+b1)W2+b2

(4)

其中,Relu()是激活函数,W1、W2是权重矩阵,Z是经过多头注意力机制的词向量表示,b1、b2是偏置量。另外在流程中,多头注意力机制和全连接前馈网络分别经过一层残差网络和归一化是为了避免梯度消失和梯度爆炸。

2.3 特征提取层

特征提取层的目的是基于BERT预训练,并结合BILSTM和融入注意力机制的IDCNN对医疗文本进行多层次的特征提取,特征提取层有三大部分:BILSTM模块、IDCNN+注意力机制模块和特征融合模块。

2.3.1 BILSTM模块

BILSTM是由双向LSTM网络组合而成,通过对输入的医疗文本序列做顺序和逆序的计算,提取序列中的上下文信息,最终得到训练好的词向量序列。实现其功能的主要单元为LSTM,其结构如图4所示。LSTM记忆单元是由输入门、细胞状态、临时细胞状态、隐层状态、遗忘门、记忆门、输出门组成。其核心思想为,通过对细胞状态中信息遗忘和记忆新的信息使得对后续时刻计算有用的信息得以传递,而无用的信息被丢弃,并在每个时间步都会输出隐层状态,其中遗忘、记忆与输出由通过上个时刻的隐层状态和当前输入计算出来的遗忘门、记忆门、输出门来控制。计算如式(5)所示:

图4 LSTM单元结构

(5)

2.3.2 IDCNN+注意力机制模块

为了进一步提取医疗文本的特征信息,选用变体的卷积神经网络IDCNN,这是因为相较于BILSTM网络,卷积神经网络对局部特征的提取效果更好,并且IDCNN在标准卷积的基础上注入空洞,能够在不通过池化损失信息的情况下增加感受野,对输入中的较长实体能够分词更加准确。另外因IDCNN模块的特性,不会造成整体模型参数过大和训练时间过长。

空洞卷积与标准卷积的区别如图5所示,通过这种方式,在卷积核大小不变的条件下,就能得到更大的感受域。空洞卷积的感受域计算公式如式(6),其中i代表步长。

图5 空洞卷积与标准卷积

Fi+1=(2i+2-1)×(2i+2-1)

(6)

IDCNN模块则是将4个结构相同的膨胀卷积块进行堆叠,相当于进行了4次迭代,每次迭代将前一次的结果作为输入,这种参数共享可有效防止模型过拟台,每个膨胀卷积块有膨胀宽度分别为1.1.2的3层膨胀卷积。通过IDCNN模块,经过BERT预训练的词向量将能更好地提取文本中的特征。

虽然IDCNN可使感受域变大,能有效提取更长文本的特征,但提取的特征不会都是有用的信息,因此还需经注意力机制进行医疗文本的筛选。这里使用BERT模块中的多头注意力机制,经过式(3)的计算,词向量将能得到更好的特征信息。

2.3.3 特征融合模块

经过上述模块后,分别得到能够准确识别自己的词向量Xi、捕获具有上下文信息的词向量Yi和更长特征的词向量Zi,为使最终的词向量Ci拥有以上所有特征并不造成模型过拟合,先以公式(7)对词向量进行拼接,然后经过Dropout层,最后将其输入CRF层。

Ci=Concat(Xi,Yi,Zi)

(7)

式中,i为序号。

2.4 输出层

CRF模型常用于序列标注任务中的输出层,其可以通过学习给定数据集中标签之间的转移概率从而修正特征提取层的输出,确保最终预测输出的合理性。

3 实验与结果分析

将文中模型与各基线模型在CMeEE[15]和Yidu-S4K数据集上进行对比实验,评估各模型的输出结果,并进行结果分析。

3.1 实验数据集

采用的数据集为国内公开的中文医疗评测数据集,CMeEE数据集是中文医学语言理解测评(CBLUE)中命名实体识别任务所使用的数据集,包含训练集15 000条句子,验证集5 000条句子,每条句子中包含的实体类型和数量不等,总计分为9大实体类型,包括:疾病(dis)、临床表现(sym)、药物(dru)、医疗设备(equ)、医疗程序(pro)、身体(bod)、医学检验项目(ite)、微生物类(mic)、科室(dep)。Yidu-S4K数据集是医渡云(北京)技术有限公司用于医疗命名实体识别评测任务的数据集,其包含:疾病和诊断、检查、检验、手术、药物、解剖部位6种实体类型。表1和表2分别展示了CMeEE数据集和Yidu-S4K数据集的分布情况。

表1 CMeEE数据集分布情况 /个

表2 Yidu-S4K数据集分布情况 /个

从上述两个表格可以看出,CMeEE数据集规模较大,而Yidu-S4K数据集规模较小。通过这两个实体类型相似而规模不同的数据集,能进一步验证模型的泛化能力。

3.2 数据集标注与评价指标

实验中两份数据集都使用BIO标注体系进行数据的标注。在BIO标注体系中,B代表实体的开始位置,I代表实体的内部,O代表非实体部分。并且将两份原始数据集都分别重新划分数据集与测试集,其划分比例为7∶3。

使用如下三个指标来衡量模型的精准度:精准率(Precision,P)、召回率(Recall,R)和F1值(F1)。为计算这三个指标,需使用混淆矩阵,如表3所示。该混淆矩阵由以下四个元素组成,真正例:TP;真负例:TN;假正例:FP;假负例:FN。

表3 实验参数

精准率P表示预测为正例的样本中真正正例的比例,表达式如公式(8)所示:

(8)

召回率R表示预测为正例的真实正例占所有正例的比例,表达式如公式(9)所示:

(9)

F1值是精确率和召回率的合成指标,综合了二者的结果,取值范围为[0,1],F1值越髙,代表模型的综合性能越好,表达式如公式(10)所示:

(10)

3.3 实验环境与实验参数设置

实验环境为Window 10操作系统、CPU Intel Core i5-8400 4.0 GHz、16 GB RAM以及NVIDIA GTX 1050Ti图形处理器。模型框架为Python3.7.0、Keras 2.3.1和tensorflow-gpu 2.4.0。

实验模型中所使用的语言模型BERT的版本为bert-base-chinese,训练方式为自动检查点机制,若当前epoch的结果好于当前最优记录,将自动地将此轮epoch学习到的参数进行转储,并更新最优记录。并且为了更好地优化模型参数,使用学习率衰减策略和分层设置学习率的方法。学习率衰减策略是每当模型经过5轮训练后性能没提升,就缩小当前设置的学习率,再继续训练直到训练轮数结束。使用分层设置学习率是因为该实验需要在预训练模型基础上对下游任务进行微调,因此自定义的模块初始需要较大的学习率。另外的一些其他参数设置见表3。

3.4 实验方式

为了验证模型的优越性,将文中模型与现有主流模型进行对比实验以及与自身进行的消融实验。

(1)BERT-BILSTM-CRF模型[16]。该模型是现有常用于序列标注任务的模型之一。

(2)BERT-BILSTM-CRF(*)模型。该模型与模型(1)的不同点为将经过BERT-BILSTM的词向量与通过BERT预训练的词向量拼接融合后再输入到CRF层。

(3)BERT-IDCNN-CRF模型[9]。该模型将BILSTM层换成IDCNN层。

(4)BERT-IDCNN-CRF(*)模型。该模型与模型(3)的不同点为将经过BERT-IDCNN的词向量与通过BERT预训练的词向量拼接融合后再输入到CRF层。

(5)BERT-IDCNN-CRF(**)模型。该模型在模型(4)的基础上,在IDCNN后加入多头注意力机制。

(6)FLAT模型[10]。该模型改良了lattice结构,提出相对位置编码。

(7)BILSTM-CRF模型。早期泛用的实体识别模型,相较于模型(1),减少了BERT层。

对于对比实验,使用上述模型(2)(4)和(5)与文中模型在两个不同数据集上进行对比。对于消融实验,为了验证文中模型结构的有效性,使用上述模型(2)(4)和(5)与文中模型在数据集Yidu-S4K上进行对比。

3.5 结果分析

针对上述实验,使用3.2小节所述的评价指标P、R和F1值进行评估。对比实验结果如表4所示。

从表4的实验结果可以分析出,BEET预训练对词向量的增强效果是明显的,在CMeEE数据集上F1从61.41%提升到69.76%,在Yidu-S4K数据集上F1从70.97%提升到79.77%,说明BEER能够增强词向量的语法语义特征。并且当在BERT预训练的基础上进一步融合上下文和更广的感受野信息,模型的性能大大提高,在两个数据集上F1值分别提高了1.40百分点和2.29百分点,可见从多层次提取特征信息有效提高了医疗实体识别的精确度。另外,模型在这两个规模不一样的数据集上都有良好表现,验证了模型的泛化性。

为进一步验证模型的可靠性与泛用性,在CMeEE数据集上与近年来刚发表的医疗实体识别模型进行对比实验,在使用相同的参数与数据集的前提下,实验结果如表5所示。从中可以看出,虽然文中模型对比文献[17-19]的模型提升性能不大,但是却反映出文中模型拥有着不输于近年来新发表的医疗实体识别模型的性能。

消融实验的结果如表6所示。对比两个基于IDCNN模块的模型,F1值从79.99%上升到80.71%,说明多头注意力机制能够在IDCNN获取更大感受野的同时不遗漏细节特征。此外,从表中F1值的提高可以看出,多层次提取特征后的确可以提升模型的识别效率,并且在多个特征提取融合后能进一步增强其效果,同时也验证了文中模型的有效性和结构的合理性。

表6 模型消融实验 %

4 结束语

中文医疗实体识别是医疗领域文本信息抽取的基础任务,具有较大的理论研究和实际应用价值。该文提出一种融合BERT预训练、双向长短期记忆网络和结合注意力机制的一维空洞卷积网络的实体识别模型,在多层次充分提取了医疗文本的语法和语义特征,有效缓解了医疗文本中语法不规范、实体嵌套和类型易混淆等问题,在两个不同的数据集上表现出不错的性能。

但是中文医疗实体识别是一个复杂的任务,还有很多需要面临的挑战,识别精度还有进一步提升的空间。未来将继续增强模型的鲁棒性和考虑引入例如字典和字形图形等额外信息以增强模型性能。

猜你喜欢

实体卷积向量
向量的分解
基于3D-Winograd的快速卷积算法设计及FPGA实现
聚焦“向量与三角”创新题
前海自贸区:金融服务实体
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”
向量垂直在解析几何中的应用