Модель Sequence-Sequence с механизмом Attention

Существуют модели Encoder-Decoder — seq2seq, которые способны решать многие проблемы, такие как машинный перевод, субтитры к изображениям и многие другие. Затем Зачем нам нужны усовершенствованные модели последовательностей, такие как модель внимания?

Хотя бы раз каждый из вас мог слышать речь переводчика на политических встречах или в кино. Как они тогда переводятся? — Перевод не произойдет после того, как оратор завершит всю речь. Вместо этого это делается с интервалами/паузами после каждого предложения.

Чтобы найти более интуитивное объяснение — предположим, что у вас есть друг, который остается в Германии. Она приехала в Индию, чтобы исследовать страну и понять наследие и культуру Индии. Она пригласила вас сопровождать ее на протяжении всего тура. Вы оба были в деревне, известной горной стоянке в южной части Индии. Люди там говорят на местном языке, и вы знаете этот язык. Вы, ваш немецкий друг и местный гид разговариваете. Вам нужно перевести разговор своему другу. Как бы вы это сделали?

Процесс 1. Вы завершаете весь разговор с гидом, затем запоминаете весь разговор, а затем переводите его своему немецкому другу?

Процесс-2: Обычно мы задаем вопрос гиду — ждем ответа, а затем он отвечает на него одним предложением (или) двумя предложениями — затем мы переводим его нашему немецкому другу, а затем задайте следующий вопрос гиду.

Процесс-1 — это простой подход Кодировщик-декодер, а Процесс-2механизм внимания.

Почему Процесс-1 не оптимален?Это не то, как поступают люди! а также проблема с этим подходом — предположим, есть английский предложение из 100 слов и хотел перевести его на телугу предложение — если хотел перевести после прочтения всех 100 слов в английском предложении, а затем запомнить его и в процессе перевода, есть шанс потерять суть фактического значения предложения.

Люди следуют подходу Process-2, и фактически механизм ВНИМАНИЯ основан на подходе человеческого перевода.

Человеческий подход к переводу — люди сосредотачивают свое ВНИМАНИЕ на нескольких словах и генерируют результат, затем — переключают свое внимание ВНИМАНИЕ на следующие несколько слов, затем — снова генерируется вывод. Итак, для создания выходной последовательности — люди постоянно переключают свое ВНИМАНИЕ с одной последовательности слов на другую последовательность слов.

Я думаю, я дал много введения в тему. Давайте перейдем к фактической модели и ее реализации.

Примечание. Эта модель требует больших вычислительных ресурсов. Итак, мне нужно использовать много рукописных заметок.

Модели внимания используют двунаправленные рекуррентные структуры.

Почему мы должны использовать двунаправленные рекуррентные структуры? — Я подробно расскажу об этой структуре в одном из следующих блогов. Вкратце: Двунаправленные рекуррентные структуры помогают собирать информацию как в прямом, так и в обратном направлении.

Давайте возьмем простой пример и разберемся в нем. Предположим, у нас есть предложение под названием «Этот блог связан с моделями внимания». Это предложение можно рассматривать как последовательность слов — x1 = «Это», x2 = «блог», x3 = «есть», x4 = «связанный», x5 = «кому», x6 = «Внимание», x7 = 'модели'. В традиционных рекуррентных структурах мы рассматриваем x3в зависимости отx2 и x2 в зависимости от x1. сильный>. Но обычно x3 также может зависеть от x4, x5, а иногда даже от x7. Этот уровень сбора информации отсутствует в традиционных однонаправленных рекуррентных структурах, таких как RNN и LSTM. Таким образом, были разработаны двунаправленные RNN/LSTM, где они могут собирать данные предыдущей последовательности(прямая фаза), а также предстоящие данные последовательности(обратная фаза ), а затем создайте модель на основе данных обеих фаз.

Структура модели внимания

В двунаправленном LSTM используется функция softmax, которая соединяет как прямую фазу, так и обратную фазу сети. . Но в модели внимания — мы используем уровень конкатенации — вместо функции softmax.

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

Терминов много — C_i,h_i, S_i и α_ijвсе они термины будут подробно объяснены, а также мы узнаем, как их вычислить и как они связаны с моделью внимания.

На высоком уровне

h_i — это объединенный слой h_i(прямая фаза →) и h_i (обратная фаза ←) — это h_i из сети кодировщика модели.

S_i — рассматривается как однонаправленный уровень LSTM — этот S_i относится к сети декодера модели.

C_i — это вектор контекста, который также является одним из входных данных для сети декодера.

α_ij — взвешенные вычисления в сети внимания. iзависит от Tx и j зависит отвектора контекста.

О параметрах в модели Внимание

C_i

C_i — это вектор контекста, представляющий собой взвешенную сумму выходных данных двунаправленного LSTM (сеть кодировщика).

Поскольку мы вычисляем для C_1 — мы называем его α_1i —этоi зависит от Tx. Если мы вычислим его для C_2 — мы назовем его α_2i

  • *В качестве параметра регуляризации — все α_ijдолжны быть неотрицательными (α_ij≥ 0) и для каждого context-vector, сумма α_ijдолжна быть равна 1.

α_ij

На самом деле, это основная часть модели, связанная с вниманием. Вычисление α_ijбудет основой для всей модели внимания.

Как вычислить α_ij?

e_ij

α_ij зависит от e_ij

Что такое e_ij?

e_12 зависит от S_0, но почему не от S_1?

Что такое «а» в e_ij = a (S_i-1, h_j)?

Выходные данные e_ij = a (S_i-1, h_j) говорят нам о α_ij→, что говорит нам: «Как большое внимание следует уделить вводному слову

Первоначально предполагается "a" в качестве имени функции в e_ij = a (S_i-1, h_j), но теперь "a" можно рассматривать как часть модели для привлечения внимания.

Понятно, что функция «a» отвечает за введение ВНИМАНИЯ в сеть — но какой должна быть эта функция? — Это может быть хорошая аппроксимирующая функция, называемая нейронная сеть с прямой связью — параметры (S_i-1 и h_j) можно узнать с помощью обратного распространения.

Таким образом, интуитивно говоря, сеть кодировщика (двунаправленный уровень LSTM) подключена к слою внимания, она подключена к сети декодера (uni -направленный LSTM).

В традиционнойсети кодировщик-декодер



и в этой модели уровень ВНИМАНИЕ является одним дополнительным уровнем, добавленным во всю сетевую структуру кодировщик-декодер. Такие модели также называются Моделями с априором.

Недостатки

У каждой модели есть преимущества и недостатки. Преимущества этой модели подробно обсуждаются во вводной части.

Самый большой недостаток этой модели заключается в том, что сложность выполнения модели довольно высока иногда. На самом деле это зависит отTx — допустим, если все входные последовательности в предложении требуются для вычисления контекстного вектора C_i, то сложность выполнения будет составлятьO(n1 * n2) — гдеn1являетсядлиной входного предложения. иn2является длиной выходного предложения.

Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .