View
1.652
Download
1
Category
Preview:
DESCRIPTION
最近傍探索の問題と手法についての説明です。木構造や表構造などを使用するkd木探索、LSHの手法について説明します。次元の呪いという問題を解決するための直積量子化(Product Quantization)も含めます。
Citation preview
Nearest Neighbor Search(NNS)
NGUYEN ANH TUAN
Bachelor 4th yearThe Engineering Falcuty, the University of Tokyo
May 14, 2014
NGUYEN ANH TUAN Group study memo 1 / 45
自己紹介
2008年 来日
2009年~2012年 兵庫県明石高専卒論:「エッジ方向のヒストグラムを利用した電子透かしの手法」(対象:文章画像)
2012年 東大 2年に編入
好きなプログラミング言語:C/C++、Java、最近はRubyを触っています。
NGUYEN ANH TUAN Group study memo 2 / 45
本日の流れ
1 概要問題の定義定義の解説空間と距離次元課題:次元の呪縛
関連問題k近傍法ボロノイ図近似最近傍探索
2 アルゴリズム線形探索kd木Locality Sensitive Hashingその他
3 最近の研究Vector QuantizationProduct Quantization最近傍探索との関連
4 まとめ
NGUYEN ANH TUAN Group study memo 3 / 45
問題の定義
Nearest Neighbor Search(NNS problem)
D次元ユークリッド空間RDにおいて
ベクトル x =(x1, x2, . . . xD
)距離 d
(x,y
)=
√(x1 − y1)2 + (x2 − y2)2 + . . .+ (xD − yD)2
と表記すると、
入力:部分集合Y ⊂ RDとベクトル x ∈ RD
出力:Yの要素の中で xと “一番近い”要素NN(x)。
要するに、入力(Y,x
)が与えられた時、
NN(x) = argminy∈Y
d(x,y) (1)
を求める問題
NGUYEN ANH TUAN Group study memo 4 / 45
解説
空間と距離
高次元と低次元
NGUYEN ANH TUAN Group study memo 5 / 45
ユークリッド空間内の距離
ユークリッド距離→直感的、通常の距離
→Minkowski距離 dp(x,y) =( D∑i=1
|xi − yi|p) 1
p
→ p = 2の時、ユークリッド距離
p = 1の時、マンハッタン距離
dM(x,y) =D∑i=1
|xi − yi| (2)
Question: p > 2のMinkowski距離を利用するか?
NGUYEN ANH TUAN Group study memo 6 / 45
ユークリッド空間内の距離
ユークリッド距離→直感的、通常の距離
→Minkowski距離 dp(x,y) =( D∑i=1
|xi − yi|p) 1
p
→ p = 2の時、ユークリッド距離
p = 1の時、マンハッタン距離
dM(x,y) =D∑i=1
|xi − yi| (2)
Question: p > 2のMinkowski距離を利用するか?
NGUYEN ANH TUAN Group study memo 6 / 45
ユークリッド空間内の距離
ユークリッド距離→直感的、通常の距離
→Minkowski距離 dp(x,y) =( D∑i=1
|xi − yi|p) 1
p
→ p = 2の時、ユークリッド距離
p = 1の時、マンハッタン距離
dM(x,y) =D∑i=1
|xi − yi| (2)
Question: p > 2のMinkowski距離を利用するか?
NGUYEN ANH TUAN Group study memo 6 / 45
Hamming Space
Hamming Space:H = {0, 1}の時、すべての長さDのビット列からなる空間をD次元Hamming Space HD
Hamming距離→二つのビット列の相違度
dH(x,y) =∣∣{i|xi ̸= yi}
∣∣ (3)
例: 00011と 00101の相違度が 2
NGUYEN ANH TUAN Group study memo 7 / 45
Hamming Space
Hamming Space:H = {0, 1}の時、すべての長さDのビット列からなる空間をD次元Hamming Space HD
Hamming距離→二つのビット列の相違度
dH(x,y) =∣∣{i|xi ̸= yi}
∣∣ (3)
例: 00011と 00101の相違度が 2
NGUYEN ANH TUAN Group study memo 7 / 45
Hamming Space
Hamming Space:H = {0, 1}の時、すべての長さDのビット列からなる空間をD次元Hamming Space HD
Hamming距離→二つのビット列の相違度
dH(x,y) =∣∣{i|xi ̸= yi}
∣∣ (3)
例: 00011と 00101の相違度が 2
NGUYEN ANH TUAN Group study memo 7 / 45
解説
空間と距離
高次元と低次元
NGUYEN ANH TUAN Group study memo 8 / 45
高次元と低次元
参考文献 1
定理 1(引用)
Let F is an arbitrary distribution of n points (from a database of Nuniformly distributed points), the distance function is an k-normMinkowski distance function inside an Euclidean space RD. Therefore,
Ck ≤ limD→+∞
E
[dmax − dmin
D1/k−1/2
]≤ (N − 1)Ck (4)
, where dmax, dmin are the farthest and nearest distance from a point in Fto the query point, respectively. Ck is a constant value that depends on k.
1A. Hinneburg et al , “What Is the Nearest Neighbor in HighDimensional Spaces?”, Proceedings of the 26th International Conferenceon Very Large Data Bases, pp.506-515, 2000
NGUYEN ANH TUAN Group study memo 9 / 45
高次元と低次元
k > 2のMinkowski距離 dk(x,y)を利用した時、
空間の次元Dを増加させると、
dmax − dminが 0に収束
→高次元で k > 2のMinkowski距離の時、データセットの中の最短距離と最長距離はほぼ一致してしまう
NGUYEN ANH TUAN Group study memo 10 / 45
高次元と低次元
k > 2のMinkowski距離 dk(x,y)を利用した時、
空間の次元Dを増加させると、
dmax − dminが 0に収束
→高次元で k > 2のMinkowski距離の時、データセットの中の最短距離と最長距離はほぼ一致してしまう
NGUYEN ANH TUAN Group study memo 10 / 45
高次元と低次元
k > 2のMinkowski距離 dk(x,y)を利用した時、
空間の次元Dを増加させると、
dmax − dminが 0に収束
→高次元で k > 2のMinkowski距離の時、データセットの中の最短距離と最長距離はほぼ一致してしまう
NGUYEN ANH TUAN Group study memo 10 / 45
高次元と低次元
k > 2のMinkowski距離 dk(x,y)を利用した時、
空間の次元Dを増加させると、
dmax − dminが 0に収束
→高次元で k > 2のMinkowski距離の時、データセットの中の最短距離と最長距離はほぼ一致してしまう
NGUYEN ANH TUAN Group study memo 10 / 45
次元の呪縛
ざっくり見ると、普通な問題
一番簡単な手法:線形探索→ 時間計算量O(nD)
次元の一定の値を超えると、いかなるアルゴリズムでも線形探索 (全探索)と等価である。
NGUYEN ANH TUAN Group study memo 11 / 45
次元の呪縛
ざっくり見ると、普通な問題
一番簡単な手法:線形探索→ 時間計算量O(nD)
次元の一定の値を超えると、いかなるアルゴリズムでも線形探索 (全探索)と等価である。
NGUYEN ANH TUAN Group study memo 11 / 45
関連問題
k近傍法
ボロノイ図
近似最近傍探索 (ANN)
NGUYEN ANH TUAN Group study memo 12 / 45
k近傍法の例
学習用のデータが二つカテゴリ A,B に分けた時、問い合わせデータ “?”はどのカテゴリに入るか?→データの分類問題
アルゴリズム:
1 kを適切に選ぶ2 “?”と学習用のデータとの距離を計算
3 距離でデータを並び替える4 学習用のデータから k個だけを選別する。選択されたデータで多数決投票を行う
5 最多となるデータのカテゴリが、“?”の推測されたカテゴリとなる。
NGUYEN ANH TUAN Group study memo 13 / 45
k近傍法の例
学習用のデータが二つカテゴリ A,B に分けた時、問い合わせデータ “?”はどのカテゴリに入るか?→データの分類問題
アルゴリズム:
1 kを適切に選ぶ2 “?”と学習用のデータとの距離を計算
3 距離でデータを並び替える
4 学習用のデータから k個だけを選別する。選択されたデータで多数決投票を行う
5 最多となるデータのカテゴリが、“?”の推測されたカテゴリとなる。
NGUYEN ANH TUAN Group study memo 13 / 45
k近傍法の例
学習用のデータが二つカテゴリ A,B に分けた時、問い合わせデータ “?”はどのカテゴリに入るか?→データの分類問題
アルゴリズム:
1 kを適切に選ぶ2 “?”と学習用のデータとの距離を計算
3 距離でデータを並び替える4 学習用のデータから k個だけを選別する。選択されたデータで多数決投票を行う
5 最多となるデータのカテゴリが、“?”の推測されたカテゴリとなる。
NGUYEN ANH TUAN Group study memo 13 / 45
関連問題
k近傍法
ボロノイ図
近似最近傍探索 (ANN)
NGUYEN ANH TUAN Group study memo 14 / 45
ボロノイ図:2点のみ
→ A,Bそれぞれに近い領域に分割
NGUYEN ANH TUAN Group study memo 15 / 45
ボロノイ図:2点のみ
→ A,Bそれぞれに近い領域に分割
NGUYEN ANH TUAN Group study memo 15 / 45
ボロノイ図:3点の場合
NGUYEN ANH TUAN Group study memo 16 / 45
ボロノイ図
NGUYEN ANH TUAN Group study memo 17 / 45
関連問題
k近傍法
ボロノイ図
近似最近傍探索 (ANN)
NGUYEN ANH TUAN Group study memo 18 / 45
近似最近傍探索 (ANN)
次元の呪いへの対策
正確な解を求めるよりも、ある確率以上でそのベクトルが最近傍となるものを求めたい。
NGUYEN ANH TUAN Group study memo 19 / 45
手法
線形探索
kd木
Locality Sensitive Hashing(LSH)
その他
NGUYEN ANH TUAN Group study memo 20 / 45
線形探索
すべてのデータをスキャンして、クエリベクトルとの距離を計算する。
計算した距離の中の最小値とそれに対する位置を求める。
時間計算量O(nD)、追加メモリなし
NGUYEN ANH TUAN Group study memo 21 / 45
手法
線形探索
kd木
Locality Sensitive Hashing(LSH)
その他
NGUYEN ANH TUAN Group study memo 22 / 45
kd木
二分木の探索→平均時間計算量:O(D log n)、最悪時 (偏りの木):O(nD)
空間分割を表現する。
(a) 二次元空間データ (b) kd木
NGUYEN ANH TUAN Group study memo 23 / 45
kd木:探索アルゴリズム
1 二分探索木と同じ探索になるが、
2 一致するものではなく、近いものをもとめる。
3 葉へ到着する直前のノードを暫定的な最近傍 temp
4 back trackを行い、tempから rootへ戻る道で、queryとより近いものがあれば、tempを更新する。
NGUYEN ANH TUAN Group study memo 24 / 45
kd木:次元の呪い
平衡木にすれば、1~3の平均時間計算量がO(D log n)になるが、その時でも 4の計算量が生じる。
次元の呪い:参考文献 2では、最悪時 kd木での探索の時間計算量はO(Dn1−1/D)となる。
D → +∞の時 Dn1−1/D → Dn (5)
2D.T. Lee, C. K. Wong, “Worst-case analysis for region and partialregion searches in multidimensional binary search trees andbalanced quad trees”, Acta Informatica 13. XII. 1977, Volume 9, Issue 1,pp 23-29
NGUYEN ANH TUAN Group study memo 25 / 45
kd木:次元の呪い
平衡木にすれば、1~3の平均時間計算量がO(D log n)になるが、その時でも 4の計算量が生じる。
次元の呪い:参考文献 2では、最悪時 kd木での探索の時間計算量はO(Dn1−1/D)となる。
D → +∞の時 Dn1−1/D → Dn (5)
2D.T. Lee, C. K. Wong, “Worst-case analysis for region and partialregion searches in multidimensional binary search trees andbalanced quad trees”, Acta Informatica 13. XII. 1977, Volume 9, Issue 1,pp 23-29
NGUYEN ANH TUAN Group study memo 25 / 45
kd木:次元の呪い
平衡木にすれば、1~3の平均時間計算量がO(D log n)になるが、その時でも 4の計算量が生じる。
次元の呪い:参考文献 2では、最悪時 kd木での探索の時間計算量はO(Dn1−1/D)となる。
D → +∞の時 Dn1−1/D → Dn (5)
2D.T. Lee, C. K. Wong, “Worst-case analysis for region and partialregion searches in multidimensional binary search trees andbalanced quad trees”, Acta Informatica 13. XII. 1977, Volume 9, Issue 1,pp 23-29
NGUYEN ANH TUAN Group study memo 25 / 45
kd木:最悪時の例
NGUYEN ANH TUAN Group study memo 26 / 45
kd木:もう一つの問題点
暫定解を格納するメモリが生じる。→データを葉につめる。データを葉につめる。一個のデータを一つの箱にいれる。→箱の分け方?
NGUYEN ANH TUAN Group study memo 27 / 45
手法
線形探索
kd木
Locality Sensitive Hashing(LSH)
その他
NGUYEN ANH TUAN Group study memo 28 / 45
手法
線形探索
kd木
Locality Sensitive Hashing(LSH)
その他
NGUYEN ANH TUAN Group study memo 29 / 45
AESA
距離の三公理を使う。→距離の選択:Minkowski距離ならOK
アルゴリズム1 全データでペアの距離を計算する。2 表で計算結果をまとめる。3 距離の三公理と表のデータで最近傍になり得ないものを除去する。
→問題点:距離のデータを格納する表の作成に時間がかかる。探索時、蓄積データのためにメモリ量がかかる。→LAESA:蓄積データの一部のみを使用する。
NGUYEN ANH TUAN Group study memo 30 / 45
AESA
距離の三公理を使う。→距離の選択:Minkowski距離ならOK
アルゴリズム1 全データでペアの距離を計算する。2 表で計算結果をまとめる。3 距離の三公理と表のデータで最近傍になり得ないものを除去する。
→問題点:距離のデータを格納する表の作成に時間がかかる。探索時、蓄積データのためにメモリ量がかかる。→LAESA:蓄積データの一部のみを使用する。
NGUYEN ANH TUAN Group study memo 30 / 45
AESA
距離の三公理を使う。→距離の選択:Minkowski距離ならOK
アルゴリズム1 全データでペアの距離を計算する。2 表で計算結果をまとめる。3 距離の三公理と表のデータで最近傍になり得ないものを除去する。
→問題点:距離のデータを格納する表の作成に時間がかかる。探索時、蓄積データのためにメモリ量がかかる。
→LAESA:蓄積データの一部のみを使用する。
NGUYEN ANH TUAN Group study memo 30 / 45
AESA
距離の三公理を使う。→距離の選択:Minkowski距離ならOK
アルゴリズム1 全データでペアの距離を計算する。2 表で計算結果をまとめる。3 距離の三公理と表のデータで最近傍になり得ないものを除去する。
→問題点:距離のデータを格納する表の作成に時間がかかる。探索時、蓄積データのためにメモリ量がかかる。→LAESA:蓄積データの一部のみを使用する。
NGUYEN ANH TUAN Group study memo 30 / 45
ボロノイ分割
ボロノイ分割を行ってから、クエリベクトルはどのボロノイ領域になるかを調べて、その領域の母点を最近傍となる。
ボロノイ分割を行うのにO(n2D)の時間がかかる。
NGUYEN ANH TUAN Group study memo 31 / 45
最近の研究
Product Quantization3
3H. Jegou et al., “Product Quantization for Nearest NeighborSearch”, IEEE TRANSACTIONS ON PATTERN ANALYSIS ANDMACHINE INTELLIGENCE,VOL. 33, NO. 1,JANUARY 2011, pp 117-126
NGUYEN ANH TUAN Group study memo 32 / 45
Quantization
量子化
スカラ量子化
NGUYEN ANH TUAN Group study memo 33 / 45
Quantization
量子化
スカラ量子化
NGUYEN ANH TUAN Group study memo 33 / 45
Vector Quantization
スカラ量子化→1次元データの表現 (数値だけ?)
ベクトル量子化
NGUYEN ANH TUAN Group study memo 34 / 45
Vector Quantization
スカラ量子化→1次元データの表現 (数値だけ?)
ベクトル量子化
NGUYEN ANH TUAN Group study memo 34 / 45
Vector Quantization
コードブック (codebook) C = {pi|0 ≤ i < k}量子器 (quantizer) Q : RD → C
x ∈ RDの時、Q(x) ∈ C
RDを k領域に分割する→ボロノイ図のイメージ
Q(x) = argminci∈C
d(x, ci) (6)
ボロノイ領域をVi = {x ∈ RD : Q(x) = ci}とすると、
ci = E[x|i] =∫Vi
p(x)xdx (7)
NGUYEN ANH TUAN Group study memo 35 / 45
Vector Quantization
コードブック (codebook) C = {pi|0 ≤ i < k}量子器 (quantizer) Q : RD → C
x ∈ RDの時、Q(x) ∈ C
RDを k領域に分割する→ボロノイ図のイメージ
Q(x) = argminci∈C
d(x, ci) (6)
ボロノイ領域をVi = {x ∈ RD : Q(x) = ci}とすると、
ci = E[x|i] =∫Vi
p(x)xdx (7)
NGUYEN ANH TUAN Group study memo 35 / 45
Vector Quantization
コードブック (codebook) C = {pi|0 ≤ i < k}量子器 (quantizer) Q : RD → C
x ∈ RDの時、Q(x) ∈ C
RDを k領域に分割する→ボロノイ図のイメージ
Q(x) = argminci∈C
d(x, ci) (6)
ボロノイ領域をVi = {x ∈ RD : Q(x) = ci}とすると、
ci = E[x|i] =∫Vi
p(x)xdx (7)
NGUYEN ANH TUAN Group study memo 35 / 45
Vector Quantization
コードブック (codebook) C = {pi|0 ≤ i < k}量子器 (quantizer) Q : RD → C
x ∈ RDの時、Q(x) ∈ C
RDを k領域に分割する→ボロノイ図のイメージ
Q(x) = argminci∈C
d(x, ci) (6)
ボロノイ領域をVi = {x ∈ RD : Q(x) = ci}とすると、
ci = E[x|i] =∫Vi
p(x)xdx (7)
NGUYEN ANH TUAN Group study memo 35 / 45
Vector Quantization
コードブックのサイズ k
各ベクトルを表現するのに ⌈log2 k⌉ビットが必要空間を k領域に分割→ k-means法の量子器
NGUYEN ANH TUAN Group study memo 36 / 45
Vector Quantization
コードブックのサイズ k
各ベクトルを表現するのに ⌈log2 k⌉ビットが必要
空間を k領域に分割→ k-means法の量子器
NGUYEN ANH TUAN Group study memo 36 / 45
Vector Quantization
コードブックのサイズ k
各ベクトルを表現するのに ⌈log2 k⌉ビットが必要空間を k領域に分割→ k-means法の量子器
NGUYEN ANH TUAN Group study memo 36 / 45
Vector Quantization:次元の呪い
コードブックのサイズ k
kはどのぐらいとれば良いか? → k ≈ exp(D)→次元が増えると、コードブックのサイズが指数的に増加
NGUYEN ANH TUAN Group study memo 37 / 45
Vector Quantization:次元の呪い
コードブックのサイズ k
kはどのぐらいとれば良いか?
→ k ≈ exp(D)→次元が増えると、コードブックのサイズが指数的に増加
NGUYEN ANH TUAN Group study memo 37 / 45
Vector Quantization:次元の呪い
コードブックのサイズ k
kはどのぐらいとれば良いか? → k ≈ exp(D)
→次元が増えると、コードブックのサイズが指数的に増加
NGUYEN ANH TUAN Group study memo 37 / 45
Vector Quantization:次元の呪い
コードブックのサイズ k
kはどのぐらいとれば良いか? → k ≈ exp(D)→次元が増えると、コードブックのサイズが指数的に増加
NGUYEN ANH TUAN Group study memo 37 / 45
Product Quantization
ベクトル量子化の欠点を補いたい→直積量子化
NGUYEN ANH TUAN Group study memo 38 / 45
Product Quantization
発想
64 bitのコードブック↔ log2 k = 64 ↔ k = 264
264個の整数型データを保存するのに、コードブックのサイズは 264 × 32[bit]≈ 64, 000, 000, 000, 000[GB]=64[Zettabyte]
例えば、各 ciを二つの 32ビットの ci1, ci2に分割すると、必要な個数は 2× 232 = 233個コードブックのサイズは 233 × 32[bit]≈ 32, 000[GB]=32[TB]
NGUYEN ANH TUAN Group study memo 39 / 45
Product Quantization
発想
64 bitのコードブック↔ log2 k = 64 ↔ k = 264
264個の整数型データを保存するのに、コードブックのサイズは
264 × 32[bit]≈ 64, 000, 000, 000, 000[GB]=64[Zettabyte]
例えば、各 ciを二つの 32ビットの ci1, ci2に分割すると、必要な個数は 2× 232 = 233個コードブックのサイズは 233 × 32[bit]≈ 32, 000[GB]=32[TB]
NGUYEN ANH TUAN Group study memo 39 / 45
Product Quantization
発想
64 bitのコードブック↔ log2 k = 64 ↔ k = 264
264個の整数型データを保存するのに、コードブックのサイズは 264 × 32[bit]≈ 64, 000, 000, 000, 000[GB]=64[Zettabyte]
例えば、各 ciを二つの 32ビットの ci1, ci2に分割すると、必要な個数は 2× 232 = 233個コードブックのサイズは 233 × 32[bit]≈ 32, 000[GB]=32[TB]
NGUYEN ANH TUAN Group study memo 39 / 45
Product Quantization
発想
64 bitのコードブック↔ log2 k = 64 ↔ k = 264
264個の整数型データを保存するのに、コードブックのサイズは 264 × 32[bit]≈ 64, 000, 000, 000, 000[GB]=64[Zettabyte]
例えば、各 ciを二つの 32ビットの ci1, ci2に分割すると、必要な個数は
2× 232 = 233個コードブックのサイズは 233 × 32[bit]≈ 32, 000[GB]=32[TB]
NGUYEN ANH TUAN Group study memo 39 / 45
Product Quantization
発想
64 bitのコードブック↔ log2 k = 64 ↔ k = 264
264個の整数型データを保存するのに、コードブックのサイズは 264 × 32[bit]≈ 64, 000, 000, 000, 000[GB]=64[Zettabyte]
例えば、各 ciを二つの 32ビットの ci1, ci2に分割すると、必要な個数は 2× 232 = 233個
コードブックのサイズは 233 × 32[bit]≈ 32, 000[GB]=32[TB]
NGUYEN ANH TUAN Group study memo 39 / 45
Product Quantization
発想
64 bitのコードブック↔ log2 k = 64 ↔ k = 264
264個の整数型データを保存するのに、コードブックのサイズは 264 × 32[bit]≈ 64, 000, 000, 000, 000[GB]=64[Zettabyte]
例えば、各 ciを二つの 32ビットの ci1, ci2に分割すると、必要な個数は 2× 232 = 233個コードブックのサイズは 233 × 32[bit]≈ 32, 000[GB]=32[TB]
NGUYEN ANH TUAN Group study memo 39 / 45
Product Quantization
コードブック (codebook) C = {pi|0 ≤ i < k}のD = log2 k次元の空間をm個Cjの子空間 (次元がD/m)に分割する。
C = C1 × C2 × . . .× Cm (8)
子量子器Qj : RD/m → Cj
子コードブックのサイズ
k∗ = 2Dm = 2
log2 km = k
1m (9)
総コードブックのサイズはmk1m
NGUYEN ANH TUAN Group study memo 40 / 45
Product Quantization
コードブック (codebook) C = {pi|0 ≤ i < k}のD = log2 k次元の空間をm個Cjの子空間 (次元がD/m)に分割する。
C = C1 × C2 × . . .× Cm (8)
子量子器Qj : RD/m → Cj
子コードブックのサイズ
k∗ = 2Dm = 2
log2 km = k
1m (9)
総コードブックのサイズはmk1m
NGUYEN ANH TUAN Group study memo 40 / 45
Searching algorithm(By H. Jegou et al.)
1 Indexing
2 Searching
NGUYEN ANH TUAN Group study memo 41 / 45
Indexing
前提条件:次元D、距離関数 d(x,y)
入力:ベクトル y ∈ RD
アルゴリズム1 yをQc(y)に量子化2 距離 r(y) = y −Qc(y)を計算3 r(y)をQp(r(y))に量子化。r(y)を uj(y), j = 1, 2, . . .mに分割。uj(y) → Qj(y)の対応づけ
4 (Q1, Q2, . . . Qm)をインデクスとする→転置インデクス
NGUYEN ANH TUAN Group study memo 42 / 45
Indexing
前提条件:次元D、距離関数 d(x,y)
入力:ベクトル y ∈ RD
アルゴリズム1 yをQc(y)に量子化2 距離 r(y) = y −Qc(y)を計算3 r(y)をQp(r(y))に量子化。r(y)を uj(y), j = 1, 2, . . .mに分割。uj(y) → Qj(y)の対応づけ
4 (Q1, Q2, . . . Qm)をインデクスとする→転置インデクス
NGUYEN ANH TUAN Group study memo 42 / 45
Searching algorithm(By H. Jegou et al.)
1 Indexing
2 Searching
NGUYEN ANH TUAN Group study memo 43 / 45
Searching
前提条件:次元D、距離関数 d(x,y)
入力:ベクトル x ∈ RD
出力:最近傍NN(x) ∈ RD
アルゴリズム1 yをQc(y)に量子化2 距離 r(y) = y −Qc(y)を計算3 r(y)をQp(r(y))に量子化。r(y)を uj(y), j = 1, 2, . . .mに分割。uj(y) → Qj(y)の対応づけ
4 (Q1, Q2, . . . Qm)をインデクスとする
NGUYEN ANH TUAN Group study memo 44 / 45
Searching
前提条件:次元D、距離関数 d(x,y)
入力:ベクトル x ∈ RD
出力:最近傍NN(x) ∈ RD
アルゴリズム1 yをQc(y)に量子化2 距離 r(y) = y −Qc(y)を計算3 r(y)をQp(r(y))に量子化。r(y)を uj(y), j = 1, 2, . . .mに分割。uj(y) → Qj(y)の対応づけ
4 (Q1, Q2, . . . Qm)をインデクスとする
NGUYEN ANH TUAN Group study memo 44 / 45
まとめ
最近傍探索問題空間と距離、次元・次元の呪いk近傍法、ボロノイ図、ANN
最近傍探索の手法木構造、表、ボロノイ図、ハッシュ
Product Quantization
VQ、PQ、直積、次元の分割
NGUYEN ANH TUAN Group study memo 45 / 45
Recommended