当前位置: 首页 > news >正文

向量数据库原理是什么? 请简述下它的原理

向量数据库的核心原理

向量数据库的核心原理可以概括为:将非结构化数据转换为高维向量,通过高效的索引结构和相似度计算算法,实现快速的近似最近邻搜索(ANN)

1. 基本工作流程

原始数据 → 向量化 → 索引构建 → 相似度搜索 → 结果返回 ↓ ↓ ↓ ↓ ↓ 文本/图像 嵌入模型 索引结构 距离计算 Top-K结果

2. 核心组件详解

2.1 向量化(Embedding)
# 向量化过程示例fromsentence_transformersimportSentenceTransformer# 加载预训练模型model=SentenceTransformer('all-MiniLM-L6-v2')# 文本转向量text="人工智能改变世界"vector=model.encode(text)print(f"向量维度:{len(vector)}")# 输出: 384print(f"向量示例:{vector[:10]}")# 输出前10个维度# [ 0.0234, -0.0456, 0.0789, -0.0123, 0.0345, ...]

原理

  • 使用深度学习模型(如 BERT、GPT)将文本/图像映射到高维空间
  • 语义相似的数据在向量空间中距离更近
  • 向量的每个维度代表数据的某种特征
2.2 距离度量(Similarity Metrics)
importnumpyasnpdefcosine_similarity(vec1,vec2):"""余弦相似度:范围[-1, 1],越接近1越相似"""dot_product=np.dot(vec1,vec2)norm1=np.linalg.norm(vec1)norm2=np.linalg.norm(vec2)returndot_product/(norm1*norm2)defeuclidean_distance(vec1,vec2):"""欧几里得距离:范围[0, ∞),越接近0越相似"""returnnp.linalg.norm(vec1-vec2)defdot_product(vec1,vec2):"""点积:范围[-∞, ∞],越大越相似"""returnnp.dot(vec1,vec2)# 示例vec_a=np.array([1,2,3])vec_b=np.array([1,2,3.1])print(f"余弦相似度:{cosine_similarity(vec_a,vec_b):.4f}")print(f"欧氏距离:{euclidean_distance(vec_a,vec_b):.4f}")print(f"点积:{dot_product(vec_a,vec_b):.4f}")

常用距离度量对比

度量方式公式特点适用场景
余弦相似度cos(θ) = A·B/|A||B|关注方向,忽略长度文本相似度
欧氏距离d = √Σ(ai-bi)²考虑绝对距离图像相似度
点积A·B = Σai·bi计算简单,未归一化推荐系统
曼哈顿距离d = Σ|ai-bi|对异常值不敏感高维稀疏数据
2.3 索引结构(Indexing)

这是向量数据库的核心,决定了查询性能。

A. 树形索引
# KD-Tree 原理示意classKDTreeNode:def__init__(self,point,left=None,right=None,axis=0):self.point=point# 分割点self.left=left# 左子树self.right=right# 右子树self.axis=axis# 分割维度defbuild_kdtree(points,depth=0):"""构建 KD-Tree"""ifnotpoints:returnNone# 选择分割维度(轮换使用)k=len(points[0])# 向量维度axis=depth%k# 按当前维度排序,选择中位数作为分割点points.sort(key=lambdax:x[axis])median=len(points)//2returnKDTreeNode(point=points[median],left=build_kdtree(points[:median],depth+1),right=build_kdtree(points[median+1:],depth+1),axis=axis)

特点

  • 适用于低维数据(< 20维)
  • 高维数据时性能下降(维度灾难)
  • 精确搜索,但速度较慢
B. 图形索引(HNSW - Hierarchical Navigable Small World)
# HNSW 原理示意importrandomclassHNSWNode:<
http://www.jsqmd.com/news/424909/

相关文章:

  • 45232453
  • 2026年球墨铸铁厂家推荐,资质齐全与售后完善优质企业 - 品牌鉴赏师
  • 计算机毕业设计springboot河北水利电力学院班级事务管理系统 基于SpringBoot的高校班级综合事务管理平台 基于Java的院系班级日常管理与学生服务系统
  • 小学生写作不再愁!3家宝藏线上机构大放送 - 品牌测评鉴赏家
  • 计算机毕业设计springboot河环院校友管理系统 基于SpringBoot的高校校友信息管理与服务平台 基于Java的毕业生联络与资源共享系统
  • 吐血整理!小学语文线上课程红黑榜来袭 - 品牌测评鉴赏家
  • PPO算法(整理)
  • 计算机毕业设计springboot皓皓代驾 基于SpringBoot的即时出行代驾服务平台 基于微信小程序的网约代驾管理系统
  • 【学术对话】
  • 计算机毕业设计springboot和谐校园二手闲置交易平台 基于SpringBoot的高校绿色循环物品交换系统 基于Java的校园闲置资源再利用服务平台
  • 计算机毕业设计springboot航班管理系统 基于SpringBoot的航空客运服务平台设计与实现 基于Java的民航票务综合管理平台开发
  • C++进阶之有序容器vector:用法实例(四百四十)
  • 西门子1215与1212项目实战分享
  • 基于重复控制方法的逆变器的仿真学习笔记
  • 哈尔滨别克GL8发烧汽车音响改装 法国劲浪纯进口黄盆喇叭 阿尔派x120-8DSP功放 美国JL低音炮 哈尔滨专业汽车音响改装隔音降噪店-博士达作品 - 木火炎
  • 计算机毕业设计springboot航空大学就业服务平台 基于SpringBoot的民航院校毕业生就业信息管理系统 基于Java的航空类高校职业发展与招聘服务平台
  • 真的太省时间 8个AI论文工具测评:研究生毕业论文+科研写作必备神器
  • 家长必看!为孩子解锁小学语文素养提升密码 - 品牌测评鉴赏家
  • 家长必看!2026年小学生的语文提分神器在这里 - 品牌测评鉴赏家
  • 基于遗传算法的LQR控制器最优设计算法
  • ROS2-通信机制2-02:工作空间覆盖、元功能包(不同工作空间存在重名功能包时,重名功能包的调用会产生覆盖的情况,这种情况是需要极力避免出现的)
  • AI智能体赋能研讨架构图
  • 掌握十大绘图技巧,实现高效数据可视化
  • ROS2-通信机制2-03:元功能包(MetaPackage是ROS2中的一个虚包,里面没有实质内容,但它依赖并组合起来其他软件包,可认为是一本书的目录)【作用:只需安装这个包就可把相关软件安装了】
  • 实测封神!6款小学语文学霸APP推荐,省妈又提分,收藏不亏 - 品牌测评鉴赏家
  • 秩序中的迷雾:决定论与随机建模的哲学博弈
  • 小学语文线上辅导课程推荐|适配1-6年级,家长收藏避坑不花冤枉钱 - 品牌测评鉴赏家
  • 小学语文素养不用愁!3门高适配线上课,省妈又提分 - 品牌测评鉴赏家
  • 计算机毕业设计springboot汉东大学锦里校区食堂美食点评网 基于SpringBoot的校园餐饮评价与互动分享平台 JavaWeb高校食堂菜品推荐与用户反馈管理系统
  • 基于三层架构的C#网络配置管理系统(IP修改与XML持久化)