Сравнение техник обработки естественного языка RNN, трансформеры, BERT

Сравнение техник обработки естественного языка RNN, трансформеры, BERT

 

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

С расширением области NLP многие исследователи пытаются улучшить способность машины лучше понимать текстовые данные. В ходе продвижения было предложено и применено множество техник в области NLP.

В данной статье будут сравниваться различные техники обработки текстовых данных в области NLP. Статья будет сосредоточена на обсуждении RNN, Transformers (Трансформеры) и BERT, так как они часто используются в исследованиях. Давайте начнем.

 

Рекуррентная нейронная сеть

 

Рекуррентная нейронная сеть или RNN была разработана в 1980 году, но только недавно привлекла внимание в области NLP. RNN – это особый тип в семействе нейронных сетей, используемый для последовательных данных или данных, которые не могут быть независимыми друг от друга. Примеры последовательных данных – это временные ряды, аудио или текстовые данные предложений, в основном любой тип данных с определенным порядком.

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

  

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

Если взять пример с текстовыми данными, представьте, что у нас есть предложение ” Я просыпаюсь в 7 утра “, и у нас есть слова в качестве входных данных. В обычной прямой нейронной сети, когда мы достигаем слова “вверх”, модель уже забудет слова “Я”, “просыпаюсь” и “вверх”. Однако RNN использует каждый выход для каждого слова и зацикливает их обратно, чтобы модель не забывала.

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

Изучая RNN более детально на текстовых данных, можно выделить множество типов RNN. Например, ниже показана многие-ко-многим типы.  

Из рисунка выше видно, что вывод для каждого шага (шаг-времени в RNN) обрабатывается по одному шагу одновременно, и каждая итерация всегда учитывает предыдущую информацию.

Еще один тип RNN, используемый во многих приложениях NLP, – это тип энкодер-декодер (Последовательность-Последовательность). Структура показана на изображении ниже.

  

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

Использование RNN для обработки данных естественного языка имеет множество преимуществ, включая:

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

Однако также есть несколько недостатков:

  1. RNN подвержены как затухающим, так и взрывающимся градиентам. Здесь результат градиента близок к нулю (затухание), что приводит к обновлению весов сети только на малую величину, или результат градиента настолько значим (взрыв), что присваивает нереалистическое огромное значение сети.
  2. Долгое время обучения из-за последовательной природы модели.
  3. Краткосрочная память означает, что модель начинает забывать, чем дольше она тренируется. Существует расширение RNN, называемое LSTM, которое способно справиться с этой проблемой.

 

Трансформеры

 

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

Механизм внимания был представлен в статье Bahdanau et al. (2014) для решения проблемы с длинными входными данными, особенно в типе кодировщик-декодировщик RNN. Я не буду подробно объяснять механизм внимания. В основном, это слой, который позволяет модели сосредоточиться на ключевой части входных данных при прогнозировании результата. Например, если задача состоит в переводе, слово “Часы” будет иметь высокую корреляцию с “Вареньем” на индонезийском языке.

Модель трансформеров была представлена в работе Vaswani et al. (2017). Архитектура вдохновлена кодировщик-декодировщиком RNN и создана с учетом механизма внимания, не обрабатывая данные последовательно. Общая структура модели трансформеров выглядит как на изображении ниже.

  

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

Трансформеры имеют несколько преимуществ по сравнению с другими моделями:

  1. Параллельный процесс увеличивает скорость обучения и вывода.
  2. Способны обрабатывать более длинные входные данные, что предоставляет лучшее понимание контекста.

Тем не менее, у модели трансформеров также есть недостатки:

  1. Высокие вычислительные требования.
  2. Механизм внимания может потребовать разделение текста из-за ограничения на длину, которую он может обрабатывать.
  3. Контекст может быть утрачен, если разделение выполнено неправильно.

BERT

BERT, или Bidirectional Encoder Representations from Transformers, – это модель, разработанная Devlin et al. (2019), включающая два этапа (предварительное обучение и настройку) для создания модели. Если сравнивать, BERT является набором кодировщиков трансформеров (BERT Base содержит 12 слоев, а BERT Large – 24 слоя).

Общая структура модели BERT показана на изображении ниже.

  

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

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

BERT считается ненаправленной моделью, потому что она не читает входные данные последовательно (слева направо или наоборот), а кодировщик трансформера читает всю последовательность одновременно.

В отличие от направленных моделей, которые последовательно читают текстовый ввод (слева направо или справа налево), кодировщик трансформера читает всю последовательность слов одновременно. Вот почему модель считается ненаправленной и может понимать всю контекст входных данных.

Чтобы добиться двунаправленности, BERT использует две техники:

  1. Модель маскирования языка (MLM) — техника маскирования слов. Техника заключается в маскировании 15% входных слов и попытке предсказать это маскированное слово на основе немаскированного слова.
  2. Предсказание следующего предложения (NSP) — BERT пытается понять взаимосвязь между предложениями. Модель имеет пары предложений в качестве входных данных и пытается предсказать, существует ли последующее предложение в исходном документе.

Использование BERT в области NLP имеет несколько преимуществ, включая:

  1. BERT легко использовать для предварительного обучения различных задач NLP.
  2. Двунаправленность делает BERT лучше понимать контекст текста.
  3. Это популярная модель, получившая много поддержки от сообщества.

Однако есть несколько недостатков, включая:

  1. Для настройки некоторых задач требуется высокая вычислительная мощность и длительное время обучения.
  2. Модель BERT может требовать много места для хранения.
  3. Его лучше использовать для сложных задач, так как результаты для простых задач не сильно отличаются от использования более простых моделей.

 

Заключение

 

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

  1. RNN
  2. Трансформеры
  3. BERT

У каждой техники есть свои преимущества и недостатки, но в целом мы видим, как модель продолжает развиваться в лучшую сторону. Cornellius Yudha Wijaya – заместитель руководителя по науке о данных и писатель данных. Работая полный рабочий день в Allianz Indonesia, он любит делиться советами по Python и данным в социальных сетях и в СМИ.

[Cornellius Yudha Wijaya](https://www.linkedin.com/in/cornellius-yudha-wijaya/) – заместитель руководителя по науке о данных и писатель данных. Работая полный рабочий день в Allianz Indonesia, он любит делиться советами по Python и данным в социальных сетях и в СМИ.