Jina AI 2024年10月31日
还在用 CLIP?Jina-CLIP 告诉你多模态搜索的正确打开方式
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

Jina CLIP v1旨在构建能理解图像和深度文本的统一模型,解决CLIP在长文本理解和复杂语义关系处理上的不足。文章通过实验展示其如何构建图文向量空间,提升多模态搜索结果的准确性和多样性,还介绍了利用图像信息使搜索结果多样化的方法及相关实验。

🎯Jina CLIP v1解决CLIP的痛点,用JinaBERT-v2代替文本编码器,能处理更长更复杂文本,支持详细商品描述。

💪jina-clip-v1训练使其能同时做好文本与图像、文本与文本的匹配,用一个模型完成CLIP两个模型的任务,避免分别处理的效率和性能损失。

🔬通过实验一,将商品文本和图像信息融合编码到同一语义空间,构建混合向量,用文本查询向量检索,结果更准确多样。

🎁实验二提出文本检索+图像聚类的两阶段方法,提升搜索结果多样性,避免千篇一律,尤其适用于用户查询意图不明确的场景。

原创 Jina AI 2024-10-31 17:38 北京

Jina CLIP v1,一个模型就能实现高效的多模态搜索!

近年来,多模态搜索,或者说把文本和图像融合进统一的搜索体验,在 OpenAI 的 CLIP 等模型的带动下发展得如火如荼。这些模型有效地弥合了视觉数据和文本数据之间的语义鸿沟,可以把图像和相关的文本对应起来。

然而,很多做实际应用的开发者很快会发现,CLIP 及其同类模型虽然在图文匹配上表现很出色,但在长文本理解和复杂语义关系处理上就力不从心了。所以我们推出了 jina-clip-v1,目标就是构建一个既能理解图像又能深度理解文本的统一模型。

jina-clip-v1 不仅保留了强大的图文匹配能力,还着重优化了文本的理解能力。它相当于给那些需要同时处理文本和图像的应用提供了一个更简洁的方案,简化了搜索的流程,避免了用不同的模型分别处理文本和图像的麻烦和性能损失。

本文将通过实验展示 jina-clip-v1 如何构建统一的图文向量空间,来提升多模态搜索结果的准确性和多样性。

CLIP 模型的局限性

CLIP(Contrastive Language–Image Pretraining)是 OpenAI 开发的一种 AI 模型架构,其核心思路是将文本和图像数据映射到同一个向量空间,语义相似的数据就挨得近。它在海量的图文对数据集上训练,泛化能力强,在零样本学习场景下也表现不俗。

自从 CLIP 发布以来,也有一些其他的模型,比如 SigLiP、LiT 和 EvaCLIP 等等,在 CLIP 的基础上做了改进,主要是在训练效率、模型规模和多模态理解能力等方面。这些模型一般都会用更大的数据集、改进的架构和更复杂的训练方法,来进一步提升图文对齐的效果,推动图像-语言模型领域的发展。

但 CLIP 在文本方面一直有硬伤:

    短文本限制: CLIP 主要在短文本描述上进行训练,最长也就 77 token,所以它在处理长文本时表现就很一般了。

    语义理解局限: CLIP 在文本和文本之间的语义对比上也有不足,缺乏对语义细粒度的理解能力。比如,它很难 get 到“深红色的水果”和“红苹果”其实是一个意思。

这在实际的多模态搜索场景中就会带来不少麻烦。比如电商场景里,用户可以用文字或者图片搜索商品。用 CLIP 的话,给商品建索引的时候,你就得反复处理每个商品——图片处理一次,文本处理一次,如果商品描述很长,还得用专门的文本向量模型再处理一次。同样的,用户搜索商品的时候,系统也得分别在文本和图像索引里搜一遍。效率低下不说,效果也不一定好。

Jina CLIP v1 如何解决 CLIP 的不足

jina-clip-v1 的设计思路就是解决 CLIP 的这些痛点。

首先,我们使用了一个更强大的文本理解模型 JinaBERT-v2 代替 CLIP 中的文本编码器。JinaBERT-v2 能够处理更长、更复杂的文本,最长支持 8192 token 长度的输入,支持详细的商品描述,而不仅仅是商品名称等短文本。

其次,我们训练 jina-clip-v1 把两件事都做好:既能把文本和图像匹配好,又能把文本和文本匹配好。

这样一来, jina-clip-v1 可以用一个模型完成 CLIP 需要两个模型才能完成的任务,避免了分别处理文本和图像带来的效率和性能损失,速度还很快。

这种统一的处理方式,是以前的模型很难做到的,也就给搜索带来了很多新的可能性:比如结合文本和图像搜索,来提升搜索效果;再比如利用图像信息,使搜索结果多样化。

本文将通过两个实验来验证这些可能性。

实验一:结合文本和图像搜索,能否提升搜索效果?

核心假设:将商品的文本和图像信息融合,能够提升搜索的准确性和多样性。

为了验证这个假设,我们可以利用jina-clip-v1 把文本和图像信息都编码到同一个语义空间里,让文本和文本、文本和图像的信号能够相互对齐。具体来说,就是把预先索引好的每个商品的文本向量和图像向量平均一下,构建一个融合了两种信息的混合向量表示,如下图所示:

这个混合向量既包含了商品描述的文本信息,又包含了商品图片的视觉信息。

然后,我们就可以用用户的文本查询向量去检索这些混合向量,期望能够得到更准确、同时也更多样化的搜索结果。

实验设置

我们使用 Fashion200k 数据集进行实验。该数据集包含超过 20 万张时尚商品图片、对应的描述和元数据,并且每个商品都被标记了大类(例如“连衣裙”)和细粒度类别(例如“针织中长款连衣裙”)。

接下来,为了评估融合文本和图像信息的效果,我们将比较三种检索方法:

    纯文本检索:使用文本查询向量搜索商品描述的文本向量。

    跨模态检索:使用文本查询向量搜索商品图片的图像向量。

    混合向量检索 (我们的方法):使用文本查询向量搜索商品的文本和图像混合向量。

至于评估指标,我们主要用 Top-K 准确率来评估检索结果的准确性,同时也会观察搜索结果的多样性,来定性地评估效果。

实验结果与分析

我们使用 1000 个随机生成的文本查询进行实验,并比较了三种检索方法在不同 K 值(10、20、50、100)下的表现。

案例分析(以“彩色亨利领 T 恤连衣裙”为例)

1. 纯文本检索(Query to Description): 返回的结果准确性还行,但是商品看起来都差不多,缺乏多样性。这显然不是最优的,好的搜索结果应该在相关性和多样性之间找到一个平衡点,才能更好地吸引用户的注意力。

2. 跨模态检索 (Query to Image): 返回的结果看着挺多样,但是准确性就差了点,五个结果里有两个和大类匹配,但没有一个和细粒度类别匹配。

3. 混合向量检索 (Query to Average Embedding): 五个结果都和大类匹配,而且有两个结果连细粒度类别都匹配上了。另外,那些看起来重复的商品也被去掉了,结果就更多样化了。这说明,混合向量检索在保证搜索质量的同时,还把视觉信息也考虑进去了,所以结果就更多样化、更全面了。

整体性能比较

为了看看这个方法是不是在更大规模的数据集上也适用,我们对更多不同类型的商品进行了实验,包括广泛类别和细粒度类别。

实验结果表明,混合向量检索在各种 K 值和不同商品类别上都取得了最高的准确率。这说明融合文本和图像信息确实能够有效提升搜索的准确性

让我们进一步地来分析这三种检索方式的效果:

    纯文本检索:在“连衣裙”这种广泛类别中表现还不错,但在区分“亨利领 T 恤连衣裙”这种细粒度类别时就有点吃力了,缺乏对细微差异的捕捉能力。

    跨模态检索:准确率垫底,虽然能帮着识别广泛类别,但在捕捉细粒度差异方面就差强人意了,尤其是在视觉差异不明显的情况下,还是需要文本信息来提供额外的上下文。

    混合向量检索:评分最高,结合了文本和图像信息的优势,既保证了准确性,又提升了多样性。文本信息能够帮助识别广泛类别,而图像信息则提供了额外的细粒度区分能力,从而提升了整体检索性能。

其他维度的分析:

实验二:利用图像信息使搜索结果多样化

在上一节的实验中,我们发现纯文本检索有个问题:即使检索结果的准确性很高,也可能缺乏多样性,容易出现视觉上重复的商品。在搜索中,光追求高精度是不够的,尤其是在用户查询意图不明确的情况下。

比如用户搜索“黑色夹克”,他们想要的可能是各种不同款式的黑色夹克:黑色机车夹克、飞行员夹克、西装外套等等。所以,维护一个简洁、高度相关且多样化的结果列表就显得尤为重要了。

为了解决这个问题,我们提出了一个 文本检索 + 图像聚类 的两阶段方法,利用jina-clip-v1对文本和图像的理解能力,来个 “视觉洗牌”,不光展示最相关的结果,还展示一些视觉上更多样化的结果,避免千篇一律。

阶段一:文本检索

首先,我们用 jina-clip-v1 的文本编码器进行初始文本搜索,获取 Top-K 个与查询相关的商品,如下图所示:

阶段二:图像聚类 & 重排 (Visual Reranker)

对于阶段一检索到的 Top-K 个商品,我们用 jina-clip-v1 的图像编码器提取它们对应的图像向量,然后用 K-Means 聚类算法把这些图像向量聚成 k 类 (k=5),把视觉上相似的商品归到一起。最后,我们从每个类别里挑一个代表性商品,构成最终的搜索结果列表,这样就能提升结果的多样性了。

举例来说,假设用户搜索“黑色夹克”,阶段一检索到的 Top-10 个结果可能都是黑色夹克,但款式都比较类似。阶段二的图像聚类可能会把这些夹克分成 5 类:皮夹克、牛仔夹克、羽绒服、西装外套和棒球服。然后,我们从每一类里挑一件最具代表性的夹克,最终呈现给用户的 5 件黑色夹克就能涵盖更多不同的款式,提升多样性。

实验结果与分析:

案例分析(以“彩色亨利领 T 恤连衣裙”为例):

使用文本检索 + 图像聚类的方法后,,可以看到搜索结果的多样性显著提升,涵盖了更多不同的款式、面料、剪裁和图案等“方面”,如下图所示:

对比仅使用文本检索的结果 (下图),可以看出视觉多样性的提升:

这个方法尤其适合用户查询意图不明确的场景,比如用户搜索“黑色夹克”、“连衣裙”这种比较宽泛的关键词。

首先进行文本检索,保证了最终呈现给用户的商品仍然和查询相关,不会出现风马牛不相及的结果。然后通过图像聚类,可以把视觉上相似的商品归到一起,并从每一类里挑一个代表性商品,避免搜索结果千篇一律,给用户提供更全面的选择。

但图像聚类步骤会增加一点计算时间,尤其是在 Top-K 值较大的情况下。另外,K-Means 算法中聚类数量 k 的选择需要一定的经验,不同的 k 值可能会影响结果的多样性。

结论

一般情况下,用 CLIP 模型做搜索,在处理文本和图像的时候,其实还是把它们割裂开来,用不同的模块分别处理,这样做不仅效率低,效果也未必好。jina-clip-v1 的核心创新在于构建了一个真正统一的图文向量空间。比起 CLIP 模型,它能够处理更长、更复杂的文本,同时也能更好地理解图像信息。

对于应用开发者来说,现在你只需部署一个模型实例,即可同时支持文本-文本、文本-图像、图像-文本和图像-图像四种检索方向,无需针对不同的检索任务分别使用专门的模型。大大简化了模型管理和部署的复杂度,维护成本和计算开销也降下来了。

在本文里,我们也进行了一系列严谨的实验,测试涵盖了各种方法,包括纯文本检索、跨模态检索、平均向量检索。实验结果一致表明,jina-clip-v1 的性能表现非常出色。无论是把文本和图像信息融合成统一的向量表示,还是用图像信息来做 “视觉洗牌”,jina-clip-v1 的表现都可圈可点。

当然,我们并没有止步于此。jina-clip-v1 目前仅支持英语,我们团队已经在紧锣密鼓地研发 jina-clip-v2 了。新版本将支持 89 种语言,妥妥的多语言多模态搜索神器,敬请期待。

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Jina CLIP v1 多模态搜索 文本理解 图像信息
相关文章