✏️ 编者按:
想要量身定制一款专属你的衣橱?想要亲自设计颜色和布局?内部的隔板、抽屉、网篮要什么尺寸?挂衣杆和裤架也不能少?甚至……你还想同时对比多个类似的衣橱?
在这个家喻户晓家具和家居零售企业,你除了可以选购现成的家具,还能线上 DIY,拼接组装你想要的家具零件。在用户设计完成后,在线商城还会贴心地推荐多个相似家具供顾客参考。
这个聪明的设计和推荐平台是如何实现的?Milvus 社区有幸邀请到了来自该外资家居企业的工程师陈晨,与大家分享 Milvus 数据库在家具行业中的应用。
🌟 嘉宾简介:
陈晨,Leader of data smart offering platform,负责构建智慧数据生成平台,毕业于复旦大学,热衷探索新技术,迭代、重构和升级已有系统。
完整视频请戳👇
在家具与家居行业,为了让用户对产品有一个直观的概念,需要先“打样”,也就是把家具拼出来展示。家具通常体积庞大,需要较大展示空间。如何在有限的空间内让用户更好地「看到」家具,成为了家具行业的痛点。
为了解决这个问题,我们找到了一款在线解决方案(如上图所示),可以实现在线打样、局部调整、在线出样等功能。
该智能化平台需要包含以下数据链路:
在上图的智能生产数据平台模型中,左侧是与销售业务相关的信息,右侧是与数据生产相关的内容。为了支持设计工具的使用,我们需要将物理空间中的家具组件转化为计算机可以认识的数据模型。
除此之外,我们还需要支持 H5、App、小程序等多平台,需要拥有在线的高性能召回排序,稳定的、可兼容的存储。为了能够满足以上需求,我们还需要增强平台鲁棒性,让平台可以自我修复、可以自己降级、可以去做一些迭代。
基于以上需求,我们是这样设计该智能化平台的:
由于家具是一个立体的空间概念,需要多维度描述一件家具的结构,很难用传统的标量数据(如 SKU)描述全部信息。所以,我们需要选择了一款迭代迅速、兼容性好、使用方便的向量数据库完成向量数据的存储和检索,下图是我们对 Elasticsearch、 Faiss、 Milvus 数据库等向量搜索解决方案的横纵向测评,基于性能、稳定性、易用性等因素综合考量,我们最后选择了向量数据库 Milvus。
以上是我们的平台架构示意图。其中,Milvus 数据库负责存储向量数据。基于这个架构,我们又分离线和在线两个部分。
离线过程分为五步:
在线过程分为五步:
在真实场景中,我们是如何实现这个平台的呢?
下图左侧的衣柜展示了多种挂置和叠放的可能性,这些特征会被转化为数据标签保存在 Elasticsearch 中,Elasticsearch 中的代码设置如右侧所示。这些标签主要用于线上的粗召回以及线上数据 debug。
我们会选取家具的一些标签属性进行 embedding,通过不同的算法和服务将它们构建为一组或多组向量。这些向量及其 ID 一同存在 Milvus 数据库中,后续进行相似性召回和排序。
整个平台的资源配置由 Elasticsearch、PostgreSQL(存储配置信息)、OSS(下游计算及展示信息)、Milvus(存储向量表征信息) 组成。
在召回阶段,我们会去先根据用户的 query 去构建一些 Elasticsearch 的 query,然后去做一些粗召回。同时,我们还会把用户的 query 转化为检索向量,然后在 Milvus 里召回 topK 的近似向量,配合 Elasticsearch 里面召回的数据结果进行打分。
该平台有效提速整个设计流程。原先,客户平均需要 180 分钟进行设计,使用智能化在线平台后设计时间降至 30 分钟左右。对于用户而言,该平台还能够一次性提供 20 个不同款式的家具,大大降低顾客设计门槛,优化用户体验。从企业角度来看,该平台有效提升了全球订单量与客单价。
就技术而言,我们将会精简数据链路、提速运算节点,不断优化迭代,提升整个智能平台的性能和用户体验;此外,我们将会在更多国家和地区推广该平台,并在门店内部署,覆盖更多渠道,让用户更好地体感受到智能设计带来的极致体验。