[datawhale202211]跨模态神经搜索实践:跨模态模型

27 篇文章 1 订阅

结论速递

本次任务首先了解了CLIP模型及其原理,CLIP模型将图像标签替换为图像的文本描述信息,来监督视觉任务的训练,引入了语义匹配实现下游任务的zero-shot。

多模态和跨模态可能是未来模型的发展方向,多模态尝试结合不同信息表达方式的优势,而跨模态进一步探索新的信息表达方式。简单了解了diffusion模型。

前情回顾

  1. 环境配置
  2. Jina生态

1 CLIP模型

1.1 CLIP简介

CLIP是2021年对计算机视觉领域影响比较大的工作,由OpenAI发布,详见CLIP: Connecting Text and Images (openai.com)

2021年见证了vision transformer的大爆发,随着谷歌提出ViT之后,一大批的vision transformer的工作席卷计算机视觉任务。除了vision transformer,另外一个对计算机视觉影响比较大的工作就是Open AI在2021年1月份发布的DALL-E和CLIP,这两个都属于结合图像和文本的多模态模型,其中DALL-E是基于文本来生成模型的模型,而CLIP是用文本作为监督信号来训练可迁移的视觉模型,这两个工作也像ViT一样带动了一波新的研究高潮。
——神器CLIP:连接文本和图像,打造可迁移的视觉模型 - 知乎 (zhihu.com)

CLIP模型同样是个有监督的模型,若以图像分类为例,其特点是:将图像标签替换为图像的文本描述信息,来监督视觉任务的训练(把图像分类问题转化为图文匹配问题)。

1.2 CLIP的动机

近些年,迁移学习在各个领域,包括计算机视觉领域有很多的应用。在CLIP提出之前,预训练+下游任务微调是计算机视觉领域的主流方式,但由于预训练是有监督的,需要数据标注,成本较高。近几年有一些自监督预训练的方法,但到了下游任务仍然需要有监督的微调。

但是在自然语言处理领域,有很多可以降低工作量的数据标注方式,而且实现了zero-shot到下游任务。CLIP的一个初衷,就是想在计算机视觉领域引入自然语言处理领域的这种优势。

近年来,出现了一些基于自监督的方法,这包括基于对比学习的方法如MoCo和SimCLR,和基于图像掩码的方法如MAE和BeiT,自监督方法的好处是不再需要标注。但是无论是有监督还是自监督方法,它们在迁移到下游任务时,还是需要进行有监督微调,而无法实现zero-shot。
对于有监督模型,由于它们在预训练数据集上采用固定类别数的分类器,所以在新的数据集上需要定义新的分类器来重新训练。对于自监督模型,代理任务往往是辅助来进行表征学习,在迁移到其它数据集时也需要加上新的分类器来进行有监督训练。
但是NLP领域,基于自回归或者语言掩码的预训练方法已经取得相对成熟,而且预训练模型很容易直接zero-shot迁移到下游任务,比如OpenAI的GPT-3。这种差异一方面是由于文本和图像属于两个完全不同的模态,另外一个原因就是NLP模型可以采用从互联网上收集的大量文本。那么问题来了:能不能基于互联网上的大量文本来预训练视觉模型?
——神器CLIP:连接文本和图像,打造可迁移的视觉模型 - 知乎 (zhihu.com)

之前其实已经有一些工作研究用文本来作为监督信号来训练视觉模型,但都没有达到zero-shot的效果。

OpenAI认为CLIP和先前一些工作的主要区别在于规模的不同,他们先后尝试了几种训练方式,最后敲定对比学习的方式来进行训练,效率更高,准确率也更好。

请添加图片描述

OpenAI首先尝试了VirTex模型,即联合训练一个CNN和文本transformer来预测图像的文本(image caption),但是发现这种方法的训练效率(用ImageNet数据集上的zero-shot性能来评估)还不如直接预测bag of words,如下图所示,两者的训练效率能相差3倍。如果进一步采用ConVIRT,即基于对比学习的方法,训练效率可以进一步提升4倍。之所出现这个差异,这不难理解,训练数据所包含的文本-图像对是从互联网收集来的,它们存在一定的噪音,就是说文本和图像可能并不完全匹配,这个时候适当的降低训练目标,反而能取得更好的收敛。而从任务难度来看:Transformer Language Model > Bag of Words Prediction > Bag of Words Contrastive (CLIP)。由于训练数据量和模型计算量较大,训练效率成为一个至关重要的因素。这就是作者最终选择对比学习的方法来训练的原因。
——神器CLIP:连接文本和图像,打造可迁移的视觉模型 - 知乎 (zhihu.com)

1.3 CLIP的原理

下游任务以图像分类为例的实现中。

在预训练阶段,模型的数据来源为从互联网上搜集的4亿个(图像,文本)对。假设batch中有N个(图像,文本)对,那么我们便可以得到N个文本向量,记为:t1,t2,...,tn,以及N个图像向量,记为img1,img2,...,imgn。需要做的就是让t(i)img(i)之间的语义距离尽可能接近,而与其他的img之间的距离尽可能拉远。

请添加图片描述

则可以将这个相似性的度量视为一个矩阵,其中横轴方向为文本,纵轴方向为图像,且文本、图像的标号均按照次序排列,那么就可以得到一个N * N的方阵,方阵的每个元素(i,j)的位置为t(i)img(j)之间的语义相似度,相似度可通过余弦或点积的方式获得。我们的优化目标就是让对角线上的元素的值尽可能的大,而其余部分的值尽可能地小。

请添加图片描述

在下游任务中,需要先基于图像标签集合,构造text prompt并将其通过CLIP的text encoder获得文本编码向量,同时,将图片通过image encoder获得图像编码向量。

对于每张图片,我们需要计算它与所有text prompt之间的距离(通过计算图像编码向量与文本编码向量之间的余弦相似度或点积得到),选择距离最近的text prompt所对应的标签作为该张图片的分类标签。

根据上下文语义建立prompt模板,并将标签集合映射到该模板中,得到prompt text模板。比方说,现在我们需要做对(大象,冰箱,蚂蚁)的三分类任务,prompt模板为 “这是一张有关{类别}的照片”,将分类标签映射到prompt模板后可以得到集合:{“这是一张有关大象的照片”“这是一张有关冰箱的照片”“这是一张有关蚂蚁的照片”}。对集合中的文本,通过clip的text encoder之后,便可以得到三个类别对应的文本特征向量,之后,对于每一张需要分类的图片,我们只需要比较该图片的特征向量与三个类别对应的文本特征向量之间的语义距离,并选择最近的那一条文本所对应的标签作为图像的分类结果。

这样的转换使得模型在zero-shot场景下可以获得与监督学习比肩的效果。

1.4 CLIP的应用

CLIP模型可广泛应用到其他领域。

  • 图像检索
  • 视频理解
  • 图像编辑
  • 图像生成

2 多模态与跨模态

2.1 动机

信息有非常多的表达方式:口语,文字,图像等等,这些表达方式各有优劣,也各有侧重点。我们想把这些优势结合起来,这就是多模态和跨模态应用的契机。

从CLIP的动机还可以看出来,不同领域下技术的发展可以相互借鉴和融合,这也是推动多模态和跨模态应用的原因一。

2.2 概念

  • 多模态应用:通过利用每种方式的优势来结合不同的模态。
    例如,我们可以在对话中同时使用口语和书面语言,以确保我们相互理解。我们还可以使用图片或视频等作为视觉辅助工具,来帮助解释仅用文字难以描述的事物。
  • 跨模态应用:针对的是来自不同模态(如视觉和听觉)的输入和输出。它通过使用一种感官的信息来增强另一种感官,使用户体验比传统应用更上一层楼。
    比如说,我们可以通过触摸的方式来帮助我们理解在触觉地图或盲文文本中看到的内容。我们还可以使用声音来帮助我们定位环境中的事物,一般通过声纳或雷达来完成。

多模态感觉像是利用原有信息传递方式的特点,实现信息传递的互补,而跨模态则更像是在探索新的信息传递方式。

2.3 其他多模态模型

扩散模型(diffusion model)是当前非常火的多模态模型。

先假设这样一个场景,在咖啡拉花的时候,比如我们现在做了一个图案,假设我们将其放在那里静置,一段时间后图案就会慢慢扩散,最后变得一团糟。如果在扩散过程中,我们一直观察这这杯咖啡,就会发现:在静置的前几分钟,虽然图案已经有了一点点变化,但是我们还是可以很轻松的在大脑中从现有较为模糊的图案中恢复出最开始的图案。随着时间一点点的推移,图案变得越来越模糊,从中恢复出最开始的图案变得越来越困难,最后图案和咖啡混合在一起。

反过来想这个问题,我们能不能从最后的“图案和咖啡混合在一起”的状态,推出最初的图案呢?我们可以将拉花扩散的过程看成是“加噪”的过程,而将反向的恢复过程看成是“去噪”的过程,这样一来,**只要我们能够从“加噪”过程中学习到一定的规律,那么我们就有可能在“去噪”过程中“逐步”恢复出最开始的图案。**这是对扩散模型的一个非常浅显直观的认识,具体细节可参考相关系列论文。

扩散模型的灵感来自非平衡热力学。他们定义了一个马尔可夫扩散步骤链,以缓慢地向数据添加随机噪声,然后学习逆转扩散过程以从噪声中构建所需的数据样本。

也就是说,通俗地讲,扩散模型由正向扩散过程和逆向过程构成。

正向扩散过程,就是我们最终想实现的过程,不断地往数据中添加随机噪声,直至达到想要的图形,如下图。图片来源:什么是扩散模型? |利尔日志 (lilianweng.github.io)

请添加图片描述

逆向过程,则是从想要的图形中不断添加噪声扩散,直至完全混乱,如下图。图片来源:什么是扩散模型? |利尔日志 (lilianweng.github.io)

请添加图片描述

参考阅读

  1. 神器CLIP:连接文本和图像,打造可迁移的视觉模型 - 知乎 (zhihu.com)
  2. 多模态模型的发展趋势:迄今为止最先进的模型,跨模态 GAN,多模态 Transformer - 知乎 (zhihu.com)
  3. 什么是扩散模型? |利尔日志 (lilianweng.github.io)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SheltonXiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值