dot Redis 8 已发布——并且它是开源的

了解更多

重新认识 Redis 向量相似度搜索

RedisDays NY 2022 大会上,我们发布了新的向量相似度搜索 (VSS) 能力的公开预览版。VSS 是 RediSearch 2.4 的一部分,可在 Docker、Redis Stack 以及 Redis Enterprise Cloud 的免费和固定订阅中使用。

在本文中,我将向您介绍向量相似度的基础知识及其应用,并分享一些资源,帮助您开始使用Redis VSS

Vector Similarity Search Diagram
什么是向量相似度?

简单来说,它是衡量两个或多个向量之间差异(或相似度)的度量。可以将向量视为一个数字列表。

为什么向量相似度搜索日益受到关注?

核心来说,向量搜索使开发者能够基于音频、自然语言、图像、视频片段、语音录音以及更多类型的数据检索信息。对非结构化数据进行搜索使得 VSS 成为构建高级相似度搜索体验的基础技术。

如何为我的数据生成这些向量?

随着 AI 的进步,数据科学家可以构建模型,将几乎任何数据“实体”转换为其向量表示。这里的实体可以是交易、用户资料、图像、声音、长文本(句子或段落)、时间序列或图。其中任何一个都可以转化为其“特征向量”,也称为“嵌入 (embedding)”。

这些嵌入是什么意思?

向量嵌入是数据的数值表示。它们以计算机和数据库易于比较的方式捕获实体最本质的特征。有趣的是,如果一个模型为两个实体生成了两个相似的嵌入(向量),您可以推断这两个原始实体在某种基本方式上是相似的。

我需要成为数据科学家才能生成这些嵌入吗?

完全不需要!有许多免费提供的AI模型和库,允许开发者从文本、图像或时间序列数据中生成嵌入。例如,您可以使用HuggingFace Sentence Transformers为句子生成嵌入,使用Img2Vec为图像生成嵌入,以及使用Facebook Kats为时间序列数据生成嵌入。AI/ML 从业者熟悉为其数据实体生成“密集”特征表示(即嵌入)的概念。他们现在可以将这些特征向量存储在 Redis 中并对其执行相似度搜索。

vector similarity search everyday use cases
可以使用向量相似度搜索构建哪些类型的应用?

您日常交互的许多应用都依赖于向量相似度搜索。

从电子商务网站上的视觉搜索到自动化聊天机器人/问答系统以及多种类型的推荐系统。更普遍地说,您会在任何需要实时发现相似度以释放价值的应用中发现 VSS 的用处。下面列出了一些常见的用例:

– 电子商务推荐:使用视觉相似度和/或语义相似度来支持高级搜索体验和产品推荐

– 语义相似度:构建复杂的搜索体验、聊天机器人,甚至是问答系统

– 时间序列数据中的相似度:发现疾病传播模式的相似性,或基于历史模式的相似性发现交易机会

– 图数据中的相似度:揭示跨越不同(可能不相关)行动者或网络集合的连接模式的相似性。

– 交易的相似度:基于与先前检测到的欺诈/威胁尝试的相似性来检测潜在的欺诈或威胁

– 用户资料或产品的相似度:生成个性化推荐;根据嵌入数据揭示的模式细化客户细分

vector similarity search key capabilities
Redis 如何实现向量相似度搜索?

RediSearch 是一个 Redis 模块,为存储为 Redis 哈希或 JSON 格式的 Redis 数据提供了查询能力、二级索引和全文搜索。从 Redis 2.4 开始,Redis 引入了对向量相似度搜索的支持。

借助 RediSearch 2.4,Redis 开发者可以:
– 索引和查询存储为 Redis 哈希中 BLOB 的向量数据

– 使用两种流行的索引方法:FLAT 和 HNSW

– 使用三种常见的向量距离度量:余弦相似度 (cosine)、内积 (internal product) 和欧氏距离 (euclidean distance)

– 执行混合查询,将向量相似度与 RediSearch 传统的 GEO、NUMERIC、TAG 或 TEXT 数据过滤功能结合起来。电子商务场景中混合查询的一个常见例子是“查找与给定查询图像在视觉上相似的商品,并仅限于特定 GEO 位置和价格范围内的可用商品”。

有没有可用的演示?

如果您熟悉 Python,可以试试这些:
在公共亚马逊数据集上进行视觉和语义相似度搜索

金融新闻文章的情感分析和语义相似度

对于 Java,您可以试试这个基本演示,它展示了如何创建索引、加载数据和查询。

我在哪里可以了解更多信息?

可以观看这两场 RedisDays 2022 会议的回放:
主旨演讲将实时 AI 注入您的“金融服务”应用

幕后故事:使用 AI 揭示公司文件中隐藏的交易信号

会议现在可以在线点播观看。您也可以随时查看 RediSearch 关于“使用向量”的文档。 

RediSearch 2.4 availability image
如何开始?

有三种简单的方法可以创建带有 RediSearch 2.4 的 Redis 数据库。

从您的终端,您可以通过以下任一方式获取:
1) Docker – “docker run -p 6379:6379 redislabs/redisearch:2.4.5”

2) Redis Stack – “brew install redis-stack” (适用于 Mac OS)。对于其他操作系统,请尝试“Redis Stack 入门”

3) 最后,您还可以通过Redis Enterprise Cloud创建免费订阅。

如果您选择 Redis Enterprise Cloud 订阅方式,请务必使用“Redis Stack”选项,因为它包含 RediSearch 2.4。