Show, Control and Tell: A Framework for Generating Controllable and Grounded Captions
时间:2019 CVPR
Intro
当前的多数Image caption模型缺少可控性(controllability)和可解释性(explainablity),这使得它与人类智能不同,因为人类能够选择各种描述图片的角度,并根据手头上的任务选择最合理的描述。本文提出了Show,Control and Tell,他可以根据控制信号(一个序列或者一个图片的区域集合)来进行多样的描述
本文的主要贡献
- 提出了一个可通过外部信号控制的image captioning模型
- 模型通过预测noun chunck序列来精确考虑句子的等级结构,同时考虑视觉和语言上的不同,在word level提供额外的grounding
- 在diversity和caption quality上达到了Flick30k和COCO的SoTA水平
Approach
自然语言本身是分级的,在低层次上,一个句子可以想象为一个词的序列:在描述图片的情况下,我们可以区分visual words,它们是图片中出现的词(object attribute),textual words,图片中未直接体现的词,分析词在句法上的依赖性,我们可以发现更高的抽象,其中词可以组织成树的形状:在dependency tree里,每个词相互连接如图所示:
给一个dependency tree,名词可以和它们的修饰词分组在一起,形成none chunks,如上图,同一颜色框中就是一个none chunk,一个none chunk就基于图片中的一个区域,且图片也可以分成多个区域,每个对应一个none chunk
描述图片的方式可以由不同的chunk序列决定,因此caption根据考虑的区域而不同,因此我们设计一个模型,它接受序列或者图片区域集合作为控制输入。
Generating controllable captions
给定一个图片 I I I和一个序列集合 R = ( r 0 , r 1 , . . , r N ) R=(r_0,r_1,..,r_N) R=(r0,r1,..,rN)作为输入,我们的caption模型的目标是生成序列 y = ( y 0 , y 1 , . . . , y T ) y=(y_0,y_1,...,y_T) y=(y0,y1,...,yT),它能够描述 R R R中所有的区域,同时保证语言的流畅性。
我们的模型接受 I I I和 R R R为输入,其中R作为控制信号,然后预测两个输出分布,分别是word level和chunk level的句子表示:词的概率 p ( y t ∣ R , I ; θ ) p(y_t|R,I;\theta) p(yt∣R,I;θ),以及切换chunk的概率 p ( g t ∣ R , I ; θ ) p(g_t|R,I;\theta) p(gt∣R,I;θ),其中 g t g_t gt是bool的chunk-shifting门,生成的过程中,模型维持一个指向 r i r_i ri的指针,并且根据 g t g_t gt决定是否切换到下一个位置
为了生成caption,我们使用了自适应attention的RNN,每一步中,模型根据
h
t
−
1
,
r
t
,
w
t
h_{t-1},r_t,w_t
ht−1,rt,wt计算
h
t
h_t
ht,因此
h
t
=
R
N
N
(
w
t
,
r
t
,
h
t
−
1
)
h_t=RNN(w_t,r_t,h_{t-1})
ht=RNN(wt,rt,ht−1),训练的时候
r
t
r_t
rt和
w
t
w_t
wt是ground-truth region set和word,测试的时候,
w
t
w_t
wt从模型输出的第一个分布中采样,选择的下一个region从模型输出的第二个分布中采样
chunk-shifting gate,LSTM首先计算一个chunk哨兵
s
t
c
s^c_t
stc,
其中
m
t
m_t
mt是cell memory,然后计
h
t
h_t
ht和哨兵向量的兼容性,以及
h
t
h_t
ht和
r
t
r_t
rt的兼容性,通过单层神经网络来计算
shift chunk的概率计算为
Adaptive attention with visual sentinel,当chunk-shifting gate预测chunk的结束,就将生成的过程和控制信号R连接了起来,当
r
t
r_t
rt被选中后,就需要第二个机制来在这个区域中区分visual和textual words,为此,我们建立了adaptive attention mechanism with a visual sentinel
visual sentinel和之前一样
然后生成attentive distribution
然后计算attention加权结果,context vector,作为网络的输入
Objective
损失函数由两个预测结果决定,一个是ground-truth预测结果,另一个是caption结果,使用交叉熵损失
根据之前的工作,我们在交叉熵上预训练了之后,使用强化学习继续优化,特别的是,我们使用self-critical sequence training 方法,
caption quality在与人类评判更一致的CIDEr-D上进行优化,alignment在基于Needlemen-Wunsch算法的score上进行优化
controllability through a set of detections
这里设计了一个网络对 R R R进行排序
Result
Conclusion
本文提出了Show,Control and Tell模型,引入控制信号来控制image caption的结果