Hierarchical Modular Network for Video Captioning论文笔记

本文最后更新于:2022年7月21日 下午

Hierarchical Modular Network for Video Captioning论文笔记

[TOC]

论文于2021年11月24日发表在了ArXiv上,提出了一个用来进行Video Captioning任务的分层网络,从实体(Entitiy)、动词(Predicate)、句子(Sentence)三个层次来进行建模。其中作者在Entity的部分贡献更大,提出了一个仿照DETR的模块。结果在MSVD和MSR-VTT上SOTA了。

没有放出代码

总体框架

实体模块(Entity)

这个模块的输入特征由三部分组成,第一部分是Object feature,第二部分是2D-CNN feature,第三部分是3D-CNN feature。

其中Object使用Fast RCNN提取,先从视频中选择TT个关键帧(keyframe),从中总共检测出LL个objects,每个object的特征维度为d0d_0。在作者的实现中,视频被分成了15个clip,每个clip有16帧,每个clip选出一帧作为关键帧,检测10个objects,并且预训练模型在Visual Genome数据集上训练。而2D-CNN使用InceptionResNetV2提取特征,3D-CNN使用C3D提取特征。以上特征都被全连映射到dmodel=512d_{model}=512

如图,object特征OO先送入Transformer的编码器得到特征OO'(不做position encoding)。而2D-CNN和3D-CNN的特征C,M\mathcal{C},\mathcal{M}在特征轴拼接之后送入双向LSTM网络再最大池化得到代表整个视频的特征vv。仿照DETR,论文还加上了长度为NN的随机初始化参数QQQ+vQ+v作为解码器的target输入。解码器输出E\mathcal{E},再通过全连得到E\overline {\mathcal{E}}E\overline {\mathcal{E}}的维度是SBERT模型的维度dsd_s

为了监督学习,论文用SBERT提取caption中的名词的特征N\mathcal{N}​(去掉无意义的),然后用DETR中的Hungarian algorithm匹配名词特征与object特征,计算余弦相似度作为loss:Le\mathcal{L}_e

动词模块(Predicate)

这个模块就是一个添加Attention的BiLSTM,运动特征M\mathcal{M}和目标特征ϵ\epsilon作为输入,通过注意力机制得到运动关联的目标特征Me\mathcal{M}^e,然后拼接M\mathcal{M}Me\mathcal{M}^e送入LSTM得到动作特征A\mathcal{A},然后对它最大池化消除时间轴维度,再送入全连把特征维度改成dsd_s,得到a\overline a

为了监督学习,论文用SBERT提取caption中的动词的特征P\mathcal{P}(去掉无意义的),计算余弦相似度作为loss:Lp\mathcal{L}_p

句子模块(Sentence)

这个模块是学习视频整体特征和句子语言特征的。输入2D-CNN特征C\mathcal{C}、内容关联的动作特征Ca\mathcal{C}^a和内容关联的目标特征Ce\mathcal{C}^e。(xx关联指的是对xx使用注意力机制)

上面三者在特征维度拼接,送入双向LSTM得到全局视频特征G\mathcal{G}。同样,最大池化消除时间轴,再送入全连转换成g\overline g,特征维度为dsd_s。然后用SBERT提取整个句子的特征,计算余弦相似度作为loss:Ls\mathcal{L}_s

句子生成模块(Description Generation)

这一部分就是使用LSTM进行句子的生成,输入比较多,如下:

这里面E\bold E是前一个预测单词的embedding,ht1langh_{t-1}^{lang}是隐藏,重点在于前面三个g,a,e\boldsymbol{g,a,e}。三者分别代表整个视频的特征、运动特征和目标特征

三个g,a,e\boldsymbol{g,a,e}如上是拼接而来的,g,a\boldsymbol{\overline g, \overline a}是之前获得过的视频总特征和运动总特征,而?tl\boldsymbol{?^l_t}的变量都是用注意力机制得来的,从左到右分别是对G,A,E,E\mathcal{G},\mathcal{A},\mathcal{E},\overline {\mathcal{E}}的加权求和,权由ht1lang\boldsymbol{h^{lang}_{t-1}}和他们自己得到,如下图。

Loss使用了带ELM的交叉熵,ELM在论文Object Relational Graph with Teacher-Recommended Learning for Video Captioning中提到,引入外部语言模型来解决long-tail问题。(就是改变了一下分布)

本图来自ORG-TRL论文

实验结果

比ORG-TRL高了一点点。

总结

这玩意太不优雅了,注意力机制可算是给他弄明白了hhhh。

而且没有做关于引入外部语言模型的消融实验,在Object Relational Graph with Teacher-Recommended Learning for Video Captioning中TRL加上已经能达到Meteor28.6的程度了。