SlideShare a Scribd company logo
コンピュータビジョン
勉強会@関東

ICCV2013読み会
2014/2/23
@ketsumedo_yarou
1
論文
Title :
Joint Inverted Indexing
Author:
Yan Xia, Fang Wen
(University of Science and Technology of China),

Kaiming He, Jian Sun
(Microsoft Research Asia)
2
論文
Title :
Joint Inverted Indexing
学生.多分MSRAでイン
ターンで行った研究
Author:
Yan Xia, Fang Wen
(University of Science and Technology of China),

Kaiming He, Jian Sun
(Microsoft Research Asia)
3
論文
Title :
Joint Inverted Indexing
学生.多分MSRAでイン
ターンで行った研究
Author:
Yan Xia, Fang Wen
(University of Science and Technology of China),

Kaiming He, Jian Sun
Optimized Product
(Microsoft Research Asia)

Quantization の著者の方.

4
最近傍探索問題

𝑛
0.23

-0.1

0.4

1.4

0.5

1.4

1.3

-0.3

42.0

4.2

2.2

9.6

-2.4

9.1

0.0

12.3

0.2

0.4

2.3

𝐷

3.21

1.1

3.1

-12.5

𝒙

Query vector

𝒚1 𝒚2

・・・

4.5

𝒚𝑛

Database vectors

5
最近傍探索問題

𝑛
0.23

-0.1

0.4

1.4

𝐷

3.21
0.5

1.4

1.3

42.0

4.2

2.2

-2.4

9.1

12.3

0.2

0.4

1.1

3.1

-12.5

-0.3
9.6
0.0

Find a
similar 𝒚 𝑖

2.3

𝒙

Query vector

𝒚1 𝒚2

・・・

4.5

𝒚𝑛

Database vectors

6
最近傍探索問題

𝑛
0.23

-0.1

0.4

1.4

𝐷

3.21
0.5

1.4

1.3

42.0

4.2

2.2

-2.4

9.1

12.3

0.2

0.4

1.1

3.1

-12.5

-0.3
9.6
0.0

Find a
similar 𝒚 𝑖

2.3

𝒙

Query vector

・・・

𝒚1 𝒚2

4.5

𝒚𝑛

Database vectors

𝑦2 = argmin 𝑑(𝑥, 𝑦 𝑖 )
𝑦𝑖

7
近似最近傍探索問題
 厳密では無いが高い確率で最近傍探索

𝑛

0.23

-0.1

0.4

1.4

𝐷

3.21
0.5

1.4

1.3

42.0

4.2

2.2

-2.4

9.1

12.3

0.2

0.4

1.1

3.1

-12.5

-0.3
9.6
0.0

Find a
similar 𝒚 𝑖

2.3

𝒙

Query vector

・・・

𝒚1 𝒚2

4.5

𝒚𝑛

Database vectors

𝑦2 = argmin 𝑑(𝑥, 𝑦 𝑖 )
𝑦𝑖

8
近似最近傍探索問題の最近の動向
Hammingベース
0
𝒙⟼ 𝐻 𝒙 = 0
Hash
1

Lookupベース
𝒙→

→ID:4
Quantization

精度

〇

◎

線形探索速度

◎

〇

高速計算

MIH [CVPR 12]

PQ [PAMI 11]
IMI [CVPR 12]
What Is [ICCV 13]

手法例

SH [NIPS 08]
ITQ [CVPR 11]
K-means Hashing
[CVPR 13]
・・・

PQ [PAMI 11]
Optimized PQ
[CVPR 13]
Cartesian K-means
[CVPR 13]

参考:K-means Hashingの紹介 by @yu4u
http://www.slideshare.net/ren4yu/k-means-hashing-up

9
近似最近傍探索問題の最近の動向
Hammingベース
0
𝒙⟼ 𝐻 𝒙 = 0
Hash
1

Lookupベース
𝒙→

→ID:4
Quantization

精度

〇

◎

線形探索速度

◎

〇

高速計算

MIH [CVPR 12]

PQ [PAMI 11]
IMI [CVPR 12]
What Is [ICCV 13]

手法例

SH [NIPS 08]
PQ [PAMI 11]
ITQ [CVPR 11]
Optimized PQ
K-means
[CVPR 13]
ほげほげHashが乱立する邪悪な世界 Hashing
Jegou現人神を崇拝するPQ教
[CVPR 13]
Cartesian K-means
・ぐう早(一回の比較が10nsとか)
INRIA (Jegou様と仲間たち) vs
[CVPR 13]
・・・
・最近はブームがひと段落したか?
参考:K-means Hashingの紹介 by @yu4u
http://www.slideshare.net/ren4yu/k-means-hashing-up

MSRA (優秀中国インターン勢) vs
Norouzi (ガチソロプレイ)

10
近似最近傍探索問題の最近の動向
Hammingベース
0
𝒙⟼ 𝐻 𝒙 = 0
Hash
1
精度

〇

線形探索速度

◎

高速計算

MIH [CVPR 12]

Lookupベース
𝒙→

→ID:4

今日紹介する論文
Quantization
は,Lookupベース
◎ の高速計算の精度
を上げるもの

〇

PQ [PAMI 11]
IMI [CVPR 12]
What Is [ICCV 13]

手法例

SH [NIPS 08]
PQ [PAMI 11]
ITQ [CVPR 11]
Optimized PQ
K-means
[CVPR 13]
ほげほげHashが乱立する邪悪な世界 Hashing
Jegou現人神を崇拝するPQ教
[CVPR 13]
Cartesian K-means
・ぐう早(一回の比較が10nsとか)
INRIA (Jegou様と仲間たち) vs
[CVPR 13]
・・・
・最近はブームがひと段落したか?
参考:K-means Hashingの紹介 by @yu4u
http://www.slideshare.net/ren4yu/k-means-hashing-up

MSRA (優秀中国インターン勢) vs
Norouzi (ガチソロプレイ)

11
問題設定
・1-NN問題
クエリを投げて,探索精度をRecall@100 等で測る
・データベースのベクトル数は非常に多い
メモリに直接載らない
e.g., SIFT 1G dataset (生データがuchar * 128 dim * 1G個 = 128GB)

・ディスクアクセスはしない
・ベースライン:IVFADC [Jegou, PAMI 2011]
Product Quantization の非線形近似解放
オリジナルのPQ論文で提案されているもの
Lookupベースの高速計算系の元祖
12
問題設定
・1-NN問題
・データベースのベクトル数は非常に多い
・ディスクアクセスはしない
・ベースライン:IVFADC [Jegou, PAMI 2011]
Product Quantization の非線形近似解放
オリジナルのPQ論文で提案されているもの
Lookupベースの高速計算系の元祖

今日の流れ:
PQの簡易解説→IVFADC解説→提案手法解説
13
問題設定
・1-NN問題
・データベースのベクトル数は非常に多い
・ディスクアクセスはしない
・ベースライン:IVFADC [Jegou, PAMI 2011]
Product Quantization の非線形近似解放
オリジナルのPQ論文で提案されているもの
Lookupベースの高速計算系の元祖

今日の流れ:
PQの簡易解説→IVFADC解説→提案手法解説
14
Product Quantization (PQ)とは・・
 すごいk-means
k-means

量子化器:16分割

入力ベクトル:

⑨

𝒙∈ 𝑅𝐷

⑦

⑤

②
⑪

⑫
④

⑯

③

⑮

⑬
⑧
⑥

⑩
⑭

①

明快な解説:直積量子化(Product Quantization)を用いた近似最近傍探索についての簡単な解説 映像奮闘記
http://mglab.blogspot.jp/2011/11/product-quantization.html

15
Product Quantization (PQ)とは・・
 すごいk-means
k-means

量子化器:16分割

入力ベクトル:

⑨

𝒙∈ 𝑅𝐷

⑦

⑤

②

★ ⑪

⑫
④

⑯

③

⑮

⑬
⑧
⑥

⑩
⑭

①

明快な解説:直積量子化(Product Quantization)を用いた近似最近傍探索についての簡単な解説 映像奮闘記
http://mglab.blogspot.jp/2011/11/product-quantization.html

16
Product Quantization (PQ)とは・・
 すごいk-means
k-means

量子化器:16分割

入力ベクトル:

⑨

𝒙∈ 𝑅𝐷

⑦

⑤

②

★ ⑪

⑫
④

⑯

③

⑮

⑬
⑧
⑥

⑩
⑭

𝒙 ↦⑪

①

明快な解説:直積量子化(Product Quantization)を用いた近似最近傍探索についての簡単な解説 映像奮闘記
http://mglab.blogspot.jp/2011/11/product-quantization.html

17
Product Quantization (PQ)とは・・
 すごいk-means
k-means

量子化器:16分割

入力ベクトル:

⑨

𝒙∈ 𝑅𝐷

⑦

⑤

②

★ ⑪

⑫
④

⑯

③

⑮

⑬
⑧
⑥

⑩
⑭

①

𝒙 ↦⑪

(1) 量子化
ベクトルをバケットに
振り分ける
(2) データ圧縮
D次元ベクトルを
整数一個で表現

明快な解説:直積量子化(Product Quantization)を用いた近似最近傍探索についての簡単な解説 映像奮闘記
http://mglab.blogspot.jp/2011/11/product-quantization.html

18
Product Quantization (PQ)とは・・
 すごいk-means
k-means

量子化器:16分割

入力ベクトル:

⑨

𝒙∈ 𝑅𝐷

⑦

⑤

②

★ ⑪

⑫
④

PQ

⑯

③

⑮

⑬
⑧
⑥

⑩
⑭

𝒙 ↦⑪

①

(1) 量子化
ベクトルをバケットに
振り分ける
(2) データ圧縮
D次元ベクトルを
整数一個で表現

量子化器:6 * 6 = 36分割
④
③

入力ベクトル:

𝒙∈ 𝑅𝐷

①
⑥
⑤
②
④ ① ②

③

⑥ ⑤

明快な解説:直積量子化(Product Quantization)を用いた近似最近傍探索についての簡単な解説 映像奮闘記
http://mglab.blogspot.jp/2011/11/product-quantization.html

19
Product Quantization (PQ)とは・・
 すごいk-means
k-means

量子化器:16分割

入力ベクトル:

⑨

𝒙∈ 𝑅𝐷

⑦

⑤

②

★ ⑪

⑫
④

PQ

⑯

③

⑮

⑬
⑧
⑥

⑩
⑭

𝒙 ↦⑪

①

(1) 量子化
ベクトルをバケットに
振り分ける
(2) データ圧縮
D次元ベクトルを
整数一個で表現

量子化器:6 * 6 = 36分割
④
③

入力ベクトル:

𝒙∈ 𝑅𝐷

★

①
⑥
⑤
②

④ ① ②

③

⑥ ⑤

明快な解説:直積量子化(Product Quantization)を用いた近似最近傍探索についての簡単な解説 映像奮闘記
http://mglab.blogspot.jp/2011/11/product-quantization.html

20
Product Quantization (PQ)とは・・
 すごいk-means
k-means

量子化器:16分割

入力ベクトル:

⑨

𝒙∈ 𝑅𝐷

⑦

⑤

②

★ ⑪

⑫
④

PQ

⑯

③

⑮

⑬
⑧
⑥

⑩
⑭

𝒙 ↦⑪

①

(1) 量子化
ベクトルをバケットに
振り分ける
(2) データ圧縮
D次元ベクトルを
整数一個で表現

量子化器:6 * 6 = 36分割
④
③

入力ベクトル:

𝒙∈ 𝑅𝐷

𝒙↦
①
[②①]
⑥

★

⑤
②
④ ① ②

③

⑥ ⑤

明快な解説:直積量子化(Product Quantization)を用いた近似最近傍探索についての簡単な解説 映像奮闘記
http://mglab.blogspot.jp/2011/11/product-quantization.html

21
Product Quantization (PQ)とは・・
 すごいk-means
k-means

量子化器:16分割

入力ベクトル:

⑨

𝒙∈ 𝑅𝐷

⑦

⑤

②

★ ⑪

⑫
④

PQ

⑯

③

⑮

⑬
⑧
⑥

⑩
⑭

𝒙 ↦⑪

①

(1) 量子化
ベクトルをバケットに
振り分ける
(2) データ圧縮
D次元ベクトルを
整数一個で表現

量子化器:6 * 6 = 36分割
④
③

入力ベクトル:

𝒙∈ 𝑅𝐷

𝒙↦
①
[②①]
⑥

★

⑤
②
④ ① ②

③

⑥ ⑤

(1) すごい量子化
ベクトルをバケットに
細かく振り分ける
→量子化誤差少
(2) すごいデータ圧縮
D次元ベクトルを
整数複数個で表現
→精度維持し省メモリ

明快な解説:直積量子化(Product Quantization)を用いた近似最近傍探索についての簡単な解説 映像奮闘記
http://mglab.blogspot.jp/2011/11/product-quantization.html

22
問題設定
・1-NN問題
・データベースのベクトル数は非常に多い
・ディスクアクセスはしない
・ベースライン:IVFADC [Jegou, PAMI 2011]
Product Quantization の非線形近似解放
オリジナルのPQ論文で提案されているもの
Lookupベースの高速計算系の元祖

今日の流れ:
PQの簡易解説→IVFADC解説→提案手法解説
23
IVFADC: 粗い量子化+PQ re-ranking
オフライン:データ登録

𝒄1
𝒄2

𝒚1

・
・
・

𝒄 𝑘′
k-means centers
粗い量子化器

24
IVFADC: 粗い量子化+PQ re-ranking
オフライン:データ登録

𝒄1
𝒄2
・
・
・

𝒚1
𝒄2 = argmin 𝑑(𝒚1 𝒄 𝑖 )
𝒄𝑖

𝒄 𝑘′
k-means centers
粗い量子化器

(1) 最も近いcenterを探す

25
IVFADC: 粗い量子化+PQ re-ranking
オフライン:データ登録

𝒄1
𝒄2
・
・
・

𝒄 𝑘′

𝒚1
𝒄2 = argmin 𝑑(𝒚1 𝒄 𝑖 )
𝒄𝑖

残差の量子化:
𝑃𝑄 𝒚1 − 𝒄2 =[⑱⑪]

k-means centers
粗い量子化器

(1) 最も近いcenterを探す
(2) centerとの残差(𝒚 − 𝒄)をPQ量子化する

26
IVFADC: 粗い量子化+PQ re-ranking
オフライン:データ登録

𝒄1
𝒄2

𝒚1
1
⑱⑪

・
・
・

𝒄 𝑘′

𝒄2 = argmin 𝑑(𝒚1 𝒄 𝑖 )
𝒄𝑖

残差の量子化:
𝑃𝑄 𝒚1 − 𝒄2 =[⑱⑪]

k-means centers
粗い量子化器

(1) 最も近いcenterを探す
(2) centerとの残差(𝒚 − 𝒄)をPQ量子化する
(3) centerのリストに登録する
27
IVFADC: 粗い量子化+PQ re-ranking
オフライン:データ登録

𝒄1
𝒄2
・
・
・

𝒄 𝑘′

9

34

41

45

60

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

1

23

57

88

89

95

⑱⑪

⑨③

⑲②

⑦⑤

②⑱

④④

49

70

78

91

④⑧

⑫⑬

⑧⑮

⑭⑨

k-means centers
粗い量子化器

データベース中の全て
のベクトルを登録する

(1) 最も近いcenterを探す
(2) centerとの残差(𝒚 − 𝒄)をPQ量子化する
(3) centerのリストに登録する
28
IVFADC: 粗い量子化+PQ re-ranking
オフライン:データ登録

𝒄1
𝒄2
・
・
・

𝒄 𝑘′

9

34

41

45

60

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

1

23

57

88

89

95

⑱⑪

⑨③

⑲②

⑦⑤

②⑱

④④

49

70

78

91

④⑧

⑫⑬

⑧⑮

⑭⑨

k-means centers
粗い量子化器

データベース中の全て
のベクトルを登録する

(1) 最も近いcenterを探す
(2) centerとの残差(𝒚 − 𝒄)をPQ量子化する
(3) centerのリストに登録する
良い点:𝒚を圧縮して(e.g., 64bit)で保持.メモリ効率良
データが粗い量子化でざっくりまとめられている

29
IVFADC: 粗い量子化+PQ re-ranking
オンライン:探索

𝒙

𝒄1
𝒄2
・
・
・

𝒄 𝑘′

9

34

41

45

60

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

1

23

57

88

89

95

⑱⑪

⑨③

⑲②

⑦⑤

②⑱

④④

49

70

78

91

④⑧

⑫⑬

⑧⑮

⑭⑨

k-means centers
粗い量子化器

30
IVFADC: 粗い量子化+PQ re-ranking
オンライン:探索

𝒙

𝒄1
𝒄2
・
・
・

𝒄 𝑘′

9

34

41

45

60

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

1

23

57

88

89

95

⑱⑪

⑨③

⑲②

⑦⑤

②⑱

④④

49

70

78

91

④⑧

⑫⑬

⑧⑮

⑭⑨

k-means centers
粗い量子化器

(1) 最も近いcenterを探してそのリストを順番に見る

31
IVFADC: 粗い量子化+PQ re-ranking
オンライン:探索

𝒙

𝒄1
𝒄2
・
・
・

𝒄 𝑘′

9

34

41

45

60

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

1

23

57

88

89

95

⑱⑪

⑨③

⑲②

⑦⑤

②⑱

④④

49

70

78

91

④⑧

⑫⑬

⑧⑮

⑭⑨

k-means centers
粗い量子化器

ADC距離近似

𝑑 𝒙, 𝒚1
= 𝑑(𝒙 − 𝒄2 , 𝑃𝑄 −1 (⑱⑪))
= 12.3

(1) 最も近いcenterを探してそのリストを順番に見る
(2) 𝒙と𝒚の近似距離は高速計算できる (ADC計算 [Jegou 2011])

32
IVFADC: 粗い量子化+PQ re-ranking
オンライン:探索

𝒙

Re-ranking

1: 12.3

𝒄1
𝒄2
・
・
・

𝒄 𝑘′

9

34

41

45

60

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

1

23

57

88

89

95

⑱⑪

⑨③

⑲②

⑦⑤

②⑱

④④

49

70

78

91

④⑧

⑫⑬

⑧⑮

⑭⑨

k-means centers
粗い量子化器

ADC距離近似

𝑑 𝒙, 𝒚1
= 𝑑(𝒙 − 𝒄2 , 𝑃𝑄 −1 (⑱⑪))
= 12.3

(1) 最も近いcenterを探してそのリストを順番に見る
(2) 𝒙と𝒚の近似距離は高速計算できる (ADC計算 [Jegou 2011])

33
IVFADC: 粗い量子化+PQ re-ranking
オンライン:探索

𝒙

Re-ranking

1: 12.3
23: 45.1

𝒄1
𝒄2
・
・
・

𝒄 𝑘′

9

34

41

45

60

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

1

23

57

88

89

95

⑱⑪

⑨③

⑲②

⑦⑤

②⑱

④④

49

70

78

91

④⑧

⑫⑬

⑧⑮

⑭⑨

k-means centers
粗い量子化器

ADC距離近似

𝑑 𝒙, 𝒚1
= 𝑑(𝒙 − 𝒄2 , 𝑃𝑄 −1 (⑱⑪))
= 12.3

(1) 最も近いcenterを探してそのリストを順番に見る
(2) 𝒙と𝒚の近似距離は高速計算できる (ADC計算 [Jegou 2011])

34
IVFADC: 粗い量子化+PQ re-ranking
オンライン:探索

𝒙

Re-ranking

1: 12.3
23: 45.1
57: 2.4
88: 56.4
89: 98.4
95: 22.2

𝒄1
𝒄2
・
・
・

𝒄 𝑘′

9

34

41

45

60

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

1

23

57

88

89

95

⑱⑪

⑨③

⑲②

⑦⑤

②⑱

④④

49

70

78

91

④⑧

⑫⑬

⑧⑮

⑭⑨

k-means centers
粗い量子化器

ADC距離近似

𝑑 𝒙, 𝒚1
= 𝑑(𝒙 − 𝒄2 , 𝑃𝑄 −1 (⑱⑪))
= 12.3

(1) 最も近いcenterを探してそのリストを順番に見る
(2) 𝒙と𝒚の近似距離は高速計算できる (ADC計算 [Jegou 2011])

35
IVFADC: 粗い量子化+PQ re-ranking
オンライン:探索

𝒙

Re-ranking

1: 12.3
23: 45.1
57: 2.4
88: 56.4
89: 98.4
95: 22.2

𝒄1
𝒄2
・
・
・

𝒄 𝑘′

9

34

41

45

60

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

1

23

57

88

89

95

⑱⑪

⑨③

⑲②

⑦⑤

②⑱

④④

49

70

78

91

④⑧

⑫⑬

⑧⑮

⑭⑨

k-means centers
粗い量子化器

ADC距離近似

𝑑 𝒙, 𝒚1
= 𝑑(𝒙 − 𝒄2 , 𝑃𝑄 −1 (⑱⑪))
= 12.3

(1) 最も近いcenterを探してそのリストを順番に見る
(2) 𝒙と𝒚の近似距離は高速計算できる (ADC計算 [Jegou 2011])
(3) 一番近いものを選ぶ(Re-ranking)
36
IVFADC: 粗い量子化+PQ re-ranking
オンライン:探索

𝒙

Re-ranking

1: 12.3
23: 45.1
57: 2.4
88: 56.4
89: 98.4
95: 22.2

𝒄1
𝒄2
・
・
・

𝒄 𝑘′

9

34

41

45

60

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

1

23

57

88

89

95

⑱⑪

⑨③

⑲②

⑦⑤

②⑱

④④

49

70

78

91

④⑧

⑫⑬

⑧⑮

⑭⑨

k-means centers
粗い量子化器

ADC距離近似

𝑑 𝒙, 𝒚1
= 𝑑(𝒙 − 𝒄2 , 𝑃𝑄 −1 (⑱⑪))
= 12.3

(1) 最も近いcenterを探してそのリストを順番に見る
(2) 𝒙と𝒚の近似距離は高速計算できる (ADC計算 [Jegou 2011])
(3) 一番近いものを選ぶ(Re-ranking)
良い点:早い.粗い量子化+リスト探索だけ.
PQ(ADC)の性能が良いので,探索精度も高い
37
問題設定
・1-NN問題
・データベースのベクトル数は非常に多い
・ディスクアクセスはしない
・ベースライン:IVFADC [Jegou, PAMI 2011]
Product Quantization の非線形近似解放
オリジナルのPQ論文で提案されているもの
Lookupベースの高速計算系の元祖

今日の流れ:
PQの簡易解説→IVFADC解説→提案手法解説
38
(再掲) IVFADC: 粗い量子化+PQ re-ranking
𝒙

𝒄1
𝒄2
・
・
・

𝒄 𝑘′

9

34

41

45

60

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

1

23

57

88

89

95

⑱⑪

⑨③

⑲②

⑦⑤

②⑱

④④

49

70

78

91

④⑧

⑫⑬

⑧⑮

⑭⑨

k-means centers
粗い量子化器

問題点:
粗い量子化の精度が低いと,正解がリストに含まれないかもしれ
ない(その場合soft votingする.ので余計なコストがかかる)
39
(再掲) IVFADC: 粗い量子化+PQ re-ranking
𝒙

𝒄1
𝒄2
・
・
・

𝒄 𝑘′

9

34

41

45

60

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

1

23

57

88

89

95

⑱⑪

⑨③

⑲②

⑦⑤

②⑱

④④

49

70

78

91

④⑧

⑫⑬

⑧⑮

⑭⑨

𝒄2 のリスト
を見ている
が・・

正解はこっち

k-means centers
粗い量子化器

問題点:
粗い量子化の精度が低いと,正解がリストに含まれないかもしれ
ない(その場合soft votingする.ので余計なコストがかかる)
40
(再掲) IVFADC: 粗い量子化+PQ re-ranking
𝒙

𝒄1
𝒄2
・
・
・

𝒄 𝑘′

9

34

41

45

60

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

1

23

57

88

89

95

⑱⑪

⑨③

⑲②

⑦⑤

②⑱

④④

49

70

78

91

④⑧

⑫⑬

⑧⑮

⑭⑨

𝒄2 のリスト
を見ている
が・・

正解はこっち

k-means centers
粗い量子化器

問題点:
粗い量子化の精度が低いと,正解がリストに含まれないかもしれ
ない(その場合soft votingする.ので余計なコストがかかる)
正解はリストに入ってほしい→良い量子化器を設計したい
41
Joint-ADC: 複数の粗い量子化+PQ re-ranking
𝒄1

34

41

45

60

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

𝒄2

1

23

57

88

89

95

⑱⑪

⑨③

⑲②

⑦⑤

②⑱

④④

𝒄1

23

55

68

81

⑨③

⑫⑬

⑧⑮

⑭⑨

𝒄2

𝒙

9

13

77

78

94

99

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

・
・
・

Re-ranking

𝒄 𝑘′
粗い量子化器

・
・
・

𝒄 𝑘′
粗い量子化器

・複数の粗い量子化器を用意

※ここで⑭⑨は残差
ではなく𝒚本体のPQ
※メモリ無駄に消費
しないように,本当
は同IDあたり⑭⑨は
一回しか記述しない

42
Joint-ADC: 複数の粗い量子化+PQ re-ranking
𝒄1

34

41

45

60

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

𝒄2

1

23

57

88

89

95

⑱⑪

⑨③

⑲②

⑦⑤

②⑱

④④

𝒄1

23

55

68

81

⑨③

⑫⑬

⑧⑮

⑭⑨

𝒄2

𝒙

9

13

77

78

94

99

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

・
・
・

𝒄 𝑘′
粗い量子化器

・
・
・

Re-ranking

1: 12.3
23: 45.1
57: 2.4
88: 56.4
89: 98.4
95: 22.2

𝒄 𝑘′
粗い量子化器

・複数の粗い量子化器を用意
・それぞれ探す

※ここで⑭⑨は残差
ではなく𝒚本体のPQ
※メモリ無駄に消費
しないように,本当
は同IDあたり⑭⑨は
一回しか記述しない

43
Joint-ADC: 複数の粗い量子化+PQ re-ranking
𝒄1

34

41

45

60

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

𝒄2

1

23

57

88

89

95

⑱⑪

⑨③

⑲②

⑦⑤

②⑱

④④

𝒄1

23

55

68

81

⑨③

⑫⑬

⑧⑮

⑭⑨

𝒄2

𝒙

9

13

77

78

94

99

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

・
・
・

𝒄 𝑘′
粗い量子化器

・
・
・

𝒄 𝑘′
粗い量子化器

・複数の粗い量子化器を用意
・それぞれ探す

Re-ranking

1: 12.3
23: 45.1
57: 2.4
88: 56.4
89: 98.4
95: 22.2
23: 45.1
55: 0.6
68: 1.1
81: 47.2
※ここで⑭⑨は残差
ではなく𝒚本体のPQ
※メモリ無駄に消費
しないように,本当
は同IDあたり⑭⑨は
一回しか記述しない

44
Joint-ADC: 複数の粗い量子化+PQ re-ranking
𝒄1

34

41

45

60

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

𝒄2

1

23

57

88

89

95

⑱⑪

⑨③

⑲②

⑦⑤

②⑱

④④

𝒄1

23

55

68

81

⑨③

⑫⑬

⑧⑮

⑭⑨

𝒄2

𝒙

9

13

77

78

94

99

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

・
・
・

𝒄 𝑘′
粗い量子化器

・
・
・

𝒄 𝑘′
粗い量子化器

Re-ranking

1: 12.3
23: 45.1
57: 2.4
88: 56.4
89: 98.4
95: 22.2
23: 45.1
55: 0.6
68: 1.1
81: 47.2

※ここで⑭⑨は残差
・複数の粗い量子化器を用意
ではなく𝒚本体のPQ
・それぞれ探す→まとめてRe-ranking ※メモリ無駄に消費

しないように,本当
は同IDあたり⑭⑨は
一回しか記述しない

45
Joint-ADC: 複数の粗い量子化+PQ re-ranking
𝒄1

34

41

45

60

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

𝒄2

1

23

57

88

89

95

⑱⑪

⑨③

⑲②

⑦⑤

②⑱

④④

𝒄1

23

55

68

81

⑨③

⑫⑬

⑧⑮

⑭⑨

𝒄2

𝒙

9

13

77

78

94

99

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

・
・
・

𝒄 𝑘′
粗い量子化器

・
・
・

𝒄 𝑘′
粗い量子化器

Re-ranking

1: 12.3
23: 45.1
57: 2.4
88: 56.4
89: 98.4
95: 22.2
23: 45.1
55: 0.6
68: 1.1
81: 47.2

※ここで⑭⑨は残差
・複数の粗い量子化器を用意
ではなく𝒚本体のPQ
・それぞれ探す→まとめてRe-ranking ※メモリ無駄に消費
しないように,本当
・量子化器をうまく作れば,
は同IDあたり⑭⑨は
一回しか記述しない
探索範囲が広がり精度上がる
46
量子化器の設計:ダメな例
𝒄1

34

41

45

60

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

𝒄2

1

23

57

88

89

95

⑱⑪

⑨③

⑲②

⑦⑤

②⑱

④④

𝒄1

𝒙

★

9

9

34

41

45

60

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

𝒄2

1

23

57

88

89

95

⑱⑪

⑨③

⑲②

⑦⑤

②⑱

④④

・
・
・

𝒄 𝑘′
粗い量子化器

★

・
・
・

𝒄 𝑘′
粗い量子化器

同じ(似ている)量子化器を使うと,リスト
も似るので,意味が無い
→単純に複数回k-meansするとこうなる

47
量子化器の設計:良い例
𝒄1

34

41

45

60

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

𝒄2

1

23

57

88

89

95

⑱⑪

⑨③

⑲②

⑦⑤

②⑱

④④

𝒄1

𝒙

★

9

23

55

68

81

⑨③

⑫⑬

⑧⑮

⑭⑨

𝒄2

13

77

78

94

99

③⑧

③⑭

⑰⑲

⑦⑤

②⑱

・
・
・

𝒄 𝑘′
粗い量子化器

★

・
・
・

𝒄 𝑘′
粗い量子化器

違った空間分割だと良い
→違った分割だが量子化誤差も小さく
なるように最適化する

48
量子化器の設計:アルゴリズム

作る量子化器:3個の量子化器,それぞれ8つのcenters
・まずk=24(=3*8)で通常のk-meansを行う
・次に3つずつ8つにグループ分けを行う
(Random Projection Tree [Freund, STOC 07] を用いる)
・各グループからランダムに一つずつ選び一つの
量子化器を作る,を3回行う
・違った空間分割の量子化器が3つできる
49
量子化器の設計:アルゴリズム

作る量子化器:3個の量子化器,それぞれ8つのcenters
・まずk=24(=3*8)で通常のk-meansを行う
・次に3つずつ8つにグループ分けを行う
(Random Projection Tree [Freund, STOC 07] を用いる)
・各グループからランダムに一つずつ選び一つの
量子化器を作る,を3回行う
・違った空間分割の量子化器が3つできる
50
量子化器の設計:アルゴリズム

作る量子化器:3個の量子化器,それぞれ8つのcenters
・まずk=24(=3*8)で通常のk-meansを行う
・次に3つずつ8つにグループ分けを行う
(Random Projection Tree [Freund, STOC 07] を用いる)
・各グループからランダムに一つずつ選び一つの
量子化器を作る,を3回行う
・違った空間分割の量子化器が3つできる
51
量子化器の設計:アルゴリズム

作る量子化器:3個の量子化器,それぞれ8つのcenters
・まずk=24(=3*8)で通常のk-meansを行う
・次に3つずつ8つにグループ分けを行う
(Random Projection Tree [Freund, STOC 07] を用いる)
・各グループからランダムに一つずつ選び一つの
量子化器を作る,を3回行う
・違った空間分割の量子化器が3つできる
52
量子化器の設計:アルゴリズム

作る量子化器:3個の量子化器,それぞれ8つのcenters
・まずk=24(=3*8)で通常のk-meansを行う
・次に3つずつ8つにグループ分けを行う
(Random Projection Tree [Freund, STOC 07] を用いる)
・各グループからランダムに一つずつ選び一つの
量子化器を作る,を3回行う
・違った空間分割の量子化器が3つできる
53
結果

探索結果上位何件中に正解がいるか
高いほど精度良い

既存手法

提案手法

・精度良い,速度早い,だがメモリ消費は大きい
・パラメータセンシティブ

54
議論
・シンプルアイデアのワンチャン論文だが精度は良い
・空間を何かの組み合わせで分割するという点で,複
数k-meansの利用はPQと似ている.
・生データ(128GB)がメモリに載らない前提で話をす
すめているのに結局この手法は80GB使っていて,そ
れでいいのか感

・ANN系はどれも現実の問題と乖離していると言われ
ている.1G個の特徴を80GBのメモリを消費して10ms
で探索することが必要な状況ってなんだろうか(機械
学習の学習段階? cf. CVPR13 best paper [Dean 13] )
55
参考文献(1/2)


MIH [CVPR 12]
 M. Norouzi, et al. “Fast Search in Hamming Space with Multi-Index Hashing” CVPR 2012
 実はhamming系の手法はこれを使うとめちょ早くなる.ただ速度がクエリに依存する.PAMIるよ

うで,ジャーナルバージョンは M. Norouzi, et al. “Fast Exact Search in Hamming Space with Multi-Index
Hashing” PAMI 2014



SH [NIPS 08]
 Y. Weiss, et al. “Spectral Hashing” NIPS 2008
 Hamming系の走り.配布コードがシンプルで,みんなこれに合わせている



ITQ [CVPR 11]
 Y. Gong, et al. “Iterative Quantization: A Procrustean Approach to Learning Binary Codes” CVPR 2011
 Hamming系は一時期みんなこれを比較対象にしていた.



K-means Hashing [CVPR 13]
 K. He, et al. “K-means Hashing: an Affinity-Preserving Quantization Method for Learning Binary Compact

Codes” CVPR 2013
 イントロでの分野の外観説明が分かり易く,HammingベースとLookupベースの分類はこの論文よ
り.ITQの考え方を推し進めて,Hamming系とLookup系をつなぐ手法だと自分で言っている


PQ [PAMI 11]
 H. Jegou, et al. “Product Quantization for Nearest Neighbor Search” PAMI 2011
 今回の手法の大元はこのIVFADCなので,取り合えず読む必要がある.実験が恐ろしくしっかりし

ていて辛い気持ちになる

56
参考文献(2/2)


IMI [CVPR 12]
 A. Babenko and V. Lempitsky “The Inverted Multi-Index” CVPR 2012
 IVFADCの粗い量子化をPQに置き換えたもの.この論文でも既存手法としてこいつを相手にしてい

る



What Is [ICCV 13]
 M. Iwamura, et al. “What Is the Most Efficient Way to Select Nearest Neighbor Candidates for Fast

Approximate Nearest Neighbor Search?” ICCV 2013
 大阪府立大のグループ.IMIの粗いPQ計算の高速化


Optimized PQ [CVPR 13]
 T. Ge, et al. “Optimized Product Quantization for Approximate Nearest Neighbor Search” CVPR 2013
 PQするときの次元分割をエラー最少でやる最適化.最終的には回転行列を求めるだけになる.

PAMIバージョン(T. Ge, et al. “Optimized Product Quantization” PAMI 2014)ではIMIに対しこれを
行っていて,現状のstate-of-the-art感がある



Cartesian K-means [CVPR 13]
 M. Norouzi and D. J. Fleet, “Cartesian k-means” CVPR 2013
 Optimized PQと全く同じ会議で全く同じ内容だったという事例.立式が洒落ている.Optimized PQ

のほうが先にPAMIっているので戦略負けしたのか感がある



Random Projection Tree[Freund, STOC 07]
 S. Dasgupta and Y. Freund. “Random Projection Trees and Low Dimensional Manifolds” STOC 2007



CVPR13 best paper [Dean 13]
 T. Dean, et al. “Fast, Accurate Detection of 100,000 Object Classes on a Single Machine” CVPR 2013
 CVPR13のベストペーパーで,機械学習の学習段階でhamming系のANNを利用することで高速に学

習する.なのでよりたくさんの特徴量つっこめるので精度上がるという企業パワー全開な論文.
今後ANNが使われる文脈の一つなのか?

57

More Related Content

PDF
[CV勉強会]Active Object Localization with Deep Reinfocement Learning
PDF
Large-Scale Object Classification Using Label Relation Graphs
PDF
3DFeat-Net
PDF
20160717 dikf
PDF
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
PDF
20181130 lidar object detection survey
PDF
object detection with lidar-camera fusion: survey
PDF
Semantic segmentation
[CV勉強会]Active Object Localization with Deep Reinfocement Learning
Large-Scale Object Classification Using Label Relation Graphs
3DFeat-Net
20160717 dikf
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
20181130 lidar object detection survey
object detection with lidar-camera fusion: survey
Semantic segmentation

What's hot (20)

PDF
20190706cvpr2019_3d_shape_representation
PDF
20190131 lidar-camera fusion semantic segmentation survey
PDF
2020/07/04 BSP-Net (CVPR2020)
PDF
20200704 bsp net
PDF
Deformable Part Modelとその発展
PDF
20201010 personreid
PDF
第1回NIPS読み会・関西発表資料
PPTX
SuperGlue; Learning Feature Matching with Graph Neural Networks (CVPR'20)
PDF
機械学習 入門
PDF
深層生成モデルと世界モデル, 深層生成モデルライブラリPixyzについて
PDF
東大大学院 電子情報学特論講義資料「深層学習概論と理論解析の課題」大野健太
PDF
サブカルのためのWord2vec
PDF
Deep learning入門
PPTX
深層学習とTensorFlow入門
PDF
Deep Learningと画像認識   ~歴史・理論・実践~
PPTX
SeRanet
PPTX
深層強化学習入門
PDF
論文紹介「PointNetLK: Robust & Efficient Point Cloud Registration Using PointNet」
PDF
SSII2021 [SS1] Transformer x Computer Visionの 実活用可能性と展望 〜 TransformerのCompute...
PDF
深層ニューラルネットワーク による知識の自動獲得・推論
20190706cvpr2019_3d_shape_representation
20190131 lidar-camera fusion semantic segmentation survey
2020/07/04 BSP-Net (CVPR2020)
20200704 bsp net
Deformable Part Modelとその発展
20201010 personreid
第1回NIPS読み会・関西発表資料
SuperGlue; Learning Feature Matching with Graph Neural Networks (CVPR'20)
機械学習 入門
深層生成モデルと世界モデル, 深層生成モデルライブラリPixyzについて
東大大学院 電子情報学特論講義資料「深層学習概論と理論解析の課題」大野健太
サブカルのためのWord2vec
Deep learning入門
深層学習とTensorFlow入門
Deep Learningと画像認識   ~歴史・理論・実践~
SeRanet
深層強化学習入門
論文紹介「PointNetLK: Robust & Efficient Point Cloud Registration Using PointNet」
SSII2021 [SS1] Transformer x Computer Visionの 実活用可能性と展望 〜 TransformerのCompute...
深層ニューラルネットワーク による知識の自動獲得・推論
Ad

Viewers also liked (20)

PDF
K-means hashing (CVPR'13) とハッシング周り
PDF
From Large Scale Image Categorization to Entry-Level Categories
PDF
UISTで登壇発表しようぜ (UIST勉強会講演2/2)
PDF
Accidental Pinhole and Pinspeck Cameras: Revealing the Scene Outside the Picture
PDF
最近傍探索と直積量子化(Nearest neighbor search and Product Quantization)
PDF
Reconstructing the World’s Museums
PDF
2014/02/23 CV勉強会発表資料 nksm_r
PDF
UIST2016の舞台裏 (UIST勉強会講演1/2)
PPTX
Locally Optimized Product Quantization for Approximate Nearest Neighbor Searc...
PPTX
Hasc勉強会報告
PPTX
SSII2014 チュートリアル資料
PPTX
Object Detection & Instance Segmentationの論文紹介 | OHS勉強会#3
PDF
DeepPose: Human Pose Estimation via Deep Neural Networks
PDF
20170211クレジットカード認識
PDF
20160525はじめてのコンピュータビジョン
PDF
DeepLearningDay2016Summer
PDF
【ECCV 2016 BNMW】Human Action Recognition without Human
PDF
プログラミングコンテストでの動的計画法
PDF
SSD: Single Shot MultiBox Detector (UPC Reading Group)
K-means hashing (CVPR'13) とハッシング周り
From Large Scale Image Categorization to Entry-Level Categories
UISTで登壇発表しようぜ (UIST勉強会講演2/2)
Accidental Pinhole and Pinspeck Cameras: Revealing the Scene Outside the Picture
最近傍探索と直積量子化(Nearest neighbor search and Product Quantization)
Reconstructing the World’s Museums
2014/02/23 CV勉強会発表資料 nksm_r
UIST2016の舞台裏 (UIST勉強会講演1/2)
Locally Optimized Product Quantization for Approximate Nearest Neighbor Searc...
Hasc勉強会報告
SSII2014 チュートリアル資料
Object Detection & Instance Segmentationの論文紹介 | OHS勉強会#3
DeepPose: Human Pose Estimation via Deep Neural Networks
20170211クレジットカード認識
20160525はじめてのコンピュータビジョン
DeepLearningDay2016Summer
【ECCV 2016 BNMW】Human Action Recognition without Human
プログラミングコンテストでの動的計画法
SSD: Single Shot MultiBox Detector (UPC Reading Group)
Ad

Similar to Joint Inverted Indexing (20)

PDF
(文献紹介) 画像復元:Plug-and-Play ADMM
PDF
MIRU2016 チュートリアル
PDF
PFI Christmas seminar 2009
PDF
信号処理・画像処理における凸最適化
PDF
パターン認識第9章 学習ベクトル量子化
PDF
CV勉強会@関東 3巻3章4節 画像表現
PDF
SMO徹底入門 - SVMをちゃんと実装する
PDF
コンピュータビジョンで作る未来の栽培技術POL共催セミナー_20220527
PDF
大規模凸最適化問題に対する勾配法
PDF
データマイニング勉強会3
PDF
関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video
PDF
PCAの最終形態GPLVMの解説
PDF
第8回関西CV・PRML勉強会(Meanshift)
PDF
Nips yomikai 1226
PDF
演習発表 Sari v.1.1
PDF
関西CVPRML勉強会 kernel PCA
PDF
機械学習とコンピュータビジョン入門
PDF
Sparse Codingをなるべく数式を使わず理解する(PCAやICAとの関係)
PPTX
RAPiD
PDF
L0TV: a new method for image restoration in the presence of impulse noise
(文献紹介) 画像復元:Plug-and-Play ADMM
MIRU2016 チュートリアル
PFI Christmas seminar 2009
信号処理・画像処理における凸最適化
パターン認識第9章 学習ベクトル量子化
CV勉強会@関東 3巻3章4節 画像表現
SMO徹底入門 - SVMをちゃんと実装する
コンピュータビジョンで作る未来の栽培技術POL共催セミナー_20220527
大規模凸最適化問題に対する勾配法
データマイニング勉強会3
関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video
PCAの最終形態GPLVMの解説
第8回関西CV・PRML勉強会(Meanshift)
Nips yomikai 1226
演習発表 Sari v.1.1
関西CVPRML勉強会 kernel PCA
機械学習とコンピュータビジョン入門
Sparse Codingをなるべく数式を使わず理解する(PCAやICAとの関係)
RAPiD
L0TV: a new method for image restoration in the presence of impulse noise

Joint Inverted Indexing