В докладе я рассмотрю современные архитектуры диалоговых систем или чат-ботов. Неполный список архитектур влючает Dual Encoders, Neural Conversational Networks with and without context, Generative Hierarchical Neural Networks, Memory Networks and Dynamic Memory Networks. В том числе немного коснемся использования Reinofcement Learning в диалоговых системах. Вначале будет мягкое введение в Deep Learning for NLP для лучшего понимания представленных архитектур.
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
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 для обучения системы достигать целей диалога