Pointing Novel Objects in Image Captioning
1、提出问题
现在的 image caption 模型最关键的限制之一就是它们通常建立在许多 image -caption 对上,即它们只包含了视野中主要的目标。这阻碍了这些模型去描述图片中除了主要部分的新场景或新对象。
图像描述中新目标预测的难点主要来源于两个方面:
- 如何扩充词表?
- 如何学习一个混合网络,可以很好地将识别的对象(单词)整合到输出句子中?
2、创新点
本文提出了一种带指向的长短期记忆(LSTM-P)模型,它有助于词汇的扩展并通过指向机制产生新的对象。
3、方法
我们设计了带指向的长短期记忆 (LSTM-P) 架构,通过 pointing mechanism 将识别的 novel objects 动态的集成到输出句子中。LSTM-P 首先利用常规 CNN 加 RNN 语言模型得到生成词之间的上下文关系,同时,object learners 在目标识别数据集上进行训练,并进一步采用 copying layer 从识别的对象中直接复制单词。
接下来,通过 pointing mechanism 动态生成目标词有两种途径,即 word-by-word 的生成句子和直接从识别的对象中复制单词,pointing mechanism 可以指示何时将新的对象复制到目标句子上。 LSTM-P 的整体训练是通过最小化序列误差和 sentence-level coverage loss 来执行的。我们的模型如图所示:
3.1、Notation
对于 novel object 的图像描述任务,我们的目标是用由 Ns 个单词组成的文本句子 S = {w1,w2, …, wNs} 来描述输入的图像 I。我们将每个图像 I 编码为维度为 Dv 的特征向量 I ∈ \in ∈RDv 。wt ∈ \in ∈RDw 表示句子 S 中的第 t 个单词。Wd 表示为 image-caption 对上的词汇表。Wc 表示为目标识别到的对象词汇表。Ic ∈ \in ∈RDc 表示图像 I 通过 object learners 在 Wc 中的所有对象 Dc 上的概率分布。因此我们的整个词汇表表示为 W = Wd ∪ \cup ∪Wc。为了便于对句子中的对象覆盖程度进行衡量,我们将文本句子 S 中的所有对象作为另一个训练目标,表示为带有 K 个对象词的 bag-of-objects:O = {wo1 ,wo2 , …, woK}.
3.2、Problem Formulation
在 novel object 描述的问题中,一方面,要保证句子的连贯性,另一方面,生成的句子必须包括图像中的所有对象。因此,损失函数定义为:
其中 λ \lambda λ 是一个权衡参数;Ed(I, S) 和 Ec(I,O) 分别是 sequential loss 和 sentence-level coverage loss 。
前者用来衡量 CNN 加 RNN 语言模型生成的单词之间的上下文依赖关系;后者估计输出的句子中所有对象的覆盖程度。
我们为常规的 CNN 加 RNN 语言模型加上了 copying layer ,模型不仅要通过基于 LSTM 的解码器逐字生成来预测每个目标词,还通过 copying layer 从识别的对象中直接复制来预测每个目标词。
因此,Ed(I, S) 可以定义为:
这里的每个目标词 Prt (wt) 的概率是根据基于 LSTM 的解码器在整个词汇表上的概率分布和在从复制层识别的对象上复制的概率分布来测量的。为此,我们设计了一种 pointing mechanism 来决定在每个时间步关注哪种概率分布。
3.3、Pointing Mechanism
我们设计了一种 pointing mechanism 来处理图像描述中的新对象。更准确地说,指向机制是常规 LSTM 的语言模型的基础上加上了一个 copying layer 和一个 pointing behavior 。它可以直接复制识别的对象,还可以处理 novel object ,同时通过语言模型重新训练生成语法连贯的句子。
具体来说,在解码阶段,给定 LSTM 单元在第 t 个时间步的输出 ht,首先计算整个词汇表 W 和对象词汇表 Wc 的两个概率分布。
对于整个词汇表的概率分布,生成的目标词 wt+1 ∈ \in ∈W 的概率为:(4)
其中 Dh 是 LSTM 输出的维度;Md ∈ \in ∈RDw×Dh 是嵌入矩阵。
对于在对象词汇表上被复制的概率分布,我们以当前 LSTM 单元输出 ht 和 object learners 的输出 Ic 为条件,直接获得复制对象 wt+1 ∈ \in ∈Wc 的概率为:(5)
M1c ∈ \in ∈RDw×Dc 和 M2c ∈ \in ∈RDc×Dh是嵌入矩阵; σ \sigma σ是 sigmoid 激活函数; ⊙ \odot ⊙表示逐元素相乘。
接下来,pointing mechanism 动态地封装 ht 以学习何时指向新对象进行复制,使用特征变换产生权重值且使用 sigmoid 函数压缩权重值范围为 [0, 1]。权重值 pt 计算为:
其中 Gs ∈ \in ∈RDw ,Gh ∈ \in ∈RDh 是嵌入矩阵;bp 是偏置。
这里采用权重值 pt 作为软开关,在通过 LSTM 生成单词或直接从识别的对象中复制单词之间进行选择。这样,通过将式(4)和式(5)中的两个概率分布与权重值 pt 动态融合,得到每个目标词 wt+1 在整个词汇表 W 上的最终概率:
其中 ptd 和 ptc 表示通过 LSTM 生成单词或从已识别的对象中复制单词的权重。 ϕ \phi ϕ表示 softmax 函数。
3.4、Coverage of Objects
我们进一步测量对象的覆盖率作为额外的训练目标,以全面覆盖句子中更多的对象。
测量对象的覆盖程度可以看成多标签分类问题。
通过在 pointing mechanism 中聚合所有以权重值 pt 加权的复制概率分布,然后进行 sigmoid 归一化,得到归一化的句子级复制概率分布:
这里每个对象 woi ∈ \in ∈Wc 的句子级概率表示对象被直接复制到生成的句子中的可能性,而不管句子中的位置如何。
因此,句子级别的覆盖损失被计算为多标签分类中的交叉熵损失:
3.5、Optimization
**Training:**我们得到以下优化问题:
其中 λ \lambda λ 是权衡参数。有了这个整体损失目标,这个优化的关键目标是鼓励生成的句子在语言上是连贯的,同时处理图像中的所有对象。
**Inference:**在推理阶段,我们在 pointing mechanism 的指导下,在每个时间步以最大概率从整个词汇表 W 中选择输出词。输出词的嵌入文本特征被设置为下一个时间步的 LSTM 输入。这个过程一直持续到发出结束符号词或达到预定义的最大句子长度。