Обработка естественного языка или НЛП - это ветвь искусственного интеллекта, которая помогает машинам понимать естественный язык людей. В основном люди общаются друг с другом голосом или текстом. Итак, как работает НЛП? Что ж, один из типов данных, с которыми мы можем иметь дело в машинном обучении, - это последовательные данные, которые представляют собой последовательность данных (например, текст, голос). НЛП может создавать системы, которые принимают последовательность данных в качестве входных данных, обрабатывают ее и производят другую последовательность данных. Буква называется последовательной моделью или Seq2seq (последовательность (вход) в последовательность (выход)).

В этом посте мы рассмотрим, что такое последовательная модель и путь от seq2seq к трансформатору. Я предполагаю, что ввод - это текст / предложение. Обратите внимание, что я не углубляюсь в детали архитектуры моделей, которые мы исследуем. Однако я объясню идею высокого уровня и то, как были введены трансформаторы.

Seq2Seq

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

Если вам нужно погрузиться глубже и узнать больше о seq2seq, вот Последовательное обучение [1], исследовательская статья, опубликованная Google для дальнейшего чтения.

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

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

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

Что, если мы хотим сделать модель быстрее? Трансформатор был введен как идея ускорить время работы модели.

Трансформатор

Трансформатор был предложен Google в статье Все, что вам нужно [3]. Transformer - это модель глубокого обучения, которая также является архитектурой на основе кодировщика-декодера, которая использует механизм внимания, но не полагается на RNN для ускорения модели. Он состоит из кодировщика, который можно рассматривать как стек кодировщиков / слоев кодирования (шесть слоев в документе) и такое же количество декодеров.

Компонент каждого уровня кодера / кодирования представляет собой два подуровня, включая уровень внимания и нейронную сеть с прямой связью (FFNN), в то время как блок декодера состоит из трех подуровней, включая два уровня внимания и один уровень FFNN.

Для дальнейшего чтения статья Внимательное изучение моделей внимания [4] предоставляет структурированный и всесторонний обзор достижений в моделировании внимания с помощью таксономии внимания.

Кроме того, вы можете найти здесь Трансформатор с комментариями, который представляет собой аннотированную версию статьи Все, что вам нужно, которая представлена ​​в виде построчной реализации командой Гарвардского НЛП.

Вывод

В этом посте мы изучили, как модели последовательностей были улучшены в НЛП и как были введены трансформеры.

Удачного обучения !!

использованная литература

[1] И. Суцкевер, Последовательность для последовательного обучения с помощью нейронных сетей (2014), Google

[2] Д. Богданов, Нейронный машинный перевод путем совместного обучения согласованию и переводу (2015), ICLR

[3] А. Васвани, Внимание - все, что вам нужно (2017), Google

[4] С. Чаудхари, Внимательный обзор моделей внимания (2020), Транзакции по интеллектуальным системам и технологиям (TIST).