Модели, основанные на рекуррентных нейронных сетях (RNN), долговременной кратковременной памяти (LSTM) и закрытых рекуррентных единицах (GRU), играли значительную роль в обработке естественного языка (NLP) в течение значительного периода времени. RNN, появившиеся в 1980-х годах, были одними из первых моделей последовательностей, используемых в НЛП. LSTM, представленные Hochreiter и Schmidhuber в 1997 г., а затем GRU, предложенные Cho et al. в 2014 году были варианты RNN, предназначенные для решения проблемы исчезающего градиента и более эффективного захвата долгосрочных зависимостей с использованием дополнительных вентилей для захвата краткосрочных и долгосрочных воспоминаний. Эти модели стали популярными решениями для различных задач NLP, включая языковой перевод, анализ настроений и генерацию текста, благодаря их способности обрабатывать последовательные данные и сохранять контекст во времени.

Архитектуры кодер-декодер, основанные на RNN, LSTM и GRU, широко используются в обработке естественного языка (NLP) для таких задач, как машинный перевод, суммирование текста и ответы на вопросы. Эти архитектуры были нацелены на решение проблем последовательностей, когда входные и выходные последовательности могут быть разной длины. Кодер отвечал за обработку входной последовательности, создавая представление фиксированного размера (вектор контекста), фиксирующее значение ввода. Затем декодер использовал этот вектор контекста для пошаговой генерации выходной последовательности.

Ограничения традиционных подходов

Хотя RNN, LSTM и GRU остаются распространенными и незаменимыми инструментами для решения многочисленных проблем NLP, их математическая основа накладывает множество ограничений.

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

Баданау, 2014 г.: Привлечение внимания

Первый механизм внимания был опубликован в статье под названием Нейронный машинный перевод путем совместного обучения выравниванию и переводу Дмитрия Богданова, Кёнхён Чо и Йошуа Бенгио.

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

Вот как работает внимание Багданау в модели кодер-декодер:

  1. Кодировщик: входное предложение (источник) обрабатывается кодировщиком, обычно с использованием двунаправленной рекуррентной нейронной сети (RNN), такой как LSTM или GRU. Это двунаправленное кодирование позволяет модели фиксировать как левый, так и правый контекст каждого слова, что имеет решающее значение для понимания смысла предложения. Затем мы получаем аннотации hi, соответствующие каждому входному токену.

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

Модель выравнивания, по сути, представляет собой компонент нейронной сети, который обучен запоминать веса внимания для каждого слова в исходном предложении при создании целевого предложения. Механизм внимания использует скрытые состояния кодера (обычно вычисляемые с помощью RNN или LSTM) и скрытое состояние декодера (также обычно RNN или LSTM) в качестве входных данных. Затем эти входные данные обрабатываются слоем нейронной сети для расчета весовых коэффициентов внимания. Модель выравнивания определяется как дополнительное внимание между аннотациями кодера hj и предыдущим скрытым состоянием декодера в момент времени t-1. Он определяется математически следующим образом:

Затем веса вычисляются путем передачи всех аддитивных значений внимания через функцию softmax:

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

4. Декодер:декодер получает вектор контекста в качестве входных данных и генерирует следующее слово перевода. Этот процесс повторяется итеративно, пока не будет сгенерирован весь перевод. Выходные данные декодера будут зависеть от предыдущего вывода, текущего вектора контекста и текущего скрытого состояния декодера.

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

Хотя внимание Багданау принесло значительное улучшение в последовательных задачах, таких как машинный перевод с использованием аддитивного внимания. Он все еще страдает от некоторых ограничений. Пожалуй, самые важные из них:

  • Фиксированная модель выравнивания.Модель выравнивания во внимании Богданау статична и фиксируется во время декодирования. После того, как веса внимания изучены во время обучения, они остаются постоянными во время логического вывода. Это означает, что модель не может адаптировать выравнивание на лету на основе целевого контекста или предыдущих предсказаний слов, что может ограничить ее гибкость.
  • Проблема охвата. Из-за фиксированной модели выравнивания внимание Багданау может не всегда эффективно обрабатывать длинные предложения или сложные зависимости. Он может не уделить достаточного внимания определенным областям исходного предложения, что приведет к «проблеме охвата», когда некоторые части исходного предложения не получают достаточного внимания.
  • Вычислительная сложность. Внимание Багданау включает в себя вычисление веса внимания для каждого слова в исходном предложении при создании каждого слова в целевом предложении. Это приводит к квадратичной сложности по отношению к длине исходного предложения, что делает его вычислительно затратным, особенно для длинных предложений.

Луонг Внимание 2015

После внимания Бахданау следующей значительной моделью внимания в последовательности разработок моделей последовательностей последовательностей было внимание Луонга, представленное Минь-Танг Луонгом, Хье Фамом и Кристофером Д. Мэннингом в их статье 2015 года под названием «Эффективные подходы к Нейронный машинный перевод на основе внимания».

Внимание Луонга, также известное как «Глобальное внимание» или «Внимание с масштабируемым скалярным произведением», улучшило внимание Багданау, упростив механизм внимания и достигнув сравнимой или лучшей производительности в различных последовательных задачах.

Ключевое различие между вниманием Бахданау и вниманием Луонга заключается в том, как вычисляются показатели внимания и используются скрытые состояния.

  1. Во внимании Bahdanau оценки выравнивания рассчитываются с использованием отдельной нейронной сети с прямой связью (concat product), в то время как внимание Luong использует более простой подход, используя скалярное произведение скрытых состояний кодировщика и декодера, заданное следующим уравнением:

2. Вектор выравнивания (веса) выводится с использованием текущего скрытого состояния декодера. В то время как в багдановом выравнивании используется предыдущее скрытое состояние декодера.

Модели внимания Луонга широко используются в различных задачах обработки естественного языка, включая машинный перевод, суммирование текста и распознавание речи, и они служат основой для более поздних механизмов внимания в моделях на основе трансформеров, таких как самовнимание Трансформера. Он достиг сопоставимых или лучших характеристик, чем внимание Багданау, с уменьшенной сложностью модели. Однако его ограниченная выразительность и характер глобального внимания могут ограничивать его производительность в более сложных задачах или при работе с длинными последовательностями.

Внимание — это все, что вам нужно, 2017 г.

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

Теперь возникает естественный вопрос: какова фундаментальная структура этой архитектуры? Давайте приступим к изучению его высокоуровневого дизайна:

Архитектура кодировщик-декодер

Наиболее конкурентоспособные модели последовательностей до появления преобразователей имели всю архитектуру кодер-декодер. Этот факт не изменился! Трансформаторы основаны на структуре кодер-декодер. Где кодировщик берет входную последовательность (токены) и выводит последовательность z непрерывных представлений той же длины, что и входная последовательность. Затем декодер берет это представление z и использует его для генерации выходной последовательности авторегрессивным способом на каждом шаге. Это означает, что декодер будет иметь доступ к представлениям кодировщика и предыдущим сгенерированным выходным данным. Архитектура Transformer предназначена для размещения нескольких блоков, подразумевая, что кодировщик, по сути, представляет собой набор кодировщиков, сложенных друг в друга, и аналогичным образом декодер состоит из декодеров, сложенных друг в друга. Такой многоуровневый подход облегчает моделирование сложных взаимосвязей данных. В исследовательской статье показано стекирование 6 идентичных кодировщиков и 6 декодеров, хотя для ясности мы углубимся в особенности одноблочного кодировщика и декодера в следующих разделах.

Кодировщик

Блок кодировщика состоит из двух подуровней:

  1. Многоголовый механизм самоконтроля
  2. Полностью связанная нейронная сеть с позиционированием.

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

Вот как выглядит архитектура кодировщика:

Самостоятельное внимание и поиск информации

Самостоятельное внимание — это важнейший механизм, который позволяет модели фиксировать зависимости между различными позициями во входной последовательности. Этот механизм тесно связан с поиском информации. Позволь мне объяснить:

  • С точки зрения поиска информации самовнимание в НЛП можно понимать как механизм, который позволяет модели взвешивать релевантность различных слов или токенов в документе по отношению друг к другу и запросу.
  • Каждый токен во входной последовательности представлен с помощью тройных векторов (запрос, ключ и значение). Эти векторы вычисляются с помощью 3 линейных преобразований, параметризованных Wq, Wk и Wv. Это представление очень похоже на задачу поиска информации, когда у нас есть запрос, и мы ищем похожие записи в словаре документов вида {ключ: значение}. Таким образом, можно искать связанные токены, вычисляя определенную оценку (сходство) между запросом этого токена и ключами в нашем словаре.
  • Как только мы находим похожие ключи для запроса, мы вычисляем выходное значение как взвешенную сумму значений похожих ключей. Веса, присвоенные каждому значению, вычисляются функцией совместимости запроса с соответствующим ключом. Это вычисление выполняется для каждого токена.

Подводя итог, можно сказать, что для вычисления внутреннего внимания входная последовательность проходит через три различных линейных преобразования для создания матриц запроса (Q), ключа (K) и значения (V). Эти преобразования параметризуются весовыми матрицами: Wq, Wk и Wv. Затем эти матрицы используются для вычисления сходства между токенами с использованием функции оценки, как и при поиске информации. Матрицы запроса, ключа и значения вычисляются следующим образом (X — входная последовательность):

Масштабирование скалярного произведения внимания

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

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

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

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

Многоголовое самовнимание — вариант самовнимания, используемый в модели Трансформера. Он включает в себя параллельное выполнение нескольких наборов вычислений внимания, каждый из которых фокусируется на различных отношениях и аспектах входной последовательности.

Авторы заметили, что модель преобразователя может выиграть от выполнения множественных проекций для запросов, ключей и значений. Итак, вместо представления входной последовательности с помощью триплетной матрицы (Q, K, V). Он будет представлен в виде набора триплетов (Q1, K1, V1)… (Qh, Kh, Vh), где h — количество орлов, и каждый триплет будет вычисляться с другим набором параметров.

Выходные данные всех головок объединяются и линейно преобразуются для получения окончательного представления собственного внимания. Такой подход позволяет модели фиксировать различные шаблоны и зависимости, повышая ее способность эффективно обрабатывать и понимать сложные последовательности.

Запросы, ключи и значения во внимании с несколькими головками имеют одинаковую размерность, равную размерности входных данных, деленной на h количество головок (в статье 64). Таким образом, вычислительная сложность остается аналогичной одноголовому вниманию с полной размерностью.

Позиционно-упреждающая сеть

Второй подуровень в модели кодировщика представляет собой сеть с прямой связью по положению. Он состоит из простого линейного преобразования с функцией активации ReLU.

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

Вход энкодера

Входные данные модели Transformer представляют собой последовательность вложений, представляющих слова или токены в заданном тексте. Преобразователь обрабатывает эту входную последовательность через свой кодировщик, чтобы создать контекстуальные представления для каждого слова/токена. Обработка ввода в модели Transformer следует следующим шагам:

1. Токенизация: вводимый текст сначала разбивается на отдельные слова или подслова (подэлементы). Каждому токену присваивается целочисленный идентификатор из словаря модели.

2. Внедрение слов. Каждый идентификатор токена сопоставляется с плотным векторным представлением, называемым встраиванием. Эти вложения фиксируют семантическое значение каждого слова или подэлемента. Слой встраивания обычно представляет собой справочную таблицу, которую изучают во время обучения модели.

3. Позиционное кодирование: Transformer не имеет встроенного понятия порядка слов, поэтому для понимания последовательности требуется дополнительная информация. Для обработки порядка последовательности к вложениям добавляются позиционные кодировки. Позиционное кодирование передает информацию о положении токена в последовательности, позволяя модели различать токены с одинаковым встраиванием.

4. Входная последовательность. Конечным входом для модели Transformer является сумма вложений слов и позиционных кодировок. Каждое слово или токен во входной последовательности представлено вектором, который объединяет встраивание слова и позиционное кодирование.

Синусоидальное кодирование положения

В статье они протестировали заученное кодирование положения и синусоидальное кодирование положения, где каждое измерение позиционного кодирования соответствует синусоиде. Кодирование вычисляется по следующим формулам:

  • Где «pos» — позиция в последовательности, а «i» — размерность.

Их выводы побудили их рекомендовать сохранить синусоидальное кодирование по двум основным причинам:

  1. Способность модели учитывать относительные положения в синусоидальном кодировании улучшена благодаря линейной проекции, обеспечиваемой свойствами функции синуса. Это облегчает вычисление кодирования маркера со смещением k.
  2. Синусоидальное кодирование позволяет модели расширить свое понимание до длин последовательностей, превышающих те, которые встречаются во время обучения. Напротив, кодирование выученной позиции будет демонстрировать ограничения при столкновении с такими сценариями.

Декодер

Декодер Transformer использует ту же архитектуру, что и кодировщик, с некоторыми изменениями, позволяющими адаптировать его для авторегрессионной генерации выходных последовательностей. Хотя и кодер, и декодер состоят из нескольких слоев нейронных сетей с самостоятельным вниманием и прямой связью, декодер имеет 3 основных отличия:

  1. Внимание кодировщика-декодера. Декодер включает механизм перекрестного внимания, который позволяет ему обращать внимание на контекстуальные представления кодировщика. Это перекрестное внимание позволяет декодеру сосредоточиться на соответствующих частях входной последовательности при генерации выходных данных. Уровни «внимание кодировщика-декодера» в модели Transformer следуют механизму, в котором запросы исходят от предыдущего уровня декодера, а ключи и значения памяти извлекаются из выходных данных кодера. Эта конструкция позволяет каждой позиции в декодере обслуживать все позиции во входной последовательности, воспроизводя общий механизм внимания кодер-декодер, используемый в традиционных моделях последовательностей.
  2. Маскированное самовнимание в декодере Трансформера — важнейшая модификация, обеспечивающая авторегрессионную генерацию выходных последовательностей при обучении. Это не позволяет декодеру следить за будущими позициями в выходной последовательности при создании каждого токена, сохраняя свойство авторегрессии. В слоях внутреннего внимания декодера каждый запрос токена обращается ко всем ключам и значениям из предыдущих позиций во входной последовательности декодера, имитируя типичный механизм внутреннего внимания. Однако, в отличие от само-внимания кодировщика, во время обучения само-внимание декодера маскируется, чтобы текущий маркер не обращал внимание на будущие позиции в выходной последовательности. Маскировка достигается путем установки оценки внимания будущих позиций на отрицательную бесконечность (или большое отрицательное значение) перед применением операции softmax.
  3. Поведение обучения и логического вывода. Декодер работает по-разному на этапах обучения и логического вывода из-за маскированного собственного внимания. Поскольку при обучении у нас есть доступ к будущим токенам, а при выводе у нас есть доступ только к ранее сгенерированным токенам.

Обучение против вывода

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

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

Положил все это вместе

В документе «Внимание — это все, что вам нужно» обучение модели Transformer резюмируется следующим образом:

1.Обучение с учителем. Модель Transformer обучается с использованием парадигмы обучения с учителем, где она учится предсказывать целевые последовательности (например, переводы или языковое моделирование) с учетом входных последовательностей (например, исходных предложений).

2. Входное представление: входные последовательности и целевые последовательности размечаются и преобразуются во встроенные представления. Эти вложения фиксируют семантическое значение каждого токена и его положение в последовательности.

3. Позиционное кодирование: векторы позиционного кодирования добавляются к встраиваниям, чтобы предоставить информацию о положении каждого токена в последовательности, что позволяет модели обрабатывать последовательные данные.

4. Архитектура кодировщик-декодер. Модель Transformer состоит из кодировщика и декодера. Кодер обрабатывает входные последовательности, а декодер авторегрессивно генерирует выходные последовательности, обращая внимание на контекстуальные представления кодировщика.

5. Механизм самостоятельного внимания. Самостоятельное внимание используется как в кодировщике, так и в декодере, что позволяет модели обращать внимание на разные части входных и выходных последовательностей и фиксировать сложные зависимости.

6. Механизм перекрестного внимания: в декодере используется перекрестное внимание, позволяющее ему обращать внимание на контекстуальные представления кодировщика, что позволяет ему сосредоточиться на соответствующей информации во время генерации.

7. Маскировка при декодировании. Во время обучения самостоятельная работа декодера маскируется, чтобы предотвратить его внимание к будущим позициям в выходной последовательности, обеспечивая авторегрессивный характер генерации.

8. Расчет потерь. Прогнозы модели сравниваются с достоверными целевыми последовательностями с использованием функции потерь, такой как перекрестная энтропия, для количественной оценки несоответствия между предсказанными вероятностями и истинными целевыми токенами.

9. Обратное распространение и оптимизация. Градиенты потерь по отношению к параметрам модели вычисляются с использованием обратного распространения, а алгоритмы оптимизации, такие как Адам, используются для обновления параметров.

Благодаря этому процессу обучения модель Transformer учится эффективно фиксировать сложные отношения во входных данных, что делает ее очень успешной в различных задачах обработки естественного языка, таких как машинный перевод, генерация текста и понимание языка.

Заключение

В заключение, эволюция механизмов внимания в обработке естественного языка была замечательным путешествием, начавшимся с новаторской работы Багданау в 2014 году, за которой последовало усовершенствование Луонга в 2015 году и кульминацией в революционной модели Трансформера, представленной в «Внимание — это все, что вам нужно» в 2017.

Механизм внимания оказался ключевой концепцией в задачах от последовательности к последовательности, устраняя ограничения традиционных архитектур кодер-декодер и позволяя моделировать долгосрочные зависимости. Механизм внимания Багданау представил идею мягкого выравнивания, позволяющего модели сосредоточиться на соответствующих частях входной последовательности при создании каждого выходного токена. Глобальное внимание Луонга еще больше повысило эффективность и масштабируемость, снизив вычислительные затраты на вычисление показателей внимания. Эти ранние механизмы внимания значительно повысили производительность систем машинного перевода и проложили путь для более сложных подходов.

Модель Трансформера, представленная Васвани и др., была новаторской инновацией, которая полностью использовала силу внимания к себе. Используя механизмы внутреннего внимания как в кодере, так и в декодере, Transformer достиг самых современных результатов в различных задачах обработки естественного языка, обеспечивая при этом параллельные вычисления и эффективное обучение. Способность Transformer моделировать сложные отношения и зависимости в длинных последовательностях произвела революцию в области НЛП и стала доминирующей архитектурой в сообществе глубокого обучения.

Успех механизмов внимания, от Багданау до Луонга и, наконец, Трансформера, доказал важность моделирования контекста и выравнивания в задачах последовательного выполнения. Путь от локального внимания к вниманию к себе вызвал многочисленные исследования, вдохновившие на создание различных вариантов и усовершенствований моделей, основанных на внимании. Механизм внимания стал фундаментальным компонентом современных моделей НЛП, стимулируя прогресс в области машинного перевода, понимания языка, генерации текста и многих других приложений.

Путь от первоначального механизма внимания Багданау к современной модели Transformer заложил основу для разработки больших языковых моделей. Эти модели, основанные на механизмах внимания, раздвинули границы обработки естественного языка и произвели революцию в этой области. Благодаря своей способности обрабатывать огромные объемы данных, понимать контекст и выполнять широкий спектр задач, большие языковые модели стали краеугольным камнем современных исследований и приложений НЛП. По мере продвижения вперед этот прогресс, несомненно, продолжит открывать двери для еще более мощных и инновационных языковых моделей, формируя будущее искусственного интеллекта и взаимодействия человека с машиной.

Рекомендации