Annoy 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Annoy 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Annoy 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Annoy 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Annoy 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !

软件简介

Annoy 是 Spotify 开源的高维空间求近似最近邻的库,在 Spotify 使用它进行音乐推荐。最邻近搜索(Nearest Neighbor Search, NNS)又称为“最近点搜索”(Closest point search),是一个在尺度空间中寻找最近点的优化问题。

Annoy 能够使用静态文件作为索引,意味着可以跨进程共享索引。它还创建了大量的基于只读文件的数据结构,这些数据结构被嵌入内存中,以便许多进程可以共享相同的数据。Annoy 的另一个好处是它试图最小化内存占用,因此索引非常小。

特性:

  • 欧几里德距离, 曼哈顿距离, 余弦距离, 汉明距离或 点(内)积距离
  • 余弦距离等价于归一化向量的欧氏距离=sqrt(2-2*cos(u,v)
  • 如果你的维度不多(比如<100),效果会更好,即使达到 1000 个维度,它也表现得非常出色
  • 内存使用量小
  • 允许你在多个进程之间共享内存
  • 索引创建与查找是分开的(特别是在创建树后,就无法添加更多项目)
  • 原生 Python 支持
  • 在磁盘上生成索引,以便为不适合内存的大型数据集建立索引

 

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
发表了博客
2019/03/22 10:40

Annoy 近邻算法

Annoy 随机选择两个点,以这两个节点为初始中心节点,执行聚类数为2的kmeans过程,最终产生收敛后两个聚类中心点 二叉树底层是叶子节点记录原始数据节点,其他中间节点记录的是分割超平面的信息 但是上述描述存在两个问题: (1)查询过程最终落到叶子节点的数据节点数小于 我们需要的Top N相似邻居节点数目怎么办? (2)两个相近的数据节点划分到二叉树不同分支上怎么办? 针对这个问题可以通过两个方法来解决: (1)如果分割...

0
0
发表了博客
2018/12/03 22:12

annoy超平面多维近似向量查找工具

需求:有800万的中文词向量,要查询其中任意一个词向量对应的k个与其最邻近的向量。通常情况下如果向量集比较小的话,几十万个向量(几个G这种),我们都可以用gensim的word2vec来查找,但是880万词向量有16个G,加到内存中就爆炸了,而且gensim中的查找属于暴力搜索,即全都遍历比较余弦相似度来进行查找,因此几百万量级的词向量查找起来就很慢了。这里我需要用更快速的工具来进行查找,找到了两个工具,一个是facebook的fai...

0
0
发表于AI & 大数据专区
2020/04/16 09:05

Milvus v0.8.0发布: 新增 ANNOY 索引、向量删除与Bug修复

| 版本兼容 | 新增功能 ANNOY 索引的支持 增加 ANNOY 索引类型,关于 ANNOY 索引的详细介绍请参考文档。issue #261 向量删除 新增下列索引类型支持删除操作:issue #1655 #1660 #1661 #1849, 包括: Flat/IVFlat/IVFPQ/IVFSQ8/IVFSQ8H/NSG/HNSW/ANNOY | 主要改进 在 http 模块支持超集/子集距离。issue #1784 | Bug 修复 限制 partition 数目上限为4096。issue #1276 禁止创建 _default partition。issue #1762 解决多客户端并...

0
0
发表了博客
2020/07/10 15:52

K近邻算法哪家强?KDTree、Annoy、HNSW原理和使用方法介绍 - 知乎

1、什么是K近邻算法 K近邻算法(KNN)是一种常用的分类和回归方法,它的基本思想是从训练集中寻找和输入样本最相似的k个样本,如果这k个样本中的大多数属于某一个类别,则输入的样本也属于这个类别。 关于KNN算法,一个核心问题是:如何快速从数据集中找到和目标样本最接近的K个样本? 本文将从这个角度切入,介绍常用的K近邻算法的实现方法。具体将从原理、使用方法、时间开销和准确率对比等方面进行分析和实验。 2、距离度量 ...

0
0
发表了博客
2012/07/05 11:44

pipe extrusion machine supplier

Transfer to a bowl into the cast afterwards the aqueous artificial ambit breaker. What is the cast to its appearance and the pipe extrusion machine have to be advised so that the aqueous artificial analogously from a annular profile, the contour shapes of the artefact flow. Uneven breeze at this date is accidental articles and at some credibility the burden profile. These pressures may advance ...

0
0
发表于AI & 大数据专区
2020/04/08 11:50

Milvus 社区周报- Week 14, 2020

| 研发进展 IVF PQ / HNSW / Annoy / GPU Flat / IVF Flat / SQ8 / SQ8H / NSG 的删除功能,全部测试中 分析 Milvus Build Index 性能,进行中 Milvus Python SDK 连接池 / 异步接口的开发,完成 Milvus Java 异步接口开发,进行中 Mishards 升级使用连接池和异步接口,进行中 Mishards 的部署优化和测试对接,进行中 梳理 Milvus 各操作路径流程图和文档,进行中 Annoy 调参总结,FAISS/HNSW/ANNOY 支持 Metrics 总结,完成 混...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
12 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部