Open futurely opened 9 years ago
LOPQ is quite straightforward to implement. For training, ProductQuantizationLearning trains an independent product quantizer for each coarse centroid instead of only one for all centroids. For testing, IVFPQ applies the corresponding PQ for the centroid to which the query vector is nearest. As LOPQ illustrated, soft assignment to the coarse centroids could lead to higher recall.
Multiple PQ model files would be easier to manage with #6.
Indeed there are several papers that improve over standard Product Quantization that is implemented here. In case you are interested, we would welcome a contribution of such a method to the project!
In 2013, there are two important improvements of Product Quantization. Optimized Product Quantization non-parametric solution [2] was equivalent to the Cartesian k-means [1] and performed better than PQ. In 2014, Locally Optimized Product Quantization [3] further improved upon OPQ.