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

Вступление..

Доказано, что модели кодеров и декодеров на основе RNN являются очень мощной нейронной архитектурой, которая обеспечивает практическое решение многих задач прогнозирования последовательности для последовательности, таких как машинный перевод, модель ответов на вопросы и резюмирование текста.
Кодировщику в модели поручено построить контекстное представление входной последовательности. Декодер, который использует контекст для генерации выходной последовательности. В контексте RNN, который мы описали в предыдущем блоге, вектор контекста - это, по сути, последнее скрытое состояние последнего временного шага «hn» в цепочке входной последовательности. Этот окончательный вектор скрытого состояния / контекста должен представлять абсолютно все, что касается значения входной последовательности, а окончательный вектор скрытого состояния / контекста - это единственное, что декодер знает о входном тексте.

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

Внимание Механизм ..

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

Чтобы достичь этого, идея внимания состоит в том, чтобы создать вектор контекста «Ci», который представляет собой взвешенную сумму всех скрытых состояний кодировщика. Таким образом, вектор контекста больше не статичен, у нас будут разные векторы контекста на каждом временном шаге декодирования. Вектор контекста «Ci» генерируется заново на каждом шаге i декодирования путем применения взвешенной суммы всех скрытых состояний кодера.

Вес внимания

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

Таким образом, на каждом временном шаге декодирования мы вычисляем контекст «ct», который становится доступным для вычисления скрытого состояния декодирования на временном шаге t. Первым шагом в вычислении ct является вычисление весов / релевантности для каждого состояния кодера. Вес можно рассматривать как оценку релевантности, которую имеет каждое состояние hj кодера при вычислении декодера на временном шаге t.

Внимание к продукту

Мы можем вычислить релевантность или веса, вычислив сходство между скрытым состоянием декодера и скрытым состоянием кодера.

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

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

Параметризованное внимание

Параметризуя функции оценки вместо использования простого скалярного произведения, мы можем получить более мощные функции оценки. где веса Ws изучаются в процессе обучения.

Примечание:

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

Предыдущая: Теория и код НЛП: модели кодировщика-декодера (Часть 11/30)

Далее: НЛП От нуля к одному: Трансформеры (Часть 13/30)