Semantic Compositional Networks for Visual Captioning论文分享
Semantic Compositional Network for Visual Captioning是2017年发表在CVPR上的一篇论文。它的作者主要来自于杜克大学、清华大学和微软研究院(美国)。在这篇论文发表前,已经有几篇关于是使用语义信息来增强解码器生成语句质量的论文。这篇文章的创新之处在于它提出了一种使用语义信息来和循环神经网络参数进行的集成的方法。多标签分类网络对图像或者视频的分类结果被当作是视觉语义信息。
用于图像描述的普通RNN模型
有图像和对应的描述
。我们首先提取特征向量
。这通常是预训练卷积神经网络的最后输出的特征图。为了表示的简洁,我们用
表示
。长度为T的表述
。不同的描述语句有不同的
。
被线性嵌入
维的低维空间得到
。
的概率可以表示为
。
对于简单的循环神经网络,它的运作可以表示如下,W是输入单词的转换矩阵,U是输入隐藏状态的转换矩阵,C是输入图像特征的转换矩阵。这三个矩阵把输入的三个特征映射到相同的低维实数空间中,其中图像特征只在第一步起作用。但是事实上,作者公布的代码里RNN的每一步都用到了图像特征。
语义概念检测
语义概念的检测有不少方法。这里采用的是多标签分类的方法。具体做法如下:首先从数据集的词汇表中提取中出现频率最高同时含义较为丰富的若干个单词作为图像的语义标签。接着图像有句描述,
是该图像的标签向量。我们把出现在这几句描述中的单词标注为1,否则标注为0。然后在训练集上训练分类模型,在测试集上预测图像的标签概率分布。
这里的损失函数可以表示为。这实际上是单标签多分类网络的交叉熵损失函数的一种推广。多标签分类网络本身是一个多层感知机(MLP)。
SCN-RNN
这里就到了这篇论文的核心之处了。作者使用之前提取出来的图像语义信息来扩展传统的RNN网络参数,让这些权重矩阵成为依赖于标签的权重矩阵的集成。例如,普通的SCN-RNN可以表示成这样。
和
是依赖于语义标签的权重集成。s是语义概念向量。
沿着语义标签向量按元素展开,我们可以这样得到权重的集成。,其中
,
,
,
是隐藏状态单元数,
是单词嵌入空间的维数。
这样模型参数量太大,作者使用了矩阵分解的方法来降低参数量。做法如下
在这里,,
,
,
,
,
。然后我们就得到这样的SCN-RNN
,
这里的表示按元素乘。
原始的RNN的参数量为 。SCN-RNN的参数量为
。如果选择较小的
,SCN-RNN的参数量可以少于原始的RNN。
SCN-LSTM
采用相同的思路,我们可以对LSTM进行类似的改造。改造如下:
这里,。对于
,我们有如下定义
模型优化目标是最大化对数似然函数。
实验
作者在MS-COCO、Flickr3k、Youtube2Text三个数据集上做了实验。用ResNet-152提取图像特征,用C3D提取视频的特征。论文提供了基于BLEU、METEOR、ROUGE-L和CIDEr-D这四种指标的实验结果。在当时都取得了不俗的成绩。
下图是在MS-COCO和Flickr3k上的结果
下图是在COCO 服务器上的结果。
下图是在Youtube2Text上的结果。
下图是模型分析,即改变语义向量概率分布对最后模型输出的影响。
下图是只有语义输入没有视觉信息输入的模型与两者皆有模型的对照实验。