趋近智
将文本、图像或音频等复杂数据表示为高维向量(嵌入)能帮助我们获取其语义。然而,我们通常用于应用开发的数据库,例如关系型数据库(如PostgreSQL、MySQL)乃至许多NoSQL数据库(如MongoDB、Cassandra),最初并非设计用于处理这些向量所需的主要功能:根据几何距离或方向找出与给定查询向量最相似的向量。
试想一个标准的SQL查询:SELECT * FROM products WHERE category = 'electronics' AND price < 500。这依赖于对组织在结构化行和列中的标量值进行精确匹配或比较。传统的索引,如B-树,对于这些操作非常有效。文本搜索通常涉及将关键词映射到文档的倒排索引。
向量搜索的运作方式有所不同。其基本查询并非关于精确值匹配,而是在高维空间中寻找“近邻”。给定一个查询向量 q,我们想在数据库中找到数据向量 p,使得距离函数(如欧几里得距离)最小:
d(p,q)=i=1∑n(pi−qi)2或最大化相似度函数,例如余弦相似度:
similarity(p,q)=∥p∥∥q∥p⋅q对数百万甚至数十亿高维向量(其中维度 n 可以是数百或数千)进行详尽的计算,对于实时应用而言是计算上不可行的。这就是向量数据库发挥作用的地方。
那么,向量数据库有何特点?
从根本上说,向量数据库是一个专门设计并优化用于存储、索引和查询高维向量嵌入的数据库系统,通常还会存储其相关元数据。
其主要特点包括:
简而言之,传统数据库优化于基于精确匹配或范围比较来筛选和检索结构化数据,而向量数据库则优化于在高维向量空间中基于相似性寻找近似匹配。它们提供所需的基础设施,以构建语义搜索、推荐系统、图像检索系统和异常检测等应用程序,这些应用高度依赖于理解向量嵌入中包含的关系。
接下来的章节将考察内部架构、数据模型以及实现这些功能的具体操作。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造