Я пытаюсь добавить слой внимания для моей модели классификации текста. Входные данные представляют собой тексты (например, просмотр фильма), выходные данные представляют собой двоичный результат (например, положительный или отрицательный).
model = Sequential()
model.add(Embedding(max_features, 32, input_length=maxlen))
model.add(Bidirectional(CuDNNGRU(16,return_sequences=True)))
##### add attention layer here #####
model.add(Dense(1, activation='sigmoid'))
После некоторого поиска я обнаружил пару читаемых слоев внимания для кера,Существует слой keras.layers.Attention
, который встроен в Keras. В пакете keras-self-Внимание также есть SeqWeightedAttention
и SeqSelfAttention layer
. Как человек, который является относительно новым в области глубокого обучения, мне трудно понять механизм, стоящий за этими слоями.
Что делает каждый из этих слоев? Какой из них будет лучшим для моей модели?
Большое спасибо!