Спасибо, Марио, за ответ!

Ваш пример электронной коммерции напоминает мне кое-что, что я не разъяснил в своей исходной статье:

Сервис-ориентированные боты против ботов, ориентированных на тесты Тьюринга

При разработке проекта ((dialogs)), думая о том, как смоделировать предметно-ориентированный диалог с помощью точного конечного автомата, я имел в виду чат-ботов для бизнеса. ориентированные разговоры, где разговор может привести к транзакции (например, просто к отправке заказа на покупку).

В этих (интересных примерах использования ;-)) разговор о бизнес-целях может привести к тому, что клиент/пользователь будет следовать своего рода шаблонам рабочего процесса/поведения, в которых разговор движется по пути состояний (моделируется как FSM). , где события — это команды/семантическое понимание и т. д.).

В проекте ((dialogs)) я упомянул в качестве примера классический рабочий процесс онлайн-заказа: клиент должен:

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

Точность заключается в том, чтобы различать беседу, имеющую целью достижение «действия» (на самом деле, кто-то говорит о действующих ботах данных, а кто-то говорит о правилах планированияили сценарии заполнения слотов), из обычной болтовни без каких-либо конкретных транзакций! В качестве примера я имею в виду чат-ботов, разработанных для конкурса на приз Лебнера, где чат-боты должны «просто» разговаривать, имитируя светскую беседу между людьми обо всем… без реальной конечной цели: просто имитировать человеческий разговор (тест Тьюринга). контексты).

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

Орбиты государств

Возвращаясь к вашему подходу, о котором вы упомянули, позвольте мне процитировать вас:

Программист определяет различные начальные состояния, каждое из которых может быть вызвано различным набором предложений (в конечном итоге с помощью семантического движка)
Благодаря кнопкам или семантическому анализу пользователи переходят из одного состояния в другое («Хотите A или Б?», выберите между А и Б…)

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

Мы отслеживаем «орбиты» каждого пользователя. Например, у нас есть книжный магазин, и мы видим, что люди, которые покупают более 3 книг, всегда платят кредитной картой, поэтому не предлагают выбор оплаты банковским переводом (глупый пример, но хорошо).
Идея заключается в том, что вместо комплексного seq2seq мы рассматриваем орбиты внутри ограниченного количества состояний.

Да, я вижу смысл. Возможно, вы имеете в виду тот факт, что для перехода из состояния Snow в состояние Snext у пользователя есть короткий список возможных конечных состояний (S в S1…Sn).
Это, возможно, желательная функция для «бизнес-ориентированных» чат-ботов, где на самом деле пользователю не нужно разговаривать «о чем-либо», но вместо этого пользователь должен разговаривать с чат-ботом на определенные темы предметной области (в чат-бот обслуживания клиентов оператора связи, возможно, придется говорить о проблемах, связанных с его тарифным планом и т. д., а не о погоде, результатах футбольных матчей или Brexit).

Кстати, с крайним упрощением (я признаю), орбита может быть просто старомодными настройками и профилированием, всегда заявленным как выполненное (на веб-сайтах/сервисах), но редко используемым на практике ;-)

Кстати, особая благодарность:
Я рад встретиться с вами на #convcomp2016, Марио !
Спасибо за вашу готовность вместе с людьми участвовать в конференции!

Джорджио, 18 июля, обновлено 19 июля