Vector quantization в представлениях и моделях

Термин глоссария

Vector quantization


Vector quantization — техника дискретизации непрерывных векторных представлений путём сопоставления их с ближайшими элементами из конечного набора кодов (codebook).

Определение

Vector quantization (VQ) — это метод представления данных, при котором непрерывные векторы заменяются дискретными индексами из заранее обученного кодбука. Каждый входной вектор аппроксимируется ближайшим кодом (prototype), что позволяет сократить объём представления, стабилизировать обучение и перевести непрерывные сигналы (аудио, изображение, видео, латенты) в дискретную форму.

VQ широко используется в генеративных моделях (VQ-VAE, VQ-GAN), аудиомоделях, видео-моделях, speech-to-text пайплайнах и системах хранения/поиска признаков.

Как работает

1. Кодбук (codebook)

Кодбук — это набор из K векторов фиксированной размерности:

  • каждый код представляет прототип области пространства;
  • кодбук может обучаться или инициализироваться заранее;
  • размер кодбука влияет на точность и степень сжатия.

2. Квантование

Для каждого входного вектора z:

  • вычисляется расстояние до всех кодов (обычно L2);
  • выбирается ближайший код e_k;
  • вектор заменяется индексом или самим кодом.

Это преобразует непрерывное представление в дискретное.

3. Обучение и градиенты

Основная сложность VQ — недифференцируемость операции выбора. Применяются:

  • Straight-Through Estimator (STE) — градиенты пропускаются напрямую;
  • Commitment loss — заставляет энкодер «привязываться» к кодам;
  • EMA-обновление кодбука — стабильное обновление прототипов.

Типовая функция потерь включает reconstruction loss + VQ loss + commitment loss.

4. Иерархия и факторизация

Для сложных данных используются расширения:

  • multi-codebook (несколько независимых кодбуков);
  • residual vector quantization (RVQ);
  • hierarchical VQ (разные уровни детализации);
  • product quantization (разбиение вектора на подпространства).

Где применяется

  • Генеративные модели изображений и видео (VQ-VAE, VQ-GAN).
  • Аудиомодели и speech (EnCodec, SoundStream).
  • Токенизация непрерывных латентов для Transformer-моделей.
  • Сжатие признаков и хранение эмбеддингов.
  • Поиск и ANN-индексация (Product Quantization).

Практические примеры использования

VQ-VAE использует vector quantization для дискретизации латентного пространства, что позволяет обучать авторегрессионные модели поверх кодов. VQ-GAN применяет VQ в сочетании с adversarial loss для генерации высококачественных изображений.

В аудио EnCodec и SoundStream используют RVQ для кодирования речи в дискретные токены, которые затем могут быть использованы в TTS или speech-to-speech моделях. В retrieval и векторных БД product quantization применяется для сжатия эмбеддингов и ускорения ANN-поиска.

Ключевые свойства

  • Переход от непрерывных векторов к дискретным кодам.
  • Сильное сжатие представлений.
  • Упрощение генерации и моделирования последовательностей.
  • Контроль ёмкости латентного пространства.
  • Совместимость с Transformer-архитектурами.

Проблемы и ограничения

  • Codebook collapse — использование малого числа кодов.
  • Потеря информации при агрессивной квантовании.
  • Сложность стабильного обучения.
  • Чувствительность к размеру и инициализации кодбука.
  • Артефакты при реконструкции сложных сигналов.

Преимущества и ограничения

  • Плюс: компактные, дискретные и управляемые представления.
  • Минус: компромисс между точностью и степенью сжатия.

Связанные термины

  • VQ-VAE
  • VQ-GAN
  • Product quantization
  • Latent space
  • Discrete tokens

Категория термина

Работа с данными и векторами