ICCV2021 | 快手联合北大提出多层次对比学习的跨模态检索方法

简介: 近年来,互联网环境中的多媒体内容大量增加,如何通过视频文本相互检索,提升用户获取信息的效率,满足不同的用户对多媒体内容的消费需求变得异常重要。随着短视频内容社区的兴起,多媒体内容的创作门槛变低,UGC 内容成为主流,视频文本检索任务面临更加复杂和困难的挑战。本文针对视频文本检索任务提出层次化对比学习的跨模态检索思路,实现了更加高效且精准的视频文本检索方法,目前该论文已经被 ICCV2021 接收。

微信图片_20211206143625.jpg论文链接:https://arxiv.org/abs/2103.15049

当前主流的视频文本检索模型基本上都采用了基于 Transformer[1] 的多模态学习框架,主要可以分成 3 类:      

  • Two-stream,文本和视觉信息分别通过独立的 Vision Transformer 和 Text Transformer,然后在多模态 Transformer 中融合,代表方法例如 ViLBERT[2]、LXMERT[3] 等。
  • Single-stream,文本和视觉信息只通过一个多模态 Transformer 进行融合,代表方法例如 VisualBERT[4]、Unicoder-VL[5] 等。
  • Dual-stream,文本和视觉信息仅仅分别通过独立的 Vision Transformer 和 Text Transformer,代表方法例如 COOT[6]、T2VLAD[7] 等。


微信图片_20211206143705.jpg


由于类别 1 和类别 2 方法在时间开销上的限制,本文提出的 HiT( Hierarchical Transformer with Momentum Contrast for Video-Text Retrieval)[8] 模型采用了类别 3 Dual-stream 的 Transformer 框架,以满足大规模视频文本检索的需求。然而现有基于 Transformer 的多模态学习方法会有两个局限性:

  • Transformer 不同网络层的输出具有不同层次的特性,而现有方法并没有充分利用这一特性;
  • 端到端模型受到显存容量的限制,无法在一个 batch 内利用较多的负样本。


针对上述 2 个局限,本文提出(1)层次跨模态对比匹配(Hierarchical Cross-modal Contrast Matching,HCM),对 Transformer 的底层网络和高层网络分别进行对比匹配,解决局限 1 的问题;(2)引入 MoCo[9] 的动量更新机制到跨模态对比匹配中,使跨模态对比匹配的过程中能充分利用更多的负样本,解决局限 2 的问题。实验表明 HiT 在多个视频-文本检索数据集上取得 SOTA 的效果。
HiT 模型主要有两个创新点:

  • 提出层次跨模态对比匹配 HCM。Transformer 的底层和高层侧重编码不同层次的信息,以文本输入和 BERT[10] 模型为例,底层 Transformer 侧重于编码相对简单的基本语法信息,而高层 Transformer 则侧重于编码相对复杂的高级语义信息。因此使用 HCM 进行多次对比匹配,可以利用 Transformer 这一层次特性,从而得到更好的视频文本检索性能;
  • 引入 MoCo 的动量更新机制到跨模态对比匹配中,提出动量跨模态对比 MCC。MCC 为文本信息和视觉信息分别维护了一个容量很大并且表征一致的负样本队列,从而克服端到端训练方法受到显存容量的限制,只能在一个相对较小的 batch 内寻找负样本这一缺点,利用更多的负例,从而得到更好的视频和文本表征。


方法


HiT 模型整体流程如图所示。输入视频经过视频编码器,输入文本经过文本编码器,然后在 2 种网络层级(特征底层、语义高层)上分别使用 2 种检索方式(文本检索视频、视频检索文本)共完成 4 次跨模态对比匹配。其中编码器都是基于 Transformer 结构,4 次跨模态对比匹配均使用上文提到的 MCC,构建了 4 个负样本队列和对应基于动量更新的 Key 编码器。

微信图片_20211206143711.jpg


编码器


本文提出的 HiT 模型中,编码器有视频编码器和文本编码器两种,视频编码器采用 4 层 Transformer 结构,文本编码器采用 12 层 Transformer 结构。模型的视觉输入包括视觉特征Embedding、视觉Segment Mask、Position Embedding和Expert Embedding。抽取视频编码器的第一层输出作为视频低层特征,最后一层的输出作为视频高层特征。后文有实验对比选取不同的网络层输出对最终结果的影响。


动量跨模态对比(MCC)


现有的端到端多模态学习方法受到显存容量的限制,在参数更新的过程中,只能在当前 batch 内选取很少的负样本进行交互,如果能在这一过程中加入更多的负样本参与计算,对模型得到更好的视频和文本表征是有帮助的。因此,本文引入 MoCo 的动量更新机制到 HiT 模型中。以特征层的对比匹配为例,如下图所示,对视频和文本分别构建负样本队列,对应图中的 Memory Bank,Memory Bank 中存储的表征来自于 Key 编码器。在特征层共进行了两次对比匹配:(1)文本 Query 编码器与视觉 Memory Bank 对比匹配(2)视觉 Query 编码器与文本 Memory Bank 对比匹配。在参数更新的过程中,Query 编码器的参数通过梯度下降更新,文本 Key 编码器的参数基于文本 Query 编码器的参数进行动量更新,视觉 Key 编码器的参数基于视觉 Query 编码器的参数进行动量更新。与单模态的 MoCo 只维护两个相同结构的编码器不同,本文提出的 MCC 为视觉信息和文本信息分别构建了不同结构的编码器,并设计了新颖的参数更新方式,解决不同模态信息之间由于模态差异而带来的难以优化的问题。

微信图片_20211206143714.jpg


层次跨模态对比匹配(HCM)
对于一般的特征提取网络,底层结构偏向于提取输入信息的低层特征,例如输入文本的基本语法结构;高层网络结构则偏向于提取高层特征,例如输入文本的语义信息。基于这个特点,本文提出层次跨模态对比匹配,让视频-文本分别在特征和语义两个层次上进行两次对比匹配,如下图所示。模型共完成 4 次跨模态对比匹配,分别对应 2 个网络层级(特征层,语义层)和 2 种检索方式(文本检索视频、视频检索文本)。每次对比匹配使用 InfoNCE 作为损失函数,因此最终损失函数是 4 个 InfoNCE 的加权求和,本文中权重超参数均设置为 1。

微信图片_20211206143717.jpg


实验
研究进行了消融实验,验证提出的各个模型组件、以及不同参数值对最终结果的影响。

模型在 MSR-VTT、ActivityNet Captions 和 LSMDC 数据上与其他方法的对比:

微信图片_20211206143720.jpg


微信图片_20211206143723.jpg


验证 MCC 的作用,模型使用 MCC、使用不同参数的 MCC 对最终结果的影响。可以看出使用 MCC 的 rsum 结果都优于未使用 MCC 的模型,并且较为有趣的是,随着负样本队列 Memory Bank 容量的增大,rsum 结果先提升后下降,由此可以看出,Memory Bank 的容量不宜设置太大。

微信图片_20211206143730.jpg


本文创新地提出层次对比匹配 HCM,实验对比了不同的 HCM 策略对最终结果的影响。不过这些策略整体的思路是相同的,都是直接选取文本和视觉编码器某一层的输出,对二者进行对比匹配,这里是否可以有其他的 HCM 策略可以更好地利用 Transformer 的层次特性,有待后续研究。

  1. HiT:本文提出的基础 HiT 模型,在特征层(底层)和语义层(高层)进行了 2 个层次上的对比匹配,特征层匹配选取 (Video Encoder-Layer-1, Text Encoder Layer-1),语义层匹配选取 (Video Encoder-Layer-4, Text Encoder Layer-12)
  2. HiT-sl:仅使用语义层的对比匹配
  3. HiT-fl:仅使用特征层的对比匹配
  4. HiT-4-level:除基础 HiT 的 2 个层次外,新增 2 个层次的对比匹配,分别是(Video Encoder-Layer-2,Text Encoder Layer-5)和(Video Encoder-Layer-3,Text Encoder Layer-9)
  5. HiT-3-level-a:除基础 HiT 的 2 个层次外,新增 1 个层次的对比匹配,对应(Video Encoder-Layer-3,Text Encoder Layer-9)
  6. HiT-3-level-b:除基础 HiT 的 2 个层次外,新增 1 个层次的对比匹配,对应(Video Encoder-Layer-2,Text Encoder Layer-5)


微信图片_20211206143733.jpg


样本队列的 Key 编码器使用基于动量更新的编码器,对比如果使用和 Query 编码器相同的梯度更新策略,可以看出基于动量更新的 Key 编码器更优:

微信图片_20211206143736.jpg


对比匹配中使用 InfoNCE 和 Triplet Loss,可以看出 InfoNCE 更优:

微信图片_20211206143739.jpg


模型的视觉输入使用不同 Expert embedding:

微信图片_20211206143741.jpg


使用不同特征融合方式,整体平均池化更优:

微信图片_20211206143744.jpg


总结
本文将 MoCo 方法引入到视频文本检索的跨模态对比学习任务中,通过构建 MMC 模块既实现视觉和文本编码器的交互拖动更新,同时又实现了大规模的负样本对比学习。值得一提的是本文通过 HCM 模块探寻了不同层次的特征匹配的效果,扩宽了主流方法仅使用单一层次维度进行跨模态对比学习的思路。
HiT 已应用在快手多个业务场景中,通过 HiT 产生的embedding,提升了多模态模型表征能力,对视频检索、图文相关性判断、视频内容理解等模型都带来了效果的提升,在视频智能审核、视频冷启动、智能创作等业务场景中发挥重要作用。
参考文献
[1] Attention Is All You Need[2] ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Tasks[3] LXMERT: Learning Cross-Modality Encoder Representations from Transformers[4] VisualBERT: A Simple and Performant Baseline for Vision and Language[5] Unicoder-VL: A Universal Encoder for Vision and Language by Cross-modal Pre-training[6] COOT: cooperative hierarchical trans- former for video-text representation learning[7] T2VLAD: Global-Local Sequence Alignment for Text-Video Retrieval[8] HiT: Hierarchical Transformer with Momentum Contrast for Video-Text Retrieval[9] Momentum contrast for unsupervised visual representation learning[10] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

相关文章
|
人工智能 自然语言处理 安全
面向AIGC的内容风控新技术
【1月更文挑战第19天】面向AIGC的内容风控新技术
705 1
面向AIGC的内容风控新技术
|
11月前
|
机器学习/深度学习 安全 算法
十大主流联邦学习框架:技术特性、架构分析与对比研究
联邦学习(FL)是保障数据隐私的分布式模型训练关键技术。业界开发了多种开源和商业框架,如TensorFlow Federated、PySyft、NVFlare、FATE、Flower等,支持模型训练、数据安全、通信协议等功能。这些框架在灵活性、易用性、安全性和扩展性方面各有特色,适用于不同应用场景。选择合适的框架需综合考虑开源与商业、数据分区支持、安全性、易用性和技术生态集成等因素。联邦学习已在医疗、金融等领域广泛应用,选择适配具体需求的框架对实现最优模型性能至关重要。
2074 79
十大主流联邦学习框架:技术特性、架构分析与对比研究
|
机器学习/深度学习 数据采集 自然语言处理
PyTorch 在自然语言处理中的应用实践
【8月更文第29天】随着深度学习技术的发展,自然语言处理(NLP)领域取得了显著的进步。PyTorch 作为一款强大的深度学习框架,因其灵活性和易用性而被广泛采用。本文将介绍如何利用 PyTorch 构建文本分类模型,并以情感分析为例进行详细介绍。
206 0
|
Java 测试技术 API
拼多多 API 接口申请通过后如何进行测试?
拼多多 API 接口申请通过后,需按以下步骤测试:1. 仔细研读接口文档;2. 搭建测试环境,准备开发工具和模拟请求工具;3. 编写测试代码或使用测试工具;4. 设计测试用例,包括正常、异常和边界情况;5. 验证测试结果,检查返回值和错误处理;6. 记录和分析测试结果,确保 API 的稳定性和性能。
|
JSON Rust 安全
【一起学Rust | 框架篇 | Viz框架】轻量级 Web 框架——Viz
【一起学Rust | 框架篇 | Viz框架】轻量级 Web 框架——Viz
587 0
|
JavaScript 前端开发
js和css3实现动态魔方的效果
js和css3实现动态魔方的效果
297 0
|
机器学习/深度学习 自然语言处理 算法
【天幕系列 03】深度学习领域的最新前沿:2024年的关键突破与趋势
【天幕系列 03】深度学习领域的最新前沿:2024年的关键突破与趋势
1804 3
|
Java
Java的double值保留2位小数
【6月更文挑战第16天】Java的double值保留2位小数
651 0
|
敏捷开发 缓存 安全
阿里云云效产品使用问题之如何对任务进行分类
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。