5. 近傍点探索アルゴリズムの高速化 R d 空間においての近傍点探索では、 d≦2 の場合においては、高速な最近傍点探索アルゴリズムが知られている。 d=2 の場合には、例えばボロ ノイ図をたどることによって可能 (Kanda et al, 2002) 空間計算量 O(n) 計算量 O(log N) Voronoi diagram From wikipedia http://ja.wikipedia.org/wiki/%E7%94%BB%E5%83%8F:Coloured_Voronoi_2D.png
7. 近似近傍点探索問題 高次元ベクトル空間において、純粋な最近傍点探索を高速化する手法は存在しない ( まだ知られていない ) そこで、純粋な近傍点探索ではなく、確率的に近似的な近傍点探索を行う手法の研究が進められている。 Approximate Nearest Neighbor (Araya et al 1998) Locality-Sensitive Hashing (Indyk et al 1998) Metric trees (Moore et al 2003)
8. 近似近傍点探索問題の定義 近似近傍点探索問題に関して、 Indyk らは、 c- 近似 R- 最近傍点探索という問題を定式化した。 以下、 (r,c)- 近似最近傍点探索 定義 R d 空間上の点集合 p∈P が与えられたとする If : クエリ点 q に対して、 p∈P で ||p-q||<r となる点が存在するならば then : p’∈P で、 ||p’-q||< c r となる点集合を返す (c≧1) 本当は r 以内のものだけが欲しい! crの中に含まれている ものを列挙できれば 最近傍も含む ||p-q||<rの点は得られる q r cr
10. LS-Hash 関数の定義 対象とするもとの空間を ℜ d 、生成される空間を U とする関数 h が以下の条件を満たす場合、局所鋭敏な ( Locality-Sensitive な ) 関数と定義される ||p-q||<r の時、 Pr[h(p)=h(q)] が p 1 以上 ||p-q||≧cr の時、 Pr[h(q)=h(q)] が p 2 以下 (p 2 <p 1 ) 上記条件を満たす L 個のハッシュ関数 G{h 1 ,h 2 …h k } が与えられたとき、一定確率以上 (≧1/2) で L 個のバケット探索によって (r,c)- 近似最近傍点探索を達成する ( 最近傍を見つける ) 方法が存在する ただし、 L=N ρ(c) ρ(c)=log(1/p 1 )/log(1/p 2 ) K=log(n)/log(1/p 2 ))
11. LSH アルゴリズム 以下のようなハッシュ関数 g(p) を用いる g(p)=<h 1 (p), h 2 (p)…h k (p)> 構築 L 個のハッシュ関数群 g(p){g 1 ,g 2 …g L } を作成する 全ての点 p∈P に対し、ハッシュ関数 gi ごとにハッシュ値を計算し格納 クエリ クエリ点 q からハッシュ値を計算し、順次バケット g 1 (q),g 2 (q)… を探索 L 個全てのバケットを探索するか、 2L 個以上の点を見つけた時点で探索を打ち切る これよって、一定以上の確率で最近傍点を見つけることが出来る 時間計算量は O(dL)
12. LSH Hash Family LSH スキームでは、用いる距離尺度に応じて、関数 h を構築する必要がある 以下の距離尺度において LSH 関数が提案されている L 1 ノルム (Hamming 距離 ) (Gionis et al, 1999) Cosine 尺度 ,Earth Mover’s Distance (Charikar et al 2002) Jaccard 係数 (Broder et al, 1998) Lp ノルム (l 2 の Euclidean 距離 ) (Data et al,2004,Andoni et al, 2006)
13. LSH Hash Family Hamming 距離におけるハッシュ関数 G の定義 点 p[1,2,3] から 桁数を正規化した unary code 化をし、 そこからランダムに選んだ bit を k 個をサンプリングする Unary(p)=011100110001 K=5 で G{h1_1,h2_3,h3_5,h4_8,h5_11} とすると G(p)= 0 1 1 1 0 01 1 00 0 1=01010 Cosine 尺度における関数 h の定義 ベクトル u は、正規乱数により 生成された d 次元のベクトル
14. LSH Hash Family for l p norm L p 空間におけるノルムの場合 アイディア L p 空間上において、 p 度の安定分布により生成されたベクトルとの内積は、正規分布によってばらけはするが、元の座標を反映した値になる k 個の内積を用いた k 次元空間へのマッピングにおいては、 l2 空間においては任意の二点間の距離を定数倍の誤差で維持することが出来る [Johnson et al, 1984] L p (p>2) 空間においては、確率的にもとの空間における近傍点が、次元削減された空間において確率的に近傍点となるマッピングは存在する [Indyk et al, 2002]
15. LSH Hash Family for l p norm l p norm における関数の定義 a は、 p 度の安定分布により生成される乱数によって構成されたベクトル p=2 においては、平均 0, 分散 1 の正規乱数 Box-Muler 法などで生成 b は、 0 ~ w の値を持つ一様乱数から生成された値 scalar 値 b と randMax 値 w によって割って床関数を掛けることにより、 (r,c) のパラメータを調整している
16. 参考 Piotr Indyk Near-Optimal Hashing Algorithms for Approximate Near(est) Neighbor Problem http://people.csail.mit.edu/indyk/mmds.pdf