Требуется ли позиционное кодирование для преобразования в языковом моделировании?

Я разрабатываю языковую модель, например https://pytorch.org/tutorials/beginner/transformer_tutorial.html.

Мне непонятно - нужна ли здесь позиционная кодировка? Насколько я понимаю, это необходимо для задачи языкового перевода, потому что декодер должен уметь позиционировать слово из предыдущего вывода в последовательности из кодировщика. Но нужно ли это в языковом моделировании без декодера?

Возможно ли, что слова на выходе кодировщика перемешиваются?

Изменить:

в исходной статье нет пояснений. И я не нашел объяснений в руководствах (например, здесь https://kazemnejad.com/blog/transformer_architecture_positional_encoding/ < / а>).

Я этого не понимаю:

«Поскольку каждое слово в предложении одновременно проходит через стек кодировщика / декодера Transformer, сама модель не имеет никакого смысла позиции / порядка для каждого слова».

С моей точки зрения, кодировщик трансформатора имеет информацию о порядке, потому что его вход - это упорядоченная последовательность (похожая на RNN).

Пытался убрать из модели позиционную кодировку. Работает, но с худшей производительностью.

Полезно ли добавлять такую ​​позиционную кодировку в RNN? Может ли это улучшить его производительность?


person Andrey    schedule 26.04.2020    source источник
comment
Как вы определяете необходимое? Будет ли модель работать? Да, даже в машинном переводе, но его неиспользование ухудшит производительность.   -  person Mohammad Arvan    schedule 27.04.2020
comment
спасибо, пожалуйста, посмотрите мои правки   -  person Andrey    schedule 27.04.2020


Ответы (1)


Эта исследовательская группа утверждает, что позиционное кодирование не требуется: https://arxiv.org/abs/1905.04226

person Yaroslav Bulatov    schedule 18.09.2020