К научным трудам

Источник: Сборник научных статей по материалам V Международной конференции «Интеллектуальные информационные системы: Теория и практика». — 2024. — С. 13-15.


УДК 004.89

МОДЕЛИ НЕЙРОННЫХ СЕТЕЙ ДЛЯ ГЕНЕРАЦИИ СЕМАНТИЧЕСКИ СВЯЗНОГО ТЕКСТА

Домашева Марина Викторовна магистрант 3 года обучения

Курский государственный университет, Россия, г. Курск

E-mail: domasheva.mv@gmail.com

Халин Андрей Александрович канд. физ.-мат. наук, доцент кафедры программного обеспечения и администрирования информационных систем

Курский государственный университет, Россия, г. Курск

E-mail: halin_aa@kursksu.ru

В статье приводится обзор моделей нейронных сетей для генерации семантически связного текста. Рассмотрены алгоритмы: автоэнкодер, рекуррентная нейронная сеть (RNN), генеративно-состязательные сети (GAN).

Ключевые слова: генерация текста, машинное обучение, рекуррентная нейронная сеть

Введение

Машинная обработка естественного языка (natural language processing, NLP) эффективно использует языковые данные для решения повседневных задач. На данный момент одной из популярных задач является понимание текста. Данная задача включает в себя: классификацию, генерацию, перевод текста, ответы на вопросы, аннотирование изображений и другие задачи.

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

Автоэнкодер – это тип нейронной сети, который используется для компрессии и восстановления входных данных [1]. Он состоит из двух слоев: кодера и декодера. Кодер преобразует входные данные, например, сжимает текст в некоторый вектор (кодирование), а декодер восстанавливает исходный текст из вектора (декодирование). В процессе генерации текста на декодер подается некоторый случайный вектор для последующего восстановления текста.

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

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

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

Однако следует учитывать, что RNN может иметь трудности с обработкой очень длинных последовательностей из-за проблем с долгосрочной памятью. В таких случаях могут быть использованы более сложные архитектуры, такие как LSTM или GRU [2,3].

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

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

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

GRU (Gated Recurrent Unit) – это еще один тип рекуррентной нейронной сети, который является альтернативой LSTM. GRU также обладает способностью к долгосрочной памяти и может быть использован для обработки и генерации текстов, в которых присутствуют долгосрочные зависимости между элементами последовательности.

Архитектура GRU отличается от LSTM тем, что вместо использования трех разных вентилей (forget gate (вентиль забывания), input gate (вентиль входного состояния), output gate (вентиль выходного состояния)) GRU использует только два гейта: update gate и reset gate. В итоге GRU имеет меньше параметров, чем LSTM (в GRU нет output gate), что делает GRU более простой и компактной, чем LSTM.

Для генерации текста с помощью GRU, необходимо выполнить аналогичные шаги, как и в случае с LSTM: подготовка данных, обработка данных, обучение GRU, генерация текста.

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

Sequence to sequence (Seq2Seq) – это разновидность модели машинного обучения, которая принимает последовательные данные в качестве входных данных и также генерирует последовательные данные в качестве выходных данных. Концепция модели Seq2Seq была представлена в статье «Последовательное обучение с помощью нейронных сетей» от Google [4]. Архитектура, обсуждаемая в этой исследовательской статье, является фундаментальной основой для задач обработки естественного языка. В оригинальной статье слоями сети являлись RNN и LSTM [4], затем также было предложено использовать GRU слой [5]. Контекстом каждого входа является выход с предыдущего момента времени.

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

Для создания семантически связанных текстов также можно использовать генеративносостязательные нейронные сети (GAN). GAN состоит из двух компонентов: генератора и дискриминатора. Генератор создаёт образцы данных, а дискриминатор оценивает их реалистичность. Цель такой нейронной сети состоит в создании образцов, которые дискриминатор не сможет отличить от реальных. SeqGAN была предложена в 2016 году [6]. Её цель – генерация коротких семантически связных текстов. Данная нейронная сеть является модификацией генеративно-состязательной нейронной сети (GAN).

Основные изменения включают использование обучения с подкреплением и алгоритма Монте-Карло, использующегося для улучшения качества оценки сгенерированного текста. Отметим, что SeqGAN может использоваться без использования алгоритма Монте-Карло.

Подробнее можно прочитать в статье [6]. Процесс обучения SeqGAN состоит из трёх этапов:

  1. Контролируемое предварительное обучение генератора (maximum likelihood estimation, MLE).
  2. Предварительное обучение дискриминатора.
  3. Обучение с подкреплением с использованием генеративно-состязательной сети для динамической оценки качества текста.

Результаты, представленные в статье [7], показывают, что использование SeqGAN может улучшить качество генерации текста.

LeakGAN – это генеративно-состязательная сеть, которая была предложена в 2017 году [7]. Её цель – создание относительно длинных текстов с сохранением семантической связности (более 20 слов). LeakGAN использует идею утечки памяти из дискриминатора, что позволяет улучшить качество создаваемого текста. LeakGAN объединяет идеи SeqGAN и RankGAN, что делает её более эффективной для создания связанных и грамматически правильных предложений.

Результаты [7] показывают, что подходы SeqGAN, RankGAN и LeakGAN позволяют улучшить качество генерируемого текста после использования предварительного обучения генератора на основе MLE. Генеративносостязательная сеть RankGAN генерирует более качественный результат, чем SeqGAN, но уступает нейронной сети LeakGAN.

Также рассматривается возможность комбинирования различных подходов для достижения лучших результатов. Например, можно использовать Seq2Seq с GRU для создания коротких текстов, а затем использовать LeakGAN для создания длинных текстов. Выбор подхода зависит от конкретной задачи и требований к качеству текста.

Список используемой литературы

  1. Воронина В. В. Теория и практика машинного обучения: учебное пособие / В. В. Воронина, А. В. Михеев, Н. Г. Ярушкина, К. В. Святов. – Ульяновск: УлГТУ, 2017. – 290 с.
  2. Будыльский, Д. В. GRU и LSTM: современные рекуррентные нейронные сети / Д. В. Будыльский. – Молодой ученый. – 2015. – № 15 (95). – С. 51-54.
  3. Кривошеев Н. А., Иванова Ю. А., Спицын В. Г. Автоматическая генерация коротких текстов на основе применения нейронных сетей LSTM и SEQGAN // Вестник Томского Государственного Университета. 2021 № 57. С. 118–130.
  4. Ilya Sutskever, Oriol Vinyals, Quoc V. Le. Sequence to Sequence Learning with Neural Networks // NIPS'14: Proceedings of the 27th International Conference on Neural Information Processing Systems - Volume 2, December 2014 - P. 3104–3112.
  5. Junyoung Chung, Caglar Gulcehre, KyungHyun Cho, Yoshua Bengio. Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling // NIPS – 2014 – Paper Conference.
  6. Yu L., Zhang W., Wang J., Yu Y. SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient // AAAI'17: Proc. of the Thirty-First AAAI Conference on Artificial Intelligence. 2017. P. 2852–2858.
  7. Jiaxian Guo, Sidi Lu, Han Cai, Weinan Zhang, Yong Yu, Jun Wang. Long Text Generation via Adversarial Training with Leaked Information // AAAI'18: Proc. of the Thirty-Second AAAI Conference on Artificial Intelligence. 2018.