深度生成式模型在临床术语标准化中的应用

2021-06-10 07:20闫璟辉
中文信息学报 2021年5期
关键词:词库原词类别

闫璟辉,向 露,周 玉,孙 建,陈 思,薛 晨

(1. 北京交通大学 计算机与信息技术学院 交通数据分析与挖掘北京市重点实验室,北京 100044;2. 中国科学院 自动化研究所 模式识别国家重点实验室,北京 100190;3. 北京中科凡语科技有限公司,北京 100080;4. 凡语AI研究院,北京100080;5. 中国科学院大学 人工智能学院,北京 100049)

0 引言

命名实体规范化(named entity normalization),也称为实体链接,是自然语言处理的基本任务之一。临床术语标准化任务是典型的医学领域命名实体规范化问题,其目的是将已识别的医学术语无歧义地正确指向医学知识库目标实体的过程。临床术语标准化任务是医学统计中不可或缺的一项任务。临床上,关于同一种诊断、手术、药品、检查、化验、症状等往往会有成百上千种不同的写法。标准化(归一)要解决的问题就是为临床上各种不同说法找到对应的标准说法。有了术语标准化的基础,研究人员才可对电子病历进行后续的统计分析。本质上,临床术语标准化任务也是语义相似度匹配任务的一种。

CHIP2019评测由临床术语标准化任务、平安医疗科技疾病问答迁移学习任务、临床实验筛选标准短文本分类任务三个任务组成。北京中科凡语科技有限公司下属凡医团队参加了临床术语标准化任务。本次评测任务的主要目标是针对中文电子病历中挖掘出的真实手术实体进行语义标准化。 给定一个手术原词,要求给出其对应的手术标准词。所有手术原词均来自于真实医疗数据,并以《ICD9-2017协和临床版》 手术词表为标准进行了标注。由于原词表述方式过于多样,使用缩略语和习语的情况多有发生,本文分析了CHIP2019的术语标准化训练语料,总结出对其进行标准化所要解决的四类主要问题,如表1所示,分别为①“信息冗余”问题: 原词对一些部位、手术细节等进行了细致描述,而这些信息在其对应标准词上并没有体现; ②“信息简略”问题: 原词省略了一些已经约定成俗的信息,但这些信息在其对应的标准词上需要被完整叙述出来; ③“一对多”问题: 原词作为一个整体有可能包含多个标准词的信息,因此应该被标准化为多个标准词; ④“多对一”问题: 包含多种术式信息的原词不一定对应相同数量的标准词。针对上述四类问题,医疗领域传统的做法是依赖人工制定的词法变换规则[1-2]或浅层的机器学习方法[3-5],例如,利用Tf-IDF(词频-逆文档频率)将实体表征为稀疏向量,然后再去进行相似度计算[4]。这种基于规则或特征工程的浅层机器学习方法在应用于一些结构较简单的名词类的实体标准化(药品、疾病等)有不错的效果,然而对于临床术语这种书写自由化高、结构复杂的类型,人工制定规则模板费时费力且很难覆盖所有情况,例如,表1中的“信息冗余”和“多对一”问题,浅层的特征学习很难将原词的语义正确表征。 此外,《ICD9-2017协和临床版》 手术词表共有标准词9 867个,将给定的原词直接与标准词库中的每一个词进行语义相似度计算的方式势必会带来噪声词多、计算量大等问题。通常的做法是“筛选—比较”法[6],即首先通过一些规则模板和文本相似度的算法对标准词库进行一次初步的筛选,将标准词库中和原词的词形相似度高的词纳入语义相似度计算候选集。这样的预筛选方式可以有效缩减候选集的范围,然而这种仅靠文本相似度的筛选方式对于“信息简略”和“一对多”的情况则很难正确进行候选集筛选。

表1 临床术语标准化面临问题

经观察,《ICD9-2017协和临床版》 手术词表对每一个标准词都进行了三级类别划分,如图1所示,同类别下标准词具有共同语义场景特征,例如,图中“胃切开取石术”和“胃切开异物取出术”同隶属二级类别“43.0”,则它们具有共同的场景语义“胃切开术”,我们称之为二级核心语义;同时“胃切开异物取出术”和“幽门肌切开术”同隶属于一级类别“43”,则它们具有共同的场景语义“胃切开术和切除术”,我们称之为一级核心语义。每一个待标准化原词都可能包含标准词库中的一个或多个核心语义的信息,而找到原词中这些核心语义的信息,就可以根据其在标准词库中所对应的标签大幅缩小候选集的选择范围。

图1 《ICD9-2017协和临床版》手术词表

此外,由于临床术语的书写方式自由且很难通过文本特征判断出待标准化原词应该对应的标准词数量。如表1中的待标准化原词“亲体肾移植术”,其同时包含了标准词库中“00”类的“操作和介入NEC”场景语义和“55”类的“肾手术”场景语义,因此其正确对应的标准词应该为两类标准词的合并形式: “肾异体移植术##与供者有血缘关系的活体移植”,分隔符“##”两端的标准词类别分别对应上述的“00”和“55”。而对于表1中的待标准化原词“(输尿管(或尿道)镜右侧)输尿管镜下取石术+输尿管镜下钬激光碎石术”,虽然原词中包含有强文本特征 “+”,但由于“+”左右两边所描述的内容对应的是同一个操作的两个子部分,此原词中并不承担分割符的作用,因而原词对应的标准词只有“经尿道输尿管/肾盂激光碎石取石术”。

综上所述,我们对原词中所包含的核心语义信息进行建模,运用深度生成式模型来获取原词中所包含的核心语义信息,并且通过对原词和标准词库中的词来学习文本和语义的双重相似性。本文首先采用一个端到端的生成网络Transformer[7]训练一个从待标准化原词到伪标准词以及其所属的一级类别标签的类翻译模型,从而同时生成原词中所包含的核心语义的类别标签以及一个伪标准词,然后通过类别标签和伪标准词与标准词之间的文本相似度对标准词库进行候选集的筛选,最后通过基于BERT(bidirectional encoder representations from transformers)[8]的预训练模型对原词和候选集的语义相似度重排序,获得最终标准词。

本文的贡献是: ①提出了一个新的基于Transformer的针对临床术语的核心语义提取方法,可以在保持较高的召回率的同时有效缩小候选集的大小。②在CHIP2019数据集上取得了优秀的性能,验证了该方法的有效性。

本文的组织结构安排如下,第1节介绍相关工作,第2节对我们所采用的临床术语标准化系统框架中各个模块进行介绍,第3节介绍我们所使用的数据以及对数据的处理方式,并对各部分的性能做了比较和分析。

1 相关工作

1.1 医学术语标准化

在医学领域,大多数实体规范化研究都使用了领域内的知识库和词典,将它们列入标准实体的范围。传统的方式是将医学领域的实体规范化作为句子对分类任务进行处理[6,9-11]。Leaman等人[9]首次提出了一种成对学习排序技术,该技术采用矢量空间模型来计算非标准化医学实体和标准化医学实体两者的文本相似度。其他研究者还提出使用深度神经网络对医学实体进行规范化。Limsopatham[10]以及Li的团队[6]采用卷积神经网络(CNN)和递归神经网络(RNN)来计算待标准化实体与知识库中的候选实体之间的深度语义匹配度。Luo等人[12]提出一个多任务框架,可以对疾病和手术操作类实体进行规范化,多任务共享结构使模型能够利用疾病和手术操作之间的医学相关性,更好地执行消岐任务。Ji等人[11]通过微调的预训练BERT模型来实现实体规范化。

1.2 Transformer

Transformer 是一种基于端到端(sequence-to-sequence)结构的生成式模型。该模型由Vaswani提出[7],在多个翻译任务上达到当前最优效果。模型采用的是编码器—解码器的模型框架,和以往基于RNN的生成式模型不同之处在于,该模型完全基于注意力机制实现。其中,编码器的每个层块包含两个子模块,分别是多头自注意力模块(multi-head attention)和一个全连接前馈神经网络。解码器的每个层块由三个子模块构成,除了编码器中的两个模块外,在这两个模块之间另外加入了一个与编码器输出层相连的多头注意力模块,用于关注源端的信息,使模型能够更大程度地关注到不同位置不同表示子空间的特征信息。

1.3 BERT

BERT是一种预训练语言模型,其利用双向注意力机制和大规模的无监督语料库来获得句子中每个单词的上下文表示信息。BERT在多种自然语言处理(NLP)任务上取得了最优的研究成果。BERT的基本结构包括自注意编码器和下游任务层。

2 系统介绍

不同于传统的“筛选—比较”方法中直接利用原词对标准词库中所有词进行遍历筛选的方式,本文提出“生成—筛选—比较”的方式,如图2所示,我们的系统总共分为三个步骤: ①核心语义生成,即利用生成式模型Transformer生成原词所对应的标准词的一级类别标签以及伪标准词文本; ②候选集生成,我们分两步生成候选集,首先通过类别标签选取类别下所有标准词作为候选集1,再通过文本相似度算法LCS[13]对候选集1中的候选词做进一步的筛选,生成候选集2; ③基于语义相似度的重排序,通过预训练的BERT对候选集2进行基于语义相似度的排序,生成最终的标准词。下面我们将对系统的各个模块进行介绍。

图2 临床术语标准化系统流程图

2.1 核心语义生成

我们将原词核心语义信息的生成类比成源端语言到目标端语言的翻译任务。和标准的源语言到目标语言的翻译任务不同的是,术语标准化任务要求生成的目标端结果必须能够和标准词库中的一个或多个候选词严格对应。而通过端到端翻译模型生成的目标端结果虽然在一定程度上和标准词近似,但不能确保完全匹配,我们称之为“伪标准词”。这些生成的伪标准词需要和候选词进行进一步的相似度计算才能最终确定其在标准词库中所对应的标准词。同时,为了生成后续的相似度计算候选集,需要确定所生成的每一个伪标准词所对应的核心语义(这里取一级核心语义,即所对应标准词库中的类别标签)。因此,在采用Transformer生成“伪标准词”的同时,我们还利用Transformer生成其类别标签,如图3所示,采用先生成类别标签再生成伪标准词的顺序,让翻译模型的解码端依次生成原词所包含的所有核心语义信息。

图3 模型的decoder端示例

同时生成语义标签和伪标准词的方式有三点优势: 第一,生成结果中的伪标准词虽然和原词对应的标准词存在一定的翻译误差,但是其文本结构相较于原词而言会更符合标准词的文法结构(如缩写词的对应关系),可以用来对候选集进行字词层面的筛选;第二,生成结果中的类别标签可以直接唯一确定标准词在标准词库中所在的范围,从而缩小候选集的大小;第三,以类别标签为分割符的伪标准词个数可以间接确定原词所需要对应的标准词数目。

2.2 候选集合生成

根据模型生成的类别标签可以将标准词的选择范围限制在其类别之内,但是考虑到训练数据对《ICD9-2017协和临床版》 手术词表中所有类别的覆盖情况,这里模型只对标准词的一级标签进行输出,而经统计,平均每个一级标签下有98个候选标准词。对于后续的语义相似度排序算法来说,若待排序的候选词过多,则会带来噪声多、时间成本高等问题。因此,本文采用基于字词结构的相似度算法对通过类别标签所筛选的候选集进行进一步的筛选。

对于本系统而言,由2.1节可知,由于模型所生成的伪标准词需要和候选词进行进一步的相似度计算才能最终确定其在标准词库中所对应的标准词,如图4所示。这里首先利用结果中生成的类别标签来筛选出标准词库中对应的同种类别下的候选词,构成相似度计算的候选集1。然后通过翻译结果中的伪标准词来和候选集1中的每个候选词进行相似度计算,保留相似度最高得分的N个(由于可能存在同分情况,这里的N≥1)形成候选集2。

图4 基于翻译模型的候选集筛选

本文采用最长公共子串(longest common subsequence,LCS)算法来对候选集进行筛选。

图5 算法1

2.3 基于语义相似度的候选集排序

由于通过类别标签挑选出的同类别下的标准词词形大体相似,而LCS算法只考虑了词形上的相似关系,因此即便只取最高相似度得分也会筛选出具有相同得分的候选词。本节介绍如何对原词和候选词进行语义层面的相似度计算。

本文采用中文预训练的BERT模型对原词和候选词进行语义表示。如图6所示,输入为“[SEP]”分隔的字符串,取第一位隐层原词和候选词以字符为单位并按标识符单元“[CLS]”的输出,经过非线性变化映射到一个固定维度的向量v作为“原词—候选词”的语义表示,并和可训练权重矩阵W∈Rn×k进行相乘,如式(1)所示。

图6 基于BERT的语义相似度计算模型

(1)

其中,n是输出的固定维度,k是标签的数量,这里令k=2,标签label分为两种,即“语义相关”和“语义无关” 。

我们采用交叉熵损失对模型进行优化学习。

如图7所示,使用BERT语义相似度模型对候

图7 语义相似度排序部分流程图

选集中所有词进行语义相似度打分后,按得分从高到低依次排序。同时,按照翻译模型生成的伪标准词数量作为原词应该对应的最终标准词的数量,将排序结果由高至低进行截取,将截取后的候选词进行合并得到最终标准词。

3 实验与结果

3.1 数据处理

考虑到训练数据所包含的4 000条“原词—标准词”数据并不能将标准词库中所有类别覆盖,并且存在部分原词和标准词的词形十分近似或完全一致的问题,我们将标准词库《ICD9-2017协和临床版》手术词表中共9 867个标准词按照2.1节中的翻译模型训练数据进行格式转换,示例如图8所示。

图8 模型训练数据格式转换示例

之后将所有转换格式后的数据作为额外的训练数据和原训练文件的4 000条数据进行合并,共构成13 867条训练数据。

3.1.2 基于分词数据模型构建

为了集成不同文本粒度的翻译模型,如字到字、词到词、字到词,我们在现有分词系统的基础上,通过人工总结出相关构词元素,如“部位”“操作手段”“术式”等,将这些元素分别构成词库并对原词进行分词操作。基于构造的分词系统,可以分别构造出如图9所示的三种训练数据。

图9 不同粒度训练数据示例

基于构建的三种不同文本粒度训练数据,我们分别训练了三个Transformer的翻译模型。如图10所示,使用字到字模型生成的类别标签对标准词库进行筛选,取同类别下所有标准词构成候选集1,然后将三个模型生成的伪标准词分别应用2.2节中的算法1,得到各自的候选集,最后将生成的候选集取并集。

图10 不同文本粒度翻译模型筛选候选集

3.1.3 语义相似度训练数据构建

取原训练集的4 000条数据的原词,对于每一个原词,通过其对应的标准词找到其在标准词库所对应的一级类别,采用相似度算法LCS对同类别下的每一个标准词进行相似度计算,取相似度前10作为训练数据,并使正负例比例为1∶10。

3.2 模型设置

本次评测系统所使用的翻译模型和语义相似度计算模型分别在开源项目Transformer(1)https://github.com/Kyubyong/Transformer和BERT(2)https://github.com/google-research/bert上进行修改,实验设置情况如下:

展望2019年上半年,游戏板块仍将大概率受到行业发展环境中的消极因素影响。一方面,经济增速与消费活力的恢复情况仍需观望;另一方面,文娱内容监管政策趋紧已不可逆,行业需要时间进行调整和适应。但游戏板块最艰难的时刻正在过去,板块估值已基本消化了大部分利空因素,行业变革中脱颖而出的佼佼者能够为板块带来新的活力,而中小游戏厂商也有可能依靠单一创新产品呈现惊人的爆发力。

(1)Transformer: 每个模型使用1块GPU进行训练,batch大小设为128,轮数epochs设为150,词向量的维度为512,隐层状态维度为2 048,编码器与解码器均为6层,多头自注意力机制使用8个头。dropout设为0.3,我们使用Adam梯度优化算法,初始学习率为0.000 3,warmup设为4 000。训练语料采用2.2节所述方式进行构建,选取的字到字、词到词和字到词的词表大小分别为1 550、4 215和4 326,源端和目标端共享词表。

(2)BERT: 在Google发布的中文预训练模型BERT-Base(3)https://github.com/google-research/bert/blob/master/multilingual.md基础上进行微调,数据采用2.3节所述方式进行构建,batch大小设为32,训练轮数epoch设为30,输入序列最大值为100,初始学习率为0.000 05,其余保持默认参数。

3.3 实验结果

本次评测所使用的指标,如式(2)所示。

(2)

其中,res为模型对当前原词所给出的标准词集合,ref为正确的标准词集合。|res|和|ref|分别为上述两个集合的大小。

表2是本次评测所提交模型的最终结果,该结果使用的测试集为评测方提供的2 000条数据。在测试集中测得准确率为91.3417%。

表2 基本模块评测结果

3.4 实验分析

本小节我们将针对上文提及的方法和策略对于标准化质量的影响分别加以分析。和3.3节中评测指标不同,实验分析部分采用的评测指标采用严格相似度计算,即要求模型输出结果和标准答案完全一致则记1分,否则记0分。这里的实验结果为开发集上的结果,开发集由评测方发布,共1 000条标注数据。

3.4.1 基本模块分析

在开发集上的实验结果如表2所示,baseline使用LCS相似度算法,令每个待标准化原词都和标准词库中所有词进行相似度比对,取相似度最高者作为标准化结果。“+Transformer”为单独使用Transformer(字到字)对原词到标准调进行直接翻译,翻译结果作为标准化结果。“+code”为3.1节中将标准词库数据添加至训练集共同训练的Transformer结果。“+LCS”为2.3节中基于LCS打分的候选集生成后直接选取最高得分候选词作为标准化结果输出。“+BERT”为对2.3节所构建的候选集再进行基于BERT的语义打分结果。

从上述实验结果可以看出,翻译模型的使用、训练数据扩充、语义相似度比较对标准词准确率的提升均有一定的帮助。其中加入翻译模型的方法对效果有显著提升,证明了该方法的有效性。

3.4.2 基于不同粒度的翻译模型效果分析

我们发现,基于字到字的翻译模型对伪标准词的直接翻译准确率要高于基于词到词的翻译模型,结果如表3所示。

表3 不同文本粒度的翻译模型效果

对于生成的类别标签和伪标准词数目的准确度来说,字到字和字到词模型的效果相差不大,词到词模型在类别标签生成准确度上比前两个模型低下约两个百分点左右。而对于伪标准词的直接翻译准确度而言,字到字模型的准确度则完全高过后两个模型,比词到词模型的准确率高接近4个百分点。我们分析主要有两点原因: 首先由于训练数据不够充分,分词之后的一些低频词在训练过程中没有被模型很好地学习到特征;其次,由于数据领域专业性强,分词系统并不能很好地对专业术语进行切分。尽管三个模型的生成效果差别大,但是经测试,三个模型所生成的伪标准词的并集对正确标准词的召回率可以达到90.9%,即说明不同模型之间生成的结果存在一定的互补性。

3.4.3 不同候选集生成的策略分析

除了2.2节中所使用的LCS相似度计算方式,我们还测试了多种不同的方法来生成候选集,其各自对标准词的召回率如表4所示。

表4 不同相似度算法对候选集的标准词召回率结果

续表

其中embeddingcos方式为利用Glove(4)https://github.com/stanfordnlp/GloVe模型将候选词和生成的伪标准词转换为向量表示,然后通过向量之间的余弦相似度进行比对。committeeVote方式将上述所有方式构成一个委员会,通过投票的机制决定候选集。可以看出,纵向对比上述的几种相似度筛选方式,在召回率上差别不明显,横向对比,当取相似度前10的候选词加入候选集后,标准词的召回率明显提升,改为取前20的候选词之后召回率并未明显提升。

针对候选词数目选择问题,我们以LCS相似度算法为基准,生成不同的候选集后交由BERT模型进行语义相似度排序,最终的准确率结果如表5所示。

表5 基于LCS算法的不同候选集选择策略下的标准化的准确率

可以看出,虽然取top10和top20的候选词数目可以明显提升标准词的召回率,但是通过BERT语义相似度重排序后得到的结果却出现了明显下降,我们分析这是由于过大的候选集会不可避免地带来更多的噪声,从而对语义相似度模型的排序造成干扰。而只取最高相似度得分的策略虽然在最终结果上达到89%的准确率,但是由于其标准词的召回率只有91.6%(表4),其准确率的上限并不高。因此,如何在提高标准词的召回率的基础上提升语义相似度排序的准确率是一个值得研究的问题。

猜你喜欢
词库原词类别
一“吃”多用
三姐妹
输入法词库乾坤大挪移
当成语中的“心”变成“薪”
词库音系学的几个理论问题刍议
服务类别
说“长”道“短”
论类别股东会
中医类别全科医师培养模式的探讨
聚合酶链式反应快速鉴别5种常见肉类别