ANN(Approximate Nearest Neighbor)简介
简介(Introduction):
ANN(Approximate Nearest Neighbor)是一种用于在大规模数据集中寻找最近邻居的算法。它的目标是在尽可能短的时间内找到与给定查询点最近的数据点,而不一定是确切的最近邻。为了达到这个目标,ANN使用了一些启发式方法,例如剪枝和近似搜索,来加速最近邻搜索的过程。虽然ANN不像暴力线性搜索那样能够100%找到最近点,但它的速度非常快,因此在需要快速处理大量数据的场合下被广泛应用。
工业界中常用的Approximate Nearest Neighbor搜索算法可以分为以下几类:
基于哈希(Hashing)的ANN算法:这类算法通常使用哈希技术将数据点映射到低维空间中,然后在这个低维空间中进行近似最近邻搜索。常见的哈希方法包括Locality Sensitive Hashing (LSH)。
基于树结构(Tree-based)的ANN算法:这类算法通常使用树结构来组织数据,例如KD-Tree,Ball-Tree和Annoy等。它们通过递归地划分数据空间,将数据点存储在树节点中,并使用剪枝和近似搜索等技术来加速近似最近邻搜索。
基于矢量量化方法(vector quantization)的ANN算法:将一个向量空间中的点用其中的一个有限子集来进行编码的过程。在矢量量化编码中,关键是码本的建立和码字搜索算法。比如常见的聚类算法,就是一种矢量量化方法。常见的方法有PQ(Product Quantization) 以及其衍生OPQ(Optimized Product Quantization) 等。
基于图(Graph-based)的ANN算法:这类算法通常使用图结构来表示数据点之间的关系,并使用图搜索等技术来进行近似最近邻搜索。常见的方法包括Hierarchical Navigable Small World (HNSW),k-NN Graph和Graph Navigation等。
基于深度学习(Deep Learning)的ANN算法:这类算法通常使用深度学习技术来学习数据点的表示,并在学习好的表示空间中进行最近邻搜索。常见的方法包括Product Quantization Networks (PQN)和Deep Quantization Network (DQN)等。
这些ANN算法在工业界得到广泛的应用,它们各自有不同的优缺点和适用场景,可以根据具体的需求进行选择。
ANN(Approximate Nearest Neighbor)简介相关推荐
- 近似最近邻搜索ANN(Approximate Nearest Neighbor)
目前ANN近似近邻搜索有两种比较流行的方法:树方法和哈希方法. 特点概括 基于树的方法的一些特点概括: 递归了划分数据:分而治之.Recursively partition the data: Div ...
- 机器学习算法系列(二十二)-近似k近邻算法-Annoy(Approximate Nearest Neighbor / ANN)
阅读本文需要的背景知识点:k近邻算法.一丢丢编程知识 一.引言 前面一节我们学习了机器学习算法系列(二十一)-k近邻算法(k-Nearest Neighbor / kNN Algorithm),其 ...
- 检索 : Approximate Nearest Neighbor NSW + HNSW
在一个给定向量数据集中,按照某种度量方式,检索出与查询向量相近的K个向量(K-Nearest Neighbor,KNN),但由于KNN计算量过大,我们通常只关注近似近邻(Approximate Nea ...
- Approximate Nearest Neighbor Negative Contrastive Learning for Dense Text Retrieval
Approximate Nearest Neighbor Negative Contrastive Learning for Dense Text Retrieval 密集检索 (DR) 的有效性通常 ...
- 最近邻分类器(Nearest Neighbor Classifier)
先从简单的方法开始说,先提一提最近邻分类器/Nearest Neighbor Classifier,不过事先申明,它和深度学习中的卷积神经网/Convolutional Neural Networks ...
- Approximate Nearest Neighbors.接近最近邻搜索
(一):次优最近邻:http://en.wikipedia.org/wiki/Nearest_neighbor_search 有少量修改:如有疑问,请看链接原文..... 1.Survey: Near ...
- Product Quantization for Nearest Neighbor Search论文实验
最近邻搜索之乘积量化(Product Quantizer)实验 记得大学三时有个老师跟我们说,检验是否深刻理解一篇论文的做法之一就是给你一篇论文,看你能否将论文中的结果重复实验出来,当时觉得老师的说法 ...
- 最近邻搜索|Nearest neighbor search
维基百科:https://en.wikipedia.org/wiki/Nearest_neighbor_search 觉得整理的挺好,翻译 最近邻搜索( NNS ) 作为**邻近搜索(proximit ...
- (FLANN论文)fast approximate nearest neighbors with automatic algorithm configuration——中英对照翻译
Fast Approximate Nearest Neighbors With Automatic Algorithm Configuration Abstract 在许多计算机视觉问题中,最耗时的部 ...
最新文章
- 【408预推免复习】计算机网络(谢希仁第七版)第五章——运输层
- 操作篇 DHCP协议学习与应用
- 面向对象(继承,多态)
- 负载均衡(LB)集群 dr
- Android之解决ubuntu没有无线网卡和手机wifi实现adb wifi调试
- Ajax爬取豆瓣电影目录(Python)
- 剑指Offer - 面试题65. 不用加减乘除做加法(位运算,要看哦)
- 课堂笔记——Data Mining(1)
- 2.1.1 物理层接口特性、数据通信模型、物理层基本概念(数据、信号、码元 、信源、信道、信宿 、速率、波特、带宽)(转载)
- CSS选择器详解(转)
- 定了!这 35 所高校将设人工智能本科专业!
- QML Item 核心元素
- Unity3D 内存释放 垃圾回收
- Caused by: javax.security.auth.login.LoginException: unable to find LoginModule class: com.ibm.secur
- 选择并遮住工具(边缘调整工具)+剪切蒙版法,扣除头发丝
- 电离释放型动态水处理器
- YOLOv5训练时出现Corrupt JPEG data: 2 extraneous bytes before marker 0xd9
- 普通PC通过USB转485串口 ModBus-RTU通信协议控制伺服电机
- 文献(7): 在非小细胞肺癌中,浆细胞signature可用于PD-L1免疫治疗的响应预测
- uniapp开发公众号H5时用户缓存无法清除问题