Dual Encoding for Video Retrieval by Text
双编码的文本视频检索 16页
(初版是2019CVPR,这是后续的改进)
框架图
原文“特定编码块的输出不仅作为后续编码块的输入,还通过跳过连接进行重用,以贡献于最终的输出” ----------多层特征表示融合
1、提出了视频和文本的双重多级编码:
模型的体系结构基于均值特征池(mean feature pooling)、GRU和CNN。没有多新颖,知识将一个已经有的应用到了视频文本检索领域。
原文“虽然我们使用两个预先训练的cnn来提取帧级特征,但这两个特征在将其输入我们的网络之前会连接起来形成一个单一的向量”在处理的过程中作者将视频和句子使用同样的多级编码框架。
给定一个视频v和一个句子s,网络进行多级并行编码,即mean pooling、biGRU和biGRU- cnn,最终用两个组合向量表示两个输入分别为φ(v)和φ(s)。然后将向量投影到由潜空间和概念空间组成的混合公共空间中。一旦网络被训练好,每一边的编码都是独立执行的,这意味着可以离线处理大规模的视频,并在运行中回答特别的查询。
2、视频多级编码:
①“全局编码”-------------间隔0.5秒取帧,CNN提特征,构成视频特征向量{V1,V2…Vn},第一级特征用平均池化,公式如下:
②“时间层次编码”--------BiGRU,对结果Hv={hv1,hv2…hvn}取平均池化
③biGRU-CNN的局部增强编码,采用了最初为句子分类而开发的1D CNN,Hv作为卷积输入,,r为一维卷积块,包含r = 512个大小为k的滤波器,生成一个n*r的特征图,用max pooling将feature map压缩为固定长度r的向量ck。
最后融合,将这三个层次的输出连接起来,得到输入视频的多级编码
3、文本的多级编码:
对视频编码的架构进行少量修改就适用了。
对单词使用One-hot编码,第一层编码直接对这个向量取平均得到(经典的词袋表示)f1,第二层首先通过将单词的一个热向量与单词嵌入矩阵相乘,将每个单词转换为稠密向量,使用现有的word2vec模型初始化矩阵(该模型对3000万张Flickr图片的英文标签训练word2vec),其余跟视频部分差不多,就是卷积块那K取值不太一样,应该是经过实验测试出来的最佳值。
4、处理后的特征比较方法
由于φ(v)和φ(s)没有相关关系,因此它们不能直接比较。在视频文本相似度计算中,需要将向量投影到公共空间中,作者提出了一种混合投影空间,具体如下:
混合空间学习:
文中提出一种混合空间学习算法来训练我们的双重编码网络。混合空间由一个潜在空间和一个概念空间组成,前者旨在提高性能,后者旨在提高可解释性
(一)学习潜在空间
通过仿射变换将它们投射到一个潜空间中。从神经网络的观点来看,仿射变换本质上是一个完全连通的变换(FC全连接)层。我们还在FC层之后使用了批处理归一化(BN)层,得到潜空间中的视频特征向量f(v)和句子特征向量f(s)为
依旧使用经典余弦相似度(经过实验测试余弦效果最好):
损失:
三重排序损失
(二)学习概念空间
可以用多个概念描述一个特定的视频或句子,学习概念空间也是一种多标签分类问题。
设概念词汇表大小为K,将φ(v)和φ(s)投影到K维的概念空间,与等式8不一样的就是多了一层sigmoid激活函数。g(v)和g(s)大小应该是1*K,对应第i个词与这个视频或句子相关的概率。
将未归一化的g(v)和g(s)利用广义Jaccard相似度计算概念空间中的视频-文本相似度simcon(v, s),
概念级别注释:
在每个训练视频中,自动从相关的句子描述中提取其概念级注释,作者认为一个概念在视频的多个描述中出现,是比较重要的概念,所以基于概念频率得到一个软标签。设y为v的k维基真向量,其第i维的值,即yi,定义为第i个概念出现的频率除以p个句子中所有概念出现的最大频率(用出现次数代替了频率,出现最多的词是dancing,出现了5次,5做分母,其他求对应的次数/5)。
这样就将一个相关的视频句子对(v, s)扩展到一个三联体训练实例(v, s, y)来监督概念空间学习。
损失:
多标签分类中常使用二值交叉熵(BCE)损失,BCE主要用于可解释性,另外增加一个三联体排序损失用于改进视频文本匹配。
总体损失:给定一个训练集D = {(v, s, y)},θ是模型的可学习参数,
5、V-T相似度计算
0<=α<=1是一个超参数,平衡两个空间的重要性,其中两个sim尺度不同,需要要进行min-max归一化放缩