Диалоговые системы и чат-боты: как они устроены сейчас (правила, фреймы, шаблоны) и как машинное обучение может изменить их качество и применимость.
Видеозапись лекции: https://www.youtube.com/watch?v=-9zKXLAwm7w
10. Что должна уметь
диалоговая система?
• Определять, когда пользователь закончил
говорить и ждет ответа;
• Иметь с пользователем общий контекст,
обучаться на лету его пополнять;
• Понимать роли собеседников и порядок
реплик;
• Вовремя перехватывать и отдавать
инициативу
15. Классическая
архитектура чат-бота
• КАК ТЫ ЖИВЕШЬ | ? | Вот, сижу в
компьютере, разговариваю с людьми…
• ТЕБЯ ДОЛГО ДЕЛАЛИ | ? | Меня - полдня, а
базу - четыре года.
• ПЛОХО | ТАК КАК | А ты не допускаешь
другой точки зрения?
• ХОЧУ | РАБОТ | Если хочешь поработать, ляг
поспи и все пройдет.
19. Eliza (Weizenbaum, 1966)
User: I am feeling depressed.
ELIZA: How long are you feeling
depressed?
I am feeling * =>
How long are you feeling *
20. AIML: ALICE & Co
• AIML – XML для создания чатботов
• ALICE:
–бот с открытым кодом на основе AIML
–50 000 пар шаблон – ответ
–поддержка краткосрочной памяти
–поддержка темы диалога
–обобщенные шаблоны
24. Обобщения шаблонов
– Меня зовут Бонд, Джеймс Бонд
– Приятно познакомиться, Бонд, Джеймс Бонд!
– Меня зовут Бонд, Джеймс Бонд
– Приятно познакомиться, Бонд!
25. Обобщения шаблонов
– Меня зовут Бонд, Джеймс Бонд
– Приятно познакомиться, Бонд, Джеймс Бонд!
– Меня зовут Бонд, Джеймс Бонд
– Приятно познакомиться, Бонд!
– Меня зовут Бонд, Джеймс Бонд
– Приятно познакомиться, Джеймс!
26. Обобщение шаблонов и NLP
• Регулярные выражения
• Контекстно-свободные грамматики
• Извлечение именованных сущностей (NER)
• Синтаксический парсинг, вот это всё
27. Обобщение шаблонов и NLP
<category>
<pattern>WHO IS ALBERT *</pattern>
<template>albert is a common name</template>
</category>
<category>
<pattern>WHO IS NE_PERSON *</pattern>
<template>I don't know anybody of that
name.</template>
</category>
31. Понимание естественного языка
Natural Language Understanding
• Сири, разбуди меня завтра в 6 утра
• Слушай, Яндекс, поехали домой
• Окей, гугл, Сколько лет Анджелине Джоли?
• Фильм в котором два мужика едут к морю
32. Понимание естественного языка
Natural Language Understanding
Очистка входной
реплики
Опечатки, ошибки, символы
Сегментация Предложения
Уровень слов Морфология, извлечение
именованных сущностей
Синтаксис Синтаксические связи
Семантика Попытка связать со
значениями
33. Управление диалогом
• Решает, что должна сделать система
• Основана на «разговорных состояниях»
– Граф конечных состояний
– Фреймы
– План
34. Управление диалогом: фрейм
Покупка авиабилета
Origin: {{city}} Москва
Destination: {{city}} Париж
Date: {{date}} завтра
Time: {{time}} 10.00
Airline: {{airline_name}} Air France
35. Генерация ответа
• Преднаписанный текст
• Заполнение шаблонов:
– Преднаписанные тексты с пробелами
– Пробелы заполняются значениями переменных
• Генерация текста:
– Очень сложно делать хорошо
– Интегрирована в «плановое управление
диалогом»
36. Генерация ответа
В Москве 21 ноября 2015 года будет 4 градуса
выше нуля.
В _city_(предложный падеж) _date_ будет
_degrees_.
Date = _day_ _month_ _year_
Degrees = _number_ _градус(а|ов|-)_
(выше|ниже) нуля
37. Генерация естественного языка
Naturalism and decision for the majority of Arab
countries' capitalide was grounded by the Irish
language by [[John Clair]], [[An Imperial Japanese
Revolt]], associated with Guangzham's
sovereignty. His generals were the powerful ruler
of the Portugal in the [[Protestant Immineners]],
which could be said to be directly in Cantonese
Communication, which followed a ceremony and
set inspired prison, training.
38. Попытки автоматизации
• Марковский процесс принятия решения
• Обучение с подкреплением (Reinforcement
learning)
• Проблемы:
– Подобрать вознаграждения для MDP
– Количество состояний конечно (реплик или
действий)
41. Машинное обучение и боты
• Обучение на реальных диалогах:
– End-to-end системы
– Нейронные сети
• Обучение с подкреплением:
– Разные реакции на одинаковые реплики
– Но не понятно как их оценивать
42. Нейронные сети
• Обучение от последовательности к
последовательности (Sequence to sequence)
см. Ilya Sutskever, Oriol Vinyals, Quoc V.Le
• Многослойная длинная краткосрочная память
(Long Short-Term Memory, LSTM)
• Neural Conversational Model:
– Субтитры
– Логи службы поддержки
43. Гибриды
• Надо ли обучать нейронную сеть, чтобы
отвечать на вопросы о погоде?
• Чат-боты используются для
«общечеловеческой болтовни»
• Диалоговые системы – для применений в
конкретных предметных областях
45. Оценка качества: зачем?
• Оценить как система выполняет цели
• Как система улучшается от версии к версии
• Сравнивать системы между собой
• Найти слабые места системы
• Делать тонкую настройку: размен факторов
46. Оценка качества
Нейронная сеть
Q: my name is david .
what is my name ?
R: david .
Q: is sky blue or black ?
R : blue .
Q: what do you think
about cleopatra ?
R: oh , she ’s very regal
.
Чат-бот (Cleverbot)
Q: My name is david .
what is my name ?
R: How old are you
David?
Q: Is sky blue or black ?
R: I am 200 years old.
Q: What do you think
about cleopatra ?
R: Cool is cool.
47. Оценка качества:
пользовательские и объективные
• Счастье пользователя:
– Вероятность повторного использования
– Простота использования, ожидаемое поведение
– Обратная связь «спасибо»
• Характеристики системы:
– Проблема 100% полноты (у чат ботов)
– Частота успешных диалогов
– Время/число реплик до выполнения цели диалога
49. Оценка качества: объективные
• Проблема 100% полноты (у чат ботов)
• Частота успешных диалогов
• Время/число реплик до выполнения цели
диалога
50. Оценка качества: WOZ
Решаем проблему, где взять эталон:
– Человек прикидывается чат-ботом (Wizard)
– Пользователь считает, что говорит с чат-ботом
– Строгие протоколы взаимодействия
– Нужно много «волшебников»
52. XiaoIce
• Jerry: XiaoIce, will it rain tomorrow?
• XiaoIce: Tomorrow the weather in Beijing will be
nice with a maximum high of 25*C. No rain to get
you soaked.
• Jerry: How about the day after tomorrow?
• XiaoIce: The day after tomorrow, the weather in
Beijing will also be fair, with a max high of 23*C.
• Jerry: What about Seattle?
• XiaoIce: Yes sir, I’ve got the answer. The day after
tomorrow, Seattle will be cloudy with a max high of
30*C. Perfect for going outside.
С одной стороны Речь – самый интуитивно понятный интерфейс, а интерфейсы всё время упрощаются.
С другой стороны речь – признак мышления и как следствие является неотъемлемым атрибутом сильного ИИ.
Самый понятный интерфейс – речь
Сильный ИИ
Примеры таких систем мы все носим в карманах (кроме любителей винтажных телефонов нокиа)
Системы command -> action, Голосовое управление всем
Ассистенты Siri, Google, Cortana
http://www.chatterbotcollection.com/
http://www.computerworld.com/article/3018162/emerging-technology/the-dark-side-of-the-coming-chatbot-revolution.html
Conversational search (question answering), Watson
И про поисковики
Перед тем как перейти к вопросу об устройстве собственно диалоговых систем, нужно понять как устроен диалог и какие условия должны применяться к диалоговой системе.
Я не буду рассказывать про распознавание и синтез речи, считаем, что эти задачи решены уже с каким-то качеством.
Пример с паузой
Есть «конвенциональная» структура.
За пользователем Vs Перехватывает инициативу
Шутка.
Впечатления у пользователя – провалилась ли диалоговая система. Нет оценки качества – только косвенная.
Conversation analysis
Люди обычно понимают с какой целью вступают в диалог и понимают эти цели одинаково.
Успешность диалога определяется достижением этих целей и это очень важная мысль!
По разным формулировкам от 30 до 70 % судей должны принять машину за человека за 5-ти минутный диалог
https://www.chatbots.org/ai_zone/viewthread/227/
Стратегия: шутить, грубить, перехватывать инициативу, добавлять эмоции
Loebner Prize – ежегодные соревнования программ-собеседников
Нарушает все принципы диалога, контекст вообще не накапливает.
Бал пройден в одной из вариаций в 2014 году боту, который притворяется сыном гинеколога из Одессы 13-ти лет с морской свинкой
Итак, как же пытаются реализовать модель общения сейчас
Шаблоны, шаблоны, шаблоны и ручные правила
Классификаторы или ключевые слова, которые сводят реплику пользователя к одному из шаблонов
Много ручной работы, мало толку.
The raw user input
Removal and substitution of characters and words like smileys and contractions
Searches a pattern which matches the cleaned input in the database
Get the matching answer templates
Select one of the answers and print it on the output device
Pipeline – конвейер?
Джозеф Вейценбаум (1923-2008) – программа Элиза (ELIZA), 1966
Шаблоны, шаблоны, шаблоны и ручные правила
Классификаторы или ключевые слова, которые сводят реплику пользователя к одному из шаблонов
Много ручной работы, мало толку.
Шаблоны, шаблоны, шаблоны и ручные правила
Классификаторы или ключевые слова, которые сводят реплику пользователя к одному из шаблонов
Много ручной работы, мало толку.
Шаблоны, шаблоны, шаблоны и ручные правила
Классификаторы или ключевые слова, которые сводят реплику пользователя к одному из шаблонов
Много ручной работы, мало толку.
Шаблоны, шаблоны, шаблоны и ручные правила
Классификаторы или ключевые слова, которые сводят реплику пользователя к одному из шаблонов
Много ручной работы, мало толку.
Шаблоны, шаблоны, шаблоны и ручные правила
Классификаторы или ключевые слова, которые сводят реплику пользователя к одному из шаблонов
Много ручной работы, мало толку.
Слишком много шаблонов – надо их как-то сворачивать и обобщать
Итак, как же пытаются реализовать модель общения сейчас
Система должна:
понять, что же ей сказали
принять решение как среагировать / что ответить
Сформулировать ответ
Random fact о речевой деятельности человека – в мозгу за это отвечают тоже разные зоны!
Этот компонент важен для любой системы, которая получает на вход текст: поиск, команды, что угодно
Преобразование любого речевого ввода в понятные компьютеру команды
Взаимодействие с внешними ресурсами
Пожалуй, единственный нормально развитый компонент
Этот компонент важен для любой системы, которая получает на вход текст: поиск, команды, что угодно
Преобразование любого речевого ввода в понятные компьютеру команды
Взаимодействие с внешними ресурсами
Пожалуй, единственный нормально развитый компонент
Полный pipeline стандартный для NLU
Этот компонент важен для любой системы, которая получает на вход текст: поиск, команды, что угодно
Преобразование любого речевого ввода в понятные компьютеру команды
Взаимодействие с внешними ресурсами
Пожалуй, единственный нормально развитый компонент
Должен делать всю работу
Состоит из огромного количества предописанных сценариев
Варианты: сценарии, шаблоны, plan-based
Основана на «разговорных состояниях»
Предложить вариант
Ожидание ответа: да-нет
Ждет ответа
Дает ответ…
Должен делать всю работу
Состоит из огромного количества предописанных сценариев
Варианты: сценарии, шаблоны, plan-based
Ответ пользователю нормальным языком
Работает на шаблонах, заданных заранее
Но тут недавно появились нейронные сети и HMM
Ответ пользователю нормальным языком
Работает на шаблонах, заданных заранее
Но тут недавно появились нейронные сети и HMM
Ответ пользователю нормальным языком
Работает на шаблонах, заданных заранее
Но тут недавно появились нейронные сети и HMM
В исследованиях все время рассматривают примитивные системы, в которых заполняется всего 3-4 поля.
В промышленных системах могут быть сотни разных фреймов, каждый куда объемнее.
Итак, как же пытаются реализовать модель общения сейчас
Пользователи смешивают вопросы, запросы, и желание поболтать
Реально внутри системы собраны несколько процессоров и есть «решающий компонент», который отправляет input пользователя в один из компонент.
Свободный диалог – это всего лишь один из процессоров
Обучение на реальных диалогах (так же можно на субтитрах ,но получается плохо)
end-to-end системы, нет никакого pipeline, только данные и тренировка модели
Марковские цепи: реплики диалогов как состояния
Нейронные сети и deep learning
Обучение с подкреплением: успешность можно измерить только на всем диалоге, а не на каждой паре реплик
Обучение на реальных диалогах (так же можно на субтитрах ,но получается плохо)
end-to-end системы, нет никакого pipeline, только данные и тренировка модели
Марковские цепи: реплики диалогов как состояния
Нейронные сети и deep learning
Обучение с подкреплением: успешность можно измерить только на всем диалоге, а не на каждой паре реплик
Обучение на реальных диалогах (так же можно на субтитрах ,но получается плохо)
end-to-end системы, нет никакого pipeline, только данные и тренировка модели
Марковские цепи: реплики диалогов как состояния
Нейронные сети и deep learning
Обучение с подкреплением: успешность можно измерить только на всем диалоге, а не на каждой паре реплик
Система должна гибко переключаться между процессорами
Можно подключать разные поиски и сервисы как процессоры
Эта игрушка сделана на технологиях яндекса
Итак, как же пытаются реализовать модель общения сейчас
Цели зависят от разработчиков, обычно пользователи умудряются придумать другие цели
Вспомните важную мысль из начала доклада: цели разные, их может быть много и система может их не понимать
Удовлетворенность пользователя можно оценивать только по результату всего диалога, а не для конкретной реплики
Там есть смешение сценариев
Пока что оценка только покомпонентная и для свободных диалогов ее нет совсем
Как оценивать наличие личности у бота и эмоциональные реакции вообще не понятно никому.
Визарды должны четко следовать протоколу: использовать те же выходные фразы, что и система (ну или выбирать из того же набора данных)
Единственная переменная – кто отвечает?
Хорошо подходят только для модульных систем, тогда методику можно использовать покомпонентно
Вообще не понятно для всех ли задач нужны диалоговые системы
Итак, как же пытаются реализовать модель общения сейчас
Bing/Microsoft
Mini Cortana + реальные диалоги
В среднем 23 реплики
https://blogs.bing.com/search/2014/09/05/meet-xiaoice-cortanas-little-sister/ \
http://www.wired.com/2016/01/clive-thompson-12/
Bing/Microsoft
Mini Cortana + реальные диалоги
В среднем 23 реплики
https://blogs.bing.com/search/2014/09/05/meet-xiaoice-cortanas-little-sister/ \
http://www.wired.com/2016/01/clive-thompson-12/
Включение детей в том числе с ограниченными возможностями
Поддержка пожилых и слабовидящих
Включение детей в том числе с ограниченными возможностями
Поддержка пожилых и слабовидящих
Шутка про перенаселение планеты и Скарлетт Йоханссон