# Как нейросети «понимают» смысл: эмбеддинги и метод GloVe

Источник: https://www.youtube.com/watch?v=LqFc0z-pQTg
Канал: MIT OpenCourseWare
Опубликовано: 07.01.2026

---

## 🧠 Векторные представления слов: от простого к контекстному

[[JUMP:0:00]]

В современном обучении NLP (Natural Language Processing) переход от простых методов представления текста к сложным векторным моделям стал фундаментальным шагом. Лектор Массачусетского технологического института (MIT) Рама Рамакришнан на примере курса *Deep Learning* объясняет, как работают эмбеддинги (векторные представления слов), почему классическое One-Hot кодирование неэффективно и как современные подходы позволяют машинам «понимать» смысл и взаимосвязи между понятиями.

### 🚧 Проблемы One-Hot кодирования
[[JUMP:2:43]]

Исторически первым способом представления текста было One-Hot кодирование, где каждый токен превращается в вектор, соответствующий позиции слова в словаре.

*   **Отсутствие семантики:** При One-Hot кодировании любые два слова находятся на одинаковом евклидовом расстоянии ($ \sqrt{2} $), независимо от их значения. Векторы для слов «фильм» и «кино» будут так же далеки друг от друга, как «добро» и «зло».
*   **Высокая размерность:** Если словарь насчитывает 500 000 слов, каждый входной вектор имеет длину 500 000. Это ведет к колоссальной нагрузке на вычислительные ресурсы и объемы памяти.

### 📐 Эмбеддинги: геометрия смыслов
[[JUMP:11:43]]

Решением проблемы стали эмбеддинги — плотные векторы, где семантическая близость слов отражается в их геометрической близости.

*   **Геометрические отношения:** Эмбеддинги позволяют не только измерять расстояние, но и «вычислять» смыслы. Классический пример алгебры эмбеддингов: вектор «брат» минус вектор «мужчина» плюс «женщина» дает результат, близкий к вектору «сестра».
*   **Контекстуальный разрыв:** Даже лучшие статические эмбеддинги страдают от многозначности (полисемии). Например, слово *bank* (банк или берег реки) в статических моделях будет представлено «усредненным» вектором, что не всегда отражает суть в конкретном предложении.

### 💡 Метод GloVe: магия контекста
[[JUMP:21:20]]

Для создания статических эмбеддингов широко используется метод GloVe (Global Vectors). Ключевая концепция основана на цитате лингвиста Джона Ферта: «Ты познаешь слово по компании, которую оно держит».

*   **Матрица сопутствия:** Метод строит матрицу, где в каждой ячейке хранится количество раз, которое слова $i$ и $j$ встретились в одном контексте (предложении) во всем корпусе текстов (например, в Wikipedia).
*   **Обучение как регрессия:** Модель пытается подобрать такие векторы $w_i$ и $w_j$ и смещения $b_i, b_j$, чтобы их скалярное произведение максимально точно соответствовало логарифму числа сопутствий в матрице.
*   **Оптимизация:** Для поиска оптимальных весов используется стохастический градиентный спуск.

### 🛠 Практическая реализация в Keras
[[JUMP:50:29]]

При использовании Keras процесс превращения текста в обучаемые данные выглядит следующим образом:

1.  **Preprocessing:** Стандартизация и токенизация через `TextVectorization`.
2.  **Indexing:** Преобразование слов в целые числа (индексы).
3.  **Embedding Layer:** Слой, который превращает индексы в векторы (предобученные или обучаемые с нуля).
4.  **Pooling:** `GlobalAveragePooling1D` усредняет полученные векторы для подачи в полносвязные слои нейросети.

Рамакришнан подчеркивает: если данных мало, лучше использовать предобученные эмбеддинги (например, GloVe), не меняя их (замораживая веса). Если данных много, то «размораживание» весов или обучение эмбеддингов с нуля под конкретную задачу (например, классификацию жанров песен) часто дает лучшие результаты, повышая точность предсказаний.