Я занимаюсь разработкой такой языковой модели, как https://pytorch.org/tutorials/beginner/transformer_tutorial.html.
Мне не ясно, нужно ли здесь позиционное кодирование? Насколько я понимаю - это необходимо для задачи языкового перевода, потому что декодер должен иметь возможность позиционировать слово из предыдущего вывода в последовательности из кодера. Но нужно ли это в языковом моделировании без декодера?
Возможно ли, что слова в выходных данных кодера перемешиваются?
Редактировать:
в оригинальной статье нет объяснений. И я не нашел объяснений в уроках (как здесь https://kazemnejad.com/blog/transformer_architecture_positional_encoding/).
Я не понимаю этого:
"Как каждое слово в предложении одновременно протекает через стек кодировщика / декодера трансформатора. Сама модель не имеет никакого значения положения / порядка для каждого слова. "
С моей точки зрения - кодировщик трансформатора имеет информацию о порядке, потому что его вход упорядоченная последовательность (аналогично RNN).
Я попытался удалить позиционное кодирование из модели. Это работает, но с худшей производительностью.
Полезно ли добавлять такое позиционное кодирование в RNN? Может ли это улучшить его производительность?