On the Automatic Generation of Medical Imaging Reports
时间:2018年
Intro
Generation of medical image reports的困难
- 一份完整的报告包括各种形式的信息,包括finding、tag、impression等,如图所示
- 报告中的非正常区域很难找到
- 报告很长,包括很多句子
为了解决以上问题,我们
- 建立了一个multi-task学习框架,预测tag并生成段落
- 提出了co-attention 机制来定位病灶的位置,并生成描述
- 建立了分层LSTM来生成长段落
Approach
overview
a multi-task hierarchical model with co-attention 来自动预测关键词并生成长段落,给一张分割到多个区域的图片,先使用CNN来学习每个patch的特征,然后这些特征喂给multi-label classification (MLC) network 来预测相关的tag,每个tag用word embedding 表示。给定一个图片的tags,它们的word embedding 用作这张图片的semantic feature,然后visual feature和semantic feature 一起喂给co-attention model来生成context vector来同事捕捉视觉和语义的信息,到此为止,encoding部分就完成了
接下来,从context vector开始进行decode。因为医疗报告通常包括多个句子,每个句子描述一个主题,因此我们的模型分层生成报告:它先生成一系列high-level topic vectors来表征sentence,然后从每个topic vector中生成一句话。具体过程是,context vector 输入到sentence LSTM中,通过多个step来生成多个tpic vector,一个topic vector表示了需要生成的句子的语义,给定一个topic vector,word LSTM 以它为输入然后从句子中生成一系列词,这个过程的终止由sentence LSTM控制。
Tag Prediction
将Tag prediction 当作multi-label 分类问题,给定一张图片
I
I
I,我们先从CNN的中间层提取它的特征
{
v
n
}
n
=
1
N
∈
R
D
\{v_n\}^{N}_{n=1}\in R^D
{vn}n=1N∈RD,然后将它喂给MLC 网络来生成
L
L
L个tag的分布
其中
l
∈
R
L
l\in R^L
l∈RL是tag向量,
l
i
=
1
/
0
l_i=1/0
li=1/0记录第i个标签是否出现,
M
L
C
i
MLC_i
MLCi表示MLC的第i个输出,这里的CNN特征使用的是VGG-19最后一个卷积层的特征,然后使用VGG-19最后两层全连接层作为MLC,最后最可能的M个tag的embedding被使用:
{
a
m
}
m
=
1
M
∈
R
E
\{a_m\}^M_{m=1}\in R^E
{am}m=1M∈RE,作为semantic feature
Co-Attention
visual attention的问题之一是它缺少高层语义信息,比如,当看着胸片的右下角而不考虑其他部分会使得我们不知道图片中是什么,而相反,tag总能给出high-level语义信息,因此,我们采用了一个co-attention 机制,来同时处理visual和semantic模态。
在time step = s的sentence LSTM中,联合context vector
ctx
(
s
)
∈
R
C
\text{ctx}^{(s)}\in R^C
ctx(s)∈RC由co-attention网络
f
C
O
a
t
t
(
{
v
n
}
n
−
1
N
,
{
a
m
}
m
=
1
M
,
h
s
e
n
t
(
s
−
1
)
)
f_{CO_{att}}(\{v_n\}^N_{n-1},\{a_m\}^M_{m=1},h^{(s-1)}_{sent})
fCOatt({vn}n−1N,{am}m=1M,hsent(s−1))生成,其中
h
s
e
n
t
(
s
−
1
)
∈
R
H
h^{(s-1)}_{sent}\in R^H
hsent(s−1)∈RH是sentence LSTM在time step
s
−
1
s-1
s−1的隐层状态,co-attention网络
f
C
O
a
t
t
f_{CO_{att}}
fCOatt使用一层全连接网络,根据输入的image feature和semantic feature来计算soft visual attention和soft semantic attention:
其中
W
W
W都是参数,上三个是visual attention网络的参数,下三个是semantic attention的网络,然后visual和semantic网络的context vector 计算为
然后concat这两个向量,输入到全连接层中来得到context vector
Sentence LSTM
sentence LSTM是一个单层LSTM,以 ctx ∈ R C \text{ctx}\in R^C ctx∈RC为输入,生成topic vector t ∈ R K t\in R^K t∈RK for word LSTM,然后决定是否继续或终止caption,通过一个stop control component
Topic generator,我们使用一个深的output layer来强化topic vector
t
(
s
)
t^{(s)}
t(s)中的context information,通过组合隐层状态
h
s
e
n
t
(
s
)
h^{(s)}_{sent}
hsent(s)和joint context vector
ctx
(
s
)
\text{ctx}^{(s)}
ctx(s)来得到,
stop control,我们也使用了一个深层输出层来控制sentence LSTM是否继续,这个层以上一步的和当前的隐层状态
h
s
e
n
t
(
s
−
1
)
h^{(s-1)}_{sent}
hsent(s−1)作为输入并生成分布{STOP=1,CONTINUE=0}:
如果它的值比threshold大,则停止输出topic,word LSTM也会因此停止
Word LSTM
topic vector
t
t
t和START token作为word LSTM的第一个和第二个输入,剩余的输入就是词序列,它的隐层状态
h
w
o
r
d
∈
R
H
h_{word}\in R^H
hword∈RH将直接用来生成词分布:
词序列生成后,最终结果就是它们的concatenation
损失函数
损失函数包括tag的多分类损失函数,sentence LSTM的stop distribution的损失函数和word LSTM的word distribution的损失函数
此外,还有visual和semantic attention的正则化项,
α
、
β
\alpha、\beta
α、β分别是visual和semantic attention的正则化矩阵,则损失为
这个损失让模型将attention均匀的分布到不同的图片区域和tag上
实验
数据集
IU X-Ray,是一个胸片和其报告的数据集,包括7470对图片和报告,每个报告包括:impression,findings,tags,comparison,indication,本次实验只用impression和findings作为目标
预处理将所有字母变成小写,剔除所有非alpha字符,并在词上做了统计信息,发现top 1000的词占据了99%的词,因此仅仅使用top 1000的词,然后选500张图片来验证,500张图片来测试
PEIR Gross
PEIR是一个用来进行医疗教学的数据集,我们使用Gross子集的7442个图片,包括21个子类的数据,其中每个图片只有一句描述。
结论
本文使用hierarchical LSTM 比纯粹的CNN-RNN的模型好在它不仅仅使用一个LSTM,通过多个LSTM使得模型对长句有了更好的建模能力,image 和semantic feature的结合提升了模型的表现。
问题
- topic假设为一个topic对应一句话,那多句话描述一个topic的情况怎么办