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

0

写在前面

过去十年深度学习的发展,极大地推动了多媒体领域视觉与语言之间跨模态分析的进步。然而,目前还没有一个开源的代码库以统一和模块化的方式来支持训练和部署跨模态分析任务的神经网络模型。在这项工作中,作者提出了X-modaler——一个通用和高性能的代码库,它将SOTA的跨模态任务流程封装到几个通用阶段 。

每个阶段涵盖了目前SOTA方法广泛采用的一系列模块,并允许在不同模块之间进行无缝切换。这使得科研工作者们实现了图像字幕、视频字幕和视觉语言预训练等任务更加灵活,促进研究社区的快速发展。

同时,由于有些阶段(如跨模块态交互)的有效模块化设计是在不同的视觉语言任务中共享的,因此x-modaler可以扩展到跨模态分析中其他任务,包括视觉问题回答、视觉常识推理和跨模态检索。

1

论文和代码地址

X-modaler: A Versatile and High-performance Codebase for Cross-modal Analytics

论文地址:https://arxiv.org/abs/2108.08217
代码地址:https://github.com/YehLi/xmodaler
官网文档:https://xmodaler.readthedocs.io/en/latest/

2

Motivation

视觉和语言是人类智能的两个基本能力。人类通常通过视觉和语言之间的交互作用进行跨模态分析,能够用自然句子描述他们看到的东西(对应image captioning和 video captioning任务),基于给定的图像回答问题(对应VQA任务)。

在过去的五年里,视觉到语言一直是跨模态分析的“最热门”和快速发展的主题之一,出版物数量和工业应用都在显著增长,例如,图像/视频字幕和视觉语言预训练的新兴研究任务的出现。

尽管许多现有的视觉到语言工作已经发布了开源实现,但源代码是在不同的深度学习平台(如Caffe、TensorFlow和PyTorch)中实现的,其中大多数不是以统一的方式构建的。因此,研究人员和工程师必须基于现有的不统一的开源实现,来修改/部署他们自己的视觉-语言任务的idea/应用程序,这严重阻碍了跨模态分析的快速发展。

为了缓解这个问题,作者提出了x-modaler代码库,这是一个基于pytorch的、通用的、用户友好的和高性能的多模态代码库,通过以模块化的方式组织所有组件,可以灵活地实现SOTA的视觉语言技术。x-modaler也是目前第一个针对跨模态分析的开源代码库。

具体来说,从NLP领域的机器翻译获得灵感,视觉到语言模型的典型架构本质上是一个编码器-解码器结构。首先,将图像/视频表示为一组视觉token、CNN特征或通过预处理的高级属性 ,这些视觉表示通过编码器(如LSTM、卷积或基于转换器的编码器)进一步转换为中间状态 。

接下来,基于中间状态,利用解码器在每个时间步长对每个单词进行解码 ,然后用解码策略模块(如greedy decoding或r beam search)生成最终的输出句子 。

跨模态分析的进展很大程度上基于视觉注意力机制,这个机制触发视觉特征(由编码器转换)和文本特征(由解码器生成)之间的跨模态交互,以促进视觉语言之间的关系。因此,在SOTA的视觉-语言技术中,通常采用了一个额外的跨模态交互阶段。

然后整个编码器-解码器结构通过不同的训练策略进行优化( cross entropy loss,  reinforcement learning)。此外,视觉语言的预训练模型超越了典型的编码器-解码器结构,采用了额外的预训练任务(例如,masked language modeling和masked sentence generation)。

通过上面的分析,SOTA的跨模态分析技术可以封装为七个通用阶段:

1)pre-processing,

2)encoder,

3)cross-modal interaction,

4)decoder,

5)decode strategy,

6)training strategy,

7)pre-training

按照这一理念,x-modaler由这七个通用阶段组成,每个阶段都被赋予了一些常用模块的功能。这种模块化设计能够灵活地实现SOTA的视觉语言算法,同时用户可以根据自己idea设计即插即用的模块来代替他们,来促进跨模态分析新模型的产生。

3

方法

上图展示了x-modaler七个阶段的示意图和类图。

3.1 Pre-processing

预处理阶段,将图像/视频和文本句子的输入转换为视觉和文本token。除了典型的tokenizing方法外,还包括许多模块可以选择,以不同的方式表示每个输入图像/视频:

1)直接将CNN+全连接层 的输出特征作为图像/视频特征;

2)通过Faster R-CNN 提出bottom-up的特征;

3)通过预训练的目标分类器 从视觉内容中识别目标;

4)通过Multiple Instance Learning 提取高级语义属性;

5)探索每两个区域之间的语义和空间关系 。

3.2 Encoder

编码器阶段是将视觉/文本token作为输入,并产生中间状态来编码语义内容。通过视觉/文本embedding 对每个视觉/文本token进行转换。编码器的最典型方法是直接采用LSTM 对token序列进行顺序编码。图卷积网络(GCN) 模块可以进一步利用区域间的图结构来加强每个区域级的编码特征。

卷积模块 使用卷积操作,可以代替LSTM中的顺序建模来实现并行化。自注意力模块 ,利用Self-Attention机制,通过探索模态内特征的交互作用,增强局部(区域/帧)特征。

3.3 Cross-modal Interaction

跨模态交互阶段旨在通过鼓励两种不同模态之间更多的交互来促进视觉语言任务。Attention模块 表示基于解码器的隐藏状态来动态测量每个局部图像区域或帧的贡献的传统Attention机制。

Top-down attention模块 探索了object层面的视觉Attention。Cross Attention模块 支持视觉和文本token之间的双向交互。Meshed memory attention模块 利用 memory-augmented的注意力。X-Linear attention模块 建模了空间和通道双线性注意力的高阶交互。

3.4 Decoder

解码器阶段的目标是在每个时间步中基于编码器得到的中间状态,来解码生成每个单词。与编码器阶段的模块类似,该解码器也可以以不同的形式构建:

1)LSTM/GRU ,自动回归地生成每个单词;

2)Convolution ,充分利用卷积来解码句子;

3)Transformer ,首先通过自注意机制捕获单词依赖,通过交叉注意机制进一步捕捉视觉和语言的共同注意,促进单词的生成。

3.5 Decode Strategy

解码策略阶段包括两个模块,用于在推理时生成最终的输出句子:

1)greedy decoding :在每个时间步中以最大概率采样单词,直到生成句末token或达到最大长度;

2)beam search :一种启发式搜索算法,在每个解码时间步中维护一个包含几个最有可能的句子的beam。

3.6 Training Strategy

在训练策略阶段,作者整理了一系列在SOTA的视觉到语言模型中采用的训练策略:

1)cross entropy :用交叉熵损失来惩罚每个单词的预测;

2)label smoothing :通过估计label的边缘化效应来正则化每个分类器的预测;

3)schedule sampling :每个时间步将输入token从ground-truth token更改为前一步估计的token;

4)reinforcement learning :直接用评估时的指标作为reward,来优化整个编码器-解码器结构。

3.7 Pre-training

为了使编码器-解码器结构具有视觉语言预训练的多模态推理能力,作者在x-modelar中还用了预训练阶段,使用了一些经典的预训练任务:masked language masked language ,masked sentence generation , 和visual-sentence matching 。

4

多模态任务

Image/Video Captioning

Image/Video Captioning任务旨在根据输入图像/视频的视觉内容,自动生成描述的句子。作者在x-modelar中实现了一些SOTA的Image Captioning模型( ????2 Transformer,X-LAN)和Video Captioning模型(TDConvED,Transformer),结果如下表所示:

Vision-language Pre-training (VLP)

VLP是在大规模的视觉语言基准数据集上预训练一个统一的编码器-解码器结构,然后在下游任务中微调,实现不同的任务。如上图所示,目前的VLP模型大多是一个two stream的模型:句子和图像的encoder分别获得每个模态的特征,然后 cross-modal interaction模块用于进行多模态的推理,最后decoder用于句子的生成。

Visual Question Answering (VQA)

在VQA中,模型预测了关于一个图像的给定自然语言问题的答案(也就是一个典型的分类任务),模型的结构如上图所示。该模型首先通过图像和文本编码器对图像和输入问题进行分别编码,然后进一步利用跨模态交互模块来实现整体图像问题表示。最后,利用单层MLP作为分类器,基于整体图像问题表示来预测答案。

Cross-modal Retrieval

Cross-modal Retrieval的目标是根据定一个模态样本,从库中搜索另一个模态的对应样本。很自然地,这个任务就是一个rank问题,根据学习到的图像-句子匹配分数,然后对图像/句子进行排序。图像-句子匹配得分可以直接通过图像和句子的编码特征之间的点积来获得。

Visual Commonsense Reasoning (VCR)

VCR解决了两个问题:视觉问题回答和回答理由,这要求模型分别预测答案或判断所选答案的原因。整个结构和VQA相似,首先将图片和文本分别用Encoder进行编码,然后用cross-attention进行多模态交互,最后再用分类器进行结果的分类。

5

总结

在本文中,作者提出了一个用于跨模态分析的通用的和高性能的代码库X-modaler。这个代码库统一了SOTA的视觉语言技术中的常用代码模块,这些模块以标准化和用户友好的方式组织起来。

通过在几个常用的语言视觉数据集(COCO、MSVD和MSR-VTT)上进行的实验,证明了x-modaler为image/video captioning任务提供了SOTA的解决方案。

▊ 作者简介

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

知乎/公众号:FightingCV

END,入群????备注:ACMMM

ACMMM 2021-多模态宝藏!京东梅涛团队重磅开源第一个适用于多个任务的多模态代码库x-modaler...相关推荐

  1. 电子科大(申恒涛团队)京东AI(梅涛团队)提出用于视频问答的结构化双流注意网络,性能SOTA!优于基于双视频表示的方法!...

    本文分享论文『Structured Two-stream Attention Network for Video Question Answering』,由电子科大(申恒涛团队)&京东AI(梅 ...

  2. NAS+CNN+Transformer=ViT-Res!MIT团队重磅开源ViT-Res,精度高于DeiT-Ti8.6%

    关注公众号,发现CV技术之美 本文分享论文『Searching for Efficient Multi-Stage Vision Transformers』,由 MIT 团队重磅开源 ViT-Res, ...

  3. 京东AI研究院梅涛:计算机视觉助力提升服务体验

    https://www.toutiao.com/a6675869896380776972/ 京东AI研究院副院长.计算机视觉与多媒体实验室主任梅涛 3月21日,己亥年人工智能春季创新大会在北京国宾酒店 ...

  4. 京东争抢AI人才,前微软亚洲研究院资深研究员梅涛博士加盟

    计算机视觉和多媒体领域的杰出科学家梅涛博士日前正式加入京东,出任京东集团AI平台与研究部AI研究院副院长,并担任计算机视觉与多媒体实验室主任.他将负责创建计算机视觉与多媒体实验室,以及京东AI平台与研 ...

  5. 大数据24小时:原微软亚洲研究院梅涛博士加盟京东,波兰计划把数字货币纳入反洗钱监管

    [数据猿导读] 原Facebook 人工智能实验室主任杨立昆卸任,改任首席AI科学家:又一国家政策即将出台,波兰计划把数字货币纳入反洗钱监管:计算机视觉专家梅涛博士加入京东,任AI平台与研究部AI研究 ...

  6. IEEE Fellow梅涛:计算机视觉的前沿进展与挑战

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 创造出具有智慧的机器,迈向通用AI是人类长期以来的梦想.当下的AI发展到了哪个阶段? 本文转载自:AI科技评 ...

  7. ACMMM 2021《LSG》性能SOTA!用GNN和GAN的方式来强化Video Captioning的学习!

    关注公众号,发现CV技术之美 本文分享一篇 ACMMM 2021论文『Discriminative Latent Semantic Graph for Video Captioning』,性能SOTA ...

  8. 微软亚洲研究院资深研究员梅涛:原来视频可以这么玩了! | CCF-GAIR 2017

    7月9日,由中国计算机学会(CCF)主办,雷锋网与香港中文大学(深圳)承办的CCF-GAIR 2017全球人工智能与机器人峰会进入了第三天.在CV+专场首场,微软亚洲研究院资深研究员梅涛博士为大会带来 ...

  9. 两个大炸弹:清华大学医学院院长董晨院士回应“24篇论文质疑”;南开校长,曹雪涛团队12篇论文被正式调查“可信性”...

    点击上方"视学算法",选择加"星标"置顶 重磅干货,第一时间送达 本文转载自:科研大匠 近日,学术圈一下来了两个大炸弹: 清华医学院院长董晨院士包括两篇Natu ...

最新文章

  1. JoshChen判断是否微信内置浏览器访问【转载】
  2. 计算机硬件的维护知识,计算机硬件维护知识
  3. 不用额外空间,链接二叉树同一层的每个node
  4. java 对象调用_java 对象调用
  5. jmeter从mysql取值_Jmeter获取数据库值并作为参数请求(转载)
  6. 表观遗传小白逆袭之道:从这 19 个视频开始吧!
  7. oracle批量更新数据从另一表_全市场期货数据的批量下载和更新
  8. python读取一个文件的大小_Python-读取文件的大小
  9. spring3,上传文件ApplicationHttpRequest cannot be ca...
  10. Angular6 依赖注入
  11. CVPR 2018:阿里提出新零样本学习方法,有效解决偏置问题
  12. 达芬奇调色软件 18 for Mac
  13. 计算机工作日志如何调取,怎样查找电脑日志?
  14. CSS半透明磨砂效果实现
  15. 倾斜摄影数据OSGB进入到ArcGIS平台相关问题小结
  16. 安装的Mac Windows双系统,Mac分区的空间太小/太大了,有什么办法调整吗?
  17. 【每天学一点】如何高效工作,进行项目管理
  18. Android系统权限和root权限
  19. 使用内核模块添加系统调用
  20. vnc4server安装路径_redhat6.9VNC安装目录和注意项

热门文章

  1. Multi-thread--C++11中std::condition_variable的使用
  2. OPenCV的中cvErode和cvDilate腐蚀和膨胀函数
  3. 抖音一个老人和一个机器人歌曲_一个老人孤独去世,一个老人安然离世
  4. CoolFormat 源代码格式化工具使用手册
  5. python中while的用法_Python学习笔记之While循环用法分析
  6. Alertmanager配置
  7. 配置openldap_openldap环境搭建+集成JIRA服务
  8. access订单明细表怎么做_图书销售订单明细表 (4)
  9. python调试工具中文版_Python调试工具(PySnooper)
  10. 通过data目录恢复数据库数据(mysql5.7.22)