Aivaro
  • Оглавление
  • Вопросы
  • Практика
  • Вики
  • Материалы сообщества
  • Тесты
  • Поиск
✈Telegram @ai_varo
RUEN中文
…
Оглавление/Вопросы/#925

Что такое GloVe? Чем отличается от Word2Vec (матричные разложения vs локальные контексты)?

Краткий тезис

GloVe (Global Vectors) — метод получения плотных векторных представлений слов, основанный на факторизации матрицы совместной встречаемости (co‑occurrence matrix). В отличие от Word2Vec, который использует локальные контекстные окна и обучается предсказанием соседних слов, GloVe явно учитывает глобальную статистику всего корпуса, что, по заявлениям авторов, улучшает качество на задачах аналогий и семантической близости.

2. Считает глобальную статистику (всего корпуса)

В отличие от Word2Vec, который обрабатывает корпус последовательно (онлайн‑обучение), GloVe сначала агрегирует всю статистику в матрицу совместной встречаемости. Это даёт два преимущества:

  • Учёт редких, но информативных пар — матрица содержит все пары, а не только те, что попали в окно при проходе.
  • Контроль над весами — функция (f(X_{ij})) позволяет уменьшить влияние слишком частых стоп‑слов (например, «the», «and») и одновременно подавить шум от очень редких пар.

Размер матрицы
Для корпуса из (V) уникальных слов матрица имеет размер (V \times V). На практике она разрежена: хранятся только ненулевые элементы (обычно не более 1–5% от всех возможных пар). Для больших словарей (сотни тысяч слов) используют хранение в формате COO или CSR.

Сравнение с Word2Vec по статистике

ХарактеристикаGloVeWord2Vec (Skip‑gram / CBOW)
Тип статистикиГлобальная (вся матрица)Локальная (окно)
ОбучениеОдин проход по парам из матрицыМногократные проходы по корпусу
Память(O([text](/wiki/text){nnz})) (ненулевые элементы)(O(V \cdot d)) (векторы)
ПараллелизмЛегко распараллелить по парамТребует синхронизации градиентов

3. Word2Vec: локальные окна

Word2Vec (Mikolov et al., 2013) обучает эмбеддинги, решая задачу предсказания слова по контексту (CBOW) или контекста по слову (Skip‑gram). Модель не строит явную матрицу, а использует скользящее окно.

Skip‑gram
Для каждого центрального слова (w_t) модель максимизирует вероятность появления слов в окне (w_{t-k}, \dots, w_{t-1}, w_{t+1}, \dots, w_{t+k}):

[ \max \sum_{t} \sum_{-k \le j \le k, j \ne 0} \log P(w_{t+j} | w_t) ]

где (P(w_O | w_I) = \frac{\exp(v_{w_O}^T v_{w_I})}{\sum_{w} \exp(v_w^T v_{w_I})}).

Практические приёмы

  • Negative sampling — аппроксимация softmax через бинарную классификацию.
  • Subsampling — удаление частых слов для ускорения.
  • Динамическое окно — случайный размер окна от 1 до заданного максимума.

Почему Word2Vec не использует глобальную статистику

  • Он обучается на последовательных примерах, что позволяет обрабатывать корпуса любого размера без хранения огромной матрицы.
  • Локальные окна лучше улавливают синтаксические и тематические отношения (например, «яблоко» и «зелёное» рядом), но могут упускать глобальные закономерности (например, «яблоко» и «фрукт» встречаются редко в одном окне, но часто в разных документах).

4. Практическое различие: GloVe лучше на аналогиях (по заявлениям)

Авторы GloVe провели эксперименты на наборах аналогий (SemEval, Google Analogy Test Set) и показали, что GloVe превосходит Word2Vec на семантических аналогиях (отношения «часть‑целое», «гипероним‑гипоним»), в то время как Word2Vec может быть сильнее на синтаксических (формы глаголов, степени сравнения).

Примеры аналогий

ТипПримерGloVe (точность)Word2Vec (точность)
Семантические«Париж — Франция + Италия ≈ Рим»81%75%
Синтаксические«бежать — бежал + плыть ≈ плыл»67%72%

Причина
GloVe явно моделирует логарифм отношения вероятностей (P(k|i)/P(k|j)), что напрямую соответствует линейным отношениям в пространстве эмбеддингов. Word2Vec же оптимизирует локальные предсказания, и линейные аналогии возникают как побочный эффект, а не как цель.

Ограничения

  • GloVe требует хранения всей матрицы co‑occurrence, что для корпусов >10 млрд токенов может быть проблематично.
  • Word2Vec легче дообучать на новых данных (инкрементальное обучение).
  • На практике разница не всегда значительна; выбор метода часто определяется размером корпуса и доступными вычислительными ресурсами.

5. Пет-проект для закрепления

Задача: Сравнить GloVe и Word2Vec на задаче поиска аналогий в русском языке, используя корпус новостей (например, Lenta.ru или НКРЯ).

Инструменты

  • Python, библиотеки: gensim (Word2Vec), glove-python или numpy для ручной реализации GloVe.
  • Корпус: дамп новостей Lenta.ru (около 800 тыс. статей) или подкорпус НКРЯ.
  • Тестовый набор: русские аналогии (например, из статьи «Russian Analogy Test Set» или составленный вручную).

Шаги

  1. Предобработка: токенизация (spaCy или pymorphy2), удаление пунктуации, нижний регистр.
  2. Построить матрицу co‑occurrence для GloVe (окно 10, минимальная частота 5).
  3. Обучить GloVe (размерность 300, 100 итераций AdaGrad).
  4. Обучить Word2Vec (Skip‑gram, окно 5, negative sampling 5, размерность 300).
  5. Для каждой аналогии (a:b :: c:d) вычислить вектор (v_b - v_a + v_c) и найти ближайшее слово по косинусной близости.
  6. Сравнить точность на семантических и синтаксических аналогиях.

Ожидаемый результат

  • GloVe покажет более высокую точность на семантических аналогиях (например, «Москва — Россия + Франция ≈ Париж»).
  • Word2Vec может быть лучше на синтаксических (например, «идти — шёл + бежать ≈ бежал»).
  • Вы получите практическое понимание, когда стоит выбирать глобальную статистику, а когда — локальные окна.

Связь с другими вопросами

ВопросТема
911Word2Vec, локальные контексты

Навигация

  • Предыдущий: 924
  • Следующий: 926
  • Индекс: 00. Индекс разборов