黄敏婷,赵 静,于 涛.基于医学大数据的预训练语言模型及其医学文本分类研究[J].中华医学图书情报杂志,2020,29(11):39-46.DOI:10.3969/j.issn.1671-3982.2020.11.006
㊃情报研究与方法㊃
基于医学大数据的预训练语言模型及其医学文本分类研究
黄敏婷1,赵 静1,于 涛2
[摘要]目的:构建基于医学文本的预训练语言模型,以解决基于通用语料的预训练语言模型不适应医学文本分类的问题㊂方法:使用PubMed 医学论文摘要数据和PMC 医学论文全文数据在通用预训练语言模型Bert 上进行二次预训练,得到医学领域的预训练语言模型BioBert ,使用标注好的文本数据对BioBert 进行微调,得到最终的医学文本分类模型㊂结果:病历文本和医学论文摘要文本两个数据集的分类实验显示,经过医学文本二次预训练的预训练语言模型在两个数据集上都取得了较好的分类效果㊂结论:通过自训练的方式对大量医学文本进行预训练得到的医学领域预训练语言模型,能在一定程度上解决使用通用预训练语言模型无法很好适配医学文本分布而导致分类性能偏低的问题㊂[关键词]医学文本;预训练语言模型;文本分类
[中图分类号]R-05;TP391.1 [文献标志码]A [文章编号]1671-3982(2020)11-0039-08
Medical big data -based pre -trained language model and classification of its medical texts HUANG Min -ting 1,ZHAO Jing 1,YU Tao 2(1.Beijing University of Traditional Chinese Medicine,Beijing 100029,China;2.Nanyang University of Science
and Tecgnology,Singapore 639798,China)Corresponding author:ZHAO Jing
[Abstract ]Objective To establish the medical texts -based pre -trained language model in order to solve the general corpus-based pre -trained language model which is not adaptable to the classification of medical texts.Methods The BioBert,a pre-trained language model of medical domain,was established by a secondary training in Bert,a general pre-trained language model,using the PubMed-covered data of medical abstracts and PMC-covered data of medical papers,and the classification model of medical texts was established by minor adjustment of BioBert using the marked text data.Results The classification of medical records text and medical abstracts text showed good results in the pre-trained language model after their secondary pre-training.Conclusion The pre-trained lan⁃guage model of medical domain established by pre-training a large number of medical texts can,in a certain de⁃gree,solve the low classification performance due to the distribution of medical texts which is not adaptable to the general pre-trained language model.
[Key words ]Medical text;Pre-trained language model;Text classification [作者单位]1.北京中医药大学,北京 100029;2.南洋理工大学,新
加坡 639798
[作者简介]黄敏婷(1993-),女,广东广州人,在读硕士研究生,研究
方向为社会医学与卫生事业管理㊂
[通讯作者]赵 静(1971-),女,北京市人,硕士,教授,研究方向为社
会医学与卫生事业管理㊂E-mail:zhaojteacher@163
大数据(big data)是指无法(在可容忍的时间
内)用传统IT 技术和软硬件工具对其进行感知㊁获取㊁管理㊁处理和服务的数据集合[1]㊂随着云时代的到来,大数据已成为各领域的关注焦点之一,尤其是生物医学领域㊂生物医学领域的大数据包括但不限于临床医疗(电子病历㊁医学影像)数据㊁公共卫生(疾病与死亡记录㊁流行病监测)数据㊁医药研发(临床试验㊁药物研发)数据㊁人类遗传学与组学(基
因组学㊁蛋白质组学)数据[2]以及科研文献文本(公开发布或未发表文献㊁临床试验报告)等㊂就科研
文献文本而言,截至2020年8月,仅PubMed就收
录了超过3000万份生物医学文献引文,生物医学
领域的各种新发现㊁新技术㊁新突破等被记录在这些
文献文本中[3]㊂传统IT技术和软硬件工具无法有效㊁快速地识别㊁抓取这些海量生物医学文献文本信
息,因此需要探索㊁开发更高效的技术和工具,提高
医学文本分类的效率和质量,从而准确挖掘出有价
值的信息,助力医学大数据领域的深度发展㊂
1 研究背景与目的
目前医学文本挖掘方法大多基于传统机器学习
模型,如向量空间模型[4]㊁支持向量机模型[5]等㊂传统机器学习模型的缺点在于无法感知文本中句子之间的关系,导致大量有价值的信息缺失,从而无法有效完成后续的文本挖掘任务㊂近年来,基于深度学习模型的文本挖掘成为自然语言处理领域的热门研究方向㊂深度学习模型具有更强的文本表达能
力,能够在一定程度上解决浅层模型的问题,感知复杂的文本语义关系,高效执行具体任务要求,挖掘更为全面且有价值的文本信息㊂
深度学习属于机器学习的一种,是一类基于深
度神经网络的学习方法的统称㊂2006年,深度神经
高分子材料与工程专业就业前景网络的训练问题被解决,深度学习迎来快速发展期㊂
由于深度神经网络具备强大的特征选择提取与学习
能力,因此研究者开始将深度神经网络模型运用在
图像识别㊁语音识别及自然语言处理(natural lan⁃guage processing,NLP)领域㊂NLP是一门融合了语言学㊁计算机科学和数学的学科㊂随着基于深度学习技术和NLP技术不断发展,越来越多的相关技术开始被应用到生物医学文本挖掘中㊂如基于条件随机场(conditional random field,CRF)[6]和长短时记忆网络(long short term memory network,LSTM)[7]有效提升了生物医学领域命名实体识别的效果[8-9],也利用深度学习大幅度提升了其他生物医学文本挖掘任务的效果,如关系提取[10-12]㊁文本问答[13]㊂通常基于深度学习的NLP模型需要大量的标注数据才能达到很好的效果,在数据量较少的情况下,模型精度有限,使用预训练语言模型能很好地解决这一问题[14-15]㊂预训练语言模型是指利用大
量无标注的文本数据通过自监督训练的方式来学习一些语言知识(如根据句子的前几个词来预测下一个词)的一套模型参数㊂利用预训练语言模型抽取更加准确的语义信息,再结合神经网络非线性拟合的能力,可达到最好的预测效果[14-15]㊂
但是,目前常用的预训练语言模型如ELMo[16]㊁GPT[17]和Bert[14],都是基于通用语料训练而成的,而生物医学文本的分布和通用文本的分布会有很大的差异,所以将这些模型直接应用在医学文本挖掘上会产生不适用性㊂利用大量的生物医学文本训练而成的预训练语言模型相较于通用语料的预训练语言模型在医学文本问答和医学关系提取中能取得更好的效果,但至今还没有基于医学文本的预训练语言模型提升医学文本分类效果的相关研究㊂
本文在对目前NLP的各种文本预训练语言模型进行总结归纳的基础上,提出基于医学大数据预训练语言模型(BioBert)的医学文本分类模型,并阐述其医学文本训练的过程,最后分别选取生物医学领域的长文本和短文本进行分类效果实证研究,同时选择Word2Vec模型㊁Bert模型进行对比实验,对3种模型的实验结果进行分析总结,验证本文提出的分类方法的效率和质量㊂
2 预训练语言模型概述
目前神经网络在进行训练时基本都基于反向传播算法,通过对网络模型参数进行随机初始化,然后利用优化算法优化模型参数㊂但是在标注数据较少的情况下,采用神经网络训练出来的模型精度有限㊂
大量研究结果显示,预训练能够很好地解决这个问题[16-17]㊂首先,通过对大量无标注的语言文本进行语言模型的训练,得到一套模型参数,然后利用这套参数对模型进行初始化,最后根据具体任务在现有语言模型的基础上进行精调㊂随着算力的发展,网络结构(如Transformer[18])不断优化,训练技能不断提高,预训练模型也在迭代更新㊂
2.1 第一代预训练语言模型
第一代预训练语言模型的目的是学习每个单词的分布式表示㊂2003年,Yoshua Bengio等提出的神经语言模型[19]可根据文本中的前一些词来预测下一个词的概率分布,在训练神经语言模型的过程中也学习到了词向量㊂词向量是指把一个维数为所有
词的数量的高维空间嵌入到一个维数低的连续向量空间中,每个单词或词组被映射为实数域上的向量㊂普通深度学习中词向量往往是随机生成的,而通过神经语言模型学习到的词向量则包含了不同词汇之间的语义关系,很好地解决了传统文本表示中特征表达能力弱的问题,极大提升了NLP中如句法分析[20]㊁情感分类[21]等常见任务的效果㊂
最具代表性的第一代预训练语言模型是Tomas Mikolov等在2013年提出的Word2Vec工具,它包含了CBOW模型和SKIP-GRAM模型[22]㊂该工具仅利用海量的单语数据,就可通过无监督的方法训练得到词向量㊂Word2Vec词向量的提出,降低了预训练语言模型的使用门槛,极大地激发了学者对后续预
训练模型的研究热情㊂
词向量最主要的缺点是无法解决一词多义问题㊂在现实生活中相同的词在不同的上下文中会有不同的含义,而词向量对模型中的每个词都只分配了一个固定的表示,未考虑上下文对单词语义的影响㊂2.2 第二代预训练语言模型
针对上述问题,第二代预训练语言模型专注于解决如何将上下文信息引入到词向量的表示中㊂其中最具代表性的模型有3个,分别为ELMo[23]㊁GPT 和Bert㊂2018年初,艾伦人工智能研究所和华盛顿大学的研究人员在题为 Deep contextualized word representations”的文中提出了ELMo㊂相较于第一代预训练语言模型只学习每个单词的一个固定表示,ELMo学习的是一个双向长短时记忆网络(LSTM)的语言模型㊂基于双向LSTM可以捕捉上下文的特性,每个单词都可以通过ELMo的语言模型编码成为包含上下文信息的词向量㊂在进行有监督的NLP任务(如文本分类)时,可以将ELMo直接当作特征拼接到具体任务模型的词向量输入或者模型的最高层表示上㊂实验证明,相对于Word2Vec, ELMo在各项NLP任务中均有明显的提升效果[16]㊂但是ELMo存在一个非常明显的缺点,即ELMo 在抽取特征时并没有选择Transformer而是使用了LSTM㊂Transformer是谷歌在2017年做机器翻译任务时提出的一种新型的用于抽取文本特征的网络结构,取得了良好的效果[18]㊂很多研究已经证明了Transformer抽取特征的能力优于LSTM[15,18]㊂
在ELMo的基础上,OpenAI的研究人员在 Im⁃proving Language Understanding by Generative Pre-Training”一文中提出了GPT预训练语言模型㊂相
较于ELMo,其最大的进步就是使用了Transformer 编码器㊂同时在处理具体任务时,OpenAI GPT不需要重新对任务构建新的模型结构,而是直接将Transformer这个语言模型上最后一层接上的Soft⁃max分类器作为任务输出层,再对整个模型进行微调,进一步降低了预训练语言模型的使用难度㊂GPT的问题在于只进行了单向的语言模型建模而没有使用双向的㊂
综上所述,ElMo使用了双向语言建模而没有使用Transformer编码器,GPT使用了Transformer编码器却没有进行双向语言建模,Google提出的Bert则同时弥补了ELMo和GPT的缺点,取得了更好的效果㊂具体而言,Bert使用Transformer的编码器作为语言模型,并在语言模型训练时提出了两个新目标,即掩盖语言模型(masked language model,MLM)和上下句预测判断模型(next sentence prediction, NSP)㊂MLM是指在输入的词序列中,随机遮挡其中15%的词,并用未遮挡的词对遮挡的词进行预测㊂为了让模型学习到句子之间的关系,研究人员提出了让模型对即将出现的句子进行预测,即对连续句子的正误进行二元分类㊂Bert被提出后刷新了所有NLP标准任务的最好表现,成为了NLP里程碑式的进展,后续的NLP任务也大多基于Bert展开㊂2.3 基于特定领域的第二代预训练语言模型
作为一种通用预训练语言模型,Bert在英文文本和图书文本上进行了预训练[14],在通用文本
挖掘任务上产生了非常好的效果,但将Bert直接应用到一些特殊领域的文本挖掘任务会产生很多领域不适应的问题㊂如生物医学领域文本包含很多特定专有名词和术语(如BRCA1㊁抗菌剂㊁转录),在通用语料上训练得到的Bert并不能很好地理解和处理这种专业词汇㊂为了解决这类问题,在标准的Bert基础上加入大量的专业或领域相关的语料继续预训练能够有效地提升预训练语言模型在特殊领域的文本挖掘中的表现能力[24-26]㊂
本文归纳的预训练语言模型发展概况如图1所示㊂
图1 预训练语言模型发展概况
3 基于医学文本的预训练语言模型及对应的文本分类模型构建
本文选择BioBert[25]的预训练方式去训练医学文本的预训练语言模型,在标准Bert的基础上使用PubMed摘要和PubMed Central全文文献进行二次预训练㊂预训练任务既包括MLM,也包括NSP㊂使用这种预训练方式的优点在于既能保留原始Bert 学到的通用语言知识,又能学习到医学领域文本对应的语言知识㊂表1为训练预训练语言模型所使用的文本语料库,来自通用领域和生物医学领域,合计单词数213亿个㊂在二次预训练得到BioBert后,再使用文本分类的训练数据对整个模型进行微调分类训练,得到最终的文本分类器㊂整个建模流程如图2所示㊂在分类训练的预处理阶段,在每段文本之前会加入特殊标识符 [CLS]”㊂基于BioBert所使用的Transformer网络结构特性,通过BioBert预训练语
刘亦菲的男朋友是谁言模型编码后,特殊标识符 [CLS]”得到的向量值包含了该文本全部单词的语义和位置信息㊂本文把这个编码向量作为整个文本的表示向量㊂获得文本的表示向量后,再使用Softmax分类器[27]计算该文本属于每个类别的概率分布,并根据概率分布算出分类损失(Loss),最后根据损失进行反向传播,更新整个模型的参数㊂本文使用交叉熵损失函数计算分类损失,具体公式如下:
Loss=-∑M c=1y o,c log(p o,c)
式中,M代表所有文本分类的种类,p o,c代表分类器预测文本o为c类别的概率㊂当c类别为文本o的真实类别时,y o,c的值为1,其他情况下y o,c的值为0㊂
表1 用于预训练模型的文本语料库
小小呵语料库单词数/个所属领域
English Wikipedia25亿通用
BooksCorpus8亿通用
PubMed摘要45亿生物医学
PMC全文文献135亿
生物医学图2 医学预训练语言模型及对应的文本分类模型构建流程
4 实验步骤与结果
4.1 实验环境和模型网络具体参数海尔全自动洗衣机
本次实验在Linux环境下展开,深度学习平台为PyTorch[28],版本为1.2.0,实验时使用了3张Nvidia V100显卡来进行语言模型的预训练及对应的分类模型训练㊂因为是基于BERT进行的二次预训练,所以网络结构和BERT相同,同样为12层㊁12头㊁768隐藏单元大小,共包含1.1亿个可训练参数㊂Softmax分类器模型采用2层768隐藏单元大小的网络结构,并使用tanh作为隐藏层的激活函数㊂4.2 实验医学文本数据
通常情况下,针对文本挖掘相关模型中的文本数据,需要考虑模型在2个维度上的表现:一是句子级维度,用于考察模型在短文本挖掘(如商品评论㊁对话片段㊁摘要)上的表现;二是篇章级维度,用于考察模型在长文本(如新闻㊁病历报告)上的表现㊂本文设计了2组实验来验证模型在不同文本长度下的分类效果㊂
颜冠英第一组是医学论文摘要文本分类实验(句子级别,记为medical_abstraction):医学论文摘要的标注数据来自PubMed RCT[29]数据集㊂该数据集的作者标记了20000篇来自于PubMed上的生物医学文献摘要,并对这些文献摘要的每句话进行标注,标注该句话是属于摘要中的哪一目标部分(包括方法部分㊁背景部分㊁结果部分及总结部分)㊂实验数据中共包含了240587个句子,我们遵循了原文作者提供的
训练集㊁数据集及开发集分布㊂
第二组是病历报告文本分类实验(篇章级别,记为medical_transcription):病历的公开数据来自MTSAMPLES病历文本数据库(Https://⁃sample)㊂该数据库收集了4999条来自40个医学种类的病历数据㊂因为某些医学种类包含的数据极少,难以进行学习,所以对原始的4999条数据进行过滤处理,只保留病历数超过50的医学类别,经过筛选后共得到4597条数据,包含12个医学类别(如精神病科㊁新生儿科等)㊂
此外,本文将80%的数据用作训练集,10%的数据用作开发集,10%的数据用作测试集㊂实验数据如下:医学论文摘要的训练集样本量为180040条,开发集样本量为30212条,测试集样本量为30135条,平均每个样本包含单词22个;病历报告的训练集样本量为3677条,开发集样本量为459条,测试集样本量为460条,平均每个样本包含单词424个㊂
4.3 评价指标
本文使用了多种不同的评价指标对模型进行评价,包括每个类别的精准率(precision)㊁召回率(re⁃call)㊁F1值及模型整体的准确率(accuracy)㊂4.4 对比基准模型
为了验证本文提出的预训练模型的有效性,同时利用基于Word2Vec的分类模型和基于在通用文本上训练的Bert的分类模型对上述医学文本数据进行分类实验㊂
基于Word2Vec的分类器模型:采用之前研究中对生物医学文本分类最好的网络结构[30-31],即在Word2Vec的基础上使用卷积网络(CNN)[32]对文本进行二次编码,然后使用Softmax分类器进行分类㊂基于Bert的分类器模型:使用标准的Bert+Soft⁃max网络结构㊂网络结构与本文模型一致,但与本文不同的是,该模型没有利用大量医学文本进行二次预训练㊂
4.5 实验结果
江苏移动积分商城基于Word2Vec㊁Bert及BioBert的文本分类模型的各个类别的精准率㊁召回率及F1值如表2所示㊂通过对比各个模型的F1值,发现在短文本 医学论文摘要”分类实验中,BioBert模型的 结果”㊁ 背景”㊁ 方法”及 总结”的F1值均高于其他两个模型, 目标”的F1值稍低于Bert模型;在长文本 病历报告”分类实验中,BioBert模型的 心血管/肺病科”㊁ 骨科”㊁ 泌尿外科”㊁ 耳鼻喉科”㊁ 新生儿科”㊁ 胃肠科”㊁ 眼科”及 血液肿瘤科”的F1值高于其他两个模型,而Bert模型的 神经科”㊁ 妇产科”及 精神病科”的F1值最高㊂
3种模型的整体准确率如图3所示㊂BioBert模型的医学论文摘要和病历报告分类整体准确率分别为0.87和0.71,均高于其他两个基准模型㊂综上所述,无论从不同的评价方式(单个类别的分类效果㊁整体的分类效果),还是从不同的数据类型(长文本㊁短文本)看,在医学文本分类任务上,基于大量医学文本的预训练语言模型BioBert的效
发布评论