本文介绍如何基于阿里云OpenSearch向量检索版帮助电商客户搭建图片搜索服务,解决图片向量化处理、向量相似度查询、同一个商品下多张图片、一张图片中多个主体商品等检索难题,实现以图搜图、文本描述搜图等多种图搜能力,并帮助客户提升搜索性能、降低使用成本。
图片搜索是电商场景必备功能
随着明星同款、多店比价、大牌平替等商品查找方式被用户熟知与使用,图片搜索正在成为电商场景产品的必备功能。
商品图片中几乎包括了款式、品牌、颜色等在内的所有商品信息,通过商品图片来搜索和下单,可以极大提升客户的使用体验。电商企业提供图片搜索功能,能够有效的帮助客户在最快的时间内找到心仪商品,并进一步提升成单率。
企业如何实现图片搜索
图片数据是一种典型的非结构化数据,它无法用统一的表格结构表示,也无法使用传统的分词技术来实现搜索匹配。企业想实现图片搜索的的能力,需要用到一种不同于传统分词匹配搜索方案的技术——向量搜索。
搭建一个完整的图片搜索服务需要以下步骤:
数据向量化处理:将企业商品图片、用户查询时使用的图片Query,通过向量化模型将图片数据转化为多维向量数据(一系列数字按照特定顺序组成的一堆数组)。
构建向量索引:基于向量数据构建成一个或多个可供搜索的向量索引。
向量相似度查询与结果返回:利用向量距离算法,计算向量数据间的距离,从索引中找到最相似的向量结果并将结果按得分排序返回。
原理听上去并不困难,但在实际服务搭建中,还存在一些不可忽视的问题,比如:
企业是否有足够的算法研发人员,进行图片数据的向量化处理?
企业是否有经验丰富的向量搜索研发人员,来完成向量距离计算复杂的参数调整、保障搜索效果?
面对商品库数据量的逐渐增长,企业如何维护搜索系统的稳定性,在保障搜索性能的同时降低成本?
如果这些问题无法解决,图片搜索对于企业来说仍旧是难以实现的功能。
阿里云OpenSearch向量检索版:电商场景图片搜索方案
面对企业的这些问题,阿里云OpenSearch向量检索版提供了一套完整的端到端解决方案:企业只需要提供原始的商品图片数据,接下来所有步骤(包括:数据向量化处理、构建向量索引、向量相似度查询、结果排序)都将在OpenSearch内部自动完成,OpenSearch会将搜索结果以API的方式返回给客户,客户可以直接将搜索结果用在自己的网页或App上。
△ OpenSearch向量检索版电商图搜方案示意图
数据向量化处理
阿里云OpenSearch向量检索版内置图片向量化处理模型,客户只需要将原始商品图片可以通过OSS路径或base64编码上传至OpenSearch向量检索版,然后选择图片向量处理模型,OpenSearch就可以基于这个模型自动完成数据的向量化处理。
目前阿里云OpenSearch提供两种图片向量化模型:通用clip模型、电商增强版clip模型,其中电商增强模型,是OpenSearch基于海量商品图片训练出的电商场景专属模型,针对电商图片有更好的识别和转换效果。
构建向量索引
阿里云OpenSearch向量检索版为电商客户提供了低成本、高性能、功能实用的索引构建服务:
1.低成本
支持多种数据压缩方案,经过压缩后的索引远远小于原始数据大小,可以帮客户有效降低整体存储开销。
支持非全内存加载,客户可以基于商品历史购买记录、店铺评分等信息将数据进行冷热分层,根据数据冷热情况在OpenSearch中将数据分别存放于远端存储、磁盘、内存,实现精细化的数据存储,大大降低内存开销。
2.高性能
支持数据即增即查,电商场景商品频繁上下架,对库存与可售情况要求严格,OpenSearch支持新增数据构建实时索引,新数据毫秒级可查,保障商品可售状态的实时性,降低交易失败概率。
拥有经过淘系电商极端并发场景验证的工程引擎,百万+TPS高时效性写入保障,4核节点即可承载亿级向量,并支持数据容量上限调整,最高可至千亿级别,企业客户不再需要担心购买后遭遇存储与性能瓶颈。
3.实用功能
支持单个doc配置多个向量,适配电商场景中同一个商品id下有多张商品图片的场景。
向量相似度查询与结果返回
阿里云OpenSearch向量检索版为电商客户提供了实时查询的高性能搜索服务,并支持多种过滤查询能力:
性能优势:底层基于阿里巴巴自研的大规模向量搜索引擎,支持千亿级数据毫秒级查询响应,检索性能优于其他开源产品数倍。
表达式过滤:支持表达式过滤(如筛选价格<200元的结果),并具有边检索边过滤的能力,帮助电商场景客户有效降低搜索无结果率,解决TopN相关性返回结果中满足过滤条件结果过少的问题。
按命名空间查询:支持将数据按命名空间进行分区,并按照分区查询,电商场景能有效帮助实现按照商品类别搜索(如电子数码、女装等不同类别)、店铺内搜索(基于店铺分类)等搜索能力。
主体识别:客户输入的图片Query可能包含多个主体(比如同一张图片中包括帽子、上衣、手表),OpenSearch提供主体识别功能,能够识别同一张图片中的多个主体信息,支持按照不同主体分别进行搜索,电商场景下帮助客户精准定位到图片中实际期望查找的商品。