文章简介
本文从视觉问答(VQA)任务出发,讲述了 2015 年任务的定义开始,接踵出现的各种多模态技术。从无注意力机制的深度学习模型,发展到天然适合注意力机制的多模态场景的模型,再到基于 Transformer 模型的即将到来的多模态领域大一统模型。其中,穿插了一些有趣的技术梳理,比如非深度学习技术和工程型优化的技术等。
笔者利用课余时间收集整理,耗时一年撰写本文章,经历了三个版本迭代,旨在为同学们入门多模态预训练大模型领域提供一些力所能及的帮助。经过对多模态领域模型与方法演化进程的梳理,笔者认为这一领域的研究前景较为乐观,如果未来真的会有“大一统模型”,那么它将出现在多模态领域。
作者信息
王军杰
粤港澳大湾区数字经济研究院(IDEA研究院)实习研究博士生
清华大学2021级客座学生、早稻田大学博士生(指导老师:杨余久、酒井哲也)
序言作者
张家兴
IDEA研究院CCNL 讲席科学家
张家兴博士现任 IDEA 研究院认知计算与自然语言研究中心(简称“IDEA CCNL”)讲席科学家兼负责人,携 IDEA CCNL 科研团队建设了“封神榜”大模型体系,并致力于推动以预训练大模型为代表的新一代认知计算与自然语言技术的进一步发展及其产业落地。他于 2006 年北京大学博士毕业,曾任微软亚洲研究院研究员、蚂蚁金服资深算法专家、360 数科首席科学家。张家兴博士是大数据框架、深度学习框架、深度学习算法的早期开创者和实践者,引领深度学习在工业界场景中落地,在金融领域产生广泛影响力。他在自然语言处理、深度学习、分布式系统、物理等领域的顶级学术会议和期刊(NIPS, OSDI, CVPR, SIGMOD, NSDI, AAAI, WWW...)上发表二十余篇学术论文,提交七十余项专利。
Before everything
Github:
https://github.com/wanng-ide/VQA_to_multimodal_survey
欢迎来到多模态的世界!本文主要是对 VQA 任务以及延伸至多模态领域做一个综述,而非专业论文,旨在整理所见所闻以帮助同学快速了解该领域的发展和脉络。
信息来源包括但不限于以下材料:
1. Visual Question Answering using Deep Learning: A Survey and Performance Analysis
https://arxiv.org/abs/1909.01860
2. Visual Question Answering: A Survey of Methods and Datasets
https://arxiv.org/abs/1607.05910
3. Survey of Visual Question Answering: Datasets and Techniques
https://arxiv.org/abs/1705.03865
4. 视觉问答-1_综述.md
https://github.com/shengnian/Algorithm_Interview_Notes-Chinese/blob/master/B-自然语言处理/D-视觉问答-1_综述.md
5. Visual Question Answering: Datasets, Algorithms, and Future Challenges
https://arxiv.org/abs/1610.01465
总体结构
● VQA 任务是什么
● 介绍之前的模型和方法
● 欢迎来到 Transformer 的时代
2019:尝试多模态表征
2020:拥抱多模态表征
2021:统一构架的探索
● 下游任务(VQA 等)
● 更多其他有趣的论文
本 Part 1 主要介绍:
● VQA 任务是什么
● 介绍之前的模型和方法
版本迭代
第一版(2020.10):
梗概以及整体框架的确定
VQA的相关数据集,2015-2018的部分模型
第二版(2022.01):
修改了文章的结构,优化了可读性
增加了2019到2021年的部分模型
增加了部分数据集的介绍
之前的模型的一些错误修正
添加了一些新坑
第三版(2022.02):
增加了2021-2022的部分模型
重修了2015-2019的模型解释
不再局限于VQA而是多模态任务
重新规划了文章结构把VQA相关数据集转移到了下游任务章节中
挖下更多的坑
/ 序
十万年前的非洲大草原上,当一个智人压低声音对他的同伴说:“小心,远处有只狮子。”一个多模态认知任务随即产生了。眼中看到的各种图像块,耳中听到的“小心”、“远处”、“狮子”这些音节,在智人的大脑皮层中,构建出了一个意义,指导着他的行动。不能完成这个任务的智人,被狮子吃掉了,没能跨越进化的槛并淹没在了历史洪流之中。因而,今天地球上的人类,都是多模态认知的大师,这些大师通过五感接收信息,依赖着大脑中一百多亿个神经元认知周围的意义。那么机器呢?机器要如何通过多模态认知这个世界?
认知是一种计算。生物大脑中,神经元突触之间传递的电脉冲信号,神经元与胶质细胞之间的互动,是一种连续空间中的计算。而数字计算机里二进制状态通过逻辑门的变换,是一种离散空间中的计算。尽管存在于离散空间的通用图灵机并不能完成世间所有的计算,但我们仍旧相信实现了通用图灵机的数字计算机,可以进一步实现认知的计算。
计算存在于一种结构。人的大脑从最基础的图像块和音节开始,从下到上逐步计算,构建了图像和语言各自的意义,最后又在大脑皮层中进行了多模态的整合。生命在亿万年的进化中,找到了进行多模态认知计算的结构。那么机器的多模态认知计算结构该是怎样?
近 10 年深度学习的发展,让我们探索出越来越好的计算结构。在一个图像中,像素和图像块在二维平面用他们的相对位置表达着意义,因此对图像的理解也可以对应着一个二维计算结构。受到生物视觉神经系统的启发,逐层处理图像块的卷积神经网络(CNN)被提出。在新世纪第二个十年,卷积神经网络在强大算力的支撑下,推动了计算机视觉技术的应用落地,并且创造了一个 AI 产业。
不同于图像的二维结构,句子是由一个个词语构成的一维结构,专门处理序列的循环神经网络(RNN)通常被用来处理语言,但是这种古老的计算结构显然已不再胜任语言这种有信息层级的任务。从 2018 年开始,一种新计算结构 Transformer 迅速地取代了循环神经网络。Transformer 作为新世纪第一个被提出的基础计算结构,超越了它的前辈卷积神经网络和循环神经网络,用注意力结构代替了曾经的卷积和循环结构,并且从语言扩展到图像,成为了认知智能统一的底层计算结构。
统一的计算结构带来了更多的好处,多模态的融合也终于可以在一个计算结构中进行。认知计算结构的变迁,是新的技术范式取代旧的范式,新的计算结构 Transformer 带来的全面优势,吸引了几乎全部研究和应用的注意力,而旧的计算结构(CNN, RNN)只能去寻找它们适合的其他应用领域。
认知能力依赖于多任务学习。生物在亿万年的进化中,解决了无数个任务,不能解决关键任务的生物个体,就像那个被狮子吃掉的智人,其后代无法存活于这个世界。我们想让机器具备多模态认知能力,也必须为机器构造包含图像和语言的各种学习任务,恢复句子中掩蔽的词(MLM)、恢复图像中被掩蔽的图像块(MAE)、匹配图像和文本(ITM)。
新的计算结构也使得我们在构造学习任务上有了更多的选择。在机器学习的过程中,当深度神经网络逐渐越来越好地完成了这些学习任务,也就意味着它逐步具备了多模态认知的能力。但随着神经网络结构越来越大,构造并完成这些学习任务所需要的数据和算力也越来越大。终于,认知智能与生物面临了同样的挑战:学习和进化的成本。一万个智人被狮子吃掉,才会诞生一个学会俯下身的聪明智人。那一万个被吃掉的智人,就是生物进化的成本。
让机器具备多模态认知的能力,同样需要巨大的算力成本。我们当下的技术水平,是否已经准备好去迎接这一变革了呢?或许某一天,脑科学的进步,新算力形式的出现,甚至能源技术和太空技术的重大突破,都有可能让机器追上生物40亿年的进化,超越人类对图像和语言的多模态认知能力。
若干年后的非洲大草原,背着猎枪的智人向他的机器人伙伴压低声音说“小心,远处有只狮子”。机器人俯下身子,却突然开始思考:“为什么狮子会沦落成人类的猎物?”然后,机器人轻轻地站了起来,向狮子挥了挥手......
——张家兴
粤港澳大湾区数字经济研究院(福田)
认知计算与自然语言研究中心 讲席科学家
VQA任务简介
VQA 介于图像理解(CV)和自然语言处理(NLP)的交集。VQA 任务的目的是开发出一种系统来回答有关输入图像的特定问题。答案可以采用以下任何形式:单词,短语,二元答案,多项选择答案或文本填空。
在 CV 领域,CNN 是当前非常重要的基础模型。进而产生了 VGGNet,Inception,ResNet 等模型。类似的,NLP 领域,RNN 是之前主要的模型架构,因为 LSTM 的引入使得 RNN 有了重大突破。如 Vanilla VQA 模型使用了 VGGNet 和 LSTM 相结合的方法。后来在 NLP 领域的注意力机制(Attention Mechanism)也开始在 CV 领域开始得到应用。就有了 Stacked Attention Network 等。
2018 年 BERT 横空出世,在 NLP 领域掀起了革命。所以近两年,BERT 也开始进入到 VQA 任务中,BERT 一开始是用于替换 RNN 来处理文本。但是在 2019,2020 年开始,一些模型(如,VL-BERT)开始把简单有效的 Transformer 模型作为主干并进行拓展,视觉和语言嵌入特征可以同时作为输入。然后进行预训练以兼容下游的所有视觉-语言联合任务。
1.1 VQA和NLP任务的区别
我们来看下面的这张图
其中,machine reading comprehension(MRC)和 question answering(QA)的关系其实是相对独立的。在本图中,Pure VQA 任务一般是没有引入额外的 context,只是单纯的有 {图,问句,回答}。而 Multimodal MRC 任务,实际上就只是引入了额外的 context 作为 VQA 任务的知识,并且更加注重于自然语言的理解。下图可以给出一个来自 TQA 数据集的例子。(该数据集主要来自课本)
既然讲到了 MRC 不妨提一下,MRC 的主要任务类型一共有四种,分别为完形填空(Cloze Style)、多项选择(Multiple Choice)、片段抽取(Span Prediction)和自由作答(Free-form Answer)。大多数现有的 MRC 任务都是文本问题解答任务,因此将这种机器阅读理解任务视为典型的机器阅读理解任务(Typical MRC)。
关于 VQA 和 Textual Question Answering(TQA)的不同,主要是数据集信息形式的不同。
1.2 VQA和CV任务的区别
● VQA 的总体目标是从图像中提取与问题相关的语义信息,从细微物体的检测到抽象场景的推理。
● 大多数 CV 任务都需要从图像中提取信息,但与 VQA 相比都存在某些局限性。
● 但是实际上,由于 VQA 中问题会提供一定的场景,在这个场景下,答案的粒度是一定的。并且是有明确的答案,所以相对来说 VQA 的评价要相对简单一些。
基于对象检测的任务
对象识别、动作识别和场景分类都可以被定义为图像分类任务,现在最好的方法是使用 CNN 进行训练,将图像分类为特定的语义类别。
对象识别一般只需要对图像中的主要对象进行分类,而不用理解其在整个场景中的空间位置或作用。
目标检测通过对图像中每个对象实例放置一个边界框来定位特定的语义概念。
语义分割通过将每个像素分类为一个特定的语义类,使定位的任务更进一步。
实例分割(Instance segmentation)用于区分同一语义类的不同实例。
标签歧义
▲ 左:目标检测,右:语义分割
语义分割或实例分割都不足以全面理解整个场景
其中主要的问题在于标签歧义(label ambiguity)
比如上述图中“黄叉”的位置取"bag"、"black"、"person"之一都没有问题。
一般来说,具体选取哪个标签,取决于具体的任务。
此外,目前的主流方法(CNN+标签)不足以理解物体在整个场景下的作用(role)
比如,将“黄叉”位置标记为"bag"不足以了解该包与人的关系;或者标记为"person"也不能知道这个人的状态(跑、坐、...)
1.3 图像描述任务
除了 VQA 外,图像描述(image captioning)是另一个比较主流的、需要结合 CV 和 NLP 的任务。图像描述任务的目标是对给定图像生成相关的自然语言描述。
结合 NLP 中的一些方法(RNN 等),生成描述有不同的解决方案。
但是,图像描述的另一个难点是评价。
一些自动评价方法:BLEU、ROUGE、METEOR、CIDEr
这些方法中,除了 CIDEr,最初都是为了评价机器翻译的结果而提出的。
这些方法每一个都存在一些局限性,它们常常将由机器生成的标题排在人工标题之前,但从人的角度看,这些结果并不够好,或者说不是目标描述。
评价的一个难点在于,给定图像可以存在许多有效的标题,这些标题可以比较宽泛&#x