我正在尝试阅读和理解论文Attention is all you need,在其中,他们将位置编码与 sin 用于偶数索引,将 cos 用于奇数索引。
在论文(第 3.5 节)中,他们提到
由于我们的模型不包含递归和卷积,为了让模型利用序列的顺序,我们必须注入一些关于序列中标记的相对或绝对位置的信息。为此,我们在编码器和解码器堆栈底部的输入嵌入中添加“位置编码”。
我的问题是,如果没有复发,为什么不使用 One Hot Encoding。使用正弦位置编码有什么好处?
我正在尝试阅读和理解论文Attention is all you need,在其中,他们将位置编码与 sin 用于偶数索引,将 cos 用于奇数索引。
在论文(第 3.5 节)中,他们提到
由于我们的模型不包含递归和卷积,为了让模型利用序列的顺序,我们必须注入一些关于序列中标记的相对或绝对位置的信息。为此,我们在编码器和解码器堆栈底部的输入嵌入中添加“位置编码”。
我的问题是,如果没有复发,为什么不使用 One Hot Encoding。使用正弦位置编码有什么好处?
理论上的优势应该是网络应该能够从编码中掌握模式,从而更好地泛化更长的句子。使用 one-hot 位置编码,您将比后期位置的嵌入更可靠地学习较早位置的嵌入。
另一方面,关于Convolutional Sequence to Sequence Learning的论文在 Transformer 使用 one-hot 编码和学习嵌入的位置之前不久发表,它似乎在那里没有任何危害。
您在同一个问题中混合了两个不同的概念:
因此,任何人都没有优势,因为它们用于正交目的。