论文笔记:Show, Control and Tell:A Framework for Generating Controllable and Grounded Captions

Show, Control and Tell:A Framework for Generating Controllable and Grounded Captions

1、提出问题

现在的图像描述模型仍然缺乏可控性(controllability)和可解释性(explainablity)——即它们的行为很难受到影响和解释。例如,在注意力驱动模型的情况下,架构隐含地选择在每个时间步关注哪些区域,但无法从外部进行监督。虽然可以以多种方式描述图像,但这种架构无法控制描述哪些区域以及每个区域的重要性。这种缺乏的可控性造成了人与人工智能之间不同,因为人类可以以各种方式描述图像,并根据任务和手头的上下文选择最合适的方式。

在这里插入图片描述

图:(a)是具有全局视觉特征的图像描述模型;(b)基于注意力机制的图像描述模型;(c)是本文提出的 Show,Control and Tell 模型,我们的方法可以为给定的图像生成多个描述,这取决于控制信号。

2、创新点

  • 本文介绍了 Show、Control 和 Tell,它们明确地解决了之前的缺点。它可以根据控制信号生成不同的自然语言描述,该控制信号可以作为序列给出,也可以作为需要描述的一组图像区域给出。因此,我们的方法能够按照给定的条件,通过关注不同的区域和以不同的顺序来描述相同的图像。
  • 该模型通过预测一系列名词块来明确考虑句子的层次结构。此外,我们还考虑了 visual words 和 textual words,从而在单词级别提供了额外的grounding。
  • 本文根据一组精心设计的基线评估模型,在 Flickr30k 实体和 COCO 上,我们半自动地用基础图像区域进行增强以用于训练和评估目的。

3、方法

句子是自然语言的结构,但本质上是分层的。在最底层,一个句子可能被认为是一个词序列:在句子描述图像的情况下,我们可以进一步区分描述图像中视觉呈现的东西 visual words 和图像中不存在的实体 textual words 。进一步分析单词之间的语法依赖关系,单词可以组织成树状结构:在依赖关系树中,每个单词都与其修饰词链接在一起。(如图所示)

在这里插入图片描述

图:描述的依赖树示例。名词块用圆框标记,对应的图像区域的块使用相同的颜色来描绘。

给定一个依赖树,名词可以和它们的修饰词分组,从而构建 noun chunks 。每个图像区域对应一个noun chunks,如果存在多个可能的映射,则块也可能与同一类的多个图像区域相关联。

各种描述图像的方式导致不同的块序列,链接在一起形成一个流畅的句子。因此,描述在所考虑的区域有所不同,描述它们的顺序也有所不同。因此我们设计了一个模型,它接受序列或者图片区域集合作为控制输入。

在这里插入图片描述

图:方法的概述。给定一个图像和一个控制信号,该图显示了生成受控的描述的过程和语言模型的架构。

3.1、Generating controllable captions

给定一个图像 I 和一个有序的区域集 R =(r0, r1, …, rN) 作为输入,我们的图像描述模型的目标是生成一个句子 y =(y0,y1, …, yT ) 来依次描述 R 中的所有区域,同时保持语言的流畅性。

我们的模型以输入图像 I 和区域集序列 R 为条件,区域集 R 充当控制信号,并预测对应于句子的 word level 和chunk level 的两个输出分布:在一个时间步生成一个单词的概率为 p(yt|R, I; θ) ;从一个块切换到另一个块的概率为 p(gt|R, I; θ),其中 gt 是一个布尔类型的 chunk-shifting gate。在生成过程中,模型维持一个指向当前区域集合 ri 的指针,并且可以通过门 gt 转移到 R 中的下一个元素。

为了生成输出的描述,我们采用了具有自适应注意力的循环神经网络。在每个时间步,我们根据之前的隐藏状态 ht-1,当前的图像区域集 rt 和当前的单词 wt 来计算隐藏状态 ht,即 ht=RNN(wt,rt,ht-1)。在训练时,rt 和 wt 是t时刻对应的 ground-truth 区域集和单词;在测试时,wt 从模型预测的第一个分布中采样,而下一个图像区域的选择由从第二个分布中采样的 gt 决定:

在这里插入图片描述

其中 {gk}k 是采样门值的序列,N是R中区域集的数量。

Chunk-shifting gate:
我们通过一种自适应机制计算 p(gt|R),其中 LSTM 计算其内部状态并潜在表示之间的兼容性函数。兼容性分数与 rt 中的分数进行比较,并将结果作为切换到 R 中的下一个区域。

LSTM 首先引入一个chunk sentinel st 。计算如下:

在这里插入图片描述

其中 Wig ∈ \in Rd×k,Whg ∈ \in Rd×d 是学习的权重参数;mt ∈ \in Rd 是 LSTM 记忆单元;xt ∈ \in Rk 是 LSTM 在时间 t 的输入; ⊙ \odot 表示逐元素乘积;σ 表示 sigmoid 激活函数。

然后,我们通过单层神经网络计算 ht 和 sentinel 向量sct之间的兼容性分数,同时计算 ht 和 rt 之间的兼容性函数:

在这里插入图片描述

其中 n 是 rt 的区域数;1 ∈ \in Rn 是一个所有元素都设置为 1 的向量;wTh 是一个行向量。

从一个块转移到下一个块的概率定义为:

在这里插入图片描述

在测试阶段,根据 p(gt|R) 采样 gt ∈{0, 1} 的值,并转移到 R 中的下一个区域。

Adaptive attention with visual sentinel:

当块转移门预测块结束后,就将生成的过程和控制信号R连接起来,但一旦选择了 rt,就需要第二种机制来关注其区域并区分视觉和文本词。为此,我们建立了一个带有 visual sentinel 的自适应注意力机制。

visual sentinel 类似于上面的公式,定义为:

在这里插入图片描述

Wis ∈ \in Rd×k ,Whs ∈ \in Rd×d 是学习的权重矩阵。

然后在 rt 中的区域和 visual sentinel 向量 svt 上生成一个注意分布:

在这里插入图片描述

其中 [·] 表示拼接操作。

基于注意力分布,我们获得了一个上下文向量,可以将其送到 LSTM 作为网络的输入:

在这里插入图片描述

请注意,上下文向量主要是 rt 中的一个区域或 visual sentinel 的近似值。然而,rt 将根据块转移机制在不同的时间步变化,因此遵循控制输入。该模型可以通过 visual sentinel 交替生成视觉和文本词。

3.2、Objective

图像描述模型使用考虑模型的两个输出分布的损失函数进行训练。样本的损失函数定义为:

在这里插入图片描述

我们使用 self-critical 序列训练方法,该方法将 REINFORCE 算法与测试时在推理模型下获得的奖励作为基线。

在每个时间步,我们从 p(yt|R) 和 p(gt|R) 中采样以获得下一个单词 wt+1 和区域集 rt+1。一旦到达 EOS 标签,我们计算采样句子 ws 的奖励,并针对采样单词序列 ws 和块转移门序列 gs 进行反向传播。因此,最终的梯度表达式为:

在这里插入图片描述

其中 b=r(w^) 是使用推理过程获得的句子的奖励(即通过以最大概率对单词和门值进行采样)。然后我们建立一个奖励函数,它联合考虑描述的质量及其与控制信号 R 的对齐情况。

Rewarding caption quality

为了奖励生成描述的整体质量,我们使用图像描述指标作为奖励。我们采用了 CIDEr 指标(特别是 CIDEr-D 分数),该指标已被证明与人类判断的相关性最好。

Rewarding the alignment

我们引入了基于 Needleman-Wunsch 算法的对齐分数。

给定一个预测的标题 y 和它的目标对应物 y *,我们从两个句子中提取所有名词,并评估它们之间的对齐。

我们使用以下评分系统:匹配两个名词的奖励等于它们词嵌入之间的余弦相似度;获得的差距等于最小相似度值的负奖励,即 -1。一旦计算出最佳比对,我们就相对于序列的长度对其分数 al(y, y *) 进行归一化。因此,对齐分数定义为:

在这里插入图片描述

其中 #y 和 #y* 分别表示 y 和 y* 中包含的名词的数量。注意 NW(·,·) ∈ \in [−1, 1]。

(没太看懂)

3.3、Controllability through a set of detections

设计了一个方法对 R 进行排序(没太看懂)

3.4、Implementation details

Language model and image features

我们使用具有两个 LSTM 层的语言模型:底层的输入是当前的单词、图像以及第二层的隐藏状态。该层通过 visual sentinel 和块门来预测上下文向量。相反,第二层将上下文向量和第一层的隐藏状态作为输入,并预测下一个词。

为了提取图像区域,我们使用 Faster R-CNN 的 ResNet-101。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值