Научная статья на тему 'ДИАЛОГОВАЯ СИСТЕМА СЛУЖБЫ ПОДДЕРЖКИ НА ОСНОВЕ ГЛУБОКОГО ОБУЧЕНИЯ'

ДИАЛОГОВАЯ СИСТЕМА СЛУЖБЫ ПОДДЕРЖКИ НА ОСНОВЕ ГЛУБОКОГО ОБУЧЕНИЯ Текст научной статьи по специальности «Компьютерные и информационные науки»

108
27
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
глубокое обучение / рекуррентная нейронная сеть / управляемый рекуррентный блок / диалоговая система / механизм внимания.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — С.А. Королев, А.А. Полупанов

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ДИАЛОГОВАЯ СИСТЕМА СЛУЖБЫ ПОДДЕРЖКИ НА ОСНОВЕ ГЛУБОКОГО ОБУЧЕНИЯ»

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

Для выполнения любых действий с задачами необходимо обратиться к вкладке «Задачи». При закрытии задачи запускаются алгоритмы подсчёта правильных ответов пользователей, то есть за каждый истинный ответ пользователь получает дополнительно 10 баллов. Правильным ответом считается тот одинаковый вариант значения, который привели минимум 10 пользователей.

Область ИИ затрагивает абсолютно каждую сферу нашей жизни, поэтому разработка систем искусственного интеллекта всегда будет актуальна.

Библиографический список

1. Осипов Г.С. Лекции по искусственному интеллекту. - М.: КРАСАНД, 2009. - 272 с. (дата обращения 30.03.2020).

2. Рыбина Г.В. Теория и технология построения интегрированных экспертных систем. - М: «Научтехлит-издат», 2008. - 482 с. (дата обращения 31.03.2020).

3. Станкевич Л.А., Интеллектуальные системы и технологии. 2018 (дата обращения 01.04.2020).

ДИАЛОГОВАЯ СИСТЕМА СЛУЖБЫ ПОДДЕРЖКИ НА ОСНОВЕ ГЛУБОКОГО ОБУЧЕНИЯ

С.А. Королев, А.А. Полупанов

Кубанский государственный университет ул. Ставропольская 149, 350040, г. Краснодар, Россия

Ключевые слова: глубокое обучение, рекуррентная нейронная сеть, управляемый рекуррентный блок, диалоговая система, механизм внимания.

Аннотация

В статье рассматривается одна из основных задач обработки

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

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

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

1) закодировать входную последовательность хъ...,хп;

2) задать вероятностную модель P(ylf —,ут>xlt...,xn; 0);

3) нахождение параметров модели через максимизацию правдоподобия происходит по формуле (1):

0 = argmaxQ U^P(ylf ...,утхv ...,хп; 0) (1)

4) генерировать выходную последовательность слово за словом по формуле (2):

P(yi\x1,...,xn>y1,...,yi_1) (2)

Решение задачи генерации текста методом глубокого обучения. Для решения задачи был выбран набор данных CoNoLa, полученный с сайта stackoverflow.com, содержащий вопрос на естественном языке и фрагмент кода на языке Python в качестве ответа [1]. Для обучения использовалось 2000 объектов, для валидации и теста - 500 объектов. Модель, обученная на этих данных, выполняет роль службы поддержки по изучению языка программирования Python.

Алгоритм реализованной sequence-to-sequence модели:

1) входная последовательность вопроса полностью кодируется по формуле (3) с помощью рекуррентной нейронной сети с управляемым рекуррентным блоком, называемым encoder:

xlt ...,хп —» rlt ...,тп G M.D (3)

2) декодирование происходит по одному токену за шаг с помощью рекуррентной нейронной сети с управляемым рекуррентным блоком, называемым decoder;

3) на каждом шаге строится новое представление с помощью механизма внимания по формуле (4):

с I = Attensionfa,..., rn; hi) (4)

4) выходом с каждого шага является распределение вероятностей токенов, представленных формулой (5):

P(ji\xlf ...,*„,yi, ...,yi-i) = fdhyt-^Ci) (5)

Архитектура компонента encoder модели sequence-to-sequence:

1) Embedding - векторное представление символов;

2) GRU - двунаправленный слой управляемого рекуррентного блока, ячейки которого содержат update gate и reset gate для изменения рекуррентных векторов [2];

\ / 1 K-t K-t K-t

3) FC - полносвязный линейный слой прямого распространения;

4) Dropout - слой регуляризации, реализующий метод исключения;

Архитектура компонента decoder модели sequence-to-sequence повторяет encoder, но GRU слой является однонаправленным и добавляется механизм внимания Attention, с помощью которого decoder получает информацию о промежуточных значениях рекуррентного вектора, позволяя дать больший вес наиболее значимым частям исходной последовательности [3]. Реализованная модель содержит 546651 обучаемый параметр. Функция потерь данной модели является перекрестной энтропией.

На рисунке 1 представлено изменение функции потерь в процессе обучения модели на выборках, которые использовались для обучения и для валидации.

Постепенно функция потерь на валидационном множестве

убывает медленнее, чем на обучающем множестве. После убывание замедляется и начинается рост функции, но на обучающем множестве продолжает убывание, что указывает на процесс переобучения.

Рисунок 1. Функция потерь

Пример генерации ответов с результатом работы механизма внимания представлен на рисунке 2 и на рисунке 3. Чем ярче цвет на пересечении токенов, тем важнее токен из ответа для данного токена генерации.

Таким образом, из результата видно, что реализованной модели удаётся предсказать наиболее значимые токены для ответа по генерации текста, состоящего из фрагментов кода на языке Python.

Рисунок 2. Первый пример предсказания модели

source test question = object datetime to back string datetime a convert to how

target = datetime . strptime ( '2019 - 11 - 13 1G : 33 : 54 . 227806' , ,y-m-dh:m:s.f' ) predicted target = datetime . datetime . strptime ( <unk> ) strftime ( ) )

■ I

Рисунок 3. Второй пример предсказания модели

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

Библиографический список

1. CoNaLa: The Code/Natural Language Challenge [Электронный ресурс] - Режим доступа: https://conala-corpus.github.io/ (дата обращения: 12.04.2020)

2. J. Chung, Neural Machine Translation by Jointly Learning to Align and Translate / C. Gulcehre, K. Cho, Y. Bengio [Электронный ресурс] // Arxiv: archive scholarly articles. 2014. - Режим доступа: https://arxiv.org/abs/1412.3555 (дата обращения: 12.04.2020)

3. D. Bahdanau, Neural Machine Translation by Jointly Learning to Align and Translate / K. Cho, Y. Bengio [Электронный ресурс] //

Arxiv: archive scholarly articles. 2016. - Режим доступа: https://arxiv.org/abs/1409.0473 (дата обращения: 12.04.2020)

ИСПОЛЬЗОВАНИЕ МЕТОДОВ МАШИННОГО ОБУЧЕНИЯ И НЕЙРОННЫХ СЕТЕЙ ДЛЯ ПРОГНОЗИРОВАНИЯ И АНАЛИЗА СОЦИАЛЬНО -ЭКОНОМИЧЕСКОГО РАЗВИТИЯ ГОРОДСКИХ ОКРУГОВ, РАЙОНОВ И ПОСЕЛЕНИЙ КРАСНОДАРСКОГО КРАЯ

Д.А. Сюсюра, А.В. Коваленко

Кубанский государственный университет ул. Ставропольская 149, 350040, г. Краснодар, Россия

Ключевые слова: нейронные сети, классификационное прогнозирование, анализ, зависимость коэффициентов, Краснодарский край, качественные и количественные показатели.

Аннотация

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

Для обучения нейронной сети будем использовать данные по Краснодарскому краю, взятые с официального сайта Краснодарстат. В качестве параметров, по которым будет проводиться исследование были выбраны 22 показателя. Их перечень представлен на рисунке 1.

Данные были собраны в файлы Excel и отсортированы, так чтобы их можно было использовать в качестве dataset для нейронной сети. В качестве входных данных использовались эти 22 показателя, а в качестве выходной переменной «y» - значения: очень низкий, низкий, средний, высокий и очень высокий. Эти значения распределялись с помощью предварительной оценки, которая опирается на верхние и нижние границы диапазона значений и затем выводится средние интервалы для каждого

i Надоели баннеры? Вы всегда можете отключить рекламу.