如何在合理的时间内计算DB中的大量记录

时间:2016-07-17 23:17:20

标签: database recommendation-engine bigdata

如果我的应用程序中有一个向量(例如:tf.reshape)并且我想在我的数据库中找到与其他向量的相似性,那么为了简单起见,我想用{{计算两个向量之间的距离3}}

我需要的是一种计算我的向量与存储在我的数据库中的所有向量之间的算法(我的例子中的曼哈顿距离)的方法,我可以在几秒钟内完成1000万个向量吗?

1 个答案:

答案 0 :(得分:1)

如果您确实处理了大量数据,那么您真正需要的是近似近邻 - http://en.wikipedia.org/wiki/Nearest_neighbor_search#Approximate_nearest_neighbor实现。看看Annoy - https://pypi.python.org/pypi/annoy/1.8.0项目页面。您可以找到其他有趣的ANN项目的基准。也许有一个实现作为DB的插件,但我不知道这样的。但是,ANN也可用于预先计算top-n NN,并将其作为User / Item列表存储在DB中。