基于Tri—Training算法的中文电子病历实体识别研究
2018-01-15王润奇关毅
王润奇+关毅
摘要: 關键词: 中图分类号: 文献标志码: A文章编号: 2095-2163(2017)06-0132-04
Abstract: Semisupervised learning is a method of machine learning combining supervised learning with unsupervised learning. It improves the result of model established by the labeled data with the use of unlabeled data, aiming to reduce the need of large amount of labeled data and the labor cost. In the field of Named Entity Recognition(NER) of Chinese electronic medical records, semi-supervised learning could be used to improve the training result of a few labeled data, due to the lack of enough labeled data, the professionality of medical texts and the high cost of manual annotation. This paper introduces the background of NER in Chinese electronic medical records and related researches of semisupervised learning, and applies the improved TriTraining algorithm to improve the effect of NER model of Chinese electronic medical records.
0引言
信息技术的发展带来了各行业的信息化建设。医学信息系统在医院中迅速兴起,海量的电子病历也随之产生。越来越多的电子病历取代了传统纸质病历,不仅避免了实体介质易污损、病例易缺失造成的重复检查的困扰,也方便了资料在科室、医院等不同单位间的传递。
近年来,随着人们对健康的关注,智能医疗成为研究热点。借助人工智能的医疗服务系统,可以减少目前由于医疗资源紧缺导致的看病难、医患关系紧张等问题。电子病历中包含了患者就医过程中,医务人员记录下的真实临床信息。如果能自动化识别电子病历中的宝贵信息,不仅能让患者随时了解自身健康状况,对未来的疾病风险有所了解与预防,还能为医疗决策支持、询证医学、疫情监测等实际应用提供可靠的数据支持。
实体识别研究作为信息处理与数据挖掘的基础,是开展针对电子病历文本研究的前提[1]。但是,与开放领域的实体识别研究一样,中文电子病历的实体识别研究也需要大量标注语料。国内电子病历的实体识别工作才刚刚起步,缺少充足的标注语料,且标注语料的获取需要医学专业人员的手工标注,人工与时间成本高。因此,通过主动学习、半监督学习等方法,利用未标注数据对学习性能做进一步效果提升,成为近年来的研究热点。
1相关研究
命名实体识别作为医学自由文本数据中抽取信息并结构化的关键技术,一直是临床医学自然语言处理(NLP)的研究基础与热点。通用NLP领域的大量名实体识别方法被应用到了临床医学信息抽取领域,其中包括早期采用的基于词典与规则相结合的方法,和随着医疗信息语料库构建而兴起的基于机器学习的方法。在一系列公开测评任务中,基于机器学习的监督学习模型取得了较好的性能。
Dingcheng Li等[2]对比了条件随机域(CRF)和支持向量机(SVM)两种模型,并结合SNOMED-CT词典进行了电子病历命名实体识别,其中SVM模型的F值只有0.64,而CRF模型F值达到了0.86。Jonnalagadd等[3]在基本特征的基础上,增加分布式语义特征,采用CRF模型对电子病历中的医疗问题、检查、治疗进行识别。de Bruijn等[4]在2010年美国国家集成生物与临床信息学研究中心(Informatics for Integrating Biology and the Bedside,I2B2)组织的概念识别及关系抽取评测中排名第一,其引入了UMLS、cTAKES、Medline等医学知识库与临床医学NLP系统作为特征,并采用Self-training方法扩大训练语料,基于半马尔科夫模型(一种隐马尔科夫模型)进行训练,取得了85.23%的结果。此外,研究中还采用了双层分类器的方法来进行实体修饰类别识别,首先用三个独立分类器分别对单词进行实体修饰类别识别,而后整合三个分类器的结果得出最后的识别预测。
然而传统有监督机器学习依赖于大量的标注语料,而对样本的标注工作耗时耗力,像电子病历这样专业领域的样本标注还需要专业人员的协助。因此在没有大量已标注的中文电子病历情况下,传统的监督学习方法效果将受到限制。半监督学习能够基于少量的标注语料,且依据一定的策略,自动选择并标注未标注语料,扩充模型的训练集。伴随利用未标注样例的强烈需求,半监督学习在近年来逐渐成为研究热点[5]。
2算法
2.1协同训练算法
半监督学习中,学习器独立利用未标记数据,不需要人工参与交互。目前的半监督学习方法常常基于两种假设:一种是聚类假设,即相同聚类中的数据很可能标记相同。在这种假设下,学习器的决策边界应该尽可能通过数据稀疏的地方,同时应当尽量避免把数据稠密的区域划分到决策边界两端;另一种是流形假设,这种假设认为处于局部相邻区域的数据性质相似,其标记也应该相似。在聚类假设下,未标记数据可以帮助学习器学习数据空间稠密和稀疏区域的分布,进而调整监督学习的决策边界;在流形假设下,未标记数据可以更准确地刻画数据空间的局部特征,从而更好地进行数据拟合[6]。endprint
半监督学习常用的算法有自训练、协同训练、基于图的半监督学习算法等。其中,协同训练算法利用两个或两个以上学习器,互相为对方挑选置信度高的未标记数据进行标记,协同互助地更新模型,是半监督学习中最重要的算法之一。
标准的协同训练算法[7]最早由Blum和Mitchell提出。该算法要求数据集具备两个满足“充分冗余”的属性集:每个属性集都足以说明该问题,且两个属性集之间相互条件独立。如网页分类问题中,网页本身的内容与网页的超链接就可以认为是两个充分冗余的属性集。在两个属性集上分别利用有标记数据训练出学习器甲、乙,在训练过程中,学习器甲将未标注集中自己预测的置信度较高的数据标为自身所预测的标记,并加入学习器乙的训练集中,同样学习器乙也将自己预测的数据加入学习器甲中,随后二者各自利用新训练集进行模型更新。这样迭代进行训练,直至训练停止。但是事实上,在大部分研究领域,包括中文电子病历领域,“充分冗余”这个要求很难满足。因此,Goldman和Zhou提出了一种不再需要“充分冗余”属性集的协同训练改进算法[8]。该算法在构造学习器时,使用同一属性集,利用不同的决策树算法,训练出两个不同的学习器。预测时,选择两个分类中对目标数据预测置信度较高的学习器进行预测。改进算法虽然对协同训练算法中的“充分冗余”要求做了改进,但是引入了新的条件:不同的决策树算法。为了进一步放松约束条件,Zhou和Li提出了Tri-Training算法[9]—一种既不要求“充分冗余”,也不需要不同决策树算法的半监督学习方法。该算法通过对标注集进行有放回抽样,获取到三个训练集,分别训练出三个学习器甲、乙、丙。在迭代训练过程中,如果学习器甲、乙对某个未标记数据的预测相同,则认为该数据的置信度较高,将其标注后加入学习器丙的训练集中。同理,学习器甲、乙的训练集以同样方法扩充。在进行预测时,采用三个学习器投票的方式进行预测。
但是,Tri-Training利用三个学习器投票一致性来隐式表示置信度的方式,虽然可以减少频繁交叉验证所需的时间,但是不够准确,初始学习器较弱时,未标记数据很可能被标记错误,进而导致第三个学习器的训练集中引入噪音。因此,Liu等人在投票值的基础上加入贝叶斯后验概率,使得投票结果区分度更强,减少噪音的引入[10];三个学习器采用同样的属性与学习器算法,可能会导致学习器之间过于雷同,影响学习效果。因此Qian[11]等人在利用Tri-Training算法对文档进行作者识别模型训练时,分别利用字符、语法和句法属性构造三个学习器,使学习器的视角产生差异。但是这些开放领域的方法不能直接套用到中文电子病历实体识别中。首先,电子病历实体识别是序列标注问题而不是分类问题,无从获得贝叶斯后验概率;其次,病例文本具有特殊的语言特征,并不符合通用句法规范[12],难以构造出三个学习器视角。因此,本文基于中文电子病历的实际情况,对原始的Tri-Training算法进行了改进。
2.2Tri-Training算法改进
针对Tri-Training中的问题,本文提出以下改进方法:
1)使用部分随机的方法构建初始训练集。原始Tri-Training算法中,为了保证三个学习器之间既有共性、又有差异性,采用有放回抽样的方法构建初始训练集。这样抽取出的数据,很可能未覆盖全部标注数据,造成标注资源浪费,进而导致效果减弱。本文使用部分随机的方法构建初始训练集,具体做法是:三个学习器平分标注数据集,而后通过对标注数据随机抽样的方式扩充训练集。这样学习器训练集之间互有重合又互有区分,而且能覆盖标注集的所有信息。
2)选用相同的机器学习算法和不同的参数构建三个学习器。Tri-Training算法采用同样方法构造三个学习器,减弱了对学习器的约束。但是在病历数据中,文本的行文内容与风格较为统一,完全相同的学习器构造方式会导致学习器之间的区分度不够,进而导致学习器的集成效果受到影响。本文中对学习器算法设置了不同的参数,训练出三个学习器,既没有新增数据预处理的工作量,也使得学习器之间有所区分。不同的参数可能会对学习器性能产生影响,因此需要在对不同参数进行对比实验的基础上,选取结果较优的参数。
3)对学习器投票结果进行过滤。Tri-Training通过委员会投票的一致性选择数据,减少了协同训练中交叉验证的时间,但隐式表示置信度的方式不够准确。比如对于待选择样本x,学习器A对其的预测为:P(y1|x)=0.3,P(y2|x)=0.25,P(y3|x)=0.25,学习器B对其的预测为:P(y1|x)=0.25,P(y2|x)=0.20,P(y3|x)=0.20,显然A、B对其的预测结果均为y1,但其中样本被分类成y1的置信度并不高,不宜将其标为y1加入迭代训练中。在选择过程中,可以将Tri-Training与自训练的简单结合,设置学习器预测概率阈值,对学习器的投票结果进行过滤。当学习器预测的概率值低于阈值时,不将其加入到迭代训练集。
算法步骤流程如下:
输入:标注文档集L,未标注文档集U,过滤阈值t
输出:新标注文档集L′,模型M
1)将标注集L打乱并平分为标注集L1、 L2、 L3;再分别从L中随机抽取相同数量的若干文档到L1、 L2、 L3,合并为初始训练集L1′、 L2′、 L3′。
2)基于不同参数的监督学习模型与标注集L1′、 L2′、 L3′,训练出初始模型M1、 M2、 M3,并评价三个模型的集成模型测试结果。
3)基于模型M1和模型M2对U中未加入训练集L3′的句子进行预测,若结果一致,且预测结果的概率值高于t,则将句子扩充到训练集L1′。
4)模型M2和M3、模型M1和M3类比步骤3)操作,分别得到新训练集L1′、 L2′。基于新训练集分别训练新模型M1、 M2、 M3,并进行集成評价。endprint
5)若評价结果连续两次不高于上一次训练的结果,或步骤3)中可扩充句子数为0,则终止算法,并返回上一次迭代过程的中间结果L1′、 L2′、 L3′的并集L′和模型M1、 M2、 M3的集成模型M;否则重复步骤3)~5)。
3实验与结果分析
本文以60份已标注电子病历文档和1 000份未标注电子病历文档作为训练数据,以40份已标注电子病历文档作为测试用例。60份已标注电子病历文档作为数据集L,1 000份未标注电子病历作为数据集U。监督学习模型采用适合序列标注任务的条件随机场(Conditional Random Fields,CRF)模型。
实验以原始Tri-Training算法为对照,证明改进后的Tri-Training算法的有效性。如图1所示,标注文档集L=60,阈值t=0.5,初始分类器训练集大小为标注文档集的二分之一时(即|L1′|=|L2′|=|L3′|=1/2|L|),研究得到了改进前后算法产生的集成模型效果对比。
将三个模型扩展后的训练集L1′、L2′、L3′合并成新的标注集L′,并训练模型,得到半监督学习前及算法改进前后的各类医疗实体(分类标准参考文献[8])识别效果则如表1所示。
由图1可以看出,由于对初始训练集的构建做出优化,改进后算法相对原始算法,在第一次训练时就具备优势。原始算法由于起始模型较弱,在半监督学习过程中效果不仅没有提高,反而因为模型引入的噪音,将导致模型效果变差。而改进后算法由于对扩展的未标注数据有所过滤,所以在半监督学习后模型的效果得到提升。但是由于数据集数量限制,在第5次迭代后,模型就无法再找到合适的未标注数据进行训练集扩展,因此半监督学习的提升效果比较有限。由表1可以得出,相对于改进前,模型的效果已由78.88%提升到80.90%,尤其是在症状与检查结果两项,效果提升比较显著,说明算法的改进是有效的。
4结束语
本文提出的对Tri-Training算法的改进,模型相对于原始算法,在中文电子病历上识别效果由78.88%提升到80.90%,在不增加人工标注工作量的基础上,该算法能有效地提高模型的识别效果。
但是由于数据量限制,使得模型选出的扩展数据数量受到限制,因此半监督学习提升的效果不够明显。在后续的研究中,一方面需要扩充数据集,进一步验证算法在大数据量情况下的优化效果;一方面可以采用多种算法方式构造三分类器,使分类器之间的差异更显著,从而提高集成效果。
参考文献:
[1] WASSERMAN R C. Electronic medical records (EMRs), epidemiology, and epistemology: Reflections on EMRs and future pediatric clinical research[J]. Academic pediatrics, 2011, 11(4): 280-287.
[2] LI Dingcheng, KIPPER-SCHULER K, SAVOVA G. Conditional random fields and support vector machines for disorder named entity recognition in clinical texts[C]//BioNLP '08 Proceedings of the Workshop on Current Trends in Biomedical Natural Language Processing. Stroudsburg, PA, USA:ACM, 2008:94-95.
[3] JONNALAGADDA S, COHEN T, WU S, et al. Using empirically constructed lexical resources for named entity recognition[J]. Biomedical Informatics Insights, 2013, 6(S1):17-27.
[4] De BRUIJN B, CHERRY C, KIRITCHENKO S, et al. Machinelearned solutions for three stages of clinical information extraction: The state of the art at i2b2 2010[J]. Journal of the American Medical Informatics Association, 2011, 18(5):557-562.(下转第138页)[5] 孙承杰. 基于判别式模型的生物医学文本挖掘相关问题研究[D]. 哈尔滨:哈尔滨工业大学, 2008.
[6] 周志华. 半监督学习中的协同训练风范[M]// 机器学习及其应用. 北京:清华大学出版社, 2006: 259-271.
[7] BLUM A, MITCHELL T. Combining labeled data and unlabelled data with cotraining[C]// Proceedings of the 11th Annual Conference on Computational Learning Theory (COLT-98).Madison, WI, USA:ACM, 1998:92-100.
[8] GOLDMAN S A, ZHOU Yan. Enhancing supervised learning with unlabeled data[C]// Proceedings of the Seventeenth International Conference on Machine Learning. San Francisco, CA, USA:ACM, 2000:327-334.
[9] ZHOU Zhihua, LI Ming. Tri-Training: Exploiting unlabeled data using three classifiers[J]. IEEE Transactions on Knowledge and Data Engineering, 2005, 17(11):1529-1541.
[10]LIU Kun, GUO Yuwei, WANG Shuang, et al. Semi-supervised learning based on improved co-training by committee[M]// Intelligence Science and Big Data Engineering. Big Data and Machine Learning Techniques.Lecture Notes in Computer Science, Cham:Springer International Publishing, 2015:413-421.
[11]QIAN Tieyun, LIU Bing, CHEN Li, et al. Tri-training for authorship attribution with limited training data:A comprehensive study[J]. Neurocomputing, 2016, 171(C):798-806.
[12]杨锦锋, 关毅, 何彬,等. 中文电子病历命名实体和实体关系语料库构建[J]. 软件学报, 2016, 27(11):2725-2746.endprint