Механизм внимания

Материал из MachineLearning.

Версия от 10:45, 16 июня 2026; Emil Petrov (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Статья написана с использованием LLM Claude Sonnet 4 и проверена участником Emil Petrov Emil Petrov 14:45, 16 июня 2026 (MSD)

Промпт приводится полностью в Обсуждение:Механизм внимания


Содержание

Механи́зм внима́ния (англ. attention mechanism) — метод в нейронных сетях, позволяющий модели динамически взвешивать различные части входных данных при формировании каждого элемента выходной последовательности. Впервые предложен Bahdanau et al. (2014) для задачи нейронного машинного перевода[1] и впоследствии ставший ключевым строительным блоком трансформера.

Мотивировка

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

Базовый механизм внимания Bahdanau

Пусть h_1, ldots, h_T — скрытые состояния энкодера, s_{t-1} — скрытое состояние декодера на предыдущем шаге. Оценка релевантности (энергия) i-го токена входа для генерации токена t вычисляется нейронной сетью:

e_{t,i} = a(s_{t-1}, h_i),

где a(cdot) — обычно небольшая полносвязная сеть. Затем оценки нормируются функцией softmax:

alpha_{t,i} = �rac{exp(e_{t,i})}{sum_{j=1}^{T} exp(e_{t,j})}.

Контекстный вектор для шага t формируется как взвешенная сумма:

c_t = sum_{i=1}^{T} alpha_{t,i}, h_i.

Коэффициенты alpha_{t,i} интерпретируются как «мягкое выравнивание» (soft alignment) — вероятности того, что i-й входной токен важен при генерации t-го выходного.

Scaled Dot-Product Attention

В трансформере Vaswani et al. (2017) предложили более эффективную формуляцию через матричные операции. Входы — матрицы запросов Q in mathbb{R}^{n 	imes d_k}, ключей K in mathbb{R}^{m 	imes d_k} и значений V in mathbb{R}^{m 	imes d_v}:

	ext{Attention}(Q, K, V) = 	ext{softmax}!left(�rac{QK^	op}{sqrt{d_k}}
ight) V.

Деление на sqrt{d_k} предотвращает попадание в области с малым градиентом функции softmax при больших значениях скалярных произведений. Вычислительная сложность — O(n cdot m cdot d_k).

Типы внимания в трансформере

  • Self-attention (само-внимание)Q = K = V (все три формируются из одного и того же входа). Каждый токен «смотрит» на все остальные токены той же последовательности. Это позволяет модели захватывать зависимости между любыми парами токенов вне зависимости от расстояния.
  • Cross-attention (кросс-внимание) — запросы Q поступают из одной последовательности (декодер), а ключи K и значения V — из другой (выходы энкодера). Используется в энкодер-декодерных трансформерах для установления связи между входом и выходом.
  • Маскированное внимание (masked attention) — матрица оценок маскируется: позиции, на которые нельзя смотреть (будущие токены при авторегрессии), получают -infty перед softmax, что эффективно обнуляет соответствующие веса внимания.

Многоголовое внимание

Многоголовое внимание (multi-head attention) запускает h независимых операций внимания с разными линейными проекциями, позволяя одновременно фокусироваться на разных аспектах входа:

	ext{MultiHead}(Q, K, V) = 	ext{Concat}(	ext{head}_1, ldots, 	ext{head}_h), W^O,
	ext{head}_i = 	ext{Attention}(QW_i^Q,; KW_i^K,; VW_i^V),

где W_i^Q in mathbb{R}^{d_{model} 	imes d_k}, W_i^K in mathbb{R}^{d_{model} 	imes d_k}, W_i^V in mathbb{R}^{d_{model} 	imes d_v}, W^O in mathbb{R}^{h d_v 	imes d_{model}} — обучаемые матрицы.

Интерпретация: разные головы специализируются на синтаксических связях (согласование, управление), семантических отношениях, кореференции, позиционных паттернах и т.д.

Интерпретируемость и визуализация

Матрицы весов внимания A = (alpha_{t,i}) допускают непосредственную визуализацию и часто используются для интерпретации работы трансформера. Инструменты наподобие BertViz позволяют видеть, какие токены «смотрят» друг на друга в каждой голове и на каждом слое.

Однако исследования показывают, что веса внимания не всегда соответствуют «важности» токена для предсказания: градиентные методы интерпретации часто дают иные ответы, чем простая визуализация внимания.

Эффективные варианты

Квадратичная сложность O(n^2) стандартного внимания ограничивает применение к длинным последовательностям. Предложены альтернативы:

  • Sparse Attention (Longformer, BigBird) — каждый токен посещает локальное окно и набор глобальных токенов, снижая сложность до O(n log n) или O(n).
  • Linear Attention (Performer, Random Feature Attention) — аппроксимация ядра softmax случайными признаками, линейная сложность O(n).
  • FlashAttention — алгоритм точного вычисления внимания с IO-aware оптимизацией: блочная обработка данных в SRAM GPU, без материализации матрицы n 	imes n в DRAM. Ускоряет вычисления в 2–4× при той же точности.
  • Multi-Query Attention и Grouped Query Attention (GQA) — уменьшение числа голов для ключей и значений при сохранении числа голов для запросов; ускоряет инференс.

Применения вне NLP

Механизм внимания проник во многие области машинного обучения:

  • Компьютерное зрение — Vision Transformer (ViT) применяет self-attention к патчам изображений.
  • Рекомендательные системы — модели внимания над историей взаимодействий пользователя.
  • Обработка графов — Graph Attention Networks (GAT).
  • Предсказание структуры белков — AlphaFold2 использует multi-head attention в своих Evoformer-блоках.
  • Генерация изображенийдиффузионные модели применяют кросс-внимание между текстовым условием и картой признаков изображения.

См. также

Примечания

Литература

  • Bahdanau D., Cho K., Bengio Y. Neural Machine Translation by Jointly Learning to Align and Translate // ICLR. — 2015.
  • Vaswani A. et al. Attention Is All You Need // NeurIPS. — 2017.
  • Dao T., Fu D. Y., Ermon S., Rudra A., Ré C. FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness // NeurIPS. — 2022.
  • Jain S., Wallace B. C. Attention is not Explanation // NAACL-HLT. — 2019.