SlideShare a Scribd company logo
Методы построения диалоговых
агентов и применяемые для этого
технологии
Senior Data Scientist
Тимофей Дураков
О себе
•  Senior Data Scientists @ Grid Dynamics
•  7 лет разработки ПО
Ситуация на рынке
•  все пытаются сделать чат-ботов
•  крупные игроки вкладываются в собственных ассистентов(Siri, Alexa, Google)
•  много хайпа
•  SaaS решения
•  …
•  ???
План
•  Ретроспектива
•  Составные компоненты собственного решения
•  NLP
•  Компоненты платформы
Ретроспектива
Чат-бот
Компьютерная программа имитирующая поведение
человека при взаимодействии с пользователем.
Разновидности
•  Целеориентированные - пытаются решить какую либо задачу пользователя(заказ
авиабилетов, запись к парикмахеру)
•  Диалоговые - поддерживают разговор с пользователем без дополнительных действий
•  Q&A - поиск наиболее подходящего ответа на вопрос пользователя(фактоиды,
ранжирование вопросов и ответов)
Немного истории
•  1950 - Тьюринг публикует в журнале Mind статью “Вычислительные машины и разум” в
которой описывает одноименный тест Тьюринга
•  1966 - ELIZA создана в MIT - бот пародирует диалог с психотерапевтом
•  1980 - “Китайская комната”
•  2011 - Apple Siri, Api.ai, etc.
SaaS решения
▪  DialogFlow
▪  Wit.ai
▪  IBM Watson
▪  Snips.ai
▪  Amazon Lex
▪  recast.ai
SaaS решения
▪  Намерения
▪  NER
▪  Анализ тональности
▪  Синонимы
▪  Поддержка многих языков
Плюсы
▪  SaaS
▪  Transfer Learning, маленькие датасеты
▪  UI + Point and Click
Минусы
▪  SaaS
▪  Условно-бесплатно
▪  Слабый контроль над моделью
▪  Vendor-lock
Составные части подобных систем
●  ASR(*)
●  NLU
●  Engine
●  NLG
Что если готовое решение не подходит?
Собственное решение FTW!
Из чего состоит бот:
▪  ML-модели
a.  помогаю понимать что хочет пользователь
b.  выделяют важную для диалога информацию
▪  Engine
a.  используя результаты предсказания моделей определяет как вести диалог
b.  следит за контекстом диалоговой сессии
NLP ML
Natural Language Understanding (NLU)
Направление NLP связанное с пониманием речи пользователя.
В контексте ботов обычно состоит из 2 задач:
•  Определение намерений пользователя
•  Выделение сущностей из сообщений пользователей
Подготовка (Preprocessing)
Stop-wordsТокенизация Лемматизация/стемминг
Удаление из текста слов по
частотному критерию
(сверху и снизу)
Разбиение текста на
отдельные токены
Преобразование каждого
отдельного токена к
“нормальной” форме
Подготовка (Preprocessing)
Удаление из текста слов по
частотному критерию
(сверху и снизу)
Разбиение текста на
отдельные токены
“I woke up at 6 o'clock yesterday because I had several math classes”
['I', 'woke', 'up', 'at', '6', "o'clock", 'yesterday', 'because', 'I', 'had', 'several',
'math', 'classes']
['I', 'woke', 'up', 'at', '6', “o'clock”, 'yesterday', 'because','I', 'had', 'several',
'math','class']
Преобразование каждого
отдельного токена к
“нормальной” форме
Stop-wordsТокенизация Лемматизация/стемминг
Word Embeddings
Преобразование текста в формат понятный для компьютера
•  Bag of Words
•  TF-IDF
•  Hashing Trick
•  Word2Vec
•  Glove
Намерения (intents)
Высокоуровневый классификатор определяющий что хочет пользователь от системы,
например:
Текст Intent
Привет welcome
Посоветуй мне action-камеру request_recommend
Расскажи о доступных скидках inform_discounts
Классификация текстов
•  Нейронные сети
•  CNN и RNN архитектуры неплохо справляются с поставленной задачей
•  для данного подхода как правило используются Word2Vec или Glove
•  Линейные модели/Boosting
•  решает задачу с помощью построения линейной модели или бустинга
•  TF-IDF, BoW как способы представления текстов
•  Нет проблем с разряженностью данных
Выделение сущностей(NER)
Выделение значимой информации из сообщений пользователя.
Например:
“Забронируй мне билет на рейс в Берлин на завтра”
destination_city = ”Берлин”
flight_day = ”на завтра”
Токен Тэг
Забронируй O
мне O
билет O
на O
рейс O
в O
Берлин B-CITY
на B-DATE
завтра I-DATE
IOB разметка
Таггеры
•  Вероятностные модели
•  Скрытые Марковские модели(HMM)
•  Conditional Random Fields(CRF)
•  Нейронные сети
•  CNN
•  RNN
Engine
Dialog Manager
Компонент ответственный за принятие решения о дальнейшем ходе диалога.
•  Оперирует состоянием(контекстом) диалога
•  Преобразовывает внутреннее состояние в ответы пользователю с использованием
сторонних подсистем
На вход получает:
•  намерение (intent)
•  набор сущностей (slots)
Выход:
•  Действие (action)
•  Данные необходимые для генерации ответа
Варианты построения
•  if-else/switch
•  Конечный автомат
•  Целеориентированный
•  ML-модели
if/else/switch
Фраза Ответ
Привет Добрый день
Как дела? Спасибо, хорошо
Который сейчас час? Cейчас, %time%
Пока До свидания
Какая температура на улице? Сегодня %temp%
Как тебя зовут? Меня зовут Siri:)
if/else/switch (continued)
Плюсы:
•  Легко создать
•  Легко поддерживать
Минусы:
•  Крайне ограниченные возможности
•  Фактически нет контекста(в базовом подходе)
Конечный автомат
•  Граф всех возможных состояний
•  Переходы между ними
•  На каждый ответ пользователя происходит переход из одного состояний в другое
Пример:
•  голосовое меню в службе поддержки
Конечный автомат (continued)
Плюсы:
•  Более сложные сценарии
•  Когда всё идет по известному сценарию всё относительно хорошо
Минусы:
•  Крайне сложно расширять и поддерживать, чем сложнее моделируемые диалоги тем хуже
дела с поддержкой.
•  Сложно сделать качественный fallback-сценарий
Целеориентированный
•  Механика заполнения слотов перед выполнением какого-либо действия ботом(например
заказ билета в системе). Фокус на действиях а не состояниях диалога в конкретный
момент времени.
•  Базируется на slot-filing подходе
•  Система может содержать несколько ботов которые будут выполнять те или иные действия
Целеориентированный
Плюсы
•  Легко поддерживать
•  Гибкий дизайн
•  Легкий Fallback
Минусы
•  Все еще hard-code
•  Если NLU ошиблось - скорее всего будет много проблем
ML-подход
Принятие решения о последующих шагах, а с помощью ML моделей
Классификатор:
•  Выбирает нужное действие
•  Позволяет гибко обучать
•  Может использовать довольно сложные модели
ML-подход (continued)
•  Плюсы
•  Более гибок в сравнении с предыдущими
•  Использует опыт предыдущих диалогов для ведения нового
•  Минусы
•  Решение принимает модель, сложно быстро поправить баг в принятии решении
•  L2 уровень - модель над моделью, зависит от NLU дороже в обучении и использовании
Муки выбора
Хорошие решения
▪  Целеориентированные - де-факто оптимальное решение для базовых задач
решаемых ботом
▪  ML-enabled Dialog Manager - если есть большой корпус диалогов пользователей и
хорошо было бы выделить эти паттерны
▪  Switch - когда нужно что-то простое
Не очень хорошие решения:
▪  Конечный автомат - велики риски утонуть в его поддержке
Онтология
▪  Для работы с предметной область хорошо иметь ее описание.
▪  Подобное описание позволяет находить связи между сущностями, строить иерархии и
т.д.
▪  Онтология != таксономия
Онтология (continued)
Как построить:
•  Графы содержащие разные типы связей и сущности.
Реализация:
•  Neo4J
Применение:
•  Поиск связей между выделенными NER слотами и содержимым хранилища объектов
Fallback-компонент
Варианты:
•  Перевести диалог на оператора
•  Попросить пользователя переформулировать вопрос
•  Попытаться поддержать диалог в сложившейся ситуации
•  Fallback на случай когда агент не уверен в том какое действие предпринять в данный момент
•  Сводится к использованию Seq2Seq моделей для генерации ответа на естественном языке
•  Нужно аккуратно подбирать датасеты
Генерация ответов (NLG)
Варианты реализации:
▪  шаблоны
a.  hello -> “Привет, %username%!”
b.  how_are_you_response -> “Лучше и быть не может”
c.  ask_price -> “В какой город вы хотите полететь из %city_from%?”
▪  seq2seq
a.  генерация ответов на основании большого разговорного корпуса
(например, субтитры к фильмам)
Выводы
•  На рынке доступно довольно большое количество готовых SaaS-решений, которые хороши
на ранних этапах разработки но накладывают довольно большой ряд ограничений
•  Для работы с естественной речью пользователя минимально нужно 2 компонента для
распознавания NLU (Intents, NER)
•  Действительно хорошие решения это не только ML но и еще платформа выстроенная
вокруг него.
•  В зависимости от задачи и исходных данных могут сработать те или иные решения
Спасибо!
QA

More Related Content

Similar to Methods for building dialog agents and the technologies we used (20)

PPTX
Natural Language Processing (NLP) with .NET for #dotnetby meetup-29
Sergey Tihon
 
PPTX
[ИТ-лекторий ФКН ВШЭ]: Диалоговые системы. Татьяна Ландо
NLPseminar
 
PDF
#3 Global AI Meetup (NLP) - Олег Шляжко, Chatfuel
chatbotscommunity
 
PDF
Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)
Ontico
 
PPTX
гвоздикин
NLPseminar
 
PPTX
Пери Инновации - Боты машинное обучение и искусственный интеллект
Microsoft
 
PPTX
Лилия Смирнова «Расширение функционала СДО: потребности и возможности»
Lilia Smirnova
 
PPTX
[Skolkovo Robotics 2015 Day 2] Владимир Веселов Bot and humans "Взаимодействи...
Skolkovo Robotics Center
 
PPTX
Легкие мобильные приложения – альтернатива традиционной экосистемной модели?
CEE-SEC(R)
 
PDF
ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ: тренды, достижения и вызовы
Alexey Neznanov
 
PDF
Современные средства NLP в поисковых задач - Стачка 2017
Nikita Zhiltsov
 
PDF
TopRater.com Машинное понимание миллионов отзывов / Павел Велихов (TopRater)
Ontico
 
PPT
Автоматическая голосовая служба поддержки
Сергей Пономарев
 
PDF
3 nlp
Yandex
 
PPTX
Weq qwfqwf qwf qwf qwf qfqwwfwqfek 3.pptx
kalzhanovnurlyhan
 
PPTX
презентация холодилиной александры
Evgeniya18
 
PDF
clssifying images using artificial intelligence
MohammadEnnab6
 
PPTX
Data Science Weekend 2017. Segmento, На пути к идеальной диалоговой системе
Newprolab
 
PPTX
Vvedenie-v-iskusstvennyj-intellekt.(ppt)
shooxruxb
 
PDF
Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...
Anton Moiseev
 
Natural Language Processing (NLP) with .NET for #dotnetby meetup-29
Sergey Tihon
 
[ИТ-лекторий ФКН ВШЭ]: Диалоговые системы. Татьяна Ландо
NLPseminar
 
#3 Global AI Meetup (NLP) - Олег Шляжко, Chatfuel
chatbotscommunity
 
Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)
Ontico
 
гвоздикин
NLPseminar
 
Пери Инновации - Боты машинное обучение и искусственный интеллект
Microsoft
 
Лилия Смирнова «Расширение функционала СДО: потребности и возможности»
Lilia Smirnova
 
[Skolkovo Robotics 2015 Day 2] Владимир Веселов Bot and humans "Взаимодействи...
Skolkovo Robotics Center
 
Легкие мобильные приложения – альтернатива традиционной экосистемной модели?
CEE-SEC(R)
 
ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ: тренды, достижения и вызовы
Alexey Neznanov
 
Современные средства NLP в поисковых задач - Стачка 2017
Nikita Zhiltsov
 
TopRater.com Машинное понимание миллионов отзывов / Павел Велихов (TopRater)
Ontico
 
Автоматическая голосовая служба поддержки
Сергей Пономарев
 
3 nlp
Yandex
 
Weq qwfqwf qwf qwf qwf qfqwwfwqfek 3.pptx
kalzhanovnurlyhan
 
презентация холодилиной александры
Evgeniya18
 
clssifying images using artificial intelligence
MohammadEnnab6
 
Data Science Weekend 2017. Segmento, На пути к идеальной диалоговой системе
Newprolab
 
Vvedenie-v-iskusstvennyj-intellekt.(ppt)
shooxruxb
 
Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...
Anton Moiseev
 

More from Grid Dynamics (20)

PPTX
Are you keeping up with your customer
Grid Dynamics
 
PPTX
"Implementing data quality automation with open source stack" - Max Martynov,...
Grid Dynamics
 
PDF
"How to build cool & useful voice commerce applications (such as devices like...
Grid Dynamics
 
PPTX
"Challenges for AI in Healthcare" - Peter Graven Ph.D
Grid Dynamics
 
PPTX
Dynamic Talks: "Applications of Big Data, Machine Learning and Artificial Int...
Grid Dynamics
 
PPTX
Dynamic Talks: "Digital Transformation in Banking & Financial Services… a per...
Grid Dynamics
 
PDF
Dynamic Talks: "Data Strategy as a Conduit for Data Maturity and Monetization...
Grid Dynamics
 
PDF
Dynamics Talks: "Writing Spark Pipelines with Less Boilerplate Code" - Egor P...
Grid Dynamics
 
PPTX
"Trends in Building Advanced Analytics Platform for Large Enterprises" - Atul...
Grid Dynamics
 
PPTX
The New Era of Public Safety Records Management: Dynamic talks Chicago 9/24/2019
Grid Dynamics
 
PPTX
Dynamic Talks: "Implementing data quality automation with open source stack" ...
Grid Dynamics
 
PDF
"Implementing AI for New Business Models and Efficiencies" - Parag Shrivastav...
Grid Dynamics
 
PPTX
Reducing No-shows and Late Cancelations in Healthcare Enterprise" - Shervin M...
Grid Dynamics
 
PDF
Customer intelligence: a Machine Learning Approach: Dynamic talks Atlanta 8/2...
Grid Dynamics
 
PPTX
"ML Services - How do you begin and when do you start scaling?" - Madhura Dud...
Grid Dynamics
 
PPTX
Realtime Contextual Product Recommendations…that scale and generate revenue -...
Grid Dynamics
 
PDF
Decision Automation in Marketing Systems using Reinforcement Learning: Dynami...
Grid Dynamics
 
PPTX
Best practices for enterprise-grade microservices implementations with Google...
Grid Dynamics
 
PPTX
Attribution Modelling 101: Credit Where Credit is Due!: Dynamic talks Seattle...
Grid Dynamics
 
PDF
Building an algorithmic price management system using ML: Dynamic talks Seatt...
Grid Dynamics
 
Are you keeping up with your customer
Grid Dynamics
 
"Implementing data quality automation with open source stack" - Max Martynov,...
Grid Dynamics
 
"How to build cool & useful voice commerce applications (such as devices like...
Grid Dynamics
 
"Challenges for AI in Healthcare" - Peter Graven Ph.D
Grid Dynamics
 
Dynamic Talks: "Applications of Big Data, Machine Learning and Artificial Int...
Grid Dynamics
 
Dynamic Talks: "Digital Transformation in Banking & Financial Services… a per...
Grid Dynamics
 
Dynamic Talks: "Data Strategy as a Conduit for Data Maturity and Monetization...
Grid Dynamics
 
Dynamics Talks: "Writing Spark Pipelines with Less Boilerplate Code" - Egor P...
Grid Dynamics
 
"Trends in Building Advanced Analytics Platform for Large Enterprises" - Atul...
Grid Dynamics
 
The New Era of Public Safety Records Management: Dynamic talks Chicago 9/24/2019
Grid Dynamics
 
Dynamic Talks: "Implementing data quality automation with open source stack" ...
Grid Dynamics
 
"Implementing AI for New Business Models and Efficiencies" - Parag Shrivastav...
Grid Dynamics
 
Reducing No-shows and Late Cancelations in Healthcare Enterprise" - Shervin M...
Grid Dynamics
 
Customer intelligence: a Machine Learning Approach: Dynamic talks Atlanta 8/2...
Grid Dynamics
 
"ML Services - How do you begin and when do you start scaling?" - Madhura Dud...
Grid Dynamics
 
Realtime Contextual Product Recommendations…that scale and generate revenue -...
Grid Dynamics
 
Decision Automation in Marketing Systems using Reinforcement Learning: Dynami...
Grid Dynamics
 
Best practices for enterprise-grade microservices implementations with Google...
Grid Dynamics
 
Attribution Modelling 101: Credit Where Credit is Due!: Dynamic talks Seattle...
Grid Dynamics
 
Building an algorithmic price management system using ML: Dynamic talks Seatt...
Grid Dynamics
 
Ad

Methods for building dialog agents and the technologies we used

  • 1. Методы построения диалоговых агентов и применяемые для этого технологии Senior Data Scientist Тимофей Дураков
  • 2. О себе •  Senior Data Scientists @ Grid Dynamics •  7 лет разработки ПО
  • 3. Ситуация на рынке •  все пытаются сделать чат-ботов •  крупные игроки вкладываются в собственных ассистентов(Siri, Alexa, Google) •  много хайпа •  SaaS решения •  … •  ???
  • 4. План •  Ретроспектива •  Составные компоненты собственного решения •  NLP •  Компоненты платформы
  • 6. Чат-бот Компьютерная программа имитирующая поведение человека при взаимодействии с пользователем.
  • 7. Разновидности •  Целеориентированные - пытаются решить какую либо задачу пользователя(заказ авиабилетов, запись к парикмахеру) •  Диалоговые - поддерживают разговор с пользователем без дополнительных действий •  Q&A - поиск наиболее подходящего ответа на вопрос пользователя(фактоиды, ранжирование вопросов и ответов)
  • 8. Немного истории •  1950 - Тьюринг публикует в журнале Mind статью “Вычислительные машины и разум” в которой описывает одноименный тест Тьюринга •  1966 - ELIZA создана в MIT - бот пародирует диалог с психотерапевтом •  1980 - “Китайская комната” •  2011 - Apple Siri, Api.ai, etc.
  • 9. SaaS решения ▪  DialogFlow ▪  Wit.ai ▪  IBM Watson ▪  Snips.ai ▪  Amazon Lex ▪  recast.ai
  • 10. SaaS решения ▪  Намерения ▪  NER ▪  Анализ тональности ▪  Синонимы ▪  Поддержка многих языков Плюсы ▪  SaaS ▪  Transfer Learning, маленькие датасеты ▪  UI + Point and Click Минусы ▪  SaaS ▪  Условно-бесплатно ▪  Слабый контроль над моделью ▪  Vendor-lock
  • 11. Составные части подобных систем ●  ASR(*) ●  NLU ●  Engine ●  NLG
  • 12. Что если готовое решение не подходит?
  • 13. Собственное решение FTW! Из чего состоит бот: ▪  ML-модели a.  помогаю понимать что хочет пользователь b.  выделяют важную для диалога информацию ▪  Engine a.  используя результаты предсказания моделей определяет как вести диалог b.  следит за контекстом диалоговой сессии
  • 15. Natural Language Understanding (NLU) Направление NLP связанное с пониманием речи пользователя. В контексте ботов обычно состоит из 2 задач: •  Определение намерений пользователя •  Выделение сущностей из сообщений пользователей
  • 16. Подготовка (Preprocessing) Stop-wordsТокенизация Лемматизация/стемминг Удаление из текста слов по частотному критерию (сверху и снизу) Разбиение текста на отдельные токены Преобразование каждого отдельного токена к “нормальной” форме
  • 17. Подготовка (Preprocessing) Удаление из текста слов по частотному критерию (сверху и снизу) Разбиение текста на отдельные токены “I woke up at 6 o'clock yesterday because I had several math classes” ['I', 'woke', 'up', 'at', '6', "o'clock", 'yesterday', 'because', 'I', 'had', 'several', 'math', 'classes'] ['I', 'woke', 'up', 'at', '6', “o'clock”, 'yesterday', 'because','I', 'had', 'several', 'math','class'] Преобразование каждого отдельного токена к “нормальной” форме Stop-wordsТокенизация Лемматизация/стемминг
  • 18. Word Embeddings Преобразование текста в формат понятный для компьютера •  Bag of Words •  TF-IDF •  Hashing Trick •  Word2Vec •  Glove
  • 19. Намерения (intents) Высокоуровневый классификатор определяющий что хочет пользователь от системы, например: Текст Intent Привет welcome Посоветуй мне action-камеру request_recommend Расскажи о доступных скидках inform_discounts
  • 20. Классификация текстов •  Нейронные сети •  CNN и RNN архитектуры неплохо справляются с поставленной задачей •  для данного подхода как правило используются Word2Vec или Glove •  Линейные модели/Boosting •  решает задачу с помощью построения линейной модели или бустинга •  TF-IDF, BoW как способы представления текстов •  Нет проблем с разряженностью данных
  • 21. Выделение сущностей(NER) Выделение значимой информации из сообщений пользователя. Например: “Забронируй мне билет на рейс в Берлин на завтра” destination_city = ”Берлин” flight_day = ”на завтра”
  • 22. Токен Тэг Забронируй O мне O билет O на O рейс O в O Берлин B-CITY на B-DATE завтра I-DATE IOB разметка
  • 23. Таггеры •  Вероятностные модели •  Скрытые Марковские модели(HMM) •  Conditional Random Fields(CRF) •  Нейронные сети •  CNN •  RNN
  • 25. Dialog Manager Компонент ответственный за принятие решения о дальнейшем ходе диалога. •  Оперирует состоянием(контекстом) диалога •  Преобразовывает внутреннее состояние в ответы пользователю с использованием сторонних подсистем На вход получает: •  намерение (intent) •  набор сущностей (slots) Выход: •  Действие (action) •  Данные необходимые для генерации ответа
  • 26. Варианты построения •  if-else/switch •  Конечный автомат •  Целеориентированный •  ML-модели
  • 27. if/else/switch Фраза Ответ Привет Добрый день Как дела? Спасибо, хорошо Который сейчас час? Cейчас, %time% Пока До свидания Какая температура на улице? Сегодня %temp% Как тебя зовут? Меня зовут Siri:)
  • 28. if/else/switch (continued) Плюсы: •  Легко создать •  Легко поддерживать Минусы: •  Крайне ограниченные возможности •  Фактически нет контекста(в базовом подходе)
  • 29. Конечный автомат •  Граф всех возможных состояний •  Переходы между ними •  На каждый ответ пользователя происходит переход из одного состояний в другое Пример: •  голосовое меню в службе поддержки
  • 30. Конечный автомат (continued) Плюсы: •  Более сложные сценарии •  Когда всё идет по известному сценарию всё относительно хорошо Минусы: •  Крайне сложно расширять и поддерживать, чем сложнее моделируемые диалоги тем хуже дела с поддержкой. •  Сложно сделать качественный fallback-сценарий
  • 31. Целеориентированный •  Механика заполнения слотов перед выполнением какого-либо действия ботом(например заказ билета в системе). Фокус на действиях а не состояниях диалога в конкретный момент времени. •  Базируется на slot-filing подходе •  Система может содержать несколько ботов которые будут выполнять те или иные действия
  • 32. Целеориентированный Плюсы •  Легко поддерживать •  Гибкий дизайн •  Легкий Fallback Минусы •  Все еще hard-code •  Если NLU ошиблось - скорее всего будет много проблем
  • 33. ML-подход Принятие решения о последующих шагах, а с помощью ML моделей Классификатор: •  Выбирает нужное действие •  Позволяет гибко обучать •  Может использовать довольно сложные модели
  • 34. ML-подход (continued) •  Плюсы •  Более гибок в сравнении с предыдущими •  Использует опыт предыдущих диалогов для ведения нового •  Минусы •  Решение принимает модель, сложно быстро поправить баг в принятии решении •  L2 уровень - модель над моделью, зависит от NLU дороже в обучении и использовании
  • 35. Муки выбора Хорошие решения ▪  Целеориентированные - де-факто оптимальное решение для базовых задач решаемых ботом ▪  ML-enabled Dialog Manager - если есть большой корпус диалогов пользователей и хорошо было бы выделить эти паттерны ▪  Switch - когда нужно что-то простое Не очень хорошие решения: ▪  Конечный автомат - велики риски утонуть в его поддержке
  • 36. Онтология ▪  Для работы с предметной область хорошо иметь ее описание. ▪  Подобное описание позволяет находить связи между сущностями, строить иерархии и т.д. ▪  Онтология != таксономия
  • 37. Онтология (continued) Как построить: •  Графы содержащие разные типы связей и сущности. Реализация: •  Neo4J Применение: •  Поиск связей между выделенными NER слотами и содержимым хранилища объектов
  • 38. Fallback-компонент Варианты: •  Перевести диалог на оператора •  Попросить пользователя переформулировать вопрос •  Попытаться поддержать диалог в сложившейся ситуации •  Fallback на случай когда агент не уверен в том какое действие предпринять в данный момент •  Сводится к использованию Seq2Seq моделей для генерации ответа на естественном языке •  Нужно аккуратно подбирать датасеты
  • 39. Генерация ответов (NLG) Варианты реализации: ▪  шаблоны a.  hello -> “Привет, %username%!” b.  how_are_you_response -> “Лучше и быть не может” c.  ask_price -> “В какой город вы хотите полететь из %city_from%?” ▪  seq2seq a.  генерация ответов на основании большого разговорного корпуса (например, субтитры к фильмам)
  • 40. Выводы •  На рынке доступно довольно большое количество готовых SaaS-решений, которые хороши на ранних этапах разработки но накладывают довольно большой ряд ограничений •  Для работы с естественной речью пользователя минимально нужно 2 компонента для распознавания NLU (Intents, NER) •  Действительно хорошие решения это не только ML но и еще платформа выстроенная вокруг него. •  В зависимости от задачи и исходных данных могут сработать те или иные решения
  • 42. QA