在做NN算法的時候遇到了一個有意思的論文。通過向量自身的均值和方差構建的高維點間的距離下界。實現了快速的線性NN搜索。
文中發現的這一下界公式覺得很有意思,特來詳細介紹一下。
背景
高維向量間的歐式距離計算是十分昂貴的。在高維歐式空間進行近鄰搜索,最差的算法是線性掃描,一個一個計算歐氏距離,來篩選。快速NN算法的目的是保持線性掃描的性質不變,但是利用一些過濾機制快速過濾掉一些質量較差的鄰居,最終昂貴的計算只留給一些無法區分的鄰居。
其利用的手段常常就是構造距離下界(lower bound, LB)。具體見如下公式:
其中
過濾的原理是:如果
這裏,大家PK的就是LB的質量。好的LB就是要用更少的計算量實現更大程度地接近原始距離。
基於均值和標準差的LB
論文[1]構造瞭如下一種下界:
其中