大规模临近查询使用啥样的技术合适

KD-Tree或者LSH应该都能实现题主的需求,但两者都有不准确的概率(牺牲准确度换查询效率)。(关键词:KD-Tree、Locality-Sensitive Hashing)如果一定要准确查询的话,可以考虑先做降维,在保证距离损失不大的情况下(k近邻不变),低维的向量(譬如100维)可以大大加快欧氏距离的计算效率。(关键词:SVD、数据降维)如果计算资源足够的话可以考虑并行查询,比如让第一台机器查询1-10000里的k近邻,第二台10001-20000,等等;最后拿到若干个k近邻组再根据距离排序找到最终的k近邻。(关键词:并行计算、Hadoop、Spark、MPI、等等等等)如果反复进行查询的时候查询向量可能类似,可以考虑用更工程化的解决方案,比如缓存(caching),这个实现方式就多种多样了,而且cache的实现方法和大小都要随应用而定,太大会影响cache内部的查询效率,太小会不能充分利用缓存资源。(关键词:caching、记忆化算法)
■网友
有没有考虑建立过空间索引?
■网友
cuda撸一个呗.作为学长,要不我给你撸一个?
■网友
这工具又不难,直接用C++写一个不就行了。


    推荐阅读