Что такое встраивание слов?

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

🔹 Зачем нужны встраивания?

Компьютеры не умеют обрабатывать текст напрямую. Слова необходимо кодировать в числовом виде. Простейший способ — one-hot encoding: каждое слово представляется вектором из нулей с единственной единицей на позиции, соответствующей слову в словаре. Проблемы one-hot:

  • Векторы очень разреженные (все нули кроме одной позиции).

  • Нет информации о смысле и сходстве между словами.

  • Пространство огромное, если словарь большой.

Word embedding решает эти проблемы: каждое слово кодируется плотным (dense) вектором фиксированной длины, например, 300-мерным вектором вещественных чисел, в котором смысл слова частично закодирован через его положение в пространстве.

🔹 Принцип семантической близости

Одна из главных идей встраиваний — семантически похожие слова находятся рядом в векторном пространстве. Например:

  • вектора ["king"] - ["man"] + ["woman"] ≈ ["queen"]

  • вектора "cat" и "dog" ближе друг к другу, чем к "car" или "moon"

🔹 Обучение встраиваний

Существуют разные методы построения таких векторных представлений:

1. Count-based модели

Основаны на статистике совместных появлений слов в контексте:

  • TF-IDF — частотные представления (не являются embeddings, но предшественники).

  • Co-occurrence matrix + SVD — матрица совместных вхождений обрабатывается сингулярным разложением.

  • GloVe (Global Vectors) — модель от Stanford, использует глобальную статистику появления слов и обучает встраивания так, чтобы логарифмы счётчиков совместных появлений линейно предсказывались скалярными произведениями векторов слов.

2. Predictive модели (на основе нейросетей)

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

  • Word2Vec (Google, 2013):

    • CBOW (Continuous Bag of Words) — предсказывает текущее слово по окружающим.

    • Skip-Gram — предсказывает контекст по текущему слову.

    • Обучается с помощью негативной выборки или hierarchical softmax.

    • После обучения веса скрытого слоя являются embedding-векторами.

  • FastText (Facebook AI):

    • Расширяет Word2Vec, добавляя информацию о n-граммах (подсловах), чтобы обрабатывать даже незнакомые слова.

    • Позволяет делать обобщение на морфологические формы.

3. Контекстуальные встраивания

В отличие от Word2Vec, который даёт одно векторное представление для каждого слова, современные модели учитывают контекст:

  • ELMo — создаёт встраивания на основе контекста (использует двунаправленные LSTM).

  • BERT и производные (Transformer-based):

    • Генерируют представление слова в зависимости от всего предложения.

    • Слово "bank" в контексте "river bank" и "financial bank" получит разные вектора.

    • Эти embeddings генерируются динамически, не являются фиксированными.

🔹 Визуализация

После обучения embedding-моделей можно визуализировать полученные векторы (обычно с помощью методов понижения размерности — t-SNE, UMAP, PCA) и обнаруживать:

  • Кластеры семантически связанных слов.

  • Векторы с похожими направлениями (например, «Франция» → «Париж», «Германия» → «Берлин»).

  • Регулярные отношения, такие как множественное число, род, время глаголов и т.д.

🔹 Использование word embeddings

  1. Входные данные в нейросети (например, в NLP задачах):

    • Классификация текста (настроение, категория).

    • Named Entity Recognition (NER).

    • Перевод, машинное резюмирование, чат-боты.

  2. Измерение семантической близости:

    • Поиск похожих слов (аналогии, синонимы).

    • Семантический поиск: поиск не по ключевым словам, а по смыслу.

  3. Передобученные embeddings:

    • Можно не обучать с нуля, а использовать готовые:

      • Word2Vec (Google News)

      • GloVe (Wikipedia + Gigaword)

      • FastText (Common Crawl)

      • BERT и др. (вектор из последнего слоя CLS-токена)

🔹 Размерность и структура векторов

Типично размерность word embeddings составляет от 50 до 300, иногда больше. Эти векторы:

  • Не имеют прямой интерпретации каждого измерения.

  • Представляют собой плотные векторы вещественных чисел.

  • Обучаются методом обратного распространения ошибки или факторизации матриц.

🔹 Пример: Skip-gram (Word2Vec)

Цель: обучить модель, которая для каждого слова wtw_t из корпуса будет предсказывать его соседей wt−n,...,wt+nw_{t-n}, ..., w_{t+n}.

  1. Подбирается контекстное окно (например, размер 2).

  2. Обучается сеть: входное слово → скрытый слой → softmax по всем словам словаря.

  3. Используются ходы оптимизации: негативная выборка, субвыборка частых слов и т.д.

  4. Вектор из скрытого слоя — embedding.

🔹 Свойства embeddings

  • Линейные регулярности — можно решать аналогии в виде векторных уравнений.

  • Устойчивость к шуму — модели усваивают смысл из больших корпусов текста.

  • Обобщаемость — можно получать вектора и для ранее не встречавшихся слов (если используется FastText).

🔹 Проблемы и ограничения

  • Ограниченность контекста: у Word2Vec и GloVe нет информации о синтаксисе и глобальной структуре предложения.

  • Множественные значения слов (омонимия): "bat" (летучая мышь и бита) имеют один и тот же вектор.

  • Дискриминация: embeddings, обученные на человеческих текстах, могут унаследовать и усилить предвзятости (bias).

🔹 Контекстуальные vs статические встраивания

Свойство Статические (Word2Vec, GloVe) Контекстуальные (BERT, ELMo)
Учитывают контекст
--- --- ---
Разные векторы для значения
--- --- ---
Используются как Lookup-таблица Нейросетевая модель
--- --- ---
Размер словаря Ограниченный Потенциально бесконечный
--- --- ---

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