Это 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)
Пример на рисунке показывает t3Скрытое состояние в момент времени h3зависит от текущего входа x3и контекстный вектор c предыдущего момента2.
где сiвыход h скрытого слоя в i-й момент времениiс существующим ч1,... , чiВыполните расчет веса, чтобы получить список весов.1,..., аi, и, наконец, средневзвешенное суммирование выходных данных скрытого слоя и соответствующих им весовых параметров для получения ci. Что касается метода расчета удельного веса иAttentionМетод, упомянутый в статье, тот же и здесь повторяться не будет.
Из примера на рисунке можно 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.