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

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

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

动词模块(Predicate)

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

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

句子模块(Sentence)

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

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

句子生成模块(Description Generation)

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

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

三个$\boldsymbol{g,a,e}$如上是拼接而来的,$\boldsymbol{\overline g, \overline a}$是之前获得过的视频总特征和运动总特征,而$\boldsymbol{?^l_t}$的变量都是用注意力机制得来的,从左到右分别是对$\mathcal{G},\mathcal{A},\mathcal{E},\overline {\mathcal{E}}$的加权求和,权由$\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的程度了。