ИНТЕЛЛЕКТУАЛЬНЫЙ АНАЛИЗ ОТЗЫВОВ КЛИЕНТОВ С ПРИМЕНЕНИЕМ МОДЕЛИ SEQ2SEQ
![](https://www.internauka.org/media/cache/resize_crop/rc/QzLrzQO1/edition/cover/journal/journal-22%28245%29.png)
ИНТЕЛЛЕКТУАЛЬНЫЙ АНАЛИЗ ОТЗЫВОВ КЛИЕНТОВ С ПРИМЕНЕНИЕМ МОДЕЛИ SEQ2SEQ
Макарова Екатерина Сергеевна
студент, Восточно-Сибирский государственный университет технологий и управления,
РФ, г. Улан-Удэ
Будаев Евгений Сергеевич
канд. техн. наук, доц., Восточно-Сибирский государственный университет технологий и управления,
РФ, г. Улан-Удэ
INTELLIGENT ANALYSIS OF CUSTOMER FEEDBACK USING THE SEQ2SEQ MODEL
Ekaterina Makarova
Student, East Siberian State University of Technology and Management, Russia, Ulan-Ude
Evgeny Budaev
Candidate of technical sciences, associate Professor, East Siberian State University of technology and management,
Russia, Ulan-Ude
АННОТАЦИЯ
В статье рассмотрен актуальный вопрос применения модели seq2seq для интеллектуального анализа отзывов клиентов, раскрыта актуальность темы исследования, описаны этапы проектирования, реализации и тестирования серверной части веб-приложения, реализующего интеллектуальный анализ отзывов клиентов с применением модели seq2seq.
ABSTRACT
The article discusses the topical issue of using the seq2seq model for mining customer reviews, reveals the relevance of the research topic, describes the stages of designing, implementing and testing the server part of a web application that implements mining customer reviews using the seq2seq model.
Ключевые слова: интеллектуальный анализ, маркетплейс «Wildberries», модель seq2seq с механизмом внимания, RNN, GRU.
Keywords: data mining, Wildberries marketplace, seq2seq model with attention mechanism, RNN, GRU.
Машинное обучение и, в частности, нейронные сети оказывают огромное влияние на бизнес и маркетинг посредством предоставления удобных средств для аналитики и обратной связи с клиентами. Чат-боты, голосовые помощники и различные приложения, использующие в своей основе нейронные сети, ежедневного упрощают работу менеджеров, управленцев и владельцев бизнеса, позволяя экономить основные ресурсы – время и деньги.
Актуальность данной темы заключается в том, что современное развитие бизнеса может быть затруднено без применения методов интеллектуального анализа данных и машинного обучения, а применение инструментов веб-разработки делает разрабатываемые приложения с применением методов искусственного интеллекта удобным для использования каждым пользователем. В данной статье рассмотрен принцип работы серверной части веб-приложения, реализующего интеллектуальный анализ отзывов клиентов с применением модели seq2seq.
Работа серверной части веб-приложения начинается с загрузки excel-файла с выборкой на сервер. Данная выборка скачивается из личного кабинета поставщика «Wildberries» и содержит в себе основную информацию о товарных позициях: бренд, предмет, артикул, розничную цену и скидки, которые предлагаются покупателям. Пример файла с выборкой представлен на рисунке 1.
Рисунок 1. Пример файла, загружаемого на сервер
Далее из столбца E загруженного файла необходимо выделить список артикулов, из которых при помощи парсинга формируется список отзывов.
Сформированный список отзывов проходит предварительную обработку: из текста удаляются эмодзи, все знаки препинания, множественные пробелы, все слова переводятся в нижний регистр; затем полученный список подается на вход искусственной нейронной сети, результатом работы которой является новый список, содержащий ответы на отзывы.
Входными данными для нейронной сети являются отзывы клиентов, а выходными – сгенерированные ответы на отзывы. Отзывы и ответы на отзывы – последовательности слов разной длины на русском языке. Наилучшей архитектурой искусственной нейронной сети для поставленной задачи является модель Sequence-to-Sequence (seq2seq).
Базовая seq2seq модель состоит из двух последовательных рекуррентных нейронных сетей: энкодера, который обрабатывает каждое слово входного предложения, переводя полученную информацию в вектор, называемый контекстом, и декодера, который производит генерацию ответа на отзыв [1][2]. Перед передачей отзыва на вход НС предложение переводится в вектор при помощи embedding-слоя.
Для решения задачи генерации отзывов используется усложненная модель seq2seq с механизмом внимания, позволяющая сфокусироваться на релевантных для текущего временного отрезка частях входной последовательности. Основным отличием данной модели от базовой является то, что энкодер передает декодеру все свои скрытые состояния, получаемые на этапе кодирования, а не только последнее. Декодер, в свою очередь, проходит дополнительный этап перед генерацией ответа [3].
В качестве рекуррентных нейронных сетей (RNN), используемых в энкодере и декодере, используются управляемые рекуррентные блоки (GRU), основными преимуществами которых являются «удержание в памяти» длинных последовательностей без расхождения градиентов в процессе обучения и достаточно малое количество настраиваемых параметров, что позволяет GRU обучаться намного быстрее. Архитектура блока GRU представлена на рисунке 2.
Рисунок 2. Архитектура блока GRU
В общем виде алгоритм работы нейронной сети включает себя следующие этапы:
1) векторизация отзыва, если содержится менее 256 слов, то вектор дополняется нулями;
2) векторы поступают на вход 256 блоков GRU, каждое выходное скрытое состояние запоминается;
3) из набора всех выходных скрытых состояний формируется единый контекст, который передается в декодер;
4) каждому скрытому состоянию назначается оценка;
5) оценки и скрытые векторы поступают на вход 256 блоков GRU, при этом каждое скрытое состояние умножается на преобразованную softmax функцией оценку, выделяя скрытые состояния с большей оценкой;
6) полученные векторы преобразуются в слова;
7) выходом нейронной сети является сгенерированный ответ на отзыв.
Вышеописанный алгоритм представлен на рисунке 3.
Рисунок 3. Архитектура модели seq2seq с механизмом внимания
Векторизация входящих отзывов производится при помощи слоя Embedding, также для выделения максимально релевантных векторов между embedding и gru слоями были добавлены полносвязные слои с функциями активации ReLu. Начальное значение количества эпох – 75000, критерий качества обучения нейронной сети – категориальная кросс-энтропия, значения которой необходимо выводить на экран каждые 500 эпох для оценки качества обучения.
В качестве обучающей выборки были выбраны отзывы и уже сформулированные менеджерами компании «МегаПрофСтиль» ответы. На маркетплейсе «Wildberries» отзывы и ответы располагаются в специальном блоке карточки товара. Внешний вид данного блока представлен на рисунке 4.
Рисунок 4. Блок с отзывами маркетплейса «Wildberries»
При помощи парсинга, написанного при помощи библиотеки Selenium [4], были получены все отзывы и имеющиеся ответы на них. Затем вручную был произведен отбор отзывов, содержащих ответы, и их запись в файл с расширением txt. Также была выполнена дополнительная подготовка выборки: отзывы прошли предварительную обработку (были удалены эмодзи, знаки препинания, повторяющиеся пробелы, слова переведены в нижний регистр), ответы остались без изменений, поскольку выходная последовательность искусственной нейронной сети должна содержать знаки препинания и слова в верхнем регистре. Эмодзи и многократные пробелы в ответах обнаружены не были.
После всех этапов обработки обучающая выборка имеет вид «отзыв (входная последовательность ИНС) – горизонтальная табуляция – ответ на отзыв (выходная последовательность ИНС». Часть полученной обучающей выборки представлена на рисунке 5.
Рисунок 5. Часть обучающей выборки
Полученный объем обучающей выборки составляет 9433 строк, что является достаточным количеством для качественного обучения нейронной сети.
Работа серверной части программы основана на нейронной сети, поэтому первым этапом является создание, обучение и сохранение обученной сети. Для этого необходимо произвести чтение файла с обучающей выборкой, разделить файл на строки, строки на пары «вход-выход» (максимальное количество слов. в последовательности – 100), создать входные и выходные словари из соответствующих последовательностей, из которых необходимо создать тензоры, добавить модели энкодера и декодера, сформировать общую модель нейронной сети, произвести обучение полученной модели (количество эпох – 75000), выполнить проверку обученной модели на тестовой выборке, сохранить модели энкодера и декодера.
Данный этап был выполнен при помощи Google[1] Colaboratory. После сохранения модели были скачаны и добавлены в проект, содержащий полное веб-приложение. Результат обучения (значения функций потерь для каждой эпохи) представлен на рисунке 6.
Рисунок 6. Результат обучения нейронной сети
На последнем этапе обучения (75000 эпох) функция потерь достигла результата равного 0,2879. Данный показатель говорит о том, что сеть обучена достаточно хорошо. Повторное обучение не производилось.
Также компанией «МегаПрофСтиль» была предоставлена полная выгрузка товаров, полученная при помощи личного кабинета «Wildberries». Выгрузка содержит 9863 товарные позиции, поэтому в целях экономии времени полная выгрузка была обрезана до 100 строк, товары выбирались в случайном порядке. Первые 20 строк отредактированной выгрузки представлены на рисунке 7.
Рисунок 7. Часть выгрузки для тестирования работоспособности серверной части приложения
В результате работы серверной части приложения был получен 31 отзыв и сгенерирован 31 ответ на них. Исходя из анализа полученных результатов, можно сделать вывод о том, что нейронная сеть работает корректно. Результаты работы считаются отличными, поскольку из 31 ответа 21 сгенерирован правильно, 5 неверно, 5 требуют доработки пользователем, то есть 68% верно сгенерированных и по 16% сгенерированных неверно или требуют доработки пользователем.
Часть верно сгенерированных ответов на отзывы представлена в таблице 1.
Таблица 1.
Верно сгенерированные ответы на отзывы
Отзыв |
Сгенерированный ответ |
За такую цену. Больше покупать здесь не собираюсь |
Добрый день! Благодарим за выбор нашего бренда! Ценообразование устанавливается производителем. Форматы профессиональных магазинов с предоставлением скидок |
Всегда брала за 500 р. Маску и шампунь. И в марте еще успела купить за 600р. Решила оставить отзыв. Как закончится придется искать, что то другое, подходящее кошельку. |
Добрый день! Мы высоко ценим обратную связь от наших покупателей! Благодарим Вас за отзыв! |
Всегда покупала эту серию в профессиональных магазинах. Теперь заказала тут. Удобно. Но цена очень выросла. В магазине в январе покупала за 535 рублей. |
Спасибо за Благодарим высоко ценим обратную связь от наших покупателей! Благодарим Вас за отзыв! |
Отличный товар! Поражает только подъём цены... А в фирменном магазине как было 540, так и осталось... Так что вряд ли есть смысл заказывать здесь... |
Добрый день! Мы высоко ценим обратную связь от наших покупателей! Благодарим Вас за отзыв! |
Всё в хорошем состоянии |
Добрый день! Мы высоко ценим обратную связь от наших покупателей! Благодарим Вас за отзыв! |
Цвет берется местами. Серо-зеленый но не как не лиловый. Вобщем полнейший ужас! |
Мы высоко ценим мнение каждого из наших клиентов. Особое внимание уделяем работе с обратной связью. Спасибо, что помогаете нам быть сильнее! С глубоким уважением, Ваш Constant Delight. |
Написано лиловый цвет, в итоге не тот вообще и взялась местами. Не советую. |
Добрый день! Мы высоко ценим обратную связь от наших покупателей! Благодарим Вас за отзыв! |
Хороший чехол |
Добрый день! Мы высоко ценим обратную связь от наших покупателей! Благодарим Вас за отзыв! |
Анализируя таблицу 1, можно заметить часто повторяющийся сгенерированный ответ: «Добрый день! Мы высоко ценим обратную связь от наших покупателей! Благодарим Вас за отзыв!». Данную часто повторяющуюся генерацию можно объяснить тем, что в модель создания и проверки вхождения слов отзыва в язык был добавлен механизм замены незнакомых слов и символов на слово «слово». Без данного механизма возможно возникновение исключений и ошибок в работе нейронной сети. «Слово» имеет нейтральный эмоциональный окрас и не меняет смысла всего отзыва, однако при частом повторе данного слова возможно размытие смысла отзыва, что приводит к генерации нейтрального ответа. Например, отзыв «Збс !!!!!!» был заменен на отзыв «слово», что и вызвало генерацию того нейтрального отзыва, на который способна обученная нейронная сеть.
Проведенное тестирование разработанного веб-приложения показало, что все отдельные компоненты программы работают верно, что позволяет пользователям упрощать процесс взаимодействия с клиентами посредством экономии временных и финансовых ресурсов.
Список литературы:
- Модели глубоких нейронных сетей sequence-to-sequence на PyTorch – Текст: электронный // Сообщество IT-специалистов : [сайт]. – 2021. – 21 июля. – URL: https://habr.com/ru/post/567142/ (дата обращения: 30.03.2022).
- Seq2Seq – Текст: электронный // Свободная энциклопедия : [сайт]. – 2022. – 10 апреля. – URL: https://en.wikipedia.org/wiki/Seq2seq (дата обращения: 30.03.2022).
- Механизм внимания – Текст: электронный // Викиконспекты университета ИТМО : [сайт]. – URL: https://neerc.ifmo.ru/wiki/index.php?title=Механизм_внимания (дата обращения: 30.03.2022).
- Сайфан, Г. Современный веб-скрапинг с BeautifulSoup и Selenium / Г. Сайфан – Текст: электронный // Бесплатные учебные пособия : [сайт]. – 2018. – 23 марта. – URL: https://code.tutsplus.com/ru/tutorials/modern-web-scraping-with-beautifulsoup-and-selenium--cms-30486 (дата обращения: 11.04.2022).
[1] по требованию Роскомнадзора информируем, что иностранное лицо, владеющее информационными ресурсами Google, является нарушителем законодательства Российской Федерации – прим.ред.