Это краткое изложение Transformer, подготовленное Фуданьским университетом, которое охватывает широкий спектр контента, длинное текстовое предупреждение, его полное прочтение может занять 15-20 минут.
вводить
Преобразователь в настоящее время является широко используемой моделью в различных областях, включая NLP, CV и речевые области. С годами некоторые варианты Transformer улучшились в следующих областях:
1. Эффективность модели
так какself-attention
Сложность вычисления и хранения модуля очень высока, что делает Transformer менее эффективным при работе с данными длинной последовательности. Главное решение — облегчить Внимание и внедрить идею «разделяй и властвуй».
2. Обобщение модели
Transformer не вводит индуктивное смещение, как CNN, что затрудняет обучение на небольших наборах данных. Решение состоит в том, чтобы ввести структурные смещения или условия регуляризации, предварительное обучение на больших наборах данных и т. д.
3. Адаптивность модели
Эта работа в основном предназначена для внедрения Transformer в последующие задачи.
жизненный опыт
оригинальный трансформатор
В этой части мы в основном представляем несколько ключевых модулей оригинального Transformer.
Модуль внимания
Прототип формулы внимания выглядит следующим образом:
Преобразователь использует механизм внимания с несколькими головками: сначала он использует несколько наборов , , &W_v& для вычисления по отдельности, затем соединяет несколько наборов результатов внимания и, наконец, выполняет линейное преобразование с помощью . Весь процесс выглядит следующим образом:
Обзор общей структуры Transformer
В Transformer существует три типа внимания:
-
Само-внимание, механизм само-внимания, то есть Q, K и V в приведенной выше формуле, настроены на вход X.
-
Маскированное собственное внимание: используется в декодере, где маска гарантирует, что при расчете внимания используется только информация в этой позиции.
-
Перекрестное внимание: Где Query использует выходные данные декодера, а Key и Value используют выходные данные кодировщика.
модуль ФФН
Слой прямой связи состоит из двух полностью связанных слоев плюс слой активации, который можно записать как
Остаточные соединения и LayerNorm
В каждом блоке Transformer добавляются остаточные соединения и LayerNorm. Весь процесс можно записать как
код местоположения
Поскольку Transformer не вводит циклическую структуру и структуру свертки, в самой модели отсутствует информация о положении. Мы добавляем кодирование положения на вход Encoder и Decoder, чтобы данные имели определенную информацию о положении
Как использовать модель
Обычно их три
-
Кодер-декодер часто используется для моделирования последовательности в последовательность (например, для машинного перевода).
-
Encoder-Only использует только предыдущий кодировщик, который часто используется для задач классификации и маркировки последовательностей.
-
Decoder-Only использует только последний декодер, который часто используется для задач генерации последовательности.
Анализ модели
Здесь в основном анализируются два компонентаFFN
иself-attention
Здесь мы предполагаем, что длина последовательности равна T, количество каналов равно D, а размер промежуточного полносвязного слоя FFN равен 4D, тогда имеются следующие таблицы
простой вывод
мы начинаем сself-attention
Например, само-внимание требует трех матриц, , , а затем проецирует ввод X, чтобы получить Q, K, V. Размер этих трех матриц равен DxD (потому что размерность входа равна D, а размерность вывода тоже D), и после окончательного расчета внимания ему нужно пройти через линейный слой, и размер его матрицы также равен DxD, поэтому сумма параметра
Вычислительная сложность матричного умножения дополняется Предполагая, что матрица A равна (N, M), а матрица B равна (M, P), тогда результирующая матрица C равна (N, P), и для вычисления каждого элемента требуется M умножений, поэтому это сложно Степень O (NMP), другие операции можно сравнить для справкиСравнение Transformer/CNN/RNN (временная сложность, количество операций последовательности, максимальная длина пути)(zhuanlan.zhihu.com/p/264749298)
Когда Q и K выполняют матричное умножение, это (T, C) и (C, T) (после транспонирования K) матричное умножение, поэтому сложность равна O (), количество параметров и вычислительная сложность FFN также и так далее .
Видно, что в длинной последовательности сложность операции самовнимания увеличивается в степени 2.
Сравнение Transformer с другими сетями
Анализ внимания к себе
Резюмируем следующие три преимущества
-
Он имеет ту же максимальную длину пути, что и полносвязные слои, и подходит для моделирования на больших расстояниях.
-
По сравнению с ограниченным рецептивным полем свертки (в CNN необходимо сложить много слоев, чтобы получить глобальное рецептивное поле), само-внимание может моделировать долгосрочные зависимости с ограниченным числом слоев.
-
По сравнению с рекуррентным слоем (ряд РНН) параллелизм самовнимания выше.
Сложность различных слоев, последовательность операндов, максимальная длина пути
Об индуктивном смещении
CNN использует ядра свертки, которые вводят локальность изображения. RNN вводят инвариантность во времени. Трансформатор отказывается от этих индуктивных смещений, с одной стороны, это делает его достаточно универсальным и гибким,Transformer, с другой стороны, склонен к переоснащению данных небольшого масштаба..
Другим родственным является сеть графа GNN, Transformer можно рассматривать как GNN на полностью направленном графе (с петлей), где каждый вход является узлом в графе (PS: я не понимаю GNN, здесь Перевод жесткая).
Различные типы трансформатора
Последующие варианты Transformer были улучшены по вышеуказанным компонентам.
Связанное резюме работы
Attention
Механизм самовнимания является очень важным компонентом, он имеет следующие две проблемы:
-
Сложность, высокая вычислительная мощность при работе с длинными последовательностями
-
Структурный априорный анализ, отбрасывающий все индуктивные смещения, что делает его склонным к переоснащению на небольших данных.
Решения следующие:
-
Разреженное внимание , вводящее разреженное смещение в расчет внимания.
-
Линеаризованное внимание, разделяющее матрицу внимания и сопоставление признаков, упрощенное до линейной сложности
-
Сжатие памяти, уменьшение количества QKV для уменьшения матрицы внимания
-
Низкоранговое внимание к себе, этот тип работы в основном отражает низкоранговую природу внимания к себе.
-
Предварительное внимание с использованием распределения предварительного внимания в дополнение к стандартному механизму самоконтроля.
-
Улучшить многоголовочный механизм
Sparse Attention
В некоторых обученных моделях Transformer можно заметить, что матрица внимания обычно разрежена, поэтому вычислительную сложность можно уменьшить, ограничив количество пар запрос-ключ.
Мы можем далее разделить методы разреживания на две категории:基于位置信息Position-based
и基于内容Content-based
Два метода.
Редкое внимание на основе информации о местоположении
Основные шаблоны разреженного внимания
В основном существуют следующие пять основных режимов разреженного внимания.
-
Глобальное внимание Чтобы улучшить модель для имитации долгосрочных зависимостей, мы можем добавить несколько глобальных узлов.
-
Band Внимание Большая часть данных имеет локальность, мы ограничиваем запрос взаимодействием только с несколькими соседними узлами
-
Расширенное внимание похоже на расширенное преобразование в CNN за счет увеличения промежутка для получения большего рецептивного поля.
-
Случайное внимание Улучшает нелокальные взаимодействия за счет случайной выборки
-
Block Local Attention использует нескольконеперекрывающийсяЗаблокировать, чтобы ограничить информационное взаимодействие
5 значков внимания
Составные шаблоны разреженного внимания
Используйте описанный выше базовый режим разреженного внимания для комбинирования, который не будет здесь описываться.
Различные составные разреженные режимы внимания
Расширенный режим разреженного внимания
В отличие от нескольких основных режимов внимания, описанных выше, существуют расширенные разреженные режимы внимания для некоторых специальных типов данных.
BP-Transformer строит модель внимания на основе бинарного дерева, все токены используются как конечные узлы, а внутренние узлы содержат несколько токенов. Узлы span более высокого уровня могут содержать токены на больших расстояниях.
На визуальных данных Image Transformer пробует два режима разреженного внимания.
-
Сплющите изображение и примените блок локального разреженного внимания
-
В 2D-форме примените 2D блок местного внимания
Axial Transformer применяет независимые модули внимания для каждой оси изображения.
Расширенное редкое внимание
Редкое внимание на основе контента
Некоторая работа требует рассеянного внимания на основе входных данных, один из которых представляет собой простой способ выбора ключей с высокой степенью сходства с заданным запросом.
Преобразователь маршрутизации использует метод кластеризации K-средних для кластеризации ключей и запросов в центральном наборе векторов.Каждый запрос взаимодействует только со своими ключами в том же кластере.
Центральный вектор обновляется с использованием метода скользящего среднего:
где количество кластеров, текущее количество векторов в кластере
Реформатор используетlocal-sensitive hashing(LSH)
Хэш-метод для выбора ключ-значение для каждого запроса.Основная идея состоит в том, чтобы хэшировать запрос и ключ в несколько корзин, а запрос и ключ в одной корзине участвуют во взаимодействии.
Пусть b будет количеством ведер, учитывая матрицу размера , LSH можно записать как
также,Sparse Adaptive Connection
Обработка последовательности как графа позволяет адаптивно изучать разреженные связи.Sparse Sinkhorn Attention
Используя сеть сортировки, разделите запрос и ключ на несколько блоков и назначьте блок ключа каждому блоку запроса.Каждому запросу разрешено взаимодействовать только с соответствующим ключом.
Linearized Attention
Этот тип метода в основном используется для аппроксимации или замены расчета внимания, чтобы уменьшить вычислительную сложность до O (T). (где карта объектов в направлении строки)
Сравнение стандартного внимания и линеаризованного внимания
Сначала запишем общую форму внимания:
вsim
— функция для вычисления сходства векторов. В оригинальном Transformer нужно сделать внутренний продукт + softmax для вектора, вместо этого мы решили использовать функцию ядра.
Тогда предыдущее Внимание можно переписать как
Этот тип подхода имеет два ключевых компонента: сопоставление признаков и методы агрегирования признаков.
карта объектов
То есть, как было сказано ранее, используется Линейный Трансформатор, его цель не аппроксимировать скалярное произведение в стандартном Внимании, а производительность может быть сравнима со стандартным Трансформером.
Исполнитель использует случайное сопоставление объектов:
В первой версии Performer был вдохновлен случайными картами признаков Фурье (часто используемыми для аппроксимации ядер Гаусса). в:
-
l = 2
-
f1 = sin, f2=cos
Однако первая версия не гарантирует, что оценка, рассчитанная по вниманию, неотрицательна.Вторая версия улучшена до:
-
l = 1
-
f1 = exp
Конечно, есть и другие методы отображения признаков, но я не буду здесь подробно останавливаться.
Метод агрегации
В предыдущей формуле агрегация признаков выполняется простым суммированием.
RFA вводит механизм ворот.Когда новая ассоциация добавляется в матрицу памяти S, она заставляет историческую ассоциацию принимать форму экспоненциального затухания через обучаемый скаляр g.
Шлаг и др. использовали метод записи/удаления для увеличения емкости матрицы памяти (здесь я этого не понимаю, поэтому не буду подробно останавливаться на этом)
Прототип запроса и сжатие видеопамяти
В дополнение к разрежению и линеаризации внимания, еще один способ уменьшить сложность внимания — уменьшить количество запросов или ключей-значений.
Прототипирование запросов и сжатие памяти
Внимание, использование прототипа запроса
Здесь в качестве основного источника для расчета распределения внимания используется прототип запроса, модель может копировать распределение в позицию, соответствующую запросу, или заполнять его дискретным равномерным распределением.
Кластерное внимание группирует запрос в несколько кластеров и вычисляет распределение внимания для центрального вектора каждого кластера.
Информатор выбирает прототипы запросов явно, используя меру разреженности запроса, которая аппроксимируется расхождением KL между распределением внимания запроса и дискретным равномерным распределением.
Внимание со сжатой памятью ключ-значение
Этот тип метода уменьшает количество пар ключ-значение, чтобы уменьшить сложность.
Лю и др. предложили MCA с использованием сверточных слоев для уменьшения количества пар "ключ-значение".
Set Transformer и Luna используют некоторые внешние обучаемые глобальные узлы для сжатия входных данных.
Линформер проецирует ключи и значения (т.е. умножает их на матрицу) и уменьшает их длину.
Poolingformer использует двухэтапное внимание, включая внимание со скользящим окном и внимание со сжатой памятью.
Добро пожаловать в GiantPandaCV, где вы увидите эксклюзивный обмен глубокими знаниями, настаиваете на оригинальности и делитесь свежими знаниями, которые мы изучаем каждый день. ( • ̀ω•́ )✧
Если у вас есть вопросы по статье или вы хотите присоединиться к группе обмена, добавьте BBuf WeChat:
QR код
В этой статье используетсяПомощник по синхронизации статейСинхронизировать