为了缓解医生书写风格的差异和术语表述多样性对医疗数据分析与应用的影响[1],临床诊断标准化任务应运而生.该任务旨在将不同的医疗实体名称(如同义词、缩写和别名等)映射到标准实体名称,从而解决实体歧义问题.医疗领域实体标准化的发展主要经历了基于规则的方法[2-5]、传统机器学习方法[6-7]和深度学习方法三个阶段,目前深度学习方法得到广泛应用.文献[8]通过分布式语义相似度计算得到文本语义相似度,再利用词典与汉字共同构建词向量提高准确率.文献[9]将生物医学实体标准化视为排名问题,根据建模得到的语义信息对候选词进行排名.文献[10]提出NormCo模型,利用词嵌入获取短语表示,并利用循环神经网络(RNN)将连贯的实体语义视为实体概念的共同序列.文献[11]提出组合语义相似度方法,依赖领域知识库结合分词、实体识别和词向量表示进行实体相似度计算.文献[12]使用具有注意力机制的对齐方式捕获原词与标准词之间的差异.尽管上述方法取得了一定的进展,但仍存在准确率不高的问题.本研究提出一种基于对比学习和预训练模型的临床诊断标准化方法:首先利用无监督和有监督共同训练的简单对比学习的句子嵌入(SimCSE)模型获取句向量,并据此计算余弦相似度得到候选词表;然后借助双向编码表征(BERT)分别完成召回结果的重排序和标准词个数分类任务;最后结合上述结果得到诊断原词对应的标准词.实验证明:对比该领域其他常见方法,基于对比学习和预训练模型的临床诊断标准化方法对预测效果有明显提升,并通过消融实验证明了该方法的合理性和有效性.1 临床诊断标准化方法当前此任务存在的难点如下.a.标准词库大:标准词数据规模大,致使计算相似度的效率受到一定限制.b.相关性差:诊断原词与标准词的字面词义和实际语义相关性不显著,导致同义关系计算困难.c.一对多:存在一个诊断原词对应多个标准词的情况,导致预测结果不准确.本研究提出以下策略:首先采用高效相似度算法计算诊断原词与标准词库中每个标准词的相似度,并召回相似度较高的标准词生成候选标准词表,缩小标准词范围;然后使用深度语义模型计算每个候选标准词与诊断原词的相似度,将与诊断原词语义更相似的候选标准词排在前面,完成重排序;同时将诊断原词作为输入,预测其对应的标准词数量k;最后根据标准词数量k,选取重排序后候选标准词表中得分最高的前k项作为标准词进行输出.图1所示为本研究的任务流程图.10.13245/j.hust.240133.F001图1任务流程图1.1 基于SimCSE的候选词表生成SimCSE采样方式如图2所示.本研究通过计算给定的诊断原词与标准词库中每个标准词的相似度,召回相似度最高的前n个标准词生成候选词表.共分为两步进行:首先利用无监督和有监督相结合的基于简单对比学习的句子嵌入(SimCSE)模型获得句向量表示模型;然后根据句向量表示模型得到诊断原词与标准词的句向量,计算其余弦相似度,并根据相似度得分对标准词进行召回得到候选词表.10.13245/j.hust.240133.F002图2基于SimCSE的医学数据采样方式当前热门的预训练语言模型生成句向量的方法常导致表达退化问题[13],即词嵌入退化且整体的空间分布为锥形,导致后续相似度计算不准确.SimCSE是解决此问题的有效方法[14].SimCSE是一种用于生成句子嵌入的对比学习[15]模型,通过对比学习的策略使负例之间的距离更远,使正例之间的距离更近,从而提高空间一致性,缓解表达退化问题.如图2(a)所示,无监督SimCSE将一个句子输入到模型中两次,利用dropout层得到两个不同的特征向量作为正例,将该句子的输出与同一个批(batch)内其他句子的输出作为负例.有监督Sim-CSE如图2(b)所示,通过负采样构造包含正负样本的(X,X+,X-)三元组完成样本构建,其中:X为数据本身;X+为正样本;X-为负样本.1.2 基于BERT的重排序在上一阶段,本研究利用SimCSE生成了候选词表,缩小了候选标准词的检索范围,然而此方法只能粗略找到与诊断原词较为相似的标准词,因此须设计重排序模块,利用深度语言模型对候选标准词进行更精细的排序.此过程基于BERT[16]实现.重排序具体方法如图3所示,图中“标签为0”和10.13245/j.hust.240133.F003图3基于BERT的重排序“标签为1”分别代表标签为0和1的概率.本研究将问题建模为诊断原词和候选标准词的二分类问题,将诊断原词与候选标准词作为正样本,并将原词与其他候选词作为负样本,将每个样本按照“[CLS]诊断原词[SEP]候选标准词[SEP]”形式拼接作为输入.利用BERT对输入数据进行二分类.标签0表示诊断原词与候选标准词语义不等价,1表示语义等价.取BERT输出后“[CLS]”位置的向量输入全连接神经网络,经过softmax层后输出,并根据标签1的概率进行降序排序.1.3 基于BERT的标准词个数分类本研究通过构建标准词个数分类模块解决诊断原词与标准词之间存在的一对多问题,并借助BERT模型预测每个诊断原词对应的标准词个数.基于BERT构建多类别分类模型,根据数据集中诊断原词与对应标准词的数量关系构建训练和测试数据,共设置三个类别,即0,1,2,分别表示标准词数量多于2个、数量为1个和数量为2个.2 实验结果与分析2.1 实验数据及实验环境本研究使用CHIP2020“临床术语标准化”评测任务(http://cips-chip.org.cn/2020/eval3)的数据集进行实验,原始数据共8 000条,每条数据包括诊断原词及其对应的标准词,其中标准词主要依据《国际疾病分类ICD-10北京临床版v601》词表标注得到.从8 000条数据中随机抽60%作训练集,20%作为验证集,20%作为测试集.数据示例如表1所示,标准词之间用“##”间隔.10.13245/j.hust.240133.T001表1数据示例诊断原词标准词左膝退变伴游离体膝骨关节病##膝关节游离体外阴上皮内瘤变外阴上皮内瘤样变为减少无关数据的影响,采取如下操作清洗数据:a.去除诊断原词中不必要的标点符号,如将“右中指感染异物残留?”中的符号去除;b.将罗马数字转化为阿拉伯数字,如将III改成3;c.将诊断原词中的全角标点符号改成半角标点符号.本研究在操作系统为Ubuntu18.04,显卡为2080ti,内存为512 GiB 的服务器上进行实验.2.2 实验结果2.2.1 基于SimCSE的候选词表生成本研究先对SimCSE进行无监督训练,再进行有监督训练.无监督SimCSE在构造样本的过程中,将一个相同的句子输入模型中两次,得到两个不同的特征向量当做正例,将同一个batch中其他句子的特征向量当做负例.损失函数为𝓁i=-logesim(hizi,hizi')/τ/∑j=1Nesim(hizi,hjzj')/τ,式中:z和z'为不同的dropout随机掩码;hizi和hizi'为相同句子经过不同随机掩码得到的向量;sim(hizi,hizi')为hizi和hizi'的余弦相似度;τ为温度超参数,τ=0.05.当有监督SimCSE在构造样本时,根据已有的标注数据集进行负采样,构造包含正负样本(X,X+,X-)的三元组.损失函数为𝓁i'=-logesim(hi,hi+)/τ∑j=1N(esim(hi,hj+)/τ+esim(hi,hj-)/τ) ,式中hj+和hj-为正负样本的特征向量.本研究采用RoBERTa[17]作为预训练模型先进行无监督SimCSE训练,再利用得到的模型参数对有监督SimCSE进行初始化并继续训练,无监督训练效果最佳时的dropout的比例为0.3,迭代3次,有监督效果最佳时的dropout的比例为0.3,迭代5次.为了对比不同方式获取的句子表征及不同相似度算法对于候选标准词生成效果的影响,设计杰卡德[18]、词频-逆文档频率[19]、CoSENT[20]和BERT-Whitening [21]这4种方法作对照进行效果比较.CoSENT是一种有监督训练句向量的方法,通过设计可排序、优化余弦值的损失函数提升文本语义相似度计算效率;BERT-Whitening通过传统数据挖掘中的白化操作对文本向量进行降维,将句向量的协方差矩阵转换为单位矩阵,加快检索的速度.召回率(R)是指模型正确判断出的正例占数据集中所有正例的比例.候选词表生成过程注重得到更多与标注相同的标准词,因此强调关于召回率的对比.验证集不同方法的召回效果见表2.10.13245/j.hust.240133.T002表2不同方法召回率对比方法前1前5前10前20杰卡德0.374 40.586 70.658 60.722 3词频-逆文档频率0.380 70.608 90.693 90.749 6BERT-Whitening+cosine0.390 70.596 20.674 00.741 3CoSENT+cosine0.442 60.657 30.731 90.788 8SimCSE+cosine0.495 50.746 90.812 30.867 6分析表2数据可知:与杰卡德、词频-逆文档频率等传统文本相似度算法相比,SimCSE的召回效果具有明显优势.相较于基于预训练模型的CoSENT模型和BERT-Whitening方法,SimCSE 的召回效果仍有突出表现.究其原因可知:SimCSE利用简单的数据增强方式构造样本,再用大量未标注的数据训练模型获得句子表示,更能学习到句子的特性,使两个句子间语义关联度的计算更清晰,证明了SimCSE处理医疗数据的有效性.SimCSE方法召回相似度最高的前20个标准词时召回效果达到了比较高的水平,本研究选取诊断原词的前20个候选标准词集合作为重排序的输入.2.2.2 基于BERT的重排序基于BERT模型对候选标准词进行重排序,在上一阶段召回的前20个标准词中选择10个未被标注的与诊断原词构建负例,其形式为(诊断原词,标准词,0).选取诊断原词及标注的标准词构造正例,其形式为(诊断原词,标准词,1),并将正样本进行过采样扩充至与负样本呈同等数量.构建示例见表3.10.13245/j.hust.240133.T003表3正负例示例类型示例正例(左膝退变伴游离体,膝骨关节病,1)(左膝退变伴游离体,膝关节游离体,1)负例(左膝退变伴游离体,脊柱骨关节病,0)(左膝退变伴游离体,腰椎退行性病变,0)首先对BERT模型进行参数调优,经过多次实验,得到最优参数为:学习率为5×10-5,批大小为32,迭代10轮.为验证其有效性,选取Albert[22],MacBERT[23]和LSTM作对照实验,将精确率(P)、召回率、F1得分(F1)和平均倒数排名(M)作为评价标准.F1为P和R的调和平均数.M能反映预测排名是否靠前,具体计算方式为M=1Q∑i=1Q1xi,式中:Q为查询集合;Q为查询集合大小;xi为第i个查询的最相关结果的排名.由表4结果可知:基于BERT的二分类模型在多个指标上都表现出更好的性能,表明基于BERT的分类模型能够一定程度缓解词语的多义问题.10.13245/j.hust.240133.T004表4重排序模型效果对比模型PRF1MBERT0.970 50.985 20.977 80.828 2LSTM0.852 20.832 90.842 40.762 3Albert0.894 90.890 30.892 60.785 5MacBERT0.950 10.941 70.945 90.801 42.2.3 基于BERT的标准词个数分类基于BERT的标准词个数分类模块将诊断原词对应的标准词数量作为标签,构造数据集进行训练,将数据集分为三类:标准词数量多于2个(用0表示);数量为1个(用1表示);数量为2个(用2表示).构建示例见表5,标准词间用 “##”分隔.10.13245/j.hust.240133.T005表5数据示例诊断原词标准词标签重度疼痛胰腺癌前列腺恶性肿瘤##癌##癌性疼痛0外阴上皮内瘤变外阴上皮内瘤样变1左膝退变伴游离体膝骨关节病##膝关节游离体2与重排序阶段类似,该阶段同样构建基于LSTM的模型作为对比,并分别对BERT模型和LSTM模型进行参数调优,得到BERT最优参数为:学习率为5×10-5,批大小为32,共迭代10轮.LSTM最优参数为:学习率为5×10-5,批大小为32,共迭代25轮.结果详见表6,表中“—”表示数据不适用.根据表6结果可知:两种方法当预测标签为2时的效果最好,其原因可能在于对应两个标准词的诊断原词中有明显的“与”、“和”等连接词,提升了预测的效果.当预测标签为0时的效果最差,其原因可能在于标签为0包含的数据类别多,导致精确预测每一类别的难度上升.同时,BERT模型对比LSTM模型来说,预测效果在各个标签以及整体上均有明显优势,BERT模型强大的语言表征能力使其能够较好地预测标准词的数量.10.13245/j.hust.240133.T006表6标准词个数分类模型效果对比模型预测标签F1BERT00.719 810.794 820.806 3LSTM00.612 410.633 320.683 7BERT整体模型—0.772 3LSTM整体模型—0.616 42.3 结果与分析上面对不同阶段进行了实验与分析,并列举了效果最优时的模型参数,本研究选取各阶段的最优模型共同完成临床诊断标准化任务.为验证各模块的重要性,将整体实验作为实验①,并按照以下策略设计三个对比实验.实验②:去除重排序和标准词个数分类,直接利用SimCSE模型计算文本余弦相似度召回候选标准词,并划定阈值进行输出.实验③:去除标准词个数分类,对重排序结果设定阈值进行输出.实验④:去除重排序,结合借助SimCSE模型计算文本余弦相似度召回的候选标准词与标准词个数分类模块进行输出.结果详见表7.10.13245/j.hust.240133.T007表7实验效果实验F1①SimCSE召回+重排序+标准词个数分类0.725 4②SimCSE召回+阈值0.553 6③SimCSE召回+重排序+阈值0.665 8④SimCSE召回+标准词个数分类0.574 6由表中数据可知:实验③的效果比实验②的效果好,证明了重排序模块的有效性;实验④的效果优于实验②的效果,证明标准词个数分类模块的必要性;实验①的效果最好,证明本方法的有效性.为了评估本方法的整体效果,与CHIP2020公布的基线方法进行对比分析.基线方法采用了召回、重排序和标准词个数预测策略.首先利用词频-逆文档频率和Dice相结合召回相似度最高的前200个标准词;接着根据召回结果进行重排序,并结合预测得到的标准词数量生成结果.将Albert和RoBERTa模型作对照实验,将P,R,F1和准确率(A)作为评价指标.结果详见表8.10.13245/j.hust.240133.T008表8整体效果对比实验模型PRF1AAlbert0.510 80.538 30.524 20.527 7RoBERTa0.579 20.595 50.587 20.566 2本方法0.731 60.719 30.725 40.701 9实验结果表明:本方法在多个评价指标上都取得了显著的提升,进一步证明了本方法在中文医疗数据集中进行临床诊断标准化的优越性.3 结语本研究提出的临床诊断标准化方法结合了对比学习与预训练语言模型,在相关数据集上取得了很好的效果.根据结合无监督和有监督两种训练方法得到的SimCSE模型获取句向量表示,采用了预训练模型更清晰地学习句子的深层含义,相较于传统的获取句子表征方式及相似度算法有很大提升.在召回效果方面有更好的表现,表明了通过对比学习进行句子嵌入计算临床诊断语义相似度的有效性.将重排序任务和标准词个数分类任务分别抽象为二分类和多类别分类问题,通过BERT构建相关任务模型得到很好的解决.本研究提出的方法在CHIP2020临床术语标准化评测任务数据集上的F1值达到72.54%,并通过多个对比实验证明了模型架构设计的合理性与有效性.

使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,

确定继续浏览么?

复制成功,请在其他浏览器进行阅读