tveasey commented on PR #14078:
URL: https://github.com/apache/lucene/pull/14078#issuecomment-2573444675

   Just sticking purely to the issues raised regarding this PR and the blog Ben 
linked explaining the methodology...
   
   > Although the RaBitQ approach is conceptually rather different to scalar 
quantization, we were inspired to re-evaluate whether similar performance could 
be unlocked for scalar quantization” - this is not true since this target has 
already been achieved by our extended RaBitQ method. Your team should not have 
made this mis-claim by ignoring our extended RaBitQ method since we circulated 
our extended RaBitQ paper to your team more than three months ago. 
   
   This comment relates to the fact that RaBitQ, as you yourself describe it in 
both your papers, is motivated by seeking a form of product quantization (PQ) 
for which one can compute the dot product directly rather than via look up. 
Your papers make minimal reference to scalar quantisation (SQ) other than to 
say the method is a drop in replacement. If you strongly take issue to the 
statement based on this clarification we can further clarify it in the blog. I 
still feel this is separate to this PR and it seems better to discuss that in a 
separate forum.
   
   I would also reiterate that conceptually, our approach is much closer to our 
prior work on int4 SQ we 
[blogged](https://www.elastic.co/search-labs/blog/vector-db-optimized-scalar-quantization)
 about *last April*, which is what inspired it more directly.
   
   > In addition, our extended RaBitQ method proposed the idea of searching for 
the optimal parameters of scalar quantization for each vector (for details, 
please refer to our 
[blog](https://dev.to/gaoj0017/extended-rabitq-an-optimized-scalar-quantization-method-83m)).
   
   I would argue that finding the nearest point on the sphere is exactly 
equivalent to the standard process in SQ of finding the nearest grid point to a 
vector. Perhaps more accurate would be to say you've ported SQ to work with 
spherical geometry, although as before the more natural motivation, and the one 
you yourselves adopt, is in terms of PQ. This isn't related to optimising 
hyperparameters of SQ IMO.
   
   You could argue perhaps that arranging for both codebook centres and corpus 
vectors to be uniformly distributed on the sphere constitutes this sort of 
optimization, although it would not be standard usage. At best you could say it 
indirectly arranges for raw vectors to wind up close in some average sense to 
the quantized vectors. However, I'd take issue with this statement because a 
single sample of a random rotation does not ensure that the corpus vectors are 
uniformly distributed on the sphere: using a single random rotation of, for 
example, a set of points which are concentrated somewhere on the sphere doesn't 
change this. You would have to use different samples for different vectors, but 
this eliminates the performance advantages.
   
   Incidentally, this I think is the reason it performs significantly worse on 
GIST and indeed generally why we found small improvements across the board for 
binary. (Tangentially, it feels like a whitening pre-conditioner might actually 
be of more benefit to performance of RaBitQ. I also can't help but feel some 
combination of hyperparameter optimization and normalization will yield even 
further improvements, but I haven't been able to get this to workout yet.)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to