首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏得物技术

    近邻搜索算法浅析

    简介 随着深度学习的发展和普及,很多非结构数据被表示为高维向量,并通过近邻搜索来查找,实现了多种场景的检索需求,如人脸识别、图片搜索、商品的推荐搜索等。 另一方面随着互联网技术的发展及5G技术的普及,产生的数据呈爆发式增长,如何在海量数据中精准高效的完成搜索成为一个研究热点,各路前辈专家提出了不同的算法,今天我们就简单聊下当前比较常见的近邻搜索算法。 实现 当前有比较成熟的库实现了各种主流的近邻搜索算法,在项目中可以通过这些基础库来构建对应的近邻搜索服务,其中使用比较广泛的是faiss库,由Fackbook开源,在支持不同算法的同时,也支持在超大规模数据集上构建 k近邻搜索以及支持GPU来加速索引构建和查询,同时社区活跃,在考虑到性能和可维护性,faiss库是构建近邻检索服务的比较好的选择。 总结 本文展示了当前比较常见的几种近邻搜索算法,并简单分析了各算法的原理;随着深度学习的不断发展,不同场景对近邻搜索的需求越来越多,必定会有新的算法不断地涌现,每种算法有它适合的场景,在选择不同算法时需要结合业务的需求

    3.6K104编辑于 2022-08-03
  • 来自专栏AI科技时讯

    近邻搜索|Nearest neighbor search

    [7] 邻近邻域图中的贪婪搜索 近似图方法(例如 HNSW [8])被认为是近似最近邻搜索的当前最新技术。 [8] [9] [10] 这些方法基于邻近邻域图中的贪婪遍历 G(V,E) ,其中每一点 x_{i}\in S 与顶点唯一关联 v_{i}\in V . 变体 NNS 问题有许多变体,其中最著名的两个是*k-*最近邻搜索和ε-近似最近邻搜索。 k-最近邻 k-最近邻搜索识别查询的前k 个最近邻。 Retrieved 2008-10-03. Lee, D. T.; Wong, C. K. (1977). Andoni, A.; Indyk, P. (2006-10-01).

    2K50编辑于 2023-09-01
  • 高效图搜索:提升最近邻查找速度

    更高效的近似最近邻搜索新方法将基于图的搜索速度提升20%至60%,且不依赖特定的图构建方法。 作者:Hsiang-Fu Yu 2023年6月6日 阅读时长:4分钟会议信息The Web Conference 2023相关论文FINGER: 用于基于图的近似最近邻搜索的快速推理技术正文当今许多机器学习应用都涉及最近邻搜索 搜索算法遍历该图,并定期更新当前已遇到的离查询最近的点列表。在一篇发表于今年Web Conference的论文中,我们描述了一种新技术,可大幅提升基于图的最近邻搜索效率。 据此,我们提出了一种非常高效地计算近似距离的方法,并表明它能将近似最近邻搜索所需的时间减少20%到60%。 在一系列不同的recall@10比率(即模型在排名前10的候选中找到查询真正最近邻的比率)下,FINGER的搜索效率均优于其所有前身。

    13810编辑于 2026-04-07
  • 来自专栏AI科技时讯

    图像搜索|高维空间最近邻逼近搜索算法

    业务场景 上一次介绍图像搜索的基本原理,现在记录下使用的数据包的问题。 NMSLIB 项目地址:https://github.com/nmslib/nmslib 非度量空间库(NMSLIB)是一种高效的跨平台相似性搜索库和用于评估相似性搜索方法的工具包。 NMSLIB是一个可扩展的库,这意味着可以添加新的搜索方法和距离函数。NMSLIB可以直接在C ++和Python中使用。 详细参数 关于参数的设置可以见 https://github.com/nmslib/nmslib/blob/master/python_bindings/parameters.md 参考 高维空间最近邻逼近搜索算法评测

    1.8K20发布于 2019-08-15
  • 图近似最近邻搜索效率提升新方法

    更高效的近似最近邻搜索当今许多机器学习应用都涉及最近邻搜索:数据被表示为高维空间中的点;查询(如图片或文本字符串)被嵌入该空间;检索与查询最接近的数据点作为候选解决方案。 然而,计算查询与数据集中每个点之间的距离通常耗时过长,因此模型构建者转而使用近似最近邻搜索技术。其中最流行的是基于图的近似方法,即将数据点组织成图结构,搜索算法遍历图并持续更新遇到的最近邻点列表。 因此,提出了一种高效计算近似距离的方法,显示可将近似最近邻搜索所需时间减少20%至60%。 转而专注于一种适用于所有图构建方法的技术,因为它提高了搜索过程本身的效率。该技术称为FINGER(基于图的近似最近邻搜索的快速推理)。 在一系列不同的recall10@10率(模型在其10个顶级候选中找到查询真实最近邻的比率)下,FINGER比所有先前方法搜索更高效。

    30310编辑于 2025-08-30
  • 来自专栏yeedomliu

    《图解算法》第10章 K最近邻算法

    你刚才就是使用K最近邻(k-nearest neighbours,KNN)算法进行了分类! 创建推荐系统 可以将所有用户都放入一个图表中

    81530发布于 2020-08-13
  • 深度度量学习提升近邻搜索可靠性

    通过深度度量学习实现更可靠的近邻搜索许多机器学习应用涉及将数据嵌入到一个表示空间中,其中嵌入之间的几何关系承载着语义内容。 执行一项有用任务通常涉及检索该空间中一个嵌入的邻近邻居:例如,查询嵌入附近的答案嵌入、文本描述嵌入附近的图像嵌入、一种语言中的文本嵌入在另一种语言中的文本嵌入附近,等等。

    22110编辑于 2026-01-09
  • 来自专栏Pulsar-V

    Math-Model(二)-无向图最近邻路径搜索

    %a=xlsread('../附件一:已结束项目任务数据.xls'); clc clear GPS_1=importdata('../GPS_DATA.txt'); GPS_2=importdata('../GPS_DATA2.txt'); %X=min([min(GPS_1(:,1)),min(GPS_2(:,1))]):0.01:max([max(GPS_1(:,1)),max(GPS_2(:,1))]); %Y=min([min(GPS_1(:,2)),min(GPS_2(:,2))]):0.01:

    37730发布于 2019-03-12
  • 来自专栏python读书笔记

    《算法图解》note 10 K近邻算法1.K近邻算法简介2.python实现方式3.K近邻算法的优缺点

    1.K近邻算法简介 K近邻算法(K-nearest neighbor)是一个给定训练数据,根据样本数据最近的K个实例的类别来判断样本数据的类别或数值的算法。 2.python实现方式 可用python的scikit-learn包实现K近邻算法。 调用包的方式如下: from sklearn import neighbors #K近邻算法的分类算法 classifier=neighbors.KNeighborsClassifier() #K近邻算法的回归算法 regressor=neighbors.KNeighborsRegressor() 3.K近邻算法的优缺点 3.1优点 (1)可处理分类问题和回归问题。

    1.2K100发布于 2018-06-19
  • 来自专栏小小程序员——DATA

    K近邻算法 K近邻算法原理

    # K近邻算法 K近邻算法原理## $k$近邻算法介绍- $k$近邻法 (k-Nearest Neighbor;kNN) 是一种比较成熟也是最简单的机器学习算法,可以用于基本的分类与回归方法- 算法的主要思路 - $k$近邻法是基本且简单的分类与回归方法。 $k$近邻法的基本做法是:对给定的训练实例点和输入实例点,首先确定输入实例点的$k$个最近邻训练实例点,然后利用这$k$个训练实例点的类的多数来预测输入实例点的类。 - $k$近邻模型对应于基于训练数据集对特征空间的一个划分。$k$近邻法中,当训练集、距离度量、$k$值及分类决策规则确定后,其结果唯一确定。## $k$近邻法三要素 1. - $k$值小时,$k$近邻模型更复杂;$k$值大时,$k$近邻模型更简单。- $k$值的选择反映了对近似误差与估计误差之间的权衡,通常由交叉验证选择最优的$k$。

    61800编辑于 2023-12-10
  • 来自专栏Reinvent Data Science

    基于 Milvus 构建的近似最近邻(ANN)搜索引擎

    ✏️ 作者介绍: 周充,格像科技后端工程师 需求背景 根据格像科技公司的业务需求,我们需要搭建一个近似最近邻(Approximate Nearest Neighbor,即 ANN)搜索引擎,以便将在线向量相似搜索功能应用到公司其他业务中 为了赋予 ANN 搜索引擎相同的向量相似搜索能力,我们选择在 Milvus 和现有的基础系统之间增加一个中间层,从而将 Milvus 强大的向量相似搜索功能移植到我们的系统之中。 Java SOA 进程本身是一个 Java Web 应用,类似一个代理(proxy),会将相似搜索的请求转发给 Milvus 进程,并返回搜索结果。 ? 3.2 复制节点 为了实现 ANN 搜索引擎系统的高可用性,我们需要更多其他的副本节点来提供相同的向量搜索服务。实现方案如下图所示: ? 客户端在发起向量搜索请求时,会带上最新的分区名称。如果某个节点上的新数据已经完成加载,会返回最新分区中的搜索结果。

    1.6K20发布于 2021-01-05
  • 来自专栏人工智能前沿讲习

    AI综述专栏| 大数据近似最近邻搜索哈希方法综述(下)

    1 导读 最近邻搜索(Nearest Neighbor Search)也称作最近点搜索,是指在一个尺度空间中搜索与查询点最近点的优化问题。 最近邻搜索在很多领域中都有广泛应用,如:计算机视觉、信息检索、数据挖掘、机器学习,大规模学习等。 本文是关于大数据近似最近邻搜索问题中应用哈希方法的综述。文章分为两部分,本篇为第二部分。 如图3.1所示,假设数据库中的点都是二维的,红色叉表示查询点并被编码为“11”,绿色圆点表示查询点的真实 -最近邻。很显然,所有编码为“01”和“10”的点都与查询点具有相同的汉明距离。 然而,由于查询点的真实 -最近邻中包含了部分编码为“01”的点而并不包含任何编码为“10”的点,因此编码“01”应该排在编码“10”的前面。在这个例子中,汉明距离无法给出一个合理的哈希排序。 ?

    1.8K20发布于 2020-05-11
  • 来自专栏机器之心

    谷歌搜索用上BERT,10%搜索结果将改善

    最近,谷歌宣布,他们的搜索引擎用上了强大的 BERT 预训练模型,可以让搜索引擎结合语境理解用户的搜索意图,甚至能理解一些不起眼的介词在搜索语句中的重要含义。 为什么谷歌搜索要用 BERT? 「如果要让我说出一条这些年学到的东西,那我会说『人类的好奇心是永无止境的』,」在谷歌搜索部门工作了 15 年的搜索副总裁在谷歌博客中写道。 因为有时他们打开搜索引擎就是为了学习的,所以查到结果之前未必具备相应的知识。 搜索的核心是理解语言。搜索引擎的使命是弄清楚用户的搜索意图并从网上找到有用信息,无论查询语句中的单词如何拼写或组合。 BERT 在谷歌搜索中的应用体现在排名和精选摘要(featured snippet)两个方面。将 BERT 应用于搜索排名之后,谷歌宣称它可以帮助搜索引擎更好地理解美国(英文)10% 的搜索搜索问题,永无止境 无论你想要搜索什么东西,无论你使用哪种语言,谷歌希望人们都可以使用最自然的方式进行搜索。但即使是 BERT 加持,谷歌搜索或许仍然无法让人能够获得 100% 完美的结果。

    2.1K20发布于 2019-10-30
  • 来自专栏企鹅号快讯

    如何在Python中快速进行语料库搜索:近似最近邻算法

    随后,如果我们有这些词嵌入对应的语料库,那么我们可以通过搜索找到最相似的嵌入并检索相应的词。如果我们做了这样的查询,我们会得到: 我们有很多方法来搜索语料库中词嵌入对作为最近邻查询方式。 是近似最近邻搜索算法该出现时候了:它可以快速返回近似结果。很多时候你并不需要准确的最佳结果,例如:「Queen」这个单词的同义词是什么? 在这种情况下,你只需要快速得到足够好的结果,你需要使用近似最近邻搜索算法。 在本文中,我们将会介绍一个简单的 Python 脚本来快速找到近似最近邻。 用 a.get_nns_by_vector(v, num_results) 获取 Annoy 的最近邻。 再次,这里使用 argparse 来使读取命令行参数更加简单。 现在我们可以使用 Annoy 索引和 lmdb 图,获取查询的最近邻

    2.5K50发布于 2018-02-05
  • 来自专栏NLP算法工程师之路

    K近邻分类

    核心思想:基于距离的模板匹配 KNN是一种判别模型,即支持分类问题,也支持回归问题,是一种非线性模型,天然支持多分类,而且没有训练过程。

    1.2K10发布于 2019-12-18
  • 来自专栏xiaosen

    K 近邻算法

    K近邻是机器学习算法中理论最简单,最好理解的算法,虽然算法简单,但效果也不错。 GridSearchCV GridSearchCV 是 scikit-learn 库中的一个类,用于进行参数网格搜索。 它结合了交叉验证和网格搜索的功能,可以自动地对给定的模型和参数组合进行训练和评估,以找到最佳的参数设置。 x_test, y_train, y_test = \ train_test_split(x, y, test_size=0.2, stratify=y, random_state=0) # 创建网格搜索对象 show_digit(1) # 训练模型 train_model() # 测试模型 test_model() 小结:  KNN(K-Nearest Neighbors)算法,即K最近邻算法

    94822编辑于 2024-03-15
  • 来自专栏捞月亮的小北

    win10搜索框的热门搜索怎么关闭?

    搜索cmd,以管理员模式运行,输入下列命令,重启生效 reg add HKCU\Software\Policies\Microsoft\Windows\explorer /v DisableSearchBoxSuggestions

    74710编辑于 2023-12-01
  • 来自专栏SIGAI学习与实践平台

    K近邻算法

    k近邻算法的思想了,最近邻算法是k近邻算法k=1时的一种特殊情况。 k近邻算法简称kNN算法,由Thomas等人在1967年提出[1]。 在实现时可以考虑样本的权重,即每个样本有不同的投票权重,这称方法称为为带权重的k近邻算法。另外还其他改进措施,如模糊k近邻算法[2]。 Learning for Large Margin Nearest Neighbor Classification. 2009, Journal of Machine Learning Research. [10 SIGAI 2018.5.3. [8] 理解神经网络的激活函数 SIGAI 2018.5.5. [9] 深度卷积神经网络演化历史及结构改进脉络-40页长文全面解读 SIGAI 2018.5.8. [10

    1.7K10发布于 2018-06-28
  • 来自专栏SIGAI学习与实践平台

    K近邻算法

    k近邻算法的思想了,最近邻算法是k近邻算法k=1时的一种特殊情况。 下图6.1是使用k近邻思想进行分类的一个例子: ? 图 6.1 k近邻分类示意图 在上图中有红色和绿色两类样本。 如果看k=1,k近邻算法退化成最近邻算法。 k近邻算法实现简单,缺点是当训练样本数大、特征向量维数很高时计算复杂度高。 在实现时可以考虑样本的权重,即每个样本有不同的投票权重,这称方法称为为带权重的k近邻算法。另外还其他改进措施,如模糊k近邻算法[2]。 kNN算法也可以用于回归问题。 Learning for Large Margin Nearest Neighbor Classification. 2009, Journal of Machine Learning Research. [10

    2K11发布于 2018-08-07
  • 来自专栏互联网大杂烩

    K近邻(KNN)

    KNN概念 kNN算法又称为k最近邻(k-nearest neighbor classification)分类算法。 所谓的k最近邻,就是指最接近的k个邻居(数据),即每个样本都可以由它的K个邻居来表达。 step.2---计算未知样本和每个训练样本的距离dist step.3---得到目前K个最临近样本中的最大距离maxdist step.4---如果dist小于maxdist,则将该训练样本作为K-最近邻样本 step.5---重复步骤2、3、4,直到未知样本和所有训练样本的距离都算完 step.6---统计K-最近邻样本中每个类标号出现的次数 step.7---选择出现频率最大的类标号作为未知样本的类标号 KNeighborsClassifier #对数据进行标准化处理 ss=StandardScaler() X_train=ss.fit_transform(X_train) X_test=ss.transform(X_test) #使用K近邻分类器对测试数据进行类别预测

    1.2K30发布于 2018-08-22
领券