向量数据库简介
向量数据库简介
向量数据库(Vector Database)是一种专门用于存储、管理和检索高维向量(High-Dimensional Vectors)的数据库。它与我们熟悉的传统关系型数据库(如 MySQL)有根本性的不同,传统数据库处理的是结构化的表格数据,通过精确匹配或范围查询来检索数据。而向量数据库处理的是非结构化的数据(如图片、文本、音频、视频)转换而来的向量,并通过计算向量之间的“相似度”来检索数据。
核心思想:将非结构化数据转换为计算机可以理解和处理的数据形式(向量),并通过相似性搜索来找到“意思上”或“内容上”相近的数据。向量数据库的核心价值就是实现高效的“相似性搜索”(Similarity Search)或“最近邻搜索”(Nearest Neighbor Search)。
人工智能和机器学习(AI/ML)的发展使得我们能够建立一种称为嵌入模型(Embedding Model)的机器学习模型。嵌入模型将各种类型的数据编码为向量,以便捕捉资产的意义和上下文。这使得我们能够通过搜索相邻的数据点来找到相似的资产。向量搜索方法提供了独特的体验,例如用智能手机拍照然后搜索相似的图像
我们需要使用人工智能模型(尤其是各种嵌入模型 - Embedding Model)将这些非结构化数据转换为数值向量。例如,一段文字通过模型被转换为一个向量 。关键点在于语义上相近的数据,其对应的向量在向量空间中的距离也会很近。例如,“猫”和“ kitten”的向量距离,会比“猫”和“汽车”的向量距离近得多。
当用户提出一个查询时(比如一张图片或一段文字),查询内容也会被同样的模型转换为一个向量。向量数据库的任务就是:在整个庞大的向量集合中,快速找到与查询向量最相似的几个向量。衡量相似度的常用指标包括:余弦相似度(Cosine Similarity)、欧几里得距离(L2 Distance)、点积(Dot Product)等。如果使用传统数据库进行这种搜索,需要对所有向量进行暴力计算(逐一遍历比较),其时间复杂度是 O(N),当数据量达到百万、十亿级别时,速度会慢到无法接受。
