1
头图

✏️ 编者按:

想要量身定制一款专属你的衣橱?想要亲自设计颜色和布局?内部的隔板、抽屉、网篮要什么尺寸?挂衣杆和裤架也不能少?甚至……你还想同时对比多个类似的衣橱?

在这个家喻户晓家具和家居零售企业,你除了可以选购现成的家具,还能线上 DIY,拼接组装你想要的家具零件。在用户设计完成后,在线商城还会贴心地推荐多个相似家具供顾客参考。

这个聪明的设计和推荐平台是如何实现的?Milvus 社区有幸邀请到了来自该外资家居企业的工程师陈晨,与大家分享 Milvus 数据库在家具行业中的应用。

🌟 嘉宾简介:

陈晨,Leader of data smart offering platform,负责构建智慧数据生成平台,毕业于复旦大学,热衷探索新技术,迭代、重构和升级已有系统。

业务背景

在家具与家居行业,为了让用户对产品有一个直观的概念,需要先“打样”,也就是把家具拼出来展示。家具通常体积庞大,需要较大展示空间。如何在有限的空间内让用户更好地「看到」家具,成为了家具行业的痛点。

为了解决这个问题,我们找到了一款在线解决方案(如上图所示),可以实现在线打样、局部调整、在线出样等功能。

该智能化平台需要包含以下数据链路:

  • 准备数据,定义零件
  • 在线召回,通过排序找到满足用户需要的数据
  • 一些补充的业务逻辑,随后最终交付给用户

技术选型

在上图的智能生产数据平台模型中,左侧是与销售业务相关的信息,右侧是与数据生产相关的内容。为了支持设计工具的使用,我们需要将物理空间中的家具组件转化为计算机可以认识的数据模型。

除此之外,我们还需要支持 H5、App、小程序等多平台,需要拥有在线的高性能召回排序,稳定的、可兼容的存储。为了能够满足以上需求,我们还需要增强平台鲁棒性,让平台可以自我修复、可以自己降级、可以去做一些迭代。

基于以上需求,我们是这样设计该智能化平台的:

  • Elasticsearch 负责一些较粗的召回和简单筛选,这些数据来自多个数据源
  • 对基于一些规则生成的向量,使用 Milvus 数据库进行向量距离计算,然后再做排序
  • Backend 负责 BU、business insight 做数据后处理,这样就完成了数据的最终交付

由于家具是一个立体的空间概念,需要多维度描述一件家具的结构,很难用传统的标量数据(如  SKU)描述全部信息。所以,我们需要选择了一款迭代迅速、兼容性好、使用方便的向量数据库完成向量数据的存储和检索,下图是我们对 Elasticsearch、 Faiss、 Milvus 数据库等向量搜索解决方案的横纵向测评,基于性能、稳定性、易用性等因素综合考量,我们最后选择了向量数据库 Milvus。

架构与数据链路

以上是我们的平台架构示意图。其中,Milvus 数据库负责存储向量数据。基于这个架构,我们又分离线和在线两个部分。

离线过程分为五步:

  1. 定义 items,将物理空间上的零件表示为计算机能够理解的 item
  2. 数据生成
  3. 对家具进行了特征工程,包括标签选取、表征 encoding
  4. 召回数据准备,将数据转成可搜索的数据结构
  5. 数据排序准备,此时会完成 embedding 以及数据集管理等工作

在线过程分为五步:

  1. Backend 步骤中,设计工具将后台收到的 query 与经过隐私模糊处理的用户画像拼接,用于组织后续召回、排序的参数和策略
  2. Query understanding 步骤中,平台根据用户的需求和预先配置的参数,组织召回策略和排序参数
  3. Search platform 将解析出来的结果组成 DSL,通过多个数据集进行召回
  4. Ranking 步骤中,平台根据预先定义的规则和表征信息进行混合打分和结果调整
  5. 回到 Backend 步骤,补全数据,根据运营需求重新整理数据返回给前端

使用示例

在真实场景中,我们是如何实现这个平台的呢?

下图左侧的衣柜展示了多种挂置和叠放的可能性,这些特征会被转化为数据标签保存在 Elasticsearch 中,Elasticsearch 中的代码设置如右侧所示。这些标签主要用于线上的粗召回以及线上数据 debug。

我们会选取家具的一些标签属性进行 embedding,通过不同的算法和服务将它们构建为一组或多组向量。这些向量及其 ID 一同存在 Milvus 数据库中,后续进行相似性召回和排序。

整个平台的资源配置由 Elasticsearch、PostgreSQL(存储配置信息)、OSS(下游计算及展示信息)、Milvus(存储向量表征信息) 组成。

在召回阶段,我们会去先根据用户的 query 去构建一些 Elasticsearch 的 query,然后去做一些粗召回。 同时,我们还会把用户的 query 转化为检索向量,然后在 Milvus 里召回 topK 的近似向量,配合 Elasticsearch 里面召回的数据结果进行打分。

总结与展望

该平台有效提速整个设计流程。原先,客户平均需要 180 分钟进行设计,使用智能化在线平台后设计时间降至 30 分钟左右。对于用户而言,该平台还能够一次性提供 20 个不同款式的家具,大大降低顾客设计门槛,优化用户体验。从企业角度来看,该平台有效提升了全球订单量与客单价。

就技术而言,我们将会精简数据链路、提速运算节点,不断优化迭代,提升整个智能平台的性能和用户体验;此外,我们将会在更多国家和地区推广该平台,并在门店内部署,覆盖更多渠道,让用户更好地体感受到智能设计带来的极致体验。


Zilliz 以重新定义数据科学为愿景,致力于打造一家全球领先的开源技术创新公司,并通过开源和云原生解决方案为企业解锁非结构化数据的隐藏价值。

Zilliz 构建了 Milvus 向量数据库,以加快下一代数据平台的发展。Milvus 数据库是 LF AI & Data 基金会的毕业项目,能够管理大量非结构化数据集,在新药发现、推荐系统、聊天机器人等方面具有广泛的应用。


Zilliz
154 声望829 粉丝

Vector database for Enterprise-grade AI