Upload
nlpseminar
View
285
Download
7
Embed Size (px)
Citation preview
Диалоговые системы и чат-боты
Как они устроены сейчас, и что ждет их в ближайшем будущем
Татьяна Ландо
Настоящее
Ближайшее будущее:Conversational Commerce
• Telegram • Facebook• Slack
Платформы для быстрого построения ботов:• https://botogram.io/ • http://chatfuel.com/ru• http://manychat.com/
Как вообще устроен диалог?
Порядок обмена репликами
Структура разговора
Инициатива
Общий контекст
Что должна уметь диалоговая система?
• Определять, когда пользователь закончил говорить и ждет ответа;
• Иметь с пользователем общий контекст, обучаться на лету его пополнять;
• Понимать роли собеседников и порядок реплик;
• Вовремя перехватывать и отдавать инициативу
Единственная общепризнанная метрика – тест Тьюринга
Единственная общепризнанная метрика – тест Тьюринга
Как устроены чат-боты?
Классическая архитектура чат-бота
Классическая архитектура чат-бота
• КАК ТЫ ЖИВЕШЬ | ? | Вот, сижу в компьютере, разговариваю с людьми…
• ТЕБЯ ДОЛГО ДЕЛАЛИ | ? | Меня - полдня, а базу - четыре года.
• ПЛОХО | ТАК КАК | А ты не допускаешь другой точки зрения?
• ХОЧУ | РАБОТ | Если хочешь поработать, ляг поспи и все пройдет.
Классическая архитектура чат-бота
• Диалог основывается на шаблонах «стимул — реакция»
Классическая архитектура чат-бота
Входная реплика hey man, look at what I've found here ;)
Очистка look at what I have found here
Поиск шаблона <WHAT I HAVE FOUND HERE>
Поиск шаблона <WHAT DID YOU FIND?><THAT'S NOT INTERESTING!>
Ответ That's not interesting!
Прошлое
Eliza (Weizenbaum, 1966)
User: I am feeling depressed. ELIZA: How long are you feeling depressed?
I am feeling * => How long are you feeling *
AIML: ALICE & Co
• AIML – XML для создания чатботов• ALICE: –бот с открытым кодом на основе AIML–50 000 пар шаблон – ответ –поддержка краткосрочной памяти–поддержка темы диалога –обобщенные шаблоны
Поддержка краткосрочной памяти
<category><pattern>YES</pattern><that>DO YOU LIKE READING BOOKS?</that><template>Which one do you like most?</template></category>
Поддержка темы диалога
<topic name=”POETRY”/><category><pattern>*</pattern><template>Do you own any poetry books?</template></category>
Обобщения шаблонов
– Меня зовут Бонд, Джеймс Бонд– Приятно познакомиться, Бонд, Джеймс
Бонд!
Обобщения шаблонов
– Меня зовут Бонд, Джеймс Бонд– Приятно познакомиться, Бонд, Джеймс
Бонд!
– Меня зовут Бонд, Джеймс Бонд– Приятно познакомиться, Бонд!
Обобщения шаблонов
– Меня зовут Бонд, Джеймс Бонд– Приятно познакомиться, Бонд, Джеймс
Бонд!
– Меня зовут Бонд, Джеймс Бонд– Приятно познакомиться, Бонд!
– Меня зовут Бонд, Джеймс Бонд– Приятно познакомиться, Джеймс!
Обобщение шаблонов и NLP
• Регулярные выражения• Контекстно-свободные грамматики• Извлечение именованных сущностей
(NER)• Синтаксический парсинг, вот это всё
Обобщение шаблонов и 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>
Как устроены диалоговые системы?
Классическая архитектура диалоговой системы
Понимание ввода на естественном языке
Управление диалогом
Генерация ответа на естественном языке
Классическая архитектура диалоговой системы
Понимание естественного языка Natural Language Understanding
• Сири, разбуди меня завтра в 6 утра • Слушай, Яндекс, поехали домой• Окей, гугл, Сколько лет Анджелине
Джоли?• Фильм в котором два мужика едут к
морю
Понимание естественного языка Natural Language Understanding
Очистка входной реплики
Опечатки, ошибки, символы
Сегментация ПредложенияУровень слов Морфология, извлечение
именованных сущностейСинтаксис Синтаксические связи
Семантика Попытка связать со значениями
Управление диалогом
• Решает, что должна сделать система• Основана на «разговорных состояниях»– Граф конечных состояний– Фреймы– План
Управление диалогом: фрейм
Покупка авиабилета
Origin: {{city}} МоскваDestination: {{city}} ПарижDate: {{date}} завтра
Time: {{time}} 10.00Airline: {{airline_name}} Air France
Генерация ответа
• Преднаписанный текст• Заполнение шаблонов:– Преднаписанные тексты с пробелами– Пробелы заполняются значениями
переменных• Генерация текста:– Очень сложно делать хорошо– Интегрирована в «плановое управление
диалогом»
Генерация ответа
В Москве 21 ноября 2015 года будет 4 градуса выше нуля.
В _city_(предложный падеж) _date_ будет _degrees_. Date = _day_ _month_ _year_Degrees = _number_ _градус(а|ов|-)_ (выше|ниже) нуля
Генерация естественного языка
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.
Попытки автоматизации
• Марковский процесс принятия решения• Обучение с подкреплением
(Reinforcement learning)• Проблемы:– Подобрать вознаграждения для MDP – Количество состояний конечно (реплик или
действий)
Что дальше?
Машинное обучение и боты
Машинное обучение и боты
• Обучение на реальных диалогах: – End-to-end системы – Нейронные сети
• Обучение с подкреплением:– Разные реакции на одинаковые реплики– Но не понятно как их оценивать
Нейронные сети
• Обучение от последовательности к последовательности (Sequence to sequence)см. Ilya Sutskever, Oriol Vinyals, Quoc V.Le
• Многослойная длинная краткосрочная память (Long Short-Term Memory, LSTM)
• Neural Conversational Model: – Субтитры– Логи службы поддержки
Гибриды
• Надо ли обучать нейронную сеть, чтобы отвечать на вопросы о погоде?
• Чат-боты используются для «общечеловеческой болтовни»
• Диалоговые системы – для применений в конкретных предметных областях
Оценка качества
Оценка качества: зачем?
• Оценить как система выполняет цели• Как система улучшается от версии к версии• Сравнивать системы между собой• Найти слабые места системы• Делать тонкую настройку: размен факторов
Оценка качестваНейронная сеть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.
Оценка качества: пользовательские и объективные
• Счастье пользователя:– Вероятность повторного использования– Простота использования, ожидаемое поведение– Обратная связь «спасибо»
• Характеристики системы: – Проблема 100% полноты (у чат ботов)– Частота успешных диалогов– Время/число реплик до выполнения цели
диалога
Оценка качества: юзабилити
• «Счастье пользователей»:– Task ease– Perceived completion– Expected behavior
• Вероятность повторного использования
Оценка качества: объективные
• Проблема 100% полноты (у чат ботов)• Частота успешных диалогов• Время/число реплик до выполнения
цели диалога
Оценка качества: WOZ
Решаем проблему, где взять эталон:– Человек прикидывается чат-ботом (Wizard)– Пользователь считает, что говорит с чат-
ботом– Строгие протоколы взаимодействия– Нужно много «волшебников»
Использование в настоящем и будущем
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.
Какими станут диалоговые системы?
• Обучающимися• Эмоциональными• Персональными• Универсальными• Аватаризированными
Терапевтические применения
Голосовые интерфейсы
Спасибо!