13 Нейроязыковая модель
Контекст
Классические языковые модели — счётные n-граммы: оценивают вероятность слова по частотам предыдущих. Беда — «проклятие размерности»: почти любая тестовая фраза дословно не встречалась, и нет понятия похожести слов. Бенжио (2003) предлагает нейросетевую LM.
Идея и механизм
Каждому слову сопоставляется обучаемый вектор ew ∈ ℝd. Модель берёт эмбеддинги n−1 предыдущих слов, склеивает, прогоняет через скрытый слой и softmax → распределение следующего слова. Эмбеддинги учатся совместно с задачей. Похожие по употреблению слова получают близкие векторы → модель обобщает: выучив «кошка сидит на …», она лучше предскажет «собака лежит на …».
теория вероятностей Проклятие размерности и почему эмбеддинги его снимают
Счётная n-грамма хранит вероятность для каждого возможного контекста из n слов. При словаре V число контекстов:
Большинство контекстов в данных не встречаются ни разу → их вероятность ноль, обобщения нет. Нейросетевая LM заменяет таблицу на функцию:
Число параметров теперь ≈ V·d (эмбеддинги) плюс веса сети — линейно по V, а не экспоненциально. И главное: эмбеддинги разделяют статистическую силу между похожими словами — близкие векторы дают близкие предсказания, поэтому невиданное сочетание получает разумную вероятность.
NumPy Прямой проход нейроязыковой модели
import numpy as np
def neural_lm(ctx, E, W, b, U):
x = E[ctx].reshape(-1) # эмбеддинги n−1 слов, склеены
h = np.tanh(W @ x + b) # скрытый слой
logits = U @ h # оценки по всему словарю
p = np.exp(logits - logits.max())
return p / p.sum() # softmax → P(следующее слово)
Почему это важно
Прямой интеллектуальный предок word2vec/GloVe (там эмбеддинги выделили в самоцель) и всех современных LLM: схема та же — токены → эмбеддинги → контекст → softmax, только контекст теперь строит Transformer, а не маленький MLP. Ограничение эпохи — дорого (большой softmax, слабое железо 2003-го).
Связи
Word2vec берёт побочный продукт этой модели — эмбеддинги — и делает их главной целью, выкинув дорогой скрытый слой ради скорости. Векторы слов из «детали языковой модели» превращаются в самостоятельный, повсеместно используемый инструмент.
Базовая схема LLM заложена здесь: представить слова векторами и предсказывать следующее через softmax. Transformer радикально усиливает «контекст» (self-attention вместо фиксированного окна из n−1 слов), но костяк — тот же.
Два взгляда на «как представлять данные»: SVM берёт фиксированное (ядровое) пространство признаков, заданное вручную; нейроязыковая модель учит представление (эмбеддинги) под задачу. Спор «фиксированные признаки vs выученные» — и здесь.
Вопросы пытливого ума
Откуда вообще берётся «смысл» в эмбеддингах, если модель лишь предсказывает следующее слово?
Из дистрибутивной гипотезы: «слово узнаётся по компании, в которой оно встречается». Чтобы хорошо предсказывать контекст, модель вынуждена ставить слова со схожим окружением рядом в пространстве — так геометрия начинает кодировать семантику. Никто не размечал «смысл»; он возникает как побочный эффект задачи предсказания.
Softmax по всему словарю — это же дорого. Как с этим борются?
Это главное узкое место. Лечат приближениями: иерархический softmax (дерево вместо плоского нормирования), negative sampling и noise-contrastive estimation (учить отличать настоящее слово от случайных, не нормируя по всему словарю — это и сделал word2vec), sampled softmax. Все они обходят суммирование по V словам.
Если идея 2003-го такая мощная, почему LLM-революция случилась только через ~17 лет?
Не хватало трёх вещей: данных (огромные корпуса), вычислений (GPU/TPU) и архитектуры контекста (Transformer вместо фиксированного окна). Бенжио заложил рецепт, но он масштабировался плохо на железе 2003-го. История DL вообще про то, как старые правильные идеи ждут данных и compute.
Что читать в оригинале
Читать ключевое — идею распределённого представления и архитектуру; это интеллектуальный предок эмбеддингов и LLM, и стоит увидеть его в исходном виде.