【论文阅读】Generating Radiology Reports via Memory-driven Transformer (EMNLP 2020)

news2024/11/24 18:34:52

资料链接

论文原文:https://arxiv.org/pdf/2010.16056v2.pdf
代码链接(含数据集):https://github.com/cuhksz-nlp/R2Gen/

背景与动机

在这里插入图片描述
这篇文章的标题是“Generating Radiology Reports via Memory-driven Transformer”,发表于会议EMNLP2020。它的主要目的是使用记忆驱动的Transformer生成放射性医学影像的报告。
在这里插入图片描述
文章中给出了一个示例的X光片的报告,包含发现和印象两个部分。

文章指出,相比较于传统的NLP任务,放射性医学影像报告生成任务会需要生成内容包含很长的文本描述,详细地解释图像内容,同时生成的内容还具有模板式的特征,因此传统的基于字幕的方式对于这个任务是不太够用的。
在这里插入图片描述
在过往的研究中,针对这一任务,往往采用的两种方式是基于数据库检索的方法和基于模板的方法,然而这两种方法都依赖于大量的数据集或手工创建的模板,存在一定的局现性。

方法

首先在整体的架构方面,采用了一个端到端的Transformer架构,输入的图像序列首先进行Patch Partition操作,然后输入到特征提取网络中,得到一组Patch Features,用于Transformer的输入。论文对Transformer的改进主要集中在Decoder部分。
在这里插入图片描述
可以看到上面右侧这张图,在Decoder部分作者主要引入的两个机制是Relational Memory和Memory-driven Conditional LN。用一个公式来表示的话,其中hi是来自encoder的输出序列,yt是t时刻生成的新token。整体仍然保留了Transformer的架构,只是在它的基础上有一些模块的增加和改变。

为了描述方便,后面就统称Relational Memory为RM, Memory-driven Conditional LN为MCLN。
在这里插入图片描述
首先来看到RM部分。该部分的主要作用是使得模型能够学到更好的report patterns,它和retrieval-based的方法里面的模板的准备差不多,但这里的模板是可训练的,而不是需要手工去做的。

具体看到它的结构,可以看见该部分使用一个矩阵Mt来保存t时刻的记忆信息,根据文章的介绍,该矩阵的每个行是一个存储槽,代表一些重要的模式信息。在decoder生成token的过程中,矩阵结合前面时间步的输出逐步更新,更新的过程参考右边的这三个公式。首先在时间步t上,将来自时间步t-1的矩阵Mt-1通过一个Wq转化为Q,然后将Mt-1和前一时刻的输出yt-1连接,并转化为K和V,一起送进多头注意力模块中,得到结果Z。

考虑到这个记忆存储器是循环运行的,所以随着时间推移可能会发生梯度消失或爆炸的问题,因此引入了残差连接,同时引入了类似于LSTM中的门机制。

门机制的示意图如上面右下角的图片所示,Mt-1是上一时刻的记忆矩阵M,yt-1是上一时刻输出的token,两者分别送入遗忘门和输入门中,最后得到输出Mt。
在这里插入图片描述
接下来看到MCLN部分。这一部分我认为是整篇论文创新点最大的部分,它创新性地将记忆力机制引入到了LayerNorm层中。使得每一时刻的Mt对LN层中的γ和β产生作用。它的思路也不复杂,分别通过一个MLP得到拉长后的Mt对γ和β的影响,然后将它们与原来的γ和β相加,然后再应用LayerNorm。LN的结果作为第一个MultiHead Attention的Q,V和K来源于编码器。

结果

在这里插入图片描述
最后来到结果部分。论文主要是针对IU X-RAY和MIMIC-CXR这两个数据集进行实验。在与baseline对比的过程中,在多个评价指标下都超过了baseline。同时与先前的研究进行比较,也取得了不错的结果。

作者也针对结果进行了调参与分析,发现记忆槽size=3时效果最佳,size=4时产生了性能下降,意味着太大的记忆槽可能会记忆过多的冗余和无效信息,从而对文本生成过程产生负面影响。并且还做了消融实验,比之于BASE+RM,BASE+RM+MCLN生成的报告长度分布更接近于ground truth,这表明将记忆机制应用在更多的内部层中,会对模型生成的内容有更细粒度的控制。
在这里插入图片描述

总结

本文将记忆力机制引入到了端到端的放射性医学影像描述生成的任务重,从而确保了生成结果能够准确、详细地描述输入的影像,并且遵循常规的模式性的描述机制。
在引入记忆力机制的过程中,其更改Transformer的结构的地方比较新颖,在LN层上动刀子,从而将记忆的影响带到了Decoder内部的隐层状态中,获得了更细粒度的控制。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1184032.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[Linux/UOS]同一解决方案下的控制台程序依赖SO库的方法

该方法是基于VS2019的远程调试Linux的方案,使用的是UOS系统,本文不会去详述如何远程调试Linux和如何新建解决方案中的.so项目和.out项目 只关注于如何令.out项目依赖.so,并成功调用运行 以一个如上图结构的解决方案为例子,SysInfo…

开源库windows平台编译

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:…

论文阅读——变化检测

Viewpoint Integration and Registration with Vision Language Foundation Model for Image Change Understanding 只有fused adapter image encoder, viewpoint registration flow, semantic emphasizing module, 和 fully connected layer 训练,其他参数冻结。 F…

MeterSphere 任意文件读取漏洞(CVE-2023-25814)

MeterSphere 任意文件读取漏洞(CVE-2023-25814) 免责声明漏洞描述漏洞影响漏洞危害网络测绘Fofa: title"MeterSphere" 漏洞复现1. 构造poc2. 发送数据包3. 查看文件 免责声明 仅用于技术交流,目的是向相关安全人员展示漏洞利用方式,以便更好地…

使用requests库来发送HTTP请求

首先,你需要安装Python的requests和BeautifulSoup库。然后,你可以使用requests库来发送HTTP请求,并用BeautifulSoup库来解析HTML文档。 import requests from bs4 import BeautifulSouprequests.get(http://www.91hfdm.com) 这行代码会向 ‘…

win11网络连接正常,但是无法正常上网

前言: 这个是一个win11的bug,好多人都遇到了,在孜孜不倦的百度下,毫无收获,终于是在抖音上看到有人分享的经验而解决了这个问题。 找到internet选项,然后点击打开 选择连接 将代理服务器中,为…

数据结构和算法是人工智能的基石

文章目录 1. 引言2. 主要内容3. 联合推荐4. 购买方式5. 总结 1. 引言 数据结构和算法是计算机科学的基石,是计算机的灵魂, 要想成为计算机专业人员,学习和掌握算法是十分必要的。不懂数据结构和算法的人不可能写出效率更高的代码。计算机科学…

leetcode:141. 环形链表

一、题目 函数原型: bool hasCycle(struct ListNode *head) 二、算法 判断不是环形链表,只需遍历链表找到空结点即可。 判断是环形链表,由于链表是环形的,遍历不会永远不会结束。所以要设置快慢指针,慢指针一次走一步&…

Linux开发板安装Ubuntu标准桌面环境(或其他桌面环境)

我们每入手一款开发板,一般配套的固件系统都会默认运行相应厂商定制的桌面环境(在一些桌面环境上定制的)。这个时候有些同学可能不喜欢厂商定制的桌面系统想要安装其他桌面系统比如我们虚拟机上常用的Ubuntu标准桌面系统(不建议因…

迅为龙芯3A5000主板,支持PCIE 3.0、USB 3.0和 SATA 3.0显示接口2 路、HDMI 和1路 VGA,可直连显示器

性能强 采用全国产龙芯3A5000处理器,基于龙芯自主指令系统 (LoongArch)的LA464微结构,并进一步提升频率,降低功耗,优化性能。 桥片 桥片采用龙芯 7A2000,支持PCIE 3.0、USB 3.0和 SATA 3.0显示接口2 路、HDMI 和1路 …

Word背景图片插入,5个简单方法快速完成!

“我想在我的Word文档里加入一些背景图片,让整个文档看起来更美观,但是我不知道应该怎么操作,希望大家帮帮我!” 很多朋友在工作和学习中都会用到Word来编写文章,为Word设置背景图片可以增加文档的吸引力和个性化。Wor…

java入坑之类加载器

一、类加载机制 1.1类加载过程 类加载是Java虚拟机将类的字节码数据从磁盘或网络中读入内存,并转换成在JVM中可以被执行的Java类型的过程。类加载器是Java虚拟机的重要组成部分,负责加载和解析类的字节码,将其转换成Java虚拟机中的类对象&am…

聊聊芯片制造中的金属杂质

在半导体制造过程中,杂质控制至关重要。杂质可以影响半导体的电导率,导致性能降低或者失效。在这些杂质中,金属杂质是最主要的来源之一,这些金属杂质可以通过扩散或者电迁移的方式在芯片中迅速扩散,因此控制金属杂质的…

iOS 让界面元素的文字随着语言的更改而变化——本地化文字跟随

在我的 App 内置的设置中,修改了语言,这时需要让当前界面的文本跟着改变语言。 解决方法是:添加一个观察者,观察 localize 本地语言的通知,然后一有变化就调用自定义的方法执行操作。(而设置中其实是改变了…

ebay、虾皮、Lazada、poshmark等跨境本土店群多账号如何做防关联

首先,需要了解跨境电商店铺关联及防关联的概念。关联指的是在跨境电商平台上,一个卖家拥有并运营多个账户的状态。而防关联则是指电商平台禁止卖家在同一环境下运营维护多个账号的行为。 那么,为什么要防范关联情况呢?其实&#…

CommunicationsException: Communications link failure

CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 通信异常:通信链路故障 最后一个成功发送到服务器的数据包是0毫秒前…

2010年4月27日Go生态洞察:JSON-RPC与接口的故事

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

VUE识别访问设备是移动端还是pc端

一、思路 有些网站需要区分手机端网页和pc端网页,做到不同设备访问不同的网页,增强用户的使用体验,可以在app.vue中作一个判断(navigator.userAgent),然后跳转不同的路由。 二、原理 navigator.userAgent …

3 Paimon数据湖中的表类型详解

更多Paimon数据湖内容请关注:https://edu.51cto.com/course/35051.html Paimon中支持多种表类型,下面我们来看一下。 3.1 全局维度 首先从全局维度来看,Paimon中的表类型可以大致划分为4种: 内部表、外部表、分区表和临时表。 …

AI对抗中的AI:技术展望与应用研究

随着人工智能(AI)技术的迅猛发展,AI系统之间的对抗性冲突也逐渐崭露头角。本文从AI技术的发展与应用入手,探讨如何利用AI技术来打败AI系统。我们将关注领域包括对抗学习、对抗生成网络、强化学习等,并分析潜在应用领域…