Slide 1

Slide 1 text

ざっくり理解する ベクトル検索 めぐろLT #14 「データ分析よろず会」 Apr. 18 2024 - Chiaki Ichimura © 2024 Wantedly, Inc.

Slide 2

Slide 2 text

© 2024 Wantedly, Inc. 自己紹介 市村千晃 @chimuichimu1 ● 経歴 ○ SE, DS @SIer(2017/4 ~ 2024/2) ○ DS @ウォンテッドリー株式会社(2024/3~) ● 興味 ○ 推薦システム ○ データ分析コンペ

Slide 3

Slide 3 text

© 2024 Wantedly, Inc. ベクトル検索とは? ● あるベクトルに似ているベクトルを見つけるための技術 ● 「似ている」の定義 ○ コサイン類似度 ○ ユークリッド距離 ○ etc.

Slide 4

Slide 4 text

© 2024 Wantedly, Inc. 何に使われる? ● ベクトルで表現された ○○○ に似た ○○○ を探す ○ ○○○ … 文書、画像、音声、、、 ● RAG を支える要素技術の一つ

Slide 5

Slide 5 text

© 2024 Wantedly, Inc. ● 最近傍探索 ○ ベクトル同士を一つ一つ比較する線形探索 ○ 厳密な最近傍を求められるが、遅い ● 近似最近傍探索 ○ 厳密ではなく近似的な解を高速に探索 ベクトル検索の分類

Slide 6

Slide 6 text

© 2024 Wantedly, Inc. ● 最近傍探索 ○ ベクトル同士を一つ一つ比較する線形探索 ○ 厳密な最近傍を求められるが、遅い ● 近似最近傍探索 ○ 厳密ではなく近似的な解を高速に探索 ベクトル検索の分類 どう実現している?🤔

Slide 7

Slide 7 text

© 2024 Wantedly, Inc. 近似最近傍探索のアルゴリズム ● ツリーを使う手法 ● グラフを使う手法 ● ハッシュを使う手法 ※ 上記以外にもクラスタリングやベクトルの量子化による方法など、様々な手法がある

Slide 8

Slide 8 text

© 2024 Wantedly, Inc. ツリーを使う手法 A B C D A B D ● 概要 ○ ベクトル集合を空間的に分割 ○ 分割のルールを基に探索範囲を決定 ○ 範囲内のベクトルを探索 ● アルゴリズムの例 ○ k-d Tree, Randomized Trees ● ライブラリの例 ○ Annoy, scikit-learn クエリ C Bruch, S. (2024). Foundations of Vector Retrieval. arXiv preprint arXiv:2401.09350.を基に図を作成

Slide 9

Slide 9 text

© 2024 Wantedly, Inc. グラフを使う手法 ● 概要 ○ ノードがベクトルのグラフを作成 ○ あるノードから出発し、クエリによ り似ている近傍がなくなるまで探索 ● アルゴリズムの例 ○ NSW, HNSW ● ライブラリの例 ○ NMSLIB, Voyager Bruch, S. (2024). Foundations of Vector Retrieval. arXiv preprint arXiv:2401.09350.を基に図を作成 クエリ 探索の開始点

Slide 10

Slide 10 text

© 2024 Wantedly, Inc. ハッシュを使う手法 クエリ ● 概要 ○ 似たベクトルを同じバケットに写像 するハッシュを定義し集合に適用 ○ ハッシュの写像先のバケットを探索 ● アルゴリズムの例 ○ Locality Sensitive Hashing ● ライブラリの例 ○ Datasketch Bruch, S. (2024). Foundations of Vector Retrieval. arXiv preprint arXiv:2401.09350.を基に図を作成 ハッシュ関数 上記の例は

Slide 11

Slide 11 text

© 2024 Wantedly, Inc. まとめ ● ベクトル検索は似たベクトルを探す技術で、RAGをはじめ様々な場 面で使われる ● ベクトル検索の中でも、近似的な解を高速に求めるアプローチを近 似最近傍探索という ● 近似最近傍探索の代表的なアルゴリズムとして、ツリーを使う手 法、グラフを使う手法、ハッシュを使う手法、がある

Slide 12

Slide 12 text

© 2024 Wantedly, Inc. もっと知りたい人へ ● 近似最近傍探索の最前線 ● Foundations of Vector Retrieval