多模态商品搜索与以图搜货落地

日期:2026-07-26

本文为工程实践复盘,客户信息已脱敏;所述数据均为示意值。

一、项目背景

某批发与零售一体的平台,商品图海量、类目杂乱,买家有个很朴素的习惯:"我看中了这个款,有没有类似的"。但文字搜索依赖标题和标签,同款不同名、长尾商品根本搜不到;靠运营人工比对找相似款,人力扛不住,选品效率低、转化也差。我们调研时发现,平台上相当一部分成交,其实源于"看到图想找同款"的需求,而传统搜索把这部分需求挡在了门外。

我们当时定的目标,是做"以图搜货"——拍一张或者传一张图,系统返回相似商品,并支持进一步筛选。这个项目里我们采用自研的 AI 私有化底座承载图像向量化模型,向量库做近邻检索,全程在私有环境,商品图不出域。

二、落地场景

落地之后,商品上架时自动抽取主图特征、生成向量入库;买家以图搜货时,查询图同样向量化,在向量库做近邻检索,返回 Top-K 相似商品,并叠加类目、价格、属性过滤。结果支持"找同款"和"找相似"两种模式:同款走强一致匹配,相似款走语义近邻,区分清晰。

前端把相似结果按相似度排序,并高亮差异点,比如颜色、规格,帮买家快速判断。我们把它接到搜索框和拍照入口,运营后台能看到"以图搜货"的转化漏斗,反过来推动哪些类目的图质量需要补,形成数据闭环。

三、关键技术挑战与解决思路

第一是商品图特征抽取与向量化。我们用商品专用的视觉模型,而不是通用模型,突出款式、轮廓、花色等商品语义,弱化背景与拍摄角度的干扰;主图做标准化,去水印、统一尺寸,显著提升向量质量,这一步决定了召回上限。

第二是以图搜货召回与排序。检索用 HNSW 近邻,召回后按"同款分加相似分"双分数排序,同款分来自强特征匹配,相似分来自语义近邻,避免把完全不相关的也塞进来,也避免用户要同款却给一堆相似。

第三是图文混合检索融合。文字筛选项,比如类目、价格、属性,作为后置过滤而非前置截断,先召回再过滤,保证召回不被硬条件误杀,长尾商品才搜得出来。

第四是类目与属性约束。对强类目商品,比如鞋码、规格,在结果层做属性对齐,避免"图相似但规格完全不符"误导买家,把相似度高的错误结果挡在展示之前。

四、效果数据

上线大约一个季度之后,以脱敏示意口径来看:以图搜货的搜货命中率,也就是返回结果中含目标或相似款的比例,达到九成左右;相似款点击率较纯文字搜索提升约两成;带动搜索相关转化提升约一成五;检索 P99 延迟稳定在百毫秒级。数据为示意值,不列审计级精确数字。

五、可复用经验总结

图向量先于文检索,类目约束保准确,这是我们最想强调的两点。踩过的坑,是先用通用图像模型向量化,结果把"白底图"和"场景图"的同一商品判成不相似;换成商品专用模型加主图标准化之后才稳。关键点是"同款与相似"双分数,否则用户要的是同款你给一堆相似,体验会很糟。属性约束必须放在结果层而非召回前,否则长尾商品直接被滤没。

结语

以图搜货的价值,不只是多了一个搜索入口,而是把"用户说不清、但看得懂"的需求接住了。当商品图被向量化、被结构化,搜索就从"匹配文字"升级为"理解样子",这对长尾和同款乱象严重的平台,往往是一块被低估的转化增量。

回过头看,以图搜货的价值,不只是多了一个搜索入口,而是把用户说不清但看得懂的需求接住了。当商品图被向量化、被结构化,搜索就从匹配文字升级为理解样子,这对长尾和同款乱象严重的平台,往往是一块被低估的转化增量。我们把搜货命中率、相似款点击率、转化漏斗做成日常看板之后,运营能反推哪些类目图质量差、需要补拍,数据闭环让搜索体验持续变好。多模态不是炫技,而是把最朴素的找货需求,用最贴近人类直觉的方式满足掉。

我们还把以图搜货和推荐位打通,买家搜完相似款之后,详情页下方直接给出同店搭配,连带转化比纯文字搜索高出一截。多模态能力一旦进入业务闭环,就不只是搜索工具,而成了选品和搭配的入口,运营也因此更愿意投入精力把商品图拍好,形成正向循环。

多模态搜索的终点不是搜到,而是帮用户更快做决定,只要它持续降低找货的认知成本,价值就会一直存在。

案例片段(已脱敏):商品图向量化与检索配置(示意) - 入库:vec = img_model(standardize(main_img)); upsert(item_id, vec, attrs)- 检索:q = img_model(query); res = HNSW_search(q, k=50); score = same_score+sim_score- 过滤:res = filter(res, cat=req.cat, price in [lo,hi])

案例片段(已脱敏):一次效果对比(示意)——对 1000 张查询图,以图搜货 Top-10 含目标款的比例约 91%,其中"同款"模式精确召回约 96%;纯文字搜索同名不同款场景下命中率仅约 55%,差距明显。