Чем Word2Vec отличается от GloVe?
Word2Vec и GloVe — это два популярных метода обучения плотных векторных представлений слов (word embeddings). Они оба стремятся представить каждое слово как точку в многомерном пространстве таким образом, чтобы расстояния и направления между точками отражали семантические и синтаксические отношения между словами. Однако, между ними есть существенные различия в подходах к обучению, структуре и интерпретации.
Основное различие: предсказание vs. подсчёт
| Свойство | Word2Vec | GloVe |
|---|---|---|
| Подход | Прогнозирующий (predictive) | Статистический (count-based) |
| --- | --- | --- |
| Основа | Нейросеть (CBOW / Skip-gram) | Матричное факторизованное разложение |
| --- | --- | --- |
| Использует глобальную статистику | ❌ (локальный контекст) | ✅ (глобальная co-occurrence матрица) |
| --- | --- | --- |
| Скорость обучения | Быстрая | Быстрая, но требует матрицу |
| --- | --- | --- |
| Качество на аналогиях | Высокое | Высокое |
| --- | --- | --- |
Word2Vec
Word2Vec — модель, разработанная командой Google (Tomas Mikolov, 2013), которая учится предсказывать слова на основе контекста.
Архитектуры:
-
**CBOW (Continuous Bag of Words):
**-
Цель: предсказать текущее слово по его контексту.
-
Пример: дано ["кошка", "на", "ковре"], нужно предсказать "спит".
-
-
**Skip-gram:
**-
Цель: по текущему слову предсказать контекстные слова.
-
Пример: дано "спит", нужно предсказать ["кошка", "на", "ковре"].
-
Принцип работы:
-
Используется скользящее окно (например, ±2 слова).
-
Каждое слово сначала кодируется как one-hot вектор, затем преобразуется в плотный вектор.
-
Модель обучается так, чтобы максимизировать вероятность появления контекстных слов.
Обучение:
-
Используется negative sampling или hierarchical softmax для ускорения обучения.
-
Обучаемые веса из скрытого слоя — это и есть embeddings.
Особенности:
-
Обучается только на наблюдаемых контекстных парах.
-
Эффективен на больших корпусах (например, Google News).
-
Не требует сохранения матрицы co-occurrence.
-
Не работает с неизвестными словами, если не использован FastText.
GloVe
GloVe (Global Vectors for Word Representation) был предложен в 2014 году исследователями из Стэнфорда. В отличие от Word2Vec, GloVe основан на глобальной статистике слов в корпусе, а не на предсказании.
Принцип работы:
-
Строится матрица частот совместного появления слов XijX_{ij}, где ii и jj — слова, а XijX_{ij} — сколько раз они встречаются в одном контексте.
-
Модель обучается приближать логарифм частоты log(Xij)\log(X_{ij}) через скалярное произведение векторов слов:
wiT⋅w~j+bi+b~j≈log(Xij)w_i^T \cdot \tilde{w}_j + b_i + \tilde{b}_j \approx \log(X_{ij})
где:
-
wiw_i — вектор для слова ii,
-
w~j\tilde{w}_j — вектор контекстного слова jj,
-
bib_i, b~j\tilde{b}_j — смещения.
Особенности:
-
Использует всю глобальную статистику текста.
-
Модель оптимизирует аппроксимацию логарифма совместной частоты.
-
При обучении вес частоты регулируется специальной функцией f(x)f(x), чтобы не давать слишком большой вес часто встречающимся словам.
Сходства
-
Оба метода генерируют плотные вектора фиксированной размерности.
-
Могут использоваться в downstream-задачах: классификация, кластеризация, поиск синонимов.
-
Оба допускают дообучение на собственных корпусах.
-
Не учитывают полисемию (многозначность слов): одно слово — один вектор.
-
Могут быть загружены и использованы в библиотеках вроде gensim.
Отличия в обучении
| Критерий | Word2Vec | GloVe |
|---|---|---|
| Что минимизирует | Ошибку предсказания контекста | Разницу между скалярным произведением и log частоты |
| --- | --- | --- |
| Природа данных | Пары слово-контекст | Полная матрица co-occurrence |
| --- | --- | --- |
| Локальность контекста | Только ближайшие слова | Статистика по всему корпусу |
| --- | --- | --- |
| Контекст | Ограниченное окно | Потенциально весь документ |
| --- | --- | --- |
| Представление контекста | Вектора обучаются отдельно | Симметрично обучаются и слова, и контексты |
| --- | --- | --- |
Примеры различий в эмбеддингах
Семантические расстояния между словами в Word2Vec и GloVe могут быть разными. Например:
-
Word2Vec лучше запоминает локальные связи, например: "врач" ↔ "больница".
-
GloVe эффективнее в восстановлении глобальных аналогий, например: "Париж - Франция = Берлин - Германия".
Практическое использование
-
Word2Vec часто используется при динамическом обучении модели или когда важны локальные зависимости.
-
GloVe удобен для задач, где можно заранее построить матрицу co-occurrence (и она влезает в память), и нужны глобальные статистики.
-
Оба могут быть предобучены и использоваться «из коробки» для эмбеддинга слов в других NLP-моделях.
Когда что использовать
| Сценарий | Рекомендация |
|---|---|
| Огромный корпус, нужно быстрое обучение | Word2Vec + Skip-gram |
| --- | --- |
| Семантические отношения важнее локальных | GloVe |
| --- | --- |
| Важна устойчивость к редким словам и опечаткам | FastText |
| --- | --- |
| Нужен контекст (полисемия, фразы) | BERT / ELMo / GPT |
| --- | --- |
Word2Vec и GloVe — фундаментальные инструменты в построении word embeddings. Они открыли эру распределённых представлений в NLP, сделав возможными более глубокие архитектуры, такие как трансформеры. Различие между предсказательным подходом и факторизацией матрицы по-прежнему остаётся ключевым при выборе модели для конкретной задачи.