Механизм самовнимания¶
Механизм самовнимания (англ. self-attention, также внутримасштабное внимание, внутреннее внимание) — это компонент архитектуры нейронных сетей, позволяющий модели устанавливать взаимосвязи между различными элементами входной последовательности (например, словами в предложении или пикселями в изображении) путём вычисления весовых коэффициентов важности каждого элемента относительно всех остальных. В отличие от традиционных механизмов внимания, которые фокусируются на связи между двумя разными последовательностями (например, исходным текстом и переводом), самовнимание работает внутри одной последовательности, что даёт модели возможность учитывать контекст и зависимости на любых расстояниях. Механизм самовнимания лежит в основе архитектуры Transformer, которая стала основой для большинства современных языковых моделей, включая GPT, BERT и их производные.
¶История
Идея внимания в нейронных сетях возникла в середине 2010-х годов как способ улучшить обработку последовательностей в задачах машинного перевода. В 2014 году группа исследователей под руководством Дмитрия Бахданау опубликовала работу «Neural Machine Translation by Jointly Learning to Align and Translate», где впервые предложили механизм внимания для рекуррентных нейронных сетей (RNN). Однако этот подход был ограничен последовательным характером обработки данных.
В 2017 году исследователи из Google (Ашвин Васувани, Ноам Шазир, Ники Пармар и другие) представили архитектуру Transformer в статье «Attention Is All You Need». Ключевым нововведением стал механизм самовнимания, который позволил отказаться от рекуррентных и свёрточных слоёв, обрабатывая все элементы последовательности параллельно. Это радикально ускорило обучение и улучшило качество на задачах перевода и генерации текста. С тех пор самовнимание стало стандартным компонентом в NLP (обработка естественного языка) и других областях.
¶Принцип работы
Механизм самовнимания преобразует входную последовательность векторов (например, эмбеддингов слов) в новую последовательность, где каждый выходной вектор является взвешенной суммой всех входных векторов. Веса определяются на основе «схожести» между элементами.
¶Основные этапы вычисления
- Линейное преобразование. Для каждого входного вектора \( x_i \) вычисляются три вектора: запрос (Query, Q), ключ (Key, K) и значение (Value, V). Это достигается умножением \( x_i \) на три обучаемые матрицы весов \( W_Q, W_K, W_V \).
- Вычисление весов внимания. Для каждой пары элементов (i, j) вычисляется скалярное произведение \( Q_i \cdot K_j \), которое затем масштабируется (делится на корень из размерности ключей \( \sqrt{d_k} \)) для стабилизации градиентов. Полученные значения проходят через функцию softmax, превращаясь в вероятностное распределение (сумма весов для каждого i равна 1).
- Взвешенное суммирование. Каждый выходной вектор \( z_i \) вычисляется как сумма всех \( V_j \), умноженных на соответствующие веса \( a_{ij} \):
\[ z_i = \sum_{j} a_{ij} V_j \]
Таким образом, каждый элемент «смотрит» на все остальные, причём вес отражает релевантность j-го элемента для i-го.
¶Многоголовое внимание
В архитектуре Transformer используется многоголовое самовнимание (multi-head attention). Вместо одного механизма вычисляются несколько параллельных «голов» внимания с разными матрицами \( W_Q, W_K, W_V \). Результаты всех голов конкатенируются и проходят через линейное преобразование. Это позволяет модели одновременно учитывать разные типы зависимостей (например, синтаксические и семантические).
¶Разновидности
¶Масштабированное скалярное произведение внимания
Базовая версия, описанная выше. Используется в большинстве реализаций Transformer.
¶Причинное самовнимание
Применяется в авторегрессивных моделях (например, GPT). В этом режиме каждый элемент может «видеть» только предыдущие элементы последовательности, но не последующие. Для этого в матрице весов все значения выше диагонали обнуляются (или маскируются). Это необходимо для генерации текста слева направо.
¶Перекрёстное внимание
Хотя это не самовнимание в строгом смысле, часто используется в паре с ним. В перекрёстном внимании запросы берутся из одной последовательности (например, декодера), а ключи и значения — из другой (например, энкодера). Это позволяет модели связывать две разные последовательности, например, исходный текст и перевод.
¶Разреженное самовнимание
Для снижения вычислительной сложности (особенно на длинных последовательностях) используются разреженные варианты, где каждый элемент взаимодействует не со всеми, а только с подмножеством (например, соседними или случайно выбранными). Примеры: Longformer, BigBird.
¶Применение
¶Обработка естественного языка
Самовнимание является основой для большинства современных языковых моделей. В моделях-трансформерах (GPT, BERT, T5) оно используется для понимания контекста, синтаксических и семантических связей. В задачах машинного перевода, суммаризации, вопросно-ответных системах и генерации текста самовнимание обеспечивает высокое качество.
¶Компьютерное зрение
Архитектура Vision Transformer (ViT) применяет самовнимание к изображениям, разбитым на патчи (куски). Это позволяет модели учитывать глобальные зависимости между пикселями, что ранее было сложно для свёрточных сетей. Самовнимание используется в задачах классификации, детекции объектов и сегментации.
¶Биоинформатика
В анализе последовательностей ДНК и белков самовнимание помогает выявлять долгосрочные зависимости, например, в структуре белка или регуляторных участках генома.
¶Рекомендательные системы
Механизмы самовнимания применяются для моделирования взаимодействий между пользователями и товарами, учитывая последовательность действий (например, историю покупок).
¶Преимущества и ограничения
¶Преимущества
- Параллелизация. В отличие от RNN, самовнимание обрабатывает все элементы последовательности одновременно, что ускоряет обучение на современных GPU.
- Долгосрочные зависимости. Модель может напрямую связывать элементы, находящиеся далеко друг от друга, без потери информации через промежуточные шаги.
- Интерпретируемость. Веса внимания можно визуализировать, что позволяет понять, на какие части входных данных модель обращает внимание.
¶Ограничения
- Квадратичная сложность. Вычислительная сложность самовнимания составляет \( O(n^2) \), где n — длина последовательности. Это делает его дорогим для очень длинных последовательностей (например, целых книг или длинных видео).
- Отсутствие позиционной информации. Самовнимание инвариантно к порядку элементов (так как использует только скалярные произведения). Для учёта порядка добавляются позиционные кодировки (например, синусоидальные или обучаемые).
- Потребление памяти. Хранение матрицы весов внимания размером \( n \times n \) требует значительной памяти при больших n.
¶Интересные факты
- Название статьи «Attention Is All You Need» (2017) стало мемом в сообществе машинного обучения, символизируя отказ от сложных архитектур в пользу простого, но эффективного механизма.
- Механизм самовнимания вдохновлён когнитивными моделями внимания человека, но не является их точной копией.
- В 2023 году модели на основе самовнимания (например, GPT-4, Gemini) достигли уровня, близкого к человеческому, в ряде задач NLP, что вызвало широкое обсуждение этики и безопасности ИИ.
¶Источники
- Vaswani, A., Shazeer, N., Parmar, N., et al. (2017). «Attention Is All You Need». Advances in Neural Information Processing Systems (NeurIPS).
- Bahdanau, D., Cho, K., Bengio, Y. (2014). «Neural Machine Translation by Jointly Learning to Align and Translate». arXiv:1409.0473.
- Devlin, J., Chang, M.-W., Lee, K., Toutanova, K. (2019). «BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding». NAACL-HLT.
- Dosovitskiy, A., et al. (2021). «An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale». ICLR.
- Beltagy, I., Peters, M. E., Cohan, A. (2020). «Longformer: The Long-Document Transformer». arXiv:2004.05150.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


