随记·手撕coding | absolute positional embedding

答(为什么引入位置编码):

  • 本质原因Attention 对位置不敏感的原因,因此其无法捕捉到输入序列中 token 的位置信息。trm本身没法引入位置信息,即调换序列中token的位置,由于self-att机制的原因,交换token位置后 attention map 的对应位置数值也会进行交换,并不会产生数值变化,那么attention之后的结果是一样的,因为att出来是V的注意力加权。但是序列信息非常重要,代表着全局的结构,因此必须将序列的分词相对或者绝对position信息利用起来。也就是说,调换序列中token的位置,句子的含义不变。这其实是不对的,所以需要引入位置编码信息来区分不同位置token的先后关系。

答(为什么采用正余弦函数引入位置编码 - 绝对位置编码):

  • 不同位置的token的位置编码向量之间应该含有相对位置信息,而相对位置信息可以通过函数的周期性实现。
    在这里插入图片描述
    假设有N个位置(即有N个token所以就有N个位置),每个位置都要编码成维度:512。
    则公式中的 pos 范围就是:0-N,i 的范围就是:0-255。i为偶数(即位置向量的奇数维度)用sin,i为奇数(即位置向量的偶数维度)用cos。

作者用这

你可能感兴趣的:(算法岗面试,embedding,transformer,nlp,ai,cv)