SlideShare a Scribd company logo
1 of 33
Download to read offline
Современные архитектуры
диалоговых систем
Анатолий Востряков, Segmento
Введение. Чего не будет в выступлении
● Архитектур, построенных на шаблонах или rule-based, семантических
сетях и онтологий
● Единственной лучшей архитектуры для построения диалоговых
систем или сильного искусственного интеллекта
● И даже исчерпывающего списка существующих архитектур
● Почти не будет reinforcement learning для обучения модели достигать
цели диалога
Введение. Что будет в выступлении
Достаточно полный охват современных архитектур* диалоговых систем до
сентября 2016 года, разбитый на три категории.
● Генерирующие ответ на запрос пользователя
● Выбирающие правильный ответ из фиксированного списка ответов
● Некоторая комбинация двух подходов
* под архитектурой понимается то, что находиться между входом и
выходом модели.
Введение. Виды диалогов
1. Вопросы-ответы:
Вопрос: Кто был директором фильма “Белый слон”?
Ответ: Пабло Траперо
2. Диалоги с целью (служба поддержки):
Пользователь: здравствуйте, скажите пожалуйста, я случайно перевел деньги не на тот счет
телефона (оплатил мобильную связь) можно ли как то вернуть деньги?
Оператор: здравствуйте! платеж совершали через наши сервисы?
Пользователь: да, через приложение
Оператор: оплата происходит моментально, к сожалению, отменить нельзя.
Пользователь: спасибо большое )
Оператор: пожалуйста. всего вам доброго! будут еще вопросы, обращайтесь!
3. Диалоги без цели (chit-chat):
MICHAEL: Hey there. Tired of breathing?
PATRICK: -- don't say shit like that to me. People can hear you.
MICHAEL: Sweet love, renew thy force!
PATRICK: You were right. She's still pissed.
PATRICK: No - I've got a sweet-paying job that I'm about to lose.
Введение. Переводим слова в числа
1. Bag-of-words для предложений
(1) John likes to watch movies. Mary likes movies too.
(2) John also likes to watch football games.
Словарь:
[ "John", "likes", "to", "watch", "movies", "also", "football", "games", "Mary", "too" ]
Bag-of-words для второго предложения: (2) [1, 1, 1, 1, 0, 1, 1, 1, 0, 0]
2. Векторные представления токенов (слов, подслов, символов),
например, предобученные с помощью GloVe или Word2Vec
likes = [0.1, -0.9, 0.33, 0.87, -0.7,....]
Введение. Рекуррентные нейронные сети
for t in T:
ht=tanh(Wh
ht−1
+Wx
xt
)
Wh, Wx - матрицы весов, которые являются частью параметров нейронной
сети.
ht−1
, xt
- вектора
Как пройти в булочную ?
Введение. LSTM block
Wf, Wi, Wc, Wo - матрицы весов, которые являются частью параметров
нейронной сети;
ht−1, xt и bf, bi, bc, bo - вектора;
Understanding LSTM Networks
Введение. GRU block
Wz, Wr, W - матрицы весов;
ht−1, Xt - вектора;
Введение. CNN
Серия лекций о CNN в применении к графике
Neural conversational Model + Code
Генерирующие архитектуры. Neural conversational model
или sequence-to-sequence
Yt = softmax(Wy
ht
+ by
) Loss = log p(T|S) = -1/|S| ∑log(Y)
Y∈S
Обучение состоит в минимизации loss-функции (categorical cross-entropy)
Потенциально могут генерировать ответы, которых не было при обучении.
Effective Approaches to Attention-based Neural Machine Translation
Генерирующие архитектуры. Neural conversational model with attention
ct = ∑at(s)hs
s∈S
softmax
Генерирующие архитектуры. Примеры диалогов
OpenSubtitles corpus:
Human: what is the purpose of life ?
Machine: to serve the greater good .
Human: what is the purpose of living ?
Machine: to live forever .
Human: what is the purpose of existence ?
Machine: to find out what happens when we get to
the planet earth .
Human: where are you now ?
Machine: i ’m in the middle of nowhere .
Human: what is the purpose of dying ?
Machine: to have a life .
Human: what is the purpose of being intelligent ?
Machine: to find out what it is .
Human: what is the purpose of emotions ?
Machine: i don ’t know .
IT Helpdesk Troubleshooting
Machine: hi , this is <NAME> from helpdesk
connect , what can i help you with today ?
Human: hi , i forgot my password
Machine: ok great
Human: can you tell me how i can recover it ?
Machine: i ’ ll need to verify who it is at that
machine
Machine: can we do a hangout
Machine: ?
Human: yes
Machine: <anonymized hangout instructions and
verifications>
Human: cool , i am good now
Machine: how ’ s this looking good ?
Machine: i ’ ll go ahead and close this chat .
Machine: take care . : )
Human: bye
Machine: bye .
Используется в production в Google Gmail Smart Reply и Google Allo Messaging app
Генерирующие архитектуры. Generative Hierarchical Neural Networks
Building End-To-End Dialogue Systems using Generative Hierarchical Neural Network Models
+ Code
Уровень
слов
Уровень
предложений
Последний hidden state каждого предложения на входе (уровень слов) идет на вход следующего слоя
- уровень предложений или контекста
Генерирующие архитектуры. Проблемы
● Необходимо много и очень много данных (>50 млн. диалогов).
Решение: предобучение вектор токенов и предобучение на любых человеческих диалогах на
выбранном языке. Даже предобучение на текстах, где первое предложение является запросом, а
следующее предложение ответом помогает улучшить качество.
● Модели вычислительно сложны и требуют мощных видеокарт и даже нескольких
компьютеров, объединенных в кластер при обучении. Даже в продакшн они требуют больших
усилий на оптимизацию скорости вычислений.
● Генерирующие модели склонны генерировать общие ответы, частично из-за loss-функции.
Например, при создании Smart reply от Google в начале модель чаще всего генерировала: “I
love you.”
● В момент тестирования модель может сгенерировать ошибочный токен и далее обычно
продолжает генерировать бред, так как в процессе обучения ей не встречались ошибки.
Есть несколько решений этой проблемы. Рассмотрим их по порядку.
При тестировании мы обычно максимизируем вероятность ответа, полученное с помощью Greedy
Search or Beam Search:
Но мы можем максимизировать Mutual Information (MMI). MI =
λ - hyper-parameter, который контролирует пенальти на генерацию общих ответов.
Генерирующие архитектуры. Улучшаем качество ответов с MMI
(1)
Заменив в (1)
Получим:
(2)
A Diversity-Promoting Objective Function for Neural Conversation Models
Генерирующие архитектуры. Улучшаем ответы с Reinforcement learning
Google’s Neural Machine Translation System
Мы начинаем с того, что мы максимизируем данную loss-функцию:
X - запрос или входная информация
Y - сгенерированный ответ или выход
N - кол-во запросов и ответов
Reinforcement learning loss-функция:
r - функция награды, например min( кол-во совпавших н-грамм , кол-во совпавших н-грамм )
кол-ву н-грамм у заданной цели (Y*) кол-ву н-грамм у сгенерированной цели (Y)
- Pθ(Y|X) - вероятность сгенерированной последовательности,
например, с помощью Beam Search. В статье генерируется 15 ответов
Финальная loss-функция (напоминает MMI на предыдущем слайде):
α - hyper-parameter
Генерирующие архитектуры. Улучшаем ответы с контекстом и CNN
Если нам повезло и наши диалоги разбиты на категории, то мы можем обучить отдельную модель для
предсказания категории по запросу (например, с использованием CNN):
Мы берем выход предпоследнего слоя в качестве вектора контекста “с”
Neural Contextual Conversation Learning with Labeled Question-Answering Pairs
Генерирующие архитектуры. Улучшаем ответы с контекстом и CNN
Есть много возможностей вставить полученный вектор контеста “c” в sequence-to-sequence model:
1. В декодер, как в Contextual LSTM:
2. В последний feedforward слой декодера перед выходом:
3. В attention mechanism:
Neural Contextual Conversation Learning with Labeled Question-Answering Pairs
Генерирующие архитектуры. Примеры диалогов с контекстом
Система стала генерировать более релевантные ответы и одновременно более устойчивой к запросам:
Human
Machine
I am thirsty, what do I do?
Drink water.
I am a bit thirsty, what do I do?
I x a bit thirsty, what do I do?
I come a bit thirsty, what do I do?
I China a bit thirsty, what do I do?
Drink more water.
I Beijing a bit thirsty, what do I do China?
Drink Wong Lo Kat. (a popular Chinese herbal tea drink)
butterfly I Beijing a bit thirsty, what do I do China?
Drink a bit water.
butterfly I Beijing a bit hungry, what do I do China?
Eat something.
butterfly in Beijing are there any what do I do China?
Yes there are (butterflies), in Beijing.
Neural Contextual Conversation Learning with Labeled Question-Answering Pairs
Выбираем ответ. Dual Encoders
Loss = log p(T|S) = -∑log(Y)
N
Y =
M - матрица весов (обучается)
Neural Contextual Conversation Learning with Labeled Question-Answering Pairs
Выбираем ответ. Memory Networks
Примеры данных:
Mary moved to the bathroom.
John went to the hallway.
Where is Mary? bathroom
Sandra travelled to the office.
Sandra went to the bathroom.
Where is Sandra? bathroom
Knowledge Base:
Shaolin Soccer written by Stephen Chow
Shaolin Soccer starred actors Stephen Chow
Shaolin Soccer release year 2001
I’m looking a fun comedy to watch tonight, any
ideas? Have you seen Shaolin Soccer?
Пользователь: здравствуйте , скажите
пожалуйста , я случайно перевел деньги не на
тот счет телефона ( оплатил мобильную
связь ) можно ли как то вернуть деньги ?
Оператор: здравствуйте ! платеж совершали
через наши сервисы ?
Пользователь: да , через приложение
Оператор: оплата происходит
моментально , к сожалению , отменить
нельзя.
Выбираем ответ. Memory Networks
u = Bq; mi
= Axi
; p = Softmax(uT
mi
) ∀i
ci
= Cxi
;
A, B, C (V x d); W (d x V) - матрицы с обучаемыми весами;
uk+1
=R (uk
+ok
)
R - матрица d x d
End-to-end Memory Networks + code
Выбираем ответ. Key-Value Memory Networks
Key Addressing: ph
=Softmax(AΦX
(x)·AΦK
(ki)), ∀i ; Value Reading:
Output:
A,B (V x d) - матрицы с обучаемыми весами; ΦX and ΦY - bag-of-words;
Key-Value Memory Networks for Directly Reading Documents
Может быть H (hops)
чтений из памяти:
qh = Rh(qh-1
+o)
Выбираем ответ. Варианты кодирования Key-Value
● Knowledge base triple: subject relation object, например: Blade Runner directed_by Ridley Scott
А также, наоборот: Ridley Scott !directed_by Blade Runner
● Window Level: текст разбивается на кусочки (окна) фиксированного размера, у которых в
середине стоит какая-то сущность. В ключ кодируется всё окно текста с помощью
bag-of-words, в качестве значения берется только сущность в середине:
“Blade Runner is a 1982 American neo-noir dystopian science fiction film directed by Ridley Scott and
starring Harrison Ford, Rutger Hauer, Sean Young, and Edward James Olmos.“
● Window + Title статьи: как и раньше ключ - это кусочек текста вокруг сущности, ответ - это
заголовок документа.
● И т.д.
Выбираем ответ. Преимущества Memory Networks
● Достаточно нескольких тысяч примеров для обучения
● Достаточно быстро обучать при использовании bag-of-words. Можно обучать даже без GPU.
● Ответы могут быть какой угодно длины и сложности. Нет проблем с генерацией
грамматически или стилистически некорректных ответов, как у генерирующих систем
Комбинируем. Dynamic Memory Network
Ask Me Anything: Dynamic Memory Networks for Natural Language Processing + code на lasagne
Во всех блоках используется RNN с GRU.
Комбинируем. Dynamic Memory Network
Sn - последний hidden state каждого
предложения
q - последний hidden state
предложения вопроса
Выходной модуль c GRU:
Attention Mechanism в виде гейтов,
реализованный как двухслойная feedforward
network: Episodic memory module (GRU):
Комбинируем. Differential Neural Computer
Differential Neural Computer (DNC) + code на chainer
t
Controller - многослойная LSTM c
residual connections между
слоями L. На входе:
На каждый шаг t:
На выходе:
Разбиваем вектор интерфейса “кси” на
подвектора:
Комбинируем. “Гиппокамп” в Differential Neural Computer
Несколько головок чтения из
памяти:
Запись в память:
Кодирование весов чтения и записи wr
ww
включает в себя Content-based addressing:
И Dynamic memory allocation (с учетом использования ячеек памяти) и Temporal memory linkage
E is an N × W matrix of ones
Комбинируем. Differential Neural Computer
Комбинируем. Формат данных для Differential Neural Computer
На вход подается склеенная последовательность из истории, самого вопроса и прочерка вместо
ответа. Все отдельные истории склеены в одну непрерывную последовательность:
mary journeyed to the kitchen. mary moved to the bedroom. john went
back to the hallway. john picked up the milk there. what is john carrying ?
- john travelled to the garden. john journeyed to the bedroom. what is john
carrying ? - mary travelled to the bathroom. john took the apple there. what
is john carrying ? - -
The answers required at the ‘−’ symbols, grouped by question into braces, are
{milk}, {milk}, {milk apple}
The network was trained to minimize the cross-entropy of the softmax outputs
with respect to the target words; the outputs during time-steps when no target was
present were ignored.
Преимущества: хотя и вычислительно сложны, не требовательны к объему
данных, потенциально даже могут дообучаться на новый ответ с одного примера
(one-shot learning)
Направления развития диалоговых архитектур
● улучшение использования памяти и в целом знаний об окружающем мире или предметной
области при генерации/выборе ответов
● интеграция классических подходов в NLP с Deep Learning архитектурами: парсеры,
information extraction, topic modeling, онтологии, семантические сети
● Reinforcement Learning для обучения системы достигать целей диалога
Спасибо за внимание!
Mycontacts:
vostryakov@segmento.ru
AnatolyVostryakovatlinkedin

More Related Content

What's hot

Дмитрий Кручинин - Сравнительный анализ библиотек глубинного обучения
Дмитрий Кручинин - Сравнительный анализ библиотек глубинного обученияДмитрий Кручинин - Сравнительный анализ библиотек глубинного обучения
Дмитрий Кручинин - Сравнительный анализ библиотек глубинного обучения
AIST
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoF
Dmitry Buzdin
 
Лекция 3: Векторизация кода (Code vectorization, SIMD, SSE, AVX)
Лекция 3: Векторизация кода (Code vectorization, SIMD, SSE, AVX)Лекция 3: Векторизация кода (Code vectorization, SIMD, SSE, AVX)
Лекция 3: Векторизация кода (Code vectorization, SIMD, SSE, AVX)
Mikhail Kurnosov
 

What's hot (19)

Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?
 
Введение в машинное обучение
Введение в машинное обучениеВведение в машинное обучение
Введение в машинное обучение
 
Параллельное программирование на современных видеокартах
Параллельное программирование на современных видеокартахПараллельное программирование на современных видеокартах
Параллельное программирование на современных видеокартах
 
Deep Learning and Convolutional Networks
Deep Learning and Convolutional NetworksDeep Learning and Convolutional Networks
Deep Learning and Convolutional Networks
 
Дмитрий Кручинин - Сравнительный анализ библиотек глубинного обучения
Дмитрий Кручинин - Сравнительный анализ библиотек глубинного обученияДмитрий Кручинин - Сравнительный анализ библиотек глубинного обучения
Дмитрий Кручинин - Сравнительный анализ библиотек глубинного обучения
 
Sequence prediction with TensorFlow
Sequence prediction with TensorFlowSequence prediction with TensorFlow
Sequence prediction with TensorFlow
 
CUDA & CAFFE
CUDA & CAFFE CUDA & CAFFE
CUDA & CAFFE
 
Нейронные сети в высокопроизводительных вычислениях
Нейронные сети в высокопроизводительных вычисленияхНейронные сети в высокопроизводительных вычислениях
Нейронные сети в высокопроизводительных вычислениях
 
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCVМАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoF
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
 
Александр Сербул, «1С-Битрикс»: Нейросети для бизнеса - в crm, в маркетинге, ...
Александр Сербул, «1С-Битрикс»: Нейросети для бизнеса - в crm, в маркетинге, ...Александр Сербул, «1С-Битрикс»: Нейросети для бизнеса - в crm, в маркетинге, ...
Александр Сербул, «1С-Битрикс»: Нейросети для бизнеса - в crm, в маркетинге, ...
 
CUDA Course 2010 at MSU
CUDA Course 2010 at MSUCUDA Course 2010 at MSU
CUDA Course 2010 at MSU
 
Number 12
Number 12Number 12
Number 12
 
Лекция 3: Векторизация кода (Code vectorization, SIMD, SSE, AVX)
Лекция 3: Векторизация кода (Code vectorization, SIMD, SSE, AVX)Лекция 3: Векторизация кода (Code vectorization, SIMD, SSE, AVX)
Лекция 3: Векторизация кода (Code vectorization, SIMD, SSE, AVX)
 
Поиск нечетких дубликатов видео
Поиск нечетких дубликатов видеоПоиск нечетких дубликатов видео
Поиск нечетких дубликатов видео
 
Tbb лр1
Tbb   лр1Tbb   лр1
Tbb лр1
 
Цифровая микроэлектроника для математиков и программистов 2017
Цифровая микроэлектроника для математиков и программистов 2017Цифровая микроэлектроника для математиков и программистов 2017
Цифровая микроэлектроника для математиков и программистов 2017
 
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
 

Viewers also liked

Нейронные сети: практическое применение / Наталия Ефремова (NTechLab)
Нейронные сети: практическое применение / Наталия Ефремова (NTechLab)Нейронные сети: практическое применение / Наталия Ефремова (NTechLab)
Нейронные сети: практическое применение / Наталия Ефремова (NTechLab)
Ontico
 
Нейронные сети на страже индустриальной кибербезопасности / Павел Филонов (Ла...
Нейронные сети на страже индустриальной кибербезопасности / Павел Филонов (Ла...Нейронные сети на страже индустриальной кибербезопасности / Павел Филонов (Ла...
Нейронные сети на страже индустриальной кибербезопасности / Павел Филонов (Ла...
Ontico
 
Балансировка нагрузки и отказоустойчивость в Одноклассниках
Балансировка нагрузки и отказоустойчивость в ОдноклассникахБалансировка нагрузки и отказоустойчивость в Одноклассниках
Балансировка нагрузки и отказоустойчивость в Одноклассниках
Ontico
 
Быстрое прототипирование бэкенда игры с геолокацией на OpenResty, Redis и Doc...
Быстрое прототипирование бэкенда игры с геолокацией на OpenResty, Redis и Doc...Быстрое прототипирование бэкенда игры с геолокацией на OpenResty, Redis и Doc...
Быстрое прототипирование бэкенда игры с геолокацией на OpenResty, Redis и Doc...
Ontico
 
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Ontico
 
Адаптивная оптимизация запросов в реляционных СУБД / Олег Иванов (Postgres Pr...
Адаптивная оптимизация запросов в реляционных СУБД / Олег Иванов (Postgres Pr...Адаптивная оптимизация запросов в реляционных СУБД / Олег Иванов (Postgres Pr...
Адаптивная оптимизация запросов в реляционных СУБД / Олег Иванов (Postgres Pr...
Ontico
 
Поиск совпадений и дедупликация в потоке / Леонид Юрьев (Positive Technologies)
Поиск совпадений и дедупликация в потоке / Леонид Юрьев (Positive Technologies)Поиск совпадений и дедупликация в потоке / Леонид Юрьев (Positive Technologies)
Поиск совпадений и дедупликация в потоке / Леонид Юрьев (Positive Technologies)
Ontico
 
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Ontico
 
Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)
Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)
Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)
Ontico
 
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Ontico
 

Viewers also liked (20)

Нейронные сети: практическое применение / Наталия Ефремова (NTechLab)
Нейронные сети: практическое применение / Наталия Ефремова (NTechLab)Нейронные сети: практическое применение / Наталия Ефремова (NTechLab)
Нейронные сети: практическое применение / Наталия Ефремова (NTechLab)
 
Введение в архитектуры нейронных сетей / Григорий Сапунов (Intento)
Введение в архитектуры нейронных сетей / Григорий Сапунов (Intento)Введение в архитектуры нейронных сетей / Григорий Сапунов (Intento)
Введение в архитектуры нейронных сетей / Григорий Сапунов (Intento)
 
Highload на GPU, опыт Vinci / Олег Илларионов (ВКонтакте)
Highload на GPU, опыт Vinci / Олег Илларионов (ВКонтакте)Highload на GPU, опыт Vinci / Олег Илларионов (ВКонтакте)
Highload на GPU, опыт Vinci / Олег Илларионов (ВКонтакте)
 
Нейронные сети на страже индустриальной кибербезопасности / Павел Филонов (Ла...
Нейронные сети на страже индустриальной кибербезопасности / Павел Филонов (Ла...Нейронные сети на страже индустриальной кибербезопасности / Павел Филонов (Ла...
Нейронные сети на страже индустриальной кибербезопасности / Павел Филонов (Ла...
 
Балансировка нагрузки и отказоустойчивость в Одноклассниках
Балансировка нагрузки и отказоустойчивость в ОдноклассникахБалансировка нагрузки и отказоустойчивость в Одноклассниках
Балансировка нагрузки и отказоустойчивость в Одноклассниках
 
Высокопроизводительный инференс глубоких сетей на GPU с помощью TensorRT / Ма...
Высокопроизводительный инференс глубоких сетей на GPU с помощью TensorRT / Ма...Высокопроизводительный инференс глубоких сетей на GPU с помощью TensorRT / Ма...
Высокопроизводительный инференс глубоких сетей на GPU с помощью TensorRT / Ма...
 
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
 
Быстрое прототипирование бэкенда игры с геолокацией на OpenResty, Redis и Doc...
Быстрое прототипирование бэкенда игры с геолокацией на OpenResty, Redis и Doc...Быстрое прототипирование бэкенда игры с геолокацией на OpenResty, Redis и Doc...
Быстрое прототипирование бэкенда игры с геолокацией на OpenResty, Redis и Doc...
 
Красиво и не тормозит! Анимация без ущерба для производительности приложений ...
Красиво и не тормозит! Анимация без ущерба для производительности приложений ...Красиво и не тормозит! Анимация без ущерба для производительности приложений ...
Красиво и не тормозит! Анимация без ущерба для производительности приложений ...
 
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
 
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт... Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 
Пользователь точно оценит! Повышение производительности мобильных приложений ...
Пользователь точно оценит! Повышение производительности мобильных приложений ...Пользователь точно оценит! Повышение производительности мобильных приложений ...
Пользователь точно оценит! Повышение производительности мобильных приложений ...
 
Архитектура и алгоритмы для индексации всей музыки ВКонтакте / Алексей Акулов...
Архитектура и алгоритмы для индексации всей музыки ВКонтакте / Алексей Акулов...Архитектура и алгоритмы для индексации всей музыки ВКонтакте / Алексей Акулов...
Архитектура и алгоритмы для индексации всей музыки ВКонтакте / Алексей Акулов...
 
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
 
Адаптивная оптимизация запросов в реляционных СУБД / Олег Иванов (Postgres Pr...
Адаптивная оптимизация запросов в реляционных СУБД / Олег Иванов (Postgres Pr...Адаптивная оптимизация запросов в реляционных СУБД / Олег Иванов (Postgres Pr...
Адаптивная оптимизация запросов в реляционных СУБД / Олег Иванов (Postgres Pr...
 
Поиск совпадений и дедупликация в потоке / Леонид Юрьев (Positive Technologies)
Поиск совпадений и дедупликация в потоке / Леонид Юрьев (Positive Technologies)Поиск совпадений и дедупликация в потоке / Леонид Юрьев (Positive Technologies)
Поиск совпадений и дедупликация в потоке / Леонид Юрьев (Positive Technologies)
 
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
 
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
 
Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)
Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)
Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)
 
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
 

Similar to Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)

лекция1
лекция1лекция1
лекция1
shagore
 
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1
Technopark
 
Язык программирования Scala / Владимир Успенский (TCS Bank)
Язык программирования Scala / Владимир Успенский (TCS Bank)Язык программирования Scala / Владимир Успенский (TCS Bank)
Язык программирования Scala / Владимир Успенский (TCS Bank)
Ontico
 
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art) DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
it-people
 
Михаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделированиеМихаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделирование
Lidia Pivovarova
 
20100927 28 reqformalization-kuliamin
20100927 28 reqformalization-kuliamin20100927 28 reqformalization-kuliamin
20100927 28 reqformalization-kuliamin
Computer Science Club
 
Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013
ScalaNsk
 
04 net saturday eugene sukhikh ''the basic performance questions''
04 net saturday eugene sukhikh ''the basic performance questions''04 net saturday eugene sukhikh ''the basic performance questions''
04 net saturday eugene sukhikh ''the basic performance questions''
DneprCiklumEvents
 
04 net saturday eugene sukhikh ''the basic performance questions''
04 net saturday eugene sukhikh ''the basic performance questions''04 net saturday eugene sukhikh ''the basic performance questions''
04 net saturday eugene sukhikh ''the basic performance questions''
DneprCiklumEvents
 

Similar to Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento) (20)

Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...
Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...
Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...
 
Methods for building dialog agents and the technologies we used
Methods for building dialog agents and the technologies we used Methods for building dialog agents and the technologies we used
Methods for building dialog agents and the technologies we used
 
Новые технологии в поисковом ранжировании
Новые технологии в поисковом ранжированииНовые технологии в поисковом ранжировании
Новые технологии в поисковом ранжировании
 
Введение в машинное обучение
Введение в машинное обучение Введение в машинное обучение
Введение в машинное обучение
 
Дмитрий Сошников Искусственный интеллект и нейросети для .NET-разработчиков
Дмитрий Сошников    Искусственный интеллект и нейросети для .NET-разработчиковДмитрий Сошников    Искусственный интеллект и нейросети для .NET-разработчиков
Дмитрий Сошников Искусственный интеллект и нейросети для .NET-разработчиков
 
лекция1
лекция1лекция1
лекция1
 
Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках сереб...
Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках сереб...Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках сереб...
Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках сереб...
 
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1
 
Язык программирования Scala / Владимир Успенский (TCS Bank)
Язык программирования Scala / Владимир Успенский (TCS Bank)Язык программирования Scala / Владимир Успенский (TCS Bank)
Язык программирования Scala / Владимир Успенский (TCS Bank)
 
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art) DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
 
Сверточные нейронные сети
Сверточные нейронные сетиСверточные нейронные сети
Сверточные нейронные сети
 
Михаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделированиеМихаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделирование
 
20100927 28 reqformalization-kuliamin
20100927 28 reqformalization-kuliamin20100927 28 reqformalization-kuliamin
20100927 28 reqformalization-kuliamin
 
Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013
 
04 net saturday eugene sukhikh ''the basic performance questions''
04 net saturday eugene sukhikh ''the basic performance questions''04 net saturday eugene sukhikh ''the basic performance questions''
04 net saturday eugene sukhikh ''the basic performance questions''
 
04 net saturday eugene sukhikh ''the basic performance questions''
04 net saturday eugene sukhikh ''the basic performance questions''04 net saturday eugene sukhikh ''the basic performance questions''
04 net saturday eugene sukhikh ''the basic performance questions''
 
Machine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий ЛапинMachine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий Лапин
 
Типы данных
Типы данныхТипы данных
Типы данных
 
Как и зачем можно создать DSL на Python
Как и зачем можно создать DSL на PythonКак и зачем можно создать DSL на Python
Как и зачем можно создать DSL на Python
 
Рекурсия. Поиск
Рекурсия. ПоискРекурсия. Поиск
Рекурсия. Поиск
 

More from Ontico

Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Ontico
 

More from Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)

  • 2. Введение. Чего не будет в выступлении ● Архитектур, построенных на шаблонах или rule-based, семантических сетях и онтологий ● Единственной лучшей архитектуры для построения диалоговых систем или сильного искусственного интеллекта ● И даже исчерпывающего списка существующих архитектур ● Почти не будет reinforcement learning для обучения модели достигать цели диалога
  • 3. Введение. Что будет в выступлении Достаточно полный охват современных архитектур* диалоговых систем до сентября 2016 года, разбитый на три категории. ● Генерирующие ответ на запрос пользователя ● Выбирающие правильный ответ из фиксированного списка ответов ● Некоторая комбинация двух подходов * под архитектурой понимается то, что находиться между входом и выходом модели.
  • 4. Введение. Виды диалогов 1. Вопросы-ответы: Вопрос: Кто был директором фильма “Белый слон”? Ответ: Пабло Траперо 2. Диалоги с целью (служба поддержки): Пользователь: здравствуйте, скажите пожалуйста, я случайно перевел деньги не на тот счет телефона (оплатил мобильную связь) можно ли как то вернуть деньги? Оператор: здравствуйте! платеж совершали через наши сервисы? Пользователь: да, через приложение Оператор: оплата происходит моментально, к сожалению, отменить нельзя. Пользователь: спасибо большое ) Оператор: пожалуйста. всего вам доброго! будут еще вопросы, обращайтесь! 3. Диалоги без цели (chit-chat): MICHAEL: Hey there. Tired of breathing? PATRICK: -- don't say shit like that to me. People can hear you. MICHAEL: Sweet love, renew thy force! PATRICK: You were right. She's still pissed. PATRICK: No - I've got a sweet-paying job that I'm about to lose.
  • 5. Введение. Переводим слова в числа 1. Bag-of-words для предложений (1) John likes to watch movies. Mary likes movies too. (2) John also likes to watch football games. Словарь: [ "John", "likes", "to", "watch", "movies", "also", "football", "games", "Mary", "too" ] Bag-of-words для второго предложения: (2) [1, 1, 1, 1, 0, 1, 1, 1, 0, 0] 2. Векторные представления токенов (слов, подслов, символов), например, предобученные с помощью GloVe или Word2Vec likes = [0.1, -0.9, 0.33, 0.87, -0.7,....]
  • 6. Введение. Рекуррентные нейронные сети for t in T: ht=tanh(Wh ht−1 +Wx xt ) Wh, Wx - матрицы весов, которые являются частью параметров нейронной сети. ht−1 , xt - вектора Как пройти в булочную ?
  • 7. Введение. LSTM block Wf, Wi, Wc, Wo - матрицы весов, которые являются частью параметров нейронной сети; ht−1, xt и bf, bi, bc, bo - вектора; Understanding LSTM Networks
  • 8. Введение. GRU block Wz, Wr, W - матрицы весов; ht−1, Xt - вектора;
  • 9. Введение. CNN Серия лекций о CNN в применении к графике
  • 10. Neural conversational Model + Code Генерирующие архитектуры. Neural conversational model или sequence-to-sequence Yt = softmax(Wy ht + by ) Loss = log p(T|S) = -1/|S| ∑log(Y) Y∈S Обучение состоит в минимизации loss-функции (categorical cross-entropy) Потенциально могут генерировать ответы, которых не было при обучении.
  • 11. Effective Approaches to Attention-based Neural Machine Translation Генерирующие архитектуры. Neural conversational model with attention ct = ∑at(s)hs s∈S softmax
  • 12. Генерирующие архитектуры. Примеры диалогов OpenSubtitles corpus: Human: what is the purpose of life ? Machine: to serve the greater good . Human: what is the purpose of living ? Machine: to live forever . Human: what is the purpose of existence ? Machine: to find out what happens when we get to the planet earth . Human: where are you now ? Machine: i ’m in the middle of nowhere . Human: what is the purpose of dying ? Machine: to have a life . Human: what is the purpose of being intelligent ? Machine: to find out what it is . Human: what is the purpose of emotions ? Machine: i don ’t know . IT Helpdesk Troubleshooting Machine: hi , this is <NAME> from helpdesk connect , what can i help you with today ? Human: hi , i forgot my password Machine: ok great Human: can you tell me how i can recover it ? Machine: i ’ ll need to verify who it is at that machine Machine: can we do a hangout Machine: ? Human: yes Machine: <anonymized hangout instructions and verifications> Human: cool , i am good now Machine: how ’ s this looking good ? Machine: i ’ ll go ahead and close this chat . Machine: take care . : ) Human: bye Machine: bye . Используется в production в Google Gmail Smart Reply и Google Allo Messaging app
  • 13. Генерирующие архитектуры. Generative Hierarchical Neural Networks Building End-To-End Dialogue Systems using Generative Hierarchical Neural Network Models + Code Уровень слов Уровень предложений Последний hidden state каждого предложения на входе (уровень слов) идет на вход следующего слоя - уровень предложений или контекста
  • 14. Генерирующие архитектуры. Проблемы ● Необходимо много и очень много данных (>50 млн. диалогов). Решение: предобучение вектор токенов и предобучение на любых человеческих диалогах на выбранном языке. Даже предобучение на текстах, где первое предложение является запросом, а следующее предложение ответом помогает улучшить качество. ● Модели вычислительно сложны и требуют мощных видеокарт и даже нескольких компьютеров, объединенных в кластер при обучении. Даже в продакшн они требуют больших усилий на оптимизацию скорости вычислений. ● Генерирующие модели склонны генерировать общие ответы, частично из-за loss-функции. Например, при создании Smart reply от Google в начале модель чаще всего генерировала: “I love you.” ● В момент тестирования модель может сгенерировать ошибочный токен и далее обычно продолжает генерировать бред, так как в процессе обучения ей не встречались ошибки. Есть несколько решений этой проблемы. Рассмотрим их по порядку.
  • 15. При тестировании мы обычно максимизируем вероятность ответа, полученное с помощью Greedy Search or Beam Search: Но мы можем максимизировать Mutual Information (MMI). MI = λ - hyper-parameter, который контролирует пенальти на генерацию общих ответов. Генерирующие архитектуры. Улучшаем качество ответов с MMI (1) Заменив в (1) Получим: (2) A Diversity-Promoting Objective Function for Neural Conversation Models
  • 16. Генерирующие архитектуры. Улучшаем ответы с Reinforcement learning Google’s Neural Machine Translation System Мы начинаем с того, что мы максимизируем данную loss-функцию: X - запрос или входная информация Y - сгенерированный ответ или выход N - кол-во запросов и ответов Reinforcement learning loss-функция: r - функция награды, например min( кол-во совпавших н-грамм , кол-во совпавших н-грамм ) кол-ву н-грамм у заданной цели (Y*) кол-ву н-грамм у сгенерированной цели (Y) - Pθ(Y|X) - вероятность сгенерированной последовательности, например, с помощью Beam Search. В статье генерируется 15 ответов Финальная loss-функция (напоминает MMI на предыдущем слайде): α - hyper-parameter
  • 17. Генерирующие архитектуры. Улучшаем ответы с контекстом и CNN Если нам повезло и наши диалоги разбиты на категории, то мы можем обучить отдельную модель для предсказания категории по запросу (например, с использованием CNN): Мы берем выход предпоследнего слоя в качестве вектора контекста “с” Neural Contextual Conversation Learning with Labeled Question-Answering Pairs
  • 18. Генерирующие архитектуры. Улучшаем ответы с контекстом и CNN Есть много возможностей вставить полученный вектор контеста “c” в sequence-to-sequence model: 1. В декодер, как в Contextual LSTM: 2. В последний feedforward слой декодера перед выходом: 3. В attention mechanism: Neural Contextual Conversation Learning with Labeled Question-Answering Pairs
  • 19. Генерирующие архитектуры. Примеры диалогов с контекстом Система стала генерировать более релевантные ответы и одновременно более устойчивой к запросам: Human Machine I am thirsty, what do I do? Drink water. I am a bit thirsty, what do I do? I x a bit thirsty, what do I do? I come a bit thirsty, what do I do? I China a bit thirsty, what do I do? Drink more water. I Beijing a bit thirsty, what do I do China? Drink Wong Lo Kat. (a popular Chinese herbal tea drink) butterfly I Beijing a bit thirsty, what do I do China? Drink a bit water. butterfly I Beijing a bit hungry, what do I do China? Eat something. butterfly in Beijing are there any what do I do China? Yes there are (butterflies), in Beijing. Neural Contextual Conversation Learning with Labeled Question-Answering Pairs
  • 20. Выбираем ответ. Dual Encoders Loss = log p(T|S) = -∑log(Y) N Y = M - матрица весов (обучается) Neural Contextual Conversation Learning with Labeled Question-Answering Pairs
  • 21. Выбираем ответ. Memory Networks Примеры данных: Mary moved to the bathroom. John went to the hallway. Where is Mary? bathroom Sandra travelled to the office. Sandra went to the bathroom. Where is Sandra? bathroom Knowledge Base: Shaolin Soccer written by Stephen Chow Shaolin Soccer starred actors Stephen Chow Shaolin Soccer release year 2001 I’m looking a fun comedy to watch tonight, any ideas? Have you seen Shaolin Soccer? Пользователь: здравствуйте , скажите пожалуйста , я случайно перевел деньги не на тот счет телефона ( оплатил мобильную связь ) можно ли как то вернуть деньги ? Оператор: здравствуйте ! платеж совершали через наши сервисы ? Пользователь: да , через приложение Оператор: оплата происходит моментально , к сожалению , отменить нельзя.
  • 22. Выбираем ответ. Memory Networks u = Bq; mi = Axi ; p = Softmax(uT mi ) ∀i ci = Cxi ; A, B, C (V x d); W (d x V) - матрицы с обучаемыми весами; uk+1 =R (uk +ok ) R - матрица d x d End-to-end Memory Networks + code
  • 23. Выбираем ответ. Key-Value Memory Networks Key Addressing: ph =Softmax(AΦX (x)·AΦK (ki)), ∀i ; Value Reading: Output: A,B (V x d) - матрицы с обучаемыми весами; ΦX and ΦY - bag-of-words; Key-Value Memory Networks for Directly Reading Documents Может быть H (hops) чтений из памяти: qh = Rh(qh-1 +o)
  • 24. Выбираем ответ. Варианты кодирования Key-Value ● Knowledge base triple: subject relation object, например: Blade Runner directed_by Ridley Scott А также, наоборот: Ridley Scott !directed_by Blade Runner ● Window Level: текст разбивается на кусочки (окна) фиксированного размера, у которых в середине стоит какая-то сущность. В ключ кодируется всё окно текста с помощью bag-of-words, в качестве значения берется только сущность в середине: “Blade Runner is a 1982 American neo-noir dystopian science fiction film directed by Ridley Scott and starring Harrison Ford, Rutger Hauer, Sean Young, and Edward James Olmos.“ ● Window + Title статьи: как и раньше ключ - это кусочек текста вокруг сущности, ответ - это заголовок документа. ● И т.д.
  • 25. Выбираем ответ. Преимущества Memory Networks ● Достаточно нескольких тысяч примеров для обучения ● Достаточно быстро обучать при использовании bag-of-words. Можно обучать даже без GPU. ● Ответы могут быть какой угодно длины и сложности. Нет проблем с генерацией грамматически или стилистически некорректных ответов, как у генерирующих систем
  • 26. Комбинируем. Dynamic Memory Network Ask Me Anything: Dynamic Memory Networks for Natural Language Processing + code на lasagne Во всех блоках используется RNN с GRU.
  • 27. Комбинируем. Dynamic Memory Network Sn - последний hidden state каждого предложения q - последний hidden state предложения вопроса Выходной модуль c GRU: Attention Mechanism в виде гейтов, реализованный как двухслойная feedforward network: Episodic memory module (GRU):
  • 28. Комбинируем. Differential Neural Computer Differential Neural Computer (DNC) + code на chainer t Controller - многослойная LSTM c residual connections между слоями L. На входе: На каждый шаг t: На выходе: Разбиваем вектор интерфейса “кси” на подвектора:
  • 29. Комбинируем. “Гиппокамп” в Differential Neural Computer Несколько головок чтения из памяти: Запись в память: Кодирование весов чтения и записи wr ww включает в себя Content-based addressing: И Dynamic memory allocation (с учетом использования ячеек памяти) и Temporal memory linkage E is an N × W matrix of ones
  • 31. Комбинируем. Формат данных для Differential Neural Computer На вход подается склеенная последовательность из истории, самого вопроса и прочерка вместо ответа. Все отдельные истории склеены в одну непрерывную последовательность: mary journeyed to the kitchen. mary moved to the bedroom. john went back to the hallway. john picked up the milk there. what is john carrying ? - john travelled to the garden. john journeyed to the bedroom. what is john carrying ? - mary travelled to the bathroom. john took the apple there. what is john carrying ? - - The answers required at the ‘−’ symbols, grouped by question into braces, are {milk}, {milk}, {milk apple} The network was trained to minimize the cross-entropy of the softmax outputs with respect to the target words; the outputs during time-steps when no target was present were ignored. Преимущества: хотя и вычислительно сложны, не требовательны к объему данных, потенциально даже могут дообучаться на новый ответ с одного примера (one-shot learning)
  • 32. Направления развития диалоговых архитектур ● улучшение использования памяти и в целом знаний об окружающем мире или предметной области при генерации/выборе ответов ● интеграция классических подходов в NLP с Deep Learning архитектурами: парсеры, information extraction, topic modeling, онтологии, семантические сети ● Reinforcement Learning для обучения системы достигать целей диалога