Slide 1

Slide 1 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 1 学習型データ構造:機械学習を内包する 新しいデータ構造の設計と解析 松井勇佑 東京大学 第28回情報論的学習理論ワークショップ(IBIS)2025 企画セッション3「アルゴリズム・データ構造と機械学習」 2025/11/14, @那覇, 沖縄

Slide 2

Slide 2 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 2 松井勇佑 ✓ コンピュータビジョン ✓ データ構造+機械学習 http://yusukematsui.me 講師・東京大学 @utokyo_bunny @matsui528 漫画のゼロショット理解 [Li+, ACMMM 24] 高速な多様近傍探索 [Matsui, CVPR 25] 学習型ソート [Sato & Matsui, TMLR 25]

Slide 3

Slide 3 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 3 三次元復元 [1] [1] Wang+, “VGGT: Visual Geometry Grounded Transformer”, CVPR 2025 [2] Fawzi+, “Discovering faster matrix multiplication algorithms with reinforcement learning”, Nature, 2022 [3] https://gemini.google/jp/overview/image-generation/ https://finance.yahoo.com/news/gm-unveils-eyes-off-self-driving-conversational-google-ai-for-its-cars-at-tech-event-151049822.html https://en.wikipedia.org/wiki/ChatGPT#/media/File:ChatGPT-Logo.svg ChatGPT 自動運転 科学的発見 [2] Text-to-Image [3] AIコーディング https://www.claude.com/product/claude-code 機械学習は大人気

Slide 4

Slide 4 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 4 三次元復元 [1] [1] Wang+, “VGGT: Visual Geometry Grounded Transformer”, CVPR 2025 [2] Fawzi+, “Discovering faster matrix multiplication algorithms with reinforcement learning”, Nature, 2022 [3] https://gemini.google/jp/overview/image-generation/ https://finance.yahoo.com/news/gm-unveils-eyes-off-self-driving-conversational-google-ai-for-its-cars-at-tech-event-151049822.html https://en.wikipedia.org/wiki/ChatGPT#/media/File:ChatGPT-Logo.svg ChatGPT 自動運転 科学的発見 [2] Text-to-Image [3] AIコーディング https://www.claude.com/product/claude-code 機械学習は大人気 我々は大きい問題に注目しがち 機械学習を小さい要素に適用できないか? 学習型データ構造 (=機械学習で強化されたデータ構造)

Slide 5

Slide 5 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 5 学習型データ構造の始祖 SIGMOD 2019 Tutorial: http://people.csail.mit.edu/kraska/pub/sigmod19tutorialpart2.pdf 提唱者: Tim Kraska (MIT) Tim Kraska, Alex Beutel, Ed H. Chi, Jeffrey Dean, Neoklis Polyzotis, “The Case for Learned Index Structures”, SIGMOD 2018

Slide 6

Slide 6 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 6 学習型データ構造の始祖 SIGMOD 2019 Tutorial: http://people.csail.mit.edu/kraska/pub/sigmod19tutorialpart2.pdf 提唱者: Tim Kraska (MIT) Tim Kraska, Alex Beutel, Ed H. Chi, Jeffrey Dean, Neoklis Polyzotis, “The Case for Learned Index Structures”, SIGMOD 2018

Slide 7

Slide 7 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 7 本トークでは、以下をカバーします どんな種類のデータ構造があるのか? どのようなML技術が使われるのか? 何がどの程度出来るのか? CVやLLMなどの応用に適用できるのか?

Slide 8

Slide 8 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 8 アウトライン 1. 一次元インデクス 2. 多次元インデクス 3. ブルームフィルタ 4. 近似最近傍探索 5. 議論

Slide 9

Slide 9 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 9 アウトライン 1. 一次元インデクス 2. 多次元インデクス 3. ブルームフィルタ 4. 近似最近傍探索 5. 議論

Slide 10

Slide 10 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 10 3 5 12 13 16 19 23 23 25 29 Sorted array x Query: 13 in x? Binary search, B-Tree, etc std::vector x (sorted) or std::flat_set x in c++23 ➢ std::lower_bound ➢ find 一次元インデクス

Slide 11

Slide 11 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 11 3 5 12 13 16 19 23 23 25 29 Sorted array x Query: 13 in x? Binary search, B-Tree, etc std::vector x (sorted) or std::flat_set x in c++23 ➢ std::lower_bound ➢ find 一次元インデクス

Slide 12

Slide 12 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 12 3 5 12 13 16 19 23 23 25 29 Sorted array x Query: 13 in x? Binary search, B-Tree, etc std::vector x (sorted) or std::flat_set x in c++23 ➢ std::lower_bound ➢ find 一次元インデクス

Slide 13

Slide 13 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 13 3 5 12 13 16 19 23 23 25 29 Sorted array x Query: 13 in x? Binary search, B-Tree, etc std::vector x (sorted) or std::flat_set x in c++23 ➢ std::lower_bound ➢ find 一次元インデクス 𝑂 log 𝑁 で速い。しかしデータ分布を無視 MLを使って性能向上できないか?

Slide 14

Slide 14 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 14 学習型一次元インデクス 3 5 12 13 16 19 23 23 25 29 Sorted array x 1 2 3 4 5 6 7 8 9 10 Position Query: 13 in x?

Slide 15

Slide 15 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 15 学習型一次元インデクス 3 5 12 13 16 19 23 23 25 29 Sorted array x 1 2 3 4 5 6 7 8 9 10 Position Position Sorted array x (12, 3) (13, 4) Query: 13 in x?

Slide 16

Slide 16 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 16 学習型一次元インデクス 3 5 12 13 16 19 23 23 25 29 Sorted array x 1 2 3 4 5 6 7 8 9 10 Position Position Sorted array x (12, 3) (13, 4) もし pos = f(query) というモデルを訓練 できたら、4 ∼ f(13) と推定できそう Query: 13 in x? f

Slide 17

Slide 17 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 17 学習型一次元インデクス 3 5 12 13 16 19 23 23 25 29 Sorted array x 1 2 3 4 5 6 7 8 9 10 Position ➢ 予測値の周りで二分探索して微修正:13 vs [13, 16, 19] ➢ 結果に誤差はナシ Query: 13 in x? 学習型(一次元)インデクス 訓練 ➢ (3, 1), (5, 2), …でfを訓練 推論 ➢ 予測 pos = f(query) ➢ 結果のposを微修正 13 4.8 予測 4.8 = f(13) f

Slide 18

Slide 18 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 18 学習型一次元インデクス 3 5 12 13 16 19 23 23 25 29 Sorted array x 1 2 3 4 5 6 7 8 9 10 Position ➢ 予測値の周りで二分探索して微修正:13 vs [13, 16, 19] ➢ 結果に誤差はナシ Query: 13 in x? 学習型(一次元)インデクス 訓練 ➢ (3, 1), (5, 2), …でfを訓練 推論 ➢ 予測 pos = f(query) ➢ 結果のposを微修正 13 4.8 予測 4.8 = f(13) f データ分布を利用できる fをどう選ぶ? fをどう訓練する?

Slide 19

Slide 19 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 19 学習型一次元インデクス 最初に提案された基本的なモデル:Recursive Model Index (RMI) ➢ モデルを階層的に配置 ➢ それぞれのモデルは、B-TreeかNeural Network ➢ 深い理論分析は無し Kraska+, “The Case for Learned Index Structures”, SIGMOD 2018

Slide 20

Slide 20 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 学習型一次元インデクス ALEX ➢ RMIは静的だった(データ削除不可) ➢ 「ギャップ」を導入し、アップデート可 ➢ 静的な構造の提案の後、 それを動的にするのはよく使われる戦法 Ding+, “ALEX: An Updatable Adaptive Learned Index”, SIGMOD 2020 20

Slide 21

Slide 21 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 学習型一次元インデクス PGM-index ➢ 再帰的な区分線形モデル ➢ 強い理論的背景 ➢ 実用上速い。イケてるパッケージ Ferragina and Vinciguerra, “The PGM-index: a fully-dynamic compressed learned index with provable worst-case bounds”, VLDB 2020 良いスライド: https://pgm.di.unipi.it/slides-pgm-index-vldb.pdf. 本講演のスタイルはこのスライドにインスパイアされています 推定 微修正 21

Slide 22

Slide 22 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 22 学習型一次元インデクス 3 5 12 13 16 19 23 23 25 29 Sorted array x Query: 13 in x? Binary search, B-Tree, etc std::flat_map x / std::flat_map x ➢ ちなみに、setだけでなくmapも同様に可能 ➢ しばしば、「キー ポインタ」の形で議論(DB的?) “dog” “cat” “horse” Key Value 3 “dog” 5 “cat 12 “horse” …

Slide 23

Slide 23 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 23 学習型一次元インデクス 3 5 12 13 16 19 23 23 25 29 Sorted array x Query: 13 in x? std::flat_map x / std::flat_map x ➢ ちなみに、setだけでなくmapも同様に可能 ➢ しばしば、「キー ポインタ」の形で議論(DB的?) “dog” “cat” “horse” Key Value 3 “dog” 5 “cat 12 “horse” …

Slide 24

Slide 24 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 24 アウトライン 1. 一次元インデクス 2. 多次元インデクス 3. ブルームフィルタ 4. 近似最近傍探索 5. 議論

Slide 25

Slide 25 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 多次元インデクス 25 x y 𝐷次元点の集合 (ここでは𝐷 = 2)

Slide 26

Slide 26 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 多次元インデクス 26 x y 𝐷次元点の集合 (ここでは𝐷 = 2) クエリ: ➢ 直交領域 タスク: ➢ 領域中の全点列挙

Slide 27

Slide 27 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 多次元インデクス 27 x y 𝐷次元点の集合 (ここでは𝐷 = 2) boost::geometry::rtree https://www.boost.org/doc/libs/latest/libs/geometry/doc/html/g eometry/spatial_indexes/creation_and_modification.html クエリ: ➢ 直交領域 タスク: ➢ 領域中の全点列挙

Slide 28

Slide 28 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 多次元インデクス 28 x y boost::geometry::rtree https://www.boost.org/doc/libs/latest/libs/geometry/doc/html/g eometry/spatial_indexes/creation_and_modification.html 多次元インデクスは今でも難しい問題(特に大きい𝐷) 機械学習を用いてその性能を向上できないか? 𝐷次元点の集合 (ここでは𝐷 = 2) クエリ: ➢ 直交領域 タスク: ➢ 領域中の全点列挙

Slide 29

Slide 29 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 学習型多次元インデクス 29 Nathan+, “Learning multidimensional indexes”, SIGMOD 2020 Flood ➢ 構築 ✓ 空間をセルに分割 ✓ 各セル内のデータをある軸に 関してソート ➢ 推論 ✓ 絞り込み+二分探索+スキャン ➢ どこが機械学習? ✓ 推論は決定的 ✓ ハイパラ(セルサイズ)の 選択に訓練データを用いる

Slide 30

Slide 30 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 学習型多次元インデクス 30 Hidaka and Matsui, “FlexFlood: Efficiently Updatable Learned Multi-dimensional Index”, NeurIPS WS 2024 FlexFlood ➢ Flood(に限らず学習型データ構造全て)はデータ更新が大変 ➢ データ更新 分布更新 セル中のデータ数がいびつに 推論が遅く ➢ Floodに対する効果的なデータ更新の提案 ✓ データ更新後も、推論が高速 ✓ 更新が遅くないことを理論的(償却計算量)に示す

Slide 31

Slide 31 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 31 アウトライン 1. 一次元インデクス 2. 多次元インデクス 3. ブルームフィルタ 4. 近似最近傍探索 5. 議論

Slide 32

Slide 32 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 32 ブルームフィルタ ➢ 集合を近似的に保持する確率型データ構造 ➢ std::setのようなもの ➢ データそのものは保持しないのでメモリ効率がよい。例えば10 bit/item ➢ メンバーシップ判定が超高速 ➢ ブルームフィルタはBoost 1.89+にて実装された // 5 hashes per item. 1000000-bit array. boost::bloom::filter f(1'000'000); // Similar to std::set f.insert(“dog”); f.insert(“cat”); // Always correct assert(f.may_contain(“dog”) == true); if(f.may_contain(“rabbit”)) { // Likely false //... } 集合に含まれる要素に関して、 may_contain は常に正しい 集合に含まれない要素に関し、 may_containは間違いうる

Slide 33

Slide 33 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 33 ブルームフィルタ 0 0 0 0 0 0 0 0 0 0 0 0 𝐵-bit array

Slide 34

Slide 34 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 34 ブルームフィルタ 0 0 0 0 0 0 0 0 0 0 0 0 Insert “dog” 𝐵-bit array

Slide 35

Slide 35 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 35 ブルームフィルタ 0 0 0 0 0 0 0 0 1 0 0 0 Insert “dog” ℎ1 "dog" = 9 𝐵-bit array ハッシュ関数 ℎ𝑘 : item ↦ 𝑏 ∈ 1, … , 𝐵

Slide 36

Slide 36 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 36 ブルームフィルタ 0 0 0 1 0 0 0 0 1 0 0 0 Insert “dog” ℎ2 "dog" = 4 ℎ1 "dog" = 9 𝐵-bit array ハッシュ関数 ℎ𝑘 : item ↦ 𝑏 ∈ 1, … , 𝐵

Slide 37

Slide 37 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 37 ブルームフィルタ 0 0 0 1 0 0 0 0 1 0 0 0 𝐵-bit array

Slide 38

Slide 38 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 38 ブルームフィルタ 0 0 0 1 0 0 0 0 1 0 0 0 Insert “cat” 𝐵-bit array

Slide 39

Slide 39 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 39 ブルームフィルタ 0 0 0 1 0 1 0 0 1 0 0 0 ℎ1 "cat" = 6 Insert “cat” 𝐵-bit array

Slide 40

Slide 40 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 40 ブルームフィルタ 0 0 0 1 0 1 0 0 1 0 1 0 ℎ1 "cat" = 6 ℎ2 "cat" = 11 Insert “cat” 𝐵-bit array

Slide 41

Slide 41 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 41 0 0 0 1 0 1 0 0 1 0 1 0 𝐵-bit array ブルームフィルタ

Slide 42

Slide 42 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 42 0 0 0 1 0 1 0 0 1 0 1 0 𝐵-bit array ブルームフィルタ “dog”と“cat”を 表現

Slide 43

Slide 43 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 43 ブルームフィルタ 0 0 0 1 0 1 0 0 1 0 1 0 𝐵-bit array Contain “dog”? “dog”と“cat”を 表現

Slide 44

Slide 44 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 44 ブルームフィルタ 0 0 0 1 0 1 0 0 1 0 1 0 𝐵-bit array Contain “dog”? ℎ2 "dog" = 4 ℎ1 "dog" = 9 ➢ 全ビットが1 ➢ “yes”と答える “dog”と“cat”を 表現

Slide 45

Slide 45 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 45 ブルームフィルタ 0 0 0 1 0 1 0 0 1 0 1 0 𝐵-bit array Contain “rabbit”? “dog”と“cat”を 表現

Slide 46

Slide 46 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 46 ブルームフィルタ 0 0 0 1 0 1 0 0 1 0 1 0 𝐵-bit array Contain “rabbit”? ℎ1 "rabbit" = 2 ℎ2 "rabbit" = 11 ➢ 0のビットがある ➢ “no”と答える “dog”と“cat”を 表現

Slide 47

Slide 47 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 47 ブルームフィルタ 0 0 0 1 0 1 0 0 1 0 1 0 𝐵-bit array Contain “frog”? “dog”と“cat”を 表現

Slide 48

Slide 48 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 48 ブルームフィルタ 0 0 0 1 0 1 0 0 1 0 1 0 𝐵-bit array Contain “frog”? ℎ2 "frog" = 9 ℎ1 "frog" = 11 ➢ 全ビットが1 ➢ “yes”と答える 間違い!ハッシュの衝突 “dog”と“cat”を 表現

Slide 49

Slide 49 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 49 ブルームフィルタ ブルームフィルタ(BF)の特長の2つの解釈 BFはアイテム集合𝒮を保持するとする ➢ クエリ𝑥 ∈ 𝒮に対し、BFは常に正しく答える(“yes”) ➢ クエリ𝑦 ∉ 𝒮に対し、BFは間違えるかもしれない (“no”と答えるべきだが、時々“yes”と答える) ➢ もしBFが“no”と答えれば、それは必ず正しい ➢ もしBFが“yes”と答えれば、それは間違っているかも 要素に注目 返答に注目 同じこと

Slide 50

Slide 50 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 50 ブルームフィルタ ブルームフィルタ(BF)の特長の2つの解釈 BFはアイテム集合𝒮を保持するとする ➢ クエリ𝑥 ∈ 𝒮に対し、BFは常に正しく答える(“yes”) ➢ クエリ𝑦 ∉ 𝒮に対し、BFは間違えるかもしれない (“no”と答えるべきだが、時々“yes”と答える) ➢ もしBFが“no”と答えれば、それは必ず正しい ➢ もしBFが“yes”と答えれば、それは間違っているかも 要素に注目 返答に注目 同じこと BFは強い。しかしデータ分布を完全に無視 MLでBFの性能を向上できるか?

Slide 51

Slide 51 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 51 学習型ブルームフィルタ Kraska+, “The Case for Learned Index Structures”, SIGMOD 2018 (1) クエリが集合に含まれるかどうかを 判定するMLモデルを準備 (2) クエリに対し、集合に含まれるか どうかをMLモデルが推定 (3) もしMLのスコアが低ければ、BFを適用 ➢ オリジナルのLearned Bloom Filter (LBF) ➢ MLモデルを使うと、総合性能が良くなる(総メモリコスト vs 擬陽性率) ➢ 最後にBFを通すので、BFの特性を維持する(“no”と言えばそれは正しい)

Slide 52

Slide 52 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 52 学習型ブルームフィルタ Learned Bloom Filter (LBF) [Kraska+, SIGMOD 2018] Sandwiched LBF Mitzenmacher, “A model for learned bloom filters and optimizing by sandwiching”, NeurIPS 2018 事前にBFするのも良い

Slide 53

Slide 53 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 53 学習型ブルームフィルタ Learned Bloom Filter (LBF) [Kraska+, SIGMOD 2018] Partitioned Learned Bloom Filter (PLBF) ➢ Vaidya+, “Partitioned learned bloom filters”, ICLR 2021 ➢ Sato and Matsui, “Fast Partitioned Learned Bloom Filters”, NeurIPS 2023 ➢ いくつかBFを用意 ➢ MLスコアにより、 使うものを選ぶ

Slide 54

Slide 54 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 54 学習型ブルームフィルタ LBF Sandwiched LBF PLBF 一般化 Cascaded LBF (CLBF) Sato and Matsui, “Cascaded Learned Bloom Filter for Optimal Model-Filter Size Balance and Fast Rejection”, arXiv 2025

Slide 55

Slide 55 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 55 アウトライン 1. 一次元インデクス 2. 多次元インデクス 3. ブルームフィルタ 4. 近似最近傍探索 5. 議論

Slide 56

Slide 56 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 56 近似最近傍探索 0.23 3.15 0.65 1.43 Search 0.20 3.25 0.72 1.68 𝒙74 argmin 𝑛∈ 1,2,…,𝑁 𝒒 − 𝒙𝑛 2 2 Result 𝒙1 , 𝒙2 , … , 𝒙𝑁 𝒙𝑛 ∈ ℝ𝐷 ➢ 様々な方式:グラフ、転置インデクス、量子化、などなど ➢ 私達のチュートリアル [CVPR2020], [CVPR2023] [CVPR2020] Matsui, Yamaguchi, and Wang, “Image Retrieval in the Wild”, CVPR 2020 Tutorial [CVPR2023] Matsui, Aumüller, and Xiao, “Neural Search in Action ”, CVPR 2023 Tutorial

Slide 57

Slide 57 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 57 近似最近傍探索 最も基本的なベクトル量子化 𝒄1 𝒄3 𝒄2 𝒄4 𝒄5 𝒄6 𝒄7 1.02 0.73 0.56 1.37 1.37 0.72 𝒙 ほとんど言及されないが、近似最近傍探索の技術学習型データ構造そのもの?? 近似最近傍探索と学習型データ構造の技術の交流があるとよさそう 𝑞 𝒙 = argmin 𝑘∈ 1,2,…,𝐾 𝒙 − 𝒄𝑘 2 2 ハイパーパラメータ 𝒄𝑘 𝑘=1 𝐾 は訓練 データから得られると定式化できる Douze, “Machine learning and high dimensional vector search”, arXiv 2025 In their seminal work The case for learned indexing structures [32], Kraska et al. introduced a series of ML based algorithms to speed up classical indexing structures like hash tables and B- trees. … However, 7 years later, it is striking that ML has had very little impact on VS. No ML based method appears in the current VS benchmarks at any scale [2, 47, 46]. The most advanced ML tool that is widely used for VS is the k-means clustering algorithm. There is no deep learning, no use of high-capacity networks. Matthijs Douze An original inventor of faiss

Slide 58

Slide 58 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 58 アウトライン 1. 一次元インデクス 2. 多次元インデクス 3. ブルームフィルタ 4. 近似最近傍探索 5. 議論

Slide 59

Slide 59 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 59 ML技術をデータ構造にどう適用するか? それぞれの方式が独立に色々やっている 統一した理論、分類法、方法論があると良さそう 古典的なデータ構造 とアルゴリズム 𝑥 𝑓 𝑥; 𝜃 𝑥 𝑓 𝑥; 𝜃 ML model 𝑥 𝑓 𝑥; 𝜃 ML model 𝑥 𝑓 𝑥; 𝜃 ML model アプローチ1: MLモデルを、𝑓の前か 後ろに置く アプローチ2: 𝑓の一部や全部を MLモデルで置き換える アプローチ3: データ構造は古典で、 ハイパラ𝜃をMLで求める e.g., ブルームフィルタ e.g., 一次元インデクス e.g., 多次元インデクス、 近似最近傍探索 インプット ハイパラ

Slide 60

Slide 60 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 60 どのようなデータ構造を対象とすべきか? アドホックにデータ構造が選ばれている? MLを本当に適用すべきデータ構造は何なのか? 高次元データについてもっと考えるとよさそう? 現在は近傍探索のみ。 https://en.wikipedia.org/wiki/List_of_data_structures

Slide 61

Slide 61 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 61 コンピュータビジョンへの応用 応用対象のドメインがあったほうがよさそう?CVとか? Müller+, “Instant Neural Graphics Primitives with a Multiresolution Hash Encoding”, SIGGRAPH 2022 ➢ NeRF高速化の文脈では実は様々なデータ構造が提案されていた ➢ 学習型データ構造との関係?

Slide 62

Slide 62 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 62 Qin+, “LangSplat: 3D Language Gaussian Splatting”, CVPR 2024 ➢ 言語場 = 三次元インデクス + 高次元データ? ➢ 学習型データ構造を言語場上の処理の高速化に活かせないか? コンピュータビジョンへの応用 応用対象のドメインがあったほうがよさそう?CVとか?

Slide 63

Slide 63 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 63 Qin+, “LangSplat: 3D Language Gaussian Splatting”, CVPR 2024 ➢ 言語場 = 三次元インデクス + 高次元データ? ➢ 学習型データ構造を言語場上の処理の高速化に活かせないか? コンピュータビジョンへの応用 応用対象のドメインがあったほうがよさそう?CVとか? コンピュータビジョン 学習型データ構造 輸入 ➢ 学習型データ構造をCV問題に適用 輸出 ➢ CV問題を念頭に置き学習型データ構造を設計

Slide 64

Slide 64 text

https://bit.ly/4orJR5s Slides: https://bit.ly/4orJR5s 64 博士課程学生募集中! ➢ 松井研では2027/4以降に入学する博士学生を募集しています (現M1学生) ➢ 研究領域:コンピュータビジョン、データベース、機械学習、etc ✓ CV (学習型)データ構造 ✓ 大規模処理・高速化・省メモリ化 ➢ 求める人材 ✓ 研究大好き(最重要) ✓ トップ会議・論文誌採択経験があると◎ ➢ 応募希望の方は必ず指導教員と 相談した上で松井まで連絡を 研究室ブログで雰囲気が わかるかもしれません https://mti-lab.github.io/blog/