[Почти] Все, что вам нужно знать в 2019 году

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

Подобные задачи требуют запоминания - предстоящее предложение должно работать с определенным контекстом из предыдущего предложения. Это очень важно, чтобы не потерять важный контекст между предложениями.

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

Внимание - все, что вам нужно (2017)

Авторы этой статьи предлагают сетевую архитектуру - Трансформатор - основанную исключительно на механизмах внимания. Модель набрала 28,4 балла BLEU (дублер двуязычной оценки) за задание по переводу с английского на немецкий язык WMT 2014. Модель преобразования трансформатора использует самовнимание для вычисления представлений его ввода и вывода без использования свертки или последовательного выравнивания RNN.



Большинство моделей трансдукции нейронных последовательностей имеют модель кодировщика-декодера. Трансформер использует ту же модель с включением собственного внимания. Полносвязные уровни используются как для кодировщика, так и для декодера. Кодер состоит из 6 идентичных слоев, каждый из которых имеет 2 подслоя. Первый подуровень представляет собой механизм самовнимания с несколькими головками, а второй - это позиционная полностью подключенная сеть с прямой связью. Есть остаточная связь вокруг каждого из двух подуровней. Затем следует уровень нормализации.

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

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

Модель была обучена на англо-немецком наборе данных WMT 2014, который содержит около 4,5 миллионов пар последовательностей. Вот результаты, полученные в тестах newstest2014 для перевода с английского на немецкий и с английского на французский.

BERT: Предварительная подготовка глубоких двунаправленных преобразователей для понимания языка (2019)

Двунаправленные представления кодировщика от трансформаторов (BERT) - это модель представления языка, представленная авторами с языка Google AI. BERT предварительно обучает глубокие двунаправленные представления из немаркированного текста путем совместной обработки левого и правого контекста на всех уровнях.

Предварительно обученную модель BERT можно настроить с помощью одного дополнительного уровня для создания моделей для таких задач, как ответы на вопросы и языковой вывод. BERT достигает самых современных результатов в задачах обработки естественного языка. Эти результаты включают оценку GLUE (общая оценка понимания языка) на 80,5% и точность MultiNLI - 86,7%.



Чтобы обеспечить предварительно обученные глубокие двунаправленные представления, BERT использует маскированные языковые модели. BERT состоит из двух основных этапов - предварительного обучения и тонкой настройки.

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

На рисунке ниже показан пример задачи с ответом на вопрос. Архитектура BERT унифицирована для различных задач с минимальной разницей между предварительно обученной и конечной последующей архитектурой.

Архитектура BERT представляет собой многослойный двунаправленный кодировщик Transformer. Он использует вложения WordPiece со словарным запасом в 30 000 токенов. Специальный маркер классификации [(CLS)] образует первый маркер для каждой последовательности. Пары предложений объединяются в единое представление. Предложения различаются специальным токеном [(SEP)] и добавлением заученного вложения к каждому токену, который указывает, принадлежит ли он предложению A или B.

Предварительное обучение модели было проведено с использованием BooksCorpus (800 млн слов) и английской Википедии (2500 млн слов). Вот результаты теста КЛЕЙ.

Transformer-XL: внимательные языковые модели за пределами контекста фиксированной длины (ACL 2019)

Transformer-XL (что означает сверхдлинный) позволяет изучать зависимости за пределами фиксированной длины без нарушения временной согласованности. Он включает в себя механизм повторения на уровне сегмента и схему позиционного кодирования. TransformerXL изучает зависимости, которые на 80% длиннее, чем RNN, и на 450% длиннее, чем обычные Transformers. Он доступен как на TensorFlow, так и на PyTorch.



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

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

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

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

Характеристики этой модели показаны ниже.

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

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

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



Поток контента предлагаемого метода такой же, как и у стандартного самовнимания. У потока запросов внимание нет информации доступа о контексте.

В данной статье реализуются две идеи из схемы относительного позиционного кодирования Transformer-XL и механизма повторения сегментов. На этапе предварительного обучения авторы случайным образом выбирают два сегмента и рассматривают конкатенацию двух сегментов как одну последовательность для выполнения моделирования на языке перестановок. Повторно используется только память, принадлежащая тому же контексту. Входные данные модели аналогичны входным данным для BERT.

Вот различные результаты, полученные на модели.

ELMo с поддержкой сущностей: изучение представления контекстных сущностей для устранения неоднозначности сущностей (2019)

В этой статье изучается объектно-ориентированное расширение Embedding for Language Model (ELMo), известное как Entity-ELMo (E-ELMo). Встраивание языковой модели (ELMo) было введено Peters et. al для создания контекстно-зависимого представления слов как функции всего предложения. E-ELMo обучает языковую модель предсказывать обоснованную сущность при встрече с ее упоминаниями, в отличие от слов в упоминаниях.



Поскольку E-ELMo, по сути, является расширением ELMo, давайте кратко рассмотрим ELMo. Учитывая последовательность, ELMo создает представления слов поверх двухуровневой двухуровневой сети. На входе - свертки символов. ELMo сначала вычисляет независимое от контекста представление для каждого направления. Это делается путем применения символьной CNN для каждого токена в позиции k. Затем представления токенов проходят через двухуровневые LSTM. E-ELMo обучается на подмножестве набора данных Википедии. Обучение E-ELMo осуществляется через AdaGrad со скоростью обучения 0,1 для 10 эпох.

Вот результаты, полученные с помощью этой модели.

Тонкая настройка универсальной языковой модели для классификации текста (ULMFiT) (2018)

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



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

Языковая модель предварительно обучена на Wikitext-103, который состоит из 28 595 предварительно обработанных статей Википедии и 103 миллионов слов. Затем LM настраивается на данные целевой задачи. Дискриминационная тонкая настройка и наклонные треугольные скорости обучения предлагаются для точной настройки модели. Классификатор целевой задачи настраивается путем дополнения предварительно обученной языковой модели двумя дополнительными линейными блоками. В каждом из блоков используется пакетная нормализация и выпадение. Активация ReLU используется для промежуточных слоев, а функция активации softmax - для вывода распределений вероятностей.

Вот частота ошибок теста, полученная с помощью этой модели.

Универсальные трансформаторы (ICLR 2019)

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



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

Архитектура Universal Transformer - это кодер-декодер. Кодер и декодер работают, применяя рекуррентные нейронные сети к представлениям каждой из позиций входной и выходной последовательности. Рекуррентная нейронная сеть не повторяется по позициям в последовательности. Вместо этого он повторяется при последовательных пересмотрах векторных представлений каждой позиции.

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

Вот как работает эта модель.

Заключение

Теперь мы должны быть в курсе некоторых из наиболее распространенных - и нескольких совсем недавних - техник в Transformers.

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



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

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

Если вы хотите внести свой вклад, отправляйтесь на наш призыв к участникам. Вы также можете подписаться на наши еженедельные информационные бюллетени (Deep Learning Weekly и Comet Newsletter), присоединиться к нам в » «Slack и подписаться на Comet в Twitter и LinkedIn для получения ресурсов, событий и гораздо больше, что поможет вам быстрее и лучше строить модели машинного обучения.