论文链接:https://hal.inria.fr/file/index/docid/825085/filename/jegou_pq_postprint.pdf
Product quantization(PQ),国内直译为乘积量化,这里的乘积是指笛卡尔积,意思是指把原来的向量空间分解为若干个低维向量空间的笛卡尔积,并利用Kmeans算法对分解得到的低维向量空间分别做量化。这样每个向量就能由多个低维空间的量化code组合表示。
换句话描述就是,把原始D维向量分成m组,那么每组就是D/m维的子向量,各自用kmeans算法学习到一个码本,然后这些码本的笛卡尔积就是原始D维向量对应的码本。
用qj表示第j组子向量,用Cj表示其对应学习到的码本,那么原始D维向量对应的码本就是C=C1×C2×…×Cm。
用k∗表示子向量的聚类中心点数或者说码本大小,那么原始D维向量对应的聚类中心点数或者说码本大小就是k=(k∗)m。