问题:
我有N(~100m)个字符串,每个D(例如100个)字符长且字母表低(例如4个可能的字符)。我想为这N个点中的每一个找到k-最近邻点(k~0.1D)。相邻的弦通过汉明距离定义。解决方案不一定是最好的,但越接近越好。
关于这个问题的想法
我有一种不好的感觉,这是一个非常重要的问题。我已经阅读了很多论文和算法,但是大多数都在高维度上有较差的结果,并且当维度小于5时它起作用。例如this paper建议一种有效的算法,但它的常数与指数维度相关。
目前,我正在研究如何以保持汉明距离或计算汉明距离的方式减少维数。
另一个选项是locality sensitive hashing,在所选指标下彼此接近的点以高概率映射到同一个存储桶。任何帮助?您更喜欢哪个选项?
答案 0 :(得分:3)
之前提出的一个问题有一些很好的讨论,所以你可以参考,
Nearest neighbors in high-dimensional data?
除此之外,您还可以查看,
http://web.cs.swarthmore.edu/~adanner/cs97/s08/papers/dahl_wootters.pdf
很少有论文分析不同的方法,
http://www.jmlr.org/papers/volume11/radovanovic10a/radovanovic10a.pdf