SlideShare a Scribd company logo
1 of 23
Download to read offline
Как дать всю мощь NLP
непрограммистам
Олег Шляжко
Chatfuel
Intro
● Мы делаем платформу для создания ботов без программирования
● Для Facebook Messenger и Telegram
● Более 360 000 ботов, обслуживающих 17 000 000 пользователей
● С нами сотрудничают TechCrunch, Forbes, Uber, National Geographic
● Понятный и удобный NLP - наше важное преимущество
2
Какой AI нужен
ботам
Что автор бота ожидает от
платформы?
3
Какой AI нужен чат-ботам?
1. Распознавание намерений пользователя
4
Какой AI нужен чат-ботам?
2. Выделение фактов и данных из ответа пользователя
NER - Named Entity Recognition
5
Какой AI нужен чат-
ботам?
3. “Человечность” бота, умение
отвечать на простые и частые
фразы
6
Как узнать
намерения
пользователя
Intent Extraction
7
Задача определения сходства фраз
8
Задача определения сходства фраз
● Совпадение фраз
● Фразы с грамматическими ошибками, опечатками
● Похожие по составу фразы
○ “Мне нужны последние новости”
○ “Покажите последние новости”
● Фразы, близкие по смыслу, семантическая близость
○ “Я хочу забронировать комнату”
○ “Я хочу сделать резерв номера”
○ “Могу я забронировать у вас апартаменты?”
9
Простые случаи - совпадение, ошибки
1. Простое совпадение
2. Расстояние Левенштейна:
Минимальное число операций
для превращения одной строки
в другую
10
Похожие по составу фразы
Расстояние Жаккара
(Jaccard Distance)
11
A∩B
A∪B
A B
Похожие по составу фразы
TF-IDF (TF — term frequency, IDF — inverse document frequency).
Мера важности слова в документе для каждого документа из коллекции.
Основа всех современных поисковых систем.
12
Похожие по составу фразы
Преобразуем в векторы. Считаем косинусное расстояние между ними
13
фраза юзера
интент 1
интент 2
TF-IDF
вектор фразы
вектор интента 1
вектор интента 2
θ
Семантическая близость
Word2vec — инструмент для расчета векторных представлений слов.
Минимизация расстояний между векторами слов, встречающихся в
одинаковых контекстах
14
Семантическая близость
1. Преобразуем фразы в наборы векторов слов
2. Из каждого набора векторов формируем вектор фразы. Например,
суммированием
3. Считаем косинусное расстояние между фразами
Но word2vec выдает странные результаты в некоторых областях
○ similarity(love, hate) = 0.81
○ similarity(love, care) = 0.65
15
NLP
Движок
16
Как применить всё это
на практике
Применение на практике
1. Тестовый датасет
a. Используем введенные авторами бота фразы
○ 70 англоязычных ботов с высокой посещаемостью, от 5 до 200 интентов в каждом
b. Формируем позитивные и негативные пары фраза-интент
○ ~250 000 строк тестовых пар
2. Очистка данных
a. Lowercase
b. Удаление пунктуации, разделение на слова (токенизация)
c. Фильтр стоп-слов, местоимений, обращений и т.п.
17
Применение на практике
3. Комбинирование метрик
a. Не используйте эвристики, используйте ML!
b. Регрессия, на входе N метрик сходства пары фраз, на выходе оценка в интервале 0-1
c. Комбинируем регрессию и tf-idf для получения оценок сходства по интентам
4. Оценка качества классификатора
a. Выбираем порог достоверности
b. Регрессор + порог = бинарный классификатор
c. Считаем precision & recall на тестовом датасете для каждого порога
d. Исходя из требуемого precision находим оптимальный порог по max(recall)
18
Применение на практике
Превращаем модель в production сервис
● многопроцессный бэкенд на питоне
● word2vec в памяти, порядка 4 Gb на 1 модель
● кэшируем промежуточные метрики и сами оценки
● не храним интенты, получаем их в каждом запросе
● нагрузка 15-100 rps
● время ответа p50 - 20ms, p95 - 90ms
19
Куда двигаться
дальше
20
Другие языки,
улучшения,
state of the art
Поддержка нескольких языков
● Всё описанное, кроме word2vec, работает для любого языка!
○ Пока мы можем разбить фразу на слова
● Word2vec модели можно обучить самому
○ https://code.google.com/archive/p/word2vec/
● Нужен просто неразмеченный датасет
○ http://opus.lingfil.uu.se/OpenSubtitles2016.php
21
Что дальше?
● Данные по state of the art
○ https://aclweb.org/aclwiki/index.php?title=Similarity_(State_of_the_art)
● Ежегодные соревнования SemEval
○ http://ixa2.si.ehu.es/stswiki/index.php/Main_Page
○ победитель 2016 https://www.aclweb.org/anthology/S/S16/S16-1089.pdf
● Более сложные семантические модели. DSSM, Sent2Vec
○ http://cs.stanford.edu/~quocle/paragraph_vector.pdf
○ http://research.microsoft.com/en-us/um/people/jfgao/paper/2013/cikm2013_DSSM_fullversion.pdf
○ https://github.com/airalcorn2/Deep-Semantic-Similarity-Model
22
Спасибо за
внимание!
23
Приходите к нам делать ботов
для Facebook
chatfuel.com

More Related Content

Viewers also liked

#3 Global AI Meetup (NLP) - Михаил Бурцев, DeepHackLab
#3 Global AI Meetup (NLP) - Михаил Бурцев, DeepHackLab#3 Global AI Meetup (NLP) - Михаил Бурцев, DeepHackLab
#3 Global AI Meetup (NLP) - Михаил Бурцев, DeepHackLabchatbotscommunity
 
Chatbots Analytics - Медицина (Анна Науменко)
Chatbots Analytics - Медицина (Анна Науменко)Chatbots Analytics - Медицина (Анна Науменко)
Chatbots Analytics - Медицина (Анна Науменко)chatbotscommunity
 
Chatbots Meetup 16.04.2016 - Диалоговые движки (Осадченко Григорий)
Chatbots Meetup 16.04.2016 - Диалоговые движки (Осадченко Григорий)Chatbots Meetup 16.04.2016 - Диалоговые движки (Осадченко Григорий)
Chatbots Meetup 16.04.2016 - Диалоговые движки (Осадченко Григорий)chatbotscommunity
 
#1 Global Chatbots Meetup with @WomanSosBot
#1 Global Chatbots Meetup with @WomanSosBot#1 Global Chatbots Meetup with @WomanSosBot
#1 Global Chatbots Meetup with @WomanSosBotchatbotscommunity
 
#1 Global Chatbots Meetup with @my pokerbot
#1 Global Chatbots Meetup with @my pokerbot#1 Global Chatbots Meetup with @my pokerbot
#1 Global Chatbots Meetup with @my pokerbotchatbotscommunity
 
Chatbots Meetup 16.04.2016 - Чатботы в Битрикс24 (Кисляков Антон)
Chatbots Meetup 16.04.2016 - Чатботы в Битрикс24 (Кисляков Антон)Chatbots Meetup 16.04.2016 - Чатботы в Битрикс24 (Кисляков Антон)
Chatbots Meetup 16.04.2016 - Чатботы в Битрикс24 (Кисляков Антон)chatbotscommunity
 
Join #1 Global Chatbots Hackathon with Webinar.ru
Join #1 Global Chatbots Hackathon with Webinar.ruJoin #1 Global Chatbots Hackathon with Webinar.ru
Join #1 Global Chatbots Hackathon with Webinar.ruchatbotscommunity
 
Chatbots Сommunity 3 Months Dynamics
Chatbots Сommunity 3 Months DynamicsChatbots Сommunity 3 Months Dynamics
Chatbots Сommunity 3 Months Dynamicschatbotscommunity
 
Павел Доронин "9 грехов разработчиков чат-ботов" - EdHack
Павел Доронин "9 грехов разработчиков чат-ботов" - EdHackПавел Доронин "9 грехов разработчиков чат-ботов" - EdHack
Павел Доронин "9 грехов разработчиков чат-ботов" - EdHackchatbotscommunity
 
1-ый в России бизнес-тренинг по чат-ботам (выжимка)
1-ый в России бизнес-тренинг по чат-ботам (выжимка)1-ый в России бизнес-тренинг по чат-ботам (выжимка)
1-ый в России бизнес-тренинг по чат-ботам (выжимка)chatbotscommunity
 
How to find AI community meetups in Digital October
How to find AI community meetups in Digital OctoberHow to find AI community meetups in Digital October
How to find AI community meetups in Digital Octoberchatbotscommunity
 
Подход к разработке чат-ботов в wobot.me
Подход к разработке чат-ботов в wobot.meПодход к разработке чат-ботов в wobot.me
Подход к разработке чат-ботов в wobot.mechatbotscommunity
 
How to integrate chatbot into your business?
How to integrate chatbot into your business?How to integrate chatbot into your business?
How to integrate chatbot into your business?chatbotscommunity
 
SKOLKOVO.AI конференция 14 ноября 2016
SKOLKOVO.AI конференция 14 ноября 2016SKOLKOVO.AI конференция 14 ноября 2016
SKOLKOVO.AI конференция 14 ноября 2016Skolkovo Robotics Center
 
Chatbots Community Dynamics (1 month)
Chatbots Community Dynamics (1 month)Chatbots Community Dynamics (1 month)
Chatbots Community Dynamics (1 month)chatbotscommunity
 
Сергей Шумский. Дорожная карта развития направления нейроассистенты
Сергей Шумский. Дорожная карта развития направления нейроассистентыСергей Шумский. Дорожная карта развития направления нейроассистенты
Сергей Шумский. Дорожная карта развития направления нейроассистентыSkolkovo Robotics Center
 
Поиск частых множеств признаков (товаров) и ассоциативные правила
Поиск частых множеств признаков (товаров) и ассоциативные правилаПоиск частых множеств признаков (товаров) и ассоциативные правила
Поиск частых множеств признаков (товаров) и ассоциативные правилаDmitrii Ignatov
 

Viewers also liked (20)

#3 Global AI Meetup (NLP) - Михаил Бурцев, DeepHackLab
#3 Global AI Meetup (NLP) - Михаил Бурцев, DeepHackLab#3 Global AI Meetup (NLP) - Михаил Бурцев, DeepHackLab
#3 Global AI Meetup (NLP) - Михаил Бурцев, DeepHackLab
 
Chatbots Analytics - Медицина (Анна Науменко)
Chatbots Analytics - Медицина (Анна Науменко)Chatbots Analytics - Медицина (Анна Науменко)
Chatbots Analytics - Медицина (Анна Науменко)
 
Chatbots Meetup 16.04.2016 - Диалоговые движки (Осадченко Григорий)
Chatbots Meetup 16.04.2016 - Диалоговые движки (Осадченко Григорий)Chatbots Meetup 16.04.2016 - Диалоговые движки (Осадченко Григорий)
Chatbots Meetup 16.04.2016 - Диалоговые движки (Осадченко Григорий)
 
#1 Global Chatbots Meetup with @WomanSosBot
#1 Global Chatbots Meetup with @WomanSosBot#1 Global Chatbots Meetup with @WomanSosBot
#1 Global Chatbots Meetup with @WomanSosBot
 
#1 Global Chatbots Meetup with @my pokerbot
#1 Global Chatbots Meetup with @my pokerbot#1 Global Chatbots Meetup with @my pokerbot
#1 Global Chatbots Meetup with @my pokerbot
 
Chatbots Meetup 16.04.2016 - Чатботы в Битрикс24 (Кисляков Антон)
Chatbots Meetup 16.04.2016 - Чатботы в Битрикс24 (Кисляков Антон)Chatbots Meetup 16.04.2016 - Чатботы в Битрикс24 (Кисляков Антон)
Chatbots Meetup 16.04.2016 - Чатботы в Битрикс24 (Кисляков Антон)
 
Join #1 Global Chatbots Hackathon with Webinar.ru
Join #1 Global Chatbots Hackathon with Webinar.ruJoin #1 Global Chatbots Hackathon with Webinar.ru
Join #1 Global Chatbots Hackathon with Webinar.ru
 
Chatbots Сommunity 3 Months Dynamics
Chatbots Сommunity 3 Months DynamicsChatbots Сommunity 3 Months Dynamics
Chatbots Сommunity 3 Months Dynamics
 
Павел Доронин "9 грехов разработчиков чат-ботов" - EdHack
Павел Доронин "9 грехов разработчиков чат-ботов" - EdHackПавел Доронин "9 грехов разработчиков чат-ботов" - EdHack
Павел Доронин "9 грехов разработчиков чат-ботов" - EdHack
 
1-ый в России бизнес-тренинг по чат-ботам (выжимка)
1-ый в России бизнес-тренинг по чат-ботам (выжимка)1-ый в России бизнес-тренинг по чат-ботам (выжимка)
1-ый в России бизнес-тренинг по чат-ботам (выжимка)
 
How to find AI community meetups in Digital October
How to find AI community meetups in Digital OctoberHow to find AI community meetups in Digital October
How to find AI community meetups in Digital October
 
Подход к разработке чат-ботов в wobot.me
Подход к разработке чат-ботов в wobot.meПодход к разработке чат-ботов в wobot.me
Подход к разработке чат-ботов в wobot.me
 
How to integrate chatbot into your business?
How to integrate chatbot into your business?How to integrate chatbot into your business?
How to integrate chatbot into your business?
 
SKOLKOVO.AI конференция 14 ноября 2016
SKOLKOVO.AI конференция 14 ноября 2016SKOLKOVO.AI конференция 14 ноября 2016
SKOLKOVO.AI конференция 14 ноября 2016
 
Chatbots Community Dynamics (1 month)
Chatbots Community Dynamics (1 month)Chatbots Community Dynamics (1 month)
Chatbots Community Dynamics (1 month)
 
Сергей Шумский. Дорожная карта развития направления нейроассистенты
Сергей Шумский. Дорожная карта развития направления нейроассистентыСергей Шумский. Дорожная карта развития направления нейроассистенты
Сергей Шумский. Дорожная карта развития направления нейроассистенты
 
Eugene Khvedchenia - Image processing using FPGAs
Eugene Khvedchenia - Image processing using FPGAsEugene Khvedchenia - Image processing using FPGAs
Eugene Khvedchenia - Image processing using FPGAs
 
Taras Chaykivskyy - Computer Vision in Front-End
Taras Chaykivskyy - Computer Vision in Front-EndTaras Chaykivskyy - Computer Vision in Front-End
Taras Chaykivskyy - Computer Vision in Front-End
 
Andrii Babii - Application of fuzzy transform to image fusion
Andrii Babii - Application of fuzzy transform to image fusion Andrii Babii - Application of fuzzy transform to image fusion
Andrii Babii - Application of fuzzy transform to image fusion
 
Поиск частых множеств признаков (товаров) и ассоциативные правила
Поиск частых множеств признаков (товаров) и ассоциативные правилаПоиск частых множеств признаков (товаров) и ассоциативные правила
Поиск частых множеств признаков (товаров) и ассоциативные правила
 

Similar to #3 Global AI Meetup (NLP) - Олег Шляжко, Chatfuel

Natural Language Processing (NLP) with .NET for #dotnetby meetup-29
Natural Language Processing (NLP) with .NET for #dotnetby meetup-29Natural Language Processing (NLP) with .NET for #dotnetby meetup-29
Natural Language Processing (NLP) with .NET for #dotnetby meetup-29Sergey Tihon
 
Alfa Future People 2016 - Как «воспитать» из плохого бота хорошего помощника
Alfa Future People 2016 - Как «воспитать» из плохого бота хорошего помощникаAlfa Future People 2016 - Как «воспитать» из плохого бота хорошего помощника
Alfa Future People 2016 - Как «воспитать» из плохого бота хорошего помощникаMicrosoft
 
[Skolkovo Robotics 2015 Day 2] Владимир Веселов Bot and humans "Взаимодействи...
[Skolkovo Robotics 2015 Day 2] Владимир Веселов Bot and humans "Взаимодействи...[Skolkovo Robotics 2015 Day 2] Владимир Веселов Bot and humans "Взаимодействи...
[Skolkovo Robotics 2015 Day 2] Владимир Веселов Bot and humans "Взаимодействи...Skolkovo Robotics Center
 
Дмитрий Петренко. SEO трафик в конкурентных нишах под БУРЖ. Инструменты, мето...
Дмитрий Петренко. SEO трафик в конкурентных нишах под БУРЖ. Инструменты, мето...Дмитрий Петренко. SEO трафик в конкурентных нишах под БУРЖ. Инструменты, мето...
Дмитрий Петренко. SEO трафик в конкурентных нишах под БУРЖ. Инструменты, мето...DariaShalahinova
 
Собеседование как секс. Удовольствие должны получить обе стороны :)
Собеседование как секс. Удовольствие должны получить обе стороны :)Собеседование как секс. Удовольствие должны получить обе стороны :)
Собеседование как секс. Удовольствие должны получить обе стороны :)Viktoriya Pridatko
 
Seo коучинг 6.0 [пиксель плюс] - копирайтинг
Seo коучинг 6.0 [пиксель плюс] - копирайтингSeo коучинг 6.0 [пиксель плюс] - копирайтинг
Seo коучинг 6.0 [пиксель плюс] - копирайтингSergey Yurkov
 
ASO очень подробно
ASO очень подробноASO очень подробно
ASO очень подробноSergey Sharov
 
Текстовые факторы ранжирования: принцип работы ПС и практические инструкции
Текстовые факторы ранжирования: принцип работы ПС и практические инструкцииТекстовые факторы ранжирования: принцип работы ПС и практические инструкции
Текстовые факторы ранжирования: принцип работы ПС и практические инструкцииНарижный Денис
 
Конференция Cybermarketing 2015: SEO для iOS-приложений
Конференция Cybermarketing 2015: SEO для iOS-приложенийКонференция Cybermarketing 2015: SEO для iOS-приложений
Конференция Cybermarketing 2015: SEO для iOS-приложенийCybermarketing, Moscow
 
Пери Инновации - Боты машинное обучение и искусственный интеллект
Пери Инновации - Боты машинное обучение и искусственный интеллектПери Инновации - Боты машинное обучение и искусственный интеллект
Пери Инновации - Боты машинное обучение и искусственный интеллектMicrosoft
 
Текстовое ранжирование и тз на копирайтинг
Текстовое ранжирование и тз на копирайтингТекстовое ранжирование и тз на копирайтинг
Текстовое ранжирование и тз на копирайтингSergey Yurkov
 
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серыйVladislav Morgun
 
Интерпретация моделей машинного обучения
Интерпретация моделей машинного обученияИнтерпретация моделей машинного обучения
Интерпретация моделей машинного обученияДмитрий Колодезев
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java DeveloperOlexandra Dmytrenko
 
Эффективный IT рекрутинг гениев Реальности
Эффективный IT рекрутинг гениев РеальностиЭффективный IT рекрутинг гениев Реальности
Эффективный IT рекрутинг гениев РеальностиOlga Kotova
 
Aleksey borsch, 31 webinar
Aleksey borsch, 31 webinarAleksey borsch, 31 webinar
Aleksey borsch, 31 webinarSEMonline .Ru
 
Мастер-класс Сандлер наносемантикс
Мастер-класс Сандлер наносемантиксМастер-класс Сандлер наносемантикс
Мастер-класс Сандлер наносемантиксBank-Bot
 
Оптимизация страницы сайта в 2017 году
Оптимизация страницы сайта в 2017 годуОптимизация страницы сайта в 2017 году
Оптимизация страницы сайта в 2017 годуSEO-Интеллект
 

Similar to #3 Global AI Meetup (NLP) - Олег Шляжко, Chatfuel (20)

Natural Language Processing (NLP) with .NET for #dotnetby meetup-29
Natural Language Processing (NLP) with .NET for #dotnetby meetup-29Natural Language Processing (NLP) with .NET for #dotnetby meetup-29
Natural Language Processing (NLP) with .NET for #dotnetby meetup-29
 
Alfa Future People 2016 - Как «воспитать» из плохого бота хорошего помощника
Alfa Future People 2016 - Как «воспитать» из плохого бота хорошего помощникаAlfa Future People 2016 - Как «воспитать» из плохого бота хорошего помощника
Alfa Future People 2016 - Как «воспитать» из плохого бота хорошего помощника
 
Комплексный подход к SEO-копирайтингу в 2018 году
Комплексный подход к SEO-копирайтингу в 2018 году Комплексный подход к SEO-копирайтингу в 2018 году
Комплексный подход к SEO-копирайтингу в 2018 году
 
[Skolkovo Robotics 2015 Day 2] Владимир Веселов Bot and humans "Взаимодействи...
[Skolkovo Robotics 2015 Day 2] Владимир Веселов Bot and humans "Взаимодействи...[Skolkovo Robotics 2015 Day 2] Владимир Веселов Bot and humans "Взаимодействи...
[Skolkovo Robotics 2015 Day 2] Владимир Веселов Bot and humans "Взаимодействи...
 
Дмитрий Петренко. SEO трафик в конкурентных нишах под БУРЖ. Инструменты, мето...
Дмитрий Петренко. SEO трафик в конкурентных нишах под БУРЖ. Инструменты, мето...Дмитрий Петренко. SEO трафик в конкурентных нишах под БУРЖ. Инструменты, мето...
Дмитрий Петренко. SEO трафик в конкурентных нишах под БУРЖ. Инструменты, мето...
 
Как собирать и группировать семантику для контекстной рекламы в Key Collector
Как собирать и группировать семантику для контекстной рекламы в Key CollectorКак собирать и группировать семантику для контекстной рекламы в Key Collector
Как собирать и группировать семантику для контекстной рекламы в Key Collector
 
Собеседование как секс. Удовольствие должны получить обе стороны :)
Собеседование как секс. Удовольствие должны получить обе стороны :)Собеседование как секс. Удовольствие должны получить обе стороны :)
Собеседование как секс. Удовольствие должны получить обе стороны :)
 
Seo коучинг 6.0 [пиксель плюс] - копирайтинг
Seo коучинг 6.0 [пиксель плюс] - копирайтингSeo коучинг 6.0 [пиксель плюс] - копирайтинг
Seo коучинг 6.0 [пиксель плюс] - копирайтинг
 
ASO очень подробно
ASO очень подробноASO очень подробно
ASO очень подробно
 
Текстовые факторы ранжирования: принцип работы ПС и практические инструкции
Текстовые факторы ранжирования: принцип работы ПС и практические инструкцииТекстовые факторы ранжирования: принцип работы ПС и практические инструкции
Текстовые факторы ранжирования: принцип работы ПС и практические инструкции
 
Конференция Cybermarketing 2015: SEO для iOS-приложений
Конференция Cybermarketing 2015: SEO для iOS-приложенийКонференция Cybermarketing 2015: SEO для iOS-приложений
Конференция Cybermarketing 2015: SEO для iOS-приложений
 
Пери Инновации - Боты машинное обучение и искусственный интеллект
Пери Инновации - Боты машинное обучение и искусственный интеллектПери Инновации - Боты машинное обучение и искусственный интеллект
Пери Инновации - Боты машинное обучение и искусственный интеллект
 
Текстовое ранжирование и тз на копирайтинг
Текстовое ранжирование и тз на копирайтингТекстовое ранжирование и тз на копирайтинг
Текстовое ранжирование и тз на копирайтинг
 
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый
 
Интерпретация моделей машинного обучения
Интерпретация моделей машинного обученияИнтерпретация моделей машинного обучения
Интерпретация моделей машинного обучения
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java Developer
 
Эффективный IT рекрутинг гениев Реальности
Эффективный IT рекрутинг гениев РеальностиЭффективный IT рекрутинг гениев Реальности
Эффективный IT рекрутинг гениев Реальности
 
Aleksey borsch, 31 webinar
Aleksey borsch, 31 webinarAleksey borsch, 31 webinar
Aleksey borsch, 31 webinar
 
Мастер-класс Сандлер наносемантикс
Мастер-класс Сандлер наносемантиксМастер-класс Сандлер наносемантикс
Мастер-класс Сандлер наносемантикс
 
Оптимизация страницы сайта в 2017 году
Оптимизация страницы сайта в 2017 годуОптимизация страницы сайта в 2017 году
Оптимизация страницы сайта в 2017 году
 

More from chatbotscommunity

Александр Савостьянов "Чат-боты в образовании" - EdHack
Александр Савостьянов "Чат-боты в образовании" - EdHackАлександр Савостьянов "Чат-боты в образовании" - EdHack
Александр Савостьянов "Чат-боты в образовании" - EdHackchatbotscommunity
 
Виктор Сафронов "Тематическое моделирование" - EdHack
Виктор Сафронов "Тематическое моделирование" - EdHackВиктор Сафронов "Тематическое моделирование" - EdHack
Виктор Сафронов "Тематическое моделирование" - EdHackchatbotscommunity
 
Александр Белоцерковский "Microsoft Bot Framework" - EdHack
Александр Белоцерковский "Microsoft Bot Framework" - EdHackАлександр Белоцерковский "Microsoft Bot Framework" - EdHack
Александр Белоцерковский "Microsoft Bot Framework" - EdHackchatbotscommunity
 
Артемий Малков "Суперметодики обучения" - EdHack
Артемий Малков "Суперметодики обучения" - EdHackАртемий Малков "Суперметодики обучения" - EdHack
Артемий Малков "Суперметодики обучения" - EdHackchatbotscommunity
 
Вводная хакатона - EdHack
Вводная хакатона - EdHackВводная хакатона - EdHack
Вводная хакатона - EdHackchatbotscommunity
 
Вводная Конференции - EdHack
Вводная Конференции - EdHackВводная Конференции - EdHack
Вводная Конференции - EdHackchatbotscommunity
 
Zoo - EdHack - Chatbots Community
Zoo - EdHack - Chatbots CommunityZoo - EdHack - Chatbots Community
Zoo - EdHack - Chatbots Communitychatbotscommunity
 
WaveRider - EdHack - Chatbots Community
WaveRider - EdHack - Chatbots CommunityWaveRider - EdHack - Chatbots Community
WaveRider - EdHack - Chatbots Communitychatbotscommunity
 
Symmetrical-potato - EdHack - Chatbots Community
Symmetrical-potato - EdHack - Chatbots CommunitySymmetrical-potato - EdHack - Chatbots Community
Symmetrical-potato - EdHack - Chatbots Communitychatbotscommunity
 
Spellobot - EdHack - Chatbots Community
Spellobot - EdHack - Chatbots CommunitySpellobot - EdHack - Chatbots Community
Spellobot - EdHack - Chatbots Communitychatbotscommunity
 
RSK-K161 - EdHack - Chatbots Community
RSK-K161 - EdHack - Chatbots CommunityRSK-K161 - EdHack - Chatbots Community
RSK-K161 - EdHack - Chatbots Communitychatbotscommunity
 
OleggBankBot - EdHack - Chatbots Community
OleggBankBot - EdHack - Chatbots CommunityOleggBankBot - EdHack - Chatbots Community
OleggBankBot - EdHack - Chatbots Communitychatbotscommunity
 
Meet & Language - EdHack - Chatbots Community
Meet & Language - EdHack - Chatbots CommunityMeet & Language - EdHack - Chatbots Community
Meet & Language - EdHack - Chatbots Communitychatbotscommunity
 
LPBots - EdHack - Chatbots Community
LPBots - EdHack - Chatbots CommunityLPBots - EdHack - Chatbots Community
LPBots - EdHack - Chatbots Communitychatbotscommunity
 
Life.Film - EdHack - Chatbots Community
Life.Film - EdHack - Chatbots CommunityLife.Film - EdHack - Chatbots Community
Life.Film - EdHack - Chatbots Communitychatbotscommunity
 
Lexi Bot - EdHack - Chatbots Community
Lexi Bot - EdHack - Chatbots CommunityLexi Bot - EdHack - Chatbots Community
Lexi Bot - EdHack - Chatbots Communitychatbotscommunity
 
IamZlatan - EdHack - Chatbots Community
IamZlatan - EdHack - Chatbots CommunityIamZlatan - EdHack - Chatbots Community
IamZlatan - EdHack - Chatbots Communitychatbotscommunity
 
Five Lakes - EdHack - Chatbots Community
Five Lakes - EdHack - Chatbots CommunityFive Lakes - EdHack - Chatbots Community
Five Lakes - EdHack - Chatbots Communitychatbotscommunity
 
Data Union - EdHack - Chatbots Community
Data Union - EdHack - Chatbots CommunityData Union - EdHack - Chatbots Community
Data Union - EdHack - Chatbots Communitychatbotscommunity
 

More from chatbotscommunity (20)

WaveRider - Misis Hackathon
WaveRider - Misis HackathonWaveRider - Misis Hackathon
WaveRider - Misis Hackathon
 
Александр Савостьянов "Чат-боты в образовании" - EdHack
Александр Савостьянов "Чат-боты в образовании" - EdHackАлександр Савостьянов "Чат-боты в образовании" - EdHack
Александр Савостьянов "Чат-боты в образовании" - EdHack
 
Виктор Сафронов "Тематическое моделирование" - EdHack
Виктор Сафронов "Тематическое моделирование" - EdHackВиктор Сафронов "Тематическое моделирование" - EdHack
Виктор Сафронов "Тематическое моделирование" - EdHack
 
Александр Белоцерковский "Microsoft Bot Framework" - EdHack
Александр Белоцерковский "Microsoft Bot Framework" - EdHackАлександр Белоцерковский "Microsoft Bot Framework" - EdHack
Александр Белоцерковский "Microsoft Bot Framework" - EdHack
 
Артемий Малков "Суперметодики обучения" - EdHack
Артемий Малков "Суперметодики обучения" - EdHackАртемий Малков "Суперметодики обучения" - EdHack
Артемий Малков "Суперметодики обучения" - EdHack
 
Вводная хакатона - EdHack
Вводная хакатона - EdHackВводная хакатона - EdHack
Вводная хакатона - EdHack
 
Вводная Конференции - EdHack
Вводная Конференции - EdHackВводная Конференции - EdHack
Вводная Конференции - EdHack
 
Zoo - EdHack - Chatbots Community
Zoo - EdHack - Chatbots CommunityZoo - EdHack - Chatbots Community
Zoo - EdHack - Chatbots Community
 
WaveRider - EdHack - Chatbots Community
WaveRider - EdHack - Chatbots CommunityWaveRider - EdHack - Chatbots Community
WaveRider - EdHack - Chatbots Community
 
Symmetrical-potato - EdHack - Chatbots Community
Symmetrical-potato - EdHack - Chatbots CommunitySymmetrical-potato - EdHack - Chatbots Community
Symmetrical-potato - EdHack - Chatbots Community
 
Spellobot - EdHack - Chatbots Community
Spellobot - EdHack - Chatbots CommunitySpellobot - EdHack - Chatbots Community
Spellobot - EdHack - Chatbots Community
 
RSK-K161 - EdHack - Chatbots Community
RSK-K161 - EdHack - Chatbots CommunityRSK-K161 - EdHack - Chatbots Community
RSK-K161 - EdHack - Chatbots Community
 
OleggBankBot - EdHack - Chatbots Community
OleggBankBot - EdHack - Chatbots CommunityOleggBankBot - EdHack - Chatbots Community
OleggBankBot - EdHack - Chatbots Community
 
Meet & Language - EdHack - Chatbots Community
Meet & Language - EdHack - Chatbots CommunityMeet & Language - EdHack - Chatbots Community
Meet & Language - EdHack - Chatbots Community
 
LPBots - EdHack - Chatbots Community
LPBots - EdHack - Chatbots CommunityLPBots - EdHack - Chatbots Community
LPBots - EdHack - Chatbots Community
 
Life.Film - EdHack - Chatbots Community
Life.Film - EdHack - Chatbots CommunityLife.Film - EdHack - Chatbots Community
Life.Film - EdHack - Chatbots Community
 
Lexi Bot - EdHack - Chatbots Community
Lexi Bot - EdHack - Chatbots CommunityLexi Bot - EdHack - Chatbots Community
Lexi Bot - EdHack - Chatbots Community
 
IamZlatan - EdHack - Chatbots Community
IamZlatan - EdHack - Chatbots CommunityIamZlatan - EdHack - Chatbots Community
IamZlatan - EdHack - Chatbots Community
 
Five Lakes - EdHack - Chatbots Community
Five Lakes - EdHack - Chatbots CommunityFive Lakes - EdHack - Chatbots Community
Five Lakes - EdHack - Chatbots Community
 
Data Union - EdHack - Chatbots Community
Data Union - EdHack - Chatbots CommunityData Union - EdHack - Chatbots Community
Data Union - EdHack - Chatbots Community
 

#3 Global AI Meetup (NLP) - Олег Шляжко, Chatfuel

  • 1. Как дать всю мощь NLP непрограммистам Олег Шляжко Chatfuel
  • 2. Intro ● Мы делаем платформу для создания ботов без программирования ● Для Facebook Messenger и Telegram ● Более 360 000 ботов, обслуживающих 17 000 000 пользователей ● С нами сотрудничают TechCrunch, Forbes, Uber, National Geographic ● Понятный и удобный NLP - наше важное преимущество 2
  • 3. Какой AI нужен ботам Что автор бота ожидает от платформы? 3
  • 4. Какой AI нужен чат-ботам? 1. Распознавание намерений пользователя 4
  • 5. Какой AI нужен чат-ботам? 2. Выделение фактов и данных из ответа пользователя NER - Named Entity Recognition 5
  • 6. Какой AI нужен чат- ботам? 3. “Человечность” бота, умение отвечать на простые и частые фразы 6
  • 9. Задача определения сходства фраз ● Совпадение фраз ● Фразы с грамматическими ошибками, опечатками ● Похожие по составу фразы ○ “Мне нужны последние новости” ○ “Покажите последние новости” ● Фразы, близкие по смыслу, семантическая близость ○ “Я хочу забронировать комнату” ○ “Я хочу сделать резерв номера” ○ “Могу я забронировать у вас апартаменты?” 9
  • 10. Простые случаи - совпадение, ошибки 1. Простое совпадение 2. Расстояние Левенштейна: Минимальное число операций для превращения одной строки в другую 10
  • 11. Похожие по составу фразы Расстояние Жаккара (Jaccard Distance) 11 A∩B A∪B A B
  • 12. Похожие по составу фразы TF-IDF (TF — term frequency, IDF — inverse document frequency). Мера важности слова в документе для каждого документа из коллекции. Основа всех современных поисковых систем. 12
  • 13. Похожие по составу фразы Преобразуем в векторы. Считаем косинусное расстояние между ними 13 фраза юзера интент 1 интент 2 TF-IDF вектор фразы вектор интента 1 вектор интента 2 θ
  • 14. Семантическая близость Word2vec — инструмент для расчета векторных представлений слов. Минимизация расстояний между векторами слов, встречающихся в одинаковых контекстах 14
  • 15. Семантическая близость 1. Преобразуем фразы в наборы векторов слов 2. Из каждого набора векторов формируем вектор фразы. Например, суммированием 3. Считаем косинусное расстояние между фразами Но word2vec выдает странные результаты в некоторых областях ○ similarity(love, hate) = 0.81 ○ similarity(love, care) = 0.65 15
  • 17. Применение на практике 1. Тестовый датасет a. Используем введенные авторами бота фразы ○ 70 англоязычных ботов с высокой посещаемостью, от 5 до 200 интентов в каждом b. Формируем позитивные и негативные пары фраза-интент ○ ~250 000 строк тестовых пар 2. Очистка данных a. Lowercase b. Удаление пунктуации, разделение на слова (токенизация) c. Фильтр стоп-слов, местоимений, обращений и т.п. 17
  • 18. Применение на практике 3. Комбинирование метрик a. Не используйте эвристики, используйте ML! b. Регрессия, на входе N метрик сходства пары фраз, на выходе оценка в интервале 0-1 c. Комбинируем регрессию и tf-idf для получения оценок сходства по интентам 4. Оценка качества классификатора a. Выбираем порог достоверности b. Регрессор + порог = бинарный классификатор c. Считаем precision & recall на тестовом датасете для каждого порога d. Исходя из требуемого precision находим оптимальный порог по max(recall) 18
  • 19. Применение на практике Превращаем модель в production сервис ● многопроцессный бэкенд на питоне ● word2vec в памяти, порядка 4 Gb на 1 модель ● кэшируем промежуточные метрики и сами оценки ● не храним интенты, получаем их в каждом запросе ● нагрузка 15-100 rps ● время ответа p50 - 20ms, p95 - 90ms 19
  • 21. Поддержка нескольких языков ● Всё описанное, кроме word2vec, работает для любого языка! ○ Пока мы можем разбить фразу на слова ● Word2vec модели можно обучить самому ○ https://code.google.com/archive/p/word2vec/ ● Нужен просто неразмеченный датасет ○ http://opus.lingfil.uu.se/OpenSubtitles2016.php 21
  • 22. Что дальше? ● Данные по state of the art ○ https://aclweb.org/aclwiki/index.php?title=Similarity_(State_of_the_art) ● Ежегодные соревнования SemEval ○ http://ixa2.si.ehu.es/stswiki/index.php/Main_Page ○ победитель 2016 https://www.aclweb.org/anthology/S/S16/S16-1089.pdf ● Более сложные семантические модели. DSSM, Sent2Vec ○ http://cs.stanford.edu/~quocle/paragraph_vector.pdf ○ http://research.microsoft.com/en-us/um/people/jfgao/paper/2013/cikm2013_DSSM_fullversion.pdf ○ https://github.com/airalcorn2/Deep-Semantic-Similarity-Model 22
  • 23. Спасибо за внимание! 23 Приходите к нам делать ботов для Facebook chatfuel.com