Вот реализация механизма внимания Bahdanau, созданного путем изменения встроенной ячейки GRU в Keras:
https://github.com/erelcan/keras_bahdanau
Для каждого временного шага в декодере контекстный вектор долженвычисляться и использоваться для вычисления выходных данных этого шагаДля вычисления вектора контекста для шага (t) требуется состояние декодера шага (t-1) и аннотация (вывод кодера) на шаге (t) (см. Приложение 2.2 к [1]).Поэтому нам нужно вычислить вектор контекста при выполнении повторяющихся шагов, в отличие от работ [2], [3] (см. Подробное руководство, которым я поделился в репозитории github).
Следовательно, мне интересно, подходят ли подходыв [2] или [3] идентичны подходу в [1], или они являются своего рода приближением или просто другим подходом.
Буду признателен за любые отзывы о моей реализации с точки зрения правильности в теории иэффективность на практике.Также приветствуются любые тестовые примеры.
[1] ПЕРЕВОД НЕЙРОННОЙ МАШИНЫ СОВМЕСТНЫМ ОБУЧЕНИЕМ ВЫРАВНИВАНИЯ И ПЕРЕВОДА
[2] https://towardsdatascience.com/light-on-math-ml-attention-with-keras-dc8dbc1fad39
[3] https://github.com/philipperemy/keras-attention-mechanism