简介(Introduction):

ANN(Approximate Nearest Neighbor)是一种用于在大规模数据集中寻找最近邻居的算法。它的目标是在尽可能短的时间内找到与给定查询点最近的数据点,而不一定是确切的最近邻。为了达到这个目标,ANN使用了一些启发式方法,例如剪枝和近似搜索,来加速最近邻搜索的过程。虽然ANN不像暴力线性搜索那样能够100%找到最近点,但它的速度非常快,因此在需要快速处理大量数据的场合下被广泛应用。

工业界中常用的Approximate Nearest Neighbor搜索算法可以分为以下几类:

  1. 基于哈希(Hashing)的ANN算法:这类算法通常使用哈希技术将数据点映射到低维空间中,然后在这个低维空间中进行近似最近邻搜索。常见的哈希方法包括Locality Sensitive Hashing (LSH)。

  2. 基于树结构(Tree-based)的ANN算法:这类算法通常使用树结构来组织数据,例如KD-Tree,Ball-Tree和Annoy等。它们通过递归地划分数据空间,将数据点存储在树节点中,并使用剪枝和近似搜索等技术来加速近似最近邻搜索。

  3. 基于矢量量化方法(vector quantization)的ANN算法:将一个向量空间中的点用其中的一个有限子集来进行编码的过程。在矢量量化编码中,关键是码本的建立和码字搜索算法。比如常见的聚类算法,就是一种矢量量化方法。常见的方法有PQ(Product Quantization) 以及其衍生OPQ(Optimized Product Quantization) 等。

  4. 基于图(Graph-based)的ANN算法:这类算法通常使用图结构来表示数据点之间的关系,并使用图搜索等技术来进行近似最近邻搜索。常见的方法包括Hierarchical Navigable Small World (HNSW),k-NN Graph和Graph Navigation等。

  5. 基于深度学习(Deep Learning)的ANN算法:这类算法通常使用深度学习技术来学习数据点的表示,并在学习好的表示空间中进行最近邻搜索。常见的方法包括Product Quantization Networks (PQN)和Deep Quantization Network (DQN)等。

这些ANN算法在工业界得到广泛的应用,它们各自有不同的优缺点和适用场景,可以根据具体的需求进行选择。

ANN(Approximate Nearest Neighbor)简介相关推荐

  1. 近似最近邻搜索ANN(Approximate Nearest Neighbor)

    目前ANN近似近邻搜索有两种比较流行的方法:树方法和哈希方法. 特点概括 基于树的方法的一些特点概括: 递归了划分数据:分而治之.Recursively partition the data: Div ...

  2. 机器学习算法系列(二十二)-近似k近邻算法-Annoy(Approximate Nearest Neighbor / ANN)

    阅读本文需要的背景知识点:k近邻算法.一丢丢编程知识 一.引言   前面一节我们学习了机器学习算法系列(二十一)-k近邻算法(k-Nearest Neighbor / kNN Algorithm),其 ...

  3. 检索 : Approximate Nearest Neighbor NSW + HNSW

    在一个给定向量数据集中,按照某种度量方式,检索出与查询向量相近的K个向量(K-Nearest Neighbor,KNN),但由于KNN计算量过大,我们通常只关注近似近邻(Approximate Nea ...

  4. Approximate Nearest Neighbor Negative Contrastive Learning for Dense Text Retrieval

    Approximate Nearest Neighbor Negative Contrastive Learning for Dense Text Retrieval 密集检索 (DR) 的有效性通常 ...

  5. 最近邻分类器(Nearest Neighbor Classifier)

    先从简单的方法开始说,先提一提最近邻分类器/Nearest Neighbor Classifier,不过事先申明,它和深度学习中的卷积神经网/Convolutional Neural Networks ...

  6. Approximate Nearest Neighbors.接近最近邻搜索

    (一):次优最近邻:http://en.wikipedia.org/wiki/Nearest_neighbor_search 有少量修改:如有疑问,请看链接原文..... 1.Survey: Near ...

  7. Product Quantization for Nearest Neighbor Search论文实验

    最近邻搜索之乘积量化(Product Quantizer)实验 记得大学三时有个老师跟我们说,检验是否深刻理解一篇论文的做法之一就是给你一篇论文,看你能否将论文中的结果重复实验出来,当时觉得老师的说法 ...

  8. 最近邻搜索|Nearest neighbor search

    维基百科:https://en.wikipedia.org/wiki/Nearest_neighbor_search 觉得整理的挺好,翻译 最近邻搜索( NNS ) 作为**邻近搜索(proximit ...

  9. (FLANN论文)fast approximate nearest neighbors with automatic algorithm configuration——中英对照翻译

    Fast Approximate Nearest Neighbors With Automatic Algorithm Configuration Abstract 在许多计算机视觉问题中,最耗时的部 ...

最新文章

  1. 【408预推免复习】计算机网络(谢希仁第七版)第五章——运输层
  2. 操作篇 DHCP协议学习与应用
  3. 面向对象(继承,多态)
  4. 负载均衡(LB)集群 dr
  5. Android之解决ubuntu没有无线网卡和手机wifi实现adb wifi调试
  6. Ajax爬取豆瓣电影目录(Python)
  7. 剑指Offer - 面试题65. 不用加减乘除做加法(位运算,要看哦)
  8. 课堂笔记——Data Mining(1)
  9. 2.1.1 物理层接口特性、数据通信模型、物理层基本概念(数据、信号、码元 、信源、信道、信宿 、速率、波特、带宽)(转载)
  10. CSS选择器详解(转)
  11. 定了!这 35 所高校将设人工智能本科专业!
  12. QML Item 核心元素
  13. Unity3D 内存释放 垃圾回收
  14. Caused by: javax.security.auth.login.LoginException: unable to find LoginModule class: com.ibm.secur
  15. 选择并遮住工具(边缘调整工具)+剪切蒙版法,扣除头发丝
  16. 电离释放型动态水处理器
  17. YOLOv5训练时出现Corrupt JPEG data: 2 extraneous bytes before marker 0xd9
  18. 普通PC通过USB转485串口 ModBus-RTU通信协议控制伺服电机
  19. 文献(7): 在非小细胞肺癌中,浆细胞signature可用于PD-L1免疫治疗的响应预测
  20. uniapp开发公众号H5时用户缓存无法清除问题

热门文章

  1. Missing semicolon
  2. osa-mesa数据集介绍
  3. IMPLEMENTATION MANUAL SWAN Cycle III version 41.31
  4. Docker 私有仓库
  5. 【5013】《驻足思考》培训记录
  6. html基础(第一次任务)
  7. jquery案例10——下拉列表显示、二级菜单
  8. vue过渡动画之——过渡类名
  9. STM32的GPIO口能够承受多大电压? 哪些IO口能容忍5V?
  10. Task 03 python自动化之word操作