Кластеризация запросов, обращённых к чат-боту

Участники

Илья Гриценко, Пётр Федосов

Постановка задачи

Автоматическое разделение поисковых запросов, обращённых к чат-боту, по интентам (пользовательским намерениям) и формирование самих интентов. Список интентов является открытым и неограчиенным, в будущем могут появляться новые пользовательские намерения

Данные

Подвыборка объёмом в 1 тысячу запросов из русскоязычной части датасета AmazonScience/massive. Запросы отнесены к 39 различным классам интентов. Примеры запросов и интентов:

  • «сыграть мне башню мумий тролля»: интент "play_music";

  • «сделать ярче свет»: интент "iot_hue_lightup";

  • «что происходит в россии»: интент "news_query"

Метод

Использовались два класса методов:

  1. Классическая кластеризация (например, метод k-средних) эмбеддингов модели ai-forever/FRIDA и буквенных 1–3-грамм вектора;
  2. Кластеризация при помощи модели YandexGPT Pro (temperature=1, дефолтные настройки): zero-shot, 5-shot, 10-shot, 20-shot.

Кластеризация проводилась одновременно с выделением интента (требовалось назвать «тематику или намерение» запроса). При этом полученные моделью интенты подавались на следующих шагах при загрузке нового запроса, т. е. была возможность отнести запрос к одному из уже выделенных интентов.

Соответствие полученной кластеризации исходной оценивалось метриками нормализованной взаимной информации (Normalized Mutual Information), скорректированного коэффициента Рэнда (Adjusted Rand Index), силуэтного коэффициента (Silhouette Score) и индекса Калинского — Харабаша (Calinski–Harabasz Index). Также количество выделенных кластеров сравнивалось с эталонным.

Результат

Наилучший результат показали решения с помощью большой языковой модели, причём с 10- и 20-shot. Нормализованная взаимная информация для 10-shot составила 75,55 (для 20- — 76,58); скорректированный коэффициент Рэнда — 62,77 для 10-shot и 53,09 для 20-shot; количество кластеров — 81 для 10-shot и 109 для 20-shot (против 39 эталонных).

Содержательный вывод

Показана возможность автоматической кластеризации и выделения пользовательских намерений в случае довольно коротких запросов, обращённых к чат-боту. Наилучшим для этого является применение большой языковой модели, наиболее удачные результаты показывает техника few-shot

Материалы