2

In Product Quantization for Nearest Neighbor Search, when it comes to section IV.A, it says they they will use a coarse quantizer too (which they way I feel it, is just a really smaller product quantizer, smaller w.r.t. k, the number of centroids).

I don't really get why this helps the search procedure and the cause might be that I think I don't get the way they use it. Any ides please?

Community
  • 1
  • 1
gsamaras
  • 71,951
  • 46
  • 188
  • 305

1 Answers1

2

As mentioned in the NON EXHAUSTIVE SEARCH section,

Approximate nearest neighbor search with product quantizers is fast and reduces significantly the memory requirements for storing the descriptors.

Nevertheless, the search is exhaustive.

The coarse quantizer is for non-exhaustive search. It retrieves a candidate set first, then searches within the candidate set for nearest neighbors based on PQ.

Thus IMO the performance depends largely on the performance of the coarse quantizer. If the candidate set does not contain some the true nearest neighbors in the first place, we can not get them in the subsequent PQ step either.

And afaik the coarse quantizer thing is one of the basic algorithms for ANN, it doesn't have to be used together with PQ.

dontloo
  • 10,067
  • 4
  • 29
  • 50
  • Hmm, so the coarse quantizer points us to the list (let's say that `w = 1`) we should search. But I am still confused, what are coarse quantizing at first place? It mixes the two quantizers and I am puzzled! – gsamaras Jul 15 '16 at 06:15
  • @gsamaras yes. It's sort of like an indexing method, points within a cell share the same index, so it only search over the points of the same index, to prevent exhaustive search. The coarse quantizer is used for retrieving a candidate set, the PQ is for speeding up sorting at the cost of accuracy. – dontloo Jul 15 '16 at 06:28
  • OK, so we coarse quantize all the database Y (i.e. every vector y in Y)? – gsamaras Jul 15 '16 at 06:29
  • @gsamaras I think so. – dontloo Jul 15 '16 at 06:30
  • @gsamaras and afaik the coarse quantizer thing is one of the basic algorithms for ANN, it doesn't have to be used together with PQ. – dontloo Jul 15 '16 at 06:38
  • How couldn't I find it anywhere? If you have a link, like course slides, please share. – gsamaras Jul 15 '16 at 06:44
  • @gsamaras Sorry I do not have any at hand. It just seems to be a method that anyone familiar with search algorithms might come up with, you divide the space into cells by clustering, when you want to search for nearest neighbors given a query, you look into its belonging cell and cells nearby. I believe it has other names elsewhere. – dontloo Jul 15 '16 at 06:56
  • Right...So We coarse quantize the database and then we access `m` (voronoi) cells. We then somehow, use PQ to quickly search through these cells. – gsamaras Jul 15 '16 at 07:20