Video Retrieval Using Representations From Collaborative Experts

ryluo 2020-06-14 01:29:22
论文笔记 > 视频检索

Video Retrieval Using Representations From Collaborative Experts

该模型是目前视频检索公开源码的模型中性能最好的模型,其主要思想是将多个模态的数据都通过预训练模型将数据的各个模态提取特征并转换成固定大小和形状的向量,然后使用基于门控思想的注意力机制对各个模态的信息进行加权,最后使用ranking loss进行检索。

Cross-Modal Embedding


Video-text embedding:

目前视频到文本embedding使用比较多的方法是基于图像到文本的embedding,即针对视频中每一帧图像与文本embedding到同一个空间,但是这样没有利用在视频中大量的额外信息,例如动态的动作语音背景音乐等,这些在一定程度上都会影响到人的描述(因为视频检索本身就是基于人的描述然后去数据库中查找相似度最高的视频)。并且,目前很少有人将OCR模态及语音到文本的交叉模态,应用在视频理解中。特别是讲座检索(带有PPT的那种视频)新闻检索、这两种应用的视频中大部分的内容都是以文本的形式呈现。


标注数据的稀缺:

视频检索任务一个关键的障碍就是标注数据匮乏,而对数据进行标注的代价非常的大,所以论文中使用了常用的方法:使用在大量其他数据集中训练过的预训练模型。此外目前也有一些替代方法,例如基于self-supervised, weakely-supervised以及video-text模型。


Video Encoder

论文中的核心思想就是将多个模态(Object, Scene, Actions, Faces, OCR, Speech, Audio)的embedding进行融合,而获取这些模态embedding的方法是通过预训练模型直接对视频数据的不同模态进行特征提取。将这些模态都embedding成一个长度相同的向量. 但是由于是视频数据,特征融合也有专门的技术,在这里对于慢的视觉特征,例如objects和scenes, 使用的是平均池化,对于动态变化的视频和词特征的融合使用的是NetVLAD. 接下来,为了实现它们的组合,应用线性投影(MLP)将这些特定任务的embedding转换为相同的尺寸, 方便后续的融合。

Collaborative Gating

这个门的作用是生成每个模态经过处理后的输出的Attention分数,通过注意力的机制对每个模态的特征进行融合。注意力分数的计算公式如下:

其中$\Psi^{i}(v)$表示的是视频$v$第$i$个模态的输出,$g_{\theta}$是用来处理两个模态关系的函数,$h_{\phi}$是融合不同模态的函数,在论文中$g_{\theta}$和$h_{\phi}$都是多层感知机(MLPs). 上述公式的含义是:最终的注意力分数需要考虑所有情况的两两模态之间的关系,换句话还可以说模态$i$的注意力分数会综合考虑其他所有模态对它的影响,所以最后每个模态的输出如下(也就是经过了注意力机制之后的每个模态的输出):

其中$\delta$操作是一个按元素进行激活函数,$\circ$表示按元素相乘,即Hadamard product, 整个过程如上图中的右半部分。


得到了经过注意力处理之后的每个模态的向量表示,通过Gated Embedding Module模型进行融合,变成一个固定长度的向量。

Text Query Encoder

本文中首先使用预训练的text embedding模型将查询的文本进行处理得到文本对应的word level的embedding。然后将词级别的embedding向量再次通过NetVLAD对其进行聚合(论文中也提出,使用GRU聚合文本特征效果相似)。最终输入的查询文本会被embedding成一个与视频embedding同样大小和形状的向量。

Bidirectional Max-margin Ranking Loss

Ranking Loss:

这个ranking loss本质上是一种metric learning,它是一类损失的总称,它们学习的是一种相对距离,而不在乎实际的值。由于在不同场景有不同的名字,包括 Contrastive Loss, Margin Loss, Hinge Loss or Triplet Loss.

训练数据是以video-text pairs $\{v_i,t_i\}_{i=1}^{N_B}$

其中$N_B$表示的是Batch size,$m$是一个常数超参数,若$\phi_v$表示的是视频的编码向量,$\phi_t$表示的是文本编码向量,$s_i^j$表示的是第$i$个视频$v_i$和第$j$个文本查询$t_j$的相似度,其相似度可以用余弦距离$\phi^T_{v}(v_i)\phi_{t}(t_j)$表示.

Experiments

各模态数据的获取细节:

Object: Frame-level embedding, 使用的是在ImageNet上预训练的SENet-154

Motion: 使用的是I3D inception model

Face: 这个embedding分为两个阶段,首先使用基于SSD的人脸检测器去得到人脸的bounding box; 然后将前面得到的bounding box的区域通过ResNet52模型中,这里的ResNet52是VGGFace2数据上的预训练模型

Audio: 由经过YouTube-8m数据集预训练过的VGGish Model模型得到

Speech-to-Text: 由Google cloud speech API将语音转换成word,然后再使用预训练过的Word2Vec进行embedding。

OCR: 对OCR进行embedding也分为两个阶段,首先将视频的每一帧都经过Pixel Link text detection model,提取含有文本的bounding box。再将前面得到的bounding box区域的图像输入到一个在Synth90K预训练过的场景文本识别模型得到对应的文本,最后再将文本使用Word2Vec进行embedding。

Temporal Aggregation

因为上述大部分模态的数据都是在Frame-level上进行的,没有考虑时间维度的影响,所以作者对于上述没有在时间维度进行处理的模态都进行了Temporal Aggregation, 将一个视频中沿着时间维度将每一帧提取的特征进行融合

实验结果

下面的实验结果可以直接看下面的注释就可以知道每个表格表示的是哪一个实验。




Ablation Studies

Importance of different experts ,不同模态的重要性,需要注意的是下图中的previous指的是加上前面所有方法,例如第一行表示的是只用RGB的结果,第二行表示RGB+Scene,第三行表示RGB+Scene+Motion


Aggregation method的消融实验。


补充知识学习

Self-supervised learning

自监督学习近期进展

Weakly supervised learning

浅谈弱监督学习(Weakly Supervised Learning)

NetVLAD

从VLAD到NetVLAD,再到NeXtVlad

论文阅读-场景识别:NetVLAD