Поговорим о том, что такое диалоговая система и какими они бывают.
В последние несколько лет в индустрии диалоговых систем произошел большой скачок. С началом пандемии из-за локдауна трафик звонков и онлайн-обращений вырос в разы, и тут на помощь бизнесу пришли специалисты из области NLP.
Все больше компаний внедряют чат-ботов или голосовых помощников, чтобы снять нагрузку с контактных центров и службы поддержки.
Диалоговая система – это система, созданная для общения с пользователем в естественном для него виде: в виде диалога. В первую очередь такие системы или, как их часто называют, боты, возникли для того, чтобы упростить взаимодействие людей с компаниями или сервисами. Например, спросить у умной колонки прогноз погоды быстрее, чем искать телефон, открывать браузер и печатать запрос.
Далеко не все «автоответчики», с которыми мы сталкиваемся каждый день, можно считать настоящей диалоговой системой. Например, чат-боты в мессенджерах, которые просят вас ввести число или слово в определенной форме в ответ на их сообщение – не диалоговые системы. Их диалоги регулируются обычным алгоритмом, в котором от пользователя ожидаются однозначные ответы, и следующий шаг включается только если ответ пользователя совпал с одним из нескольких ожидаемых – никакого машинного обучения.
Настоящие диалоговые системы бывают разными. В первую очередь они принципиально различаются задачами: одни помогают людям совершить те или иные действия, а другие просто болтают обо всем на свете.
Task-oriented systems
Первая группа систем — так называемые task- или goal-oriented системы. Их чаще всего называют голосовыми или виртуальными помощниками, так как их основная задача — помочь пользователю решить его проблему или привести его к завершению действия. Такие боты могут заказывать пиццу, переводить деньги, включать свет или контролировать подписки на разные сервисы.
Особенность goal-oriented систем в том, что диалог с пользователем достаточно предсказуем и обычно раскладывается на ограниченный набор подшагов, проходя которые мы заполняем слоты – «поля анкеты» или факты, необходимые системе для совершения действия.
Например, чтобы заказать пиццу, нужно указать вид пиццы, ее размер и адрес для доставки.
Что делает эти системы интеллектуальными? Их способность понимать, что хочет пользователь без однозначного совпадения вашего ответа и вообще поведения с ожидаемым. Когда вы обращаетесь к голосовому ассистенту, он классифицирует запрос и включает подходящий сценарный навык. При этом в идеале не важно, в каком порядке вы будете выдавать боту информацию. Если в вашей фразе не хватает нужных фактов, он сможет уточнить непонятное и завершить действие. Так благодаря NLP технологиям работа одного и того же сценария перевода средств может меняться в зависимости от конкретного запроса:
- Если вы скажете «переведи маме сто рублей», помощник разобьет вашу фразу на три части, поняв, что запрос связан с переводом, адресат перевода – мама, а сумма перевода — 100 рублей, и сразу запросит подтверждение перевода.
- При начальном запросе «хочу перевести деньги», вы получите уточняющие вопросы о том, кому и сколько средств нужно перевести.
Основная задача ориентированных на задания систем в том, чтобы выполнить действие, которое ожидает пользователь, поэтому нам достаточно легко определить, хорош ли голосовой ассистент такого типа или плох. Одна из главных метрик качества этих систем – доля успешно завершенных действий от всех обращений пользователей.
Open-domain systems
Системы с открытым доменом сделаны для поддержания диалога на свободную тему. Они не смогут выполнить конкретные действия и, скорее всего, не ответят на вопрос по деталям вашего рейса на основе персональной информации, но точно смогут пошутить или рассказать историю.
Поддержание разговора на свободную тему гораздо абстрактнее и, как следствие, сложнее, чем выполнение действия. Если в task-oriented системе точно определены точки А и B, а неизвестным остается лишь путь между ними, то в «болталках» есть лишь начальная точка беседы.
Есть разные подходы к тому, как справляться с такой задачей.
- 100% контроль 0% гибкость
Иногда нам важно, как система отвечает на те или иные вопросы, и тогда можно использовать подход goal-oriented систем: заранее заготовить ответ. Например, часто заранее продумывают мнение виртуальных помощников про других помощников, про политику, религию или создавшую их компанию. Но, так как темы диалогов о жизни не ограничены, предзаписанными ответами не обойтись.
- 50% контроль 50% гибкость
В некоторых системах используется база знаний, из которой по запросу пользователя после ранжирования возвращается самый подходящий по мнению системы ответ. Так, например, на вопрос пользователя «Какой твой любимый фильм?» в базе найдется набор ответов по теме «про кино» и после сортировки отправится реплика с названием или описанием фильма. Такой подход хорош тем, что мы контролируем всю информацию, которую получает пользователь, но и плох он тем же. Диалог теряет естественность и может превратиться в обмен фактами.
- 0% контроль [1] 100% гибкость
Другие голосовые ассистенты пословно генерируют ответы с помощью генеративных нейросетей, обученных на диалогах. В этом случае ответы получаются более естественными с точки зрения языка, но иногда не соответствуют теме или не несут никакого смысла. Ответы генеративной сети трудно фильтровать и контролировать, иногда она может создавать ответы с оскорбительными высказываниями, что, конечно, не обрадует пользователя.
На выборе подхода к созданию ответа сложности не заканчиваются. Непонятно, как обучать и улучшать такие системы. До сих пор ни у разработчиков, ни у UX-исследователей [2] нет единого ответа на вопрос, что делает диалог хорошим. Есть понимание некоторых критериев хорошего диалога, но нет четко измеримой метрики. Обычно исследователи смотрят на следующие параметры:
- Понимание разных регистров речи
- Естественность ответа
- Сложность и длительность диалога
- Знания из разных сфер жизни
- Соответствие ответов теме разговора
- И т.д.
Mixed systems
На самом деле, самые известные современные диалоговые системы совмещают в себе и разговорные, и «задачные» способности. Например, Алиса научилась включать свет в квартире, а банковские голосовые ассистенты Салют могут рассказать сказку на ночь. Это именно те виртуальные друзья, о которых мечтали научные фантасты.
В следующей статье расскажем о том, что нужно, чтобы собрать диалоговую систему, и какие технологии используют современные помощники.
[1] — На самом деле, мы частично можем контролировать генерацию, например, не давать модели ругаться матом
[2] — UX-исследователь – человек, изучающий опыт взаимодействия пользователей с сервисами.