Product Quantization (PQ) es un método de cuantificación vectorial que descompone un vector de alta dimensión en un conjunto de subvectores de menor dimensión. Cada subvector se cuantifica de forma independiente utilizando un codebook específico para ese subespacio. El codebook para cada subespacio se aprende típicamente mediante K-means clustering. La representación final de un vector original es una concatenación de los índices de los centroides más cercanos en cada subespacio. Esto permite representar vectores de alta dimensión con un número mucho menor de bits, reduciendo significativamente los requisitos de almacenamiento y permitiendo cálculos de distancia más rápidos, como la distancia euclidiana o el producto escalar, mediante la suma de distancias precalculadas entre los centroides de los subespacios (distancia asimétrica) o entre los centroides de los subespacios (distancia simétrica).

PQ es fundamental en sistemas de búsqueda de similitud a gran escala. Es ampliamente utilizado en bibliotecas de búsqueda de vecinos más cercanos aproximados (ANN) como Faiss (Facebook AI Similarity Search), donde se combina a menudo con índices invertidos (IVF-PQ) para mejorar aún más la eficiencia de la búsqueda. Google lo ha empleado en sistemas de recomendación y búsqueda de imágenes, donde la capacidad de buscar rápidamente entre miles de millones de vectores de características es crucial. Otros ejemplos incluyen sistemas de recuperación de información, motores de búsqueda visual y bases de datos vectoriales modernas que necesitan manejar embeddings de modelos de lenguaje grandes (LLMs) o modelos de visión, donde la dimensionalidad puede ser de cientos o miles.

Para un arquitecto de sistemas, Product Quantization es una herramienta vital para escalar sistemas que dependen de la búsqueda de similitud en grandes volúmenes de datos. Permite un trade-off explícito entre la precisión de la búsqueda y la eficiencia computacional/almacenamiento. La elección de la dimensionalidad de los subvectores, el número de centroides por subespacio y la combinación con otros índices (ej., IVF) son decisiones de diseño críticas que impactan directamente el rendimiento y los costos. Entender PQ es clave para diseñar arquitecturas que puedan manejar petabytes de embeddings vectoriales, optimizar el uso de memoria y CPU, y garantizar latencias de consulta aceptables en aplicaciones como motores de recomendación en tiempo real, búsqueda semántica o sistemas de detección de anomalías, donde la escalabilidad y la eficiencia son primordiales.