为什么变形金刚需要位置编码?

数据挖掘 机器学习 深度学习 神经网络 nlp 变压器
2022-03-09 10:55:30

至少在编码器的第一个self-attention层,输入和输出是有对应关系的,我有以下问题。

  • 查询向量是否已经隐含地捕获了排序,它们本身只是输入的转换?
  • 正弦位置编码捕捉到查询向量的排序还没有做什么?
  • 我认为变压器一次接收整个输入是否可能是错误的?
  • 单词是如何输入的?
  • 如果我们一次输入整个句子,不应该保留顺序吗?

来源:https://web.eecs.umich.edu/~justincj/slides/eecs498/FA2020/598_FA2020_lecture13.pdf

1个回答

考虑输入句子 - “我很好”。

在 RNN 中,我们将句子逐字输入网络。也就是说,首先将单词“I”作为输入传递,然后传递单词“am”,依此类推。我们逐字输入句子,以便我们的网络完全理解句子。

但是对于变压器网络,我们不遵循递归机制。因此,我们不是逐字输入句子,而是将句子中的所有单词并行输入到网络中。并行输入单词有助于减少训练时间,也有助于学习长期依赖。

我们将单词与转换器平行输入,单词顺序(单词在句子中的位置)很重要。所以,我们应该给transformer提供一些关于词序的信息,以便它能够理解句子。

如果我们将输入矩阵直接传递给转换器,它就无法理解词序。因此,我们需要添加一些指示词序(词的位置)的信息,而不是直接将输入矩阵馈送到转换器,以便我们的网络能够理解句子的含义。为此,我们引入了一种称为位置编码的技术。位置编码,顾名思义,是一种表示单词在句子中的位置(词序)的编码。