关注公众号,发现CV技术之美

 写在前面

对比学习已被广泛用于训练基于Transformer的视觉语言模型,用于视频-文本对齐和多模态表示学习。本文提出了一种token感知级联对比学习(TACo) 算法,该算法利用两种新技术改进了目前的对比学习。

第一个是token感知的对比损失 ,它是通过考虑单词的句法类来计算的。这是由于对于视频-文本对,文本中的内容词,如名词和动词,比功能词更有可能与视频中的视觉内容对齐。其次,作者采用了级联采样 方法生成一组少量hard negative样本,以有效地估计多模态融合层的损失。

为了验证TACo的有效性,作者为一组下游任务优化了预训练的模型,包括文本-视频检索(YouCook2、MSR-VTT和ActivityNet)、视频动作定位(CrossTask)、视频动作分割(COIN)。结果表明,与以前的方法相比,本文的模型在不同的实验设置中获得了一致的改进,在YouCook2、MSR-VTT和ActivityNet的三个公共文本视频检索基准上设置了SOTA水平。

 1. 论文和代码

TACo: Token-aware Cascade Contrastive Learning for Video-Text Alignment

论文地址:https://arxiv.org/abs/2108.09980

代码地址:尚未开源

 2. Motivation

在视觉语言(VL)研究的背景下,将语言与视频对齐是一个具有挑战性的任务,因为它需要模型来理解视频中呈现的内容、动态和因果关系。受BERT在自然语言处理方面的成功启发,人们对将基于Transformer的多模态模型应用于视频-文本对齐和表示学习越来越感兴趣。

这些模型通常使用对比学习对大量有噪声的视频-文本对进行预训练,然后以Zero-shot或Fine-tuning的方式应用于各种下游任务,如文本-视频检索、视频动作定位、视频动作分割等等。

在本文中,作者提出了一种新的对比学习变体,token感知级联对比学习(TACo) ,以改进大规模预训练和下游特定任务的视频-文本对齐。TACo对视频语言领域中使用的传统对比学习进行了两种修改。

第一个是token感知的对比损失 ,它是通过考虑单词的句法类来计算的。这是由于作者观察到,给定一个视频及其相应的文本,内容词,如名词和动词,比功能词更有可能与视频中的视觉内容对齐。传统的对比学习通常是在聚合视频中文本和帧中的所有单词后计算损失。

相比之下,token感知的对比损失只使用语法类属于预定义的词集(如名词和动词,比如上图中的“add”, “tomatos”,“pan”和“stir”)的一个子集来计算。

第二种技术是一种级联采样方法 ,以找到一组hard negatives来训练多模态融合层。对于每个视频-文本对,理想的情况是使用剩余的K−1个负视频或文本来计算多模态融合后的对比损失。

然而,当与多模态融合层耦合时,计算对比损失的成本就会变得非常高。解决这一问题的一种传统方法是使用随机抽样来选择负对的一个小子集。

在本文中,作者提出了一种如上图右上方所示的级联采样方法,而不是随机采样。它利用了在多模态融合层之前在L1和L2中计算的视频文本对齐分数,并帮助更有效地学习多模态融合层,而无需任何额外的开销。

 3. 方法

3.1. Framework

从上图可以看出,本文的方法主要有三个模块组成:

Video encoding module

视频编码模块由θ参数化的自注意层实现。输入的视频特征使用一些预先训练的模型提取,如2D CNN或3D CNN。给定输入的视频嵌入,视频编码器从一个线性层开始,将它们投射到与自注意层相同的维度d上。作者用m个特征的序列来表示视频编码器的输出,。特征的数量m取决于采样帧率的选择和视频特征提取器的选择。

Language encoding module

作者分别使用预训练的 tokenizer和BERT对输入文本进行 tokenize和提取文本特征。给定一个原始句子,分别在开头和结尾追加一个“[CLS]”和“[SEP]”。在模型顶部,可以得到一个由n个文本特征组成的序列。这里保证了视频编码器的输出特征维数与语言编码器的特征相同。在训练过程中,更新语言编码器中的参数θ,以适应特定域的文本。

Multi-modal fusion module

多模态融合模块由具有可学习参数θ的自注意层组成。它将两种独立模态的视频特征和文本特征作为输入,然后输出特征。

为了帮助区分视频和语言token,作者使用token类型嵌入层来学习两个嵌入,并将它们分别添加到视觉token和文本token中。与原始的Transformer类似,模型包含了一个位置嵌入层来编码输入序列中的绝对token位置。

上述三个模块组成了本文的视频-文本对齐模型,然后对该模型使用所提出的token感知级联对比损失进行训练。

3.2. Contrastive learning: a revisit

给定一组N个视频-文本对,模型的目标是学习一个最优的评分函数s,这样配对的视频和文本的得分就高于所有其他不匹配的对。从概率的角度来看,将与对齐等价于最大化条件概率,同时最小化所有负对的概率。可以近似为:

其中,是v和t的对齐分数;分母是对所有可能视频的和。在上加入交叉熵损失,就可以推导出NCE损失:

上式中的分母需要对数据集中所有视频的求和,这在现实中是难以处理的。因此,通常会计算从整个数据集采样的一个mini-batch的K个视频文本对上的NCE损失。

理想情况下,希望学习模型的参数,以最小化上述NCE损失,在所有元组上最大化。

3.3. TACo: our approach

在以往的研究中,使用对比学习的方法存在两个问题。首先 ,通过在句子中取“[CLS]”token或句子中所有token的最大值来计算损失。显然,与功能词相比,内容词(如名词、动词)更有可能与视频中的视觉内容或概念保持一致。

其次 ,多模态融合层的高计算成本阻碍了大量负样本的使用,但这对对比学习至关重要。基于这两个问题,作者介绍了TACo ,这是一种简单而有效的方法来改进对比学习。

给定K个视频文本对的一个batch,作者首先使用视频编码器和语言编码器获得视频特征和文本特征。

然后,平均一个视频片段的所有token得到,并取每个文本的第一个‘[CLS]’ token得到。基于和,句子级的对比损失为:

其中,τ1是一个温度参数。视频和文本特征之间计算相似度的方式为点积。通过此方法,优化了θ和θ,以便将视频和文本样本投影到一个对齐的特征空间中。

“[CLS]” token和视频token的平均值忽略了token和帧之间的差异,因此可能不会将单个token(例如,名词和动词)推向特定视频内容帧。为了鼓励正确的对齐,除了句子损失之外,作者还引入了token级别的对比损失:

其中τ2是另一个温度参数;是在第i个文本中感兴趣的token的索引,是在第i个文本中嵌入的第p个token。度量了视频特征和特定token嵌入之间的相似性。首先计算和所有m个视频token之间的点积,然后取m个分数的最大值得到最终的对齐分数。

通过这种方式,该模型使用单个token作为锚点来与视频对齐,作为句子级别对比损失的补充。总的来说,这两个损失被用于以一种token感知的方式优化θ和θ。

Token of interest

上式中需要决定在中应该包含哪些token。在本文中,作者启发式地选择名词和动词作为目标,因为它们在视频中更“具体”。在实现中,名词或动词即使具有相同的类型,也具有不同的区别性。

例如,“人”是一个名词,但信息量比“体操运动员”少。为了反映这一点,作者通过计算它们的逆文档频率(idf)来进一步分配具有不同权重的不同单词。较高的idf意味着它在整个语料库中更独特,因此在计算token级对比损失时将会更重要。

计算损失的另一个问题是,由于BERT tokenizer,token通常是子字。因此,对于所有属于同一单词的token,作者将相应地分配相同的权重。

在计算了token感知的对比损失后,作者将来自不同模态的特征输入到多模态融合层,以使它们两者之间有更多的交互。与之前的工作类似,作者在(m+n)个输出中采用了与“[CLS]”对应的特征。可以把这看作是两种模态的结合,然后计算对比损失:

其中,是以和为输入的“[CLS]” token的多模态融合输出;是一个线性层中的参数。基于上面的目标,可以联合训练模型参数。

而一个实际的挑战是,由于多模态融合的高计算和显存成本,很难在mini-batch中使用所有(K−1)个负样本。自注意层的复杂性使得难以将所有K×K个对传递到多模态层中。

之前的工作通过随机采样将负样本的数量减少到来解决这个问题。然而,随机选择负样本可能会导致次优的学习。因此,作者引入了一种级联采样策略 来寻找hard negatives,而不是随机采样。

Cascade hard negative sampling

为了降低上式的计算成本,作者在所有可能的视频文本对中选择一个最困难的小子集。然而,使用上式来计算所有对的对齐分数,然后选择hard negatives是一个“鸡和蛋”的问题。因此,作者提出使用在融合之前的特征上计算的所有视频-文本对之间的相似性。

具体来说,对于每个文本-视频对,作者取它们计算的全局相似性和聚合中所有感兴趣的token。然后,作者将这两个相似性相加为给定对的对齐分数。

对于每个文本,作者选择了前个对齐的负视频样本,反之亦然。然后得到的个对被送入多模态融合层。通过这种策略,可以有效地选择negative samples,而无需额外的计算成本。由于多模态融合层具有更多的能力(参数)来区分这些hard negatives,因此本文的采样策略自然促进了三个对比损失之间的联合优化。

3.4. Objective

本文方法的训练目标是通过最小化上述三个对比损失的组合来找到最优的:

其中,λ是token级别损失的权重(默认值为0.5)。在推理过程中,作者通过将所有三个评分函数的对齐得分相加来进行预测。

 4.实验

4.1. Text-video retrieval

4.1.1 Comparing with baselines

Video representations

上表展示了本文的方法在具有不同视频特征的YouCook2和MSR-VTT上的文本-视频检索性能。可以看出,在HowTo100M上预训练的S3D以巨大的性能优势优于其他特征。

Component Analysis

上表展示了不同损失函数和级联采样的消融实验结果,可以看出,本文提出的损失函数和级联采样对于性能的提升都是重要的。

Tokens of Interest

上表展示了用不同的单词作为Tokens of Interest的结果,可以看出,使用动词和名词作为Tokens of Interest的实验结果是最好的。

4.1.2 Comparing with state-of-the-art

Results on separate datasets

上表展示了三个视频文本检索数据集上,本文方法和其他方法的实验结果对比。

Zero-shot and finetuned performance

上表展示了Zero-shot方案下和微调方案下,TACo和其他方法的比较。

上表展示了YouCook2和MSR-VTT数据集上,本文方法在zero-shot设置的性能。

4.2. Other video-related tasks

为了验证本文方法的泛化性能,作者在CrossTask数据集上进行了action step localization任务,结果如上表所示。

 5. 总结

本文介绍了TACo,一种简单而有效的学习视频-文本对齐的对比学习方法。它旨在解决当前对比学习pipeline中存在的两个问题:缺少细粒度对齐多模态融合的低效采样

在不引入任何额外参数的情况下,本文的方法在各种评估指标下的三个文本-视频检索基准上取得了良好的结果。作者进一步证明了学习到的表示可以有效地迁移到其他任务上,如动作定位和分割。基于所有这些结果,作者认为TACo是传统对比学习pipeline的一个很好的选择。

▊ 作者简介

研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。

知乎/公众号:FightingCV

END

欢迎加入「视频检索交流群

ICCV2021 微软CMU提出TACo:同时用三个损失函数进行多模态对齐!性能SOTA!相关推荐

  1. 《CLIP2Video》-腾讯PCG提出CLIP2Video,基于CLIP解决视频文本检索问题,性能SOTA!代码已开源!...

    关注公众号,发现CV技术之美 ▊ 写在前面 在本文中,作者提出了CLIP2Video网络,以端到端的方式将图像语言预训练模型转换为视频文本检索模型.视频和语言学习领域的主流方法试图从大规模视频文本数据 ...

  2. 不同网络结构的特征也能进行对比学习?蚂蚁美团南大阿里提出跨架构自监督视频表示学习方法CACL,性能SOTA!...

    关注公众号,发现CV技术之美 本文分享 CVPR 2022 论文『Cross-Architecture Self-supervised Video Representation Learning』,提 ...

  3. 地表最强VLP模型!谷歌大脑和CMU提出极简弱监督模型

    来源:arxiv 编辑:Priscilla 好困&新智元 [导读]谷歌大脑与CMU华人团队提出全新图像+文本预训练模型SimVLM,在最简单的模型结构与训练方式下也能在6个多模态基准领域达到S ...

  4. 面向开放域密集检索多视图文档表示学习,微软提出​MVR,性能SOTA!(ACL 2022)...

    关注公众号,发现CV技术之美 本文分享 ACL 2022 论文『Multi-View Document Representation Learning for Open-Domain Dense Re ...

  5. ICCV2021 | 如何高效视频定位?QMUL北大Adobe强强联手提出弱监督CRM,性能SOTA

    关注公众号,发现CV技术之美 ▊ 写在前面 视频活动定位(Video activity localisation)因其在自动定位未修剪和非结构化视频中,根据语言描述定位最显著视觉片段方面的实际价值,获 ...

  6. CMU 15-445实验记录(三):Project 2 B+Tree的插入与删除

    CMU 15-445实验记录(三):Project 2 B+Tree的插入与删除 B+Tree的删除的五种情况: 叶结点被删除后没有underflow,直接删除对应的key和recordPtr即可 叶 ...

  7. 微软体感设备Kinect上市三天即遭黑客破解

    微软体感设备Kinect上市三天即遭黑客破解 上周,一家名为Adafruit Industries的美国公司悬赏2000美元,号召个人或团队开发开源Kinect驱动,以便能将这一技术应用到Xbox 3 ...

  8. SimVLM:拒绝各种花里胡哨!CMUGoogle提出弱监督极简VLP模型,在多个多模态任务上性能SOTA...

    关注公众号,发现CV技术之美 本文介绍论文『SimVLM: Simple Visual Language Model Pretraining with Weak Supervision』,由 CMU& ...

  9. MoCo不适用于目标检测?MSRA提出对象级对比学习的目标检测预训练方法SoCo!性能SOTA!(NeurIPS 2021)...

    关注公众号,发现CV技术之美 本文分享 NeurIPS 2021 论文『Aligning Pretraining for Detection via Object-Level Contrastive ...

最新文章

  1. 查看已安装tensorflow版本
  2. vector大小为1,如果直接输出它-2,为何不是-1?
  3. RDS最佳实践(三)—如何制定相关的流程来规范RDS的使用
  4. 数组中子数组求最大和
  5. python输入input数组_python怎么输入数组
  6. javascript 框架_克服JavaScript框架疲劳
  7. 调用discuz编辑器发布帖子显示html代码的解决办法
  8. power bi dax_M语言和Power BI中的DAX之间的差异
  9. 关于安装PHP补装PDO与PDO_MYSQL操作
  10. dedecms读取多个类别信息
  11. [对于蓝桥杯要说的一二体会]
  12. 扫地机器人的人工智能与传感器
  13. 台式计算机有无线网卡吗,台式机无线网卡怎么用?图解在这自己收藏
  14. 如何设置IE为默认浏览器?如何设置谷歌chrome为默认浏览器?
  15. AUTOCAD——倒角命令、圆角命令
  16. bash, sh, dash 傻傻分不清楚
  17. 路由实验5多区域OSPF
  18. 可视化系列汇总——相关关系图形
  19. 【精读文献】1 用于改进脑电图癫痫分析的自监督图神经网络
  20. 信息系统项目管理-项目成本管理-(七)

热门文章

  1. 项目管理随感-项目管理是什么?
  2. python中os模块教程_python os模块功能和方法总结
  3. api postmain 鉴权_WebAPI常见的鉴权方法,及其适用范围
  4. ios xcode文件前缀_IOS Xcode开发中 文件名的后缀名m,mm,cpp,h区别
  5. 计算机密码学奖,上海交通大学计算机科学与工程系(CSE)
  6. java导出excel_Hutool Java 工具类库导出 Excel,超级简单!
  7. dict后缀_学习词根dict 成片记单词
  8. ha linux 设置虚拟ip_如何在虚拟机中设置CentOS静态IP?
  9. keil运行c语言输入函数,keil 编译器V6 定义函数在ram中运行-和在指定地址定义常量,keil编译器...
  10. oracle sql的应用场景,oracle 3个适用sql场景