快速计算距离Annoy算法原理及Python使用

快速计算距离Annoy算法

基本原理

高维稀疏数据进行快速相似查找,可以采用learning to hash参考:Minhashing & LSH & Simhash 技术汇总,但高维稠密数据查找则采用annoy

如何从海量文本中快速查找出相似的Top N 文本
Annoy(Approximate Nearest Neighbors Oh Yeah)快速算法,在实际应用中发现无论计算速度和准确性都非常不错。

原始2D数据分布图:
快速计算距离Annoy算法原理及Python使用_第1张图片

1. 建立索引过程

Annoy的目标是建立一个数据结构,使得查询一个点的最近邻点的时间复杂度是次线性。Annoy 通过建立一个二叉树来使得每个点查找时间复杂度是O(log n)。 看下面这个图,**随机选择两个点,以这两个节点为初始中心节点,执行聚类数为2的kmeans过程,最终产生收敛后两个聚类中心点。**这两个聚类中心点之间连一条线段(灰色短线)ÿ

你可能感兴趣的:(机器学习算法)