
在DocArray中使用Redis后端,基于向量相似性搜索可以快速搭建一个实时商品推荐系统。现在,跟上我们的脚步,一起了解搭建系统的关键步骤,并且深入了解推荐的原理吧!
推荐系统会根据用户画像、历史行为(如购买、喜欢、浏览等),给用户的兴趣建模,主动提供个性化推荐。它可以提升转化率并保持用户忠诚度,因而被广泛应用在各类电子商务网站。

过去,构建并部署推荐系统通常是一个非常复杂的任务。但现在,通过在 DocArray 中使用 Redis 后端,使用最新的向量相似度搜索技术,可以快速构建实时商品推荐系统。

为电子商务网站构建推荐系统涉及很多挑战,以下列出了一些要考虑的问题:
定制化: 用户希望可以按照价格范围、品牌和尺寸等要素筛选商品,所以推荐系统应该满足用户的需求。
多模态:商品清单不应该只是文本描述,还可以包含图片、视频、音频或者 3D 网格。在推荐时,所有模态的信息都应该被充分利用。
实时性:推荐结果应该快速返回,否则就没有意义了。
数据量:网站拥有的客户和商品越多,有效推荐的难度就越高。即便使用规模很大的数据集,计算过程也应该迅速完成。
随着技术的不断发展,用户需求的不断增长,构建推荐系统的方法也应该不断提升。
在本文中,我们将向您展示如何使用最新的向量搜索技术构建实时商品推荐系统,并使用自定义过滤器来提供个性化推荐。我们使用的工具包括 Redis 和 DocArray。
from docarray import DocumentArray
redis_da = DocumentArray(storage='redis')
在 DocArray 中使用 Redis 后端非常简单方便,更多信息可以查阅文档。
https://docarray.jina.ai/advanced/document-store/redis/
如何构建推荐系统?
在构建推荐系统时,有一些常见的方法:
协同过滤推荐: 基于相似用户的偏好来推荐商品。
基于内容推荐: 为用户建立特征向量,然后根据向量间的相似度来预测用户可能感兴趣的商品。
混合算法推荐:混合了协同过滤和基于内容的过滤算法,以及其他算法来实现推荐功能。
本文重点是改进基于内容的过滤算法。如果您对此算法不熟悉,可以阅读一下谷歌的基于内容的过滤算法概述。
https://developers.google.com/machine-learning/recommendation/content-based/basics
在实现基于内容的过滤算法时,需要考虑两个因素。
首先,在为用户和商品建立特征向量时,充分利用所有模态数据是非常重要的。仅仅依靠关键词或者一组特征可能无法有效地代表复杂的数据。因此,使用前沿的 AI 模型是很有必要的,它们可以将复杂的多模态数据表示为嵌入向量 embedding。
CLIP 是一个可以同时表示文本和图像的神经网络模型,因此我们可以使用 CLIP-as-service 作为推理引擎来支持我们的推荐系统。
其次,如果不能高效地计算向量相似度,计算过程可能会非常慢并且成本高昂。而且在批处理中提前计算用户和 item 间的向量相似度并不现实,因为我们的应用程序需要遵守用户过滤器,并提供低延迟推荐。所以在这个实时商品推荐系统里,我们需要使用高效算法,例如 Hierarchical Navigable Small World(HNSW) 来实时计算相似度。
这些技术都集成在向量数据库中,RediSearch 2.4 中提供向量搜索功能。因为 Redis 是一个内存数据库,所以推荐可以保证实时进行。
由于推荐系统包含 特征表示 和 向量相似度计算,所以我们需要一种数据结构跨越多模态数据和向量数据库之间的鸿沟。DocArray 就是不二之选,DocArray 提供了便捷的多模态数据处理功能,具备基于 Protobuf 提供高性能的网络传输性能,同时也为多种向量存储方案提供统一的 API 接口。
也就是说 DocArray 既支持多模态数据的处理、传输、存储,又可以作为通用向量数据库的客户端。在这个推荐系统中,DocArray 既可以用来表示用户和物品的信息,又可以对它们进行特征表示。更重要的,只需几行代码就可以轻松构建推荐系统。
DocArray与Redis构建实时推荐系统

本文介绍了如何使用DocArray和Redis构建实时商品推荐系统,利用向量相似性搜索和自定义过滤器提供个性化推荐。通过CLIP-as-service编码多模态数据,结合Redis的向量搜索功能,实现快速、高效的推荐服务。
最低0.47元/天 解锁文章
1848

被折叠的 条评论
为什么被折叠?



