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

ann算法的种类有哪些,之间的区别,各自的适用场景

ANN(近似最近邻)算法主要分为三类技术路线:基于树的方法哈希方法图方法,它们在原理、性能及适用场景上有显著差异:


1. 基于树的方法

核心原理:递归划分数据空间形成树状结构(如二叉树或多叉树),通过树遍历快速筛选候选点。
典型算法

  • KD-Tree:按维度交替分割空间,适合低维数据(维度 < 20)。高维时性能退化明显(“维度灾难”)。
  • Annoy(Approximate Nearest Neighbors Oh Yeah):构建多棵二叉树,通过投票机制提升召回率。平衡精度与速度,支持分布式索引(如Spotify推荐系统)。

适用场景
✅ 低维空间精确搜索(如2D/3D地理位置检索)
✅ 中等规模数据集(百万级)
⚠️ 高维数据效率低,需配合降维技术


2. 哈希方法

核心原理:将高维数据映射为低维二进制编码(哈希桶),相似点落在相同或相邻桶中。
典型算法

  • 局部敏感哈希(LSH):设计哈希函数使相似点碰撞概率高。内存占用低,但参数调优复杂,召回率不稳定。
  • 乘积量化(PQ):将向量分割为子向量并分别量化,组合码本压缩表示。压缩比高,适合超大向量库(如十亿级图像检索)。

适用场景
✅ 超大规模高维数据(如图像/视频特征检索)
✅ 资源受限环境(低内存、分布式存储)
⚠️ 二进制编码损失信息,精度略低于图方法


3. 图方法

核心原理:构建近邻图(节点=数据点,边=相似关系),通过图遍历查找最近邻。
典型算法

  • HNSW(Hierarchical Navigable Small World):多层图结构,高层为“高速路”快速定位,底层精细搜索。查询速度最快,精度接近暴力搜索。
  • NSG(Navigating Spreading-out Graph):优化图连通性,减少冗余边。内存效率更高,适合对内存敏感场景。

适用场景
✅ 高精度实时检索(推荐系统、语义匹配)
✅ 十亿级高维数据(如OpenAI Embedding检索)
⚠️ 建图时间长,动态更新成本高


对比总结与选型建议

方法精度查询速度内存占用适用场景
树方法中高低维数据、中等规模数据集
哈希方法极低超大规模数据、资源受限环境
图方法极高极快高精度实时检索、十亿级向量库

决策参考

  • 需求高精度+低延迟 → 选择 HNSW
  • 数据规模超大规模+内存敏感 → 选择 PQ哈希
  • 维度低于20维 → 选择 KD-Tree
http://www.xdnf.cn/news/862687.html

相关文章:

  • 每日算法刷题Day22 6.4:leetcode二分答案3道题,用时1h30min
  • 如何在 HTML 中添加按钮
  • 信号与系统汇总
  • Flutter、React Native 项目如何搞定 iOS 上架?从构建 IPA 到上传 App Store 的实战流程全解析
  • RabbitMQ 在解决数据库高并发问题中的定位和核心机制
  • Transformer-BiLSTM、Transformer、CNN-BiLSTM、BiLSTM、CNN五模型时序预测
  • 设计模式-外观模式
  • Java 中 ArrayList、Vector、LinkedList 的核心区别与应用场景
  • 高速ADC数据格式与JESD204B IP数据格式映射关系
  • 数智破局·生态共生:重构全球制造新引擎 2025 WOD制造业数字化博览会即将在沪盛大启幕
  • LINUX64 FTP 1; rsync inotify.sh脚本说明
  • 银行用户评分规则 深度学习
  • 使用 Ansys Q3D 进行电容提取
  • 【android bluetooth 协议分析 14】【HFP详解 1】【案例一: 手机侧显示来电,但车机侧没有显示来电: 讲解AT+CLCC命令】
  • 分析Web3下数据保护的创新模式
  • MVCC理解
  • vscode中无法使用npm node
  • Windows 12确认没了,Win11 重心偏移修Bug
  • 2025年- H65-Lc173--347.前k个高频元素(小根堆,堆顶元素是当前堆元素里面最小的)--Java版
  • HDU-2973 YAPTCHA
  • Maven 构建缓存与离线模式
  • 第二章 进程管理
  • 让音乐“看得见”:使用 HTML + JavaScript 实现酷炫的音频可视化播放器
  • 【论文阅读笔记】Text-to-SQL Empowered by Large Language Models: A Benchmark Evaluation
  • 【RAG优化】rag整体优化建议
  • AI全栈之路:Ubuntu云服务器部署Spring + Vue + MySQL实践指南
  • MySQL索引(index)
  • Mybatis入门到精通
  • Spark实战能力测评模拟题精析【模拟考】
  • 编程技能:格式化打印04,sprintf