基于多重注意力模型的分类方法、装置及设备
技术领域
本申请涉及信息识别技术领域,更具体地说,涉及一种基于多重注意力模型的分类方法、装置、设备及可读存储介质。
背景技术
现有的专家系统主要利用大量成功的实例,以及简单灵活的开发工具,直接模仿人类的心理过程,利用规则表示专家知识。
例如:基于规则的医疗专家系统可以实现对疾病的分类。例如,IF(腹痛)and(腹泻)THEN急性肠炎;或,IF(受凉or劳累)and(肩关节疼痛)THEN肩周炎。其中,IF后面的语句称为前项,THEN后面的语句称为后项。前项一般是若干事实的“与或”条件结合。
基于规则的分类方法,缺乏知识的重用性和共享性,所以,准确性有待提高。
发明内容
有鉴于此,本申请提供了一种基于多重注意力模型的分类方法、装置、设备及可读存储介质,以提高分类的准确性。如下:
一种基于多重注意力模型的分类方法,包括:
获取第一向量和第二向量,所述第一向量为预设的知识库转换得到的向量,所述第二向量为待分类的对象转换得到的向量;
将所述第一向量和所述第二向量输入预设的分类模型,得到所述分类模型输出的所述待分类的对象的分类结果,所述分类结果包括所述待分类的对象与所述知识库的相关程度;
其中,所述分类模型包括第一类注意力模块和第二类注意力模块;
所述第一类注意力模块用于基于所述第一向量和所述第二向量计算得到第一权值,并计算所述第一向量与所述第一权值的乘积,得到第一特征向量,以及计算所述第二向量与所述第一权值的乘积得到第二特征向量;
所述第二类注意力模块用于基于所述第一特征向量和所述第二特征向量确定第二权值和第三权值,并计算所述第一特征向量与第二权值的乘积得到第三特征向量,计算所述第二特征向量与第三权值的乘积得到第四特征向量,并依据所述第三特征向量和第四特征向量输出第一分类向量,所述第一分类向量用于确定所述分类结果。
可选地,基于多重注意力模型的分类方法还包括:
获取第三向量,所述第三向量为所述知识库中的第一预设类型的内容转换得到的向量;
所述第一类注意力模块还用于:依据所述第一特征向量与所述第三向量确定第四权值,依据所述第二特征向量与所述第三向量确定第五权值,并计算所述第一特征向量和/或所述第三向量与所述第四权值的乘积,得到第二分类向量,计算所述第二特征向量和/或所述第三向量与所述第五权值的乘积,得到第三分类向量,所述第一分类向量、所述第二分类向量和所述第三分类向量用于确定所述分类结果。
可选地,基于多重注意力模型的分类方法还包括:
获取第四向量,所述第四向量为所述知识库中的第二预设类型的内容转换得到的向量;
所述第一类注意力模块还用于:基于所述第一向量与所述第四向量确定第六权值,基于所述第二向量与所述第四向量确定第七权值,并计算所述第一向量和/或所述第四向量与所述第六权值的乘积得到第五特征向量,计算所述第二向量和/或所述第四向量与所述第七权值的乘积得到第六特征向量;
所述第二类注意力模块还用于:基于所述第五特征向量和所述第六特征向量确定第八权值和第九权值,并计算所述第五特征向量与所述第八权值的乘积得到第七特征向量,计算所述第六向量与所述第九权值的乘积得到第八特征向量,依据所述第七特征向量和所述第八特征向量输出第四类分类向量,所述第一分类向量、所述第二分类向量、所述第三分类向量和所述第四类分类向量用于确定所述分类结果。
可选地,预设的知识库包括疾病知识库;
所述第一预设类型的内容包括:疾病的名称;
所述第二预设类型的内容包括:所述疾病满足的规则公式;
所述待分类的对象包括:病例。
可选地,第一类注意力模块包括:
第一输入端、第二输入端、全连接层、第一相乘模块、softmax层、第二相乘模块和输出端;
所述第一相乘模块用于,将第一矩阵和第二矩阵相乘,所述第一矩阵为所述第一输入端输入的向量经过所述全连接层得到的矩阵,所述第二矩阵为所述第二输入端输入的向量经过所述全连接层得到的矩阵;
softmax层用于将所述第一矩阵和所述第二矩阵的乘积,经过归一化处理,得到权值;
所述第二相乘模块用于,将所述第一输入端的输入和/或所述第二输入端的输入,与所述权值相乘,得到输出结果;
所述输出端用于输出所述输出结果。
可选地,第二类注意力模块包括:
第一输入端、第二输入端、第一相乘模块、池化层、softmax层、第二相乘模块、维度变换拼接模块和输出端;
所述第一相乘模块用于,将第一矩阵与第二矩阵相乘,所述第一矩阵为所述第一输入端输入的向量,所述第二矩阵为所述第二输入端输入的向量;
所述池化层用于,将所述第一矩阵与第二矩阵相乘的结果分别进行行池化和列池化;
所述softmax层用于,对所述行池化的结果进行归一化处理,得到第一目标权值,并对所述列池化的结果进行归一化处理,得到第二目标权值;
所述第二相乘模块用于,将所述第一输入端输入的向量与所述第一目标权值相乘,得到第一输出结果,以及将所述第二输入端输入的向量与所述第二目标权值相乘,得到第二输出结果;
所述维度变换拼接模块用于,对所述第一输出结果和所述第二输出结果进行拼接和维度变换,得到输出结果;
所述输出端用于输出所述输出结果。
可选地,分类模型的任意一种分类的训练标签包括:
{m,(1-m)/n,(1-m)/n…(1-m)/n,0,0…0},其中,m为预设的超参数,表示该种分类的标签值,(1-m)/n为与该种分类的相似分类的标签值,n为该种分类的相似分类的数量。
一种基于多重注意力模型的分类装置,包括:
向量获取单元,用于获取第一向量和第二向量,所述第一向量为预设的知识库转换得到的向量,所述第二向量为待分类的对象转换得到的向量;
分类结果获取单元,用于将所述第一向量和所述第二向量输入预设的分类模型,得到所述分类模型输出的所述待分类的对象的分类结果,所述分类结果包括与所述待分类的对象最相近的知识库;
其中,所述分类模型包括第一类注意力模块和第二类注意力模块;
所述第一类注意力模块用于基于所述第一向量和所述第二向量计算得到第一权值,并计算所述第一向量与所述第一权值的乘积,得到第一特征向量,以及计算所述第二向量与所述第一权值的乘积得到第二特征向量;
所述第二类注意力模块用于基于所述第一特征向量和所述第二特征向量确定第二权值和第三权值,并计算所述第一特征向量与第二权值的乘积得到第三特征向量,计算所述第二特征向量与第三权值的乘积得到第四特征向量,并依据所述第三特征向量和第四特征向量输出第一分类向量,所述第一分类向量用于确定所述分类结果。
一种基于多重注意力模型的分类设备,包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如上所述的基于多重注意力模型的分类方法的各个步骤。
一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如上所述的基于多重注意力模型的分类方法的各个步骤。
由上述的技术方案可以看出,本申请实施例提供的基于多重注意力模型的分类方法,将获取的第一向量和第二向量输入预设的分类模型,得到分类模型输出的待分类的对象的分类结果,其中,分类模型中的第一类注意力模块可以建立第一向量与第二向量之间的相关性,得到第一特征向量以及第二特征向量。分类模型中的第二类注意力模块可以建立第一特征向量以及第二特征向量之间的相关性,得到第一分类向量,并基于第一分类向量确定分类结果。综上,本申请的分类方法使用了两种类型的注意力模型,从多个角度建立知识库向量和待分类对象向量之间的相关性,并以相关性确定分类特征向量,从而实现了知识的重用性和共享性,有利于提高分类结果的准确性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种基于多重注意力模型的分类方法的流程示意图;
图2为本申请实施例提供的一种分类模型的结构示意图;
图3为本申请实施例提供的一种多重注意力模型的结构示意图;
图4为本申请实施例提供的一种第一类注意力模块的结构示意图;
图5为本申请实施例提供的一种第二类注意力模块的结构示意图;
图6为本申请实施例提供的一种基于多重注意力模型的分类方法的具体实施方式流程图;
图7为本申请实施例提供的一种知识库的结构示意图;
图8为本申请实施例提供的一种基于多重注意力模型的分类装置的结构示意图;
图9为本申请实施例提供的一种基于多重注意力模型的分类设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的基于多重注意力模型的分类方法的流程示意图,具体可以包括以下步骤:
S101、获取第一向量和第二向量。
其中,第一向量为预设的知识库转换得到的向量,第二向量为待分类的对象转换得到的向量。
预设的知识库中包括基于大量先验知识得到的规则,以医学领域中的疾病知识库为例,知识库包含大量由专家医生整理的疾病相关专业知识和疾病的推理规则,包括疾病的相关症状、体征、充分条件、必要条件或否定条件中一项或多项。本实施例获取由预设的知识库进行编码得到的第一向量,可以理解的是,该第一向量可以表征该知识库。
待分类的对象中可以包括分类信息,例如,以医学领域中的待分类病例为例,病例中可以包括症状、体征、相关病史、发病因素、检查检验、性别、或年龄中一项或多项,可以理解的是,依据各项分类信息可以确定待分类病例所属于的知识库,所以,本实施例获取由待分类的对象进行编码得到的第二向量,可以理解的是,该第二向量可以表征待分类的对象。
S102、将第一向量和第二向量输入预设的分类模型,得到分类模型输出的待分类的对象的分类结果。
具体地,分类模型包括第一类注意力模块和第二类注意力模块。分类结果包括与待分类的对象最相近的知识库,也可以看作待分类的对象所属的知识库。
图2示例了一种分类模型的结构示意图,如图2所示,本实施例提供的分类模型包括第一类注意力模块A1、第一类注意力模块A2、以及第二类注意力模块CA1。
本步骤基于图2所示的分类模型输出的待分类的对象的分类结果的具体实施方式可以包括以下S201~S203。
S201、将第一向量和第二向量输入至第一类注意力模块A1以及第一类注意力模块A2。
第一类注意力模块A1基于第一向量和第二向量计算得到第一权值,并计算第一向量与第一权值的乘积,得到第一特征向量并输出。
第一类注意力模块A2基于第一向量和第二向量计算得到第一权值,并计算第二向量与第一权值的乘积,得到第二特征向量并输出。
可见,第一类注意力模块用于基于第一向量和第二向量计算得到第一权值,并计算第一向量与第一权值的乘积,得到第一特征向量,以及计算第二向量与第一权值的乘积得到第二特征向量。图2中,以两个第一注意力模块为例,但本实施例并不限于两个,例如,第一注意力模块也可以为一个,得到第一权值后,再分别得到第一特征向量和第二特征向量。
S202、将第一特征向量和第二特征向量输入至第二类注意力模块CA1。
第二类注意力模块CA1基于第一特征向量和第二特征向量计算得到第二权值和第三权值,并计算第一特征向量与第二权值的乘积得到第三特征向量,计算第二特征向量与第三权值的乘积得到第四特征向量。
第二类注意力模块CA1依据第三特征向量和第四特征向量得到第一分类向量并输出。
可见,第二类注意力模块用于基于第一特征向量和第二特征向量确定第二权值和第三权值,并计算第一特征向量与第二权值的乘积得到第三特征向量,计算第二特征向量与第三权值的乘积得到第四特征向量,并依据第三特征向量和第四特征向量输出第一分类向量,第一分类向量用于确定分类结果。
S203、基于第一分类向量,输出分类结果。
可以理解的是,第一特征向量和第二特征向量均为第一类注意力模块捕捉第一向量和第二向量之间的相关性得到的特征向量,第一分类向量为第二类注意力模块捕捉第一特征向量和第二特征向量之间的相关性得到的特征向量。可以得出结论,第一分类向量可以表征第一向量和第二向量之间的相关性。所以,本步骤可以基于第一分类向量判断第一向量和第二向量之间的相关程度,并输出分类结果。分类结果表征,待分类的对象与知识库的相关程度。
由上述的技术方案可以看出,本申请实施例提供的基于多重注意力模型的分类方法,将获取的第一向量和第二向量输入预设的分类模型,得到分类模型输出的待分类的对象的分类结果,其中,分类模型中的第一类注意力模块可以建立第一向量与第二向量之间的相关性,得到第一特征向量以及第二特征向量。分类模型中的第二类注意力模块可以建立第一特征向量以及第二特征向量之间的相关性,得到第一分类向量,并基于第一分类向量确定分类结果。综上,本申请的分类方法使用了两种类型的注意力模型,从多个角度建立向量之间的相关性,并以相关性确定分类特征向量,从而实现了知识的重用性和共享性,有利于提高分类结果的准确性。
下面以医疗领域的病例分类为例,即,预设的知识库为疾病知识库,待分类的对象为待分类的病例,则,多重注意力模型输出的分类结果为待分类病例与疾病知识库的相似性分数,对上述方法进行详细的说明。
图3示例了一种多重注意力模型的结构图,如图3所示,多重注意力模型可以包括编码模块(图3所示的Embedding)、第一类注意力模块(图3所示的Attention)、和第二类注意力模块(图3所示的Cross Attention)。其中,第一类注意力模块和第二类注意力模块构成分类模型。
其中,编码模块E1用于获取第一向量、第三向量、和第四向量。编码模块E2用于获取第二向量。
第一类注意力模块A1用于基于第一向量和第二向量,输出第一特征向量。第一类注意力模块A2用于基于第一向量和第二向量,输出第二特征向量。第一类注意力模块A3用于基于第一特征向量和第三向量,输出第二分类向量,第一类注意力模块A4用于基于第二特征向量和第三向量,输出第三分类向量,第一类注意力模块A5用于基于第一向量和第四向量,输出第五特征向量,第一类注意力模块A6用于基于第二向量和第四向量,输出第六特征向量。
第二类注意力模块CA1用于基于第一特征向量和第二特征向量输出第一分类向量,第二类注意力模块CA2用于基于第五特征向量和第六特征向量输出第四分类向量。
本实施例中,第一类注意力模块A1~A6的结构可以参照图4所示,图4为本申请实施例提供的第一类注意力模块的结构示意图。如图4所示,第一类注意力模块包括:第一输入端、第二输入端、全连接层Q1、全连接层Q2、第一相乘模块、softmax层、第二相乘模块和输出端。
其中,第一相乘模块用于将第一矩阵和第二矩阵相乘,第一矩阵为第一输入端输入的向量经过全连接层Q1得到的矩阵,第二矩阵为第二输入端输入的向量经过全连接层Q2得到的矩阵。softmax层用于将第一矩阵和第二矩阵的乘积,经过归一化处理,得到权值。第二相乘模块用于将第一输入端的输入和/或第二输入端的输入,与权值相乘,得到输出结果,输出端用于输出该输出结果。
本实施例中,第一类注意力模块CA1~CA2的结构可以参照图5所示,图5为本申请实施例提供的第二类注意力模块的结构示意图,如图5所示,第二类注意力模块包括:第一输入端、第二输入端、第一相乘模块、池化层(C1和C2)、softmax层(S1和S2)、第二相乘模块(X1和X2)、维度变换拼接模块和输出端。
其中,第一相乘模块用于,将第一矩阵与第二矩阵相乘,第一矩阵为第一输入端输入的向量,第二矩阵为第二输入端输入的向量。池化层用于,将第一矩阵与第二矩阵相乘的结果分别进行行池化和列池化。softmax层用于,对行池化的结果进行归一化处理,得到第一目标权值,并对列池化的结果进行归一化处理,得到第二目标权值。第二相乘模块用于,将第一输入端输入的向量与第一目标权值相乘,得到第一输出结果,以及将第二输入端输入的向量与第二目标权值相乘,得到第二输出结果。维度变换拼接模块用于,对第一输出结果和第二输出结果进行拼接和维度变换,得到输出结果。输出端用于输出该输出结果。
图6为本申请实施例提供的一种基于图3所示的多重注意力模型的分类方法的具体实施方法的流程示意图,具体可以包括以下S601~S608。
S601、获取第一向量和第二向量、第三向量、和第四向量。
其中,第一向量为预设的知识库转换得到的向量,第二向量为待分类的对象转换得到的向量,第三向量为知识库中的第一预设类型的内容转换得到的向量,第四向量为知识库中的第二预设类型的内容转换得到的向量。
具体地,任一疾病知识库中包括疾病的名称、疾病的关键信息(例如疾病的相关症状和体征),以及疾病满足的规则公式(例如充分公式、必要公式以及否定公式)。充分公式表示满足该公式就大概率可以推出该疾病,必要公式表示不满足该公式可以否定该疾病,否定公式表示满足该公式可以否定该疾病。可以理解的是,疾病的名称、疾病的关键信息以及疾病满足的规则公式均可作为对病例分类的依据。
所以,本实施例中,第一向量通过对疾病的关键信息编码得到,第三向量通过对疾病的名称编码得到,第四向量通过对疾病满足的规则公式编码得到。
图7示例了一种疾病知识库,该知识库中的疾病的名称为急性胆囊炎,疾病的关键信息包括:年龄、性别、相关疾病史、发病时间、症状、以及体征等,疾病满足的规则公式包括充分公式、必要公式以及否定公式。
以图5所示的知识库为例,获取第一向量、第三向量以及第四向量的方法具体包括:
S1、将该知识库输入至编码模块E1。
S2、通过编码模块E1,将疾病的关键信息中的每一关键词均编码为一个词向量,得到第一向量。
词向量的维度为N=100。假设疾病的关键信息中包括M个关键词,则,拼接得到第一向量的尺寸为M*N。
例如,图5所示的知识库中的疾病的关键信息包括症状,症状中包括呕吐、右上腹胀、肩背放射痛、以及厌油等13个关键词,则通过编码模块E1将每一关键词均编码为维度为100的词向量,得到13个词向量。另外,疾病的关键信息还包括其他信息,例如体征或年龄等,将每一关键词均按照上述方法进行编码,最后得到尺寸为64*100的第一向量。其中,64为知识库中最大的关键词的数量,若知识库中关键词的数量小于64,则进行补齐。
S3、通过编码模块E1,将疾病的名称编码为一个词向量,得到尺寸为1*100的第三向量。
S4、通过编码模块E1,将充分公式、必要公式以及否定公式编码为三个尺寸为1*100词向量,拼接得到尺寸为3*100的第四向量。
需要说明的是,本实施例中的知识库可以通过定期地修改信息或添加新的知识库来进行维护和更新。
第二向量为待分类的对象转换得到的向量,本实施例中,待分类的对象为病例,任一病例包括主诉、现病史、既往史、检查4个字段。可以理解的是,每一字段可以作为对病例分类的依据。则获取第二向量的方法包括:
SS1、将病例输入至编码模块E2。编码模块E2通过编码矩阵将病例将每一字段转换为矩阵表示,其中,编码矩阵预先通过医疗语料预训练得到。
例如,四项关键信息的字段长度分别为40、60、80、60,每个词向量维度为100,则可获得尺寸分别为40*100、60*100、80*100、60*100的四个二维矩阵。
SS2、编码模块E2使用BiLSTM(Bi-directional Long Short-Term Memory,双向-长短期记忆网络)编码来捕获句子时序信息,并通过最大池化获得其中最关键的信息,由此将每个字段转换为尺寸为40*100的向量。
SS3、编码模块E2将4个字段的向量进行拼接,最终就可获得尺寸为4*100的第二向量。
综上,本步骤可以将知识库和病例分别编码,得到第一向量和第二向量、第三向量、和第四向量。
将第一向量和第二向量、第三向量、和第四向量输入分类模型后,分类模型中的数据处理流程如下:
S602、将第一向量和第二向量输入至A1,得到第一特征向量;将第一向量和第二向量输入至A2,得到第二特征向量。
具体地,A1的结构如图4所示,输出第一特征向量的过程包括:
将第一向量输入至第一输入端,并经过全连接层Q1得到第一矩阵。将第二向量输入至第二输入端,并经过全连接层Q2得到第二矩阵。将第一矩阵和第二矩阵输入至第一相乘模块,第一相乘模块将第一矩阵和第二矩阵相乘,得到第一矩阵和第二矩阵的乘积。将得到的第一矩阵和第二矩阵的乘积输入至softmax层,softmax层将该乘积经过归一化处理,得到权值,即第一权值。进一步,将第一权值输入至第二相乘模块,第二相乘模块将第一权值以及第一向量相乘得到输出结果,即第一特征向量,并由输出端输出该第一特征向量。
A2的结构如图4所示,输出第二特征向量的过程包括:
将第一向量输入至第一输入端,并经过全连接层Q1得到第一矩阵。将第二向量输入至第二输入端,并经过全连接层Q2得到第二矩阵。将第一矩阵和第二矩阵输入至第一相乘模块,第一相乘模块将第一矩阵和第二矩阵相乘,得到第一矩阵和第二矩阵的乘积。将得到的第一矩阵和第二矩阵的乘积输入至softmax层,softmax层将该乘积经过归一化处理,得到权值,即第一权值。进一步,将第一权值输入至第二相乘模块,第二相乘模块将第一权值以及第二向量相乘得到输出结果,即第二特征向量,并由输出端输出该第二特征向量。
S603、将第一特征向量和第二特征向量输入至CA1,得到第一分类向量。
具体地,CA1的结构如图5所示,输出第一分类向量的过程包括:
将第一特征向量输入至第一输入端得到第一矩阵,第二特征向量输入至第二输入端得到第二矩阵,将第一矩阵和第二矩阵输入至第一相乘模块,第一相乘模块将第一矩阵与第二矩阵相乘,输出第一矩阵与第二矩阵相乘的结果。
将第一矩阵与第二矩阵相乘的结果输入至池化层C1进行进行行池化,并将行池化结果输出至softmax层S1,softmax层S1对该行池化的结果进行归一化处理,得到第一目标权值,即第二权值。进一步,第二相乘模块X1将第一特征向量以及第二权值相乘得到第一输出结果,即第三特征向量。
将第一矩阵与第二矩阵相乘的结果输入至池化层C2进行列池化。并将列池化结果输出至softmax层S2,softmax层S2对该列池化结果进行归一化处理,得到第二目标权值,即第三权值。进一步,第二相乘模块X2将第二特征向量以及第三权值相乘得到第二输出结果,即第四特征向量。
进一步,将第三特征向量和第四特征向量输入至维度变换拼接模块,维度变换拼接模块对第三特征向量和第四特征向量进行拼接和维度变换,得到输出结果,即第一分类向量,并通过输出端输出第一分类向量。
S604、将第三向量和第一特征向量输入至A3,得到第二分类向量。
具体地,A3的结构如图4所示,输出第二分类向量的过程包括:
将第三向量输入至第一输入端,并经过全连接层Q1得到第一矩阵。将第一特征向量输入至第二输入端,并经过全连接层Q2得到第二矩阵。将第一矩阵和第二矩阵输入至第一相乘模块,第一相乘模块将第一矩阵和第二矩阵相乘,得到第一矩阵和第二矩阵的乘积。将得到的第一矩阵和第二矩阵的乘积输入至softmax层,softmax层将该乘积经过归一化处理,得到第四权值。进一步,将第四权值输入至第二相乘模块,第二相乘模块将第四权值以及第三向量相乘得到输出结果,即第二分类向量,并由输出端输出该第二分类向量。
需要说明的是,除了将第四权值以及第三向量相乘得到第二分类向量之外,还可以,将第四权值以及第一特征向量相乘得到第二分类向量,或者,将第四权值分别与第三向量和第一特征向量相乘,得到两个第二分类向量,本实施例不做限定。
S605、将第三向量和第二特征向量输入至A4,得到第三分类向量。
具体地,A4的结构如图4所示,输出第三分类向量的过程包括:
将第三向量输入至第一输入端,并经过全连接层Q1得到第一矩阵。将第二特征向量输入至第二输入端,并经过全连接层Q2得到第二矩阵。将第一矩阵和第二矩阵输入至第一相乘模块,第一相乘模块将第一矩阵和第二矩阵相乘,得到第一矩阵和第二矩阵的乘积。将得到的第一矩阵和第二矩阵的乘积输入至softmax层,softmax层将该乘积经过归一化处理,得到第五权值。进一步,将第五权值输入至第二相乘模块,第二相乘模块将第五权值以及第三向量(和/或第二特征向量)相乘得到输出结果,即第三分类向量,并由输出端输出该第三分类向量。
类似的,将第五权值以及第三向量和/或第二特征向量相乘得到第三分类向量,本实施例不做限定。
S606、将第一向量和第四向量输入至A5,得到第五特征向量;将第二向量和第四向量输入至A6,得到第六特征向量。
具体地,A5的结构如图4所示,输出第五特征向量的过程包括:
将第一向量输入至第一输入端,并经过全连接层Q1得到第一矩阵。将第四向量输入至第二输入端,并经过全连接层Q2得到第二矩阵。将第一矩阵和第二矩阵输入至第一相乘模块,第一相乘模块将第一矩阵和第二矩阵相乘,得到第一矩阵和第二矩阵的乘积。将得到的第一矩阵和第二矩阵的乘积输入至softmax层,softmax层将该乘积经过归一化处理,得到第六权值。进一步,将第六权值输入至第二相乘模块,第二相乘模块将第六权值以及第一向量(和/或第四向量)相乘得到输出结果,即第五特征向量,并由输出端输出该第五特征向量。
A6的结构如图4所示,输出第六特征向量的过程包括:
将第二向量输入至第一输入端,并经过全连接层Q1得到第一矩阵。将第四向量输入至第二输入端,并经过全连接层Q2得到第二矩阵。将第一矩阵和第二矩阵输入至第一相乘模块,第一相乘模块将第一矩阵和第二矩阵相乘,得到第一矩阵和第二矩阵的乘积。将得到的第一矩阵和第二矩阵的乘积输入至softmax层,softmax层将该乘积经过归一化处理,得到第七权值。进一步,将第七权值输入至第二相乘模块,第二相乘模块将第七权值以及第二向量(和/或第四向量)相乘得到输出结果,即第六特征向量,并由输出端输出该第六特征向量。
S607、将第五特征向量和第六特征向量输入至CA2,得到第四分类向量。
具体地,CA2的结构如图5所示,输出第四分类向量的过程包括:
将第五特征向量输入至第一输入端得到第一矩阵,第六特征向量输入至第二输入端得到第二矩阵,将第一矩阵和第二矩阵输入至第一相乘模块,第一相乘模块将第一矩阵与第二矩阵相乘,输出第一矩阵与第二矩阵相乘的结果。
将第一矩阵与第二矩阵相乘的结果输入至池化层C1进行进行行池化,并将行池化结果输出至softmax层S1,softmax层S1对该行池化的结果进行归一化处理,得到第一目标权值,即第八权值。进一步,第二相乘模块X1将第五特征向量以及第八权值相乘得到第一输出结果,即第七特征向量。
将第一矩阵与第二矩阵相乘的结果输入至池化层C2进行列池化。并将列池化结果输出至softmax层S2,softmax层S2对该列池化结果进行归一化处理,得到第二目标权值,即第九权值。进一步,第二相乘模块X2将第六特征向量以及第九权值相乘得到第二输出结果,即第八特征向量。
进一步,将第七特征向量和第八特征向量输入至维度变换拼接模块,维度变换拼接模块对第七特征向量和第八特征向量进行拼接和维度变换,得到输出结果,即第四分类向量,并通过输出端输出第四分类向量。
S608、基于第一分类向量、第二分类向量、第三分类向量、和第四分类向量,确定分类结果并输出。
具体地,基于第一分类向量、第二分类向量、第三分类向量、和第四分类向量,可以得到待分类病例与知识库之间的相关性得分。
需要说明的是,上述流程示出的是得到待分类病例与任意一个疾病知识库的相关性得分的过程,可以重复上述流程,得到待分类病例与所有疾病知识库的相关性得分,例如,疾病知识库共包括100种,基于上述S601~S607可以得到其中每一种疾病知识库与该病例的相关性得分。
进一步,可以将相关性得分最高或者得分排序前N个的疾病知识库,作为待分类病例所述的疾病知识库,为医生的诊断提供参考依据。
综上,本实施例中,如图3所示的多重注意力模型的输入为预设的知识库以及待分类对象,输出为依据第一分类向量、第二分类向量、第三分类向量、和第四分类向量得到的分类结果。
由上述的技术方案可以看出,本申请实施例提供的基于多重注意力模型的分类方法,将获取的第一向量、第二向量、第三向量、和第四向量输入预设的分类模型,得到分类模型输出的待分类的对象的分类结果,其中,分类模型中包括第一类注意力模块和第二类注意力模块,可以建立待分类的对象以及知识库之间的相关性,从而确定第一分类向量、第二分类向量、第三分类向量、和第四分类向量,进一步基于多个分类向量确定分类结果。
综上,本申请的分类方法使用了两种类型的注意力模型,从多个角度建立向量之间的相关性,并以相关性确定分类特征向量,从而实现了知识的重用性和共享性,有利于提高分类结果的准确性。
进一步,本申请的分类方法可以同时输入第一向量、第二向量、第三向量和第四向量,得到第一分类向量、第二分类向量、第三分类向量、和第四分类向量,并基于所有分类向量,确定分类结果。由此考虑预设的知识库中的多种信息对分类结果的贡献,大大提高了分类结果的准确性。
例如,第三向量对疾病的名称进行编码得到的向量,第四向量对疾病满足的规则公式进行编码得到的向量,本实施例进一步将第三向量和第四向量作为输入,可以增强病历和疾病知识库的相关性,提高病历分类结果的准确性。
本申请实施例提供的模型(如图2所示的分类模型或图3所示的多重注意力模型)的训练方法可以包括:
以任一样本病例和所有知识库为训练输入,以{m,(1-m)/n,(1-m)/n…(1-m)/n,0,0…0}为该样本病例的训练标签,对模型进行训练。
其中,m为预设的超参数,表示该种分类的标签值,(1-m)/n为与该种分类的相似分类的标签值,n为该种分类的相似分类的数量。例如,样本病例B1的目标输出为B1所属的知识库“急性胆囊炎”,则,训练标签中m为“急性胆囊炎”的标签值,(1-m)/n为与“急性胆囊炎”接近的疾病知识库的标签值,0为与“急性胆囊炎”不相近的疾病知识库的标签值。
综上,本申请实施例提供的模型训练方法,采用了Label smooth(标签平滑)策略,相对于传统的one-hot(独热编码)类型标签,在计算损失函数时能够有效抑制过拟合现象,有助于达到最好的拟合效果。
进一步的,本实施例中,将相关性得分经过交叉熵得到损失函数,最后采用Adam优化函数优化损失函数,并输出与病例相关性最大的知识库。
需要说明的是,本申请实施例提供的基于多重注意力模型的分类方法的具体实施方式可以包括其他的多种。
例如,在可选的其他实施方式中,第一向量、第三向量、和第四向量可以从预先建立的预设的知识库的向量库中直接获取。第二向量由编码模块获取。
例如,在可选的其他实施方式中,多重注意力模型的输入包括第一向量和第二向量,还包括第三向量或第四向量中的任一个,输出为依据第一分类向量,和第二分类向量、第三分类向量、或第四分类向量中的任一项得到的分类结果。
需要说明的是,本实施例中的第一类注意力模块可以为一个第一类注意力模块A,作为以上A1~A6,或可以为多个模块,第二类注意力模块可以为一个第二类注意力模块CA,作为一项CA1~CA2,或可以为多个模块。
进一步需要说明的是,本申请实施例提供的基于多重注意力模型的分类方法的应用场景不限于医学领域,也可以应用于其他领域,对此不做限定。
本申请实施例还提供了一种基于多重注意力模型的分类装置,下面对本申请实施例提供的基于多重注意力模型的分类装置进行描述,下文描述的基于多重注意力模型的分类装置与上文描述的基于多重注意力模型的分类方法可相互对应参照。
请参阅图8,示出了本申请实施例提供的一种基于多重注意力模型的分类装置的结构示意图,如图8所示,该装置可以包括:
向量获取单元801,用于获取第一向量和第二向量,所述第一向量为预设的知识库转换得到的向量,所述第二向量为待分类的对象转换得到的向量;
分类结果获取单元802,用于将所述第一向量和所述第二向量输入预设的分类模型,得到所述分类模型输出的所述待分类的对象的分类结果,所述分类结果包括与所述待分类的对象最相近的知识库;
其中,所述分类模型包括第一类注意力模块和第二类注意力模块;
所述第一类注意力模块用于基于所述第一向量和所述第二向量计算得到第一权值,并计算所述第一向量与所述第一权值的乘积,得到第一特征向量,以及计算所述第二向量与所述第一权值的乘积得到第二特征向量;
所述第二类注意力模块用于基于所述第一特征向量和所述第二特征向量确定第二权值和第三权值,并计算所述第一特征向量与第二权值的乘积得到第三特征向量,计算所述第二特征向量与第三权值的乘积得到第四特征向量,并依据所述第三特征向量和第四特征向量输出第一分类向量,所述第一分类向量用于确定所述分类结果。
可选地,向量获取单元还用于:
获取第三向量,所述第三向量为所述知识库中的第一预设类型的内容转换得到的向量;
所述第一类注意力模块还用于:依据所述第一特征向量与所述第三向量确定第四权值,依据所述第二特征向量与所述第三向量确定第五权值,并计算所述第一特征向量和/或所述第三向量与所述第四权值的乘积,得到第二分类向量,计算所述第二特征向量和/或所述第三向量与所述第五权值的乘积,得到第三分类向量,所述第一分类向量、所述第二分类向量和所述第三分类向量用于确定所述分类结果。
可选地,向量获取单元还用于:
获取第四向量,所述第四向量为所述知识库中的第二预设类型的内容转换得到的向量;
所述第一类注意力模块还用于:基于所述第一向量与所述第四向量确定第六权值,基于所述第二向量与所述第四向量确定第七权值,并计算所述第一向量和/或所述第四向量与所述第六权值的乘积得到第五特征向量,计算所述第二向量和/或所述第四向量与所述第七权值的乘积得到第六特征向量;
所述第二类注意力模块还用于:基于所述第五特征向量和所述第六特征向量确定第八权值和第九权值,并计算所述第五特征向量与所述第八权值的乘积得到第七特征向量,计算所述第六向量与所述第九权值的乘积得到第八特征向量,依据所述第七特征向量和所述第八特征向量输出第四类分类向量,所述第一分类向量、所述第二分类向量、所述第三分类向量和所述第四类分类向量用于确定所述分类结果。
可选地,预设的知识库包括疾病知识库;
所述第一预设类型的内容包括:疾病的名称;
所述第二预设类型的内容包括:所述疾病满足的规则公式;
所述待分类的对象包括:病例。
可选地,第一类注意力模块包括:
第一输入端、第二输入端、全连接层、第一相乘模块、softmax层、第二相乘模块和输出端;
所述第一相乘模块用于,将第一矩阵和第二矩阵相乘,所述第一矩阵为所述第一输入端输入的向量经过所述全连接层得到的矩阵,所述第二矩阵为所述第二输入端输入的向量经过所述全连接层得到的矩阵;
softmax层用于将所述第一矩阵和所述第二矩阵的乘积,经过归一化处理,得到权值;
所述第二相乘模块用于,将所述第一输入端的输入和/或所述第二输入端的输入,与所述权值相乘,得到输出结果;
所述输出端用于输出所述输出结果。
可选地,第二类注意力模块包括:
第一输入端、第二输入端、第一相乘模块、池化层、softmax层、第二相乘模块、维度变换拼接模块和输出端;
所述第一相乘模块用于,将第一矩阵与第二矩阵相乘,所述第一矩阵为所述第一输入端输入的向量,所述第二矩阵为所述第二输入端输入的向量;
所述池化层用于,将所述第一矩阵与第二矩阵相乘的结果分别进行行池化和列池化;
所述softmax层用于,对所述行池化的结果进行归一化处理,得到第一目标权值,并对所述列池化的结果进行归一化处理,得到第二目标权值;
所述第二相乘模块用于,将所述第一输入端输入的向量与所述第一目标权值相乘,得到第一输出结果,以及将所述第二输入端输入的向量与所述第二目标权值相乘,得到第二输出结果;
所述维度变换拼接模块用于,对所述第一输出结果和所述第二输出结果进行拼接和维度变换,得到输出结果;
所述输出端用于输出所述输出结果。
可选地,分类模型的任意一种分类的训练标签包括:
{m,(1-m)/n,(1-m)/n…(1-m)/n,0,0…0},其中,m为预设的超参数,表示该种分类的标签值,(1-m)/n为与该种分类的相似分类的标签值,n为该种分类的相似分类的数量。
本申请实施例还提供了一种基于多重注意力模型的分类设备,请参阅图9,示出了该基于多重注意力模型的分类设备的结构示意图,该设备可以包括:至少一个处理器901,至少一个通信接口902,至少一个存储器903和至少一个通信总线904;
在本申请实施例中,处理器901、通信接口902、存储器903、通信总线904的数量为至少一个,且处理器901、通信接口902、存储器903通过通信总线904完成相互间的通信;
处理器901可能是一个中央处理器CPU,或者是特定集成电路ASIC
(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器903可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器用于执行程序,实现上述基于多重注意力模型的分类方法。
本申请实施例还提供一种可读存储介质,该可读存储介质可存储有适于处理器执行的计算机程序,计算机程序被处理器执行时,实现上述基于多重注意力模型的分类方法。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。