Top Banner
deep learning v: рекуррентные сети and beyond Сергей Николенко НИУ ВШЭ Санкт-Петербург 8 декабря 2018 г. Random facts: 8 декабря 1660 г. женщина (то ли Маргарет Хьюз, то ли Анна Маршалл) впервые вышла на английскую сцену, в роли Дездемоны 8 декабря 1980 г. Марк Чепмен крикнул «Эй, мистер Леннон!», выстрелил пять раз (попал из них четыре), а затем уселся на асфальт под фонарём и стал читать «Над пропастью во ржи»; начиная с 2000, раз в два года Чепмен подаёт прошение о помиловании, и каждое (уже 10) неизменно отклоняют 8 декабря 1987 г. Рон Хекстолл из Philadelphia Flyers стал первым вратарём в истории NHL, который забил гол 8 декабря 1991 г. Ельцин, Кравчук и Шушкевич в Беловежской пуще подписали соответствующее соглашение 8 декабря 2013 г. Metallica дала концерт в Антарктиде, став первой группой с концертами на всех семи континентах
151

Deep Learning V: рекуррентные сети and beyond

Apr 30, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Deep Learning V: рекуррентные сети and beyond

deep learning v: рекуррентные сети andbeyond

Сергей Николенко

НИУ ВШЭ − Санкт-Петербург8 декабря 2018 г.Random facts:

• 8 декабря 1660 г. женщина (то ли Маргарет Хьюз, то ли Анна Маршалл) впервые вышлана английскую сцену, в роли Дездемоны

• 8 декабря 1980 г. Марк Чепмен крикнул «Эй, мистер Леннон!», выстрелил пять раз(попал из них четыре), а затем уселся на асфальт под фонарём и стал читать «Надпропастью во ржи»; начиная с 2000, раз в два года Чепмен подаёт прошение опомиловании, и каждое (уже 10) неизменно отклоняют

• 8 декабря 1987 г. Рон Хекстолл из Philadelphia Flyers стал первым вратарём в историиNHL, который забил гол

• 8 декабря 1991 г. Ельцин, Кравчук и Шушкевич в Беловежской пуще подписалисоответствующее соглашение

• 8 декабря 2013 г. Metallica дала концерт в Антарктиде, став первой группой сконцертами на всех семи континентах

Page 2: Deep Learning V: рекуррентные сети and beyond

Рекуррентные нейронные сети

Page 3: Deep Learning V: рекуррентные сети and beyond

Последовательности

• Последовательности: текст, временные ряды, речь, музыка...• Есть разные виды задач, основанных напоследовательностях:

3

Page 4: Deep Learning V: рекуррентные сети and beyond

Последовательности

• Как применить к последовательности нейронную сеть?• Можно использовать скользящее окно:

3

Page 5: Deep Learning V: рекуррентные сети and beyond

Последовательности

• ...но ещё лучше будет сохранять какое-нибудь скрытоесостояние и обновлять его каждый раз.

• Это в точности идея рекуррентных нейронных сетей(recurrent neural networks, RNN).

3

Page 6: Deep Learning V: рекуррентные сети and beyond

Последовательности

• Но как теперь делать backpropagation? Получается, что вграфе вычислений теперь циклы:

𝑠𝑖 = ℎ(𝑥𝑖, 𝑥𝑖+1, 𝑥𝑖+2, 𝑠𝑖−1).

• Это же ужасно, и всё сломалось?..3

Page 7: Deep Learning V: рекуррентные сети and beyond

Последовательности

• ...да нет, конечно. Можно “развернуть” циклы обратно:

𝑦6 = 𝑓(𝑥3, 𝑥4, 𝑥5, 𝑠2) = 𝑓(𝑥3, 𝑥4, 𝑥5, ℎ(𝑥2, 𝑥3, 𝑥4, 𝑠1)) == 𝑓(𝑥3, 𝑥4, 𝑥5, ℎ(𝑥2, 𝑥3, 𝑥4, ℎ(𝑥1, 𝑥2, 𝑥3, 𝑠0))).

• Так что формально проблемы нет.• Но масса проблем в реальности: получается, чторекуррентная сеть – это такая очень глубокая сеть с кучейобщих весов...

3

Page 8: Deep Learning V: рекуррентные сети and beyond

Простая RNN

• “Простая” RNN:

4

Page 9: Deep Learning V: рекуррентные сети and beyond

Простая RNN

• Формально:

𝑎𝑡 = 𝑏 + 𝑊𝑠𝑡−1 + 𝑈𝑥𝑡,𝑠𝑡 = 𝑓(𝑎𝑡),𝑜𝑡 = 𝑐 + 𝑉 𝑠𝑡,𝑦𝑡 = ℎ(𝑜𝑡),

где 𝑓 – рекуррентная нелинейность, ℎ – функция выхода.

4

Page 10: Deep Learning V: рекуррентные сети and beyond

Двунаправленная RNN

• Иногда нужен контекст с обеих сторон:

5

Page 11: Deep Learning V: рекуррентные сети and beyond

Двунаправленная RNN

• Формально:

𝑠𝑡 = 𝜎 (𝑏 + 𝑊𝑠𝑡−1 + 𝑈𝑥𝑡) ,𝑠′

𝑡 = 𝜎 (𝑏′ + 𝑊 ′𝑠′𝑡+1 + 𝑈 ′𝑥𝑡) ,

𝑜𝑡 = 𝑐 + 𝑉 𝑠𝑡 + 𝑉 ′𝑠′𝑡,

𝑦𝑡 = ℎ (𝑜𝑡) .

• И это, конечно, обобщается на любой другой типконструкций.

5

Page 12: Deep Learning V: рекуррентные сети and beyond

Взрывающиеся градиенты

• Две проблемы:• взрывающиеся градиенты (exploding gradients);• затухающие градиенты (vanishing gradients).

• Надо каждый раз умножать на одну и ту же 𝑊 , и нормаградиента может расти или убывать экспоненциально.

• Взрывающиеся градиенты: надо каждый раз умножать на 𝑊 ,и норма градиента может расти экспоненциально.

• Что делать?

6

Page 13: Deep Learning V: рекуррентные сети and beyond

Взрывающиеся градиенты

• Да просто обрезать градиенты, ограничить сверху, чтобы неросли.

• Два варианта – ограничить общую норму или каждоезначение:

• sgd = optimizers.SGD(lr=0.01, clipnorm=1.)• sgd = optimizers.SGD(lr=0.01, clipvalue=.05)

6

Page 14: Deep Learning V: рекуррентные сети and beyond

Взрывающиеся градиенты

• (Pascanu et al., 2013) – вот что будет происходить:

6

Page 15: Deep Learning V: рекуррентные сети and beyond

Взрывающиеся градиенты

• Там же объясняется, откуда возьмутся такие перепады: естьточки бифуркации у RNN.

6

Page 16: Deep Learning V: рекуррентные сети and beyond

Карусель константной ошибки:LSTM и GRU

Page 17: Deep Learning V: рекуррентные сети and beyond

LSTM

• Затухающие градиенты: надо каждый раз умножать на 𝑊 .• Поэтому не получается долгосрочную память реализовать.

• А хочется. Что делать?..

8

Page 18: Deep Learning V: рекуррентные сети and beyond

LSTM

• Базовую идею мы уже видели в ResNet: надо сделать так,чтобы градиент проходил.

• В RNN это называется «карусель константной ошибки»(constant error carousel).

• Идея из середины 1990-х (Шмидхубер): давайте составлятьRNN из более сложных частей, в которых будет прямой путьдля градиентов, и память будет контролироваться явно.

8

Page 19: Deep Learning V: рекуррентные сети and beyond

LSTM

• LSTM (long short-term memory). “Ванильный” LSTM: 𝑐𝑡 –состояние ячейки памяти, ℎ𝑡 – скрытое состояние.

• Input gate и forget gate определяют, надо ли менять 𝑐𝑡 нанового кандидата в состояния ячейки.

8

Page 20: Deep Learning V: рекуррентные сети and beyond

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

Page 21: Deep Learning V: рекуррентные сети and beyond

LSTM

• LSTM был создан в середине 1990-х (Hochreiter andSchmidhuber, 1995; 1997).

• В полностью современной форме в (Gers, Schmidhuber, 2000).• Проблема: хотим управлять 𝑐, но гейты его не получают! Онивидят только ℎ𝑡−1, а это

ℎ𝑡−1 = 𝑜𝑡−1 ⊙ tanh(𝑐𝑡−1).

• Так что если output gate закрыт, то поведение LSTM вообщеот состояния ячейки не зависит.

• Нехорошо. Что делать?..

8

Page 22: Deep Learning V: рекуррентные сети and beyond

LSTM

• ...конечно, добавить ещё несколько матриц! (peepholes)

8

Page 23: Deep Learning V: рекуррентные сети and beyond

LSTM

• Формально:

𝑖𝑡 = 𝜎 (𝑊𝑥𝑖𝑥𝑡 + 𝑊ℎ𝑖ℎ𝑡−1 + 𝑊𝑝𝑖𝑐𝑡−1 + 𝑏𝑖)𝑓𝑡 = 𝜎 (𝑊𝑥𝑓𝑥𝑡 + 𝑊ℎ𝑓ℎ𝑡−1 + 𝑊𝑝𝑓𝑐𝑡−1 + 𝑏𝑓)𝑜𝑡 = 𝜎 (𝑊𝑥𝑜𝑥𝑡 + 𝑊ℎ𝑜ℎ𝑡−1 + 𝑊𝑝𝑜𝑐𝑡−1 + 𝑏𝑜)

• Видно, что тут есть огромное поле для вариантов LSTM:можно удалить любой гейт, любую замочную скважину,поменять функции активации...

• Как выбрать?

8

Page 24: Deep Learning V: рекуррентные сети and beyond

LSTM

• «LSTM: a Search Space Odyssey» (Greff et al., 2015).• Большое экспериментальное сравнение.• В честности, некоторые куда более простые архитектуры (безодного из гейтов!) не сильно проигрывали «ванильному»LSTM.

• И это приводит нас к...

8

Page 25: Deep Learning V: рекуррентные сети and beyond

GRU

• ...Gated Recurrent Units (GRU; Cho et al., 2014).• В GRU тоже есть прямой путь для градиентов, но проще.

9

Page 26: Deep Learning V: рекуррентные сети and beyond

GRU

• Формально:

𝑢𝑡 = 𝜎(𝑊𝑥𝑢𝑥𝑡 + 𝑊ℎ𝑢ℎ𝑡−1 + 𝑏𝑢)𝑟𝑡 = 𝜎(𝑊𝑥𝑟𝑥𝑡 + 𝑊ℎ𝑟ℎ𝑡−1 + 𝑏𝑟)ℎ′

𝑡 = tanh(𝑊𝑥ℎ′𝑥𝑡 + 𝑊ℎℎ′(𝑟𝑡 ⊙ ℎ𝑡−1))ℎ𝑡 = (1 − 𝑢𝑡) ⊙ ℎ′

𝑡 + 𝑢𝑡 ⊙ ℎ𝑡−1

• Теперь есть update gate и reset gate, нет разницы между 𝑐𝑡 иℎ𝑡.

• Меньше матриц (6, а не 8 или 11 с замочными скважинами),меньше весов, но только чуть хуже LSTM работает.

• Так что можно больше GRU поместить, и сеть станет лучше.

9

Page 27: Deep Learning V: рекуррентные сети and beyond

GRU

• Другие варианты тоже есть.• (Józefowicz, Zaremba, Sutskever, 2015): огромное сравнение,выращивали архитектуры эволюционными методами.

• Три новых интересных архитектуры; например:

9

Page 28: Deep Learning V: рекуррентные сети and beyond

Долгосрочная памятьв базовых RNN

Page 29: Deep Learning V: рекуррентные сети and beyond

SCRN

• Следующая идея о том, как добавить долгосрочную память.• Начнём опять с простой RNN:

𝑠𝑡 = 𝑓(𝑈𝑥𝑡 + 𝑊𝑠𝑡−1 + 𝑏), 𝑦𝑡 = ℎ(𝑈𝑠𝑡 + 𝑐).

• Проблема с градиентами в том, что мы умножаем на 𝑊 , иградиенты либо взрываются, либо затухают.

• Давайте вернёмся к истории RNN...

11

Page 30: Deep Learning V: рекуррентные сети and beyond

SCRN

• Сеть Джордана (середина 1980-х):

• Считается первой успешной RNN.

11

Page 31: Deep Learning V: рекуррентные сети and beyond

SCRN

• Сеть Элмана (Elman; конец 1980-х):

• Разница в том, что нейроны контекста 𝑐𝑡 получают входы соскрытого уровня, а не выходов.

• И нет никаких весов от предыдущих 𝑐𝑡−1! То есть весафиксированы и равны 1.

11

Page 32: Deep Learning V: рекуррентные сети and beyond

SCRN

• Это приводит к хорошим долгосрочным эффектам, потомучто нет нелинейности между последовательными шагами, икарусель константной ошибки получается по определению:

𝑐𝑡 = 𝑐𝑡−1 + 𝑈𝑥𝑡.

• Идея: можно зафиксировать градиенты, использовавединичную матрицу весов вместо обучаемой 𝑊 .

• Долгосрочная память тут есть... но обучать очень трудно,потому что градиенты надо возвращать к началупоследовательности.

11

Page 33: Deep Learning V: рекуррентные сети and beyond

SCRN

• (Mikolov et al., 2014): Structurally Constrained RecurrentNetwork (SCRN).

• Сочетание двух идей – 𝑠𝑡 с 𝑊 и 𝑐𝑡 с диагональной матрицейрекуррентных весов.

11

Page 34: Deep Learning V: рекуррентные сети and beyond

SCRN

• Формально:

𝑐𝑡 = (1 − 𝛼) 𝐴𝑥𝑡 + 𝛼𝑐𝑡−1,𝑠𝑡 = 𝑓(𝑃𝑐𝑡 + 𝑈𝑥𝑡 + 𝑊𝑠𝑡−1),𝑦𝑡 = ℎ(𝑉 𝑠𝑡 + 𝐵𝑠𝑡).

• SCRN – это просто обычный RNN, где 𝑠𝑡 и 𝑐𝑡 в одном векторе,и матрица рекуррентных весов имеет вид

𝑊 = (𝑅 𝑃0 𝛼𝐼) ,

11

Page 35: Deep Learning V: рекуррентные сети and beyond

Регуляризуем 𝑊

• Альтернатива: давайте просто регуляризуем 𝑊 так, чтобыdet 𝑊 = 1.

• Мягкая регуляризация (Pascanu et al., 2013):

Ω = ∑𝑘

Ω𝑘 = ∑𝑘

⎛⎜⎝

∥𝜕𝐸

𝜕𝑠𝑘+1

𝜕𝑠𝑘+1𝜕𝑠𝑘

𝜕𝐸𝜕𝑠𝑘+1

∥ − 1⎞⎟⎠

2

.

• Жёсткая регуляризация – сделаем 𝑊 автоматическиунитарной (Arjovsky et al., 2015):

𝑊 = 𝐷3𝑅2𝐹 −1𝐷2Π𝑅1𝐹𝐷1,

где 𝐷 – диагональные матрицы, 𝐹 – преобразование Фурье,𝑅 – отражения, Π – перестановка.

• Кстати, и параметров меньше: теперь только 𝑂(𝑛) вместо𝑂(𝑛2).

12

Page 36: Deep Learning V: рекуррентные сети and beyond

Инициализируем 𝑊

• И ещё более простой трюк: давайте правильноинициализируем 𝑊 (Le, Jaitly, Hinton, 2015).

• Рассмотрим RNN с ReLU-активациями на рекуррентных весах(перед ℎ).

• Тогда если 𝑊ℎℎ – единичная матрица и 𝑏ℎ = 0, скрытоесостояние не изменится, градиент протечёт насквозь.

• Давайте так и инициализируем! Часто приводит к серьёзнымулучшениям.

13

Page 37: Deep Learning V: рекуррентные сети and beyond

Варианты и трюки

Page 38: Deep Learning V: рекуррентные сети and beyond

RNN со связями на выходе

• Другой вариант RNN – можно развить идею Джордана исделать output-to-hidden связи:

15

Page 39: Deep Learning V: рекуррентные сети and beyond

RNN со связями на выходе

• Это хуже для моделирования долгосрочных зависимостей.• Но зато обучение очень простое: подставим вместо выходаправильный ответ!

• Teacher forcing: будем подставлять 𝑦𝑡 на каждом шаге,возвращая сеть на правильную траекторию.

15

Page 40: Deep Learning V: рекуррентные сети and beyond

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

Page 41: Deep Learning V: рекуррентные сети and beyond

RNN со связями на выходе

• Проблема: стоит учителю отвернуться, и сеть будет плохосебя вести. Ошибки накапливаются.

• (Lamb, Goyal et al., 2016): Professor Forcing на основеGAN-подобных идей (подробности позже).

15

Page 42: Deep Learning V: рекуррентные сети and beyond

Нормализация по уровню

• Вспомним batch normalization: очень хорошая штука, боретсясо сдвигом в переменных.

• Но применить batchnorm к RNN не получается:• теперь «уровень» – это шаг последовательности;• и получается, что веса общие, а статистики надо хранить поотдельности;

• плохо, если последовательности разной длины;• совсем плохо, если при применении будет длиннее, чем вобучающей выборке.

• Что делать?

16

Page 43: Deep Learning V: рекуррентные сети and beyond

Нормализация по уровню

• Нормализация по уровню (layer normalization; Ba, Kiros,Hinton, 2016): будем просто усреднять по одному уровню.

• Раньше было 𝑎𝑡 = 𝑊ℎℎℎ𝑡−1 + 𝑊𝑥ℎ𝑥𝑡.• Теперь будет

ℎ𝑡 = 𝑓 [ 𝑔𝜎𝑡

⊙ (𝑎𝑡 − 𝜇𝑡) + 𝑏] ,

где 𝜇𝑡 = 1𝐻

𝐻∑𝑖=1

𝜎𝑖𝑡, 𝜎𝑡 =√√√⎷

1𝐻

𝐻∑𝑖=1

(𝑎𝑖𝑡 − 𝜇𝑡)2,

а 𝑔 и 𝑏 — параметры слоя нормализации, как и раньше.• Это может заметно улучшить результаты рекуррентной сети.

16

Page 44: Deep Learning V: рекуррентные сети and beyond

Что делать с RNN на практике

Page 45: Deep Learning V: рекуррентные сети and beyond

Принципы

• RNN имеют довольно простую общую структуру: уровни LSTMили GRU.

• Все они выдают последовательность выходов, кроме,возможно, верхнего.

• Дропаут и batchnorm между слоями, а на рекуррентныхсвязях надо аккуратно (потом поговорим).

• Слоёв немного; больше 3-4 трудно, 7-8 сейчас максимум.

18

Page 46: Deep Learning V: рекуррентные сети and beyond

Принципы

• Важный трюк: skip-layer connections, как residual, толькопроще. Добавляем выходы предыдущих слоёв «через один»или «через два», просто конкатенацией.

• RNN, сохраняющие состояние: состояния с одногомини-батча переиспользуются как начальные дляследующего. Градиенты в BPTT останавливаются, носостояния остаются. В Keras легко: stateful=True.

• Начнём с простого примера анализа временных рядов...

18

Page 47: Deep Learning V: рекуррентные сети and beyond

Пример: порождение текста с 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

Page 48: Deep Learning V: рекуррентные сети and beyond

Simple LSTM-based architecture

20

Page 49: Deep Learning V: рекуррентные сети and beyond

Slightly less simple LSTM-based architecture

21

Page 50: Deep Learning V: рекуррентные сети and beyond

Порождение текста с RNN

• Можно менять diversity (температуру сэмплирования), получая разныеабсурдистские тексты. Случайный пример с seed «обещал, на рождество,но спустя семь лет. имя глав».

• Низкий diversity – монолог Лаки:

обещал, на рождество, но спустя семь лет. имя главного командования в составесоветского союза с 1976 года. после проведения в 1992 году в составе советскогосоюза (1977). в 1967 году в составе советского союза состоялся в 1952 году в составесоветско-финской войны 1877 - 1877 годов. в 1966 году в составе советского союзас 1965 года по 1977 год...

• Средний diversity – что-то более разумное:

обещал, на рождество, но спустя семь лет. имя главного рода собственно вновьобразовалась в россии и народном состоянии. после присказа с постановлениемсоюза писателей россии и генеральной диссертации о спортивном училище с 1980года. в 1970-х годах был основан в составе комитета высшего совета театра впольши. в 1957 - 1962 годах - начальник батальона сан-аухаров...

• Высокий diversity – хлебниковская заумь:

обещал, на рождество, но спустя семь лет. имя главы философии пововпели nol-lнози - врайу-7 на луосече. человеческая восстания покторов извоенного чомпдеи э. дроссенбурга, … карл уним-общекрипских. эйелем хфечак от этого спискасравнивала имущно моря в юнасториансический индристское носительскихженатов в церкви испании.... 22

Page 51: Deep Learning V: рекуррентные сети and beyond

Порождение текста с RNN

• Ещё пример – «12 стульев», 3 слоя LSTM размерности 128.

• Низкий diversity:

– вы думаете, что он подвергается опасности? не понимаете на девушки и со всегобольшого секретара. на поставитель из столики с колодции под собой по столовомпод нарипальное одного обедать вы получить стулья. но все не собирался. подводой под события не подошел к двери. он серебренной при столики под водомворобьяниновской порочение и подошел к стулом.

• Средний diversity:

– что это значит?– спросил ипполит матвеевич, вспоминая только подкладка,идиость выкрасть, что уже совершенно всего упасы, по рексе оборанный решалина ним ответственное колоно горячи облиганта ветерность ”правосудель” застояли пределицу и из одобрания из на порахнитостью. но кричался воему тогу.его не смотрел ордеров с мы толстений принимать выдержание то преходитель.

• Высокий diversity:

– ну, и я вы умоли полтуча,– сказал остап, нади гадалкий во столбор не черта ненадо предражало. ответил золотый и стулья и нов. срековое зарабоварил стооспастук, и обычно, и строи тираживым господура моя животую столу, почто неуличного беспарные такиме судьберского есть денегальный извер.

23

Page 52: Deep Learning V: рекуррентные сети and beyond

Порождение текста с RNN

• Последний пример – те же 3 слоя по 128, «Евгений Онегин».

• Низкий diversity – учим стихи наизусть:

но вот уж близко. перед нимиуж белокаменной москвыкак жар, крестами золотымигорят старинные главы.

• Средний diversity – цитируем большими кусками:

не правда ль? вам была не новостьсмиренной девочки, поврамаон был любим... по крайней меретак думал он на супруге.

• Высокий diversity – опять заумь:

простой живеть по полном в,бал уж канит; три несаладо глаза подерень преданьемпоедет, смертаю себя.

24

Page 53: Deep Learning V: рекуррентные сети and beyond

Порошки

А вот порошки из seq2seq-архитектуры на достаточно маленькомдатасете (спасибо Артуру Кадурину):

заходит к солнцу отдаётесьчто он летел а может бытьи вовсе не веду на стенкена поле пять и новый годи почему то по башкев квартире голуби и болии повзрослел и умирать

страшней всего когда ты выпилбез показания зонта

однажды я тебя не вышлои ты

я захожу в макдоналистунадену отраженный дождьпод ужин почему местамии вдруг подставил человек

ты мне привычно верил крышудо дна

я подползает под кроватьючтоб он исписанный пингвини ты мне больше никогдано мы же после русских классикбарто солдаты для любви

25

Page 54: Deep Learning V: рекуррентные сети and beyond

Задачи NLP

Page 55: Deep Learning V: рекуррентные сети and beyond

Задачи NLP

• Синтаксические, более-менее хорошо определённые задачи:

• частеречная разметка (part-of-speech tagging);• морфологическая сегментация (morphological segmentation);• стемминг (stemming) или лемматизация (lemmatization);• выделение границ предложения (sentence boundarydisambiguation);

• пословная сегментация (word segmentation);• распознавание именованных сущностей (named entityrecognition);

• разрешение смысла слов (word sense disambiguation);• синтаксический парсинг (syntactic parsing);• разрешение кореференций (coreference resolution).

27

Page 56: Deep Learning V: рекуррентные сети and beyond

Задачи NLP

• Но и для этого нужно понимание текста:

• Разрешение анафоры:• «мама вымыла раму, и теперь она блестит»;• «мама вымыла раму, и теперь она устала».

27

Page 57: Deep Learning V: рекуррентные сети and beyond

Задачи NLP

• Более сложные задачи, которые ещё чаще требуютпонимания, но правильные ответы и метрики качества легкопридумать:

• языковые модели (language models);• анализ тональности (sentiment analysis);• выделение отношений или фактов (relationship extraction,fact extraction);

• ответы на вопросы (question answering).

27

Page 58: Deep Learning V: рекуррентные сети and beyond

Задачи NLP

• Задачи, где нужно не только понять текст, но и породитьновый текст:

• собственно порождение текста (text generation);• автоматическое реферирование (automatic summarization);• машинный перевод (machine translation);• диалоговые модели (dialog and conversational models).

• И для всего этого многообразия и великолепия есть моделив виде глубоких нейронных сетей.

27

Page 59: Deep Learning V: рекуррентные сети and beyond

Распределённые представленияслов и других объектов

Page 60: Deep Learning V: рекуррентные сети and beyond

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

Page 61: Deep Learning V: рекуррентные сети and beyond

Word embeddings

• CBOW предсказывает слово из локального контекста:• входы – one-hot представления слов размерности 𝑉 ;• скрытый слой – матрица представлений слов 𝑊 ;• выход скрытого слоя – среднее векторов слов контекста;• на выходе получаем оценку 𝑢𝑗 для каждого слова и берём

softmax:𝑝(𝑖|𝑐1, … , 𝑐𝑛) = exp(𝑢𝑗)

∑𝑉𝑗′=1 exp(𝑢𝑗′ )

.

29

Page 62: Deep Learning V: рекуррентные сети and beyond

Word embeddings

• Skip-gram предсказывает слова контекста из текущего слова:

• предсказываем каждое слово контекста из центрального;• теперь несколько мультиномиальных распределений и по

softmax для каждого слова контекста:

𝑝(𝑐𝑘|𝑖) =exp(𝑢𝑘𝑐𝑘 )

∑𝑉𝑗′=1 exp(𝑢𝑗′ )

.

29

Page 63: Deep Learning V: рекуррентные сети and beyond

Представления слов

• Как обучить такую модель?• Например, в skip-gram выбираем 𝜃 так, чтобымаксимизировать

𝐿(𝜃) = ∏𝑖∈𝐷

⎛⎜⎝

∏𝑐∈𝐶(𝑖)

𝑝(𝑐 ∣ 𝑖; 𝜃)⎞⎟⎠

= ∏(𝑖,𝑐)∈𝐷

𝑝(𝑐 ∣ 𝑖; 𝜃),

параметризуем

𝑝(𝑐 ∣ 𝑖; 𝜃) = exp(��⊤𝑐 𝑤𝑖)

∑𝑐′ exp(��⊤𝑐′𝑤𝑖)

.

30

Page 64: Deep Learning V: рекуррентные сети and beyond

Представления слов

• Теперь общее правдоподобие равно

arg max𝜃

∏(𝑖,𝑐)∈𝐷

𝑝(𝑐 ∣ 𝑖; 𝜃) = arg max𝜃

∑(𝑖,𝑐)∈𝐷

𝑝(𝑐 ∣ 𝑖; 𝜃) =

= arg max𝜃

∑(𝑖,𝑐)∈𝐷

(exp(��⊤𝑐 𝑤𝑖) − log ∑

𝑐′exp(��⊤

𝑐′𝑤𝑖)) ,

и его можно максимизировать отрицательнымсэмплированием (negative sampling).

• Вопрос: зачем нужно разделять векторы �� и 𝑤?

30

Page 65: Deep Learning V: рекуррентные сети and beyond

Представления слов

• 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

Page 66: Deep Learning V: рекуррентные сети and beyond

Представления слов

• Обучаем функцию 𝐹(𝑤𝑖, 𝑤𝑗; ��𝑘) = 𝑝𝑖𝑗𝑝𝑘𝑗

.• Ещё проще – обучаем

𝐹((𝑤𝑖 − 𝑤𝑗)⊤ ��𝑘) = 𝐹 (𝑤⊤

𝑖 ��𝑘)𝐹 (𝑤⊤

𝑗 ��𝑘)= 𝑝𝑖𝑗

𝑝𝑘𝑗.

• Это фактически должна быть экспонента:

𝑤⊤𝑖 ��𝑘 = log(𝑝𝑖𝑘) = log(𝑋𝑖𝑘) − log(𝑋𝑖).

• Можно спрятать log(𝑋𝑖) как 𝑤⊤𝑖 ��𝑘 + 𝑏𝑖 + 𝑏𝑘 = log(𝑋𝑖𝑘).

• И целевая функция у GloVe будет

𝐽 =𝑉

∑𝑖,𝑗=1

𝑓(𝑋𝑖𝑗) (𝑤⊤𝑖 ��𝑗 + 𝑏𝑖 + 𝑏𝑗 − log 𝑋𝑖𝑗)

2.

• Демо: ближайшие соседи, геометрические соотношения. 30

Page 67: Deep Learning V: рекуррентные сети and beyond

Как использовать векторы слов

• Теперь можно просто строить нейронные сети поверхвложений.

• Например, стандартные LSTM для анализа тональности:

• Обучаем seq2seq для моделирования языка, затемиспользуем последний выход или средний выход длятональности.

31

Page 68: Deep Learning V: рекуррентные сети and beyond

Как использовать векторы слов

• Или CNN с одномерными свёртками:

31

Page 69: Deep Learning V: рекуррентные сети and beyond

Примеры представлений слов

• Примеры по-русски:• ближайшие соседи слова конференция:

пресс-конференция 0.6919программа 0.6827выставка 0.6692

ассоциация 0.6638кампания 0.6406ярмарка 0.6372

экспедиция 0.6305презентация 0.6243

сходка 0.6162встреча 0.6100

32

Page 70: Deep Learning V: рекуррентные сети and beyond

Примеры представлений слов

• Антонимы тоже подходят:• ближайшие соседи слова любовь:

жизнь 0.5978нелюбовь 0.5957приязнь 0.5735

боль 0.5547страсть 0.5520

• ближайшие соседи слова синоним:

антоним 0.5459эвфемизм 0.4642анаграмма 0.4145

омоним 0.4048оксюморон 0.3930

32

Page 71: Deep Learning V: рекуррентные сети and beyond

Примеры представлений слов

• Русский сексизм:• ближайшие соседи слова программист:

компьютерщик 0.5618программер 0.4682электронщик 0.4613автомеханик 0.4441криптограф 0.4316

• ближайшие соседи слова программистка:

стажерка 0.4755инопланетянка 0.4500американочка 0.4481

предпринимательница 0.4442студенточка 0.4368

32

Page 72: Deep Learning V: рекуррентные сети and beyond

Примеры представлений слов

• Какими будут• ближайшие соседи слова комендантский?

32

Page 73: Deep Learning V: рекуррентные сети and beyond

Примеры представлений слов

• Какими будут• ближайшие соседи слова комендантский:

неурочный 0.7276неровен 0.7076урочный 0.6849ровен 0.6756

предрассветный 0.5867условленный 0.5597

32

Page 74: Deep Learning V: рекуррентные сети and beyond

Вверх и вниз от представлений слов

• Представления слов – первый шаг многих нейросетевыхмоделей в NLP.

• Но от представлений слов можно двигаться в обоихнаправлениях.

• Во-первых, предложение – не обязательно сумма своих слов.• Во-вторых, слово не так уж атомарно, как модели хотелосьбы думать.

33

Page 75: Deep Learning V: рекуррентные сети and beyond

Представления предложений

• Как комбинировать векторы слов в векторы «кусков текста»?• Простейшая идея: берём сумму и/или среднеепредставлений слов как представлениепредложения/абзаца:

• это baseline в (Le and Mikolov 2014) и многих других работах;• разумный метод для коротких фраз в (Mikolov et al. 2013);• и довольно эффективно работает для реферирования в(Kageback et al. 2014).

• Совсем не так плохо, скорее всего как раз из-загеометрических соотношений.

34

Page 76: Deep Learning V: рекуррентные сети and beyond

Представления предложений

• Как комбинировать векторы слов в векторы «кусков текста»?• Distributed Memory Model of Paragraph Vectors (PV-DM) (Le andMikolov 2014):

• вектор абзаца – дополнительный вектор для каждого абзаца;• служит «памятью» для более глобального контекста.

34

Page 77: Deep Learning V: рекуррентные сети and beyond

Представления предложений

• Как комбинировать векторы слов в векторы «кусков текста»?

• Distributed Bag of Words Model of Paragraph Vectors (PV-DBOW)(Le and Mikolov 2014):

• модель предсказывает слова, случайно выбранные из данногоабзаца;

• и вектор абзаца помогает предсказывать слова из этогоабзаца во всех локальных контекстах.

34

Page 78: Deep Learning V: рекуррентные сети and beyond

Представления предложений

• Как комбинировать векторы слов в векторы «кусков текста»?

• Свёрточные архитектуры (Ma et al., 2015; Kalchbrenner et al.,2014).

• (Kiros et al. 2015): skip-thought векторы, обучаются из skip-gramвекторов на предложениях.

• (Djuric et al. 2015): моделирует большие потоки текстовиерархическими нейросетевыми моделями.

34

Page 79: Deep Learning V: рекуррентные сети and beyond

Глубокие рекурсивные сети

• Рекурсивные нейронные сети (recursive neural networks;Socher et al., 2012):

• нейронная сеть сворачивает представление куска текста в двухподдеревьях, проходя от слов до корня деревасинтаксического разбора.

35

Page 80: Deep Learning V: рекуррентные сети and beyond

Глубокие рекурсивные сети

• Рекурсивные нейронные сети (recursive neural networks;Socher et al., 2012):

• можно представлять узел матрицей и вектором;• в целом очень эффективный подход к анализу тональности(Socher et al. 2013).

35

Page 81: Deep Learning V: рекуррентные сети and beyond

Глубокие рекурсивные сети

• Глубокие рекурсивные сети для анализа тональности (Irsoy,Cardie, 2014).

• Первая идея: отделим листья от внутренних узлов; вместоприменения одних и тех же весов

𝑥𝑣 = 𝑓(𝑊𝐿𝑥𝑙(𝑣) + 𝑊𝑅𝑥𝑟(𝑣) + 𝑏)

теперь будут разные матрицы для листьев (слов) ивнутренних узлов:

• теперь внутренняя размерность может быть меньше;• и можно использовать ReLU, т.к. теперь нет проблемы сразреженными входами и плотными внутренними узлами.

36

Page 82: Deep Learning V: рекуррентные сети and beyond

Глубокие рекурсивные сети

• Вторая идея – добавим в иерархическое представлениеглубины: ℎ(𝑖)

𝑣 = 𝑓(𝑊 (𝑖)𝐿 ℎ(𝑖)

𝑙(𝑣) + 𝑊 (𝑖)𝑅 ℎ(𝑖)

𝑟(𝑣) + 𝑉 (𝑖)ℎ(𝑖−1)𝑣 + 𝑏(𝑖)).

• Прекрасная архитектура для анализа тональности... если,конечно, есть деревья разбора.

• Stanford Sentiment TreeBank есть; а по-русски непонятно...

36

Page 83: Deep Learning V: рекуррентные сети and beyond

Character-level models

• Важные недостатки векторов слов:• векторы независимы, а слова нет (морфология);• то же относится к словам не из словаря (новым, очень редким);• модель очень большая получается, если все слова обучать.

• Например, слово “polydistributional” даёт 48 результатов вGoogle, так что вы его скорее всего никогда не видели, иобучаться не на чем:

• Понимаете, что оно значит? Я тоже понимаю.

37

Page 84: Deep Learning V: рекуррентные сети and beyond

Character-level models

• Отсюда идея character-level representations:• сначала раскладывали слово на морфемы (Luong et al. 2013;Botha and Blunsom 2014; Soricut and Och 2015);

• но тогда надо делать морфологический анализ, тоже непросто;• два естественных подхода на буквах: LSTM/GRU и CNN;• в любом случае, модель медленная, но к каждому словуприменять не обязательно, можно частично закешироватьзаранее.

37

Page 85: Deep Learning V: рекуррентные сети and beyond

Character-level models

• C2W (Ling et al. 2015) основано на двунаправленных LSTM:

37

Page 86: Deep Learning V: рекуррентные сети and beyond

Character-level models

• ConvNet (Zhang et al. 2015): понимание текста с нуля, с букв,целиком на CNN.

• Character-level модели становятся всё важнее и нужнее,особенно для (1) морфологически богатых языков и (2)порождённых пользователями текстов.

37

Page 87: Deep Learning V: рекуррентные сети and beyond

Character-level models

• Подход Deep Structured Semantic Model (DSSM) (Huang et al.,2013; Gao et al., 2014a; 2014b):

• sub-word embeddings: представим слово как множествотриграмм букв;

• словарь теперь |𝑉 |3 (десятки тысяч вместо миллионов), ноколлизии очень редки;

• представление устойчиво к опечаткам и т.п. (очень важно дляпорождённых пользователями текстов).

37

Page 88: Deep Learning V: рекуррентные сети and beyond

Пример модели: Kim et al., 2015

• Пример современной character-based языковой модели (Kimet al., 2015):

• Объединяет CNN, RNN, highway networks, embeddings...

38

Page 89: Deep Learning V: рекуррентные сети and beyond

Вектора слов с внешней информацией

• Другие модификации представлений слов добавляютвнешнюю информацию.

• Например, модель RC-NET (Xu et al. 2014) расширяетskip-gram семантическими и синтаксическими отношениямии знаниями.

39

Page 90: Deep Learning V: рекуррентные сети and beyond

Вектора слов с внешней информацией

• И базовый word2vec получает регуляризатор для каждогоотношения в базе, пытаясь выразить его линейнымсоотношением:

𝑤Hinton − 𝑤Wimbledon ≈ 𝑟born at ≈ 𝑤Euler − 𝑤Basel

39

Page 91: Deep Learning V: рекуррентные сети and beyond

Разрешение смысла слов

• Другая важная проблема для всех моделей выше – омонимы.• Как различить разные смыслы слова? Беда:

• в модели обычно обучится только один смысл;• давайте проверим ближайших соседей слова коса и другихомонимов.

• Надо добавить скрытые переменные для разных возможныхсмыслов и потом вывести их из контекста.

• Чтобы обучить смыслы со скрытыми переменными —стохастический вариационный вывод (Bartunov et al., 2015).

40

Page 92: Deep Learning V: рекуррентные сети and beyond

Общие подходы

Page 93: Deep Learning V: рекуррентные сети and beyond

DSSM

• Ещё один общий подход к NLP на основе CNN – DeepStructured Semantic Model (DSSM) (Huang et al., 2013; Gao et al.,2014a; 2014b):

• классификация (распознавание речи, языковые модели,картинки).

42

Page 94: Deep Learning V: рекуррентные сети and beyond

DSSM

• Ещё один общий подход к NLP на основе CNN – DeepStructured Semantic Model (DSSM) (Huang et al., 2013; Gao et al.,2014a; 2014b):

• векторные правильные ответы для семантической похожести.

42

Page 95: Deep Learning V: рекуррентные сети and beyond

DSSM

• Ещё один общий подход к NLP на основе CNN – DeepStructured Semantic Model (DSSM) (Huang et al., 2013; Gao et al.,2014a; 2014b):

• чтобы обучить с векторными ответами – принцип отражения(reflection): притягиваем похожие, отталкиваем непохожие.

42

Page 96: Deep Learning V: рекуррентные сети and beyond

DSSM

• Это давняя идея сиамских сетей (Bromley et al., 1994)

42

Page 97: Deep Learning V: рекуррентные сети and beyond

DSSM

• DSSM можно применять в самых разных контекстах, если естьдатасет: семантические embeddings, ответ на вопросы(фактологические), рекомендации и т.д.

• Например, для information retrieval: притягиваем вместедокументы и запросы, которым они релевантны,отталкиваем нерелевантные.

• В ноябре 2016 Яндекс выпустил пост о том, что онииспользуют (модифицированный) DSSM в их новомпоисковом алгоритме Палех.

42

Page 98: Deep Learning V: рекуррентные сети and beyond

Cинтаксический разбор

Page 99: Deep Learning V: рекуррентные сети and beyond

Cинтаксический разбор

• Как же всё-таки построить деревья разбора?

44

Page 100: Deep Learning V: рекуррентные сети and beyond

Cинтаксический разбор

• Сейчас обычно continuous-state parsing: текущее состояниепарсера – вектор из ℝ𝑑.

• Stack LSTMs (Dyer et al., 2015) – парсер управляет тремяструктурами данных:(1) буфер 𝐵 содержит последовательность слов;(2) стек 𝑆 хранит частично построенные деревья;(3) список 𝐴 действий, которые уже были предприняты парсером.

44

Page 101: Deep Learning V: рекуррентные сети and beyond

Cинтаксический разбор с морфологией

• Важное расширение (Ballesteros et al., 2015):• надо учесть морфологию, так что представим словодвунаправленным character-level LSTM;

• результаты становятся лучше на ряде языков (а русскогопочему-то нет – дерзайте).

45

Page 102: Deep Learning V: рекуррентные сети and beyond

Метрики качества для sequence-to-sequence моделей

• Дальше будет самое интересное: машинный перевод,диалоговые модели, ответ на вопросы.

• Но как мы будем оценивать NLP-модели, которые генерируюттекст?

• Есть метрики качества, которые сравнивают результат справильными ответами:

• BLEU (Bilingual Evaluation Understudy): перевзвешеннаяprecision (в т.ч. для нескольких правильных ответов);

• METEOR: гармоническое среднее precision и recall поуниграммам;

• TER (Translation Edit Rate): число исправлений между выходоми правильным ответом, делённое на среднее число слов;

• LEPOR: комбинируем базовые факторы и метрики снастраиваемыми параметрами.

• Есть ещё куча метрик, связанных с представлениями слов ипредложений (хотим поближе к правильному ответу).

• Одна только проблема...46

Page 103: Deep Learning V: рекуррентные сети and beyond

Метрики качества для sequence-to-sequence моделей

• ...всё это вообще не работает.

• Тут нужно что-то новое.

47

Page 104: Deep Learning V: рекуррентные сети and beyond

Машинный перевод:encoder-decoderи внимание

Page 105: Deep Learning V: рекуррентные сети and beyond

Машинный перевод

• Перевод – очень хорошая задача:• очевидно очень практическая;• очевидно очень высокоуровневая, требует понимания;• считается довольно неплохо квантифицируемой (BLEU, TER –хотя см. выше);

• имеет большие доступные датасеты параллельных переводов.

49

Page 106: Deep Learning V: рекуррентные сети and beyond

Машинный перевод

• Статистический машинный перевод (statistical machinetranslation, SMT): моделируем условную вероятность 𝑝(𝑦 ∣ 𝑥)перевода 𝑦 при условии исходного текста 𝑥.

• Классический SMT: моделируем log 𝑝(𝑦 ∣ 𝑥) линейнойкомбинацией признаков, строим признаки.

49

Page 107: Deep Learning V: рекуррентные сети and beyond

Машинный перевод

• Нам больше интересно моделированиеsequence-to-sequence:

• RNN естественным образом моделирует последовательность𝑋 = (𝑥1, 𝑥2, … , 𝑥𝑇 ) как 𝑝(𝑥1), 𝑝(𝑥2 ∣ 𝑥1), …,𝑝(𝑥𝑇 ∣ 𝑥<𝑇 ) = 𝑝(𝑥𝑇 ∣ 𝑥𝑇 −1, … , 𝑥1), и теперь 𝑝(𝑋) – это просто

𝑝(𝑋) = 𝑝(𝑥1)𝑝(𝑥2 ∣ 𝑥1) … 𝑝(𝑥𝑘 ∣ 𝑥<𝑘) … 𝑝(𝑥𝑇 ∣ 𝑥<𝑇 );

• так RNN и в языковых моделях используются;• предсказываем следующее слово на основе скрытогосостояния и предыдущего слова;

• Как применить эту идею к переводу?

49

Page 108: Deep Learning V: рекуррентные сети and beyond

Encoder-decoder архитектуры

• Encoder-decoder архитектуры (Sutskever et al., 2014; Cho et al.,2014):

• Сначала кодируем, потом декодируем обратно.

50

Page 109: Deep Learning V: рекуррентные сети and beyond

Encoder-decoder архитектуры

• Так же может работать и с переводом.

• Проблема: надо сжимать всё предложение в один вектор.• С длинными участками текста это вообще перестаётработать.

50

Page 110: Deep Learning V: рекуррентные сети and beyond

Внимание в нейронных сетях

• Решение: давайте обучим специальные веса,показывающие, насколько та или иная часть входа важнадля текущего выхода.

• Это чем-то напоминает механизм внимания у людей: чтопомещать в рабочую память, а что не надо.

• Первые применения в нейросетях – foveal glimpses на RBM(Larochelle, Hinton, 2010)

51

Page 111: Deep Learning V: рекуррентные сети and beyond

Внимание в нейронных сетях

• Прямое применение этой идеи – двунаправленный LSTMплюс внимание (Bahdanau et al. 2014):

51

Page 112: Deep Learning V: рекуррентные сети and beyond

Внимание в нейронных сетях

• Мягкое внимание (soft attention) (Luong et al. 2015a; 2015b;Jean et al. 2015):

• encoder – двунаправленная RNN, есть оба контекста;• сеть внимания выдаёт оценку релевантности – надо липереводить это слово прямо сейчас?

51

Page 113: Deep Learning V: рекуррентные сети and beyond

Внимание в нейронных сетях

• Формально очень просто: считаем веса внимания 𝛼𝑡𝑗 иперевзвешиваем векторы контекстов:

𝑒𝑡𝑗 = 𝑎(𝑧𝑡−1, 𝑗), 𝛼𝑡𝑗 = softmax(𝑒𝑡𝑗; 𝑒𝑡∗),𝑐𝑡 = ∑

𝑗𝛼𝑡𝑗ℎ𝑗, и теперь 𝑧𝑡 = 𝑓(𝑠𝑡−1, 𝑦𝑡−1, 𝑐𝑖).

51

Page 114: Deep Learning V: рекуррентные сети and beyond

Внимание в нейронных сетях

• В результате можно визуализировать, на что смотрит сеть:

51

Page 115: Deep Learning V: рекуррентные сети and beyond

Внимание в нейронных сетях

• Получается гораздо лучше порядок слов:

51

Page 116: Deep Learning V: рекуррентные сети and beyond

Внимание в нейронных сетях

• Конечно, есть и другие применения механизмов внимания.• Show, Attend, and Tell (Xu et al., 2015): генерируем подписи крисункам.

51

Page 117: Deep Learning V: рекуррентные сети and beyond

Внимание в нейронных сетях

• Soft attention vs. hard attention (стохастически выбираемоднозначный кусок картинки).

• Hard attention обучается максимизацией вариационнойнижней оценки (об этом позже).

51

Page 118: Deep Learning V: рекуррентные сети and beyond

Внимание в нейронных сетях

• Часто получаются очень хорошие результаты:

51

Page 119: Deep Learning V: рекуррентные сети and beyond

Внимание в нейронных сетях

• Ещё ближе к теме – «Grammar as a Foreign Language» (Vinyalset al., 2015)

51

Page 120: Deep Learning V: рекуррентные сети and beyond

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

Page 121: Deep Learning V: рекуррентные сети and beyond

Google Translate

• Сентябрь 2016: Wu et al., Google’s Neural Machine TranslationSystem: Bridging the Gap between Human and MachineTranslation:

• просто stacked LSTM перестают работать далее 4-5 уровней;• поэтому добавляют остаточные связи, как в ResNet:

52

Page 122: Deep Learning V: рекуррентные сети and beyond

Google Translate

• Сентябрь 2016: Wu et al., Google’s Neural Machine TranslationSystem: Bridging the Gap between Human and MachineTranslation:

• нижний уровень, естественно, двунаправленный:

52

Page 123: Deep Learning V: рекуррентные сети and beyond

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

Page 124: Deep Learning V: рекуррентные сети and beyond

Teaching machines to read

• (Hermann et al., 2015): «Teaching machines to read andcomprehend» (Google DeepMind)

• Предлагают новый способ построить датасет для понимания,автоматически создавая тройки (context, query, answer) изтекстов новостей и т.п.

53

Page 125: Deep Learning V: рекуррентные сети and beyond

Teaching machines to read

• Базовая модель – глубокий LSTM:

• Но так, конечно, совсем плохо работает.

53

Page 126: Deep Learning V: рекуррентные сети and beyond

Teaching machines to read

• Attentive Reader: обучаемся, на какую часть документасмотреть

53

Page 127: Deep Learning V: рекуррентные сети and beyond

Teaching machines to read

• Impatient Reader: можем перечитывать нужные частидокумента по мере прочтения запроса

53

Page 128: Deep Learning V: рекуррентные сети and beyond

Teaching machines to read

• Получаются разумные карты внимания:

53

Page 129: Deep Learning V: рекуррентные сети and beyond

Attention is all you need

• 12 июня 2017: «Attention is all you need» (Vaswani et al., Google)

54

Page 130: Deep Learning V: рекуррентные сети and beyond

Attention is all you need

• Ничего, кроме внимания!• Параллельные карты внимания, объединённые в матрицы:

• Self-attention: каждая позиция encoder’а может внимательнопосмотреть на каждую позицию предыдущего уровня.

• Результаты SMT лучше state of the art, а обучается в сто разбыстрее.

54

Page 131: Deep Learning V: рекуррентные сети and beyond

Диалоговые модели

Page 132: Deep Learning V: рекуррентные сети and beyond

Диалоговые модели

• Диалоговые модели пытаются предсказать развитие диалогаили прямо активно разговаривают с человеком.

• (Vinyals, Le, 2015) используют seq2seq и encoder-decoder длядиалога:

• предыдущие предложения ABC подаём как контекст RNN;• следующее слово ответа WXYZ предсказываем из предыдущегои скрытого состояния.

• Датасеты: общие (MovieSubtitles) и в конкретном домене (IThelpdesk). 56

Page 133: Deep Learning V: рекуррентные сети and beyond

Диалоговые модели

• 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

Page 134: Deep Learning V: рекуррентные сети and beyond

Диалоговые модели

• HRED (Serban et al. 2015):

56

Page 135: Deep Learning V: рекуррентные сети and beyond

Диалоговые модели

• Некоторые недавние результаты и расширения:• (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

Page 136: Deep Learning V: рекуррентные сети and beyond

Отвечаем на вопросы

Page 137: Deep Learning V: рекуррентные сети and beyond

Отвечаем на вопросы

• Question answering (QA) – одна из сложнейших задач, тожеочень близка к пониманию.

• О каких вопросах речь:• легко найти датасеты из information retrieval;• фактические вопросы (тривия) из баз знаний;• классификация в случае вопросов на multiple choice (QuizBowl); тут хорошо работает отобразить вопрос и ответы всемантическое пространство и искать там ближайших соседей(Socher et al. 2014);

• но это всё не совсем то.

• (Weston et al. 2015): датасет простых вопросов, которые «нетребуют дополнительных знаний».

• Но требуют умения рассуждать и понимать семантику...

58

Page 138: Deep Learning V: рекуррентные сети and beyond

Отвечаем на вопросы

• Примеры вопросов: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

Page 139: Deep Learning V: рекуррентные сети and beyond

Отвечаем на вопросы

• Наивный подход – породить представления вопроса иответа, совместить, отвечать:

• Проблема в том, что надо запомнить контекст напротяжении всего вопроса... 58

Page 140: Deep Learning V: рекуррентные сети and beyond

Отвечаем на вопросы

• ...так что сейчас state of the art – это memory networks (Westonet al. 2014).

• Есть массив объектов (память) и обучаемые компоненты:I (input feature map) преобразует вход во внутреннеепредставление;

G (generalization) обновляет память после нового входа;O (output feature map) порождает выход по входу и состояниюпамяти;

R (response) конвертирует выход O в нужный формат (генератортекста, например).

58

Page 141: Deep Learning V: рекуррентные сети and beyond

Отвечаем на вопросы

• Dynamic memory networks (Kumar et al. 2015): эпизодическаяпамять, которая выбирает, на какой части входафокусироваться при помощи механизма внимания.

58

Page 142: Deep Learning V: рекуррентные сети and beyond

Отвечаем на вопросы

• End-to-end memory networks (Sukhbaatar et al. 2015):непрерывная версия с несколькими шагами вычислений накаждый выход.

58

Page 143: Deep Learning V: рекуррентные сети and beyond

Отвечаем на вопросы

• Должно примерно так работать:

58

Page 144: Deep Learning V: рекуррентные сети and beyond

Отвечаем на вопросы

• Вообще идея того, чтобы обучать управляющие алгоритмы,может пойти далеко.

• Neural Turing Machines (Graves et al., 2014):

• Читают из памяти с весами вроде внимания, стирают память,пишут в неё.

58

Page 145: Deep Learning V: рекуррентные сети and beyond

Отвечаем на вопросы

• Веса получаются механизмом адресации:

• Можно обучать с подкреплением (Zaremba, Sutskever, 2015):

58

Page 146: Deep Learning V: рекуррентные сети and beyond

Отвечаем на вопросы

• Есть и другие расширения.• Пока не до конца понятно, как связать memory networks сбазами знаний, собственно.

• Впереди много интересного. Например...

58

Page 147: Deep Learning V: рекуррентные сети and beyond

Что? Где? Когда?

• «Что? Где? Когда?» иногда выглядит так...

59

Page 148: Deep Learning V: рекуррентные сети and beyond

Что? Где? Когда?

• ...но обычно примерно так:

59

Page 149: Deep Learning V: рекуррентные сети and beyond

Что? Где? Когда?

• Команды из ≤ 6 игроков отвечают на вопросы.• db.chgk.info – база около 300K вопросов.• Некоторые из «Своей игры», в которой вопросы обычногораздо интереснее Jeopardy:

• ЛоготипыЕГО логотип — сочетание рун «беркана» и «хаглаз», инициаловконунга Харальда.

• СокращенияУчитывая ЕГО большую роль в создании первых танков, этитанки часто шутливо именовали ватерклозетами.

• ЛошадиЕГО попытка приударить за галисийскими кобылицамиокончилась печальным образом.

59

Page 150: Deep Learning V: рекуррентные сети and beyond

Что? Где? Когда?

• А большинство – вопросы «Что? Где? Когда?», ещё сложнее:• Однажды Ричард Фейнман объяснял своей девушке, почему Декартговорил глупости, когда доказывал существование Бога. Не желаяввязываться в спор, девушка сказала, что на любой предмет, видимо,можно посмотреть с разных сторон. Ответьте двумя словами: чтосделал Фейнман в ответ на это?

• Вторая соответствовала богохульству, третья — подделке денег илидокументов, четвёртая — пьянству. А чему соответствовала первая?

• На самом деле чехословацкая линейка аудиотехники ирадиокомпонентов получила название потому, что это слаботочнаятехника. Напишите это название.

• Одна из конструкций математической логики рассматриваетбессмертного агента, который в каждый момент времени должен либосовершить действие, либо формально доказать, что он совершит этодействие в один из последующих моментов времени. Название этойконструкции состоит из двух слов, начинающихся на одну и ту же букву.Напишите это название.

• Отличный и пока нереально сложный датасет. Когда? :)

59

Page 151: Deep Learning V: рекуррентные сети and beyond

Спасибо!

Спасибо за внимание!

60