3. まえがき:何の論文? 3
プロダクト量子化を使ったベクトル最近傍探索の改良
データxi
クエリ
y
重心Cj
距離が一番近い要素を探す
2
argmin x y i
i
全探索は時間がかかるので、クラスタ分割。
クラスタ要素内を探索
2
argmin x y i
i C j
クラスタリングはk-meansが有名。
ベクトル量子化とも呼ばれる。
ベクトル量子化の問題点:
次元が高いと効率が悪くなる。次元の呪い。
4. まえがき:何の論文? 4
プロダクト量子化
ベクトル要素を分割。各分割した空間で量子化→次元の呪いを回避
例)次元6のベクトルを2分割
部分空間v1 部分空間v2
1 2 3 4 5 6 x x , x , x | x , x , x
1 C1
2 C1
3 C1
4 table[C1
部分空間v1
部分空間v2
C1
i C2
j
1 C2
2 C2
3C2
4
C2
C1
i] [C2
j]にx を登録。
クエリyを検索をする際は、
同様に分割・各軸で最近傍の重心インデックスを求めて、
同じテーブル内の要素を全探索(バケット探索)
シンプルだが考案されたのはTPAMI2011と最近のこと。
実際には、粗量子化(coarse quantization)を組み合わせる。
7. Optimized プロダクト量子化(CVPR2013)と提案手法7
量子化誤差を最小とするプロダクト量子化器Cと回転行列Rを求める
min
z Z
j
R c C
z Rc
j
2
,
⇒効率的に解くアルゴリズムがある
提案手法:クラスタ毎に回転行列を最適化
min
z Z
j
j
R c C
z R c
j
j
2
,
⇒粗量子化でセル内のサンプル少。
次元の呪いが発生する。
⇒粗量子化で2分割のPQを行う。回転行列も分割した空間毎に用意する。
z Z
j
j
j
j
min
1 2
R R c c C
z R c z R c
j j
j j
2
2
2 2
2
1
1 1
, , , 1 1
※2という値に理論的な根拠はない。