transformer:self-attention 自注意力机制详解

self-attention 计算过程

transformer:self-attention 自注意力机制详解_第1张图片
Thinking 和 Machines是同一组输入(同一句话)中的某两个输入(某两个单词),x是上下文无关的词向量

1. 根据原词向量依次计算queries,Keys,Values

transformer:self-attention 自注意力机制详解_第2张图片
其中,WQ,WK,W^V是待训练的参数
transformer:self-attention 自注意力机制详解_第3张图片

2. 计算scores

在这里插入图片描述
每个q_i都算出n个score,即(1,n)的scores向量
其中,d_k是超参数(这里取64),为了让后面的计算中具有稳定的梯度

3. 计算(能句子中的长依赖关系)的新向量

在这里插入图片描述
对于某个词向量,softmax(scores)即为所有词向量对该词向量的权重,将这些权重分别乘以各向量得到新向量。运算为(1,n)*(n,1)

那么最后能生成输入句子中单词与单词直接的权重矩阵,即注意力矩阵
transformer:self-attention 自注意力机制详解_第4张图片
注意encoder里面是叫self-attention,decoder里面是叫masked self-attention。

这里的masked就是要在做language modelling(或者像翻译)的时候,不给模型看到未来的信息。
transformer:self-attention 自注意力机制详解_第5张图片
详细来说,i作为第一个单词,只能有和i自己的attention。have作为第二个单词,有和i, have 两个attention。 a 作为第三个单词,有和i,have,a 前面三个单词的attention。到了最后一个单词dream的时候,才有对整个句子4个单词的attention。
transformer:self-attention 自注意力机制详解_第6张图片
论文 attention is all you need :详解链接
https://mp.weixin.qq.com/s/RLxWevVWHXgX-UcoxDS70w

本文参考:
https://www.jianshu.com/p/e5dfc9e5d778

你可能感兴趣的:(自然语言处理,深度学习,自然语言处理,神经网络,深度学习)