近似最近邻检索技术
近似最近邻检索,一类解决大规模高维空间中的特征快速索引问题的算法
悟道修炼中
百度资深工程师,擅长图像、文本检索
展开
-
距离函数的等价性
ANN应用场景广泛,如搜索、推荐,ANN在使用时对两个样本或向量之间的相似度定义有不同方式,相似度使用距离来衡量,距离越大则相似度越小,距离越小则相似度越大。文本语料上训练出来的特征向量习惯采用余弦距离,图片或视频上提取的特征向量一般采用欧氏距离。此外,还有特殊场景下定制的各种距离函数,此处介绍一个在搜索排序场景中使用的angular相似度度量函数,其可有效放大被召回的头部样本点之间的差异。如上图左图所示,angular similarity是特殊场景中定制的距离度量函数。有一个结论是:归.原创 2020-12-30 20:05:58 · 1126 阅读 · 0 评论 -
HNSW算法原理(二)之删除结点
本篇文章继之前的一篇文章 HNSW算法原理(一) ,这次讲讲HNSW算法中一个关键问题:HNSW中如何删除元素。一、HNSW中如何删除元素一个理想的索引结构应该支持增删改查操作,由于 HNSW算法原始论文 只给出了增与查的伪代码,并没有给出删的代码,而一些项目中往往需要对已经插入到HNSW索引中的结点进行删除,比如在某些人脸识别任务中,已经1个月没有出现的人脸特征可以删除掉。下面开始分析如...原创 2019-02-24 15:17:19 · 3206 阅读 · 0 评论 -
HNSW算法原理(一)
原文链接:https://blog.csdn.net/CHIERYU/article/details/81989920HNSW算法可类比于skip lists数据结构,对于增和查操作,其与skip lists有很多相同之处,下面讲讲HNSW算法中的2个关键问题,即:如何确定待插入点的层次,如何调参。一、HSNW算法将样本插入到第几层每个样本属于哪个层呢?首先要写一个确定层次的...原创 2019-01-22 11:23:20 · 9646 阅读 · 4 评论 -
无监督图像检索 《Unsupervised Part-based Weighting Aggregation of Deep Convolutional Features...》
基于部件的CNN特征加权聚合的无监督图像检索该文提出了一种利用卷积神经网络中的 filters 作为部件检测器,采用无监督方式选择部件检测器的图像特征提取方法,属于特征聚合方法,用于图像检索领域。代码在:点击打开链接特征聚合方法一般用于具有不同个数的局部特征(如SIFT)的图像特征表示。卷积神经网络的全连接层得到的分类特征维数是固定的,无需进行特征聚合,以及其他特征聚合方法如WoF,VLAD,FV...原创 2018-06-25 21:23:42 · 3666 阅读 · 1 评论 -
Product Quantization for Nearest Neighbor Search论文实验
记得大学三时有个老师跟我们说,检验是否深刻理解一篇论文的做法之一就是给你一篇论文,看你能否将论文中的结果重复实验出来,当时觉得老师的说法好厉害、离我们太远,而且一直没有机会这么干过。幸运的是,最近在一大神的指导下进行了一次关于一篇检索论文的PQ实验结果,终于亲身体验了一回老师之前的话,这得感谢感谢大神了。闲话少说,这次PQ实验主要是深刻理解论文,通过实验体会PQ算法是如何将大搜索空间分解为小的搜索空原创 2015-12-25 19:22:14 · 5083 阅读 · 2 评论 -
Cartesian k-means论文理解
1.普通k-means给定nn个pp维数据点,D≡{Xj}nj=1D≡\{X_j\}_{j=1}^n,普通Kmeans算法将它们分成kk个类别,每个类别有个类中心。目标函数是: 其中矩阵CC的第i列是cic_i,分成m个类别,那么矩阵就有m列,b∈{0,1}k,且b的模长为1b ∈ \{0, 1\}^k,且b 的模长为1。K-means算法之所以很难,其中一个原因是存在一个a原创 2016-04-19 16:42:51 · 11471 阅读 · 5 评论 -
K-means hashing: An affinity-preserving quantization method for learning binary compact codes论文理解
本篇论文[1]是微软研究院的何凯明等人提出,何凯明在微软2015年一年参与发表5篇CVPR,还有好多其他高质量论文,这篇论文是其2013年CVPR上发表的一篇。下面进入正题。一、问题提出ANN检索方法中,向量量化和乘积量化方法是基于查找表的,查找表是放在内存中的。基于hamming距离的方法检索速度快,1.5ms内可以扫描完1百万64bit的hamming码,但是检索结果又没有基于查找表的好。于是何原创 2016-01-09 17:18:12 · 2956 阅读 · 6 评论 -
Product Quantization for Nearest Neighbor Search论文理解
本篇文章讲下索引结构和搜索。一、检索和距离的关系—ADC假如做法是以图搜图,那么输入图像为x,要从数据库中找出与x最匹配的图像集{y},首先提取特征,特征向量就代表图像,如果特征向量之间的距离越小,图像之间相似度越大,检索就是要找出,公式中d的选取可以是欧式距离,求x与y各个分量的差的平方和。PQ(乘积量化)中ADC的做法并不是求各个分量差的平方和,而是求x与y量化后的向量之间各个分量差的平方和。用原创 2015-12-17 22:45:23 · 8409 阅读 · 1 评论 -
图像检索----迭代量化(Iterative Quantization)理解
一.目标数据集为:,每个样本为d维,每个样本为一个行向量。假设所有样本都是0均值的,即满足一下条件: 通过c个函数把每个样本x映射到一个二进制超立方体的一个顶点上,其中是一个列向量。因此得到每个样本x在二进制超立方体上的二进制编码,编码长度c,用矩阵表示描述这个过程就是: 其中sgn函数是对矩阵的元素级操作,得到的是同样大小的矩阵。ITQ的目标就是学习一个编码矩阵:。二.算法推导过程在应原创 2015-12-28 21:18:19 · 7259 阅读 · 3 评论 -
最近邻搜索之乘积量化(Product Quantizer)理解(一)
简介Product Quantizer是由Herv´e J´egou等人2011年在IEEEE上发表的论文《Product Quantization for Nearest Neighbor Search》中提出来的。它的提出是为了在内存和效率之间求得一个平衡,既保证图像索引结构需要的内存足够,又使得检索质量和速度比较好。对于任何基于固定维数特征的事物,它可以应用到其索引结构的建立及检索上。它属于A原创 2015-12-15 22:16:14 · 15628 阅读 · 0 评论