时间:2024-12-22
陈 杰,奚雪峰,2,皮 洲,盛胜利,崔志明,2
(1.苏州科技大学电子与信息工程学院,江苏 苏州 215009)(2.苏州智慧城市研究院,江苏 苏州 215009)(3.Computer Science Department,Texas Tech University,Texas 79431,USA)
随着电子病历的应用范围越来越广,各级医院和研究机构产生了海量的电子病历. 如何对电子病历中的自然语言文本进行分析,从而生成有效的医疗信息,逐渐成为近年来的研究热点. 其中,医疗病历命名实体识别(named entity recognition,NER)就是该领域的基础性研究工作,其研究成果能够为医学知识库的构建、药物安全性检测、临床决策及个性化患者精准医疗服务提供支撑.
目前国内外关于命名实体识别的绝大部分研究都是基于英文[1-3],面向中文的命名实体识别相对较少[4-6],尤其在电子病历文本分析处理领域[7-8]. 针对电子医疗病历命名实体识别任务,本文基于ALBERT模型,融合双向长短记忆网络(BiLSTM)及条件随机场模型,构建了一个ALBERT-BiLSTM-CRF(ALBBC)模型,并针对中文医疗病历命名实体识别任务,开展了多个模型的比对实验,发现所构建的ALBBC模型在识别精度及时间开销上均优于同类模型.
Bikel等[1]最早提出了基于隐马尔可夫模型的英文命名实体识别方法,其在 MUC-6 测试文本集的测试结果为:英文地名、机构名和人名的识别精度分别达到了97%、94%和95%,召回率分别达到了95%、94%和94%. Liao等[2]提出了基于条件随机场模型,采用半监督的学习算法进行命名实体识别. Ratinov等[3]采用未标注文本训练词类模型(word class model)的办法,有效提高了NER系统的识别效率,并针对 CoNLL-2003数据集开发出精确度和召回率的调和平均数F1值达到90.8%的命名实体识别系统. 中文的命名实体识别也获得了广泛关注. Tsai 等[4]提出基于最大熵的混合的方法. 陈钰枫等[5]提出了汉英双语命名实体识别的对齐交互式方法. 面向中文病历文本命名实体识别的工作不多,杨锦锋等[7]于2016年开始研究中文电子病历的命名实体方法,并构建了一个实体关系语料库.
目前针对命名实体识别任务的常用方法包括支持向量机(support vector machines,SVM)[9]、条件随机场(conditional random field,CRF)[10]、结构化支持向量机(structured support vector machines,SVM)[11]、递归神经网络(recurrent neural network,RNN)及其变体模型[12]、卷积神经网络(Convolutional Neural Networks,CNN)及其变体模型[13]等. Liu等[14]设计不同特征模板和上下文窗口进行条件随机场的学习训练,并比对分析模型实体识别效率,以寻找最佳的电子病历特征模板和上下文窗口. Liu 等[15]通过实验对比了BiLSTM-CRF与传统的CRF实体识别算法的性能,结果表明前者性能较好. Qiu等[16]为提高循环神经网络模型的训练速度,提出了残差卷积神经网络条件随机场模型,在 CCKS开放测试语料上获得了更好的训练速度和F1值. 随着近年Contextualized embedding研究的突飞猛进,出现了ELMO[17]、BERT等[18]可以生成上下文相关的词向量表示模型. 相较于word2vec而言,上述模型表达准确率有大幅提高,同时克服了word2vec存在的多意词无法用单一词向量表示的问题.
对于给定的一组电子病历纯文本文档,目标是识别并抽取出与医学临床相关的命名实体并将其归类到预定义类别中. 本文给出了1 500份标注好的训练数据用于模型的训练和调优,共需识别包括疾病和诊断、影像检查、实验室检验、手术、药物及解剖部位在内的6种实体. 一般而言,中文电子病历命名实体识别是一个序列标注问题. 本文使用BIO(Begin,Inside,Other)标签方案将数据集给出的标签映射到每一个字符上,进行字符级别(char level)的标记,如表1所示.
表1 标注方案Table 1 Labeling schme
输入:
1.电子病历的自然语言文本D={d1,…dN},di=〈wi1,…,win〉;
2.预定义类别:C={c1,…cm};
输出:
实体提及和所属类别对的集合:{〈m1,cm1〉,〈m2,cm2〉,…,〈mp,cmp〉}.
其中,mi=〈di,bi,ei〉,是出现在文档中的医疗实体提及(mention);bi和ei分别表示mi在di中的起止位置;cmi∈C表示所属的预定义类别. 要求实体提及之间不重叠,即ei 预定义类别如表2所示. 表2 预定义类别Table 2 Predefined categories 本论文使用的数据集是医渡云公开的电子病历数据集(http://openkg.cn/dataset/yidu-s4k),包含1 500条标注数据、1 000 条非标注数据、6 个类别的实体词词表,如表3所示. 表3 数据集Table 3 Dataset 首先数据集(以下称原始数据集)有部分标注在某些词上存在一定程度上的标注标准不统一问题,手动对数据集进行了修正(以下称修正数据集). 同时考虑到标注标准应可由模型从原始数据集中自动学习到,泛化能力也会更强,因此也保留了原始数据集. 此时产生了原始数据集和修正数据集这两个独立的数据源. 由于医学领域的用词造句较为特殊,目前的公共分词工具在医学术语中表现不佳,因而本文使用字符而不是词语作为序列标注模型的单位. 本文将原始数据集和修正数据集中的每一条数据分别拆分为单个字符,按照BIO标签方案将数据集给出的标签映射到每一个字符上. 至此数据预处理流程结束. ALBERT[19]由谷歌AI团队于2019年发布. BERT模型凭借Masked Language Model(Masked LM)、双向Transformer encoder以及句子级别的负采样得到了一个强大的、深度双向编码的、包含着充分描述了字符级、词级、句子级甚至句间关系的特征的预训练模型,针对特定任务,只需简单针对任务数据对模型进行微调,即可完成整个模型的构建. BERT因其庞大的参数量,在实际应用中常常受到硬件内存的限制;而增加BERT-large等模型的隐藏层大小也会导致性能下降. 如表4所示,BERT-large的隐藏层大小增加一倍,该模型在RACE基准测试上的准确率显著降低,ALBERT的准确率基本无影响,ALBERT-large相较BERT-large的参数小得多,只有18M个参数. 表4 预训练模型对比Table 4 Comparison of pre-trained models 条件随机场是一种无向概率图模型,是一种判别模型,长期以来广泛应用于序列标注问题[2-3,13]. 给定字符序列z={z1,…,zn},zi代表第i个字符及其特征所组成的输入向量;给定z的标签序列y={y1,…,yn},γ(z)代表z的所有可能标签. CRF模型定义了在给定字符序列z时,标签序列为y的概率公式: 式中,S(yt,zt,θ)为势函数;θ为CRF模型的参数. Hochreiter和Schmidhuber[20]于1997 年提出了LSTM,最初是为了解决递归神经网络(recurrent neural network,RNN)训练伴随的梯度缓慢和梯度爆炸,为保持信息完整引入了记忆细胞[15],记录历史上下文信息. 近年 LSTM方法被广泛应用于自然语言处理领域,目前 NER的主流模型是 BiLSTM-CRF,其结构如图1所示. Lample等[21]提出了2种神经网络方法,一种基于 BiLSTM 和 CRF,另一种是受移位归约解析器(shift-reduce parser)启发提出的基于转换(transition)的方法构建和标记分段. 图1 BiLSTM-CRF模型Fig.1 BiLSTM-CRF model 针对中文医疗病历原始数据集和修正数据集,本文构建了ALBERT-BiLSTM-CRF(ALBBC)模型. 模型所使用的特征为纯字符特征. 利用ALBERT 模型自带的词典将数据集的单个字符映射为 ID 后,再经 ALBERT 模型的 Embedding层对字符 ID 进行字向量建模,随后进入网络预训练. 首先对大量的电子病历进行命名实体的标注规范;然后在中文数据集上测试 ALBERT 预训练模型,再进入 BiLSTM 提取深层信息,并使用 CRF 进行解码;最后,分析 ALBERT 模型的不足之处,并针对医疗数据集的特点,微调该模型以优化整个网络在医疗数据集上的表现. 模型框架如图2所示. 图2 ALBERT-BiLSTM-CRF 模型Fig.2 ALBERT-BiLSTM-CRF model 实验软件模型基于TensorFlow-gpu1.15.2深度学习框架和keras、numpy、seqeval等第三方库,使用参数大小为1.8M的中文模型ALBERT_TINY;硬件采用4块NVIDIA GeForce GTX 2080Ti显卡加速训练与预测. 中文电子病历数据集共包含疾病与诊断、检查、检验、手术、药物、解剖部位6类命名实体. 将数据集中的80%作为训练集,10%作为验证集,10%作为测试集. ALBERT模型的最长序列长度选择为512,优化算法为Adam算法,学习率设为1e-5,batch_size为16,epoch为60,MAX_SEQ_LEN=128,双向LSTM层的隐层节点数均为32(这里指单个方向的隐藏层节点数). 本论文所有实验结果均由多次实验取均值所得. 本实验采用命名实体识别通用的评价指标正确率P(precision)、召回率R(recall)、F1值(F-measure)对电子病历命名实体识别结果进行性能衡量. 具体计算公式为: 如图3所示,不断调整参数进行试验,分别训练了当epoch值为10,15,20,30,50时的F1值,此处F1值为各个实体F1值的平均值. 可以看到,当epoch值小于30时,模型明显为欠收敛;epoch为50左右,基本可以收敛;F1值在epoch值为60时达到最高,当epoch值为70时已经开始下降. 进一步调整epoch值,将F1值提高到将总体识别效果提高了1.3个F1值,总体识别的F1值为各个实体F1值的平均值,效果最佳的epoch值为60,其F1值为85.38%,故选择该epoch值为综合实验参数. 以下实验均在epoch值为60的基础上展开,其中对“实验室检验”类别实体的识别效果最为突出,F1值从原来的81.76% 提高到84.85%. epoch值和F1值实验中均采用最佳优化器Adam. 图3 epoch值与F1值关系图Fig.3 Graph of epoch value and F1 value 为了得到更适合的参数值,对丢弃率(Dropout)和优化器(Optimizer)也进行了类似的实验. 对Dropout进行的实验如表5所示. 表5 不同的 Dropout 对模型效果的影响Table 5 Effect of different Dropout 表5是不同的Dropout值对于模型精度的影响实验,可以看出Dropout值对实验识别效果存在较为明显的影响. 除原先默认参数值0.5 之外,从0.1 到0.8,无论是单个实体识别效果还是整体识别效果均有所提升,说明本实验中Dropout值设置越小对实验效果提高越有帮助. 故此,本实验选择Dropout值为0.1作为综合模型参数. 表6所示为不同优化器对模型精度的影响. 由表6结果可以看出,Adam 优化器的识别效果最为突出. Adam、Momentum 和SGD 都是常用的神经网络优化器. Adam是一类对每个参数的自适应学习率进行计算的算法,结合了Adadelta和Momentum 的优点. 实验结果显示,Adam 的效果优于其他两个优化器. 最传统的SGD相较于Adam和Momentum 在结果上有一定差距,经过分析SGD多次陷入鞍点,从而只有局部最优解. 因此,本文实验选择Adam 作为模型优化器. 表6 不同的优化器对模型效果的影响Table 6 The influence of different optimizers on the model performance 通过与CNN-CRF(CC)[22]、BiLSTM-CRF(BC,该模型还使用了attention机制[23])、BERT-BiLSTM-CRF(BBC)3种模型的实验结果对比,本文采用的方法在速度与精度上均有所提升. 如图4所示,ALBERT-BiLSTM-CRF(ALBBC)模型在除疾病与诊断这一个实体上的F1值低于BBC外,其余5类实体上F1值均领先于另外3种模型. BERT的参数量远高于 ALBERT,其在数据集中属于疾病与诊断实体的数据量是 6种实体中最多的,因此可以训练出更好的模型,但BERT的训练时间也远超ALBERT. 从表4可以看出,相对于不使用contextual representation的模型来说,ALBERT和BERT这种上下文相关的word representation所得的结果提升明显. D:药物;S:手术;li:影像检查;lt:实验室检验;Dnd:疾病和诊断;As:解剖部位图4 4个模型F1值散点对比图Fig.4 F1 scatter comparison chart of the four models 词之间广泛存在的语义相关对于提升深度学习模型对于语义的理解至关重要. 含有信息更加丰富的word embedding对于下游的任务来说,更容易让模型得到更优的结果. 本论文的主要实验是CC、BC、BBC、ALBBC 4个模型的对比,其中CC、BBC两个模型是本文实验的对照组. 模型效果对比如表7所示,实验结果对比如表8所示. 表7 模型效果对比Table 7 Comparison of models’ effect 表8 实验结果对比Table 8 Comparison of experimental results 针对中文电子病历文本,本文提出一种模型融合方法用于文本实体识别任务. 其核心包括基于ALBERT模型微调数据集,采用双向长短记忆网络(BiLSTM)来提取文本的全局特征,以及基于条件随机场模型(CRF)进行命名实体的序列标记. 在标准数据集上的实验结果表明,本文所提方法进一步提高了医疗文本命名识别精度,并大大减少了时间开销. BERT和ALBERT等结合了上下文信息的预处理模型意义重大,但均需大量的训练数据来支持. 相对于其他领域拥有大规模数据的任务来讲,电子病历的数据集相对较小,所以准确率不高,但专业领域上的实体识别更具有研究和现实意义. 针对数据量不足的问题,未来将考虑扩充数据集和结合小样本学习的方法来进一步提高准确率.3 数据集与预处理
3.1 数据集
3.2 数据预处理
4 基于ALBERT的中文医疗病历命名实体识别模型
4.1 ALBERT
4.2 条件随机场(CRF)
4.3 BiLSTM-CRF
4.4 ALBBC模型
5 实验结果与比较
5.1 实验设置
5.2 评价指标
5.3 实验比对
6 结论
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!