南京大学提出CPD:通过视频-文本对匹配的视频预训练模型
实验在UCF101上获得最优的结果,且HMDB51也非常有竞争力,值得注意的是,本研究使用的数据量远远小于其他方法所使用的数据(1到100 million个视频不等),显示出本研究视频文本匹配的目标函数以及课程学习的策略的有效性。
更多详情,请参看论文原文:
论文链接:
https://arxiv.org/abs/2001.05691
代码链接:
https://github.com/MCG-NJU/CPD-Video
后台回复【210208】可直接下载论文PDF~
一、研究动机
现在大部分视频特征的获取都依赖于大规模的人工标注数据集,而视频的标注相比于图片更加昂贵,难以扩展到更大的规模,同时,我们观察到互联网上的视频常常伴有非常丰富的多模态信息,如文本、声音等,与标注信息相比,这些数据存在广泛且易于获得,能够比较容易地扩大到更大的规模。
我们主要利用网络上的视频以及视频本身的描述信息 (Instagram中的视频描述、Youtube中的视频标题),借助contrastive learning的思想预测视频和文本的匹配关系 (Cross-modal Pair Discrimination),对视频网络进行预训练。
通过预训练得到的视频特征在较小的动作识别数据集UCF101和HMDB51数据集上进行微调/训练线性分类器,效果均优于当前的自监督、多模态监督的视频预训练方法。同时,由于硬件资源的限制,与其他预训练的文章相比,我们使用的数据规模也相对较小(300k个视频文本对,单机8卡训练),也希望能为对这方面感兴趣但计算资源有限的同学提供一些参考。
值得一提的是,OpenAI的最新工作CLIP利用与本文非常相似的对比学习的思路,将数据规模扩大至400m个图片和文本对,获得非常令人惊艳的效果,在ImageNet上zero shot的效果可以有监督结果相媲美,也可以作为判别器帮助图像生成模型生成真实高清的图像,展示了这一类方法的巨大潜力。
下面具体介绍一下我们的方法和实验结果。
二、方法介绍
对于一个视频及其对应的文本,我们首先对视频进行采样并对文本进行预处理,通过一个双流网络(视频特征提取网络和文本特征提取网络),分别提取视频的特征,并利用MLP将他们编码到同一特征空间中并进行l2归一化,得到第 个视频特征
和文本特征
。我们的目标为,提高相匹配的视频和文本在特征空间的相似度,推远不匹配视频文本,形式化描述为最大化视频
和文本
相匹配的条件概率。
其中
表示由第 个文本定义的文本类别,
表示用于控制logits尺度的温度,
表示文本数量,实践中我们维护了一个memory bank,每次对其中的特征进行采样作为负样本,以扩大负样本的数量。类似的,我们可以定义文本与视频相匹配的条件概率
,最终的目标函数即为最大化这两个概率的似然。在实现上我们采用Noise-contrastive estimation对目标函数进行优化,也可以采用目前对比学习中比较流行的Info-NCE的形式,具体细节可以参考我们的论文和代码。
我们采用SlowOnly的3D ResNet50作为视频特征提取网络,综合考虑性能和计算代价,采用DistilBERT作为文本特征提取网络。
对于视频所对应的文本,由于没有经过人工的筛选和标准,质量参差不齐,存在大量与视频内容无关的噪声信息,我们采用鲁棒性较好的Transformer结构的DistilBERT模型作为文本特征提取网络,并利用无监督预训练的参数对其进行初始化。
为了更好得利用无监督预训练的语言模型,避免其被噪声以及随机初始化的视频网络所破坏,我们设计了课程学习的策略进行训练。训练分为两个阶段,第一个阶段固定文本网络的参数,只更新视频网络以及mlp的参数,直至训练loss不再下降,再进入第二阶段,同时优化视频和文本网络的参数,但文本网络仍使用比较小的学习率。
3. 训练数据
之前的视频自监督、多模态预训练方法大多直接使用Kinetics数据集中的视频进行训练,虽然没有使用Kinetics数据集中的标签,但是由于数据集中的视频均经过了人工筛选,视频质量比较高,且视频是经过剪辑的,只包含具有预先定义的语义的视频片段,且较为均匀得分布在400个类别中,所以与真实的网络数据还是有比较大的偏差,与自监督、无监督本身的任务设定背道而驰。
为了消除人工干预带来的影响,我们采用了论文OmniSource中从Instagram上爬取的视频以及视频的描述作为数据进行训练,这些视频利用Kinetics-400中的类别进行检索,得到的视频完全没有经过人工的筛选,所以不论是视频还是文本都存在比较大的噪音,我们从中随机采样出300k个视频,并将数据集命名为Instagram-300k。
下面我们给出一些例子,帮助大家更直观地理解视频和文本的情况,也欢迎做视频自监督、多模态的同学使用这一更接近真实场景的数据。
可以看到,文本中包含许多与视频内容直接相关的信息,也包含许多无关信息,甚至错误信息(b、c),视频本身的质量也比较差,如e包含多个镜头转换且拍摄质量较差。
为了与其他方法公平对比,我们也在Kinetics-400数据集进行了试验,我们对数据集中的视频标题进行爬取,除去链接消失或标题为非英语的视频,最终得到210k个视频,为了区别于Kinetics原本数据集,我们称之为Kinetics-210k。
三、实验结果
我们将预训练得到的网络在较小的动作识别数据集UCF101和HMBD51数据集上进行微调/训练线性分类器,与其他自监督、多模态视频预训练方法进行对比。
可以看到,我们的结果在UCF101上获得最优的结果,且HMDB51也非常有竞争力,值得注意的是,我们使用的数据量远远小于其他方法所使用的数据(1到100 million个视频不等),显示出我们视频文本匹配的目标函数以及课程学习的策略的有效性。
我们也给出Kinetics-400数据集上训练knn分类器和线性分类器(LC)的结果。
更多消融实验以及模型的泛化能力实验可以参考论文原文。