问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

IRENE:医学图像、文本、基因数据 + 多模态融合 + 疾病诊断模型

创作时间:
作者:
@小白创作中心

IRENE:医学图像、文本、基因数据 + 多模态融合 + 疾病诊断模型

引用
CSDN
1.
https://blog.csdn.net/qq_41739364/article/details/138845308

在医疗领域,准确的疾病诊断往往需要综合考虑患者的主诉、医学影像和实验室化验结果等多模态信息。传统的多模态融合方法存在诸多局限性,而IRENE算法通过创新的多模态表征学习和双向多模态注意力机制,为这一难题提供了有效的解决方案。

多模态融合方法分析与分类

在临床诊断中,为了做出准确的决策,医生通常需要综合考虑患者的主诉、医学影像和实验室化验结果等多模态信息。因此,开发高效的多模态融合方法,以提高多模态诊断的准确性和效率,成为了一个重要的研究方向。

多模态融合方法可以分为三类:早期融合、晚期融合和混合融合。

  • 早期融合方法:在特征层级别进行融合,先从每种模态中提取特征,然后进行融合。例如,主成分分析(PCA)用于降维,融合特征以减少冗余。

  • 晚期融合方法:对不同模态分别进行处理,然后将各自的结果进行融合。例如,使用贝叶斯规则融合、最大值融合和平均值融合来组合不同模型的输出。

  • 混合融合方法:结合早期融合和晚期融合的优点,同时捕捉特征关系和处理过拟合问题。例如,在神经网络中,先对不同模态数据进行特征提取,再在更高层次上进行融合。

传统非统一的多模态融合方法的局限性

无论是早期还是晚期融合都选择将多模态诊断过程分离成两个相对独立的阶段:对每种模态单独进行特征抽取和多个模态特征的融合。这种设计有一个天然的局限性:无法发现和编码不同模态之间的内部关联。

  • 早期融合:在特征抽取之前进行融合,难以捕捉模态间的高层次相关性。例如,对图像和文本数据进行PCA降维后再进行融合,无法充分利用图像中的空间信息和文本中的语义信息。

  • 晚期融合:各模态的特征是独立学习的,无法发现模态间的内在关联。例如,使用独立的CNN处理图像,用独立的RNN处理文本,最后将两者的输出进行加权平均。这种方法不能捕捉图像和文本之间的复杂关系。

IRENE 解法

IRENE算法通过中期融合策略,结合早期和晚期融合的优点,采用统一的Transformer架构和双向多模态注意力机制进行整体表征学习,避免了繁琐的文本结构化步骤,并能有效发现和编码不同模态间的相互关联。

IRENE算法的具体架构

  1. 多模态嵌入层:针对不同模态的数据进行嵌入处理。将图像数据、文本数据和结构化数据分别转换为嵌入表示,有助于更好地利用不同类型数据的信息。

  2. 双向多模态注意力机制:在Transformer的中间层,通过双向注意力机制融合不同模态的特征。在处理文本特征时,结合图像和结构化数据的信息,可以提高诊断的整体性能。

  3. 统一编码器:将融合后的多模态特征进行统一编码。使用多层Transformer对融合特征进行编码,能提取高级语义信息。

  4. 分类器:对编码后的特征进行分类预测。使用多层感知器(MLP)对提取的特征进行分类,能够输出准确的诊断结果。

实现细节

  1. 前期嵌入
  • 图像数据:使用CNN将X光片转换为嵌入表示。
  • 文本数据:使用BERT将电子病历文本转换为嵌入表示。
  • 结构化数据:将实验室结果转换为嵌入表示。
  1. 中期融合
  • 双向多模态注意力机制:将图像、文本和结构化数据的嵌入输入到Transformer的多头自注意力机制中,计算模态之间的相互关联,并在中间层进行融合,提取全局特征。
  1. 编码和分类
  • 编码器:将融合后的多模态特征输入到多层Transformer进行编码,提取高级语义信息。
  • 分类器:使用多层感知器(MLP)对编码后的特征进行分类,输出诊断结果(如诊断是否患有某种疾病)。

图a:融合方法对比

  • Non-unified(非统一)方法:每种模态(如放射影像、主诉文本、临床数据)使用不同的模型分别处理。各模态独立提取特征,最后在融合模块进行特征融合。存在无法捕捉模态间高层次相关性的问题。

  • IRENE方法:使用统一的Transformer架构直接从多模态输入中学习整体表征。双向多模态注意力机制,能捕捉并编码模态间的相互关联。避免繁琐的文本结构化步骤,提高诊断准确性和效率。

图b:实验设计

  • 任务1:肺部疾病识别,数据集分为训练集、验证集和测试集。

  • 任务2:COVID-19临床结果预测,数据集同样分为训练集、验证集和测试集。

图c:肺部疾病识别结果

IRENE算法在识别肺部疾病任务中的AUROC(面积下的接收者操作特征曲线)得分显著高于仅使用图像、非统一模型和多模态Transformer。

图d:COVID-19不良结果预测

IRENE算法在预测COVID-19不良结果任务中的AUPRC(面积下的精确召回曲线)得分也显著高于其他方法。

IRENE算法如何从单一模型变成针对多模态数据的特定处理机制和层

多模态处理机制和层

  1. 多模态嵌入层:包含多个嵌入层,每个模态(如图像、文本、音频等)各自有专门的嵌入层。通过这种方式,模型可以处理多模态数据。

  2. 融合层:在嵌入层之后,IRENE添加了融合层,用于将不同模态的嵌入表示进行融合。这样可以将不同类型的数据整合到一个统一的表示中,便于后续处理。

注意力机制的改进

  1. 模态间注意力:引入模态间注意力机制,专门用于计算不同模态之间的相关性。这样可以更好地捕捉不同模态数据之间的关系。

  2. 多级注意力:IRENE可能使用多级注意力机制,不仅在单个模态内进行注意力计算,还在多个模态之间进行分层注意力计算。

块结构的改进

  1. 自定义块结构:在编码器块中加入了专门处理多模态数据的层,例如模态特定的处理层和模态融合层。

  2. 并行块处理:IRENE可能采用并行块处理机制,同时处理多种模态的数据,减少处理时间并提高效率。

代码分析

假设我们在modeling_irene.py文件中找到以下代码片段:

class MultiModalTransformer(nn.Module):
    def __init__(self, config):
        super(MultiModalTransformer, self).__init__()
        self.text_embedding = TextEmbedding(config)
        self.image_embedding = ImageEmbedding(config)
        self.audio_embedding = AudioEmbedding(config)
        self.fusion_layer = FusionLayer(config)
        self.encoder = Encoder(config)
    def forward(self, text, image, audio):
        text_emb = self.text_embedding(text)
        image_emb = self.image_embedding(image)
        audio_emb = self.audio_embedding(audio)
        fused_emb = self.fusion_layer(text_emb, image_emb, audio_emb)
        output = self.encoder(fused_emb)
        return output
  • TextEmbedding/ImageEmbedding/AudioEmbedding:分别处理文本、图像和音频的嵌入层。

  • FusionLayer:融合不同模态的嵌入表示。

  • Encoder:在融合后的表示上进行编码。

通过这种设计,IRENE可以高效地处理多模态数据,并通过改进的注意力机制和块结构提升性能。

详细代码和实现可以参考GitHub仓库:https://github.com/RL4M/IRENE/tree/main/models

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号