【发布时间】:2020-08-09 21:50:41
【问题描述】:
我正在开发像https://pytorch.org/tutorials/beginner/transformer_tutorial.html 这样的语言模型。
我不清楚 - 这里是否需要位置编码? 据我了解 - 语言翻译任务是必要的,因为解码器应该能够在编码器的序列中定位来自先前输出的单词。 但是在没有解码器的情况下,语言建模有必要吗?
编码器输出中的单词有可能被打乱了吗?
编辑:
原始论文中没有任何解释。而且我没有在教程中找到解释(比如这里https://kazemnejad.com/blog/transformer_architecture_positional_encoding/)。
我不明白这个:
“由于句子中的每个单词同时流经 Transformer 的编码器/解码器堆栈,模型本身对每个单词没有任何位置/顺序感。”
在我看来——transformer 编码器有关于订单的信息,因为它的输入是一个有序的序列(类似于 RNN)。
我试图从模型中移除位置编码。它可以工作,但性能较差。
将这种位置编码添加到 RNN 是否有用?它能提高性能吗?
【问题讨论】:
-
如何定义“必要”?模型还能用吗?是的,即使在机器翻译中,但不使用它会降低性能。
-
谢谢,请看我的修改
标签: transformer language-model