deep learning v: рекуррентные сети and beyond
TRANSCRIPT
deep learning v: рекуррентные сети andbeyond
Сергей Николенко
НИУ ВШЭ − Санкт-Петербург8 декабря 2018 г.Random facts:
• 8 декабря 1660 г. женщина (то ли Маргарет Хьюз, то ли Анна Маршалл) впервые вышлана английскую сцену, в роли Дездемоны
• 8 декабря 1980 г. Марк Чепмен крикнул «Эй, мистер Леннон!», выстрелил пять раз(попал из них четыре), а затем уселся на асфальт под фонарём и стал читать «Надпропастью во ржи»; начиная с 2000, раз в два года Чепмен подаёт прошение опомиловании, и каждое (уже 10) неизменно отклоняют
• 8 декабря 1987 г. Рон Хекстолл из Philadelphia Flyers стал первым вратарём в историиNHL, который забил гол
• 8 декабря 1991 г. Ельцин, Кравчук и Шушкевич в Беловежской пуще подписалисоответствующее соглашение
• 8 декабря 2013 г. Metallica дала концерт в Антарктиде, став первой группой сконцертами на всех семи континентах
Рекуррентные нейронные сети
Последовательности
• Последовательности: текст, временные ряды, речь, музыка...• Есть разные виды задач, основанных напоследовательностях:
3
Последовательности
• Как применить к последовательности нейронную сеть?• Можно использовать скользящее окно:
3
Последовательности
• ...но ещё лучше будет сохранять какое-нибудь скрытоесостояние и обновлять его каждый раз.
• Это в точности идея рекуррентных нейронных сетей(recurrent neural networks, RNN).
3
Последовательности
• Но как теперь делать backpropagation? Получается, что вграфе вычислений теперь циклы:
𝑠𝑖 = ℎ(𝑥𝑖, 𝑥𝑖+1, 𝑥𝑖+2, 𝑠𝑖−1).
• Это же ужасно, и всё сломалось?..3
Последовательности
• ...да нет, конечно. Можно “развернуть” циклы обратно:
𝑦6 = 𝑓(𝑥3, 𝑥4, 𝑥5, 𝑠2) = 𝑓(𝑥3, 𝑥4, 𝑥5, ℎ(𝑥2, 𝑥3, 𝑥4, 𝑠1)) == 𝑓(𝑥3, 𝑥4, 𝑥5, ℎ(𝑥2, 𝑥3, 𝑥4, ℎ(𝑥1, 𝑥2, 𝑥3, 𝑠0))).
• Так что формально проблемы нет.• Но масса проблем в реальности: получается, чторекуррентная сеть – это такая очень глубокая сеть с кучейобщих весов...
3
Простая RNN
• “Простая” RNN:
4
Простая RNN
• Формально:
𝑎𝑡 = 𝑏 + 𝑊𝑠𝑡−1 + 𝑈𝑥𝑡,𝑠𝑡 = 𝑓(𝑎𝑡),𝑜𝑡 = 𝑐 + 𝑉 𝑠𝑡,𝑦𝑡 = ℎ(𝑜𝑡),
где 𝑓 – рекуррентная нелинейность, ℎ – функция выхода.
4
Двунаправленная RNN
• Иногда нужен контекст с обеих сторон:
5
Двунаправленная RNN
• Формально:
𝑠𝑡 = 𝜎 (𝑏 + 𝑊𝑠𝑡−1 + 𝑈𝑥𝑡) ,𝑠′
𝑡 = 𝜎 (𝑏′ + 𝑊 ′𝑠′𝑡+1 + 𝑈 ′𝑥𝑡) ,
𝑜𝑡 = 𝑐 + 𝑉 𝑠𝑡 + 𝑉 ′𝑠′𝑡,
𝑦𝑡 = ℎ (𝑜𝑡) .
• И это, конечно, обобщается на любой другой типконструкций.
5
Взрывающиеся градиенты
• Две проблемы:• взрывающиеся градиенты (exploding gradients);• затухающие градиенты (vanishing gradients).
• Надо каждый раз умножать на одну и ту же 𝑊 , и нормаградиента может расти или убывать экспоненциально.
• Взрывающиеся градиенты: надо каждый раз умножать на 𝑊 ,и норма градиента может расти экспоненциально.
• Что делать?
6
Взрывающиеся градиенты
• Да просто обрезать градиенты, ограничить сверху, чтобы неросли.
• Два варианта – ограничить общую норму или каждоезначение:
• sgd = optimizers.SGD(lr=0.01, clipnorm=1.)• sgd = optimizers.SGD(lr=0.01, clipvalue=.05)
6
Взрывающиеся градиенты
• (Pascanu et al., 2013) – вот что будет происходить:
6
Взрывающиеся градиенты
• Там же объясняется, откуда возьмутся такие перепады: естьточки бифуркации у RNN.
6
Карусель константной ошибки:LSTM и GRU
LSTM
• Затухающие градиенты: надо каждый раз умножать на 𝑊 .• Поэтому не получается долгосрочную память реализовать.
• А хочется. Что делать?..
8
LSTM
• Базовую идею мы уже видели в ResNet: надо сделать так,чтобы градиент проходил.
• В RNN это называется «карусель константной ошибки»(constant error carousel).
• Идея из середины 1990-х (Шмидхубер): давайте составлятьRNN из более сложных частей, в которых будет прямой путьдля градиентов, и память будет контролироваться явно.
8
LSTM
• LSTM (long short-term memory). “Ванильный” LSTM: 𝑐𝑡 –состояние ячейки памяти, ℎ𝑡 – скрытое состояние.
• Input gate и forget gate определяют, надо ли менять 𝑐𝑡 нанового кандидата в состояния ячейки.
8
LSTM
• Формально:
𝑐′𝑡 = tanh (𝑊𝑥𝑐𝑥𝑡 + 𝑊ℎ𝑐ℎ𝑡−1 + 𝑏𝑐′) candidate cell state
𝑖𝑡 = 𝜎 (𝑊𝑥𝑖𝑥𝑡 + 𝑊ℎ𝑖ℎ𝑡−1 + 𝑏𝑖) input gate𝑓𝑡 = 𝜎 (𝑊𝑥𝑓𝑥𝑡 + 𝑊ℎ𝑓ℎ𝑡−1 + 𝑏𝑓) forget gate𝑜𝑡 = 𝜎 (𝑊𝑥𝑜𝑥𝑡 + 𝑊ℎ𝑜ℎ𝑡−1 + 𝑏𝑜) output gate𝑐𝑡 = 𝑓𝑡 ⊙ 𝑐𝑡−1 + 𝑖𝑡 ⊙ 𝑐′
𝑡, cell stateℎ𝑡 = 𝑜𝑡 ⊙ tanh(𝑐𝑡) block output
• Так что LSTM может контролировать состояние ячейки припомощи скрытого состояния и весов.
• Например, если forget gate закрыт (𝑓𝑡 = 1), то получитсякарусель константной ошибки: 𝑐𝑡 = 𝑐𝑡−1 + 𝑖𝑡 ⊙ 𝑐′
𝑡, и𝜕𝑐𝑡
𝜕𝑐𝑡−1= 1.
• Важно инициализировать 𝑏𝑓 большим, чтобы forget gate былзакрыт поначалу.
8
LSTM
• LSTM был создан в середине 1990-х (Hochreiter andSchmidhuber, 1995; 1997).
• В полностью современной форме в (Gers, Schmidhuber, 2000).• Проблема: хотим управлять 𝑐, но гейты его не получают! Онивидят только ℎ𝑡−1, а это
ℎ𝑡−1 = 𝑜𝑡−1 ⊙ tanh(𝑐𝑡−1).
• Так что если output gate закрыт, то поведение LSTM вообщеот состояния ячейки не зависит.
• Нехорошо. Что делать?..
8
LSTM
• ...конечно, добавить ещё несколько матриц! (peepholes)
8
LSTM
• Формально:
𝑖𝑡 = 𝜎 (𝑊𝑥𝑖𝑥𝑡 + 𝑊ℎ𝑖ℎ𝑡−1 + 𝑊𝑝𝑖𝑐𝑡−1 + 𝑏𝑖)𝑓𝑡 = 𝜎 (𝑊𝑥𝑓𝑥𝑡 + 𝑊ℎ𝑓ℎ𝑡−1 + 𝑊𝑝𝑓𝑐𝑡−1 + 𝑏𝑓)𝑜𝑡 = 𝜎 (𝑊𝑥𝑜𝑥𝑡 + 𝑊ℎ𝑜ℎ𝑡−1 + 𝑊𝑝𝑜𝑐𝑡−1 + 𝑏𝑜)
• Видно, что тут есть огромное поле для вариантов LSTM:можно удалить любой гейт, любую замочную скважину,поменять функции активации...
• Как выбрать?
8
LSTM
• «LSTM: a Search Space Odyssey» (Greff et al., 2015).• Большое экспериментальное сравнение.• В честности, некоторые куда более простые архитектуры (безодного из гейтов!) не сильно проигрывали «ванильному»LSTM.
• И это приводит нас к...
8
GRU
• ...Gated Recurrent Units (GRU; Cho et al., 2014).• В GRU тоже есть прямой путь для градиентов, но проще.
9
GRU
• Формально:
𝑢𝑡 = 𝜎(𝑊𝑥𝑢𝑥𝑡 + 𝑊ℎ𝑢ℎ𝑡−1 + 𝑏𝑢)𝑟𝑡 = 𝜎(𝑊𝑥𝑟𝑥𝑡 + 𝑊ℎ𝑟ℎ𝑡−1 + 𝑏𝑟)ℎ′
𝑡 = tanh(𝑊𝑥ℎ′𝑥𝑡 + 𝑊ℎℎ′(𝑟𝑡 ⊙ ℎ𝑡−1))ℎ𝑡 = (1 − 𝑢𝑡) ⊙ ℎ′
𝑡 + 𝑢𝑡 ⊙ ℎ𝑡−1
• Теперь есть update gate и reset gate, нет разницы между 𝑐𝑡 иℎ𝑡.
• Меньше матриц (6, а не 8 или 11 с замочными скважинами),меньше весов, но только чуть хуже LSTM работает.
• Так что можно больше GRU поместить, и сеть станет лучше.
9
GRU
• Другие варианты тоже есть.• (Józefowicz, Zaremba, Sutskever, 2015): огромное сравнение,выращивали архитектуры эволюционными методами.
• Три новых интересных архитектуры; например:
9
Долгосрочная памятьв базовых RNN
SCRN
• Следующая идея о том, как добавить долгосрочную память.• Начнём опять с простой RNN:
𝑠𝑡 = 𝑓(𝑈𝑥𝑡 + 𝑊𝑠𝑡−1 + 𝑏), 𝑦𝑡 = ℎ(𝑈𝑠𝑡 + 𝑐).
• Проблема с градиентами в том, что мы умножаем на 𝑊 , иградиенты либо взрываются, либо затухают.
• Давайте вернёмся к истории RNN...
11
SCRN
• Сеть Джордана (середина 1980-х):
• Считается первой успешной RNN.
11
SCRN
• Сеть Элмана (Elman; конец 1980-х):
• Разница в том, что нейроны контекста 𝑐𝑡 получают входы соскрытого уровня, а не выходов.
• И нет никаких весов от предыдущих 𝑐𝑡−1! То есть весафиксированы и равны 1.
11
SCRN
• Это приводит к хорошим долгосрочным эффектам, потомучто нет нелинейности между последовательными шагами, икарусель константной ошибки получается по определению:
𝑐𝑡 = 𝑐𝑡−1 + 𝑈𝑥𝑡.
• Идея: можно зафиксировать градиенты, использовавединичную матрицу весов вместо обучаемой 𝑊 .
• Долгосрочная память тут есть... но обучать очень трудно,потому что градиенты надо возвращать к началупоследовательности.
11
SCRN
• (Mikolov et al., 2014): Structurally Constrained RecurrentNetwork (SCRN).
• Сочетание двух идей – 𝑠𝑡 с 𝑊 и 𝑐𝑡 с диагональной матрицейрекуррентных весов.
11
SCRN
• Формально:
𝑐𝑡 = (1 − 𝛼) 𝐴𝑥𝑡 + 𝛼𝑐𝑡−1,𝑠𝑡 = 𝑓(𝑃𝑐𝑡 + 𝑈𝑥𝑡 + 𝑊𝑠𝑡−1),𝑦𝑡 = ℎ(𝑉 𝑠𝑡 + 𝐵𝑠𝑡).
• SCRN – это просто обычный RNN, где 𝑠𝑡 и 𝑐𝑡 в одном векторе,и матрица рекуррентных весов имеет вид
𝑊 = (𝑅 𝑃0 𝛼𝐼) ,
11
Регуляризуем 𝑊
• Альтернатива: давайте просто регуляризуем 𝑊 так, чтобыdet 𝑊 = 1.
• Мягкая регуляризация (Pascanu et al., 2013):
Ω = ∑𝑘
Ω𝑘 = ∑𝑘
⎛⎜⎝
∥𝜕𝐸
𝜕𝑠𝑘+1
𝜕𝑠𝑘+1𝜕𝑠𝑘
𝜕𝐸𝜕𝑠𝑘+1
∥ − 1⎞⎟⎠
2
.
• Жёсткая регуляризация – сделаем 𝑊 автоматическиунитарной (Arjovsky et al., 2015):
𝑊 = 𝐷3𝑅2𝐹 −1𝐷2Π𝑅1𝐹𝐷1,
где 𝐷 – диагональные матрицы, 𝐹 – преобразование Фурье,𝑅 – отражения, Π – перестановка.
• Кстати, и параметров меньше: теперь только 𝑂(𝑛) вместо𝑂(𝑛2).
12
Инициализируем 𝑊
• И ещё более простой трюк: давайте правильноинициализируем 𝑊 (Le, Jaitly, Hinton, 2015).
• Рассмотрим RNN с ReLU-активациями на рекуррентных весах(перед ℎ).
• Тогда если 𝑊ℎℎ – единичная матрица и 𝑏ℎ = 0, скрытоесостояние не изменится, градиент протечёт насквозь.
• Давайте так и инициализируем! Часто приводит к серьёзнымулучшениям.
13
Варианты и трюки
RNN со связями на выходе
• Другой вариант RNN – можно развить идею Джордана исделать output-to-hidden связи:
15
RNN со связями на выходе
• Это хуже для моделирования долгосрочных зависимостей.• Но зато обучение очень простое: подставим вместо выходаправильный ответ!
• Teacher forcing: будем подставлять 𝑦𝑡 на каждом шаге,возвращая сеть на правильную траекторию.
15
RNN со связями на выходе
• А на самом деле это всего лишь максимизацияправдоподобия.
• RNN моделирует последовательность как
𝑝(𝑦1, 𝑦2, … , 𝑦𝑇 ) = 𝑝(𝑦1)𝑝(𝑦2 ∣ 𝑦1)𝑝(𝑦3 ∣ 𝑦1, 𝑦2) … 𝑝(𝑦𝑇 ∣ 𝑦𝑇 −1, … , 𝑦1).
• И если это раскрыть:
𝑝(𝑦1, 𝑦2 ∣ 𝑥1, 𝑥2) = 𝑝(𝑦2 ∣ 𝑦1, 𝑥1, 𝑥2)𝑝(𝑦1 ∣ 𝑥1, 𝑥2),
мы видим, что 𝑦1 надо подставить, чтобы перейти к 𝑦2 – это иесть teacher forcing.
• Если есть и output-to-hidden, и hidden-to-hidden, то можносовместить teacher forcing с BPTT.
15
RNN со связями на выходе
• Проблема: стоит учителю отвернуться, и сеть будет плохосебя вести. Ошибки накапливаются.
• (Lamb, Goyal et al., 2016): Professor Forcing на основеGAN-подобных идей (подробности позже).
15
Нормализация по уровню
• Вспомним batch normalization: очень хорошая штука, боретсясо сдвигом в переменных.
• Но применить batchnorm к RNN не получается:• теперь «уровень» – это шаг последовательности;• и получается, что веса общие, а статистики надо хранить поотдельности;
• плохо, если последовательности разной длины;• совсем плохо, если при применении будет длиннее, чем вобучающей выборке.
• Что делать?
16
Нормализация по уровню
• Нормализация по уровню (layer normalization; Ba, Kiros,Hinton, 2016): будем просто усреднять по одному уровню.
• Раньше было 𝑎𝑡 = 𝑊ℎℎℎ𝑡−1 + 𝑊𝑥ℎ𝑥𝑡.• Теперь будет
ℎ𝑡 = 𝑓 [ 𝑔𝜎𝑡
⊙ (𝑎𝑡 − 𝜇𝑡) + 𝑏] ,
где 𝜇𝑡 = 1𝐻
𝐻∑𝑖=1
𝜎𝑖𝑡, 𝜎𝑡 =√√√⎷
1𝐻
𝐻∑𝑖=1
(𝑎𝑖𝑡 − 𝜇𝑡)2,
а 𝑔 и 𝑏 — параметры слоя нормализации, как и раньше.• Это может заметно улучшить результаты рекуррентной сети.
16
Что делать с RNN на практике
Принципы
• RNN имеют довольно простую общую структуру: уровни LSTMили GRU.
• Все они выдают последовательность выходов, кроме,возможно, верхнего.
• Дропаут и batchnorm между слоями, а на рекуррентныхсвязях надо аккуратно (потом поговорим).
• Слоёв немного; больше 3-4 трудно, 7-8 сейчас максимум.
18
Принципы
• Важный трюк: skip-layer connections, как residual, толькопроще. Добавляем выходы предыдущих слоёв «через один»или «через два», просто конкатенацией.
• RNN, сохраняющие состояние: состояния с одногомини-батча переиспользуются как начальные дляследующего. Градиенты в BPTT останавливаются, носостояния остаются. В Keras легко: stateful=True.
• Начнём с простого примера анализа временных рядов...
18
Пример: порождение текста с RNN
• Языковые модели – это естественное прямое приложение кNLP.
• Первая идея – давайте просто обучим последовательностьслов через RNN/LSTM.
• О языке будем говорить позже, а пока любопытно, что можнообучить RNN порождать интересные последовательностидаже просто символ за символом.
• Karpathy, «The Unreasonable Effectiveness of Neural Networks»;знаменитый пример из (Sutskever et al. 2011):The meaning of life is the tradition of the ancient human reproduction: it is lessfavorable to the good boy for when to remove her bigger...
• Это, конечно, всего лишь эффекты краткосрочной памяти,никакого «понимания».
19
Simple LSTM-based architecture
20
Slightly less simple LSTM-based architecture
21
Порождение текста с RNN
• Можно менять diversity (температуру сэмплирования), получая разныеабсурдистские тексты. Случайный пример с seed «обещал, на рождество,но спустя семь лет. имя глав».
• Низкий diversity – монолог Лаки:
обещал, на рождество, но спустя семь лет. имя главного командования в составесоветского союза с 1976 года. после проведения в 1992 году в составе советскогосоюза (1977). в 1967 году в составе советского союза состоялся в 1952 году в составесоветско-финской войны 1877 - 1877 годов. в 1966 году в составе советского союзас 1965 года по 1977 год...
• Средний diversity – что-то более разумное:
обещал, на рождество, но спустя семь лет. имя главного рода собственно вновьобразовалась в россии и народном состоянии. после присказа с постановлениемсоюза писателей россии и генеральной диссертации о спортивном училище с 1980года. в 1970-х годах был основан в составе комитета высшего совета театра впольши. в 1957 - 1962 годах - начальник батальона сан-аухаров...
• Высокий diversity – хлебниковская заумь:
обещал, на рождество, но спустя семь лет. имя главы философии пововпели nol-lнози - врайу-7 на луосече. человеческая восстания покторов извоенного чомпдеи э. дроссенбурга, … карл уним-общекрипских. эйелем хфечак от этого спискасравнивала имущно моря в юнасториансический индристское носительскихженатов в церкви испании.... 22
Порождение текста с RNN
• Ещё пример – «12 стульев», 3 слоя LSTM размерности 128.
• Низкий diversity:
– вы думаете, что он подвергается опасности? не понимаете на девушки и со всегобольшого секретара. на поставитель из столики с колодции под собой по столовомпод нарипальное одного обедать вы получить стулья. но все не собирался. подводой под события не подошел к двери. он серебренной при столики под водомворобьяниновской порочение и подошел к стулом.
• Средний diversity:
– что это значит?– спросил ипполит матвеевич, вспоминая только подкладка,идиость выкрасть, что уже совершенно всего упасы, по рексе оборанный решалина ним ответственное колоно горячи облиганта ветерность ”правосудель” застояли пределицу и из одобрания из на порахнитостью. но кричался воему тогу.его не смотрел ордеров с мы толстений принимать выдержание то преходитель.
• Высокий diversity:
– ну, и я вы умоли полтуча,– сказал остап, нади гадалкий во столбор не черта ненадо предражало. ответил золотый и стулья и нов. срековое зарабоварил стооспастук, и обычно, и строи тираживым господура моя животую столу, почто неуличного беспарные такиме судьберского есть денегальный извер.
23
Порождение текста с RNN
• Последний пример – те же 3 слоя по 128, «Евгений Онегин».
• Низкий diversity – учим стихи наизусть:
но вот уж близко. перед нимиуж белокаменной москвыкак жар, крестами золотымигорят старинные главы.
• Средний diversity – цитируем большими кусками:
не правда ль? вам была не новостьсмиренной девочки, поврамаон был любим... по крайней меретак думал он на супруге.
• Высокий diversity – опять заумь:
простой живеть по полном в,бал уж канит; три несаладо глаза подерень преданьемпоедет, смертаю себя.
24
Порошки
А вот порошки из seq2seq-архитектуры на достаточно маленькомдатасете (спасибо Артуру Кадурину):
заходит к солнцу отдаётесьчто он летел а может бытьи вовсе не веду на стенкена поле пять и новый годи почему то по башкев квартире голуби и болии повзрослел и умирать
страшней всего когда ты выпилбез показания зонта
однажды я тебя не вышлои ты
я захожу в макдоналистунадену отраженный дождьпод ужин почему местамии вдруг подставил человек
ты мне привычно верил крышудо дна
я подползает под кроватьючтоб он исписанный пингвини ты мне больше никогдано мы же после русских классикбарто солдаты для любви
25
Задачи NLP
Задачи NLP
• Синтаксические, более-менее хорошо определённые задачи:
• частеречная разметка (part-of-speech tagging);• морфологическая сегментация (morphological segmentation);• стемминг (stemming) или лемматизация (lemmatization);• выделение границ предложения (sentence boundarydisambiguation);
• пословная сегментация (word segmentation);• распознавание именованных сущностей (named entityrecognition);
• разрешение смысла слов (word sense disambiguation);• синтаксический парсинг (syntactic parsing);• разрешение кореференций (coreference resolution).
27
Задачи NLP
• Но и для этого нужно понимание текста:
• Разрешение анафоры:• «мама вымыла раму, и теперь она блестит»;• «мама вымыла раму, и теперь она устала».
27
Задачи NLP
• Более сложные задачи, которые ещё чаще требуютпонимания, но правильные ответы и метрики качества легкопридумать:
• языковые модели (language models);• анализ тональности (sentiment analysis);• выделение отношений или фактов (relationship extraction,fact extraction);
• ответы на вопросы (question answering).
27
Задачи NLP
• Задачи, где нужно не только понять текст, но и породитьновый текст:
• собственно порождение текста (text generation);• автоматическое реферирование (automatic summarization);• машинный перевод (machine translation);• диалоговые модели (dialog and conversational models).
• И для всего этого многообразия и великолепия есть моделив виде глубоких нейронных сетей.
27
Распределённые представленияслов и других объектов
Word embeddings
• Distributional hypothesis в лингвистике: слова с похожимизначениями будут встречаться в похожих контекстах.
• Распределённые представления слов (distributed wordrepresentations, word embeddings) отображают слова вевклидово пространство ℝ𝑑, обычно 𝑑 порядка несколькихсотен:
• началось в (Bengio et al. 2003; 2006), хотя подобные идеи былии раньше;
• word2vec (Mikolov et al. 2013): обучаем веса, которые лучшевсего решают простую задачу предсказания слова по егоконтексту: continuous bag-of-words (CBOW) и skip-gram;
• Glove (Pennington et al. 2014): обучаем веса слов, раскладываяматрицу совместной встречаемости.
29
Word embeddings
• CBOW предсказывает слово из локального контекста:• входы – one-hot представления слов размерности 𝑉 ;• скрытый слой – матрица представлений слов 𝑊 ;• выход скрытого слоя – среднее векторов слов контекста;• на выходе получаем оценку 𝑢𝑗 для каждого слова и берём
softmax:𝑝(𝑖|𝑐1, … , 𝑐𝑛) = exp(𝑢𝑗)
∑𝑉𝑗′=1 exp(𝑢𝑗′ )
.
29
Word embeddings
• Skip-gram предсказывает слова контекста из текущего слова:
• предсказываем каждое слово контекста из центрального;• теперь несколько мультиномиальных распределений и по
softmax для каждого слова контекста:
𝑝(𝑐𝑘|𝑖) =exp(𝑢𝑘𝑐𝑘 )
∑𝑉𝑗′=1 exp(𝑢𝑗′ )
.
29
Представления слов
• Как обучить такую модель?• Например, в skip-gram выбираем 𝜃 так, чтобымаксимизировать
𝐿(𝜃) = ∏𝑖∈𝐷
⎛⎜⎝
∏𝑐∈𝐶(𝑖)
𝑝(𝑐 ∣ 𝑖; 𝜃)⎞⎟⎠
= ∏(𝑖,𝑐)∈𝐷
𝑝(𝑐 ∣ 𝑖; 𝜃),
параметризуем
𝑝(𝑐 ∣ 𝑖; 𝜃) = exp(��⊤𝑐 𝑤𝑖)
∑𝑐′ exp(��⊤𝑐′𝑤𝑖)
.
30
Представления слов
• Теперь общее правдоподобие равно
arg max𝜃
∏(𝑖,𝑐)∈𝐷
𝑝(𝑐 ∣ 𝑖; 𝜃) = arg max𝜃
∑(𝑖,𝑐)∈𝐷
𝑝(𝑐 ∣ 𝑖; 𝜃) =
= arg max𝜃
∑(𝑖,𝑐)∈𝐷
(exp(��⊤𝑐 𝑤𝑖) − log ∑
𝑐′exp(��⊤
𝑐′𝑤𝑖)) ,
и его можно максимизировать отрицательнымсэмплированием (negative sampling).
• Вопрос: зачем нужно разделять векторы �� и 𝑤?
30
Представления слов
• GloVe – пытаемся приблизить матрицу встречаемости𝑋 ∈ ℝ𝑉 ×𝑉 :
𝑝𝑖𝑗 = 𝑝(𝑗 ∣ 𝑖) = 𝑋𝑖𝑗𝑋𝑖
= 𝑋𝑖𝑗∑𝑘 𝑋𝑖𝑘
.
• Точнее, их отношения 𝑝𝑖𝑗𝑝𝑘𝑗.
• Пример на русской википедии:Число вхождений Вероятности Отношение
Слово 𝑘 Всего Вместе с: 𝑝(𝑘 ∣ …), ×10−4 𝑝(𝑘∣клуб)𝑝(𝑘∣команда)
клуб команда клуб командафутбол 29988 54 34 18.0 11.3 1.588хоккей 10957 16 7 6.39 14.6 2.286гольф 2721 11 1 40.4 3.68 11.0корабль 100127 0 30 0.0 3.00 0.0
30
Представления слов
• Обучаем функцию 𝐹(𝑤𝑖, 𝑤𝑗; ��𝑘) = 𝑝𝑖𝑗𝑝𝑘𝑗
.• Ещё проще – обучаем
𝐹((𝑤𝑖 − 𝑤𝑗)⊤ ��𝑘) = 𝐹 (𝑤⊤
𝑖 ��𝑘)𝐹 (𝑤⊤
𝑗 ��𝑘)= 𝑝𝑖𝑗
𝑝𝑘𝑗.
• Это фактически должна быть экспонента:
𝑤⊤𝑖 ��𝑘 = log(𝑝𝑖𝑘) = log(𝑋𝑖𝑘) − log(𝑋𝑖).
• Можно спрятать log(𝑋𝑖) как 𝑤⊤𝑖 ��𝑘 + 𝑏𝑖 + 𝑏𝑘 = log(𝑋𝑖𝑘).
• И целевая функция у GloVe будет
𝐽 =𝑉
∑𝑖,𝑗=1
𝑓(𝑋𝑖𝑗) (𝑤⊤𝑖 ��𝑗 + 𝑏𝑖 + 𝑏𝑗 − log 𝑋𝑖𝑗)
2.
• Демо: ближайшие соседи, геометрические соотношения. 30
Как использовать векторы слов
• Теперь можно просто строить нейронные сети поверхвложений.
• Например, стандартные LSTM для анализа тональности:
• Обучаем seq2seq для моделирования языка, затемиспользуем последний выход или средний выход длятональности.
31
Как использовать векторы слов
• Или CNN с одномерными свёртками:
31
Примеры представлений слов
• Примеры по-русски:• ближайшие соседи слова конференция:
пресс-конференция 0.6919программа 0.6827выставка 0.6692
ассоциация 0.6638кампания 0.6406ярмарка 0.6372
экспедиция 0.6305презентация 0.6243
сходка 0.6162встреча 0.6100
32
Примеры представлений слов
• Антонимы тоже подходят:• ближайшие соседи слова любовь:
жизнь 0.5978нелюбовь 0.5957приязнь 0.5735
боль 0.5547страсть 0.5520
• ближайшие соседи слова синоним:
антоним 0.5459эвфемизм 0.4642анаграмма 0.4145
омоним 0.4048оксюморон 0.3930
32
Примеры представлений слов
• Русский сексизм:• ближайшие соседи слова программист:
компьютерщик 0.5618программер 0.4682электронщик 0.4613автомеханик 0.4441криптограф 0.4316
• ближайшие соседи слова программистка:
стажерка 0.4755инопланетянка 0.4500американочка 0.4481
предпринимательница 0.4442студенточка 0.4368
32
Примеры представлений слов
• Какими будут• ближайшие соседи слова комендантский?
32
Примеры представлений слов
• Какими будут• ближайшие соседи слова комендантский:
неурочный 0.7276неровен 0.7076урочный 0.6849ровен 0.6756
предрассветный 0.5867условленный 0.5597
32
Вверх и вниз от представлений слов
• Представления слов – первый шаг многих нейросетевыхмоделей в NLP.
• Но от представлений слов можно двигаться в обоихнаправлениях.
• Во-первых, предложение – не обязательно сумма своих слов.• Во-вторых, слово не так уж атомарно, как модели хотелосьбы думать.
33
Представления предложений
• Как комбинировать векторы слов в векторы «кусков текста»?• Простейшая идея: берём сумму и/или среднеепредставлений слов как представлениепредложения/абзаца:
• это baseline в (Le and Mikolov 2014) и многих других работах;• разумный метод для коротких фраз в (Mikolov et al. 2013);• и довольно эффективно работает для реферирования в(Kageback et al. 2014).
• Совсем не так плохо, скорее всего как раз из-загеометрических соотношений.
34
Представления предложений
• Как комбинировать векторы слов в векторы «кусков текста»?• Distributed Memory Model of Paragraph Vectors (PV-DM) (Le andMikolov 2014):
• вектор абзаца – дополнительный вектор для каждого абзаца;• служит «памятью» для более глобального контекста.
34
Представления предложений
• Как комбинировать векторы слов в векторы «кусков текста»?
• Distributed Bag of Words Model of Paragraph Vectors (PV-DBOW)(Le and Mikolov 2014):
• модель предсказывает слова, случайно выбранные из данногоабзаца;
• и вектор абзаца помогает предсказывать слова из этогоабзаца во всех локальных контекстах.
34
Представления предложений
• Как комбинировать векторы слов в векторы «кусков текста»?
• Свёрточные архитектуры (Ma et al., 2015; Kalchbrenner et al.,2014).
• (Kiros et al. 2015): skip-thought векторы, обучаются из skip-gramвекторов на предложениях.
• (Djuric et al. 2015): моделирует большие потоки текстовиерархическими нейросетевыми моделями.
34
Глубокие рекурсивные сети
• Рекурсивные нейронные сети (recursive neural networks;Socher et al., 2012):
• нейронная сеть сворачивает представление куска текста в двухподдеревьях, проходя от слов до корня деревасинтаксического разбора.
35
Глубокие рекурсивные сети
• Рекурсивные нейронные сети (recursive neural networks;Socher et al., 2012):
• можно представлять узел матрицей и вектором;• в целом очень эффективный подход к анализу тональности(Socher et al. 2013).
35
Глубокие рекурсивные сети
• Глубокие рекурсивные сети для анализа тональности (Irsoy,Cardie, 2014).
• Первая идея: отделим листья от внутренних узлов; вместоприменения одних и тех же весов
𝑥𝑣 = 𝑓(𝑊𝐿𝑥𝑙(𝑣) + 𝑊𝑅𝑥𝑟(𝑣) + 𝑏)
теперь будут разные матрицы для листьев (слов) ивнутренних узлов:
• теперь внутренняя размерность может быть меньше;• и можно использовать ReLU, т.к. теперь нет проблемы сразреженными входами и плотными внутренними узлами.
36
Глубокие рекурсивные сети
• Вторая идея – добавим в иерархическое представлениеглубины: ℎ(𝑖)
𝑣 = 𝑓(𝑊 (𝑖)𝐿 ℎ(𝑖)
𝑙(𝑣) + 𝑊 (𝑖)𝑅 ℎ(𝑖)
𝑟(𝑣) + 𝑉 (𝑖)ℎ(𝑖−1)𝑣 + 𝑏(𝑖)).
• Прекрасная архитектура для анализа тональности... если,конечно, есть деревья разбора.
• Stanford Sentiment TreeBank есть; а по-русски непонятно...
36
Character-level models
• Важные недостатки векторов слов:• векторы независимы, а слова нет (морфология);• то же относится к словам не из словаря (новым, очень редким);• модель очень большая получается, если все слова обучать.
• Например, слово “polydistributional” даёт 48 результатов вGoogle, так что вы его скорее всего никогда не видели, иобучаться не на чем:
• Понимаете, что оно значит? Я тоже понимаю.
37
Character-level models
• Отсюда идея character-level representations:• сначала раскладывали слово на морфемы (Luong et al. 2013;Botha and Blunsom 2014; Soricut and Och 2015);
• но тогда надо делать морфологический анализ, тоже непросто;• два естественных подхода на буквах: LSTM/GRU и CNN;• в любом случае, модель медленная, но к каждому словуприменять не обязательно, можно частично закешироватьзаранее.
37
Character-level models
• C2W (Ling et al. 2015) основано на двунаправленных LSTM:
37
Character-level models
• ConvNet (Zhang et al. 2015): понимание текста с нуля, с букв,целиком на CNN.
• Character-level модели становятся всё важнее и нужнее,особенно для (1) морфологически богатых языков и (2)порождённых пользователями текстов.
37
Character-level models
• Подход Deep Structured Semantic Model (DSSM) (Huang et al.,2013; Gao et al., 2014a; 2014b):
• sub-word embeddings: представим слово как множествотриграмм букв;
• словарь теперь |𝑉 |3 (десятки тысяч вместо миллионов), ноколлизии очень редки;
• представление устойчиво к опечаткам и т.п. (очень важно дляпорождённых пользователями текстов).
37
Пример модели: Kim et al., 2015
• Пример современной character-based языковой модели (Kimet al., 2015):
• Объединяет CNN, RNN, highway networks, embeddings...
38
Вектора слов с внешней информацией
• Другие модификации представлений слов добавляютвнешнюю информацию.
• Например, модель RC-NET (Xu et al. 2014) расширяетskip-gram семантическими и синтаксическими отношениямии знаниями.
39
Вектора слов с внешней информацией
• И базовый word2vec получает регуляризатор для каждогоотношения в базе, пытаясь выразить его линейнымсоотношением:
𝑤Hinton − 𝑤Wimbledon ≈ 𝑟born at ≈ 𝑤Euler − 𝑤Basel
39
Разрешение смысла слов
• Другая важная проблема для всех моделей выше – омонимы.• Как различить разные смыслы слова? Беда:
• в модели обычно обучится только один смысл;• давайте проверим ближайших соседей слова коса и другихомонимов.
• Надо добавить скрытые переменные для разных возможныхсмыслов и потом вывести их из контекста.
• Чтобы обучить смыслы со скрытыми переменными —стохастический вариационный вывод (Bartunov et al., 2015).
40
Общие подходы
DSSM
• Ещё один общий подход к NLP на основе CNN – DeepStructured Semantic Model (DSSM) (Huang et al., 2013; Gao et al.,2014a; 2014b):
• классификация (распознавание речи, языковые модели,картинки).
42
DSSM
• Ещё один общий подход к NLP на основе CNN – DeepStructured Semantic Model (DSSM) (Huang et al., 2013; Gao et al.,2014a; 2014b):
• векторные правильные ответы для семантической похожести.
42
DSSM
• Ещё один общий подход к NLP на основе CNN – DeepStructured Semantic Model (DSSM) (Huang et al., 2013; Gao et al.,2014a; 2014b):
• чтобы обучить с векторными ответами – принцип отражения(reflection): притягиваем похожие, отталкиваем непохожие.
42
DSSM
• Это давняя идея сиамских сетей (Bromley et al., 1994)
42
DSSM
• DSSM можно применять в самых разных контекстах, если естьдатасет: семантические embeddings, ответ на вопросы(фактологические), рекомендации и т.д.
• Например, для information retrieval: притягиваем вместедокументы и запросы, которым они релевантны,отталкиваем нерелевантные.
• В ноябре 2016 Яндекс выпустил пост о том, что онииспользуют (модифицированный) DSSM в их новомпоисковом алгоритме Палех.
42
Cинтаксический разбор
Cинтаксический разбор
• Как же всё-таки построить деревья разбора?
44
Cинтаксический разбор
• Сейчас обычно continuous-state parsing: текущее состояниепарсера – вектор из ℝ𝑑.
• Stack LSTMs (Dyer et al., 2015) – парсер управляет тремяструктурами данных:(1) буфер 𝐵 содержит последовательность слов;(2) стек 𝑆 хранит частично построенные деревья;(3) список 𝐴 действий, которые уже были предприняты парсером.
44
Cинтаксический разбор с морфологией
• Важное расширение (Ballesteros et al., 2015):• надо учесть морфологию, так что представим словодвунаправленным character-level LSTM;
• результаты становятся лучше на ряде языков (а русскогопочему-то нет – дерзайте).
45
Метрики качества для sequence-to-sequence моделей
• Дальше будет самое интересное: машинный перевод,диалоговые модели, ответ на вопросы.
• Но как мы будем оценивать NLP-модели, которые генерируюттекст?
• Есть метрики качества, которые сравнивают результат справильными ответами:
• BLEU (Bilingual Evaluation Understudy): перевзвешеннаяprecision (в т.ч. для нескольких правильных ответов);
• METEOR: гармоническое среднее precision и recall поуниграммам;
• TER (Translation Edit Rate): число исправлений между выходоми правильным ответом, делённое на среднее число слов;
• LEPOR: комбинируем базовые факторы и метрики снастраиваемыми параметрами.
• Есть ещё куча метрик, связанных с представлениями слов ипредложений (хотим поближе к правильному ответу).
• Одна только проблема...46
Метрики качества для sequence-to-sequence моделей
• ...всё это вообще не работает.
• Тут нужно что-то новое.
47
Машинный перевод:encoder-decoderи внимание
Машинный перевод
• Перевод – очень хорошая задача:• очевидно очень практическая;• очевидно очень высокоуровневая, требует понимания;• считается довольно неплохо квантифицируемой (BLEU, TER –хотя см. выше);
• имеет большие доступные датасеты параллельных переводов.
49
Машинный перевод
• Статистический машинный перевод (statistical machinetranslation, SMT): моделируем условную вероятность 𝑝(𝑦 ∣ 𝑥)перевода 𝑦 при условии исходного текста 𝑥.
• Классический SMT: моделируем log 𝑝(𝑦 ∣ 𝑥) линейнойкомбинацией признаков, строим признаки.
49
Машинный перевод
• Нам больше интересно моделированиеsequence-to-sequence:
• RNN естественным образом моделирует последовательность𝑋 = (𝑥1, 𝑥2, … , 𝑥𝑇 ) как 𝑝(𝑥1), 𝑝(𝑥2 ∣ 𝑥1), …,𝑝(𝑥𝑇 ∣ 𝑥<𝑇 ) = 𝑝(𝑥𝑇 ∣ 𝑥𝑇 −1, … , 𝑥1), и теперь 𝑝(𝑋) – это просто
𝑝(𝑋) = 𝑝(𝑥1)𝑝(𝑥2 ∣ 𝑥1) … 𝑝(𝑥𝑘 ∣ 𝑥<𝑘) … 𝑝(𝑥𝑇 ∣ 𝑥<𝑇 );
• так RNN и в языковых моделях используются;• предсказываем следующее слово на основе скрытогосостояния и предыдущего слова;
• Как применить эту идею к переводу?
49
Encoder-decoder архитектуры
• Encoder-decoder архитектуры (Sutskever et al., 2014; Cho et al.,2014):
• Сначала кодируем, потом декодируем обратно.
50
Encoder-decoder архитектуры
• Так же может работать и с переводом.
• Проблема: надо сжимать всё предложение в один вектор.• С длинными участками текста это вообще перестаётработать.
50
Внимание в нейронных сетях
• Решение: давайте обучим специальные веса,показывающие, насколько та или иная часть входа важнадля текущего выхода.
• Это чем-то напоминает механизм внимания у людей: чтопомещать в рабочую память, а что не надо.
• Первые применения в нейросетях – foveal glimpses на RBM(Larochelle, Hinton, 2010)
51
Внимание в нейронных сетях
• Прямое применение этой идеи – двунаправленный LSTMплюс внимание (Bahdanau et al. 2014):
51
Внимание в нейронных сетях
• Мягкое внимание (soft attention) (Luong et al. 2015a; 2015b;Jean et al. 2015):
• encoder – двунаправленная RNN, есть оба контекста;• сеть внимания выдаёт оценку релевантности – надо липереводить это слово прямо сейчас?
51
Внимание в нейронных сетях
• Формально очень просто: считаем веса внимания 𝛼𝑡𝑗 иперевзвешиваем векторы контекстов:
𝑒𝑡𝑗 = 𝑎(𝑧𝑡−1, 𝑗), 𝛼𝑡𝑗 = softmax(𝑒𝑡𝑗; 𝑒𝑡∗),𝑐𝑡 = ∑
𝑗𝛼𝑡𝑗ℎ𝑗, и теперь 𝑧𝑡 = 𝑓(𝑠𝑡−1, 𝑦𝑡−1, 𝑐𝑖).
51
Внимание в нейронных сетях
• В результате можно визуализировать, на что смотрит сеть:
51
Внимание в нейронных сетях
• Получается гораздо лучше порядок слов:
51
Внимание в нейронных сетях
• Конечно, есть и другие применения механизмов внимания.• Show, Attend, and Tell (Xu et al., 2015): генерируем подписи крисункам.
51
Внимание в нейронных сетях
• Soft attention vs. hard attention (стохастически выбираемоднозначный кусок картинки).
• Hard attention обучается максимизацией вариационнойнижней оценки (об этом позже).
51
Внимание в нейронных сетях
• Часто получаются очень хорошие результаты:
51
Внимание в нейронных сетях
• Ещё ближе к теме – «Grammar as a Foreign Language» (Vinyalset al., 2015)
51
Google Translate
• Сентябрь 2016: Wu et al., Google’s Neural Machine TranslationSystem: Bridging the Gap between Human and MachineTranslation:
• как на самом деле работает Google Translate;• базовая архитектура та же самая: encoder, decoder, attention;• RNN глубокие, по 8 уровней в encoder и decoder:
52
Google Translate
• Сентябрь 2016: Wu et al., Google’s Neural Machine TranslationSystem: Bridging the Gap between Human and MachineTranslation:
• просто stacked LSTM перестают работать далее 4-5 уровней;• поэтому добавляют остаточные связи, как в ResNet:
52
Google Translate
• Сентябрь 2016: Wu et al., Google’s Neural Machine TranslationSystem: Bridging the Gap between Human and MachineTranslation:
• нижний уровень, естественно, двунаправленный:
52
Google Translate
• Сентябрь 2016: Wu et al., Google’s Neural Machine TranslationSystem: Bridging the Gap between Human and MachineTranslation:
• в GNMT ещё две идеи о сегментации слов:• wordpiece model: разбить слова на кусочки (отдельноймоделью); пример из статьи:
Jet makers feud over seat width with big orders at stake
превращается в
_J et _makers _fe ud _over _seat _width _with _big _orders _at _stake
• mixed word/character model: конвертировать слова, непопадающие в словарь, в последовательность букв-токенов;пример из статьи:
Miki превращается в <B>M <M>i <M>k <E>i52
Teaching machines to read
• (Hermann et al., 2015): «Teaching machines to read andcomprehend» (Google DeepMind)
• Предлагают новый способ построить датасет для понимания,автоматически создавая тройки (context, query, answer) изтекстов новостей и т.п.
53
Teaching machines to read
• Базовая модель – глубокий LSTM:
• Но так, конечно, совсем плохо работает.
53
Teaching machines to read
• Attentive Reader: обучаемся, на какую часть документасмотреть
53
Teaching machines to read
• Impatient Reader: можем перечитывать нужные частидокумента по мере прочтения запроса
53
Teaching machines to read
• Получаются разумные карты внимания:
53
Attention is all you need
• 12 июня 2017: «Attention is all you need» (Vaswani et al., Google)
54
Attention is all you need
• Ничего, кроме внимания!• Параллельные карты внимания, объединённые в матрицы:
• Self-attention: каждая позиция encoder’а может внимательнопосмотреть на каждую позицию предыдущего уровня.
• Результаты SMT лучше state of the art, а обучается в сто разбыстрее.
54
Диалоговые модели
Диалоговые модели
• Диалоговые модели пытаются предсказать развитие диалогаили прямо активно разговаривают с человеком.
• (Vinyals, Le, 2015) используют seq2seq и encoder-decoder длядиалога:
• предыдущие предложения ABC подаём как контекст RNN;• следующее слово ответа WXYZ предсказываем из предыдущегои скрытого состояния.
• Датасеты: общие (MovieSubtitles) и в конкретном домене (IThelpdesk). 56
Диалоговые модели
• Hierarchical recurrent encoder decoder architecture (HRED);сначала для query suggestion в поиске (Sordoni et al. 2015),потом для диалоговых систем (Serban et al. 2015).
• Диалог – двухуровневая система: последовательностьреплик, а каждая реплика – последовательность слов.
• HRED обучает:(1) encoder RNN, которая отображает каждую реплику в вектор;(2) context RNN, которая обрабатывает векторы предыдущих
реплик и объединяет их в вектор текущего контекста;(3) decoder RNN, которая предсказывает слова следующей
реплики при условии контекста.
56
Диалоговые модели
• HRED (Serban et al. 2015):
56
Диалоговые модели
• Некоторые недавние результаты и расширения:• (Su et al., 2016; Li et al., 2016a): обучение с подкреплением (DQN,online active reward learning) для улучшения порождениядиалогов;
• (Li et al., 2016b) добавляют персонажей (personas) при помощискрытых переменных;
• (Wen et al., 2016) используют snapshot learning, добавляяданные в виде неких событий, происходящих в выходномпредложении (мы ещё хотим это сказать или уже сказали).
• В целом чатботы уже работают нормально, но доподдержания разговора общего назначения ещё оченьдалеко.
56
Отвечаем на вопросы
Отвечаем на вопросы
• Question answering (QA) – одна из сложнейших задач, тожеочень близка к пониманию.
• О каких вопросах речь:• легко найти датасеты из information retrieval;• фактические вопросы (тривия) из баз знаний;• классификация в случае вопросов на multiple choice (QuizBowl); тут хорошо работает отобразить вопрос и ответы всемантическое пространство и искать там ближайших соседей(Socher et al. 2014);
• но это всё не совсем то.
• (Weston et al. 2015): датасет простых вопросов, которые «нетребуют дополнительных знаний».
• Но требуют умения рассуждать и понимать семантику...
58
Отвечаем на вопросы
• Примеры вопросов:Task 1: Single Supporting Fact
Mary went to the bathroom.John moved to the hallway.Mary travelled to the office.Where is Mary?A: office
Task 4: Two Argument RelationsThe office is north of the bedroom.The bedroom is north of the bathroom.The kitchen is west of the garden.What is north of the bedroom? A: officeWhat is the bedroom north of? A: bathroom
Task 7: CountingDaniel picked up the football.Daniel dropped the football.Daniel got the milk.Daniel took the apple.How many objects is Daniel holding?A: two
Task 10: Indefinite KnowledgeJohn is either in the classroom or the playground.Sandra is in the garden.Is John in the classroom?A: maybeIs John in the office?A: no
Task 15: Basic DeductionSheep are afraid of wolves.Cats are afraid of dogs.Mice are afraid of cats.Gertrude is a sheep.What is Gertrude afraid of?A: wolves
Task 20: Agent’s MotivationsJohn is hungry.John goes to the kitchen.John grabbed the apple there.Daniel is hungry.Where does Daniel go? A: kitchenWhy did John go to the kitchen? A: hungry
58
Отвечаем на вопросы
• Наивный подход – породить представления вопроса иответа, совместить, отвечать:
• Проблема в том, что надо запомнить контекст напротяжении всего вопроса... 58
Отвечаем на вопросы
• ...так что сейчас state of the art – это memory networks (Westonet al. 2014).
• Есть массив объектов (память) и обучаемые компоненты:I (input feature map) преобразует вход во внутреннеепредставление;
G (generalization) обновляет память после нового входа;O (output feature map) порождает выход по входу и состояниюпамяти;
R (response) конвертирует выход O в нужный формат (генератортекста, например).
58
Отвечаем на вопросы
• Dynamic memory networks (Kumar et al. 2015): эпизодическаяпамять, которая выбирает, на какой части входафокусироваться при помощи механизма внимания.
58
Отвечаем на вопросы
• End-to-end memory networks (Sukhbaatar et al. 2015):непрерывная версия с несколькими шагами вычислений накаждый выход.
58
Отвечаем на вопросы
• Должно примерно так работать:
58
Отвечаем на вопросы
• Вообще идея того, чтобы обучать управляющие алгоритмы,может пойти далеко.
• Neural Turing Machines (Graves et al., 2014):
• Читают из памяти с весами вроде внимания, стирают память,пишут в неё.
58
Отвечаем на вопросы
• Веса получаются механизмом адресации:
• Можно обучать с подкреплением (Zaremba, Sutskever, 2015):
58
Отвечаем на вопросы
• Есть и другие расширения.• Пока не до конца понятно, как связать memory networks сбазами знаний, собственно.
• Впереди много интересного. Например...
58
Что? Где? Когда?
• «Что? Где? Когда?» иногда выглядит так...
59
Что? Где? Когда?
• ...но обычно примерно так:
59
Что? Где? Когда?
• Команды из ≤ 6 игроков отвечают на вопросы.• db.chgk.info – база около 300K вопросов.• Некоторые из «Своей игры», в которой вопросы обычногораздо интереснее Jeopardy:
• ЛоготипыЕГО логотип — сочетание рун «беркана» и «хаглаз», инициаловконунга Харальда.
• СокращенияУчитывая ЕГО большую роль в создании первых танков, этитанки часто шутливо именовали ватерклозетами.
• ЛошадиЕГО попытка приударить за галисийскими кобылицамиокончилась печальным образом.
59
Что? Где? Когда?
• А большинство – вопросы «Что? Где? Когда?», ещё сложнее:• Однажды Ричард Фейнман объяснял своей девушке, почему Декартговорил глупости, когда доказывал существование Бога. Не желаяввязываться в спор, девушка сказала, что на любой предмет, видимо,можно посмотреть с разных сторон. Ответьте двумя словами: чтосделал Фейнман в ответ на это?
• Вторая соответствовала богохульству, третья — подделке денег илидокументов, четвёртая — пьянству. А чему соответствовала первая?
• На самом деле чехословацкая линейка аудиотехники ирадиокомпонентов получила название потому, что это слаботочнаятехника. Напишите это название.
• Одна из конструкций математической логики рассматриваетбессмертного агента, который в каждый момент времени должен либосовершить действие, либо формально доказать, что он совершит этодействие в один из последующих моментов времени. Название этойконструкции состоит из двух слов, начинающихся на одну и ту же букву.Напишите это название.
• Отличный и пока нереально сложный датасет. Когда? :)
59
Спасибо!
Спасибо за внимание!
60