融合知识的中文医疗实体识别模型
2021-08-09刘龙航赵铁军
刘龙航 赵铁军
摘 要: 从医疗文本中抽取知识对构建医疗辅助诊断系统等应用具有重要意义。实体识别是其中的核心步骤。现有的实体识别模型大都是基于标注数据的深度学习模型,非常依赖高质量大规模的标注数据。为了充分利用已有的医疗领域词典和预训练语言模型,本文提出了融合知识的中文医疗实体识别模型。一方面基于领域词典提取领域知识,另一方面,引入预训练语言模型BERT作为通用知识,然后将领域知识和通用知识融入到模型中。此外,本文引入了卷积神经网络来提高模型的上下文建模能力。本文在多个数据集上进行实验,实验结果表明,将知识融合到模型中能够有效提高中文医疗实体识别的效果。
关键词: 实体识别; 序列标注模型; 融合知识
文章编号: 2095-2163(2021)03-0094-04 中图分类号:TP391.4 文献标志码:A
【Abstract】Extracting knowledge from medical texts is of great significance to the construction of medical auxiliary diagnosis system and other applications. Entity recognition is an important step. Most of the existing entity recognition models are based on the deep learning model of annotation data, which rely heavily on high-quality large-scale annotation data. In order to make full use of the existing medical dictionary and pre-training language model, this paper proposes a Chinese medical entity recognition model with knowledge fusion. On one hand, domain knowledge is extracted based on domain dictionary; on the other hand, the pre-training language model BERT is used as general knowledge, and then domain knowledge and general knowledge are integrated into the model. In addition, convolution neural network is introduced to improve the context modeling ability of the model. In this paper, experiments are carried out on multiple datasets. The experimental results show that knowledge fusion can effectively improve the effect of medical entity recognition.
【Key words】 entity recognition; sequence labeling model; knowledge fusion
0 引 言
在醫疗健康领域中,拥有大量疾病及药品等数据。这些数据广泛存在于在线百科和医疗网站中,其中则蕴含着丰富的医学知识。从医疗文本中抽取知识对构建医疗辅助诊断系统等应用具有重要意义。中文医疗实体识别指的是给定一篇医学文本,标注出文本中出现的医学实体,是从医学文本中获取医学知识的关键技术。对于中文医疗实体识别任务而言,采用词级别的序列标注,会引入分词错误带来的误差。通常将中文医疗实体识别任务转为字符级别的序列标注问题。
本文探索了一种融合知识的深度学习模型架构。一方面基于领域词典提取领域知识,另一方面,引入预训练语言模型BERT作为通用知识,然后将领域知识和通用知识融入到模型中。此外,引入了CNN来提高模型的上下文建模能力。实验方面,本文在多个数据集上进行实验,实验结果表明,将知识融合到模型中能够有效提高中文医疗实体识别的效果。
1 相关工作
早期的研究人员通常采用医学专家定义的规则并且基于医学领域词典对医疗实体进行自动识别[1-2]。基于医学词典及规则方法的优点是无需标注数据,缺点是维护高质量的医学词典困难,并且专家定义的规则只适合某些场景。后来机器学习模型逐渐成为了实体识别的主流方法[3-4]。基于传统机器学习方法无需人工定义规则和医学词典,具有不错的稳定性。然而,该方法的效果很大程度上取决于定义的特征模板是否考虑周全,限制了模型的泛化能力。
近年来,深度学习方法在实体识别领域取得了显著的效果[5]。Li等人[6]将BiLSTM-CRF模型应用于中文电子病历的实体识别任务,并基于医疗领域数据训练了更丰富、更专业的词向量,进一步提高了模型性能。Lee等人[7]将预训练语言模型BERT[8]应用于医疗领域,基于大规模医学领域的英文语料训练得到BioBert模型,最终在多个英文实体识别语料上取得最优结果。基于深度学习的方法效果优于传统机器学习方法的重要原因是该方法无需人工定义特征模板,而是通过深度神经网络自动进行特征学习,从而具有更强的泛化能力。
2 知识提取
2.1 基于领域词典的领域知识提取
字级别的序列标注问题本质上是对每个字进行多分类。因此,可以利用医疗领域词典这一额外资源增强每个字的特征表示,从而提高分类的准确度。基于此,最朴素的思想就是基于医疗领域词典给每个字打标签,再对离散化的标签进行特征表示。具体来说,给定一个由T个汉字构成的句子S=
通过双向最大匹配算法得到打上标签的文本片段后,可以进一步对文本片段中的字打标签。考虑了每个字在其所属实体的位置信息:如果该字单独构成一个实体,那么在字标签由前缀“S”和其所属文本片段的实体类型标签构成;类似地,用标志“B”和其所属文本片段的实体类型标签指示某个实体的第一个字;用标志“E” 和其所属文本片段的实体类型标签指示某个实体的最后一个字;用标志“I” 和其所属文本片段的实体类型标签指示某个实体中间的字。表1中举例说明了这种标记方式。通过embedding方式对字标签进行表示得到相应的特征表示向量。
2.2 基于BERT的通用知识提取
从大规模无标注文本中进行语言表示学习是自然语言处理的重要研究方向。BERT(Bidirectional Encoder Representations from Transformers)是一个上下文表示的语言表示模型。这是基于使用双向多层Transformer编码器[10]的屏蔽语言模型(masked language model)预先训练的,结合下一个句子预测任务和更大的文本语料库,可以用于学习更好的双向上下文表示。
BERT模型有2个步骤,分别是:预训练和微调(finetuning)。通过预训练,BERT从大规模无标注数据学习到的语言上下文表示向量,这些向量蕴含了自然语言的组织内在规律,本文把这种内在规律称为通用知识。序列标注任务是token级别的分类,对于中文而言,BERT模型的token是字级别,这与本文采用字符级别的序列标注解决中文医疗实体识别问题正好吻合。基于BERT的通用知识提取则如图1所示。由图1可知,本文将BERT模型最后一层隐状态输出向量作为字的表示向量,将其视为通用知识融入到后续序列标注模型部分,丰富序列标注模型的输入信息,从而提高模型的识别能力。
3 融合知识的实体识别模型
融合知识的实体识别模型的输入是单个句子,输出是字符级别的标注结果。模型分为3部分,分别是:输入编码层、上下文建模层以及条件随机场(CRF)输出层。其中,输入编码层将融合领域知识和通用知识,上下文建模层将通过CNN和BiLSTM对输入编码进行上下文建模,CRF输出层用于解决标签依赖问题,并输出最终的序列标注结果。对此拟展开研究分述如下。
3.3 条件随机场层
对于字符级别的序列标注任务,通常来说考虑相邻标签的依赖性有助于提高模型的识别能力。例如,开始标签“B”后面应该跟中间标签“I”或结束标签“E”,I标签后面不能跟B标签或S标签。因此,研究中没有只使用的ht来进行标签分类决策,而是使用条件随机场(CRF)来联合建模标签序列。CRF层是一个将状态转移矩阵作为参数的线性链式无向图模型。通过该模型,可以利用前一个标签和后一个标签的信息来预测当前标签。
4 实验
4.1 数据集与评价指标
本实验采用2个数据集,分别是:CCKS 2019评测一面向中文电子病历的医疗实体识别数据集[13]和天池平台中文糖尿病标注数据集[14](A Labeled Chinese Dataset for Diabetes)。上述两个数据集都是按照文档级进行构建的,需要将文档级样本切分为句子级样本,切分后的数据集详细情况见表2。
对应医疗实体识别任务,本文选择最常用的评价指标,即所有实体类型上的微平均(micro-average) F1值。
4.2 实验设置
本文采用Pytorch框架[15]进行模型实现。具体来说,对于输入编码层部分,字嵌入维度为128,字标签的嵌入向量维度均为128,BERT采用Google官方基于中文维基百科训练的BERTbase模型;上下文建模层部分,BiLSTM的隐状态维度是128,CNN采取多种窗口大小的卷积核,分别是3,5,7,每种卷积核特征数为100。
4.3 实验结果与分析
通过对不同的输入编码以及不同的上下文建模进行组合,可以得到多个模型,将这些模型应用于实验数据集进行训练和预测。实验结果见表3。由表3可以看出,采用BERT结合字标签的词典特征作为输入编码,使用CNN+BiLSTM作为上下文建模层时,在2个数据集的实验效果达到最好。下面将单独分析不同输入编码方式以及不同上下文建模方式的效果。
(1)领域知识:在其他条件相同的情况下,融入词典特征要比不融入词典特征的效果好。实验结果表明基于领域词典提取的领域知识能够有效提高模型的性能。这种领域知识取决于上下文和领域词典,不受其他句子或统计信息的影响。因此,在某种程度上可以提供与监督学习数据驱动不同的信息。
(2)通用知识:在其他条件相同的情况下,使用BERT的實验效果要明显优于不使用BERT。这表明将BERT输出的字向量作为通用知识融入到模型能有效提高医疗实体识别的效果,研究认为这是因为BERT模型蕴含了自然语言构成的内在规律,这种规律是一种通用知识,能够提高模型的泛化能力。
(3)上下文建模层:在其他条件相同的情况下,CNN+BiLSTM要优于BiLSTM。这表明加入CNN能够提高模型上下文建模能力。研究认为这是因为CNN通过多窗口卷积能够捕获局部上下文信息,尤其是对于字级别的序列标注任务而言,这种局部上下文信息类似于字的组合信息,将这种信息和BiLSTM的全局上下文信息结合,提高了模型上下文建模能力。
5 结束语
针对中文医疗实体识别问题,本文提出了融合知识的实体识别模型,包括利用了词典提取领域知识和利用BERT预训练模型提取通用知识,并且在上下文建模方面引入了CNN来提取局部窗口上下文信息。实验结果表明,CNN能够提高上下文的建模能力,基于词典的领域知识和基于BERT的通用知识都能提高模型效果。
参考文献
[1] FRIEDMAN C, ALDERSON P O, AUSTIN J H M, et al. A general natural-language text processor for clinical radiology[J]. Journal of the American Medical Informatics Association, 1994, 1(2): 161-174.
[2] WU S T, LIU Hongfang, LI Dingcheng, et al. Unified medical language system term occurrences in clinical notes: A large-scale corpus analysis[J]. Journal of the American Medical Informatics Association, 2012, 19(e1): e149-e156.
[3] 叶枫, 陈莺莺, 周根贵,等. 电子病历中命名实体的智能识别[J]. 中国生物医学工程学报, 2011, 30(2):256-262.
[4] 王世昆, 李绍滋, 陈彤生. 基于条件随机场的中医命名实体识别[J]. 厦门大学学报 (自然科学版), 2009,48 (3): 359-364.
[5] JAGANNATHA A N, YU Hong. Bidirectional RNN for medical event detection in electronic health records[C]//Proceedings of The 2016 Conference of The North American Chapter of The Association For Computational Linguistics: Human Language Technologies. San Diego, California:ACL, 2016, 2016 : 473-482.
[6] LI Z, ZHANG Q, LIU Y, et al. Recurrent neural networks with specialized word embedding for chinese clinical named entity recognition[C]//CEUR Workshop Proceedings 2017. [S.l.]:dblp, 2017,1976:55-60.
[7] LEE J, YOON W, KIM S, et al. BioBERT: A pre-trained biomedical language representation model for biomedical text mining[J]. arXiv preprint arXiv:1901.08746v2, 2019.
[8] DEVLIN J, CHANG M W, LEE K, et al. BERT: Pre-training of deep bidirectional transformers for language understanding[C]//Proceeding of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics:Human Language Technologies(Long and Short Papers). Minneapolis, Minnesota: ACL,2019:4171-4186.
[9] GAI Rongli, GAO Fei, DUAN Liming, et al. Bidirectional maximal matching word segmentation algorithm with rules[J]. Advanced Materials Research, 2014,926-930: 3368-3372.
[10] VASWANI A, SHAZEER N, PARMAR N, et al. Attention is all you need[C]//Advances in Neural Information Processing Systems. Long Beach, CA:dblp,2017: 5998-6008.
[11]HOCHREITER S, SCHMIDHUBER J. Long short-term memory[J]. Neural Computation, 1997, 9(8):1735-1780.
[12]KIM Y . Convolutional neural networks for sentence classification[J]. arXiv preprint arXiv:1408.5882, 2014.
[13]醫渡云. CCKS 2019 评测任务一面向中文电子病历的命名实体识别数据集[DB/OL] .[2019-08-05]. http://openkg.cn/dataset/yidu-s4k.
[14]阿里云. 中文糖尿病标注数据集[DB/OL] . [2019]. https://tianchi.aliyun.com/dataset/dataDetail?dataId=22288.
[15]PASZKE A, GROSS S, MASSA F, et al. PyTorch: An imperative style, high-performance deep learning library[M]//WALLACH H, LAROCHELLE H, BEYGELZIMER A, et al. Advances in Neural Information Processing Systems. Harju Maakond Tallin Estonia:Curran Associates, Inc., 2019:8024-8035.