医学报告生成论文总结【4-24】


前言

提示:主要内容包括2021-2022年的八篇文章,总结一下这些文章的创新点,有不足之处请在评论区指正。

在做出对基础论文的总结之后,我尝试着对最近阅读的八篇最新论文进行总结和分析。这些论文都是医学报告生成领域的最新成果,方法也是五花八门,总结的目的不仅仅是为了罗列,而是寻找方法之间的共性。


一、Cross-modal Memory Networks for Radiology Report Generation

“Cross-modal Memory Networks for Radiology Report Generation”工作利用了一个关键的M记忆矩阵,存储了一些记忆信息,说白了我认为就是高维空间的一些点,通过衡量视觉特征与语义特征与其的距离远近,从而选取一部分离得近的点用于表示视觉与文本各自的query特征,之后经过矩阵映射得到各自的response,视觉的response传入编码器,文本的response传入解码器。

图1 Cross-modal Memory Networks for Radiology Report Generation
在这里插入图片描述
读到这里,不禁会感到疑问,M究竟是怎样将视觉与文本特征联系到一起的,又是怎样去更新的。

经过更加深入地阅读与观察,发现M中有一些行(前面称为高维空间的点)在query阶段既出现在视觉query部分,也出现在文本query部分,图中形象地表示为两个圆形区域的交集中的点,这样的点既与文本特征相邻,又与视觉特征相邻,由此建立视觉与文本的联系,这样看来M也像一个存储器,其中的点既可被视觉所用,亦可被文本所用,联系来源于M。

此外,M如何去更新,初值是什么样子。M被随机初始化,每个点具有和每块视觉特征具有一样的维度d,因此能够建立距离上的联系,在后续并不直接使用图像与文本的特征,而是间接使用与其相近的M中的点作为对应的替代。经过一次又一次的梯度回传,我猜测对于一组patch-text对儿,M中的点将更大程度上向着两圆交集的位置靠拢,因为这个区域的点能够更好得刻画视觉与图像之间的联系,交集中的点增多会产生更小的loss。

而从宏观上看,M最后的样子可能是这边几个点凑一堆,表示一组patch-text对的关系点,那几个点又凑一堆,表示另一组关系点,每小簇相邻的关系点表示特定的文本-图像对应关系。理清了这些,方才发现M的魅力,感慨简直就是天才的想法。

二、Radiology Report Generation with a Learned Knowledge Base and Multi-modal Alignment

“Radiology Report Generation with a Learned Knowledge Base and Multi-modal Alignment”工作利用了对比学习的思想,设置了很多正负样本,并使用triple loss放大了正负样本的差别,将得到的知识存储在M中。

此外,根据图像特征池化结果Zimg得到了样本的分类标签,并进行视觉-标签对齐与视觉-文本对齐,计算对应的loss并进行优化。最后利用池化后的视觉特征Zimg与M进行多头注意力得到结合视觉与文本对应关系的MS,融入视觉特征V,输入解码器生成报告。在推理阶段,M不需要更新,使用之前训练好的M计算MS。

这篇文章用到的几处闪光点大部分是基于先前的工作,比如标签分类、对比学习、三种loss等,但其M的更新用得算是比较新颖,经过不断增加上一时刻经过标准化的Mt-1与文本编码T的多头注意力,来更新M。图中右下角部分正好对应这一环节,q代表Mt-1,k和v代表T,计算下一时刻M的增量,并通过与M相加完成更新。

图2 Radiology Report Generation with a Learned Knowledge Base and Multi-modal Alignment
在这里插入图片描述

三、Radiology Report Generation with General and Specific Knowledge

“Radiology Report Generation with General and Specific Knowledge”工作使用了全局知识与细节知识,其中全局知识来自于预先设置好的知识图,细节知识来自根据图像相似性检索的类似的报告信息。

首先从RotatE方法从RedGraph中提取到图节点与边信息,设置邻接矩阵r(Ne×Ne×400)存储节点之间的邻接关系,并得到包含节点聚合联系的bias。如下公式所示,在计算注意力时加入了bias。
在这里插入图片描述
将注意力设置为多头的样式,增加非线性。得到全局知识。对于细节知识,先计算视觉特征I,将其池化并线性变换得到标签Y,即得到出每个I对应的标签分布。通过对比这些Y与检索库中的Y’的KL散度找到相似的样本,并从样本报告中提取实体entity,比如“pneumothorax or pleural effffusion is seen”=> {pneumothorax, pleural, effffusion},得到实体后,下一步就是获取这些实体对应的specific knowledge,这里用到的也是RedGraph,规模是前面获取全局知识用到的图的40倍大,富含更多的实体联系。有了实体名称与实体联系库,自然而然地就检索出每个实体对应的知识,比如 {pneumothorax, effffusion}
=> {pneumothorax suggestive of bleeding, effffusion located at bilateral,…}。

图3 Radiology Report Generation with General and Specific Knowledge
在这里插入图片描述
对于一张图片,串接所有的这些知识,形成一个句子,输入到Bert模型中进行特征提取,得到Es,表示每张图片的specific knowledge。与之前得到全局知识的方法类似,这里再让视觉特征I与Es进行注意力计算,不同之处是softmax时不需要添加偏置值,这里设置为0。关于这个0,作者给出的解释是因为specific knowledge由检索到的真实序列组成,结构化的信息已经编码到了Es中,故这里不需要再为为注意力的计算添加聚合关系偏置bias。

Concat了视觉特征I、全局知识Cg与细节知识Cs,利用Transformer进行解码生成报告,计算损失并梯度回传。这篇文章的方法非常值得借鉴,效果也是非常好,在IU-Xray数据集上B1达到了0.496,其他指标也是提高了很多。

四、Weakly Supervised Contrastive Learning for Chest X-Ray Report Generation

利用对比学习的方法,设置正负样本,使得最大化正样本之间的相似度,从而更好得匹配图像与文本的联系。值得注意的是,为了增大报告的多样性,在计算对比学习损失时,特意为标签相同的负类样本增大权重,因为在分母上,增大权重意味着降低loss,故引导负类样本往标签相同的方向靠拢,使报告增加多样性,如下公式。
在这里插入图片描述
最后的损失函数由单词生成的损失与WCL损失两部分组成,λ控制份量。

图4 Weakly Supervised Contrastive Learning for Chest X-Ray Report Generation
在这里插入图片描述

五、Automated Generation of Accurate & Fluent Medical X-ray Reports

“Automated Generation of Accurate & Fluent Medical X-ray Reports”是一篇很有参考价值的工作。

图5 Automated Generation of Accurate & Fluent Medical X-ray Reports
在这里插入图片描述
文章由分类、生成、解释作为框架,对于得到的图片特征x,使其对于每个疾病做出若干种线性变换,得到若干个维度为e的φj(x),拼接起来得到n×e的Dimg,表示该视觉特征对应的每种疾病特征。对于文本报告,通过编码器得到隐藏层H,再得到疾病有关的标签Q={q1,q2,…,qn},通过公式
在这里插入图片描述
得到Dtxt,与Dimg融合为Dfused作为结合图片与文本的特征。但是作者认为这样朴素的结合并不能很好得取得很好的报告生成质量,因此考虑到添加一个标签分类模块,获得富含图像-文本-标签信息的特征。这里需要用到一个状态编码S,维度是k×e,k表示状态的数量,状态比如positive, negative, uncertain, unmentioned等,表示每个疾病的存在状态。利用下面公式获取疾病状态概率,p的维度是n×k,表示疾病类别与疾病状态的对应概率关系。
在这里插入图片描述
之后根据每个疾病真实的存在标签计算loss,参与梯度回传。训练阶段,Dstate由yS得到,y也是n×k形状的0-1矩阵,表示真实标签与状态的对应关系,用于引导报告生成;测试阶段Dstate则由pS得到。Dtopic是随机初始化的n×e矩阵,能够表示生成的标签编码,在报告生成过程中也是会不断得参与学习。Denrich由前面得到的Dfused、Dstate与Dtopic相加得到,能够表达更多的关系特征,可用于报告生成阶段。

在报告生成阶段,得到隐藏层状态H,之后计算word概率,这里W是词库编码。
在这里插入图片描述
自然而然,W一帽表示预测的报告。
在这里插入图片描述
但是通过实验发现,目前结果仍不好,作者提到了使用一个解释模块纠正报告生成质量。这就有点类似于GAN的思想,作者将刚才生成的报告作为encoder的输入得到新的隐藏层状态H,然后跟前面的方法一样,得到新的Dtxt,并利用
在这里插入图片描述
公式得到疾病标签与状态对应矩阵(与前面的原理相同,不同的是原先用的是Dfused,这里直接用到了新的Dtxt),还是与前面一样,得到状态损失参与梯度回传。总结一下,到底用了几个损失,总共有三个,分别为分类标签状态损失(度量真实标签状态关系与模型得到的标签状态关系的差别)、报告生成损失、解释损失(度量真实标签状态关系与利用生成的报告得到的标签状态关系之间的差别)。

六、Progressive Transformer-Based Generation of Radiology Reports

“Progressive Transformer-Based Generation of Radiology Reports”将医学报告生成任务视为图像-概括性文本、概括性文本-细节文本两个子任务。

图6 Progressive Transformer-Based Generation of Radiology Reports
在这里插入图片描述
第一个任务使用m2transformer生成了概括性文本,后面使用BART生成Report。论文中写了,将训练报告进行一系列处理。首先是疾病单词提取、状态(比如negation、uncertainty)提取、基于依赖图语法分析的属性提取。对于具体的细节还不是很明白,作者提到他们引用了MIRQItools,回头需要细细地看一下这篇工作。

目前知道的是,第一阶段用到(I,C)对来微调m2transformer模型,第二阶段使用(C,R)对来微调BART模型。关于BART和MIRQtools两篇文章,也需要在之后补一下。

七、A Self-boosting Framework for Automated Radiographic Report Generation

“A Self-boosting Framework for Automated Radiographic Report Generation”利用了GAN的思想,包括两个分支,分别为报告生成与图像-文本匹配。
图7 A Self-boosting Framework for Automated Radiographic Report Generation
在这里插入图片描述
主分支为报告生成分支,有点像老方法,提取Regions视觉特征并通过层级LSTM生成报告。而辅助分支为匹配分支,和主分支共享视觉编码器,此外还有一个报告编码器,用于衡量图像-文本对的匹配情况。

Triple loss在本工作中使用得非常巧妙,在这里,一种triple loss用于区分正负样本,另一种则使图像特征I离生成的报告T-gen的距离小于I离负样本中T一帽的距离,但大于I离真实报告T的距离。第二种triple loss 成为self boosted triple loss,用于将生成的报告视为hard example,增加文本的多样性,这与之前的文章计算WCl损失的方法有点像(前面提到了)。

损失总共包含三部分,一个是标准的报告生成损失,一个是利用Report Encoder比对的真实报告与生成报告的损失,还有一个是文图匹配损失,前10个周期匹配损失是借助标准的triple loss计算,之后的匹配损失由刚才提到的self boosted triple loss得出。

不得不说,这篇文章不仅对前人工作归纳得十分到位,并且提到了创新性十足的想法,值得借鉴。

八、Exploring and Distilling Posterior and Prior Knowledge for Radiology Report Generation

“Exploring and Distilling Posterior and Prior Knowledge for Radiology Report Generation”工作基于Transformer,主要由PoKE、PrKE、MKD三个模块组成。

图8 Exploring and Distilling Posterior and Prior Knowledge for Radiology Report Generation
在这里插入图片描述
文中提到,为了解决样本中病灶区域与正常区域数量相差较大的问题,在PoKE阶段引入了20个常见词汇的embeddings,用于与视觉特征进行对其,具体操作时先由视觉特征作为q,单词特征作为k、v,进行一次Transformer的encoder,得到关注视觉与单词特征的T一帽,再使T一帽作为q,视觉特征作为k、v,再进行一次encoder得到对齐单词信息的视觉特征I一帽,之后将I一帽与T一帽相加得到I’,作为PoKE的输出。实验证明,I一帽与T一帽反过来生成效果不好。

PrKE中,利用更多报告供检索(视为医生临床经验)并使用病症图(视为医生知识),分别生成Wpr’与Gpr’,与I’一起作为MKD的输入。在MKD中,有一个ADA模块,用于融合上述三种特征。
在这里插入图片描述
在该工作中,充分利用了先验知识Wpr、Gpr与后验知识T,得到了更加完备的报告生成模型。

关于T的来源,作者通过后验知识自己找了20个常见的单词并编码;

关于Wpr,作者计算了图像特征I’与报告库中的报告的余弦相似度,挑选了相似度最高的Nk个报告,对其进行编码;

关于Gpr的来源,作者借助了【47】“When radiology report generation meets knowledge graph”的方法,建立了一个Knowledge Graph,主要思想是将之前找到的T个单词视为结点并根据在身体的位置进行分组,每组的结点之间都有双向边,用于记录之间的联系。因此在得到视觉特征I之后,将会根据I的引导得到一组V’,编码后得到Gpr。

总结

分析完成这八篇最新的医学影像论文,感悟很多,相较于之前几年的工作,如今的工作会更普遍地选用Transformer框架作为骨干网络,并使用到对比学习的思想,设置正负样本来使模型更加准确。

有的工作为了使报告生成得更为多样化,在对比学习过程中增大视觉标签与文本标签一致的负样本的权重(在损失函数的分母)从而使FP上升,导致召回率上升、精准率下降。也有的工作通过增加报告生成的精度,在报告生成后将新报告作为输入,使用解释模块依照与之前相似的步骤(未融合视觉特征)重新计算其中的病症与状态之间的联系,纠正报告中不准确的地方。

大量工作都使用了Retrieve的思想,利用原有的报告作为先验知识,找到其与视觉特征相似的几份拿出来提取信息,并通过BERT等模型进行特征提取,从而为最终报告生成抽取更多有用的信息。

有的工作也利用了知识图的思想,使病症作为结点,联系作为边,为报告生成提供丰富的先验知识。还有的工作利用了记忆存储单元M,来存储视觉与文本的对应信息,通过将现有的视觉信息或文本信息在M中查询,能够得到一组相关的M信息,打通了多模态之间信息的交流。

在注意力机制方面,大多用到多头注意力机制,有的工作在注意力中添加了带有位置信息的偏置,也有的工作利用λ之类的参数将多模态的特征一并加入多头注意力并充当k、v,q为H,这些都是特殊的注意力机制,针对不同的模型,用处往往不同,实验时或许也可以从这里入手,找到更好的注意力产生形式。对于对比学习的triple,有的工作对其进行了演变,成为self boosted triple,本文中已经进行了较详细得分析,不得不说这些方法用得都很巧妙。

最后,对于一些知识仍需要补充,因为论文中提到了很多关于先验知识的生成方法,仅给出了参考文献而未给出详尽的说明,需要这段时间尽快去阅读掌握。其中有“When radiology report generation meets knowledge graph”、“Negbio: a high performance tool for negation and uncertainty detection in radiology reports”、“Chexpert: A large chest radio graph dataset with uncertainty labels and expert comparison”。下一阶段,补充一下知识图谱、对比学习、强化学习方面的知识。

  • 16
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值