Word2vec
Материал из MachineLearning.
| | Статья написана с использованием LLM GPT-5.5 Thinking и проверена участником Vladimir Garanin 15:39, 10 июля 2026 (MSD) |
Word2Vec — семейство нейросетевых моделей для обучения векторных представлений слов (word embeddings), предложенное Томашем Миколовым и соавторами в 2013 году[1]. В отличие от традиционного представления слов в виде независимых идентификаторов, Word2Vec сопоставляет каждому слову плотный вещественный вектор небольшой размерности, в котором близкие по смыслу слова располагаются близко друг к другу.
Word2Vec стал одним из наиболее значимых методов обработки естественного языка и оказал большое влияние на развитие современных языковых моделей. Несмотря на появление контекстных моделей, таких как BERT, идея обучения распределённых представлений слов остаётся фундаментальной для многих методов машинного обучения.
Мотивация
До появления Word2Vec слова чаще всего представлялись с помощью one-hot-кодирования. Если словарь содержит различных слов, каждому слову ставится в соответствие вектор размерности
, содержащий единственную единицу.
Например,
кот:
собака:
Такое представление обладает рядом недостатков:
- размерность равна размеру словаря;
- большинство компонент равны нулю;
- любые два различных слова одинаково далеки друг от друга;
- отсутствует информация о семантической близости слов.
Например, слова кот и кошка оказываются столь же различными, как кот и автомобиль, хотя их смысл очевидно ближе.
Идея Word2Vec заключается в том, чтобы автоматически научиться отображению
где обычно составляет от нескольких десятков до нескольких сотен. Такое пространство называется пространством эмбеддингов.
Распределённые представления слов
Векторные представления Word2Vec строятся по гипотезе распределительной семантики:
Слова, употребляющиеся в похожих контекстах, обычно имеют близкие значения.
Эта идея восходит к работам британского лингвиста Джона Фёрта:
You shall know a word by the company it keeps.
Во время обучения модель наблюдает большое количество предложений и постепенно изменяет координаты слов так, чтобы слова, встречающиеся в похожем окружении, имели близкие векторы.
После обучения расстояние между векторами начинает отражать семантическую близость слов.
Архитектура Word2Vec
Несмотря на название, Word2Vec не предназначен для непосредственной обработки текста или решения задачи классификации. Его единственная цель — построить хорошие векторные представления слов.
Архитектура модели чрезвычайно проста и состоит из трёх слоёв:
- входной слой;
- скрытый линейный слой;
- выходной слой.
Пусть размер словаря равен , а размерность эмбеддинга равна
.
Входное слово кодируется one-hot-вектором
После умножения на матрицу весов
получается скрытое представление
Поскольку входной вектор содержит единственную единицу, вычисление фактически сводится к выбору одной строки матрицы . Именно эта строка и становится эмбеддингом соответствующего слова.
Таким образом, обучение Word2Vec можно рассматривать как оптимизацию матрицы эмбеддингов.
Архитектуры CBOW и Skip-Gram
Авторы предложили две схемы обучения:
- CBOW (Continuous Bag of Words);
- Skip-Gram.
Обе используют одинаковую архитектуру сети, но различаются тем, какую задачу решает модель.
CBOW
В модели CBOW по окружающим словам необходимо восстановить центральное слово.
Например, для предложения
«Кошка сидит на ковре»
при размере окна два модель получает слова
«Кошка», «на», «ковре»
и должна предсказать слово
«сидит».
Если контекст состоит из слов
то скрытое представление обычно вычисляется как среднее их эмбеддингов:
Затем сеть предсказывает вероятность каждого слова словаря.
CBOW обладает двумя важными достоинствами:
- быстро обучается;
- хорошо работает на частых словах.
Однако модель использует усреднение контекста, поэтому частично теряет информацию о порядке слов.
Skip-Gram
Skip-Gram решает обратную задачу.
На вход подаётся центральное слово, а модель должна предсказать окружающие его слова.
Для предыдущего примера входом является
«сидит»
а правильными ответами служат
«кошка», «на», «ковре».
Если центральное слово обозначено через , то модель максимизирует вероятность появления каждого слова внутри окна размера
:
Skip-Gram обучается медленнее CBOW, поскольку делает несколько предсказаний вместо одного.
Тем не менее именно Skip-Gram обычно даёт более качественные эмбеддинги, особенно для редких слов. По этой причине большинство современных реализаций используют именно эту архитектуру.
Вероятностная модель
Для вычисления вероятности появления слова используется функция Softmax.
Пусть центральному слову соответствует вектор , а каждому слову словаря — выходной вектор
. Тогда вероятность появления слова
равна
Знаменатель содержит сумму по всему словарю.
Именно вычисление этой суммы становится главным вычислительным узким местом Word2Vec при работе со словарями, содержащими сотни тысяч или миллионы слов.
Для решения этой проблемы авторы предложили специальные алгоритмы ускорения обучения, наиболее известными из которых стали Negative Sampling и Hierarchical Softmax. Они позволяют отказаться от полного вычисления Softmax и значительно сократить время обучения модели.
Negative Sampling
В исходной модели вычисление функции Softmax требует суммирования по всему словарю. Если словарь содержит миллионы слов, стоимость одного обновления параметров становится слишком высокой.
В работе Distributed Representations of Words and Phrases and their Compositionality Томаш Миколов предложил заменить полную нормализацию значительно более дешёвой процедурой — Negative Sampling[1].
Основная идея состоит в том, что модель должна отличать правильную пару слов от нескольких случайно выбранных неправильных пар.
Пусть центральному слову соответствует вектор , правильному слову контекста — вектор
, а случайно выбранные слова обозначены через
. Тогда оптимизируется функция
где
— сигмоидная функция.
Первое слагаемое увеличивает сходство правильной пары слов, второе уменьшает сходство между центральным словом и случайными словами.
На практике обычно используют от 5 до 20 отрицательных примеров для каждого положительного, благодаря чему стоимость обучения практически перестаёт зависеть от размера словаря.
Hierarchical Softmax
Другим способом ускорения обучения является Hierarchical Softmax.
Вместо вычисления вероятностей для всех слов словаря строится бинарное дерево, листья которого соответствуют словам.
Вероятность слова представляется как произведение вероятностей переходов вдоль пути от корня дерева к соответствующему листу.
Если глубина дерева равна , то вычислительная сложность одного предсказания уменьшается с
до
Чаще всего дерево строится алгоритмом Хаффмана. В этом случае наиболее частые слова располагаются ближе к корню и требуют меньшего числа вычислений.
Hierarchical Softmax особенно эффективен при очень больших словарях, тогда как Negative Sampling обычно обеспечивает лучшее качество эмбеддингов на большинстве практических задач.
Обучение модели
Word2Vec обучается методом обратного распространения ошибки с использованием стохастического градиентного спуска или его модификаций.
Во время обучения изменяются веса двух матриц:
- входной матрицы эмбеддингов;
- выходной матрицы предсказаний.
После завершения обучения обычно сохраняют только входную матрицу, строки которой становятся векторными представлениями слов.
Обучение полностью является самообучением: модель не использует заранее размеченные данные, а извлекает информацию исключительно из последовательностей слов.
Геометрические свойства эмбеддингов
Одним из наиболее известных результатов Word2Vec стало появление осмысленной геометрической структуры пространства эмбеддингов.
Слова, имеющие похожий смысл, оказываются расположенными близко друг к другу. Например, слова
- «кот»;
- «кошка»;
- «котёнок»
обычно имеют небольшое расстояние между своими векторами.
Более удивительным оказалось то, что некоторые смысловые отношения соответствуют почти линейным направлениям в пространстве эмбеддингов.
Наиболее известный пример:
Для слов king, man, woman и queen:
Подобные аналогии возникают не потому, что модель знает грамматику или логику, а потому, что статистические закономерности совместной встречаемости слов отражаются в геометрии пространства.
Следует отметить, что такие аналогии являются эмпирическим свойством Word2Vec и выполняются далеко не для всех слов.
Косинусная близость
Для сравнения эмбеддингов обычно используют не евклидово расстояние, а косинусную меру близости.
Для двух векторов и
Если косинус близок к единице, направления векторов почти совпадают, а соответствующие слова считаются семантически похожими.
Поиск ближайших соседей по косинусной близости является одной из наиболее распространённых операций при работе с Word2Vec.
Применения
Word2Vec широко используется в задачах обработки естественного языка.
Наиболее распространённые применения:
- поиск семантически похожих слов;
- автоматическое расширение словарей;
- классификация текстов;
- анализ тональности;
- информационный поиск;
- рекомендательные системы;
- машинный перевод;
- извлечение признаков для других моделей.
Даже если конечная модель является более сложной, предварительно обученные эмбеддинги Word2Vec часто используются как начальное представление слов.
Ограничения
Несмотря на широкую популярность, Word2Vec обладает рядом существенных ограничений.
Во-первых, каждое слово имеет только один вектор независимо от контекста. Например, слово «лук» будет иметь одинаковое представление как в предложении
«купить зелёный лук»
так и в предложении
«натянуть лук перед выстрелом».
Современные модели, такие как BERT, строят различные представления одного и того же слова в зависимости от окружающего контекста.
Во-вторых, качество эмбеддингов сильно зависит от размера корпуса. На небольших коллекциях текстов модель может не успеть изучить устойчивые статистические зависимости.
Кроме того, Word2Vec не использует информацию о внутреннем строении слов. Поэтому редкие словоформы, опечатки и новые слова обычно представляются плохо.
Связанные методы
После появления Word2Vec было предложено множество методов обучения эмбеддингов.
- GloVe — обучает эмбеддинги на основе глобальной матрицы совместной встречаемости слов.
- FastText — представляет слово как множество символьных n-грамм, благодаря чему лучше работает с редкими словами и морфологически богатыми языками.
- ELMo — строит контекстные представления слов при помощи двунаправленных рекуррентных сетей.
- BERT — использует архитектуру Трансформер и формирует различные эмбеддинги одного и того же слова в разных предложениях.
Несмотря на развитие контекстных моделей, Word2Vec остаётся одним из наиболее простых, быстрых и широко используемых методов построения распределённых представлений слов.
См. также
- Обработка естественного языка
- Векторное представление
- Нейронная сеть
- FastText
- GloVe
- BERT
- Трансформер
- Стохастический градиентный спуск
Литература
- Mikolov, T., Chen, K., Corrado, G., Dean, J. Efficient Estimation of Word Representations in Vector Space. arXiv:1301.3781, 2013.
- Mikolov, T., Sutskever, I., Chen, K., Corrado, G., Dean, J. Distributed Representations of Words and Phrases and their Compositionality. NeurIPS, 2013.
- Goldberg, Y., Levy, O. word2vec Explained: Deriving Mikolov et al.'s Negative-Sampling Word-Embedding Method. arXiv:1402.3722, 2014.
- Jurafsky, D., Martin, J. H. Speech and Language Processing. 3rd edition (draft).
- Manning, C. D., Schütze, H. Foundations of Statistical Natural Language Processing. MIT Press, 1999.

