图像与文本并存,多模态检索如何带来新的搜索革命

news2024/9/21 9:56:01

59af8117f595d0399769cb7866ef07ac.png

a13d40ff80b3273fdd94ebf7ae184194.png

01

火热的多模态智能

回顾到2024的大型语言模型(LLM)的发展,让人欣喜的一点是scaling law依然奏效,智能随着资源的提高继续提高。但另一个让人担忧的点是高质量的文本语料似乎即将触及上限。为了加入更多的数据喂给模型,人们逐渐将目光转向除了文本之外的其他模态,还有这么多图像,音频,视频等其他模态数据没有像文本数据这样被充分利用起来。拥有了多模态能力的模型会对token在物理世界的原型有着更准确的理解,从而解锁除了纯文本之外的大量应用场景。2024年上半年,OpenAI发布了GPT-4o,Anthropic发布了 Claude 3,谷歌发布了Gemini1.5 Pro,苹果发布了端侧的多模态LLM Ferret-UI不约而同选择加强了其他模态的处理能力,这些产品级的大模型问世意味着“多模态”这个原本只在论文和高校中的时髦名词正变成一次又一次地API调用,促进着人们的生产,创作和学习。

e5777eac0f9093dcd80cadf777750f78.png

02

组合图像检索(Composed Image Retrieval

随着多模态大模型的逐渐成熟,多模态检索也开始获得了越来越多的注意力。多模态检索意味着用户的检索意图来自于多种模态的输入,最常见的情况是结合了来自文本端和图像端的输入。从图像搜索的角度来看,检索的相似性已经在大部分场景下满足了用户的需求,而一个更加具有想象力的需求是用户实际的检索意图和参考图片并不完全一致,最方便的表达这种差别的自然就是文字。而从文字检索图片的角度来看,当你的检索目标外观有了一定的限制,比起用冗长,准确的文字来去描述这个目标,不如用一张参考图片来表示这个目标,用剩下的文字进行补充说明。所以组合图像查询的一个典型场景就是用图片表达检索意图中细节最具体的一部分,用最可控的文本来去修正这个检索意图。

ca66a9460ced0dfc83d33feadf800043.png

03

组合图像的方法简介

我们来介绍一些近两年在这个方向上的一些工作,近两年这个领域的方法逐渐朝着通用性(即zero-shot)的方向发展。因为CLIP带来通用的文图搜索能力,所以在训练数据少的情况下,主要的解决思路是将文本和图片的结合映射到CLIP的空间(从而巧妙地利用到了CLIP的通用性)。而如果资源足够多,那就可以朝着标注更多更准确的数据来去监督训练。此外,回顾历史,我们也可以发现,检索能力的提升,促进着数据标注的效率,数据质量的提升又提高着模型的能力,而模型的提升进一步促进着检索能力的提升,也是数据驱动的人工智能技术浪潮背后一次又一次的循环。

0f6c3f8d529023473ba1b014289d4782.png

Pic2Word

Google提出的Pic2Word的想法是如果把图片用一个文本token来进行表示,那么图片与文本就可以统一成文本,并很自然地生成CLIP text embedding进行以文搜图查询。当然这种token并不是真正的文本token,而是生成的一个伪符(pesudo token),用来在文本空间中表示图像。

a412ac87121e1eedf30298a3298d8ad1.png

图源:Pic2Word: Mapping Pictures to Words for Zero-shot Composed Image Retrieval

这里的关键就在于训练一个图像embedding到pesudo token embedding的映射网络 ,这里的Visual 和Text Encoder是训练好的CLIP编码器,图像生成一个CLIP visual embedding,它被这个映射网络映射到成了pesudo token 的token embedding,然后放入预先定义的 prompt "A photo of [s]"中的占位符, 由固定住参数的CLIP网络转换成了CLIP text embedding,而这个网络训练的目标就是让这两个图文embedding相近,从而网络 拥有了正确将图像映射成pesudo token的能力,训练好后,你就可以编辑文本,并且在文本中使用来指代原始图像了,例如 "a image of [s] in pool", 加上一张狗的图片得到的CLIP Embedding,从而建模出小狗在游泳池中的语义。

CompoDiff

Compodiff利用了扩散模型(diffusion models)的技术来进行组合图像搜索,扩散模型技术是一种目前文生图的主流技术,极大的增强了图片生成的可编辑性。这一类模型一方面能够参照文字信息,另一方面又可以使得生成的内容符合训练图像的分布。而Compodiff的就是将现有的图像扩散模型技术应用到了embedding生成上,希望将输入的文本,参考图片,掩膜Mask等组合共同生成出一个符合CLIP visual embedding分布的向量,从而可以进行组合图像查询。

我们先来简单地理解一下扩散模型:

扩散现象可以理解为墨水滴在清水中的扩散一样,原本的清水随着墨水分子的逐步运动,最后整瓶水变成浑浊。扩散模型的正向过程就好比这样,将清晰图像逐步加入高斯噪音,随着若干步后,图像的信噪比越来越低,图像最终完全变为均值方差固定的高斯噪声图像。而我们更加感兴趣的是这一过程的逆过程,通过一个高斯噪声图像加入特定的高斯噪声(经过学习后的网络就是用来产生这个特定噪声)进行去噪,将图像一步一步变清晰,这就意味着网络能将噪声转换为符合训练分布的自然图像,使用CFG技术加入文本后就可以做条件生成,需要符合文本描述,而不是生成无条件的随机图像。

而Embedding模型自然就可以理解成根据文本,将一个高斯噪声embedding一步一步去噪,逐渐增大embedding的信噪比变为符合CLIP embedding分布的visual embedding,并且将文本和图像进行生成过程的控制,另外,mask也为这个条件提供额外的信息指示希望修改哪部分图像。

86be9c87c7ca4f4c26bc54fd3bf82ad7.png

图源:CompoDiff: Versatile Composed Image Retrieval With Latent Diffusion

这张图描述了Compodiff在推理阶段生成检索向量的过程,将埃菲尔铁塔图像编码为CLIP embedding ,经过正向扩散过程变成噪声 ,再经过去噪transformer的逐步去噪中,并且通过注意力机制引入mask条件 (指示修改哪些区域),和文本条件embedding “Balloon”,逐渐去噪为带有单个气球的埃菲尔图像的CLIP visual embedding。(同时利用文本生图中的技术,在去噪过程中使用CFG引入了负向embedding“multiple balloon”避免生成多个气球)。

为了达到这个条件生成的目的,作者们构建了一个数据集SynthTriplets18M,由 这样的三元组构成,为参考图像, 为条件描述,为目标图像,他们首先由构造出原始的三元组文本(通过从原始文本中检测出关键字,再替换为一个语义上近似的词产生目标文本),然后再使用先进的文生图模型比如StableDiffusion (SD) 来进行图像的生成。

12b5e97886b8e960cac72773e56378f2.png

图源:CompoDiff: Versatile Composed Image Retrieval With Latent Diffusion

我们接下来来看一下CompoDiff的训练过程,整个模型分为两个阶段,第一阶段是在海量的图文匹配数据(LAION-2B)上训练扩散模型,让模型具有根据文本描述从CLIP text embedding从噪声生成CLIP visual embedding模型的能力,第二阶段则是在SynthTriplets18M上进行微调,拥有根据条件来生成特定CLIP visual embedding的能力。

Stage 1:

由图像先生成CLIP embedding , 并逐渐加入噪声成为高斯噪声 ,同时将该图片对应的文本生成CLIP text embedding ,通过注意力机制注入到去噪transformer,训练目标为去噪网络最终得到的embedding与对应的visual embedding接近,通过这样获得了根据文本从噪声向量中恢复出CLIP visual embedding的能力。

Stage 2:

作者在这里希望同时引入绘制mask来指示修改区域的能力,但由于没有mask的标注数据,所以作者交替进行两种训练,希望达成两个目标(1)将目标图像的所有名词区域遮住,由这个遮盖图像经过扩散过程的噪声embedding在加入文本描述以及mask后,反向生成的visual embedding 将与目标visual embedding接近 (2)由参考图像扩散生成的噪声embedding加入文本描述后以及mask后,生成的visual embedding将与目标visual embedding接近。从概念上理解(1)的目标是一个让模型学习图像文本匹配关系的“预训练”过程,(2)则是让参考图片信息,mask,文本学习出到目标图像信息的“微调”过程。

CIReVL

大部分组合查询的方法都需标注的三元组数据集进行标注,一方面这样的标注昂贵,另一方面这样的数据难免会过拟合到特定分布(在这种情况下输入不是训练集类似的图片效果就骤然下降),而随着大模型(LLM, VLM)的兴起,zero-shot这种范式收到了越来越多的关注,CIReVL就是这样一种无需训练并且能获得强大性能的方法。

fa712db1b044044854e123c1c6df5a36.png图源:Vision-by-Language for Training-Free Compositional Image Retrieval

在这里使用了三个具有很强泛化能力的模型,一个用于进行为图像生成描述的VLM(例如BLIP2),一个用于修改文本对描述文本进行修改的LLM(例如gpt-3.5, gpt-4),一个图文编码器(CLIP),原理也非常简单,将图像变成文本,再使用prompt工程结合修改文本转为目标文本,最后生成目标文本的embedding,进行查询,当然作者也为这个prompt模版做了很精细的设置从而达到一个好的效果。

MagicLens

回顾之前的方法,我们可以发现CIR的难点是来自于如何进行真实数据的收集与标注,这样才能训练出一个泛化性高,理解能力强的模型,来自Deepmind和俄亥俄州立大学的作者们选择解决这个硬核难题。

6bae63ebdfe277bebf568effa1bca034.png

图源:Self-Supervised Image Retrieval with Open-Ended Instructions

MagicLens这篇论文的亮点在于提出了一个数据管线,来收集这样真实的三元组数据,我们来结合示意图介绍一下这个管线中的每个阶段。Web pages:作者认为来属于同一URL的图像很有可能是相关的,从而根据这个认知来去大规模收集数据。

Grouping&Cleaning:作者从Common Crawl中收集同一URL下的图像,过滤掉低分辨率,重复,广告图后进行分组,后续的图像对就来自于这样的分组。

Metadata Expansion: 为图像生成元信息,其中ICA是使用Google vision API得到的较粗略的信息。Alt-text是网页中带有的图像替代文本(当无法显示图像时展示这个文本),Caption则是使用Google的PaLI大模型生成的图像描述。

Scoring & Filtering:进一步进行过滤,使用CLIP图像到图像的评分来评估视觉相关性,并使用文本到文本的评分来评估非视觉相关性。对于在这两方面得分低的图像会被排除。

Instruction Generation:利用生成的metadata信息,用Google的LLM(PaLM 2)来生成从参考图像的元信息到目标图像元信息的文本指令。

通过这样的一个数据处理的管线,最终产生了36.7M的三元组(参考图像,文本,目标图像),接下来就是进行模型的训练。

49ca850b334d091a57e00d2ec4d82b7e.png

图源:Self-Supervised Image Retrieval with Open-Ended Instructions

有了大规模的高质量数据,MagicLens在模型方面就采取了较为简单的设计,使用编码器(CLIP或CoCa)分别将图像和文本编码为Embedding,再经过多个自注意力层,生成了一个多模态表征向量。因为检索的图像都没有文本,可以使用空文本“”来替代描述文本,从而生成图像的Embedding。

评测

目前广泛所使用的用于CIR评测的数据集为FashionIQ, CIRR以及CIRCO。

b2f7acb006927dbe4a5f8b437dd2ad69.png

图源:Pic2Word: Mapping Pictures to Words for Zero-shot Composed Image Retrieval

Fashion IQ:FIQ (Fashion Image Query) 是一个时尚领域的基准数据集,由Wu等人在2021年提出。该数据集包含三个不相交的检索子任务:连衣裙、衬衫和上衣。每个子任务都涉及从时尚图片库中检索特定类型的服装图片。它有2005个查询,和5179个索引图像。

CIRR:CIRR是由Liu等人在2021年构建的第一个基于真实自然图像的数据集。该数据集定义了九种查询图像和目标图像之间的关系类型,它拥有4148个查询,和2316个索引图像。

CIRCO:CIRCO 是一个大型自然图像检索数据集,包含超过12万张自然图像作为索引集,由Lin等人在2014年提出。与CIRR不同,CIRCO为每个查询注释了多个正确答案,因此每个查询都有多个目标图像,它拥有800个查询,和123403个索引图像。

c22332f9c718f511a5c37e597a7a553f.png

04

总结

在本文中,我们探讨了近年来兴起的多模态检索方式。相比于传统的图像检索或文本检索,多模态检索结合了两者的优势,既具备高表达能力,又能提供细致入微的描述能力。我们还介绍了一些关键方法。由于算力和资源的限制,多数方法倾向于将文本信息和图像信息融合到一个 CLIP 向量空间中。然而,随着大规模视觉语言模型(VLM)的出现,使得对复杂数据进行经济高效的大规模标注成为可能。像 Google 这样的科技巨头已经开始训练原生模型,而提出广受欢迎的 BGE 嵌入模型的智源研究院也发布了他们的 Visualized-BGE 模型。在生成式 AI 技术推动内容爆发的背景下,这种新兴的检索范式有助于人们更准确地表达自己的检索意图,从海量数据中找到所需信息。这正是多模态技术为当前各项技术带来的创新动力和无限可能。

此外,我们还利用 Milvus 构建了一个在线 demo,用于体验多模态搜索。这一 demo 采用了 MagicLens 作为嵌入模型,并结合了基于 GPT-4o 的结果重排功能,可以根据用户的检索意图对查询结果进行优化排序。这一探索展示了多模态模型在提升新一代多模态检索系统中的潜力。欢迎感兴趣的朋友前来体验。

950b8cfa6053b7d103a31704eca78aae.png

图源:https://milvus.io/milvus-demos

Resource:

MagicLens: https://open-vision-language.github.io/MagicLens/

SEARLE: https://github.com/miccunifi/SEARLE

CIReVL: https://github.com/ExplainableML/Vision_by_Language

CompoDiff: https://github.com/navervision/CompoDiff

Milvus demo: https://milvus.io/milvus-demos

本文作者

6af48f5c7df6ecca59dc7a9cfca06399.png

推荐阅读

37aac0a4a3bc5271c36dd4fcabbcfca3.png

0352c844ede4945b28071ebb6d9f4425.png

b3a393aeae0fe76b32c1c49a82099d5e.png

b6f159cbad82e181f6ba455df7c13408.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2131935.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

体育场座位【python实现】

题目来自此处 def main():seats list(map(int,input().split()))count 0for i in range(len(seats)):if seats[i] 0:if (i 0 or seats[i-1] 0) and(i len(seats)-1 or seats[i1] 0):count 1seats[i] 1print(seats)print(count) if __name__ "__main__":mai…

Win11 eNSP安装

前言 新买的电脑,安装eNSP总会遇到一些问题。如果你之前就是做网络安全而现在需要安装eNSP,你可能会因为安装过Wireshark导致一些问题。所以这里就为大家综合一篇文章,修复一些简单的问题。 下载地址:https://pan.baidu.com/s/17p…

Shell:初识sed、awk

Linux系统提供了两个常见的具备上述功能的工具。本节将会介绍Linux世界中最广泛使用的 两个命令行编辑器:sed和gawk。 1. sed编辑器 sed编辑器被称作流编辑器(stream editor),流编辑器则会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。 sed编辑器可…

会做“减法”的项目经理,在工作中赢麻了!

都说我们在生活中要学会“断舍离”,其实工作中的一些事项、流程,也可以尽量精简!对于项目经理来说也是如此,每天会议很多、需求不断,要适当做好“减法”,才能更好朝着目标方向前进! 01、什么是做…

Linux 添加新用户之adduser 和 useradd 的区别 | 添加用户到 sudo 组【笔记型博文】

🥇 版权: 本文由【墨理学AI】原创首发、各位读者大大、敬请查阅、感谢三连 🎉 声明: 作为全网 AI 领域 干货最多的博主之一,❤️ 不负光阴不负卿 ❤️ 文章目录 ❤️ 创建新用户adduser 用法【推荐】useradd 用法 安装 sudo添加用户到 sudo 用…

Transformer学习(1):注意力机制

文章目录 什么是注意力如何实现注意注意力的计算过程总结 什么是注意力 在一张图像中,包含了各种信息,而我们会自动关注重要的信息。下图是注意力热力图,可以发现人们会注意兔子的脸这些重要信息。 而在深度学习中,输入数据包含…

Selenium自动化 Web 浏览器操作

文章目录 Selenium自动化 Web 浏览器操作Selenium简介安装Selenium安装WebDriver使用问题驱动加载报错版本不匹配 常用API创建实例定位元素鼠标事件表单相关多窗口切换等待显示等待隐式等待 文件上传下载经验总结 Selenium自动化 Web 浏览器操作 Selenium简介 Selenium可以模…

Bio-Linux-shell详解-1-从0开始

21世纪是数据的世纪,蓬勃发展的生物学积累了大量的数据,急需计算生物学、生物信息学及系统生物学等交叉学科大放异彩,而windows作为我们最熟悉的操作平台,并不能承担如此巨大的工作量,课题组的服务器因此承担了这个责任…

玩崩坏星穹铁道手机配置低、卡顿发烫、内存不足 GameViewer远程助你手机畅玩星铁PC端

9月10日,《崩坏:星穹铁道》迎来2.5版本「碧羽飞黄射天狼」!不知道大家有没有抽到 飞霄?这次崩铁还为我们送了10连和 1000星琼 ,上半卡池还有五星角色飞霄、知更鸟、卡芙卡、黑天鹅这四位角色,深受大家喜爱。…

Redis常用操作及springboot整合redis

1. Redis和Mysql的区别 数据模型:二者都是数据库,但是不同的是mysql是进行存储到磁盘当中,而Redis是进行存储到内存中. 数据模型 : mysql的存储的形式是二维表而Redis是通过key-value键值对的形式进行存储数据. 实际的应用的场景: Redis适合于需要快速读写的场景&…

在Word中,用VBA比较两段文本的相似度

效果1: 去掉字符串中回车,进行改进后效果: 代码: Function LevenshteinDistance(s As String, t As String) As IntegerDim d() As IntegerDim i As IntegerDim j As IntegerDim cost As IntegerDim sLen As IntegerDim tLen As IntegersLen…

nginx实现https安全访问的详细配置过程

文章目录 前言什么是 HTTP?什么是 HTTPS?HTTP 和 HTTPS 的区别为什么 HTTPS 被称为安全的?配置过程配置自签名证书 前言 首先我们来简单了解一下什么是http和https以及他们的区别所在. 什么是 HTTP? HTTP,全称为“超…

IDEA 怎么编辑文件模板

1.打开设置2.打开编辑者,选择编辑文件模板 3.点击加号4.先随便编译一次5.之后编辑文件模板就有了

电脑浏览器访问华为路由器报错,无法访问路由器web界面:ERR_SSL_VERSION_OR_CIPHER_MISMATCH 最简单的解决办法!

This site can’t provide a secure connection192.168.2.1 uses an unsupported protocol. ERR_SSL_VERSION_OR_CIPHER_MISMATCH 以上是chrome浏览器访问报错 Secure Connection Failed An error occurred during a connection to 192.168.2.1. Peer using unsupported versio…

python 异步执行 apply_async 方法

1.项目需要读取hive表数据,并对返回的数据进行解析; select * from table ; 2.返回数据,根据库、表,对其进行 下一步执行; 中间遇到一个棘手的问题,在python线程池中,使用异步非阻塞 apply_a…

(k8s)kubernetes 挂载 minio csi 的方式(pod挂载pvc存在csi驱动问题,挂载不上)

一、安装Minio(Minio分布式集群搭建部署_minio集群最少几台-CSDN博客) 生成accessKeyID和secretAccessKey: 二、安装csi-s3插件(在k8s集群上) 首先我们把插件的yaml文件都下载下来,为了保证版本测试的一致性,我们下载…

如何在社交媒体上赚取(可观的)收入

有很多百万富翁是通过社交媒体粉丝建立起他们的财富的,而且其中大部分并不是Instagram网红或YouTube明星。 例如,Nick Huber通过社交媒体粉丝建立了几家企业,这些企业现在每月创造40万美元的收入。 而George Blackman在Twitter上仅有不到8,0…

微信自动回复设置真嘎嘎好用!

无论是商户、个人品牌还是普通用户,及时回应朋友和客户的信息至关重要。然而,手动一一回复既耗时又容易遗漏,这时,微信的自动回复功能就显得尤为重要。 今天,就教大家一招——通过个微管理系统,实现微信自…

怎么在线制作活码二维码?活码在电脑快速制作的方法

怎么制作活码类型的二维码?活码是现在很常用的一种内容展示,将内容通过二维码来展示,可以长期提供内容展示,而且在更新内容无需重新生码,可以直接在原码中修改。与其他方式相比有效提高内容传播的效率,在节…

【信号】SIGCHLD信号--了解

SIGCHLD是多少号信号呢?17号 我们知道用wait和waitpid函数清理僵尸进程,父进程可以阻塞等待子进程结束,也可以非阻塞地查询是否有子进程结束等待清理(也就是轮询的方式)。采用第一种方式,父进程阻塞了就不能处理自己的工作了;采用第二种方式,父进程在处理自己的工作…