局所性鋭敏型ハッシュ

提供: testwiki
ナビゲーションに移動 検索に移動

局所性鋭敏型ハッシュ(きょくしょせいえいびんがたハッシュ、テンプレート:Lang-en)とは高次元のデータを確率的な処理によって次元圧縮するための手法である。ハッシュの基本的な考え方は類似したデータが高確率で同じバケットに入るようにデータを整理するというものである。多くの場合においてこのバケットの数は入力されるデータサンプルの数よりもずっと小さくなる。

定義

局所性鋭敏型ハッシュを行うためのパラメータの集合をLSH族(Locality Sensitive Hashing Family)と呼ぶ。LSH族は距離空間=(M,d)と閾値R>0、近似因子c>1によって定義される。LSH族[1][2]は2点p,qについて次の2つの性質、

  • d(p,q)Rならばh(p)=h(q)となる確率はP1以上である。
  • d(p,q)cRならばh(p)=h(q)となる確率はP2以下である。

を満たす関数h:Sにより与えられるであり,hから一様乱数にしたがって選択される。このときd(p,q)は2点p,qの距離を表す関数であり、P1>P2となるよう設計する。このような族(R,cR,P1,P2)に鋭敏であるという。

これに準ずる定義として、領域Uにおける類似度関数ϕ:U×U[0,1]によるものがある[3]。局所性鋭敏型ハッシュの性質は、ハッシュ関数の集合Hと確率分布Dにより与えられる。あるハッシュ関数hは集合Hから確率分布Dにより選ばれるが、Dとは領域Uに存在する2点a,bについて、

PrhH[h(a)=h(b)]=ϕ(a,b)

を満たすような確率分布である。

手法

ハミング距離に基づく標本化

LSH族を構築するためのもっとも単純な手法はハミング距離に基づくものである。これはd次元のベクトル{0,1}dに対して適応できる。この手法はd次元のベクトルについてi番目の座標値をハッシュ値として与えるような族により定義され、とは例えば={h:{0,1}d{0,1}h(x)=xi,i=1...d}のように与えられる。ここでからhを任意に選ぶということは、入力点から任意にビットを選択するということに他ならない。この時、族は次の性質を持つ。

P1=1R/d, P2=1cR/d

安定分布に基づく手法

ハッシュ関数h𝐚,b(υ):d𝒩d次元のベクトルvを整数の集合に移すような関数であると定義する[4]。ハッシュ関数hは2つの乱数a,bによって定義される。ここでaとは安定分布から独立に選ばれる乱数であり、bとは[0,r]から一様に選ばれる実乱数である。aおよびbが選ばれたとき、ハッシュ関数h𝐚,b

h𝐚,b(υ)=𝐚υ+br

のように与えられる。

この他にもデータをより適切に対応させるハッシュ関数が提案されている[5]。例えばk-平均法に基づくハッシュ関数などは大域的最適解を与えることが保証されていないものの実用的なハッシュ関数として知られている。

出典

テンプレート:脚注ヘルプ

関連項目

テンプレート:Tech-stub