目前,主流的位置编码方法主要分为绝对位置编码与相对位置编码两大类。
绝对位置编码的核心思想是为每个输入元素分配一个固定的位置标识,这个标识直接与该元素在输入序列中的位置相关。换句话说,每个元素都会获得一个“位置标签”,模型可以通过这个标签来理解元素的位置信息。
最早的绝对位置编码起源于2017年Jonas Gehring等人发表的《Convolutional Sequence to Sequence Learning》,该工作使用可训练的嵌入形式作为位置编码。在实际应用中,我们可以将位置编码与词嵌入相加,从而为模型提供位置信息。
相对位置编码则是一种不同的方法,它作用于自注意力机制,为模型提供两两元素之间的距离信息。相对位置编码允许模型理解元素之间的相对位置关系,而不仅仅是它们在序列中的绝对位置。
这种方法在TransformerX等模型中得到了广泛应用。通过将相对位置信息整合到自注意力机制中,模型可以更好地捕捉序列中的长期依赖关系。