本发明涉及数据处理,具体涉及一种应用于医疗文本的疾病分类多任务学习方法。
背景技术:
1、国际疾病分类(international classification of diseases,icd),是who制定的国际统一的疾病分类方法,它根据疾病的病因、病理、临床表现和解剖位置等特性,将疾病分门别类,使其成为一个有序的组合。在其数百年的发展历史中已经经历了11个版本的迭代,目前主流的应用版本为icd-10,各国通常会对who发布的icd版本进行细化、增删补改,并形成适应各国实际工作需要的“临床修订版”或“国家版本”。虽然联合国成员有使用icd最新版本的义务,但在各个版本迭代和本地化过程中,如何平衡版本迭代的成本投入与获得的收益成为各国推广应用的难点。国际疾病分类已广泛用于分析临床数据和监测健康问题,例如:报告疾病、收集发病率统计数据和协助医疗报销决策。由于国际疾病分类可以将患者的住院过程规范化为标准化、统一和可共享的格式,因此其被广泛采用,并成为指导医疗保健决策和削减地方、国家乃至全球各级管理成本的关键因素。
2、早期阶段,国际疾病分类是由经过专门培训的编码人员手工完成的,在浏览电子病历后,专业编码人员将从现有的数万个编码中手动选择一个或多个合适的icd编码,并将其分配给电子病历。为每位患者分配编码平均需要34分钟,不仅耗时长,手工编码的方式也很昂贵。随后研究者使用的基于规则的方法,虽然具有可解释性并且可读性好,但是该类方法易受个人写作习惯的影响,基于相似度匹配的方式忽略了医疗文本的语义。随着机器学习的发展出现了许多先进的方法,但这些方法通常需要手动进行特征选择,深度学习方法提高了获取文本语义信息的能力及编码的精度,但大部分方法独立训练标签个数的分类器,忽略了标签之间的依赖关系。
技术实现思路
1、针对现有技术中的上述不足,本发明提供的一种应用于医疗文本的疾病分类多任务学习方法解决了现有技术的在医疗文本中遇到相同诊断的不同描述场景下,不能有效地进行疾病分类任务的问题。
2、为了达到上述发明目的,本发明采用的技术方案为:一种应用于医疗文本的疾病分类多任务学习方法,包括以下步骤:
3、s1、对医疗文本使用词嵌入技术得到词嵌入矩阵,并使用文本编码器从词嵌入矩阵中获得医疗文本的语义信息;
4、s2、根据词嵌入矩阵和医疗文本的语义信息获得医疗文本的标签参数;
5、s3、根据医疗文本的标签参数计算最终损失函数;
6、s4、通过多任务学习方式最小化最终损失函数,使用最小化的最终损失函数对分类模型进行训练;
7、s5、使用训练好的模型对待分类的医疗文本进行分类,完成医疗文本的疾病分类。
8、进一步地:所述步骤s1中,词嵌入矩阵d和语义信息h的表达式为:
9、d=[e1,e2,...,em]
10、h=[h1,h2,...,hm]∈r2u×m
11、其中,em为医疗文本中第m个单词的词嵌入向量表示,m为医疗文本中单词的总数,hm为医疗文本中第m个单词经过文本编码器后得到的特征向量,r2u×m为医疗文本r的语义信息h的矩阵维度,u为文本编码器的隐藏状态维度,r为医疗文本。
12、进一步地:所述步骤s2包括以下分步骤:
13、s21、将icd编码描述l中所有单词转换为小写并删除停用词,得到平均剩余单词,通过平均剩余单词的词嵌入向量形成标签向量
14、其中,表示医疗文本r的词嵌入向量维度;
15、s22、将标签向量vl与输入文本的词嵌入矩阵d拼接后经过文本编码器得到标签的最终表示hvl;
16、s23、采用标签式注意力机制,根据医疗文本的语义信息h和标签向量vl计算标签的文本表示fl,并根据标签的文本表示fl生成标签的二进制预测结果
17、s24、获取医疗文本对应的真实标签集ltrue和剩余标签集lfalse;
18、s25、根据医疗文本中的单词对于真实标签集的概率,设置阈值λ,计算医疗文本的主序列表示并将送入文本编码器中,得到医疗文本的主序列表示的语义信息
19、s26、将标签的二进制预测结果医疗文本对应的真实标签集ltrue和剩余标签集lfalse和医疗文本的主序列表示的语义信息作为医疗文本的标签参数。
20、进一步地:所述步骤s23包括以下分步骤:
21、s231、采用标签式注意力机制,根据医疗文本的语义信息h和标签向量vl计算h中所有行的注意力分数sl,其公式为:
22、sl=softmax(tanh(h·wat+ba)·vl)
23、其中,sotfmax(.)为归一化指数函数,tanh(.)为激活函数,wat为权重参数,ba为第一偏置参数;
24、注意力机制可以使模型关注电子病历文本的不同部分;
25、s232、根据注意力分数sl计算h中与icd编码描述l最相关的信息al,其公式为:
26、
27、s233、根据h中与icd编码描述l最相关的信息al计算标签的文本表示fl,其公式为:
28、fl=relu(wlal+bl)
29、其中,relu(.)为激活函数,wl为训练过程中的权重,bl为第二偏置参数;
30、s234、根据标签的文本表示fl,生成标签的二进制预测结果其公式为:
31、
32、其中,sigmoid(·)为非线性激活函数,b为第三偏置参数。
33、进一步地:所述步骤s25中,和的公式为:
34、
35、
36、其中,ei为医疗文本中的单词,pi为单词ei对于真实标签集的概率,为的语义信息,hm为中第m个单词经过文本编码器后得到的特征向量。
37、进一步地:所述步骤s3包括以下分步骤:
38、s31、根据标签的二进制预测结果计算医疗文本的二元交叉熵损失lc;
39、s32、使用获取医疗文本的二元交叉熵损失lc的方法,获取主序列表示的二元交叉熵损失lc’;
40、s33、根据医疗文本对应的真实标签集ltrue和剩余标签集lfalse计算二元分类损失lco;
41、s34、根据医疗文本的主序列表示的语义信息计算对比损失lcon;
42、s35、将lc、lc’、lco和lcon相加得到最终损失函数。
43、进一步地:所述步骤s31中lc的公式为:
44、
45、其中,l为标签总数,yl为真实标签。
46、进一步地:所述步骤s33中获得lco的方法为:从真实标签集ltrue和剩余标签集lfalse中采样两个标签,将采样得到的两个标签的表示向量嵌入作为输入特征,采用二元分类器预测两个标签的共现状态,lco的公式为:
47、lco=-[qijinpij+(1-qij)in(1-pij)]
48、其中,pij=p(lj|r,li)表示标签对(li,lj)共现的输出概率,q为真实标签;两个标签的共现状态包括两标签共现以及两标签不共现;两标签共现表示两个标签均从真实标签集ltrue中采样,两标签不共现表示两个标签不都从真实标签集ltrue中采样;
49、其中,qij=1表示两标签共现,qij=0表示两标签不共现。
50、进一步地:所述步骤s34包括以下分步骤:
51、s341、医疗文本r和对应的主序列表示构成正样本对同批次其余n-1个样本对互为负样本;
52、其中n为一个批次的样本对数量;
53、s342、在正样本对对应的语义信息样本对上添加非线性层,得到非线性对其公式为:
54、gi=w2relu(w1h)
55、
56、其中,w1和w2为训练过程中的权重参数;
57、s343、根据in-batch negtive范式,使用线性层对扩大负样本对数量,使每个样本对拥有2n-1个负样本,得到负样本集合z,z的表达式为:
58、
59、s344、计算负样本集合z中元素zi的nt-xent损失licon,其公式为:
60、
61、其中,exp(·)表示以自然常数e为底的指数函数,sim(.)表示余弦相似函数,t为温度函数,u(·)为匹配函数,
62、s345、计算负样本对集合z中所有元素的nt-xent损失,并计算其平均,获得对比损失lcon,其公式为:
63、
64、本发明的有益效果为:
65、1.通过编码共现任务学习医疗中诊断与诊断之间的相关性,当医疗文本中出现的相同疾病的不同描述方式时,编码共现任务也能够对此类编码进行正确预测;
66、2.对比学习任务以标签信息作为指导生成正样本,使得同类数据经过编码器的编码结果尽可能相似,对最终预测产生了积极的影响;
67、3.多任务学习架构融合原始疾病分类任务、编码共现任务以及对比学习任务,建立了标签之间的依赖关系,各任务之间存在互补关系,使得疾病分类效果提升。