# Кристофер Мэннинг: Как векторы слов понимают смысл и контекст

Источник: https://www.youtube.com/watch?v=nBor4jfWetQ
Канал: Stanford Online
Опубликовано: 04.03.2025

---

## Глубинное обучение и векторные представления слов: итоги лекции Stanford CS224N
[[JUMP:0:05]]

Лекция Кристофера Мэннинга в рамках курса Stanford CS224N посвящена фундаментальным аспектам работы с векторными представлениями слов (word vectors) и плавному переходу к архитектуре нейронных сетей. Ключевая идея заключается в том, что простые математические операции над векторами, полученными из больших корпусов текстов, позволяют моделям эффективно улавливать семантические связи и даже решать задачи на аналогии.

### ⚙️ Оптимизация и обучение word2vec
[[JUMP:3:02]]

Для минимизации ошибок модели используется градиентный спуск, однако стандартный алгоритм слишком ресурсозатратен для обработки больших объемов данных. На практике применяется его более эффективный вариант:

*   **Стохастический градиентный спуск (SGD):** Вместо всего датасета модель обучается на небольших подмножествах данных (мини-батчах). По словам Мэннинга, вносимый при этом шум не только ускоряет процесс, но и помогает нейронным сетям лучше оптимизироваться, предотвращая застревание в локальных минимумах.
*   **Инициализация:** Векторы слов изначально заполняются случайными малыми числами. Важно избегать нулевой инициализации, иначе возникнут «ложные симметрии», препятствующие обучению.
*   **Два набора векторов:** В алгоритме word2vec для каждого слова используются два вектора: «центровой» и «контекстный». Использование раздельных векторов упрощает математические вычисления градиентов, исключая появление нежелательных квадратичных членов. В финальных приложениях их обычно усредняют.

### 🧩 Семантика, аналогии и проблема многозначности
[[JUMP:15:54]]

Одной из самых примечательных особенностей векторных представлений стала их способность к «алгебре смыслов».

*   **Аналогии:** Векторная модель позволяет выполнять операции типа: «вектор короля минус вектор мужчины плюс вектор женщины равен вектору королевы». Это свойство позволяет решать задачи вида «А относится к B так же, как C относится к D».
*   **Отрицательное сэмплирование:** Для повышения скорости вместо полного Softmax применяется метод отрицательного сэмплирования. Модель учится максимизировать вероятность истинного контекстного слова и минимизировать вероятность случайно выбранных (негативных) слов.
*   **Многозначность (Word Senses):** Большинство слов многозначны. Хотя исторически предлагалось обучаться на отдельные «смыслы» слова, современные модели чаще используют один усредненный вектор для слова — «суперпозицию» всех его значений. Тем не менее, методы разреженного кодирования (sparse coding) позволяют реконструировать отдельные смыслы из одного обобщенного вектора.

### 🧤 Алгоритм GloVe и оценка качества
[[JUMP:40:56]]

Разработанный в Stanford алгоритм GloVe (Global Vectors) объединяет преимущества статистического подсчета совместной встречаемости слов и нейросетевого обучения.

*   **Логика GloVe:** Модель фокусируется на соотношении вероятностей совместной встречаемости слов, что позволяет линейно моделировать семантические компоненты в векторном пространстве.
*   **Оценка:**
    *   *Внутренняя:* Оценка на аналогиях или корреляция с человеческими суждениями о схожести слов (быстро, но не всегда предсказывает успех в реальных задачах).
    *   *Внешняя:* Оценка в рамках прикладных задач, например, извлечения именованных сущностей (NER). Включение GloVe-векторов дает существенный прирост точности в таких системах.

### 🧠 Переход к нейронным классификаторам
[[JUMP:1:03:13]]

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

*   **Классификатор с окном:** Для определения, является ли слово, например, локацией, модель берет его вектор вместе с векторами соседних слов (контекстным окном) и пропускает через слои сети.
*   **Magic of Learning:** В отличие от традиционных линейных классификаторов, многослойные нейронные сети способны выучивать сложные нелинейные функции представления данных. Промежуточные слои самостоятельно «находят» полезные признаки, что обеспечивает высокую производительность в задачах классификации.
*   **Функция потерь:** Для обучения в PyTorch Мэннинг рекомендует использовать Cross-Entropy Loss, которая в частном случае для задачи классификации превращается в отрицательное логарифмическое правдоподобие.