Введение 4
Глава 1 9
1.1. Искусственные нейронные сети: математическая модель
биологической сети для решения задач 9
1.2. Ранние модели искусственных нейронных сетей: перцептрон
Розенблатта 10
1.3. Процесс обучения искусственных нейронных сетей 11
1.3.1. Forward- и Backpropagation 11
1.3.2. Градиентный спуск 12
1.3.3. Оптимизация 14
1.3.4. Проблемы переобучения и недообучения 19
Выводы по главе 1 22
Глава 2 24
2.1. Искусственные нейронные сети в решении задач обработки
естественного языка 24
2.2. Текстовые данные и проблема обработки последовательностей
искусственными нейронными сетями 25
2.3. Рекуррентные нейронные сети как архитектура искусственных
нейронных сетей для работы с последовательностями 27
2.4. Модификации блоков рекуррентных нейронных сетей: LSTM и
GRU 33
2.5. Перевод последовательности в последовательность при помощи
архитектуры Seq2Seq 37
2.6. Техники и приёмы для улучшения Seq2Seq моделей 41
2.7. Добавление “вертикальной” глубины в рекуррентные нейронные
сети 48
2.8. Оценка качества работы рекуррентной нейронной сети,
генерирующей тексты 50
Выводы по главе 2 51
Глава 3 53
3.1. Практическое применение глубоких рекуррентных нейронных 53
сетей для генерации новостных заголовков
3.2. Данные: корпус и словари 54
3.3. Архитектура нейронной сети, подбор гиперпараметров 55
3.4. Результаты работы 61
Выводы по главе 3 65
Заключение 67
Список использованных источников и литературы 70
Приложение А 80
В данной работе решается задача автоматической генерации новостных заголовков на основе новостной статьи при помощи Seq2Seq модели (искусственной нейронной сети — ИНС).
Актуальность данной работы проистекает из информационной перегрузки вследствие информационного взрыва. Для успешной и эффективной работы с информацией человеку необходима помощь компьютера. Однако машина не может понимать текст, она понимает только нули и единицы. Научить её работать с текстом — как понимать, так и создавать — цель компьютерных лингвистов. Эта общая цель может быть решена последовательной разработкой всё более эффективных методов и разрешением частных задач, среди которых одной из самых актуальных является автоматическое понимание и генерация текстов, в том числе — автоматическая генерация заголовков и новостей. Разрешению первой из них посвящена данная работа.
Объектом является суммаризация и генерация текстов естественного языка.
Предметом — генерация текста глубокой рекуррентной нейронной сетью на основе автоматически выделенной языковой модели, обусловленной смысловым вектором другого текста.
Цель данной работы — создание базовой глубокой рекуррентной нейронной сети для генерации заголовков на русском языке из новостных статей.
В процессе достижения поставленной цели мы решали несколько задач:
1. Исследование возможных архитектур ИНС для достижения цели;
2. Анализ отличий русского языка от английского в контексте достижения цели;
3. Исследование и выбор возможных техник и приёмов для достижения цели;
4. Нахождение/создание корпуса для тренировки и проверки ИНС;
5. Создание «игрушечных» архитектур для настройки и проверки НС;
6. Подбор гиперпараметров ИНС;
7. Создание глубокой РНС, обучение и проверка.
Теоретической основой являются такие разделы компьютерной лингвистики и машинного обучения, как векторное представление слов (Миколов и др., “Distributed Representations of Words and Phrases and their Compositionality”), абстрактивная и экстрактивная суммаризация (Наллапати и др., “Abstractive Text Summarization using Sequence-to-sequence RNNs and Beyond”), статистический машинный перевод (Чо и др., “Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation”), нейронный машинный перевод (By и др., “Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation”), рекуррентные нейронные сети (Шерстинский, “Fundamentals of Recurrent Neural Network (RNN) and Long Short-Term Memory (LSTM) Network”), оптимизация рекуррентных нейронных сетей (Бенжио и др., “Advances in Optimizing Recurrent Networks”), рекуррентные блоки LSTM (Хохрайтер и Шмидхубер, “Long Short-Term Memory”), рекуррентные блоки GRU и архитектура Encoder-Decoder (Чо и др., “On the Properties of Neural Machine Translation: Encoder-Decoder Approaches”), генерация заголовков нейросетью (Гаврилов, “Self-Attentive Model for Headline Generation”), глубокие рекуррентные нейросети (Суцкевер и др., “Sequence to Sequence Learning with Neural Networks”).
Нейросеть написана на языке программирования Python 3.6 . Основной библиотекой стала Keras с Tensorflow на бэкэнде; также использовались библиотеки numpy, pandas, scikit-leam, seaborn и др. Нами была выбрана архитектура рекуррентной нейронной сети с LSTM-блоками. При анализе текстов использовались статистические методы, такие как частотный анализ, трансформация и построение описательных статистик при помощи библиотеки Scikit-Leam языка программирования Python.
В качестве материала использовался архив новостного ресурса Lenta.ru объёмом 739,346 текстов.
Новизна данной работы заключается в применении рекуррентных нейронных сетей для генерации заголовков к русскому языку, построении базового решения и в использовании глубоких архитектур рекуррентных нейронных сетей. Сложность любых языковых моделей возрастает с вариативностью языка, а русский язык намного более флективен, чем английский, на материале которого написано, пожалуй, подавляющее большинство работ. Кроме того, глубокая архитектура рекуррентных нейронных сетей применяется в литературе достаточно редко. В данной работе мы обращаем внимание на различные техники и приёмы, повышающие эффективность нейронных сетей, и предпринимаем попытку проанализировать, какие из них могут принести наибольшую пользу в контексте работы с русским языком.
Теоретическая значимость определяется тем, что полученные в работе данные позволяют проверить результативность использования разрабатываемых методов применительно к решению задач суммаризации и генерации текстов на русском языке, способствуя созданию базовой модели, подходящей для генерации новостных заголовков на русском языке.
Практическая значимость обуславливается тем, что в работе представлено применение рабочей модели рекуррентной нейронной сети для решения задачи автоматической генерации новостных заголовков из текста новости на русском языке, которая может служить основой для модификаций, повышающих её эффективность, базовым решением для сравнения новых моделей и может применяться для ряда смежных задач (например, для автоматического перевода, генерации лида и т.д.).
Структура работы обусловлена этими задачами и логикой исследования заявленной области. Исследование включает в себя введение, четыре главы и заключение.
Во введении ставится тема исследования, раскрывается научная ценность работы в контексте области, ставятся цели и задачи.
В первой главе рассматривается краткая история искусственных нейронных сетей, в частности одна из первых моделей — перцептрон Розенблатта. На его примере описываются общие алгоритмы их работы и обучения, а также различные методы оптимизации.
Во второй главе обсуждается текст как данные для ИНС и его специфика. В соответствии с этим фокус смещается на архитектуры, предназначенные для работы с подобного рода данными, в частности на рекуррентные НС и их более эффективные разновидности. Отдельное внимание уделяется модели Seq2Seq Encoder-Decoder, которая часто используется для понимания и генерации текстов машиной, и её улучшения.
В третьей главе описывается наша модель для генерации заголовков русскоязычных новостей. Представляются данные, используемые библиотеки и программные решения, а также результаты её работы.
В заключении подводятся краткие итоги нашего исследования, в частности о применимости некоторых из существующих подходов к суммаризации и генерации англоязычных текстов к русскому языку, анализируются возможные проблемы и пути решения, задаётся траектория для дальнейших исследований.
В приложении А приводятся примеры сгенерированных заголовков.
В данной работе мы предприняли попытку создания базового решения для автоматической генерации новостных заголовков по тексту новости при помощи глубокой рекуррентной нейронной сети. Мы достигли этой цели, но решение не идеальное даже для базовой модели, и требует дальнейшей работы. Впрочем, как proof-of-concept оно вполне работает.
В ходе достижения поставленной цели мы изучили подходящие нам архитектуры РНС, сформулировали на основе анализа отличия в подходах к английскому и русскому языку и соответствующие модификации сетей, рассмотрели различные приёмы и техники для улучшения модели, собрали данные для тренировки, обработали их, создали небольшие мини-модели для проверки работоспособности, подобрали гиперпараметры и обучили многоуровневую Seq2Seq Encoder-Decoder модель. По результатам нашей теоретической и практической работы мы можем сделать вывод, что выбранная нами архитектура подходит для решения задачи автоматической генерации новостных заголовков из текста новости на русском языке, однако требует некоторых изменений.
Как было сказано в выводах к третьей главе, в нашей базовой модели присутствуют локальные семантическая и грамматическая когезия (хотя не без проблем), но главный провал заключается в слабой способности к “пониманию” источника и обращению к его содержанию. Как можно решить эти проблемы?
Межтекстовая связь возможно легко решается введением механизма внимания, который позволяет точнее генерировать каждое слово, обращаясь непосредственно к словам источника. Может быть, нейросеть не смогла полностью научится кодировать смысл, и ей нужно больше времени; однако скорее всего у неё уже началось переобучение, поэтому просто увеличивать количество эпох не имеет смысла, необходимо либо расширить выборку (в больших данных это почти всегда плюс), либо увеличить сеть (например, добавить ещё слоёв), либо ввести дропаут, а лучше рекуррентный дропаут. Также проблема может заключаться в излишней генерализации, когда сеть не способна конкретизировать данные источника в силу ограниченности словаря, ведь для русского языка нужен действительно огромный словарь. Тут могут помощь механизм копирования, трюки для работы со словарём или Byte-Pair Encoding (или иной алгоритм векторизации слов, например, FastText, который также способен работать с подсловесными единицами).
Эти и другие методы могут улучшить работу сети, но они её очень сильно увеличат, что скажется на её потреблении памяти и требованиям к вычислительным ресурсам (включая время). Возможно, это повлечёт за собой иные компромиссы, как, например, использование предварительно обученных векторов слов (при наличии достаточно большого корпуса имеет смысл проводить собственное обучение).
Кроме того, можно попробовать совместить нейросеть и ручные правила для, например, выделения именованных сущностей. Часто такие комбинированные методы показывают себя лучше, чем по отдельности, хотя требуют дополнительных усилий, особенно в процессе написания правил.
Таким образом, перед нами есть огромное поле вариантов для дальнейшей работы. Нам представляется логичным обогатить данную базовую модель минимумом приёмов (внимание и лучевой поиск), а затем создавать новые, более мощные модели. Добавление новых рекуррентных блоков увеличивает время рассчёта одной эпохи, но даёт модели дополнительные мощности, фактически увеличивая максимальную эффективность, поэтому найти оптимальное количество блоков (максимизирующих соотношение время работы/качество) также представляется логичным продолжением данной работы.
Данное исследование выполнено в рамках проекта “World2News: создание веб-сервиса по автоматическому генерированию новостей” Лаборатории Когнитивных исследований языка ТГУ. Проект выполнен на средства Гранта ТГУ в рамках Программы государственной поддержки ведущих университетов Российской Федерации в целях повышения их конкурентоспособности среди ведущих мировых научно-образовательных центров.
Результаты исследования апробированы на конференциях:
1. VI (XX) Международная научно-практическая конференции молодых учёных «Актуальные проблемы лингвистики и литературоведения», 18-20 апреля 2019 г.;
2. 25-я Международная конференция по компьютерной лингвистике и интеллектуальным технологиям “Диалог-2019”.
Результаты исследования представлены в статьях:
1. Здоровец А.И. Генерация заголовков с помощью многоуровневой Seq2Seq модели / Актуальные проблемы лингвистики и литературоведения. Сборник материалов VI (XX) Международной конференции молодых ученых (18-20 апреля 2019 г.). Выпуск 20. Изд-во ТГУ, 2019. (статья принята к печати в 2019 году).
2. Shevchuk А.А., Zdorovets A.I. Text Summarization with Recurrent Neural Network for Headline Generation [Электронный ресурс] // Сборник материалов конференции “Диалог-2019” (28 мая - 02 мая 2019). Студенческая сессия. URL: http://www.dialog-21.ru/digest/2019/student/ (дата обращения 10.06.2019).
1. Goodfellow L, Bengio Y., Courville A. Deep learning. - MIT press,
2016.
2. Nielsen M. A. Neural networks and deep learning. - San Francisco, CA, USA: : Determination press, 2015. - T. 25.
3. Haykin S. S. et al. Neural networks and learning machines. - Upper Saddle River : Pearson education, 2009. - T. 3.
4. Kirk M. Thoughtful Machine Learning with Python: A Test-driven Approach. - " O'Reilly Media, Inc.", 2017.
5. Шолле Ф. Глубокое обучение на Python //СПб.: Питер. - 2018.
6. Khodak М. et al. A la carte embedding: Cheap but effective induction of semantic feature vectors //arXiv preprint arXiv: 1805.05388. - 2018.
7. Williams R. J., Zipser D. A learning algorithm for continually running fully recurrent neural networks //Neural computation. - 1989. - T. 1. -№. 2.-C. 270-280.
8. Khatri C., Singh G., Parikh N. Abstractive and Extractive Text Summarization using Document Context Vector and Recurrent Neural Networks //arXiv preprint arXiv: 1807.08000. - 2018.
9. Nallapati R. et al. Abstractive text summarization using sequence-to-sequence mns and beyond //arXiv preprint arXiv: 1602.06023.-2016.
10. Zeiler M. D. ADADELTA: an adaptive learning rate method HwiXiN preprint arXiv:1212.5701. - 2012.
11. Kingma D. P., Ba J. Adam: A method for stochastic optimization //arXiv preprint arXiv: 1412.6980. - 2014.
12. Duchi J., Hazan E., Singer Y. Adaptive subgradient methods for online learning and stochastic optimization //Journal of Machine Learning Research. -2011. -T. 12. -№. Jul. -C. 2121-2159.
13. Bengio Y., Boulanger-Lewandowski N., Pascanu R. Advances in optimizing recurrent networks //2013 IEEE International Conference on Acoustics, Speech and Signal Processing. - IEEE, 2013. - C. 8624-8628.
14. Jozefowicz R., Zaremba W., Sutskever I. An empirical exploration of recurrent network architectures //International Conference on Machine Learning. - 2015. - C. 2342-2350.
15. Ruder S. An overview of gradient descent optimization algorithms //arXiv preprint arXiv: 1609.04747. - 2016...84