目录
一、什么是向量数据库?
向量数据库是一种专门用来存储、检索和管理“向量数据(Vector Data)”的数据库。
向量是一种多维的数值数组,通常用来表达图片、文本、音频、视频等非结构化数据在高维空间中的“特征表示”。
与传统数据库管理结构化表格数据不同,向量数据库的核心任务是:基于向量之间的“相似度”进行快速检索。
二、为什么需要向量数据库?
1. 传统数据库做不到什么?
传统数据库(如MySQL、PostgreSQL)擅长处理精确匹配(比如:查ID=1001的记录)。 但当你想查询:
“和这张图片相似的图片”
“和这段文本语义相近的句子”
“和某个用户兴趣相似的商品”
这就需要用到向量的“相似度检索”,传统数据库在高维向量空间检索时效率极低。
2. 向量数据库的意义
大模型(如BERT、CLIP、LLM)生成的向量需要被有效管理与检索。
AI搜索、推荐系统、智能问答、图像搜索 等场景都离不开向量检索。
三、向量数据库核心原理
1. 数据存储
每条数据(如图片、文本)会被转化为一个高维向量(例如512维、768维)。
向量数据库以专门的数据结构(如倒排索引、哈希表、树结构、图结构)存储这些向量。
2. 相似度检索
用户输入一个查询向量(query vector),数据库会返回与之“最相似”的Top K条数据。
常见的相似度计算方法有:
余弦相似度(Cosine Similarity)
欧氏距离(Euclidean Distance)
点积(Inner Product)
3. ANN(近似最近邻搜索)
为了加速检索,向量数据库通常采用 ANN 算法,能在牺牲微小精度的前提下,实现亿级向量的毫秒级搜索。
典型的ANN算法包括:HNSW、IVF、PQ、LSH 等。
四、向量数据库 vs 传统数据库
维度 | 传统数据库 | 向量数据库 |
---|---|---|
数据类型 | 结构化(表格) | 非结构化(向量) |
检索方式 | 精确匹配、范围查询 | 相似度匹配(Top K搜索) |
典型场景 | 订单管理、用户信息 | 图像搜索、语义检索、推荐系统 |
数据结构 | B+树、哈希表 | 图索引、倒排表、HNSW |
五、常见开源向量数据库
数据库 | 特点 |
Milvus | 社区活跃度高,支持大规模向量数据,性能优越,适合生产级部署 |
FAISS(Facebook AI Similarity Search) | Facebook 开源,适合本地部署和嵌入式应用,轻量但不自带分布式功能 |
Weaviate | 内置图数据库和Schema机制,支持多模态检索(文本+图片) |
Vespa | Yahoo开发,支持大规模实时向量检索,强大的排序和过滤功能 |
六、向量数据库的应用场景
AI 搜索引擎:百度、阿里、Google 都在使用向量搜索提升智能问答与搜索相关性。
推荐系统:根据用户行为向量,实现“猜你喜欢”。
图像/视频检索:上传一张图片,找出相似图片/视频片段。
智能客服与知识库问答:将文档转为向量,实现基于语义的精准问答(RAG方案)。
安全风控:异常行为检测、反欺诈模型。
七、向量数据库的挑战与未来
存储成本与查询性能的平衡
高维稀疏向量处理优化
与大模型(LLM)的深度融合
向量+结构化数据的混合查询能力(Hybrid Search)
向量数据库是 AI 时代的“数据底座”,随着多模态 AI、AIGC 的爆发,未来向量数据库将成为企业的必备基础设施。