无需打开直接搜索微信:本司针对手游进行,选择我们的四大理由: ...
2025-08-16 0
分享嘉宾|刘松 阿里云 搜索技术专家
内容校对|郭慧敏
出品社区|DataFun
01
在日常的电商平台中,我们对文本搜索场景非常熟悉。例如,当用户搜索“连衣裙”时,其目标明确,就是希望购买一件合适的裙子或了解最新款式。又如,搜索“nike 涩谷限定”,这表明用户可能对耐克在特定商圈发售的某些定制款感兴趣,关键词中包含了品牌、地点和限定属性。
然而,纯文本搜索存在明显的痛点。想象一个场景:你在酒店发现一款设计独特的吹风机,却不知道其品牌和型号。此时,你最直观的需求是“以图搜图”,通过拍摄的照片来查找同款商品。这种即时性的、基于视觉的查询需求,是传统文本检索难以满足的。
另一个痛点在于商品视觉元素的缺失。例如一件印有卡通恐龙图案的绿色儿童短裤,其标题和简介可能只会描述为“男童短裤”,却无法体现“绿色”、“卡通”、“恐龙”这些对消费者(尤其是给孩子买衣服的家长)极具吸引力的视觉特征。
多模态与跨模态搜索正是为了解决这些问题而生。它允许用户使用更自然的、多维度的方式进行查询。比如,用户可以直接输入“打乒乓球的小男孩”,系统需要在海量的图片素材中,精准地找出符合这一场景描述的图片,这极大地提升了搜索的精准度和用户体验。
一个通用的多模态商品检索解决方案,其核心在于如何处理和融合不同类型的数据。其整体架构可以概括如下:
(1)数据处理层:
①商品元数据处理(结构化文本):
②图片数据处理(非结构化数据):
通过多模态大模型对图片进行“解读”,生成描述性文本。例如,对于上述的绿色短裤,模型可以生成描述:“这是一张展示绿色短裤的图片,短裤上有一个卡通小恐龙图案”。
这段生成的文本同样可以作为结构化数据,经过分词后存入文本引擎。
利用 Embedding 技术,将图片本身转换为高维度的数学向量(Vector)。
这个向量可以被认为是图片在数学空间中的“坐标”,它蕴含了图片深层次的视觉特征。
生成的向量数据被存储在向量引擎中。
通过以上步骤,一件商品的数据就被解构为两部分:一部分是存储在文本引擎中的文本信息,另一部分是存储在向量引擎中的向量信息。
(2)查询与召回层:
当用户发起查询时,系统会根据查询类型进行多路召回:
①文本查询:
②图片查询:
(3)融合与排序层:
这个架构的精髓在于,它结合了文本引擎的精确匹配能力和向量引擎的语义及视觉 相似度检索能力,从而实现了真正意义上的多模态搜索。
要实现上述解决方案,离不开两大核心技术:Embedding(向量化)和向量检索。
Embedding 的本质,是将真实世界中非结构化的数据(如文本、图像)映射、转换为机器可以理解和计算的结构化数据——向量。
文本向量化技术经历了多个发展阶段,目前主流的模型可分为三类:
特点:将文本转换为稠密向量,向量中的绝大多数元素都是非零值。这种向量能很好地捕捉文本的深层语义相关性。例如,“国王”和“女王”在语义上相近,它们的稠密向量在空间中的距离也会很近。
代表模型:Word2vec、S-BERT、以及基于大语言模型(LLM)的各类模型。
特点:将文本转换为稀疏向量,向量中只有极少数元素是非零的,大部分为零。它更侧重于词汇级别的精确匹配,类似于传统搜索中的“词袋模型”的升级版。
代表模型:BM25、SPLADE。
特点:这是当前效果最优、最受关注的模型。它巧妙地结合了稠密模型和稀疏模型的优点。对于一个输入文本,它会同时生成一个稠密向量和一个稀疏向量。
优势:最终得到的混合表征既包含了语义的泛化能力(来自稠密向量),又具备了关键词的精确匹配能力(来自稀疏向量),在各类评测中显著优于单一模型。
图像向量化主要借助深度神经网络,特别是卷积神经网络(CNN)。其过程可以通俗地理解为:图片作为输入,经过多层卷积层、激活函数和池化层的“特征提取”,将图片从像素矩阵一步步抽象,最终通过全连接层映射成一个低维度的特征向量。这个向量就是这张图片的高度浓缩的数学表达。
向量检索的核心思想是:在由海量向量构成的数学空间中,给定一个查询向量,快速、准确地找到与它“距离”最近的 K 个邻居(K-Nearest Neighbors, KNN)。这里的“距离”代表了相似度。
(1)向量相似度度量
衡量两个向量有多“近”,主要有以下几种方式:
定义:即空间中两点之间的直线距离。距离越小,代表两个向量越相似。
得分转换:在搜索引擎中,通常会将其转换为一个 0 到 1 之间的归一化得分,公式如 1 / (1 + L2_norm^2),这样距离越小,得分越高,更符合搜索排序的直觉。
定义:两个向量对应维度相乘后求和。
特点:如果所有向量都经过归一化(长度为 1),点积的结果等价于余弦相似度。通常,点积越大,相似度越高。
定义:计算两个向量在方向上的夹角的余弦值。它衡量的是方向上的一致性,而不在乎绝对大小。
特点:取值范围在 -1 到 1 之间。值为 1 表示方向完全相同,为 -1 表示方向完全相反,为 0 表示正交(不相关)。这是向量检索中最常用的相似度度量之一。
Elasticsearch 作为业界领先的搜索引擎,近年来在向量检索领域发展迅猛,提供了全方位的支持:
①字段类型:
dense_vector:用于存储稠密向量。
sparse_vector:用于存储稀疏向量,能够高效处理高维、稀疏的数据。
semantic_text:一个更高级的抽象类型,可以根据配置的推理模型,自动将文本输入映射为相应的向量类型。
②原生 AI 能力:
Inference API:允许 ES 直接调用外部的 AI 模型(如 Embedding 模型),实现数据在索引或查询时的实时向量化。
Ingest Pipeline:在数据写入时,可以通过 text_embedding 处理器或 inference 处理器,自动将文本字段转换为向量并存入索引,极大地简化了数据处理流程。
③检索语法:
KNN Search:原生的近似最近邻搜索 API,用于在 dense_vector 字段上进行高效的向量检索。
混合搜索 (Hybrid Search):允许在一次查询中同时执行传统的全文检索(如 match 查询)和 KNN 向量检索。但一个挑战是如何平衡两种不同来源、不同度量衡的分数。
RRF (Reciprocal Rank Fusion):为了解决混合搜索中的分数融合难题,ES 引入了 RRF。RRF 不关心原始分数的大小,只关心文档在不同召回结果集中的“排名”。它通过对排名的倒数进行加权求和,来得到最终的融合排序,是一种更鲁棒的混合排序策略。
向量检索,尤其是处理海量数据时,最大的瓶颈之一是内存消耗。一个高维(如 1024 维)的 float32 向量本身就占用大量空间,而用于加速检索的 HNSW 图索引也需要消耗可观的内存。因此,向量量化技术应运而生。
原理:其核心思想是“降维打击”,将高精度的 float32(4 字节)数值,量化为低精度的 int8(1 字节)甚至更低。它通过分析一个数据段(Segment)内某一维度上所有向量值的最大值和最小值,然后按比例将 float32 值映射到 int8 的 -127 到 127 范围内。
效果:通过 SQ,向量本身占用的内存可以轻松降低为原来的 1/4(int8)或 1/8(int4),在牺牲可控精度的前提下,大幅节省内存。
背景:BBQ 技术源自南洋理工大学的研究论文,是 ES 在向量量化领域的又一重大突破。
优势:BBQ 可以在 SQ 的基础上,将向量检索占用的内存再降低高达 95%。这使得在 Elasticsearch 中进行百亿级别的海量向量检索成为可能。
劣势与应对:天下没有免费的午餐。BBQ 以极低的内存占用为代价,牺牲了一定的召回率。但在实际应用中,可以通过适度增加 KNN 查询的候选集数量(num_candidates)等方法,来有效缓解召回率的下降。
应用举例:一个 100 亿条 1024 维 float32 向量的数据集,原始存储需要约 37TB 内存。而采用 BBQ 量化后,加上 HNSW 图内存,总内存需求可降至约 1.8TB,所需计算节点数量从 170 个骤降至 9 个,成本效益极高。在 BBQ 的加持下,HNSW 图索引的内存占比反而成为了主要部分。
理论的先进性最终要通过实践来检验。我们将介绍如何基于阿里云的两大产品——AI 搜索开放平台和 Elasticsearch Serverless,构建一套高效、易用的多模态商品搜索系统。
我们的最佳实践架构如下:
数据源:商品数据存储在云数据库 RDS 中,包含商品 ID、文本描述和图片信息。
(1)AI搜索开放平台:
离线数据服务:负责从 RDS 中抽取数据。
多模态向量服务:调用平台内置的 AI 模型(如 M2-Encoder、Qwen2-VL 等),将商品的文本和图片数据统一转换为多模态向量。
数据写入:将处理好的文本数据和向量数据写入 Elasticsearch Serverless。
(2)Elasticsearch Serverless:
作为核心的文本引擎和向量引擎,存储商品的文本索引和向量索引。
在线查询:
用户通过前端应用发起查询(文本或图片)。
查询请求经过 AI 搜索开放平台的多模态向量服务进行向量化。
向量化的查询请求被发送到 Elasticsearch Serverless 进行多路召回(文本+向量)。
ES 返回 Top N 结果,最终呈现给用户。
这是一个一站式的、企业级的 AI 搜索解决方案平台,其分层架构清晰,功能强大:
底层(数据源与管理):支持多种数据源接入,包括对象存储(OSS)、数据库(MySQL)、数据湖(Hudi, Iceberg)和大数据计算平台(MaxCompute)等。
中层(核心服务与生态):
搜索微服务:提供文档解析、多模态解析、向量化、Rerank、LLM 推理、LLM Agent 等一系列原子化的 AI 能力。
开放框架与生态:无缝对接 LangChain、LlamaIndex 等主流开发框架,并支持集成多种向量数据库(如 Milvus、Havenask 以及 Elasticsearch)。
上层(应用开发与部署):提供 AI 搜索应用场景的快速开发能力,并支持通过函数计算(FC)、PAI 等多种方式进行应用部署。
该平台预置了丰富的 AI 模型,如文档解析、图片解析、文本向量化、多模态向量化、Reranker、大模型生成等,并且提供了“体验中心”,让开发者可以快速验证模型效果,例如输入文本或上传图片,即可看到其生成的向量结果。
这是阿里云上的一种全托管、智能化的 Elasticsearch 服务形态,它与传统的 IaaS/PaaS 模式有着本质区别,为多模态搜索场景提供了极致的便利。
其核心是一个 Serverless Proxy,它对用户屏蔽了底层集群的复杂性,负责鉴权、路由和请求改写。Proxy 后面是读写分离的 Elasticsearch 服务集群和元数据服务,底层基于分布式存储。整个系统由应用管控系统和智能运维系统进行管理和调度,实现了从资源到运维的全方位自动化。
优势一:免运维
版本无感:用户无需再为追赶 ES 社区日新月异的向量功能版本而烦恼,也无需担心安全漏洞。Serverless 平台会自动保持内核的最新和最优化。
资源无感:彻底屏蔽了集群、节点、分片、规格配置等复杂的物理概念。用户面对的只是一个逻辑上的“应用”,无需进行容量规划。
开箱即用的监控:默认提供面向业务的应用读写 QPS、索引流量等核心指标监控。
优势二:低成本
极低的接入成本:创建一个 Serverless 应用仅需数秒,即可获得访问地址和配套的 Kibana。对于需要快速迭代验证算法的开发者来说,这是巨大的便利。
真正的按量付费:打破了传统包年包月的固定付费模式。以 CU(Compute Unit)为计算资源单位,按实际使用量计费,计费粒度细化到秒级,完美匹配业务流量的潮汐变化,杜绝资源浪费。
优势三:高弹性
资源自动扩缩:系统会根据应用的实时和历史负载水位,动态、透明地调配底层资源。当业务高峰来临时,资源会自动扩容以支撑流量;当流量回落时,资源会自动缩减以节约成本。
配置自动调整:除了计算资源,系统还会智能地调整索引副本数、限流阈值等配置,以达到最佳性能和稳定性的平衡。
优势四:无缝集成 AI 模型
AI 模型开箱即用:Serverless 应用无缝集成了 AI 搜索开放平台上的所有模型,用户可以直接在 ES 内部通过 Inference API 调用它们。
支持自定义模型:更强大的是,它允许用户接入自己的、或第三方的优秀模型。只需通过简单的 API 配置,即可将任意外部模型集成到 ES 的 Inference 体系中,这为算法的灵活性和先进性提供了无限可能。
优势五:向量场景深度优化
智能过滤向量字段:默认在 _source 中排除向量字段,节省存储和传输资源,避免不必要的数据暴露。
向量默认量化策略:用户可以一键开启 int8 或 BBQ 等默认量化策略,无需关心底层实现细节,即可享受量化带来的内存和成本优势。
向量自适应预热:系统会自动将不同类型的向量索引文件(HNSW 图、量化向量等)预加载到文件系统缓存中,减少首次查询的冷启动延迟,提升高并发场景下的响应稳定性和吞吐量。
相关文章
《AI别吃“垃圾食品”》——从数据污染到信任危机,人工智能的健康成长全靠源头把关你敢信吗?哪怕训练数据里只有万分之一是假的,AI的错误率就可能蹭蹭上涨...
2025-08-16 0
金融界2025年8月16日消息,国家知识产权局信息显示,浙江益而益泵业技术有限公司取得一项名为“一种立式浮球开关结构”的专利,授权公告号CN22323...
2025-08-16 0
金融界2025年8月16日消息,国家知识产权局信息显示,珠海益之印科技有限公司取得一项名为“显影盒”的专利,授权公告号CN223229856U,申请日...
2025-08-16 0
您好:这款游戏可以开挂,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到-人的牌一样。所以很多小伙伴就怀疑这...
2025-08-16 0
发表评论