эмбеддинг

Эмбеддинг (embedding, векторное представление) — числовой вектор в многомерном пространстве, который кодирует смысл и свойства объекта — слова, предложения, изображения, пользователя или любой другой сущности. Близость объектов в реальном мире отражается в близости их векторов: синонимы расположены рядом, антонимы дальше, тематически связанные концепции формируют кластеры.

Идея и интуиция

Компьютер не понимает слова — только числа. Ранние подходы (one-hot encoding) кодировали слова как разреженные бинарные векторы длиной N (размер словаря), где 1 стоит на позиции данного слова. Такое представление не несёт семантики: «кот» и «кошка» одинаково далеки, как «кот» и «автомобиль».

Эмбеддинги решают это: плотный вектор размерностью 256–4096 чисел отражает положение в семантическом пространстве. Знаменитый пример: vector(«король») − vector(«мужчина») + vector(«женщина») ≈ vector(«королева»). Арифметика над эмбеддингами работает как арифметика над смыслами.

Как обучаются эмбеддинги

Word2Vec и GloVe

Классические методы 2013–2014 годов. Word2Vec обучается предсказывать соседние слова по центральному (Skip-gram) или центральное по соседним (CBOW). GloVe учитывает глобальную статистику совместной встречаемости слов. Результат — статические эмбеддинги: слово имеет один фиксированный вектор вне зависимости от контекста.

Контекстуальные эмбеддинги

BERT, ELMo и их наследники генерируют разные векторы для одного слова в разных контекстах: «банк» в «река с крутым берегом» и «я открыл счёт в банке» получают разные представления. Это фундаментальный прогресс по сравнению с Word2Vec.

Sentence и Document эмбеддинги

Специализированные модели (Sentence-BERT, E5, BGE, text-embedding-ada-002) кодируют целые предложения и абзацы в единый вектор. Обучаются на парах «похожих» предложений с контрастивными функциями потерь (cosine similarity, triplet loss).

Применение эмбеддингов

Семантический поиск

Запрос «лекарство от головной боли» найдёт документы о парацетамоле, аспирине, мигрени — хотя точных слов нет. Векторный поиск работает по смыслу, а не по ключевым словам.

Рекомендательные системы

Пользователи и товары кодируются в общем пространстве. Рекомендации — ближайшие соседи пользователя среди товаров. Именно так работают YouTube, Spotify, Amazon.

Кластеризация и анализ текстов

Тематическое моделирование, дедупликация, обнаружение аномалий — всё это применяет эмбеддинги для группировки и сравнения.

Мультимодальные эмбеддинги

CLIP (OpenAI) обучает изображения и подписи к ним в общем пространстве. Текстовый запрос «рыжий кот на диване» можно использовать для поиска фотографий без разметки изображений по словам.

Параметры эмбеддингов

Размерность вектора (128, 256, 768, 1536, 3072) — больше обычно лучше, но дороже в хранении и поиске. Метрика (косинусное сходство, евклидово расстояние, dot product) — определяется архитектурой модели. Максимальная длина входа — модели ограничены числом токенов (512, 8192, 32 768).

Популярные embedding-модели

  • text-embedding-3-large (OpenAI) — 3072D, отличное качество для английского.
  • E5-large-v2, E5-mistral — сильные открытые модели для мультиязычного поиска.
  • BGE-M3 (BAAI) — поддерживает 100+ языков, гибридный поиск.
  • nomic-embed-text — открытая, конкурентоспособна с коммерческими.
  • multilingual-e5 — хорошие результаты для русского языка.

Матрёшка эмбеддингов (Matryoshka Representation Learning)

Современный подход: начальные N измерений вектора уже несут максимум информации. Можно обрезать вектор 1536D до 256D с небольшой потерей качества — это снижает стоимость хранения и поиска без переиндексации. text-embedding-3 от OpenAI поддерживает этот метод нативно.

Частые вопросы

  • Какую размерность эмбеддинга выбрать?

    Для большинства задач 768–1536 измерений обеспечивают хороший баланс качества и производительности. Меньшие размерности (128–256) подходят для мобильных приложений и edge-устройств. Большие (3072+) дают прирост на сложных semantic tasks, но увеличивают затраты на хранение и поиск.

  • Работают ли эмбеддинги для русского языка?

    Да, но нужно выбирать мультиязычные модели. BGE-M3, multilingual-e5-large, LaBSE хорошо работают на русском. Для специализированных доменов (юриспруденция, медицина) рекомендуется дообучить модель на соответствующих данных или использовать модели, обученные специально на русском корпусе.

  • Как измерить качество эмбеддингов для своей задачи?

    Используйте MTEB (Massive Text Embedding Benchmark) как отправную точку для выбора модели. Для конкретной задачи создайте небольшой оценочный датасет с вопросами и релевантными документами, затем измерьте Recall@k и NDCG@k для кандидатов. Данные вашего домена часто меняют ранжирование моделей по сравнению с публичными бенчмарками.

Не хватает деталей?

Напишите, что уточнить по теме «эмбеддинг» — это помогает улучшать материал и подсказывает, какие термины добавить дальше. Email необязателен: укажите, если хотите ответ только для вас (мы не шлём рассылки).

Поделиться