Matryoshka frente a PCA: cómo reducir dimensiones de embeddings sin perder calidad

Fuentes: Honey, I shrunk the embeddings: Matryoshka vs. PCA

Cuando se usan grandes modelos de lenguaje con documentos propios, almacenar y buscar millones de vectores de alta dimensión se vuelve caro y lento. Frente a este problema, los laboratorios de IA popularizaron el Matryoshka Representation Learning (MRL), una técnica entrenada dentro del modelo que permite conservar solo las primeras dimensiones del vector sin perder demasiada calidad de recuperación. Dylan Castillo se preguntó si un método clásico y posterior al entrenamiento, el Análisis de Componentes Principales (PCA), podría rendir igual o mejor.

Para comprobarlo, comparó la truncación propia de MRL con PCA sobre ocho conjuntos de referencia del benchmark BEIR (SciFact, NFCorpus, ArguAna, FiQA-2018, SciDocs, Quora, TREC-COVID y Touché 2020), reduciendo los embeddings a 512, 256, 128, 64 y 32 dimensiones. Usó dos modelos entrenados con MRL (text-embedding-3-small de OpenAI, de 1.536 dimensiones, y qwen3-embedding-8b de Alibaba, de 4.096) y, como control, text-embedding-ada-002, un modelo antiguo sin MRL. Todas las métricas NDCG@10 obtenidas se parecen a las oficiales del MTEB, lo que valida la canalización de evaluación.

El resultado central es que PCA iguala o supera a la truncación MRL en casi todas las dimensiones y en ambos modelos con MRL: por ejemplo, con 128 dimensiones, text-embedding-3-small conserva el 90 % de la calidad usando PCA frente al 86 % con truncación. Además, PCA funciona sobre modelos no entrenados con MRL, aunque requiere guardar y versionar la matriz de proyección y aplicarla de forma coherente al indexar y al consultar. El autor también examina cuánta muestra de ajuste necesita PCA y si conviene ajustarlo sobre el mismo dominio del corpus. El código y los datos están disponibles en el repositorio asociado.