ML: Чатбот RASA: Теория диалога
Вопрос-ответ
Элементарный акт диалога - пара "вопрос-ответ" (ответ не обязательно сразу после вопроса). Вопрос включает неполную информацию и просьбу её дополнить в рамках данного контекста. Типы вопросов:
- Уточняющие: надо ли; можно ли; верно ли что; является ли; действительно ли; согласны ли Вы с тем, что. Ответ да/нет (возможно с пояснением)
- Восполняющие: кто; что; где; когда; с кем; сколько; какие; что произойдёт, если; зачем; почему;
- Риторические: в отличии от предыдущих, содержат законченное утверждение или отрицание; не требуют ответа.
В идеале, система классификации интентов должна начинать сначала проводить дихотомию (утверждение-вопрос). Если вопрос - то его тип. Если утверждение, то с каким вопросом оно связано.
Степень осмысленности ответа
Задавая вопрос, человек ожидает получить осмысленный ответ. Считается анекдотичной ситуация:
🙎 Кто написал роман "Айвенго"? 💻 Писатель.Однако для чат-бота этот ответ лучше, чем ("не знаю" или "не понимаю"). В рамках семантической сети можно использовать шаблон обобщения. Если система знает ряд книг и видит, что большинство из написали писатели, то очевидно, что и "Айвенго" написал писатель.
Аналогично, если ответ не известен, но в вопросе есть знакомые сущности, можно что-то глубокомысленно о них сообщить: "Люди умеют писать, а столы, даже письменные - нет."
Ассоциативный диалог - знакомое слово в фразе человека порождает факт о нём.
Стековая структура диалога
Пример диалогового стека (dialogue stack):
💻 С вас $15. Могу ли я списать средства с вашей карты? -| 🙎 Остался ли на моем счету кредит от полученного возмещения? -| 💻 Да, на вашем счету 10 долларов на счете. 🙎 Отлично. -| 💻 Могу я разместить заказ? 🙎 Да. 💻 Готово. Завтра у тебя должны быть свои вещи. -|Transformers
Техника активного слушания
"Техника активного слушания" была впервые реализована Джозефом Вейценбаумом в программе "Элиза". Идея - больше задавать вопросов, связанных с фразой человека:
🙎 У меня болит голова 💻 Почему вы говорите, что у вас болит голова? 🙎 Мой отец меня ненавидит 💻 Кто ещё из семьи вас ненавидит? .. 🙎 Все мужчины похожи. 💻 Каким образом? 🙎 Они всегда чем-то нас беспокоят. 💻 Вы можете применить конкретный пример? 🙎 Что ж, мой парень заставил меня приехать сюда. 💻 Ваш парень заставил вас приехать сюда... .. 🙎 Меня волнует погода. 💻 Как давно вас волнует погода? 🙎 С тех пор, как я рассталась с бойфрендом. 💻 Расскажите больше о Вашей семье. .. 🙎 Кто ваш любимый композитор? 💻 А кто ваш любимый композитор?При отсутствии вариантов для ответа, Элиза говорит «Понятно» и переводит разговор на другую тему.
Интерес к человеку
Человеку приятно, когда им интересуются. Бот на основе семантической сети, может, при помощи вопросов, пытаться отнести человека к тем или иным множествам, выявляя противоречия, интересуясь способностями, связанными с типичными элементами данного множества.
💻 А кто Вы по профессии? 🙎 Я писатель. 💻 Вау, т.е. Вы обычно пишете книги? 🙎 Да. 💻 И какие Ваши книги Вы рекомендуете прочитать? ... 🙎 Я недавно вернулся с моря. 💻 Как называется это море? 🙎 Чёрное. 💻 Да, занаю. А Вы хорошо плаваете?
Аналогично, легенда самого бота должна быть "зашита" в семантическую сеть, чтобы адекватно реагировать на вопросы об интересах и умениях.
Виды диалогов
Важным условием диалога являются мотивация и потребность в общении. Диалог может состояться, если у субъекта возникает желание знать о предмете речи. Eсли партнеры не будут сообщать друг другу новую информацию , а начнут обмениваться общеизвестными истинами, то диалог не состоится. [ref]
- Диалог-обмен информацией: 👩 слышал, Саша женился? 🧑 та ты что! на ком? 👩 на Маше ....
- Диалог-обмен впечатлениями: 👩 тебе понравилась вечеринка? 🧑 да, было замечательно! 👩 и мне ....
- Диалог-постановка задачи: 👩 дайте мне колу 🧑 сколько бутылок?
- Диалог-планирование действий: 👩 сходим в театр? 🧑 а что там ставят? ....
Ситуативные диалоги для развития навыков общения в различных ситуациях речи (игра лиц в предложенной ситуации, своеобразная инсценировка): «Продавец и покупатель», «Врач и пациент», «Пассажир и водитель», «Клиент и официант» и «Посетитель и экскурсовод» и т. п. [ref]
Реплика – это наименьшее речевое единство, в диалоге:
- реплика-стимул является началом разговора, определяет его тему и цель;
- реплика-реакция – ответная реплика, зависит от реплики-стимула.
- запрос информации (Который час?)
- вопросы о причине (Из-за чего засох цветок?)
Для диалога типичны реплики вопрос-ответ. В простейшем случае они могут быть двухчленными:
👩 Как вы себя чувствуете? 🧑 Спасибо, неплохо. 👩 Как поживает ваша мама, здорова? 🧑 Спасибо, всё в порядке.трёхчленными:
👩 Ты что это? Читаешь? 🧑 Ещё не поздно! 👩 Давно пора спать. 👩 Чем занимаешься? 🧑 Читаю. 👩 Пойдём лучше в кино.и многочленными:
👩 Ваш род занятий? 🧑 Я работаю учителем русского языка. 👩 А по специальности вы кто? 🧑 Филолог.
Реплики-вопросы:
Что нового? Какие новости у тебя? Что хорошего? Где вы были? Чем занимались сегодня? Что вы думаете об этом? Что вы предлагаете? Чем вы занимаетесь? Ты доволен? У вас есть жалобы? Вас это удивляет?
Современные чатботы
Meena от Google
Имеет 2,6 миллиардов параметров и была обучена на 341 гб текста из социальных сетей. Использует один блок энкодера и 13 декодеров Evolved Transformer.
Система Sensibleness and Specificity Average — это метрика, с помощью тестировщик дает оценку, насколько разговор разумен и естественен, а также определяет, насколько конкретный ответ дала Meena. Значение человека в такой метрике равно 86%, показатель Meena — 79%. Другие боты, например, такие как Mitsuku и Cleverbot, набирают всего 56%.
Xiaoice от Microsoft
Во время переписки чат-бот динамически подстраивается под собеседника, запоминая его личностные данные и особенности поведения. С помощью генератора ответов на базе рекуррентной нейронной сети создается фраза, которая затем проверяется на релевантность как наиболее подходящий ответ. Фразы берутся из пар «вопрос — ответ» датасетов разговоров людей в социальных сетях (30 миллионов пар и в 70% случаев Xiaoice выбирает ответ из них). Также есть вопросы о каких-либо вещах. В этом случае ответ выбирается примерно как выдача в поисковике.
A.L.I.C.E
Ричард Уоллес, вдохновлёный простотой Элизы, создал язык разметки для искусственного интеллекта АIML. С его помощью было заполнено около 40000 ответов для бота A.L.I.C.E (Artificial Linguistic Internet Computer Entity). В 2002 году Уоллес совместно с Franz, Inc. создал ресурс Pandorabots для разработки и поддержки чат-ботов, виртуальных ассистентов.Источники информации
- (2003) Гойхман О.Я. Надеина Т.М. - "Речевая коммуникация" (Учебник).
- (2020) Юань Цуншуан - "Из опыта лингвистического описания типов и видов диалога. в современном русском языке."
- Эмпатичный чат-бот - описание Xiaoice от Microsoft.
- Давай поговорим: как работает «человечный» чат-бот Google