在做NN算法的时候遇到了一个有意思的论文。通过向量自身的均值和方差构建的高维点间的距离下界。实现了快速的线性NN搜索。
文中发现的这一下界公式觉得很有意思,特来详细介绍一下。
背景
高维向量间的欧式距离计算是十分昂贵的。在高维欧式空间进行近邻搜索,最差的算法是线性扫描,一个一个计算欧氏距离,来筛选。快速NN算法的目的是保持线性扫描的性质不变,但是利用一些过滤机制快速过滤掉一些质量较差的邻居,最终昂贵的计算只留给一些无法区分的邻居。
其利用的手段常常就是构造距离下界(lower bound, LB)。具体见如下公式:
其中
过滤的原理是:如果
这里,大家PK的就是LB的质量。好的LB就是要用更少的计算量实现更大程度地接近原始距离。
基于均值和标准差的LB
论文[1]构造了如下一种下界:
其中