恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

向量索引是个小区地图:HNSW 跳表式找房记

  • 首页
  • 资讯中心
  • /
  • 向量索引是个小区地图:HNSW 跳表式找房记

相关资讯

数据库如何保证数据不出错?事务、日志与并发控制全解析 2026/9/4 20:38:42
STM32F103裸机实现USB CDC ACM协议栈 2026/9/4 20:38:42
Python实战:电商评论爬虫与情感分析系统构建指南 2026/9/4 20:33:42

最新资讯

Roblox 创作者生态入门:从环境配置到开发者分成与内容创作
世嘉DC索尼克乱入《刺猬索尼克3》:经典ROM Hack全解析
DC-3启示录:老系统如何成为运维界的“耐活王”
基于结构特征的跨模态图像配准:MATLAB实现红外与可见光图像对齐
从《刺猬索尼克3》DC版改版看ROM Hack逆向工程的技术价值
零代码、纯聊天,我把阶跃AI调教成了全能英语助手

今日推荐

爬虫防护实操:出海网站拦截恶意采集、垃圾爬虫、无效刷量,CDN 精准防护落地指南
STM32H743 SPI从机DMA双缓冲通信实战
CPU开盖降温教程:20元成本让温度直降30度的原理与实践

本周热门

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析
数字电路时序基石:深入理解建立时间与保持时间
蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

向量索引是个小区地图:HNSW 跳表式找房记

发布时间:2026/9/4 20:38:42
向量索引是个小区地图:HNSW 跳表式找房记 向量索引是个小区地图HNSW 跳表式找房记如果你去过那种超大型的新建住宅小区里面有一百栋楼、上万户人家第一次去朋友家做客手里只有一张门牌号比如“东区 88 栋 1204 室”你会怎么找最笨的办法从小区大门第一栋楼开始挨家挨户敲门问“请问这是 88 栋 1204 吗”敲了一万次门天都黑了。这在计算机算法里叫做FLAT暴力全量搜索。数据少的时候还行数据一多腿都要跑断。聪明的办法是看小区门口立着的分级导览地图先看顶层大地图“东区在右边西区在左边”——你迈开大步直接坐观光车跨过半个小区杀向东区到了东区看区域地图“80 到 90 栋在湖边”——你穿过中央花园径直走到 88 栋楼下进了 88 栋单元门看电梯指示牌上 12 楼出电梯在走廊里看 4 个门牌抬手敲门。从进小区到敲门你一共只拐了 4 次弯、看了 4 张牌子。在向量检索的江湖里称霸各大向量数据库Milvus、Qdrant、Faiss、Redis的明星算法——HNSWHierarchical Navigable Small World分层可导航小世界图骨子里就是这套“跳表式小区找房记”。一、小世界图NSW六度空间理论的邻居网在讲“分层Hierarchical”之前得先看它的底层——NSW小世界网络。社会学里有个著名的“六度分隔理论”你和世界上任何一个陌生人之间最多只需要通过六个人就能建立联系。在构建 NSW 图时算法把每个向量当成一个居民点并在向量之间拉线修路建立双向边短距离边Local Edges每个居民点都和离自己最近的几个邻居连上线比如 1204 和 1203、1202 是好邻居长距离边Long-range Bridges在随机建图过程中偶尔会在相距很远的两个居民点之间拉一条跨区高速路比如 1 栋的张三和 88 栋的李四是老同学两人之间有一条直达小道。当你要找一个目标向量时算法采用贪心搜索Greedy Routing从某个入口节点出发看他的所有邻居挑一个“离目标更近的邻居”跳过去如果还能更近就继续跳直到周围所有邻居都比当前节点离目标更远时搜索结束。痛点来了如果只有单层 NSW 图长距离的高速路和短距离的小胡同全混在一起。当节点达到千万级时贪心搜索很容易在复杂的小区胡同里迷路一不小心陷进死胡同局部最优解出不来而且搜索跳数依然很多。二、跳表思想附体分层Hierarchical的神来之笔计算机数据结构里有一个经典结构叫跳表Skip List在普通的有序单向链表之上每隔几个节点抽出一层建立“高速通道索引”。HNSW 的作者极其天才地把跳表的分层思想直接移植到了 NSW 图上[ Layer 2: 顶层高速路 ] Node A ------------------------------------ Node K (大跨步粗定位) | | [ Layer 1: 中层干道网 ] Node A --------- Node D --------- Node H - Node K | | | | [ Layer 0: 底层密集图 ] Node A - B - C - D - E - F - G - H - J - K (局部精准深搜)顶层Layer N—— 直升机航拍视角这一层极其稀疏只有极少数天选节点概率极低地被随机选中晋升到顶层。节点之间连接的全是跨越整个空间维度的超长距离边。当一个 Query 向量进来时首先在顶层以极少的步数进行大跨度飞跃瞬间把搜索范围从“整个高维空间”收敛到“目标所在的大片区域”。逐层下潜Layer-by-layer Descent在顶层找到局部最近节点后以此节点作为下一层的入口Entry Point降落到 Layer N-1 继续跑贪心搜索最底层Layer 0—— 挨家挨户敲门一路下潜到最底层的 Layer 0包含全量 100% 向量数据此时搜索位置已经极其逼近真实目标在极其狭小的局部邻域内做细粒度排查迅速锁定 Top-K 最近邻。三、关键参数造路与找房的成本账本理解了小区地图再看 HNSW 的那几个晦涩参数简直比数手指头还简单$M$每户人家修几条路每个节点允许连接的最大邻居数。$M$ 太小如 4 条路小区路网太稀疏容易遇到断头路$M$ 太大如 64 条路家家门口修八车道立交桥路网占地面积内存大到无法承受。黄金值生产推荐 $M16 \sim 24$。efConstruction建小区时探查多远在修路建图时为了给新住户挑邻居工人们愿意在多大的范围内反复考察。设得越大路网修得越科学越通畅但建图时间越长多花两倍施工时间黄金值生产推荐efConstruction200。efSearch找房时允许多走几步弯路在线上找人时允许候选队列保留多少个备选名单。设得越大找得越准Recall 逼近 99%但探查的门牌号越多耗时稍长几毫秒黄金值生产推荐efSearch64。总结HNSW 之所以能在高维向量空间里以几毫秒的极速穿透千万级数据靠的不是蛮力算力而是**“顶层大跨步粗筛 底层小碎步精排”**的优雅空间几何拓扑。把这张立体小区地图看懂了后续无论在 Milvus 还是 Redis 里调参你都能精准命中性能与内存的黄金平衡点。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号