コンピュータサイエンスにおいて、局所性感知ハッシュ法( LSH ) は、類似の入力項目を高い確率で同じ「バケット」にハッシュするファジーハッシュ法です。 [1] (バケットの数は、入力項目の可能な全体よりもはるかに少ないです。) [1]類似の項目が同じバケットに入るため、この手法はデータクラスタリングや最近傍検索に使用できます。ハッシュ衝突が最小化されるのではなく最大化される点で、従来のハッシュ法とは異なります。あるいは、この手法は高次元データの次元を削減する方法と見なすこともできます。つまり、高次元の入力項目を、項目間の相対距離を維持しながら低次元バージョンに削減することができます。
ハッシュベースの近似最近傍探索アルゴリズムは、通常、2つの主要なハッシュ方法のいずれかを使用します。1つは、局所性敏感ハッシュ(LSH)などのデータ非依存方法、もう1つは局所性保存ハッシュ(LPH)などのデータ依存方法です。[2] [3]
局所性保存ハッシュ法は、ランダムルーティングとユニバーサルハッシュ法を使用してメモリ競合とネットワーク輻輳を軽減する超並列アルゴリズムの実装において、データパイプラインを容易にする方法として当初考案されました。[4] [5]
定義
関数の有限族はLSH族[1] [6] [7]として定義される 。
- 距離 空間、
- 閾値、
- 近似係数、
- および確率
次の条件を満たす場合。任意の 2 つの点と、一様にランダムに選択されたハッシュ関数について:
- の場合、(つまり、aとbが)少なくとも の確率で衝突し、
- の場合、確率は最大で です。
このような家族は「-敏感」と呼ばれます。
類似度に関するLSH
あるいは[8]類似度関数が与えられたアイテムの集合U上にLSH族を定義することも可能である。この設定では、LSHスキームはハッシュ関数Hの族とH上の確率分布Dと結合したもので、Dに従って選択された関数は各に対してを満たす。
増幅
-敏感なファミリーが与えられた場合、のAND構築またはOR構築によって新しいファミリーを構築することができます。[1]
AND 構築を作成するには、ハッシュ関数gの新しいファミリを定義します。ここで、各関数gはからのk 個のランダム関数から構築されます。ハッシュ関数 に対して、に対してすべて である場合に限り、 であるといえます。 のメンバーは任意の に対して独立に選択されるため、は -敏感なファミリです。
OR 構築を作成するには、ハッシュ関数gの新しいファミリを定義します。ここで、各関数g はからのk 個のランダム関数から構築されます。ハッシュ関数 に対して、iの 1 つ以上の値に対してである場合に限り、 となります。 のメンバーは任意の に対して独立に選択されるため、は -敏感なファミリです。
アプリケーション
LSH は、次のようないくつかの問題領域に適用されています。
- 重複検出[9]
- 階層的クラスタリング[10] [11]
- ゲノムワイド関連研究[12]
- 画像の類似性の識別
- 遺伝子発現類似性の同定[要出典]
- オーディオ類似性の識別
- 最近傍探索
- オーディオフィンガープリント[13]
- デジタルビデオフィンガープリンティング
- 並列計算における共有メモリ構成[4] [5]
- データベース管理システムにおける物理的なデータ構成[14]
- 完全結合ニューラルネットワークの訓練[15] [16]
- コンピュータセキュリティ[17]
- 機械学習[18]
方法
ハミング距離のビットサンプリング
LSH 族を構築する最も簡単な方法の 1 つは、ビット サンプリングです。[7]このアプローチは、d次元ベクトル上のハミング距離に有効です。ここで、ハッシュ関数の族は、座標の 1 つ、つまり、上の点のすべての投影の族に過ぎません。ここで、は の 番目の座標です。からのランダム関数は、入力点からランダム ビットを選択するだけです。この族には、次のパラメーターがあります: 、。つまり、ハミング距離が最大 である任意の2 つのベクトルは、少なくとも の確率でランダム の下で衝突します。ハミング距離が 以上の任意のベクトルは、最大 の確率で衝突します。
最小値独立順列
U が、列挙可能な項目の基底集合S のサブセットで構成され、対象の類似度関数がJaccard インデックス Jであるとします。πがSのインデックス上の順列である場合、とします。π の可能な選択ごとに、入力セットをSの要素にマッピングする単一のハッシュ関数h が定義されます。
関数族H をそのような関数すべての集合として定義し、D を一様分布とします。2 つの集合が与えられた場合、 πの最小値が内にあるイベントに正確に対応するイベントが内にあります。hは一様ランダムに選択されたため、Jaccard 指数の LSH スキームを定義します。
n個の要素を持つ対称群のサイズはn ! であるため、完全な対称群から真にランダムな順列を選択することは、中程度の大きさのnに対しても実行不可能です。この事実のため、「最小値独立」な順列の族、つまり、ランダムに選択されたπの下でドメインの各要素が最小値になる確率が等しい順列族を見つけるための重要な研究が行われてきました。最小値独立な順列族のサイズは少なくとも であり、[19]この上限は厳密であることが確立されています。[20]
最小独立族は実際の応用には大きすぎるため、最小独立性の2つの変形概念が導入されました。制限付き最小独立順列族と近似最小独立族です。制限付き最小独立性は、最大でk の特定の集合に制限された最小独立性プロパティです。[21] 近似最小独立性は、最大で固定されたεだけプロパティと異なります。[22]
オープンソース方式
ニルシムサ・ハッシュ
Nilsimsaは、スパム対策に使用される局所性に敏感なハッシュアルゴリズムです。[23] Nilsimsaの目的は、2つの類似したメッセージのダイジェストが互いに類似するように、電子メールメッセージのハッシュダイジェストを生成することです。この論文では、Nilsimsaが3つの要件を満たしていると示唆されています。
- 各メッセージを識別するダイジェストは、自動的に生成できる変更に対して大幅に変化してはなりません。
- エンコードは意図的な攻撃に対して堅牢でなければなりません。
- エンコーディングでは、誤検知のリスクが極めて低く抑えられる必要があります。
この論文では、さまざまなファイルタイプを対象にテストを実施し、NilsimsaハッシュはTLSH、Ssdeep、Sdhashなどの他の類似性ダイジェスト方式と比較して、誤検出率が著しく高いことが判明しました。[24]
TLSH
TLSHは、セキュリティやデジタルフォレンジックのさまざまなアプリケーション向けに設計された、局所性に敏感なハッシュアルゴリズムです。[17] TLSHの目的は、ダイジェスト間の距離が短いほど、対応するメッセージが類似している可能性が高いことを示すように、メッセージのハッシュダイジェストを生成することです。
TLSHの実装はオープンソースソフトウェアとして利用可能である。[25]
ランダム投影

モーゼス・チャリカー[8]によるLSHのランダム射影法であるSimHash (arccos [26]とも呼ばれる)は、ベクトル間のコサイン距離の近似値を使用する。この手法はNP完全最大カット問題を近似するために使用された。[8]
この手法の基本的な考え方は、最初に ランダムな超平面(通常の単位ベクトルrによって定義される)を選択し、その超平面を使用して入力ベクトルをハッシュすることです。
入力ベクトルvとrで定義された超平面が与えられた場合、 とします。つまり、 は 超平面vのどちら側にあるかによって異なります。このようにして、ランダムな超平面rの可能な各選択肢は、ハッシュ関数 として解釈できます。
二つのベクトルu,vの間に角度がある場合、次の式が成り立つ。
との比は のとき少なくとも 0.439 なので、[8] [27] 2 つのベクトルがランダム超平面の異なる側にある確率はそれらの間の コサイン距離にほぼ比例します。
安定した分布
ハッシュ関数 [28]は、 d次元ベクトルを 整数の集合にマッピングします。この関数ファミリの各ハッシュ関数は、ランダムなと の選択によってインデックス付けされます。ここで、 は安定した分布から独立して選択されたエントリを持つd次元ベクトルであり、 は 範囲[0,r]から一様に選択された実数です。 が固定されている場合、 ハッシュ関数はによって与えられます。
データに適合させるために、ハッシュ関数の他の構築方法が提案されている。 [29] 特に、k平均法ハッシュ関数は、投影ベースのハッシュ関数よりも実際には優れていますが、理論的な保証はありません。
セマンティックハッシュ
セマンティックハッシュは、入力項目をアドレスにマッピングし、近い入力ほど意味的類似性が高くなるようにする手法です。[30]ハッシュコードは、人工ニューラルネットワークまたはグラフィカルモデルのトレーニングによって見つけられます。[要出典]
最近傍探索アルゴリズム
LSH の主な用途の 1 つは、効率的な近似最近傍検索アルゴリズムの手法を提供することです。LSH ファミリを考えてみましょう。アルゴリズムには、幅パラメータkとハッシュ テーブルの数Lという 2 つの主なパラメータがあります。
最初のステップでは、ハッシュ関数gの新しいファミリを定義します。ここで、各関数g は、からk個の関数を連結することによって取得されます。つまり、ランダムハッシュ関数gは、からランダムに選択されたk 個のハッシュ関数を連結することによって取得されます。次に、アルゴリズムは、それぞれがランダムに選択された異なるハッシュ関数gに対応するL 個のハッシュテーブルを構築します。
前処理ステップでは、データセットSのすべてのn d次元ポイントをL 個のハッシュ テーブルのそれぞれにハッシュします。結果のハッシュ テーブルにはn 個の非ゼロ エントリしかないため、標準のハッシュ関数を使用して、各ハッシュ テーブルで使用されるメモリの量を削減できます。
クエリ ポイントqが与えられると、アルゴリズムはL 個のハッシュ関数g を反復します。検討対象の各gについて、 qと同じバケットにハッシュされたデータ ポイントを取得します。 qから距離cR以内のポイントが見つかる とすぐに、プロセスは停止します。
パラメータkとL が与えられている場合、アルゴリズムには次のパフォーマンス保証があります。
- 前処理時間: 、ここでt は入力点pで関数を評価する時間です。
- スペース:データ ポイントを格納するためのスペース。
- クエリ時間: ;
- アルゴリズムは、少なくとも確率で、qから距離cR以内の点を見つけることに成功します(距離R以内に点が存在する場合) 。
固定された近似比と確率およびに対して、および( )を設定できます。この場合、次のパフォーマンス保証が得られます。
- 前処理時間: ;
- スペース:データ ポイントを格納するためのスペース。
- クエリ時間: ;
改善点
tが大きい場合、ハッシュ時間を から短縮することが可能です。これは[31]と[32]によって示され、
- クエリ時間: ;
- 空間:;
また、係数が非常に大きくなる場合もあります。これは、たとえばJaccard類似度データで発生します。このデータでは、最も類似した近傍であっても、クエリとのJaccard類似度が非常に低いことがよくあります。[33]では、クエリ時間(ハッシュコストは含まない)を1に削減し、同様にスペース使用量を 削減する方法が示されました。
参照
- ブルームフィルタ – 近似集合メンバーシップのデータ構造
- 次元の呪い - 多くの側面(「次元」)を持つデータを分析するときに生じる困難
- 特徴ハッシュ – ハッシュ関数を使用して特徴をベクトル化する
- フーリエ変換
- Geohash – 2008 年に発明されたパブリック ドメイン ジオコーディング
- 多重線形部分空間学習 - 次元削減へのアプローチ
- 主成分分析 – データ分析の方法
- ランダムインデックス[34]
- ローリングハッシュ – ハッシュ関数の種類
- 特異値分解 – 行列分解
- 疎分散メモリ – メモリの数学的モデル
- ウェーブレット圧縮 – データの圧縮と分析に使用される数学的手法
参考文献
- ^ abcd Rajaraman, A.; Ullman, J. (2010). 「大規模データセットのマイニング、第3章」
- ^ Zhao, Kang; Lu, Hongtao; Mei, Jincheng (2014). 局所性保存ハッシュ。AAAI人工知能会議。第28巻。pp. 2874–2880。
- ^ ツァイ、イーシュアン;ヤン・ミンシュアン (2014 年 10 月) 「局所性保持ハッシュ」。2014 IEEE 画像処理国際会議 (ICIP)。 2988 ~ 2992 ページ。土井:10.1109/ICIP.2014.7025604。ISBN 978-1-4799-5751-4. ISSN 1522-4880. S2CID 8024458.
- ^ ab Chin, Andrew (1991). 汎用並列コンピューティングにおける複雑性の問題 (DPhil). オックスフォード大学. pp. 87–95.
- ^ ab Chin, Andrew (1994). 「汎用並列計算のための局所性保存ハッシュ関数」(PDF) . Algorithmica . 12 (2–3): 170–181. doi :10.1007/BF01185209. S2CID 18108051.
- ^ Gionis, A.; Indyk, P .; Motwani, R. (1999). 「ハッシュによる高次元の類似性検索」。第 25 回超大規模データベース (VLDB) カンファレンスの議事録。
- ^ ab Indyk, Piotr .; Motwani, Rajeev . (1998). 「近似最近傍法: 次元の呪いの除去に向けて」。第 30 回コンピューティング理論シンポジウムの議事録。
- ^ abcd Charikar , Moses S. (2002). 「丸めアルゴリズムによる類似性推定手法」。第34回ACMコンピューティング理論シンポジウム議事録。pp. 380–388。CiteSeerX 10.1.1.147.4064。doi : 10.1145 /509907.509965。ISBN 1-58113-495-9。
- ^ Das, Abhinandan S.; et al. (2007)、「Google ニュース パーソナライゼーション: スケーラブルなオンライン協調フィルタリング」、第 16 回 World Wide Web 国際会議の議事録、pp. 271–280、doi :10.1145/1242572.1242610、ISBN 9781595936547、S2CID 207163129。
- ^ 古賀久志、石橋哲夫、渡辺俊則 (2007)、「局所性感知ハッシュ法を用いた高速凝集型階層クラスタリングアルゴリズム」、知識情報システム、12 (1): 25–53、doi :10.1007/s10115-006-0027-5、S2CID 4613827 。
- ^ Cochez, Michael; Mou, Hao (2015)、「Twister Tries」、2015 ACM SIGMOD International Conference on Management of Data の議事録(PDF)、pp. 505–517、doi :10.1145/2723372.2751521、ISBN 9781450327589、S2CID 14414777。
- ^ Brinza, Dumitru; et al. (2010)、「ゲノムワイド関連研究における遺伝子間相互作用の迅速な検出」、バイオインフォマティクス、26 (22): 2856–2862、doi :10.1093/bioinformatics/btq529、PMC 3493125、PMID 20871107
- ^ dejavu - Python でのオーディオ フィンガープリンティングと認識、2018-12-19
- ^ Aluç, Güneş; Özsu, M. Tamer; Daudjee, Khuzaima (2018)、「Tunable-LSH を使用した自己クラスタリング RDF データベースの構築」、The VLDB Journal、28 (2): 173–195、doi :10.1007/s00778-018-0530-9、S2CID 53695535
- ^ Chen, Beidi; Medini, Tharun; Farwell, James; Gobriel, Sameh; Tai, Charlie; Shrivastava, Anshumali (2020-02-29). 「SLIDE : 大規模ディープラーニングシステムにおけるハードウェアアクセラレーションよりもスマートアルゴリズムを擁護する」. arXiv : 1903.03129 [cs.DC].
- ^ チェン、ベイディ;劉子昌。彭、冰輝。徐、趙州。リー、ジョナサン・リンジエ。ダオ、トリ。宋、趙。シュリヴァスタヴァ、アンシュマリ。 Re、Christopher (2021)、「MONGOOSE: 効率的なニューラル ネットワーク トレーニングのための学習可能な LSH フレームワーク」、学習表現に関する国際会議
- ^ ab オリバー、ジョナサン、チェン、チュン、チェン、ヤングイ (2013)。TLSH - 局所性に敏感なハッシュ。第4 回サイバー犯罪と信頼できるコンピューティング ワークショップ。pp. 7–13。doi :10.1109 / CTC.2013.9。ISBN 978-1-4799-3076-0。
- ^ Fanaee-T, Hadi (2024)、自然学習、arXiv : 2404.05903
- ^ Broder, AZ ; Charikar, M. ; Frieze, AM ; Mitzenmacher, M. (1998). 「Min-wise independent permutations」. Proceedings of the Thirtieth Annual ACM Symposium on Theory of Computing . pp. 327–336. CiteSeerX 10.1.1.409.9220 . doi :10.1145/276698.276781 . 2007-11-14に取得。
- ^ 武井 勇; 伊藤 剛; 篠崎 徹「最小独立順列の最適構成」 電子情報通信学会技術報告 COMP98-62, 1998 .
- ^ Matoušek , J.; Stojakovic, M. (2002). 「制限付き最小値独立順列について」プレプリント. 2007-11-14閲覧。
- ^ Saks, M. ; Srinivasan, A.; Zhou, S.; Zuckerman, D. (2000). 「Low discrepancy sets yieldapproximate min-wise independent permutation groups」. Information Processing Letters . 73 (1–2): 29–32. CiteSeerX 10.1.1.20.8264 . doi :10.1016/S0020-0190(99)00163-5 . 2007-11-14に取得。
- ^ Damiani; et al. (2004). 「スパム検出のためのオープンダイジェストベースの手法」(PDF) 。 2013年9月1日閲覧。
- ^ Oliver; et al. (2013). 「TLSH - 局所性に敏感なハッシュ」。第4回サイバー犯罪および信頼できるコンピューティングワークショップ。2015年6月4日閲覧。
- ^ "TLSH". GitHub . 2014年4月10日閲覧。
- ^ Alexandr Andoni; Indyk, P. (2008). 「高次元における近似最近傍点のための近似最適ハッシュアルゴリズム」Communications of the ACM . 51 (1): 117–122. CiteSeerX 10.1.1.226.6905 . doi :10.1145/1327452.1327494. S2CID 6468963.
- ^ Goemans, Michel X.; Williamson, David P. (1995). 「半正定値計画法を用いた最大カット問題と充足可能性問題に対する改良近似アルゴリズム」Journal of the ACM . 42 (6). Association for Computing Machinery (ACM): 1115–1145. doi : 10.1145/227683.227684 . ISSN 0004-5411. S2CID 15794408.
- ^ Datar, M.; Immorlica, N .; Indyk, P .; Mirrokni, VS (2004). 「p安定分布に基づく局所性に敏感なハッシュ方式」。計算幾何学シンポジウムの議事録。
- ^ Pauleve, L.; Jegou, H.; Amsaleg, L. (2010). 「局所性に敏感なハッシュ: ハッシュ関数の種類とクエリメカニズムの比較」.パターン認識レター. 31 (11): 1348–1358. Bibcode :2010PaReL..31.1348P. doi :10.1016/j.patrec.2010.04.004. S2CID 2666044.
- ^ Salakhutdinov, Ruslan; Hinton, Geoffrey (2008). 「セマンティックハッシュ」International Journal of approximate Reasoning . 50 (7): 969–978. doi : 10.1016/j.ijar.2008.11.006 .
- ^ Dahlgaard、Søren、Mathias Bæk Tejs Knudsen、Mikkel Thorup。 「高速類似スケッチ」 2017 IEEE 58th Annual Symposium on Foundations of Computer Science (FOCS)。 IEEE、2017 年。
- ^ Christiani, Tobias。「近似近傍検索のための高速な局所性に敏感なハッシュフレームワーク。」類似性検索とアプリケーションに関する国際会議。Springer、Cham、2019年。
- ^ Ahle、Thomas Dybdahl。「局所性に敏感なハッシュにおけるの問題について。」類似性検索とアプリケーションに関する国際会議。Springer、Cham、2020年。
- ^ Gorman, James、James R. Curran。「大規模コーパスへの分布類似性のスケーリング」。第 21 回国際計算言語学会議および第 44 回計算言語学協会年次会議の議事録。計算言語学協会、2006 年。
さらに読む
- Samet, H. (2006)多次元およびメトリックデータ構造の基礎. Morgan Kaufmann. ISBN 0-12-369446-9
- Indyk, Piotr ; Motwani, Rajeev ; Raghavan, Prabhakar ; Vempala, Santosh (1997)。「多次元空間における局所性保存ハッシュ」。第29 回 ACM コンピューティング理論シンポジウム議事録。STOC '97。pp. 618–625。CiteSeerX 10.1.1.50.4927。doi : 10.1145 / 258533.258656。ISBN 978-0-89791-888-6. S2CID 15693787。
- Chin, Andrew (1994). 「汎用並列計算のための局所性保存ハッシュ関数」(PDF) . Algorithmica . 12 (2–3): 170–181. doi :10.1007/BF01185209. S2CID 18108051.
外部リンク
- Alex Andoni の LSH ホームページ
- LSHKIT: C++ 局所性を考慮したハッシュ ライブラリ
- オプションでRedis経由で永続性をサポートするPython Locality Sensitive Hashingライブラリ
- Caltech 大規模画像検索ツールボックス: Kd-Trees、階層型 K-Means、および反転ファイル検索アルゴリズムに加えて、いくつかの LSH ハッシュ関数を実装する Matlab ツールボックス。
- Slash: 球状 LSH を実装した C++ LSH ライブラリ (著者: Terasawa, K., Tanaka, Y)
- LSHBOX: 大規模な画像検索のための局所性感知ハッシュのオープンソース C++ ツールボックス。Python と MATLAB もサポートします。
- SRS: p 安定ランダム射影に基づくメモリ内、スペース効率の高い近似最近傍クエリ処理アルゴリズムの C++ 実装
- TLSH は Github でオープンソース化されています
- TLSH (Trend Micro Locality Sensitive Hashing) の JavaScript ポートが node.js モジュールとしてバンドルされています
- TLSH (Trend Micro Locality Sensitive Hashing) の Java ポートが Maven パッケージとしてバンドルされました
