Побудова чатботу на основі нейронних мереж



Анотація. Здійснено аналіз та порівняння різних архітек-тур на базі нейронних мереж для реалізації чатботу. Було обрано найбільш вдалу архітектуру для втілення поставле-ної задачі.

Ключові слова: нейронні мережі, чатбот, memory networks, LSTM, наука про дані.

Боярин Олесь Володимирович

КПІ ім. Ігоря Сікорського

Київ, Україна

boiaryn.o@gmail.com

Дячук Іван Сергійович

КПІ ім. Ігоря Сікорського

Київ, Україна

diachukivan96@gmail.com

Дорогий Ярослав Юрійович

КПІ ім. Ігоря Сікорського

Київ, Україна

argusyk@gmail.com

Building a chtabot based on neural networks

Abstract. The analysis and comparison of different architectures based on neural networks for the implementation of the chatbot. The most successful architecture was chosen to fulfill the task.

Keywords: neural networks, chatbot, memory networks, LSTM, data science.

Boiaryn Oles Volodymyrovich

National Technical University of Ukraine "Igor Sikorsky Kyiv Polytechnic Institute"

Kyiv, Ukraine

boiaryn.o@gmail.com

Diachuk Ivan Serhiyovich

National Technical University of Ukraine "Igor Sikorsky Kyiv Polytechnic Institute"

Kyiv, Ukraine

diachukivan96@gmail.com

Dorogiy Yaroslaw Yuriyovich

National Technical University of Ukraine "Igor Sikorsky Kyiv Polytechnic Institute"

Kyiv, Ukraine

argusyk@gmail.com

ВСТУП

У зв’язку із ростом популярності додатків-месенджерів, набувають високої популярності так звані чатботи. Чат-бот являє собою програму, яка може спілкуватися з користувачем, імітуючи поведінку людини, для досягнення певної цілі, або ж розваги. Найпростішим варіантом побудови чатботу є його реалізація на основі певних правил (ключові слова, ключові фрази, регулярні вирази тощо). Проте, цей варіант є досить неефективним у зв’язку з тим, що спочатку потрібно побудувати ці правила, й час від часу змінювати їх власноруч, що значно ускладнює розробку та підтримку чат-боту. Застосування нейронних мереж для побудови чатбо-тів відкидає вище описані недоліки, а також робить їх більш витонченими, та придатними для широкого кола завдань. Якість побудованого чатботу на основі нейронних мереж залежить від трьох параметрів: об’єму та якості даних для навчання і, відповідно, якості побудованої архітектури.

ОГЛЯД ІСНУЮЧИХ РІШЕНЬ

Архітектура на базі TF-IDF: на основі алгоритму TF-IDF обираються найбільш вживані слова у корпусі, а також найбільш рідкі слова у корпусі. На основі зібраних слів будуються вектора, після чого рахується косинусна відстань від питання до відповіді, після чого обирається відповідь найбільш ближча до питання [6]. Архітектура на базі LSTM: в основі цієї архітектури лежить рекурентна нейронна мережа з вузлами, які базуються на архітектурі довгої короткочасної пам’яті (LSTM). Дані архітектури були використані для побудови чат-боту на корпусі Ubuntu [7], який містить діалоги зібрані з форуму Ubuntu. Набір даних складається з 1 мільйона пар питання-відповідь, для навчання було обрано 0,5 мільйонів пар та 0,5 мільйонів пар для тестування. Позитивні відповіді є справжніми відповідями від людей, а негативні – обрані випадковим чином. Для оцінювання якості вище описаних архітектур було обрано 2% розмов з корпусу для створення тестового набору. Поставлене завдання – вибір найкращої відповіді. Системі надається n відповідей, і її завданням є ранжування цих відповідей. Для більш точної оцінки чатботу, робота системи вважається коректною якщо правильна відповідь лежить у межах k-перших кандидатів (у табл. 1 це зображено як n R@k).

Таблиця 1 Порівняння існуючих архітектур

Отже, роблячи висновки на основі наведених даних у табл. 1 – можна сказати, що архітектури на базі нейронних мереж дають набагато кращі результати, ніж архітектури на основі правил.

HYBRID CODE NETWORKS

В основі реалізації даної архітектури лежить рекурентна нейронна мережа з вузлами, які базуються на архітектурі довгої короткочасної пам’яті (LSTM) [1]. Дана архітектура вимагає набору заздалегідь визначених шаблонів дій [2].

Рис. 1. – Архітектура Hybrid code networks

Для навчання мережі використовуються такі параметри:

$-$ Питання користувача у текстовому вигляді

$-$ Представлення питання у вигляді вектору мішку слів (Bag of Words)

$-$ Представлення слів у вигляді векторів word2vec

$-$ Визначення сутностей у вираженні, як ім'я, місце, час тощо

$-$ Вилучення та відслідковування сутностей під час діалогу, та представлення у вигляді бітової маски

$-$ Маска дій - бітне векторне уявлення про те, які дії дозволяються в даному контексті

Процес навчання мережі виглядає наступним чином: на вхід до мережі подаються наступні параметри: питання користувача у вигляді вектору мішку слів, слова вилучені з питання у вигляді векторів word2vec, вилучені сутності. Всі ці параметри об’єднуються та подаються на вхід. На виході з мережі ми отримуємо вірогідність появи кожного шаблону дій, помноживши на бітову маску дій - обираємо результат з найбільшою вірогідністю – це й буде відповідь, яку поверне бот на поставлене питання.

Переваги:

$-$ Швидкість навчання

$-$ Висока точність

Недоліки:

$-$ Потрібен додатковий аналіз для визначення шаблонів дій

$-$ Вузькоспеціалізована архітектура

MEMORY NETWORKS

Представлення вхідної пам’яті: припустимо ми маємо вхідний набір ${{x}_{1}},...,{{x}_{i}}$ для збереження в пам’яті. Вхідний набір $\{{{x}_{i}}\}$ конвертується в вектори пам’яті $\{{{m}_{i}}\}$ розміру d, який розраховується шляхом вкладення кожного x_i в безперервний простір, у найпростішому випадку з використовуванням матриці вкладення A розміру dxV. Запит q також вкладений в безперервний простір для отримання внутрішнього стану u. Співвідношення між внутрішнім станом u та кожною пам’яттю m_i розраховується за наступною формулою: \[{{p}_{i}}=Softmax({{u}^{T}}{{m}_{i}})\], де \[Softmax({{z}_{i}})={{e}^{({{z}_{i}})}}/\sum\limits_{j}^{{}}{{{e}^{({{z}_{i}})}}}\] Визначений таким чином вектор p – вектор імовірності входів. Представлення вихідної пам’яті: кожен x_i має відповідний вихідний вектор c_i. Вектор відповіді з пам’яті о являє собою суму всіх трансформованих входів c_i, кожен з яких має вагу, отриману з вектору імовірності входу. \[o=\sum\limits_{j}^{{}}{{{p}_{i}}{{c}_{i}}}\]

Оскільки функція від вводу до виводу є гладкою, ми можемо легко обчислити градієнти під час навчання мережі, що значно спрощує цей процес. Генерація остаточного прогнозу: у випадку одного шару, сума вихідного вектору o і вхідного вкладення u потім пропускається через остаточну матрицю ваги W (розміру V × d) і softmax для отримання прогнозованої мітки: \[\hat{a}=Softmax(W({{o}^{{}}}+{{u}^{{}}}))\] Загальна модель показана на рис.1 (а). Під час тренування всі три матриці вкладення A, B і C, а також W спільно навчаються шляхом мінімізації стандартної втрати крос-ентропії між a ̂ і істинною міткою a [3]. Навчання проводиться з використанням стохастичного градієнтного спуску.

Рис. 2. – (а) Одношарова архітектура. (б) Багатошарова архітектура

У випадку з багатошаровою архітектурою шари пам’яті пов’язані таким чином: $-$ Вхід до шарів над першим є сумою виходу o^k і входу u^k із шару k: \[{{u}^{(k+1)}}={{o}^{k}}+{{u}^{k}}\]

$-$ Кожен шар має власні матриці вкладень A^k,C^k для вкладення {x_i } у безперервний простір.

$-$ У верхній частині мережі вхід до W також поєднує вхід і вихід верхнього рівня пам'яті:

\[\hat{a}=Softmax(W({{o}^{k}}+{{u}^{k}}))\] Переваги:

$-$ Відноситься до типу end-to-end систем, тобто не потребує додаткового аналізу над вхідними даними

Недоліки:

$-$ Швидкість навчання

$-$ Програє у точності у порівнянні з вузькоспеціалізованою архітектурою

GATED MEMORY NETWORKS

В основі реалізації даної моделі лежить архітектура Memory Network [4], яка була розглянута вище. Вона від-різняється від базової архітектури тим, що в даній моделі внутрішній стан u визначається наступним чином: \[{{u}^{(k+1)}}={{o}^{k}}*{{T}^{k}}({{u}^{k}})+{{u}^{k}}*(1-{{T}^{k}}({{u}^{k}}))\], де \[{{T}^{k}}({{u}^{k}})=\sigma (W_{T}^{k}{{u}^{k}}+b_{T}^{k})\]

Рис. 3. – Архітектура Gated Memory Networks

Переваги:

$-$ Також є реалізацією end-to-end системи

$-$ Дає більшу точність у порівнянні з базовою реалізацією

Недоліки:

$-$ Швидкість навчання

$-$ Програє у точності у порівнянні з вузькоспеціалізованою архітектурою

ДАНІ ДЛЯ НАВЧАННЯ

Для навчання та порівняння роботи моделей був обраний dialogue bAbI tasks. Який вміщує в собі 5 різних завдань для тестування кінцевих систем діалогу в домені ресторану. Задачі 1 і 2 – управляють тестовим діалогом, щоб дізнатися, чи можуть кінцеві системи вивчати можливість неявного відстеження стану діалогу, тоді як завдання 3 та 4 перевіряють, чи можуть вони навчитися використовувати факти бази знань у діалоговому вікні [5]. Завдання 3 також перевіряє вміння сортування. Завдання 5 об'єднує всі завдання. Саме 5 завдання було обрано для порівняльної характеристики моделей.

Рис. 4. – Приклад діалогу

Загалом було обрано 1000 діалогів для навчання моде-лей, а також 1000 діалогів для тестування.

РЕЗУЛЬТАТИ РОБОТИ АРХІТЕКТУР

Таблиця 2 Порівняльна характеристика моделей

*OOV (Out of vocabulary) – тестування моделей у випадку, коли трапляються слова, які були відсутні під час навчання

ВИСНОВКИ

Були розглянуті різні архітектури на основі нейронних мереж для побудови чатботу. За результатами дослідження поданими у табл. 2 видно, що найбільш вдалою реалізацією є архітектура Hybrid Code Networks, проте для реалізації даної моделі потрібен додатковий аналіз набору вхідних даних для створення визначених шаблонів дій.

ЛІТЕРАТУРА

$1.$ Long short-term memory [Електронний ресурс] – Режим доступу до ресурсу: https://en.wikipedia.org/wiki/Long\_short\-term\_memory.

$2.$ Jason W. Hybrid Code Networks [Електронний ресурс] / W. Jason, A. Kavosh, Z. Geoffrey – Режим доступу до ресурсу: https://arxiv.org/pdf/1702.03274.pdf.

$3.$ End-To-End Memory Networks [Електронний ресурс] / S.Sainbayar, S. Arthur, W. Jason, F. Rob – Режим доступу до ресурсу: https://arxiv.org/pdf/1503.08895.pdf.

$4.$ Fei L. Gated End-to-End Memory Networks [Електронний ресурс] / L. Fei, P. Julien – Режим доступу до ресурсу: https://arxiv.org/pdf/1610.04211.pdf.

$5.$ Antoine B. Learning End-to-End Goal-Oriented Dialog [Електронний ресурс] / B. Antoine, B. Y-Lan, W. Jason – Режим доступу доресурсу: https://arxiv.org/pdf/1605.07683.pdf.

$6.$ Rudolf K. Improved Deep Learning Baselines for Ubuntu Corpus Dialogs [Електронний ресурс] / K. Rudolf, S. Martin, K. Jan –Режим доступу до ресурсу: https://arxiv.org/pdf/1506.08909.pdf.

$7.$ The Ubuntu Dialogue Corpus: A Large Dataset for Research in Unstructured Multi-Turn Dialogue Systems [Електронний ресурс] / L.Ryan, P. Nissan, S. Iulian, P. Joelle– Режим доступу до ресурсу: https://arxiv.org/pdf/1506.08909.pdf

May 17, 2018