1.基于对比学习的疾病分类ICD自动编码方法,其特征在于,该方法是通过构建数据预处理模块并训练由正负样例生成及选择模块、逐标签对比学习注意力模块、预测模块组成的ICD自动编码模型,以此关注ICD编码之间的相互关系以及ICD编码与电子病历文本的语义信息表示之间的相互作用,并提高模型对医疗术语不同表述的识别能力以及提高模型对相似概念文本的区分能力,以达到为电子病历文本更精准地分配ICD编码的目标,具体如下:S1、构建ICD自动编码模型训练数据集:将患者电子病历文本中出院小结部分与其ICD编码关联在一起构成ICD自动编码训练数据集;
S2、构建ICD自动编码模型:由S201正负样例生成及选择模块、S202逐标签对比学习注意力模块、S203预测模块共同组成;
S3、训练ICD自动编码模型:在S1构建的ICD自动编码训练数据集上,对S2构建的ICD自动编码模型进行训练;
所述的ICD自动编码模型进行训练并优化,具体如下:
通过一定权重而结合两种损失函数,进行模型的优化;首先通过将S203中预测与真实标签计算二元交叉熵损失函数,其次计算基于外部知识的困难对比学习损失函数,将两者按照权重比例1:λ进行加权求和,作为最终损失函数;利用该损失函数,在S1所构建的ICD自动编码模型训练数据集上,对S2所构建的ICD自动编码模型进行优化训练;本方法模型尚未充分训练时,需要在训练数据集上进行训练,以优化模型参数;当模型训练完毕时,模型可以为输入的电子病历文本预测对应的ICD编码;
S301、计算二元交叉熵损失函数:将S203输出的长度为|L|的预测ICD编码的onehot向量与电子病历所对应的正确ICD编码的onehot向量计算二元交叉熵损失,公式如下:其中|L|代表在ICD自动编码模型训练数据集中出现的ICD编码的总个数, 代表ICD自动编码模型对于长度为|L|的onehot向量中第j个位置上预测的结果,属于{0,1},yj代表在电子病历所对应的正确ICD编码的onehot向量在第j个编码上的结果,属于{0,1},θ为模型在预测时选择的阈值,是一个超参数;
S302、构建总的损失函数:包含两个部分,分别为S301中计算的二元交叉熵损失函数、S202得到基于外部知识的困难对比学习的损失;并将两者按照1:λ的权重进行相加,具体公式如下:θ为模型在预测时选择的阈值,是一个超参数;λ是人工设定的超参数;
(3)、优化模型训练:使用Adamw为优化算法,学习率设置为0.001,在ICD自动编码模型训练数据集中进行优化训练。
2.根据权利要求1所述的基于对比学习的疾病分类ICD自动编码方法,其特征在于构建数据处理模块,具体过程如下:S1、构建ICD自动编码模型训练数据集,对电子病历进行处理,将每个患者的电子病历文本中出院小结部分与其ICD编码关联在一起构成一条训练数据;如果一条电子病历对应多种疾病,则该训练数据将被分配多个ICD编码;最终将所有的训练数据汇聚得到ICD自动编码模型训练数据集,具体如下:S101、构建电子病历文本:在电子病历数据库中,选择属性为住院小结的电子病历作为电子病历数据来源;
S102、为电子病历文本分配ICD编码:根据电子病历数据,将每个患者的电子病历文本中出院小结部分与其ICD编码关联在一起构成一条训练数据;如果一条电子病历对应多种疾病,则该训练数据将被分配多个ICD编码;将所有的训练数据汇聚得到ICD自动编码模型训练数据集。
3.根据权利要求1所述的基于对比学习的疾病分类ICD自动编码方法,其特征在于,构建正负样例生成及选择模块,具体实现流程如下:S201、构建正负样例生成及选择模块:正负样例生成及选择模块包含两个部分,一个为正负样例生成器,一个为正负样例选择器;正负样例生成器用来构造正负样例候选集,即为S1中ICD自动编码模型训练数据集中每个ICD编码分配其所有的正负样例,作为正负样例候选集;正负样例选择器用来对正负样例生成器所生成的正负样例候选集按照一定的规则选择适合的正负样例,从而使得模型能够更好地进行对比学习;
S20101、构建正负样例生成器:构建正负样例候选集,即为S102中的ICD自动编码模型训练数据集中每个ICD编码分配其所有的正负样例,并保存为字典格式作为正负样例候选集,具体如下:S2010101、构建正样例生成器:引入外部知识UMLS数据库,借助UMLS数据库的统一概念关系,为ICD编码构建相应的正样例候选集;
S2010102、构建负样例生成器:利用ICD编码的层级关系,构建ICD编码层级关系图;利用ICD编码在层级关系图中兄弟节点的概念文本,构建负样例候选集;
S20102、构建正负样例选择器:对S20101中正负样例生成器中构建的正负样例候选集进行选择,并获得最终的正负样例,具体如下:S2010201、构建正样例选择器:对S2010101中正样例生成器所生成的正样例候选集进行处理,首先对正样例候选集中每条正样例候选文本进行处理,去除其中特殊的标点符号并将对应的ICD编码的所有正样例文本进行拼接,作为最终的正样例;
S2010202、构建负样例选择器:对S2010102中构建的负样例生成器所生成的负样例候选集进行数据清洗,并在清理完成后的负样例候选集中随机进行负样例的选择。
4.根据权利要求1所述的基于对比学习的疾病分类ICD自动编码方法,其特征在于构建逐标签对比学习注意力模块:S202、构建逐标签对比学习注意力模块:逐标签注意力模块有四个部分组成,分别为嵌入层、BiLSTM、逐标签注意力、基于外部知识的困难对比学习;其中嵌入层部分首先使用预训练的Word2Vec用来对S2中正负样例的文本以及S1中电子病历文本进行字符嵌入,随后送入Embedding层中来获得其各自的浅层语义表示;随后分别将其送入BiLSTM中以分别捕获两者的语义信息表示;随后进一步以逐标签注意力方式,将电子病历文本的语义信息表示映射到ICD编码维度,得到特定于ICD编码的语义向量,其每一行分别代表电子病历文本为特定的ICD编码而学习到的表示;为了更好地学习ICD编码之间的相互关系以及ICD编码与电子病历文本语义信息之间的交互作用,引入基于外部知识的困难对比学习,旨在提高模型对医疗术语不同表述的识别能力以及对相似概念文本的区分能力;
S20201、构建嵌入层:首先使用预训练好的Word2Vec对S1构建完成的ICD自动编码模型训练数据集中的电子病历文本进行字符嵌入,并对S2010201与S2010202中的正负样例文本进行字符嵌入;将上述字符嵌入作为初始化向量送入到Embedding中进行编码,从而获得各自的浅层语义表示,具体如下:假设电子病历文本D由n个单词组成,表示为D=w1,w2,...,wn,将wi∈1:n送入到Word2Vec中进行字符嵌入,并作为Embedding层的初始化向量送入到Embedding层中进行编码,得到电子病历的浅层语义表示为: 类似的,对于正负样例S、 分别得到其对应的浅层语义表示分别为:S、S20202、使用BiLSTM获得双向语义信息:将S20201中输出的电子病历文本的浅层语义表示与正负样例浅层语义表示送入双向LSTM层中,分别捕获两者的语义信息表示,具体如下:将电子病历的浅层语义表示D送入到BiLSTM模块中学习其上下文信息及其语义关系作为最终的语义信息表示HD;类似的,对于正负样例浅层语义表示S、送入到同一BiLSTM中进行学习,最终分别获得其语义信息表示为HS、S20203、使用逐标签注意力将电子病历文本的语义信息表示映射到ICD编码维度:目标是将S20202中电子病历的语义信息表示HD映射为特定于ICD编码的语义向量,其每一行分别代表电子病历文本为特定ICD编码而学习到的表示;
S2020301、计算特定于ICD编码的权重矩阵:将电子病历的语义信息表示HD作为输入,转换为|L|维的向量|L|即特定于ICD编码的语义向量作为输出,其中|L|表示在ICD自动编码模型训练数据集中出现的ICD编码的总数量;对电子病历文本的语义信息表示中每个位置与特定ICD编码之间的注意力权重进行计算,公式如下:Z=tanh(WHD)
A=Softmax(UZ)
其中 上述维度中da是一个人工设置的超参数,u为步骤S20202构建的BiLSTM模块的隐藏层维度,因其采用的BiLSTM来捕获语义信息表示,因此最终的维度为2u,U是一个可训练的矩阵,其维度为 矩阵Z和矩阵U相乘,计算特定于ICD编码的权重矩|L|×n阵,最终A的维度如下:A∈R ;对于矩阵A来说,第i行代表的是关于|L|中第i个编码的权重向量,因此在行级上应用Softmax用来保证每行的权值之和是1;其中Softmax是一种激活函数,可以将一个数值向量归一化为一个概率分布向量,且各个概率之和为1;其中tanh是一种激活函数,可以将数值向量变为[‑1,1],被用来提高模型收敛速度;
S2020302、计算电子病历文本语义信息表示HD的特定于ICD编码的语义向量:将电子病历文本语义信息表示HD和S2020301中获得的特定于ICD编码的权重矩阵A作为输入,将两者相乘得到特定于ICD编码的语义向量作为输出;公式如下:T
V=HDA
2u×|L|
其中矩阵V的含义为:第i列代表的是在|L|中的第i个编码的表示,V∈R ;
S20204、构建基于外部知识的困难对比学习:构建对比学习损失函数,将S201构建完成的正负样例语义信息表示与电子病历文本语义信息表示进行汇聚,表示为并送入基于外部知识的困难对比学习模块中;将基于外部知识的困难对比学习的损失函数定义如下:
其中HD、HS代表含义已经在S20202中进行解释,此处不再进行赘述; 代表第i个负样例文本所对应的语义信息表示,负样例的个数取决于训练ICD自动编码模型时选择的负样例的数量,是个超参数;τ代表的是温度超参数;sim(HD,HS)用来计算电子病历文本的语义信息表示HD与正样例文本的语义信息表示HS之间的余弦相似度,具体计算公式如下:与上述余弦相似度计算方式相同,其公式为:
其中,符号的含义已在此之前进行解释,在此不再赘述。
5.根据权利要求1所述的基于对比学习的疾病分类ICD自动编码方法,其特征在于,构建预测模块,具体如下:S203、构建预测模块:预测模块为每一个ICD编码分别训练一个分类器,进行ICD编码的预测;接收逐标签对比学习注意力模块中学习到的特定于ICD编码的语义向量,将其每一行通过sigmoid函数,并设置固定阈值,而进行ICD编码的预测;
将S20203中得到的特定于ICD编码的语义向量V,在行级上应用sigmoid,得到最终的预测V,通过固定阈值0.5将V转换为长度为|L|的onehot向量,通过存储的标签‑位置字典,将上述onehot向量映射为ICD编码作为最终的预测。
6.一种基于对比学习的疾病分类ICD自动编码装置,用于实现权利要求1至5任一项所述的基于对比学习的疾病分类ICD自动编码方法,其特征在于,所述装置包括,ICD自动编码模型训练数据集构建单元,用来预处理原始数据集,从而构建训练数据;
ICD编码模型构建单元,用来构建ICD编码模型,其中包括两个部分,首先包含正负样例生成及选择模块,通过使用训练样本所对应的ICD编码的层级结构以及上述ICD编码的外部知识,为每条训练样本构建正负样例使其进行对比学习;其次包含逐标签对比学习注意力单元及预测模块,用来构建嵌入层、BiLSTM、逐标签注意力、基于外部知识的困难对比学习;
最终将逐标签注意力模块输出的特定于ICD编码的语义向量送入到预测模块中,在行级上应用sigmoid,并设置固定阈值进行预测;
ICD自动编码模型训练单元,用来构建模型训练过程中所需的损失函数及优化函数,并最终完成模型的训练及优化。
7.根据权利要求6所述的基于对比学习的疾病分类ICD自动编码装置,其特征在于,所述模型训练单元包括,损失函数构建模块,用于使用二元交叉熵损失函数计算预测结果与真实数据的误差以及使用基于外部知识的困难对比学习损失函数计算样例与正负样例之间的误差;
优化函数构建模块,用于训练并调整模型训练中的参数,减小预测误差。
8.一种电子设备,其特征在于,包括:存储器和至少一个处理器;
其中,所述存储器上存储有计算机程序;
所述至少一个处理器执行所述存储器存储的计算机程序,使得所述至少一个处理器执行如权利要求1至5任一项所述的基于对比学习的疾病分类ICD自动编码方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序可被处理器执行以实现如权利要求1至5中任一项所述的基于对比学习的疾病分类ICD自动编码方法。