1、引言
本文的主要注意力在为图片用段落描述,该任务不同于用一句话描述图片。首先作者回顾了相关研究背景。用句子描述图片往往所含的信息有限,目前主要的方法为排序检索、模板套用、直接生成,第三种是目前的研究热点,且第三种方法又演变成一个dense caption的任务,也就是获取图片的多个重要区域,为每个区域用一句话描述,然后结合所有的句子,形成dense caption。这个也有缺点,就是句子之间不连贯。本文提出一种模型,利用物体识别将图片划分几个区域,同时利用层次RNN将段落划分为几个句子,形成对应关系,完成段落生成的任务。本文也说明了image caption和hierarchical RNN(层次RNN)的研究现状,其中层次RNN是另一种避免RNN中梯度消失和梯度爆炸的方法。
2、模型
该模型首先利用物体检测将图片划分为几个不同的部分(faster-RCNN,CNN和RPN),然后聚集各区域的不同信息产生一个具有丰富语义的向量,然后将此向量作为层次RNN的输入,本实验的层次RNN包含两个,句子级RNN(sentence-RNN)和词语级RNN(word-RNN),前者用来判断产生多少句子,后者判断每个句子产生多少单词。最后输出段落。总的模型如下:
以上模型简洁扼要,且清晰具体,流程明确,很好的表示了这个任务。
在连接faster -RCNN和层次RNN中,进行了区域池化的操作,每个区域产生了一个向量,这里,我们对所有的向量进行最大池化,缩减信息量,保留最重要信息。池化操作的公式如下:,Wpool为PxD的矩阵,P为最后生成向量的维度,D为每个区域特征向量的维度。
sentence-RNN是一个维度为512的单层隐藏层的LSTM,cell状态设为0。每个时间,产生一系列隐藏状态h1-hs,每个代表一句话,每个状态有两个作用,1、通过hi的投影和逻辑分类器,产生二分类状态和分布概率。2、hi输入两层全连接层,产生主题向量。
word-RNN是一个两层的LSTM,隐藏层大小为512,接受sentenc-RNN的输出,产生一句话。每一个时间步长,最后一层LSTM的隐藏层输出每个词语的概率,依据概率大小,选择词语,组成句子,最后输出。
结合这些句子,形成段落,最终输出。
3、实验
训练数据包含图片-段落对,段落有S个句子,每个句子有Ni个单词,yij是第i个句子的第j个词,在经过池化后的向量vp,我们将sentence-RNN展开为S步,计算每个句子的状态概率分布。然后输入到S个word-RNN,每个展开为Ni个步长,产生一个概率分布pij,关于第i个句子的第j个词,我们定义损失为如下形式:
这里,我们用三个阈值来控制每个步骤的输出数量,Tstop停止概率,Nmax表示单词最多数量,Smax表示最多句子数。
此外,这里我们也是用转移学习来应用此任务。一是用已经训练好的区域物体识别网络的参数,直接应用到我们的模型;二是用已经训练好的词向量,RNN模型的参数来初始化我们的模型。
本文采用MSCOCO数据集,且设定了一些baseline,且评价系统选用METEOR、CIDEr、BLER。详见论文。获得的结果,如下所示:
4、总结
该论文给我的启发较大,需要再读。