Автор | Рену Ханделвал Компилировать|ВКонтакте Источник | К науке о данных
В этом посте мы обсудим следующие вопросы о Трансформерах
- Зачем нам нужны Трансформеры и каковы проблемы модели Sequence2Sequence?
- Подробное введение в Transformer и его архитектуру
- Глубокое погружение в термины, используемые в «Трансформерах», такие как позиционное кодирование, само-внимание, многоголовое внимание, маскированное многоголовое внимание.
- Задачи NLP, которые могут использовать Transformer
Недостатки Sequence2Sequence (Seq2Seq)
- последовательный расчет: В Seq2Seq мы последовательно передаем кодировщику слово на каждом шаге, так что декодер генерирует вывод по одному слову за раз. В архитектуре Seq2Seq мы не можем повысить эффективность вычислений за счет распараллеливания операций.
- долгосрочные зависимости: долгосрочные зависимости являются проблемой Seq2Seq из-за большого количества операций, которые необходимо выполнить для длинных предложений, как показано ниже.
Здесь «это» означает «коронавирус» или «страны»?
Давайте углубимся в архитектуру Transformer и ключевые концепции Transformer, чтобы понять, как Transformer решает эти проблемы.
Архитектура Трансформера
Transformer имеет 6 энкодеров и 6 декодеров, в отличие от Seq2Seq, энкодер содержит два подуровня: многоголовочный уровень самоконтроля и полносвязный слой.
Декодер содержит три подуровня, уровень самоконтроля с несколькими головками, дополнительный уровень, способный выполнять самовнимание с несколькими головками на выходе кодера, и полностью подключенный уровень.
Каждый подуровень в кодере и декодере имеет остаточное соединение, за которым следует нормализация уровня.
Вход кодировщика и декодера
Все входные и выходные токены кодировщика/декодера преобразуются в векторы с использованием изученных вложений. Эти входные вложения затем передаются для позиционного кодирования.
код местоположения
Архитектура Transformer не содержит никакой рекурсии или свертки, поэтому отсутствует понятие порядка слов. Все слова во входной последовательности передаются в сеть без особого порядка или положения, поскольку все они проходят через стеки кодировщика и декодера одновременно.
Чтобы понять смысл предложения, важно понимать положение и порядок слов.
Позиционное кодирование добавлено в модель, чтобы помочь вводить информацию об относительном или абсолютном положении слов в предложении.
Позиционное кодирование имеет ту же размерность, что и входное встраивание, поэтому их можно сложить вместе.
внимание к себе
Внимание необходимо для лучшего понимания значения и контекста слов в предложении.
Самовнимание, иногда называемое внутренним вниманием, представляет собой механизм внимания, который связывает различные положения одной последовательности для вычисления представления последовательности.
Слой самообслуживания соединяет все места с постоянным числом операций, выполняемых последовательно, и поэтому работает быстрее, чем повторяющийся слой.
Функция внимания в Transformer описывается как сопоставление запроса и набора пар ключ-значение с выходными данными. Запрос, ключ и значение являются векторами. Веса внимания вычисляются путем вычисления скалярного произведения внимания для каждого слова в предложении. Окончательная оценка представляет собой взвешенную сумму этих значений.
Давайте поймем это одним предложением: «Я наслаждаюсь природой..»
Входные данные — это запрос, ключ и значение. Размер вектора равен 64, так как это приводит к более стабильному градиенту.
Шаг 1: Скалярный продукт
Возьмите скалярное произведение запроса и ключи для каждого слова в предложении. Скалярный продукт определяет, кто уделяет больше внимания другим словам во входном предложении.
Шаг 2: Масштабирование
Масштабируйте скалярный продукт путем деления на квадратный корень размерности ключевого вектора. Размер равен 64, поэтому скалярное произведение делим на 8.
Шаг 3: Используйте софтмакс
Softmax нормализует значения шкалы. После применения Softmax все значения положительные и в сумме дают 1
Шаг 4: Рассчитайте взвешенную сумму значений
Мы применяем скалярное произведение между нормализованной оценкой и вектором значений, затем вычисляем сумму
Полная формула внимания к себе
Повторите эти действия для каждого слова в предложении.
долгое внимание
Вместо одной функции внимания Трансформер использует несколько головок внимания, т. е. фактическое слово само контролирует внимание.
Каждая голова внимания имеет различное линейное преобразование, применяемое к одному и тому же входному представлению. Transformer использует 8 разных головок внимания, которые независимо вычисляются параллельно. С 8 различными головками внимания у нас есть 8 различных наборов запросов, ключей и значений, а также 8 наборов кодировщиков и декодеров, каждый из которых инициализируется случайным образом.
«Многоголовое внимание позволяет модели совместно фокусироваться на информации из разных подпространств представления в разных местах».
В головке внимания с несколькими головками каждая часть входного представления взаимодействует с другими частями входного представления для лучшего значения и контекста. Это также помогает изучить долгосрочные зависимости, когда многоголовое внимание наблюдает за различными подпространствами представления в разных местах.
Используя длительное внимание, мы знаем, что «это» в приведенном выше предложении относится к «коронавирусу».
маскировать долгое внимание
Декодер маскирует многоголовое внимание, когда он маскирует или блокирует ввод декодера для будущих шагов. Во время обучения многоголовое внимание декодера скрывает будущие входные данные декодера.
В задаче машинного перевода, используя Transformer для перевода предложения «Я наслаждаюсь природой» с английского на хинди, декодер будет учитывать все входные слова «Я, наслаждаюсь, природа», чтобы предсказать первое слово.
В следующей таблице показано, как декодер будет блокировать ввод на следующих шагах.
Каждый подуровень в кодере и декодере имеет остаточное соединение, за которым следует нормализация уровня.
Остаточные соединения и нормализация слоя
Остаточные соединения — это «пропущенные соединения», которые позволяют градиентам проходить через сеть, минуя нелинейную функцию активации. Остаточные соединения помогают избежать проблем с исчезновением или взрывом градиента. Чтобы остальные соединения работали, выходные данные каждого подслоя в модели должны быть одинаковыми. Все подслои в Transformer, производящие выходные данные размером 512.
Нормализация слоев: ввод каждой функции нормализуется по слоям и не зависит от других примеров, как показано ниже. Нормализация слоев сокращает время обучения нейронных сетей с прямой связью. При нормализации слоя мы вычисляем среднее значение и дисперсию накопленных входных данных для нейронов во всех слоях в одном учебном примере.
полносвязный слой
И кодировщик, и декодер в Transformer имеют полносвязную сеть с двумя линейными преобразованиями, которые содержат активацию ReLU.
Декодеры для линейных и softmax
Последний уровень декодера преобразует выходные данные декодера, используя линейное преобразование и функцию softmax, чтобы предсказать вероятность вывода.
Особенности трансформатора
Использование Transformer для устранения недостатков модели seq2seq
-
Параллельные вычисленияАрхитектура :Transformer удаляет авторегрессионную модель, используемую в модели Seq2Seq, и полностью полагается на внутреннее внимание для понимания глобальных зависимостей между вводом и выводом. Самостоятельное внимание очень помогает распараллелить вычисления
-
Сократить количество операций:Количество операций Transformer постоянно, потому что при многоголовом внимании веса внимания усредняются.
-
длинные зависимости: Факторы, влияющие на дистанционное обучение, основаны на длине прямого и обратного путей, по которым сигнал должен пройти через сеть. Чем короче путь между любой комбинацией позиций во входной и выходной последовательностях, тем проще выучить долгосрочные зависимости. Слой самоконтроля изучает долгосрочные зависимости, соединяя все местоположения с помощью последовательности операций, выполняемых последовательно.
Задачи НЛП, с которыми справляются Трансформеры
- текстовое резюме
- машинный перевод
в заключении:
Transformer имеет простую сетевую структуру, основанную на механизме внутреннего внимания, который вообще не полагается на рекурсию и свертку. Вычисления выполняются параллельно, что делает Transformer эффективным и требует меньше времени на обучение.
Оригинальная ссылка:к data science.com/simple-ex довольно…
Добро пожаловать на сайт блога Panchuang AI:panchuang.net/
sklearn машинное обучение китайские официальные документы:sklearn123.com/
Добро пожаловать на станцию сводки ресурсов блога Panchuang:docs.panchuang.net/