FNN:利用均值和方差構造歐式距離下界

在做NN算法的時候遇到了一個有意思的論文。通過向量自身的均值和方差構建的高維點間的距離下界。實現了快速的線性NN搜索。

文中發現的這一下界公式覺得很有意思,特來詳細介紹一下。

背景

高維向量間的歐式距離計算是十分昂貴的。在高維歐式空間進行近鄰搜索,最差的算法是線性掃描,一個一個計算歐氏距離,來篩選。快速NN算法的目的是保持線性掃描的性質不變,但是利用一些過濾機制快速過濾掉一些質量較差的鄰居,最終昂貴的計算只留給一些無法區分的鄰居。

其利用的手段常常就是構造距離下界(lower bound, LB)。具體見如下公式:

dist(xc,q)<LB(x,q)dist(x,q)

其中dist() 代表兩個點間的歐式距離。q 是查詢點,xc 是當前的近鄰候選點(亦即目前爲止找到的距離q 最近的點),x 是當前遍歷到的數據點。LB(x,q) 表示x,q 兩點間的距離下界,距離下界一定是小於等於原始距離。

過濾的原理是:如果x,q 兩點間的距離下界大於當前的近鄰半徑(即近鄰候選點到q 的距離),那麼x 就不再可能是近鄰,可以被排除。

這裏,大家PK的就是LB的質量。好的LB就是要用更少的計算量實現更大程度地接近原始距離。

基於均值和標準差的LB

論文[1]構造瞭如下一種下界:

LB(x,y)=ddist2(πx,πy)

其中π 是一個二維向量,πx=(μx,δx)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章