k* 再生值?

k* reproduction values?

我正在阅读 PQ for NNS 第 II.A 部分第 3 页中有关产品量化的内容,上面写着:

..all subquantizers have the same finite number k* of reproduction values. In that case the number of centroids is (k*)^m

其中 m 是子向量的数量。

然而,我根本没有得到k*!我的意思是在矢量量化中,我们将每个矢量分配给 k 个质心。在产品量化中,我们将每个子向量分配给 k 个质心。 k* 是如何发挥作用的?

我认为k*是每个子的质心数space,k是整体的质心数space。

例如,如果数据是 2d,如 (x, y),我们将每个维度视为一个子space,并分别用 say k*=3 进行 kmeans,我们将得到每个子 space、{x1, x2, x3}{y1, y2, y3}.

中有 3 个质心

那么整个space就有3^2=9个可能的质心,分别是*(x1, y1),(x1, y2) , (x1, y3), (x2, y1)...

通过这种方式我们可以使用少量内存获得大量质心(论文中的2^64),因为我们不必存储所有k*^m个质心,我们只需要在每个子space.

中存储k*个质心

编辑:
在上面的例子中,子spaces的数量m=2,每个子的质心数space k*=3,整个子的质心数space k=3^2,每个子的维数space D*=1,要存储的浮点数mD*k*=Dk*=6


*x 和 y 的笛卡尔积