«Магия» Word2Vec: Преподаватель Стэнфорда о том, как обучаются языковые модели

Stanford Online 52,3 тыс. 1 ч 19 мин 3 мин 04.03.2025
Главное

🧠 Глубокое погружение в Word Vectors и нейронные сети: Лекция Стэнфорда

Вторая лекция курса CS224N от Stanford Online посвящена фундаментальным концепциям обработки естественного языка (NLP): принципам работы векторных представлений слов (word vectors), методам оптимизации и переходу к архитектурам нейронных сетей. Преподаватель рассматривает, как простые математические операции над векторами позволяют моделям улавливать семантические нюансы и культурные связи слов, а также объясняет устройство градиентного спуска.

📉 Оптимизация и градиентный спуск

Для обучения моделей необходимо минимизировать функцию потерь, определяющую «расстояние» между прогнозом модели и реальностью. Алгоритм градиентного спуска помогает найти направление к минимуму этой функции.

Преподаватель подчеркивает важность инициализации векторов небольшими случайными числами; если начать с нулевых векторов, симметрия системы не позволит модели обучаться.

🔍 Word2Vec: Магия семантики и аналогии

Модель Word2Vec строится на простой идее: каждое слово представляется вектором, а цель обучения — научиться предсказывать соседние слова. Хотя модель «не знает» структуру предложений, она удивительно эффективно улавливает смысловые отношения.

Для обучения Word2Vec часто используются два независимых вектора для каждого слова (в центре и в контексте), которые в конце обычно усредняются. В качестве альтернативы классическому «наивному» Softmax, который суммирует все слова в словаре, часто применяется отрицательное сэмплирование (negative sampling). Этот метод обучает модель повышать вероятность настоящего контекстного слова и понижать её для нескольких случайно выбранных «отрицательных» примеров. При сэмплировании отрицательных слов лучше использовать распределение униграмм, возведенное в степень 3/4, что слегка повышает шансы выбора редких слов.

🧤 Альтернативы: От частотных матриц к GloVe

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

⚖️ Оценка качества моделей

Важной частью работы над NLP-системами является выбор метрик успеха:

🧩 Многозначность слов и нейронная классификация

Большинство слов, таких как bank или pike, имеют множество значений. Хотя ранние методы пытались кластеризовать слова по разным смыслам, современные подходы чаще используют один вектор как «суперпозицию» (средневзвешенное значение) всех контекстов. Тем не менее, методы разреженного кодирования (sparse coding) позволяют извлекать отдельные семантические компоненты даже из одного общего вектора.

В финальной части лекции преподаватель переходит к созданию нейронных классификаторов:

  1. Контекстное окно: Входные данные формируются из слова и его окружения.
  2. Архитектура: Использование слоев весов и нелинейных функций активации (например, логистической функции) позволяет модели строить нелинейные границы принятия решений.
  3. Cross Entropy Loss: При обучении в PyTorch рекомендуется использовать функцию потерь кросс-энтропии, которая в случае «золотой» разметки эквивалентна максимизации логарифмического правдоподобия.

Вдохновением для нейронных сетей послужили биологические нейроны, которые комбинируют множество входных сигналов и выдают выходной, если общая активность превышает порог. Современные нейросети упрощают эту модель до матричных вычислений, но именно глубина слоев позволяет им «магически» находить полезные способы интерпретации входных данных.

💬 Цитаты

«Когда это было впервые обнаружено для этих алгоритмов, это действительно ощущалось как магия.»

Преподаватель 09:41

«Мы строим нейронную сеть, которая в промежуточных слоях сама вычисляет что-то полезное.»

Преподаватель 1:18:18
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Word2Vec
Алгоритм для обучения векторных представлений слов, основанный на предсказании контекста.
Градиентный спуск
Математический метод поиска минимума функции путем движения в сторону антиградиента.
Softmax
Функция, превращающая набор чисел в распределение вероятностей.
Cross entropy
Мера различия между двумя вероятностными распределениями, используемая как функция потерь.
Сингулярное разложение (SVD)
Матричный метод разложения, используемый для снижения размерности данных.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Word2Vec Glove Градиентный спуск Neural Networks NLP