Как работает механизм внимания

Attention оперирует тремя матрицами, которые вычисляются из входных векторов: Query (Q), Key (K) и Value (V). Для каждого токена вычисляется сходство его Query с Keys всех остальных токенов — это и есть «веса внимания». Взвешенная сумма Values даёт контекстно-обогащённое представление токена.

Формула scaled dot-product attention:

Attention(Q, K, V) = softmax(QKᵀ / √d_k) · V

Деление на √d_k предотвращает исчезновение градиентов при большой размерности.

Зачем это важно

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

Attention позволил каждому токену напрямую «видеть» любой другой токен в последовательности. Это дало три принципиальных улучшения:

  • Длинные зависимости — модель одинаково хорошо учитывает токены в начале и конце последовательности.
  • Параллелизм — вся матрица весов вычисляется за один шаг, что позволяет обучать на GPU эффективнее, чем RNN.
  • Интерпретируемость — веса внимания можно визуализировать и понять, на что «смотрит» модель при обработке конкретного токена.

Multi-Head Attention

Параметр Значение
Количество голов (стандарт) 8–16
Что изучает каждая голова Разные аспекты: синтаксис, семантика, кореференция
Выход Конкатенация выходов голов → линейная проекция

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

Применение в рекомендациях и поиске

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

Важно: attention — вычислительно дорогая операция. Инференс трансформер-моделей требует значительных ресурсов, что влияет на latency рекомендательных API в реальном времени.