Product Quantization 乘积量化

一种对向量的量化表示,压缩向量的算法。

source: 乘积量化(PQ)详解:算法流程、IVFPQ优化与应用-CSDN博客

计算过程

指定两个超参数:

  • K 需要量化的类别数量
  • M 向量的分段数量

训练过程:

  • 分段:将向量分为 M 段。
  • 聚类:将向量的每一段,利用 K-Means 聚类。

量化表示:将目标向量利用聚类的中心点表示。

查询:使用获得的聚类中心,估计向量之间的距离。有两种方式:

  • 对称距离计算:计算聚类中心之间的距离

  • 非对称距离计算:计算查询向量和类中心之间的距离

例子

如果 K = 256,M = 8。对于一个 D = 64 维的向量。例如:

V = [a1, a2, … ,a64]

经过量化,可以表示为 8 维的向量,其中每一个维度的值在 0 - 256 之间。

Vq = [2, 256, 43, 32, 57, 22, 34, 144]

以此完成对向量 V 的压缩。

思想

  • 编码:利用有损压缩方法,减少向量表示所使用的数据空间达到。
  • 估计:利用聚类之后的中心点计算距离,得到向量距离之间的大致的值。