Открыть сервис

Двунаправленное внимание

Двунаправленное внимание (англ. bidirectional attention) — механизм в архитектурах нейронных сетей, при котором каждый элемент последовательности (например, токен в тексте) может учитывать информацию как от предшествующих, так и от последующих элементов при вычислении своего представления. В отличие от однонаправленного (каузального) внимания, где контекст ограничен предыдущими элементами, двунаправленное внимание позволяет модели строить полное контекстное представление на основе всей последовательности целиком. Этот механизм является ключевым для моделей-трансформеров, используемых в обработке естественного языка (NLP), компьютерном зрении и других областях машинного обучения.

История

Идея двунаправленного контекста в обработке последовательностей возникла задолго до появления архитектуры трансформера. В рекуррентных нейронных сетях (RNN) двунаправленные варианты (например, двунаправленные LSTM) были предложены в 1997 году Шустером и Паливалом. Они позволяли обрабатывать последовательность в прямом и обратном направлениях, объединяя скрытые состояния для получения контекстного представления. Однако такие модели имели ограничения: они не могли эффективно учитывать долгосрочные зависимости и требовали последовательной обработки.

Переломный момент наступил в 2017 году с публикацией статьи «Attention Is All You Need» (Васвани и др.), где была представлена архитектура трансформера. В ней механизм внимания был реализован как единственный механизм взаимодействия между элементами последовательности, а двунаправленное внимание стало стандартом для кодировщика (encoder) трансформера. В 2018 году модель BERT (Bidirectional Encoder Representations from Transformers) от Google продемонстрировала, что двунаправленное предобучение на больших корпусах текстов позволяет достичь значительного улучшения в широком спектре задач NLP, таких как ответы на вопросы, анализ тональности и распознавание именованных сущностей.

Принцип работы

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

В основе двунаправленного внимания лежит механизм внимания (attention), который вычисляет взвешенную сумму значений (values) на основе весов, определяемых сходством между запросом (query) и ключами (keys). Для каждого элемента последовательности вычисляется вектор запроса, вектор ключа и вектор значения. Вес внимания между элементом \(i\) и элементом \(j\) определяется как:

\[ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V \]

где \(d_k\) — размерность ключей. В двунаправленном варианте каждый элемент может обращаться ко всем элементам последовательности, включая самого себя, без ограничения на порядок.

Маска внимания

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

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

В трансформерах двунаправленное внимание реализуется через многоголовое внимание (multi-head attention), где несколько параллельных «голов» внимания обучаются фокусироваться на разных аспектах взаимосвязей между элементами. Результаты голов затем объединяются и проецируются в выходное пространство.

Применение

Обработка естественного языка (NLP)

Двунаправленное внимание является основой для большинства современных моделей-кодировщиков, таких как BERT, RoBERTa, ALBERT и ELECTRA. Эти модели используются для:

  • Классификации текстов: анализ тональности, определение тематики, спам-фильтрация.
  • Распознавания именованных сущностей (NER): выделение в тексте имен людей, организаций, мест и т. д.
  • Ответов на вопросы: извлечение ответа из контекста на основе вопроса.
  • Семантического сходства: определение степени смысловой близости двух предложений.
  • Машинного перевода: в архитектуре трансформера кодировщик использует двунаправленное внимание для построения контекстного представления исходного текста.

Компьютерное зрение

В моделях Vision Transformer (ViT) и их производных двунаправленное внимание применяется к изображениям, разбитым на патчи. Каждый патч может взаимодействовать со всеми остальными, что позволяет модели улавливать глобальные зависимости в изображении, в отличие от сверточных нейронных сетей, которые локальны по своей природе.

Мультимодальные модели

В моделях, работающих с несколькими модальностями (текст, изображения, аудио), двунаправленное внимание используется для построения кросс-модальных представлений. Например, в CLIP (OpenAI) и DALL-E двунаправленное внимание позволяет модели связывать текстовые и визуальные элементы.

Преимущества и недостатки

Преимущества

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

Недостатки

  • Вычислительная сложность: для последовательности длины \(n\) сложность механизма внимания составляет \(O(n^2)\), что делает его ресурсоемким для длинных последовательностей. Для решения этой проблемы разрабатываются методы аппроксимации (например, разреженное внимание, линейное внимание).
  • Невозможность авторегрессивной генерации: двунаправленное внимание не может быть использовано для генерации последовательностей слева направо, так как требует доступа к будущим элементам. Для генерации обычно используются модели-декодеры с каузальным вниманием (например, GPT).
  • Память: хранение матрицы внимания размером \(n \times n\) требует значительного объема памяти, особенно при работе с большими последовательностями.

Критика и ограничения

Несмотря на широкое распространение, двунаправленное внимание подвергается критике за:

  • Неэффективность для длинных последовательностей: квадратичная сложность ограничивает применение в задачах с большими текстами (например, обработка целых книг) или изображениями высокого разрешения.
  • Отсутствие причинно-следственной связи: в некоторых задачах (например, в прогнозировании временных рядов) важно учитывать только прошлые данные, и двунаправленное внимание может приводить к утечке информации из будущего.
  • Интерпретируемость: хотя механизм внимания часто рассматривается как инструмент для объяснения решений модели, исследования показывают, что веса внимания не всегда коррелируют с важностью элементов для предсказания.

Эволюция и современные подходы

Для преодоления ограничений двунаправленного внимания были разработаны:

  • Разреженное внимание: модели, такие как Longformer и BigBird, используют разреженные паттерны внимания (например, локальное + глобальное внимание), что снижает сложность до \(O(n \log n)\) или \(O(n)\).
  • Линейное внимание: методы, аппроксимирующие механизм внимания с линейной сложностью (например, Performer, Linformer).
  • Гибридные архитектуры: сочетание двунаправленного и однонаправленного внимания в одной модели (например, T5 использует двунаправленное внимание в кодировщике и каузальное в декодере).

Интересные факты

  • Модель BERT, основанная на двунаправленном внимании, была предобучена на корпусе из 3,3 миллиарда слов (Wikipedia + BookCorpus) и достигла state-of-the-art результатов на 11 задачах NLP в 2018 году.
  • В архитектуре трансформера двунаправленное внимание используется только в кодировщике; декодер использует маскированное (каузальное) внимание для предотвращения доступа к будущим токенам.
  • Некоторые модели, такие как XLNet, используют двунаправленное внимание, но с перестановкой последовательности, что позволяет комбинировать преимущества двунаправленного контекста и авторегрессивной генерации.

Источники

  • Vaswani, A., et al. (2017). «Attention Is All You Need». Advances in Neural Information Processing Systems.
  • Devlin, J., et al. (2019). «BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding». Proceedings of NAACL-HLT.
  • Schuster, M., & Paliwal, K. K. (1997). «Bidirectional recurrent neural networks». IEEE Transactions on Signal Processing.
  • Beltagy, I., Peters, M. E., & Cohan, A. (2020). «Longformer: The Long-Document Transformer». arXiv preprint arXiv:2004.05150.
  • Kitaev, N., Kaiser, Ł., & Levskaya, A. (2020). «Reformer: The Efficient Transformer». Proceedings of ICLR.
  • Yang, Z., et al. (2019). «XLNet: Generalized Autoregressive Pretraining for Language Understanding». Advances in Neural Information Processing Systems.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →