dot 快速未来的浪潮正在您的城市掀起。

加入我们参加 Redis 发布会

Redis 向量相似性搜索的全新体验

在 2022 年的 RedisDays NY 上,我们宣布了新的 向量相似性搜索 (VSS) 功能的公开预览。VSS 是 RediSearch 2.4 的一部分,可在 Docker、Redis Stack 和 Redis 企业云的免费和固定订阅中使用。

在本文中,我将带您了解向量相似性的基础知识、其应用以及帮助您开始使用 Redis VSS 的资源!

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

简而言之,它是衡量两个或多个向量之间差异(或相似度)的指标。将向量想象成数字列表。

为什么向量相似性搜索越来越受重视?

向量搜索的核心是允许开发人员根据音频、自然语言、图像、视频剪辑、语音录制以及更多类型的数据检索信息。对非结构化数据的搜索使得 VSS 成为构建高级相似性搜索体验的基础技术。

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

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

这些嵌入意味着什么?

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

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

完全不需要!有许多免费提供的 人工智能 模型和库允许开发人员从文本、图像或时间序列数据生成嵌入。例如,您可以使用 HuggingFace Sentence Transformers 为句子生成嵌入,使用 Img2Vec 为图像生成嵌入,以及使用 Facebook Kats 为时间序列数据生成嵌入。人工智能/机器学习从业人员熟悉为其数据实体生成“密集”特征表示(也称为嵌入)的概念。他们现在可以将这些特征向量存储在 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

– 使用三种常见的向量距离度量:余弦、内积和欧几里得距离

– 执行混合查询,将向量相似性与传统 RediSearch 过滤功能(针对 GEO、NUMERIC、TAG 或 TEXT 数据)结合起来。电子商务环境中混合查询的常见示例是“查找在 GEO 位置和价格范围内可用的项目,这些项目在视觉上类似于给定查询图像”。

是否有任何演示可用?

如果您精通 Python,请尝试以下操作
公共 Amazon 数据集上的视觉和语义相似性

金融新闻文章中的情绪分析和语义相似性

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

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

尝试观看以下两个 RedisDays 2022 会议的回放
主题演讲将实时人工智能融入您的“金融服务”应用程序

幕后揭秘:使用人工智能揭示隐藏在公司文件中交易信号

这些会议现在可以 点播观看。您始终可以在 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 企业云 创建免费订阅

如果您选择 Redis 企业云订阅,请确保使用“Redis Stack”选项,因为它包含 RediSearch 2.4。