Нейросетевое встраивание
Материал из MachineLearning.
| | Статья написана с использованием LLM Claude Sonnet 4 и проверена участником Emil Petrov 20:15, 14 июля 2026 (MSD)
Промпт приводится полностью в Обсуждение:Нейросетевое встраивание |
Нейросетево́е вста́ивание (англ. neural network embedding, также векторное представление, эмбеддинг) — отображение объектов дискретного пространства (слов, токенов, предложений, документов, пользователей, узлов графа, изображений и т.д.) в непрерывное векторное пространство фиксированной размерности [1]. Эмбеддинги позволяют нейронным сетям оперировать символами так же, как числами, и кодировать семантические, синтаксические или структурные отношения геометрией пространства.
Аналогия: словарь языка — огромный шкаф с ящиками-словами. Эмбеддинг раскладывает ящики в комнате так, что «близкие по смыслу» оказываются рядом, а «далёкие» — далеко. Тогда поиск, классификация и аналогии превращаются в операции с расстояниями и углами, а не в хрупкие правила на строках.
В современных больших языковых моделях на архитектуре трансформера встраивания токенов — первый слой представления; механизм внимания далее смешивает их в контекстуальные состояния. Отдельные эмбеддинг-модели обслуживают семантический поиск и RAG в промпт-инжиниринге.
Основная идея
Качественный эмбеддинг отображает семантическую близость в геометрическую. Если — функция встраивания, то для семантически близких
и далёкого
ожидают:
Часто используют косинусную близость:
Размерность типично от 64–300 (классические word embeddings) до 384–4096 (современные sentence / LLM embeddings). Слишком малая
теряет различия; слишком большая удорожает хранение и ANN-поиск без гарантии лучшего качества.
Статические словесные эмбеддинги
Word2Vec
Модель Mikolov et al. (2013) обучает плотные векторы слов на задаче предсказания контекста[1]:
- CBOW — предсказать целевое слово по усреднённому контексту;
- Skip-gram — предсказать контекстные слова по целевому.
Функция потерь Skip-gram (в упрощённом виде):
где — длина корпуса,
— размер окна. На практике применяют negative sampling или hierarchical softmax.
Знаменитое свойство линейных аналогий (классический пример на английских токенах; по-русски: «король − мужчина + женщина ≈ королева»):
Ограничение: один вектор на словоформу/тип — многозначность («банка» как финансовое учреждение и как ёмкость) схлопывается в одну точку.
GloVe
GloVe (Global Vectors) явно использует статистику совместной встречаемости[1]. Целевая функция:
где — счётчик совместных появлений,
— весовая функция, снижающая влияние редких и сверхчастых пар. GloVe сочетает глобальную матричную факторизацию с локальным контекстным окном.
FastText
FastText расширяет Word2Vec: слово представляется суммой эмбеддингов символьных n-грамм[1]. Это даёт векторы для out-of-vocabulary и морфологически богатых языков (в том числе русского): невиданное слово всё же собирается из знакомых кусков.
Контекстуальные эмбеддинги
Статический вектор не зависит от предложения. Контекстуальный эмбеддинг — функция от всего контекста: одно и то же слово получает разные векторы в разных окружениях.
ELMo
ELMo строит представления двунаправленной LSTM и комбинирует скрытые состояния разных слоёв взвешенной суммой[1]. Нижние слои ближе к синтаксису, верхние — к семантике. ELMo стал мостом от Word2Vec к трансформерной эре.
BERT и трансформерные представления
Трансформерные энкодеры вроде BERT производят мощные контекстуальные состояния через многослойное само-внимание[1]. Для эмбеддинга предложения часто берут токен [CLS] или mean-pooling по токенам. Важно: «сырой» BERT без дообучения на семантическую близость — слабый sentence embedding: косинус плохо ранжирует парафразы (классический результат Sentence-BERT).
Decoder-only LLM также дают скрытые состояния, но для retrieval обычно обучают или адаптируют отдельные embedding-головы / bi-энкодеры.
Sentence-BERT (SBERT)
Sentence-BERT дообучает сиамские/триплетные сети на парах предложений, чтобы косинус в пространстве эмбеддингов отражал семантическую близость[1]. Классическая контрастивная (contrastive) потеря с отступом:
где ,
— метка схожести,
— margin. На практике широко используют Multiple Negatives Ranking Loss и аналоги InfoNCE.
SBERT сделал возможным быстрый семантический поиск: один проход энкодера на документ + ANN, вместо кросс-энкодера на каждую пару.
Контрастивное и мультимодальное обучение
InfoNCE, SimCSE
Контрастивное обучение притягивает аугментации одного объекта и отталкивает негативы. Типичный InfoNCE:
где — температура. SimCSE получает позитивы dropout-аугментацией одного предложения — простой и сильный способ sentence embeddings без размеченных пар[1].
CLIP
CLIP обучает совместное пространство текста и изображений контрастивной целью на парах (caption, image)[1]. Это основа zero-shot классификации изображений и текстового поиска по картинкам; родственные идеи используются в conditioning диффузионных моделей (текстовые энкодеры как guidance).
Графовые эмбеддинги (кратко)
DeepWalk / Node2Vec генерируют случайные блуждания по графу и обучают Skip-gram на последовательностях узлов — «слова» заменяются вершинами. Есть также GNN-подходы (GraphSAGE, GAT), где эмбеддинг узла агрегирует соседей. Применения: рекомендации, детекция сообществ, knowledge graphs. В LLM-экосистеме графовые эмбеддинги встречаются в entity linking и retrieval по knowledge base.
Поиск ближайших соседей (ANN)
Для запроса найти
ближайших векторов из базы
:
Точный kNN на миллионах/миллиардах векторов недоступен по latency; используют приближённый поиск (ANN):
- HNSW (Hierarchical Navigable Small World) — многоуровневый граф близости, высокий recall при низкой latency[1];
- IVF — кластеризация (Voronoi) + поиск в коротком списке ячеек;
- Product Quantization (PQ) — сжатие векторов для экономии памяти.
Библиотеки: FAISS, ScaNN, Annoy, hnswlib; векторные СУБД (pgvector, Milvus, Qdrant и др.). Метрики качества поиска: Recall@k, latency p95, память на вектор. Ловушка: смена модели эмбеддингов требует полной переиндексации — пространства несовместимы.
Оценка качества эмбеддингов
- внутренние: Word Similarity (WordSim, SimLex), аналогии; для предложений — STS (Semantic Textual Similarity), корреляция с человеческими оценками;
- внешние / retrieval: BEIR, MTEB — multi-task benchmark для embedding-моделей (retrieval, clustering, classification);
- downstream: качество RAG (answer faithfulness), классификации с линейным зондом на замороженных эмбеддингах;
- калибровка: нормализация L2, размерность, доменная адаптация (fine-tune на своих парах query–doc).
Частая ошибка: оценивать только in-domain примеры и удивляться деградации на другом жаргоне или языке.
Применения
- обработка естественного языка — перевод (как компоненты), анализ тональности, кластеризация текстов, дедупликация;
- семантический поиск и RAG в связке с промпт-инжинирингом и LLM;
- рекомендательные системы (user/item embeddings);
- мультимодальный поиск и guidance для диффузионных генераторов;
- RLHF / preference models — представления пар (запрос, ответ) внутри reward model;
- anomaly detection и метрическое обучение.
Ограничения и ловушки
- hubness в высоких размерностях: некоторые векторы становятся «ближайшими соседями» слишком часто;
- смешение доменов и языков без multilingual / domain-adapted моделей;
- утечка тестовых пар в обучение sentence-моделей завышает STS;
- использование эмбеддингов LLM «как есть» без contrastive fine-tune для retrieval;
- этические риски: эмбеддинги наследуют корпусные стереотипы (гендер, раса и т.д.).
Практический пайплайн семантического поиска
Типичный промышленный контур:
- выбрать или дообучить bi-энкодер (SBERT-класс / E5 / BGE и аналоги) под язык и домен;
- нарезать документы на чанки (баланс полноты и точности; overlap);
- сохранить векторы и метаданные; построить HNSW/IVF-индекс;
- на запросе — encode → ANN → (опционально) реранкинг кросс-энкодером → сборка контекста для LLM.
Реранкинг дороже, но повышает precision@k; для низкой latency часто ограничивают кандидатов (например, top-100 → top-10). В промпт-инжиниринге RAG качество «ответа» нельзя диагностировать одним LLM-judge: отдельно смотрят retrieval и grounded generation.
Инженерные детали, которые ломают качество чаще теории:
- разные модели/версии эмбеддингов в одной базе без миграции;
- нормализация векторов включена при обучении, но забыта на инференсе (или наоборот);
- чанки режут посередине таблиц и списков;
- query и documents кодируются разными промпт-префиксами (у ряда моделей это обязательно).
См. также
- Большая языковая модель
- Трансформер (модель)
- Механизм внимания
- Промпт-инжиниринг
- Обучение с подкреплением из обратной связи человека (RLHF)
- Диффузионная модель
Примечания
Литература
- Goodfellow I., Bengio Y., Courville A. Deep Learning. — MIT Press, 2016. — С. 502–511.
- Mikolov T. et al. Distributed Representations of Words and Phrases and their Compositionality // Advances in Neural Information Processing Systems. — 2013. — Т. 26.
- Pennington J., Socher R., Manning C. D. GloVe: Global Vectors for Word Representation // Empirical Methods in Natural Language Processing. — 2014. — С. 1532–1543.
- Bojanowski P. et al. Enriching Word Vectors with Subword Information // Transactions of the Association for Computational Linguistics. — 2017. — Т. 5. — С. 135–146.
- Devlin J. et al. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding // NAACL. — 2019. — С. 4171–4186.
- Reimers N., Gurevych I. Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks // Empirical Methods in Natural Language Processing. — 2019.
- Gao T., Yao X., Chen D. SimCSE: Simple Contrastive Learning of Sentence Embeddings // Empirical Methods in Natural Language Processing. — 2021.
- Radford A. et al. Learning Transferable Visual Models From Natural Language Supervision (CLIP) // International Conference on Machine Learning. — 2021.
- Malkov Y. A., Yashunin D. A. Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs // IEEE TPAMI. — 2020. — Т. 42. — № 4. — С. 824–836.

