从《刺杀小说家》到多模态学习:语言和视觉的相互促进

  • 2021 年 2 月 22 日
  • AI

 本文不涉及任何剧透。关键词:对比学习、多模态、自监督。


图源豆瓣 《刺杀小说家》电影海报

“只要相信,就能实现”

假期看了一部比较“怪”的春节档电影——《刺杀小说家》。

在电影中,小说家路空文连载的小说《弑神》中的故事线会在一定程度上与现实中的时间线产生纠缠,从而产生了一系列似乎“巧合”又似乎是“必然”的事件。对于这种设定,电影给出的解释是:只要相信,就能实现

一方面,小说家通过键盘在电脑里敲出的文字,在电影中变成了虚拟及现实世界中的图像、动作、触觉等;另一方面,现实世界中的所见、所闻、所感,又转换成了小说家的灵感,形成了文字。在这一设定中,小说与真实、虚拟和现实、文字和其他模态交织在一起。

在今天的这篇文章中,我们姑且不论这种设定是否合理,只做一个AI领域问题的探讨——文字这一种模态,如何与视觉这一种模态进行交互?

PS. 对于“多模态”的概念不太理解的朋友,可以先看看之前的这篇文章《#多模态(一):下一代人机交互?#》。

对人类而言,文字与视觉的交互是再普遍、再正常不过的了:

  • 阅读小说时,会在脑海中产生的“画面感”;

  • 看到一张图片时,能够用文字描述图片的内容;

  • 婴儿学识字时,需要结合图片。反之,学习图片上的物体时,也会结合文字;

  • ……

对人工智能而言,真正困难的恰恰是那些看起来很理所应当的事情:通过语言数据来辅助视觉知识的学习,或者通过视觉数据来促进语言能力的掌握。

无独有偶,进入2021年后,在这一领域中,OpenAI和Google先后发布了两项类似的工作,分别是CLIP (Contrastive Language-Image Pre-Training)[1]和ALIGN (A Large-scale ImaGe and Noisy-text embedding)[2]。(PS. 公众号回复“20210216”下载论文。)

这两项工作,都是同时利用了视觉-文本数据进行多模态的关联学习,有着不少相通之处

  • 首先,在数据上都有着类似的认知。被广泛使用的经典的视觉数据集a)往往依赖大量高成本的人工标注的视觉数据;b)数据集大都是任务导向,只为某一类任务服务,导致训练出来的视觉模型往往只擅长解决一个特定任务,任务之间的迁移还需要额外的数据和训练;c)数据集的任务导向性等局限性也会使得模型习得知识的肤浅,不能适应现实世界中的多样性。(PS. 关于这些问题,可以参见之前的这篇文章《深度学习在计算机视觉中应用的三大问题》)

  • 第二,在数据获取上,均采取了在网络上获取文本及对应图像”的方式,并做了不同程度的数据清洗。这种方式获取到的数据量大(CLIP:~4亿个图像-文本对;ALIGN:~18亿个图像-文本对)、但带有一定程度的噪声(未引入额外人工标注,例如下图);

图源[2] 随机采样的图像-文本对示例,其中第一行第二列的“图文对”为错误数据

  • 第三,在模型训练上,都采用了类似的对比学习思路进行视觉表征学习,而不是学习某个特定的视觉任务。具体做法是:a)将匹配的图像文本对数据作为正样本,其他随机组合的未匹配的图像文本对数据作为负样本;b)最小化“给定文本找图像”及“给定图像找文本”的分类损失函数。对比学习的预训练结构参见下图;

左为ALIGN的预训练,右为CLIP的预训练

  • 第四,预训练好的视觉或文本的Encoder,可以通过迁移学习甚至直接应用在下游视觉或文本的任务中(例如图像分类、文本分类、图像检索等)。

让我觉得最有意思的部分是,ALIGN还对学习到的视觉表征的效果进行了定性实验分析:

  • 给定文字描述,并且精细地调整部分文字,能够匹配出准确的图片:

图源[2] 训练后的模型能够根据不同文字描述匹配出不同的图像


  • 加上或减去文字,能够检索出针对性的图片,表明学习到了图像和文字的语义级别特征:

图源[2] 训练后的模型能够根据不同文字增减,匹配出不同的图像


总结一下

  • 这种训练方式,让一些下游任务的训练变得简单——对特定任务数据的依赖更小、能够学得更好的知识、取得更好的效果;

  • 但是,用如此大量数据进行自监督的表征学习,需要付出大量的训练资源(流下了贫穷的泪水)——CLIP一个模型就需要256块GPU训练2周时间(已经使用vision transformer优化过运算效率),ALIGN模型的训练则使用了1024个TPU(batch_size是16384);

  • 用深度学习完成对视觉+文字的多模态学习,还处于起步阶段,虽然这两篇工作取得了不错的成果,但仍要看到的是——对于更复杂的任务(例如识别或描述图像中两个物体的相对位置关系),仍然没有办法通过这种方式学到较好的视觉知识。

参考资料:

[1] //openai.com/blog/clip/

[2] //arxiv.org/abs/2102.05918

– END –

新朋友们可以看看我过往的相关文章

【相关推荐阅读】

虽迟但到,重新定义视觉backbone:CNN+Transformer->BoTNet

多模态:自动驾驶中的多模态学习

[年终AI大事件回顾]我眼中的2020年TOP5

#多模态(一):下一代人机交互?#

模式识别学科发展报告丨前言

点击下面关注我