Автоматическая генерация коротких текстов на основе применения нейронных сетей LSTM и SeqGAN | Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2021. № 57. DOI: 10.17223/19988605/57/13

Автоматическая генерация коротких текстов на основе применения нейронных сетей LSTM и SeqGAN

Проведено исследование качества генерации коротких текстов на основе применения нейронных сетей LSTM и SeqGAN на русском и английском языках. Для обучения нейронной сети используются следующие подходы: оценка максимального правдоподобия и состязательная сеть, генерирующая последовательность (Sequence Generative Adversarial Nets, SeqGAN). В данной работе реализация SeqGAN не включает алгоритм Монте-Карло. Предложен и реализован подход на основе возведения значений выходного вектора нейронной сети (вектора вероятностей) в степень, большую 1, данная операция позволяет увеличить качество генерируемого текста, но снижает его разнообразие. Обучение и тестирование проводятся на основе следующих выборок данных: сборника русских стихов с сайта Stihi.ru и подписей к изображениям на английском языке из выборки COCO Image Captions. Проведена оценка качества генерации текстов на основе метрики BLEU. Приведены примеры сгенерированных текстов. Проанализированы аналогичные решения.

Automatic generation of short texts based on the use of neural networks LSTM and SeqGAN.pdf Автоматическая генерация текста является сложной и широко исследуемой задачей, которая используется в таких областях, как машинный перевод текстов, создание субтитров, реферирование текстов, генерация подписей к изображениям. Одной из проблем генерации текстов с помощью LSTM является снижение качества генерируемого текста при увеличении длины последовательности. В данной работе были рассмотрены решения, позволяющие увеличить качество генерации коротких текстов: SeqGAN [1] и LeakGAN [2]. В статье [1] рассматривается модификация генеративно-состязательной нейронной сети для генерации текстов. Основными модификациями являются использование обучения с подкреплением и алгоритма Монте-Карло. В указанном подходе применяется обучение, состоящее из двух этапов: контролируемое обучение (Maximum Likelihood Estimation, MLE, рассматриваемое далее в данной статье), и состязательное обучение с подкреплением, использующее генеративно-состязательную нейронную сеть для динамической оценки качества текста. По результатам, представленным в [1], можно сделать вывод, что использование SeqGAN позволяет улучшить качество генерации текста. В работе [2] рассматривается генеративно-состязательная нейронная сеть LeakGAN, основанная на объединении генеративно-состязательных нейронных сетей SeqGAN [1] и RankGAN [3]. Рассматривается подход, основанный на утечке памяти из дискриминатора, который позволяет улучшить качество генерируемого текста. В [2] проведено сравнение таких подходов, как MLE, SeqGAN, RankGAN и предлагаемого LeakGAN. По представленным результатам можно сделать вывод, что подходы SeqGAN, RankGAN и LeakGAN позволяют улучшить качество генерируемого текста по сравнению с подходом на основе MLE. Генеративно-состязательная нейронная сеть RankGAN генерирует более качественный результат, чем SeqGAN, но уступает по качеству генерации нейронной сети LeakGAN по метрике BLEU. Целью данной работы является оценка качества автоматической генерации коротких текстов на основе сети с долгой краткосрочной памятью (Long Short-Term Memory, LSTM) [4, 5]. Для обучения нейронной сети LSTM используется контролируемое обучение на основе метода максимального правдоподобия (MLE) [6], применяется дальнейшее обучение LSTM в составе состязательной сети, 118 Автоматическая генерация коротких текстов на основе применения нейронных сетей генерирующей последовательность (Sequence Generative Adversarial Net, SeqGAN) [1]. Следует отметить, что в данной работе не используется метод Монте-Карло, предложенный в работе [1]. Применяется пакетное обучение с увеличенным пакетом данных. Предложен и реализован подход на основе возведения значений вектора вероятностей (выходного вектора нейронной сети) в степень, большую 1; данная операция позволяет увеличить качество генерируемого текста, но снижает его разнообразие. Длина генерируемых текстов составляет 10 и 20 слов. Для обучения и тестирования нейронных сетей используются следующие выборки данных: сборник русских стихов с сайта Stihi.ru [7] и подписи к изображениям на английском языке из выборки COCO Image Captions [8]. Максимальная длина текстов в выборке с сайта Stihi.ru составляет 10 слов, а в выборке на основе подписей из выборки COCO Image Captions - 20 слов. Применяется пословная генерация текста. Качество генерации текста оценивается с использованием метрики BLEU [9-11]. Проведены анализ и сравнение аналогичных решений [1-3]. Проанализированы работы [12-14]. Для проведения сравнения данные выборки COCO Image Captions взяты из аналога [2]. Данные размещены на сайте [15]. Таким образом, предварительная обработка выборки данных совпадает с реализованной в аналоге [2]. Было проведено обучение и тестирование подходов на основе MLE и SeqGAN. Сделан вывод, что обучение на основе нейронной сети SeqGAN, по сравнению с подходом на основе MLE, позволяет улучшить качество генерации текста по метрике BLEU. Тексты, сгенерированные на основе нейронной сети SeqGAN, сравнимы по качеству с примерами из обучающей выборки по метрике BLEU [9]. В рамках данной работы создана программная реализация исследуемых моделей на языке Python и проведены тестовые эксперименты. В реализации используется библиотека PyTorch. Программная реализация представлена на сайте [16] и основана на работе [17]. 1. Описание использовавшихся выборок данных В данной работе используются следующие выборки данных: сборник русских стихов с сайта Stihi.ru [7] и подписи к изображениям из выборки COCO Image Captions [8]. Выборка стихов на русском языке. Выборка, содержащая сборник русских стихов с сайта Stihi.ru [7], состоит из 2 414 243 строк, в среднем по 8-9 слов в строке. Максимальная длина примера в данной выборке составляет 10 слов. Была проведена предварительная обработка текстов, состоящая из следующих последовательных этапов: 1. Разбиение текста на примеры (предложения и строки). 2. Составление словаря наиболее часто встречающихся слов. 3. Удаление примеров, содержащих меньше 8 слов. 4. Удаление примеров, содержащих слова, не вошедшие в словарь. 5. Заполнение или сокращение примеров до длины текста, равной 10 словам. Для заполнения текста до заданной длины используется зарезервированное слово _AGG_ (от слова aggregate - англ. «заполнитель»). Для сокращения длины примера удаляется конец предложения. Из данной выборки удалены все знаки препинания. После предварительной обработки текста выборка содержит 78 661 предложение, средняя длина предложения - 8,2 слова. В результате предварительной обработки текста был сформирован словарь из 5 000 слов, включающий зарезервированные слова (удаленное слово _UNK_, слово-заполнитель _AGG_ и стартовое слово _START_). Набор данных был разделен на обучающую выборку (70 000 примеров) и тестовую выборку (5 000 примеров). Выборка подписей из выборки COCO Image Captions. Набор данных COCO Image Captions [8] содержит изображения и их описания на английском языке. Описания изображений используются для формирования текстовой выборки данных. Большинство предложений данного набора содержит около 10 слов. Максимальная длина примера в данной выборке составляет 20 слов. Выборка данных взята из источника [15], ее предварительная обработка соответствует представленной в статье [2]. 119 Н.А. Кривошеев, Ю.А. Иванова, В.Г. Спицын Набор данных [15] представлен следующими файлами: словарь (vocab_cotra.pkl), обучающая выборка (realtrain_cotra.txt), тестовая выборка (realtest_coco.txt). В наборе данных содержится 4 837 оригинальных слов. Обучающий набор данных содержит 80 000 примеров, тестовая выборка содержит 5 000 примеров. Авторы статьи [2] указывают, что из выборки удалены слова, упоминающиеся менее 10 раз, а также содержащие их предложения. 2. Топология нейронной сети LSTM В данной работе применяется рекуррентная нейронная сеть LSTM [4]. Используется пословное преобразование текста в вектор с помощью слоя Embedding [18, 19]. Применяется пословная генерация текста с генерацией одного слова на каждом итерационном шаге. Архитектура нейронной сети представлена на рис. 1. Нейронная сеть состоит из следующих слоев: Embedding, слой LSTM, полносвязный слой нейронов (Dense) и слой с функцией активации Log_Softmax. Элемент Хі является индексом слова в словаре на итерации і. Элемент У; является выходом нейронной сети на итерации і, после применения операций экспоненты и multinomial [20]. Yi _* > і Log_Softmax Д initial state Embedding > next state Рис. 1. Архитектура нейронной сети Fig. 1. Architecture of the neural network На каждом итерационном шаге генерации текста происходит инициализация слоя LSTM (initial state). После генерации слова новое состояние (next state) сохраняется и используется для инициализации слоя LSTM на следующем шаге. На первом шаге генерации текста состояние слоя LSTM инициализируется нулями. Полносвязный слой нейронов (с последующим слоем Log_Softmax) генерирует слово на основе информации из слоя LSTM. В данной работе длина вектора слова составляет 150 чисел. Слой LSTM содержит 150 нейронов. Количество нейронов в полносвязном слое равняется размеру словаря. 3. Описание контролируемого обучения MLE для нейронной сети LSTM и процесса генерации текста Процесс обучения нейронной сети на основе MLE [6] представлен на рис. 2. Обучение нейронной сети заключается в предсказании некоторой последовательности слов [Х]_, Х2, ..., Xt, ..., Хт] (output) 120 Автоматическая генерация коротких текстов на основе применения нейронных сетей на основе последовательности [Z0, Хъ ..., Xt-1, ..., ХТ-1\\ (input). В данной работе слово Х0 всегда задается зарезервированным словом _START_. На каждом временном шаге проводится инициализация слоя LSTM [4, 5], далее на нейронную сеть LSTM подается слово из входной последовательности (input). Генерируются слово и новое состояние. Состояние нейронной сети сохраняется и передается для инициализации слоя LSTM на следующем шаге. я люблю тебя земля output Рис. 2. Процесс обучения нейронной сети Fig. 2. Neural network learning process В процессе генерации текста на нейронную сеть подается некоторая частичная последовательность входных данных. Недостающая часть последовательности восполняется из вывода нейронной сети для генерации полной выходной последовательности (рис. 3). В данной работе на нейронную сеть подается слово ^о. Новое слово генерируется на основе выхода нейронной сети и операции multinomial [20], которая позволяет выбрать случайное слово на основе распределения вероятностей. Операция multinomial позволяет нейронной сети генерировать случайные тексты. я люблю тебя земля output final state _START_ я люблю моя Рис. 3. Процесс генерации текста Fig. 3. Text generation process Таким образом, часть сгенерированной последовательности [У0, Yt, ..., Yt, ..., YT-1] является частью входной последовательности [Z0, У0, Y1, ..., Yt, ..., YT-1]. Результатом работы нейронной сети является последовательность [У0, Уъ ..., Yt, ..., YT ]. При обучении генератора используется оптимизатор Adam [21]. 4. Результаты тестирования нейронной сети LSTM, обученной на основе MLE Для оценки качества генерации текстов в данной работе используется метрика BLEU, реализованная в библиотеке nltk. Перед оценкой проводится удаление слова-заполнителя _AGG_ из текста примера. Данная операция позволяет получить более качественную оценку, так как при оценке не будут учитываться совпадения слов-заполнителей. 121 Н.А. Кривошеев, Ю.А. Иванова, В.Г. Спицын При оценке по метрике BLEU используется сглаживание на уровне предложений. Нами применяется метод сглаживания smoothing 1, представленный в работе [11]. Данная модификация дает возможность получить более корректные оценки качества текста, но не позволяет сравнить полученные результаты с аналогичными работами, представленными в данной статье, в которых такая модификация не использовалась. Было проведено тестирование нейронной сети LSTM, обученной на основе MLE на выборках данных: стихи с сайта Stihi.ru [7] и подписи к изображениям из выборки COCO Image Captions [8]. Тестирование проводилось на тестовых выборках, описанных ранее. Для тестирования использовалось 500 сгенерированных примеров. Оценка качества проводилась на основе метрики BLEU. Результаты тестирования представлены в табл. 1: Таблица 1 Результаты тестирования LSTM, обученной на основе MLE Выборка BLEU-2 BLEU-3 BLEU-4 BLEU-5 Stihi.ru 0,71 0,375 0,187 0,116 COCO Image Captions 0,528 0,393 0,265 0,166 Для оценки качества генерации текста по метрике BLEU было проведено тестирование на основе реальных примеров, написанных людьми, с применением соответствующих обучающих выборок. Полученные результаты используются для последующего сравнения с результатами генерации. Результаты тестирования 500 случайных примеров из обучающих выборок (написанных людьми) на тестовых выборках представлены в табл. 2: Т аблица 2 Результаты тестирования реальных примеров Выборка BLEU-2 BLEU-3 BLEU-4 BLEU-5 Stihi.ru 0,738 0,425 0,224 0,136 COCO Image Captions 0,557 0,443 0,319 0,212 Примеры сгенерированных текстов на основе MLE и текстов из обучающей выборки представлены в табл. 3. Для каждого примера приведена оценка по метрике BLEU [9]. Таблица 3 Примеры текстов Выборка Тип примеров № Пример BLEU-2 BLEU-3 BLEU-4 BLEU-5 Stihi.ru Из выборки 1 чтоб не вспомнить что есть где то ты 0,943 0,693 0,556 0,437 2 от того что я с тобой в раю 1,0 0,956 0,707 0,334 3 пусть в душе моей с каждым днем все сильнее грусть 0,745 0,518 0,211 0,127 Сгенерированные на основе MLE 1 и тихо мы все вместе с тобой 0,775 0,669 0,599 0,533 2 и до сих пор в них всё и в ней 0,943 0,693 0,467 0,24 3 тех кто с такое предал что пишет куда пришла 0,632 0,368 0,163 0,104 COCO Image Captions Из выборки 1 Several motorcycles are lined up and parked on the side of the street 0,665 0,605 0,529 0,455 2 A person sitting in the middle of a pile of luggage 0,589 0,513 0,422 0,331 3 A man wearing a suit , dress shirt and neck tie 0,503 0,348 0,223 0,109 Сгенерированные на основе MLE 1 A dog laying on top of a desk in front of a TV 0,692 0,664 0,589 0,496 2 Two people holding remotes together in a living room 0,459 0,388 0,288 0,212 3 The two beds and a picture of a enjoying from the sky 0,523 0,357 0,228 0,111 Из табл 1, 2 можно увидеть, что качество примеров, сгенерированных нейронной сетью LSTM, обученной на основе подхода MLE, уступает примерам из обучающей выборки, написанным людьми, по метрике BLEU. 122 Автоматическая генерация коротких текстов на основе применения нейронных сетей 5. Описание архитектуры SeqGAN В данной работе обучение на основе SeqGAN [1] является продолжением обучения LSTM на основе MLE. SeqGAN используется для увеличения качества генерации текста. Нейронная сеть SeqGAN состоит из двух нейронных сетей: генератора и дискриминатора. Целью нейронной сети генератора является генерация текста. В данной работе в качестве нейронной сети генератора выступает предварительно обученная нейронная сеть LSTM, использовавшаяся для обучения с помощью MLE, описанная выше. Целью нейронной сети дискриминатора является классификация на два класса: реальных образцов текста и сгенерированных. В качестве нейронной сети дискриминатора могут использоваться многие нейронные сети с сигмоидальной функцией активации на выходном слое [22], например сверточная нейронная сеть, рекуррентная нейронная сеть или полносвязная нейронная сеть. В данной работе в качестве дискриминатора выступает двунаправленная традиционная LSTM [4]. Нейронная сеть дискриминатор состоит из слоя Embedding (длина вектора слова составляет 150 элементов), двух слоев двунаправленной традиционной LSTM (каждый слой состоит из 150 нейронов), скрытого полносвязного слоя (из 150 нейронов с функцией активации relu) и одного полносвязного выходного слоя (с одним нейроном и функцией активации sigmoid). Рис. 4. Топология дискриминатора SeqGAN Fig. 4. SeqGAN discriminator topology Топология нейронной сети дискриминатора из SeqGAN [1] представлена на рис. 4. Следует отметить, что обучение генератора и нейронной сети SeqGAN в целом отличается от алгоритма, использующегося в традиционной генеративно-состязательной нейронной сети (GAN) [23]. Алгоритм обучения SeqGAN будет описан ниже, информация о данном подходе содержится в статьях [1, 12]. 6. Обучение SeqGAN Процесс обучения нейронной сети SeqGAN [1] состоит из следующих этапов: 1. Предварительное обучение генератора на основе MLE. 2. Предварительное обучение дискриминатора. 123 Н.А. Кривошеев, Ю.А. Иванова, В.Г. Спицын 3. Повторение шагов в цикле: - обучение генератора на основе обучения с подкреплением (reinforcement learning, RL [24, 25]) в составе SeqGAN; - обучение дискриминатора. Первый этап полностью соответствует контролируемому обучению нейронной сети LSTM на основе MLE, которое было описано выше. На втором этапе необходимо составить выборку для обучения дискриминатора. Данная выборка состоит из реальных примеров и примеров, сгенерированных предварительно обученным генератором (в данной работе размер выборки для обучения дискриминатора составляет 10 000 примеров). На реальные примеры дискриминатор должен учиться выдавать 1, а на сгенерированные генератором 0. Далее происходит обучение дискриминатора. В процессе обучения дискриминатора каждые 10 000 итераций (1 эпоха) проводится обновление обучающей выборки. В результате обучения нейронная сеть должна научиться классифицировать реальные и сгенерированные примеры. От качества обучения дискриминатора зависит качество обучения генератора на третьем этапе (в оригинальной статье [1] авторы советуют проводить наиболее качественное обучение дискриминатора). Обучение нейронной сети дискриминатора проводилось в течение 300 эпох. В данной работе точность нейронной сети дискриминатора составляет 81% на выборке COCO Image Captions [8] и 76% на выборке стихов с сайта Stihi.ru [7]. При обучении дискриминатора используется оптимизатор Adagrad [21], который показал наибольшую стабильность и качество при обучении дискриминатора. На третьем этапе проводится заданное количество итераций: 25 эпох обучения генератора в составе нейронной сети SeqGAN. Каждая эпоха состоит из следующих шагов: 1. Одна итерация обучения генератора в составе SeqGAN. 2. Обучение дискриминатора в течение 5 эпох по 10 000 итераций на новой сгенерированной обучающей выборке из 10 000 примеров. Обучение генератора SeqGAN [1] существенно отличается от алгоритма обучения, использующегося в традиционной GAN. Перед вычислением ошибки проводится генерация текста на основе нейронной сети генератора, этап генерации текста представлен в виде псевдокода (рис. 5): # генерация текста СГЕНЕРИРОВАННЫЙ_ТЕКСТ = ИНИЦИАЛИЗАЦИЯ_МАССИВА

Ключевые слова

SeqGAN, генерация текста, состязательное обучение с подкреплением

Авторы

ФИООрганизацияДополнительноE-mail
Кривошеев Николай АнатольевичТомский политехнический университетаспирант отделения информационных технологийnikola0212@mail.ru
Иванова Юлия АлександровнаТомский политехнический университеткандидат технических наук, доцент отделения информационных технологийjbolotova@tpu.ru
Спицын Владимир ГригорьевичТомский политехнический университетпрофессор, доктор технических наук, профессор отделения информационных технологийspvg@tpu.ru
Всего: 3

Ссылки

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.
Guo J., Lu S., Cai H., Zhang W., Yu Y., Wang J. Long Text Generation via Adversarial Training with Leaked Information // The Thirty-Two AAAI Conference on Artificial Intelligence, 2018. V. 32, N. 1. P. 5141-5148.
Lin K., Li D., He X., Zhang Z., Sun M.-T. Adversarial Ranking for Language Generation // Advances in Neural Information Processing Systems. 2018. P. 3155-3165.
Hochreiter S., Schmidhuber J. Long short-term memory // Neural Computation. 1997. V. 9, is. 8. P. 1735-1780.
Знакомство с архитектурой LSTM-сетей. URL: http://datareview.info/article/znakomstvo-s-arhitekturoy-lstm-setey/ (accessed: 20.10.2020).
Cramer J.S. Econometric Applications of Maximum Likelihood Methods. Cambridge University Press, 1986. 206 p.
StihiData. URL: https://github.com/DenisVorotyntsev/StihiData/tree/194107ff98249fd11e8da5c3ee2d (accessed: 20.10.2020).
Chen X., Fang H., Lin T.-Y., Vedantam R., Gupta S., Dollar P., Zitnick, C.L. Microsoft COCO Captions: Data Collection and Evaluation Server. 2015. URL: https://arxiv.org/pdf/1504.00325.pdf (accessed: 20.10.2020).
Papineni K., Roukos S., Ward T., Zhu W.-J. BLEU: a Method for Automatic Evaluation of Machine Translation // Proc. of the 40th Annual Meeting of the Association for Computational Linguistics. 2002. P. 311-318.
Coughlin D. Correlating Automated and Human Assessments of Machine Translation Quality // Proc. of MT Summit IX. 2003. P. 63-70.
Chen B., Cherry C. A Systematic Comparison of Smoothing Techniques for Sentence-Level BLEU // Proc. of the Ninth Workshop on Statistical Machine Translation. 2014. P. 362-367.
Wu Y., Wang, J. Text Generation Service Model Based on Truth-Guided SeqGAN // IEEE Access. 2020. V. 8. P. 11880-11886.
Shi Z., Chen X., Qiu X., Huang X. Toward Diverse Text Generation with Inverse Reinforcement Learning. 2018. URL: https://arxiv.org/pdf/1804.11258.pdf (accessed: 20.10.2020).
Li J., Monroe W., Shi T., Jean S., Ritter A., Jurafsky D. Adversarial Learning for Neural Dialogue Generation // EMNLP. 2017. P. 2147-2159.
Выборка данных Image COCO. URL: https://github.com/CR-Gjx/LeakGAN/tree/master/Image%20COCO/save (accessed: 20.10.2020).
Программная реализация SeqGAN. URL: https://github.com/NikolayKrivosheev/Generation-of-short-texts-SeqGAN (accessed: 20.10.2020).
SeqGAN. URL: https://github.com/suragnair/seqGAN (accessed: 20.10.2020).
What the heck is Word Embedding. URL: https://towardsdatascience.com/what-the-heck-is-word-embedding-b30f67ffl1c81 (accessed: 20.10.2020).
Xu H. Text Classification with Topic-based Word Embedding and Convolutional Neural Networks // Proc. of the 7th ACM International Conference on Bioinformatics, Computational Biology, and Health Informatics. 2016. P. 88-97.
Torch.multinomial. URL: https://pytorch.org/docs/master/generated/torch.multinomial.html (accessed: 20.10.2020).
Ruder S. An overview of gradient descent optimization algorithms. 2017. URL: https://arxiv.org/pdf/1609.04747.pdf (accessed: 20.10.2020).
Николенко С., Кадурин А., Архангельская Е. Глубокое обучение Погружение в мир нейронных сетей. Спб. : Питер. 2018. 477 с.
Goodfellow I. Generative Adversarial Nets // Advances in Neural Information Processing Systems. 2014. V. 27. P. 2672-2680.
Sutton R.S. Policy Gradient Methods for Reinforcement Learning with Function Approximation // Advances in Neural Information Processing Systems. 1999. V. 12. P. 1057-1063.
Kulkarni T.D. Hierarchical Deep Reinforcement Learning: Integrating Temporal Abstraction and Intrinsic Motivation // Advances in Neural Information Processing Systems. V. 29. 2016. P. 3675-3683.
Metropolis N., Ulam S. The Monte Carlo Method // Journal of the American Statistical Association. 1949. V. 44, is. 247. P. 335-341.
 Автоматическая генерация коротких текстов на основе применения нейронных сетей LSTM и SeqGAN | Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2021. № 57. DOI: 10.17223/19988605/57/13

Автоматическая генерация коротких текстов на основе применения нейронных сетей LSTM и SeqGAN | Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2021. № 57. DOI: 10.17223/19988605/57/13