Помогите вам легко понять принцип самоконтроля

NLP

Это 21-й день моего участия в Gengwen Challenge, смотрите подробности мероприятия:Обновить вызов

введение

Ранее мы представили использование Attention для повышения производительности Seq2Seq и применили Attention к частям Seq2Seq, связанным с кодировщиком и декодером. В этой статье мы вводим само-внимание, и внимание можно использовать только частично.

Может ли Само-Внимание воздействовать на LSTM в статье, здесь я упрощу процесс и представлю идею с SimpleRNN вместо LSTM.

Основной принцип SimpleRNN + Self-Attention

[SimpleRNN находит hiМетоды】

мы былиSimpleRNNнайти чi, осуществляется по следующей формуле:

hi = tanh(A * concat(xi, hi-1)+b)

Объясните, что состояние скрытого слоя в текущий момент зависит от текущего входа xiи вход состояния скрытого слоя h в предыдущий моментi-1.

[SimpleRNN + Самостоятельное внимание, чтобы найти hiМетоды】

Когда вводится само-внимание, SimpleRNN находит hiМетод изменился, и осуществляется он по идее следующей формулы:

hi = tanh(A * concat(xi, ci-1)+b)

self-attention-h.jpg

Пример на рисунке показывает t3Скрытое состояние в момент времени h3зависит от текущего входа x3и контекстный вектор c предыдущего момента2.

где сiвыход h скрытого слоя в i-й момент времениiс существующим ч1,... , чiВыполните расчет веса, чтобы получить список весов.1,..., аi, и, наконец, средневзвешенное суммирование выходных данных скрытого слоя и соответствующих им весовых параметров для получения ci. Что касается метода расчета удельного веса иAttentionМетод, упомянутый в статье, тот же и здесь повторяться не будет.

self-attention-c.jpg

Из примера на рисунке можно c3ч1, ч2, ч3и соответствующие им веса a1, а2, а3Средневзвешенная сумма .

Кроме того, вы можете подумать о переходе на более сложную идею расчета.Другие конкретные процессы такие же, как и выше:

hi = tanh(A * concat(xi, ci-1, hi-1,)+b)

Суммировать

  • Самостоятельное внимание, как и внимание, может решить проблему забывания моделей, подобных RNN, и выводить h каждый раз, когда вычисляется текущий скрытый слой.i, всегда используйте ci-1Давайте рассмотрим предыдущую информацию, чтобы вы могли вспомнить предыдущую информацию. Но c в самовниманииiВычисление может быть выполнено в его собственной структуре RNN вместо того, чтобы охватывать две структуры RNN декодера и кодировщика, как Attention в Seq2Seq, то есть c декодера.iЗависит от всех выходных данных скрытого слоя кодировщика.

  • Self-Attention можно применять к любой модели класса RNN для повышения производительности, такой как LSTM и так далее.

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

Ссылаться на

Cheng J , Dong L , Lapata M . Long Short-Term Memory-Networks for Machine Reading[C]// Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing. 2016.