自注意力和位置编码

理解不了啊家人们。为什么给输入加上一个莫名其妙的函数会有用?有点好的数学性质那咋了,神经网络能把这个函数分离出来再提取信息?不能的话跟加噪声有啥区别? :melting_face: :melting_face:

详细的公式推导、不依赖于 d2l 的代码实现:

1 Like

谁能帮忙解释下这句话的意思:”任意的序列位置组合之间的路径越短,则能更轻松地学习序列中的远距离依赖关系“

这(10.6.1)是什么意思啊,(xi,xi)代表甚么?

例如一句话,自注意力机制虽然关注到了整句话中每个单词之间的相关性,但是却并没有顺序信息,一个词在同一句话的不同位置他的语义可能就是不同的。所以加上位置编码也许对语义的理解会有更好的帮助。这是我的个人理解,有错误的请大家批评指正。

个人理解:(xi,xi)代表自注意力机制中在解码器部分的那个键值对。由于自注意力机制的数据只有一组x1-xn,因此科学家们就让键和值一样了

只有我感觉10.6.1的自注意力表达式写法很奇怪吗?比如什么叫(x1,x1)?感觉应当直接以矩阵形式来表示?

我简单理解
绝对位置信息是说每一个词元的向量表示是唯一的
相对位置信息是说,假设确定位置偏移delta,那么通过i处词元的向量表示可以映射得到 i+delta 位置词元的向量表示

(x1, x1)只是表示第1对kv对而已。y_i=f(x_i, (x1, x1),…)表示q为x_i,与所有的kv对计算序列的第i个注意力。

因为路径长的话就容易丢失信息,比如rnn如果想学习到10步以前的东西就至少经过十次矩阵运算,容易产生梯度消失或者爆炸,隐含信息不能准确传达。但是自注意力中每个词元都是直接和其他词元无视距离相连,很远的距离依赖也可以轻松学习到

就是说所有输入X的d维投影都有一个维度一致的PE矩阵,这个矩阵中所有元素都是公式那样的正余弦函数,而他们的周期是由每一个输入Xi的绝对位置信息决定的,由于以10000 ** 2i/d为分母,导致随着绝对位置信息增加,不同输入的位置编码的正余弦函数的周期就会指数增长,所以就不会存在不同位置的输入的位置编码出现周期性一致。然后这个函数可以通过三角函数公式推导相对位置后的其他位置PE表示,所以证明了PE的相对位置信息理论上是可以被模型学习的,那么将PE与输入相加后进行缩放点积评分就有了实际的更丰富架构意义。