文章目录
1.注意力
注意力模型从大量信息 Values 中筛选出少量重要信息,这些重要信息一定是相对于另外一个信息 Query 而言是重要的,例如对于上面那张婴儿图,Query 就是观察者。
K == V
于Q而言,K里面重要的信息
2.自注意力
K == V == Q,这里是同源!!!!需要做线性变换后才放一起自注意力。
2.1线性变换
2.2自注意力
3.掩码自注意力
注意力矩阵
自注意力机制明确的知道这句话有多少个单词,并且一次性给足,而掩码是分批次给,最后一次才给足。
当我们做生成任务的时候,我们也想对生成的这个单词做注意力计算,但是,生成的句子是一个一个单词生成的
I have a dream
I 第一次注意力计算,只有 I
I have 第二次,只有 I 和 have
I have a
I have a dream
I have a dream <eos>
掩码自注意力机制应运而生
4.多头自注意力
机器学习的本质是什么:y=σ(wx+b),在做一件什么事情,非线性变换(把一个看起来不合理的东西,通过某个手段(训练模型),让这个东西变得合理)
非线性变换的本质又是什么?改变空间上的位置坐标,任何一个点都可以在维度空间上找到,通过某个手段,让一个不合理的点(位置不合理),变得合理。
这就是词向量的本质
one-hot 编码(0101010)
word2vec(11,222,33)
emlo(15,3,2)
attention(124,2,32)
multi-head attention(1231,23,3),把 X 切分成 8 块(8 个子空间),这样一个原先在一个位置上的 X,去了空间上 8 个位置,通过对 8 个点进行寻找,找到更合适的位置。
4.1多头流程
每个头都有自己的一套QKV
5.位置编码
5.1 Attention
-
优点:
解决了长序列依赖问题
可以并行 -
缺点:
开销变大了
既然可以并行,也就是说,词与词之间不存在顺序关系(打乱一句话,这句话里的每个词的词向量依然不会变),即无位置关系(既然没有,我就加一个,通过位置编码的形式加)
5.2 位置编码怎么做的
爱在我爱你中pos = 1,用512维向量表示,奇数维度使用sin插入位置信息。
5.3 位置编码为什么有效
也就是说:对于第5个位置的位置编码,它可以与1,4或者2, 3等位置的编码产生联系。
6.总结
注意力机制是一个很宽泛(宏大)的一个概念,QKV 相乘就是注意力,但是他没有规定 QKV是怎么来的。
通过一个查询变量 Q,去找到 V 里面比较重要的东西。
假设 K==V,然后 QK 相乘求相似度A,然后 AV 相乘得到注意力值Z,这个 Z 就是 V 的另外一种形式的表示。
Q 可以是任何一个东西,V 也是任何一个东西, K往往是等同于 V 的(或同源),K和 V 不同源不相等也可以,但不常见。
他没有规定 QKV 怎么来,他只规定 QKV 怎么做。
自注意力机制 QKV同源
交叉注意力机制 Q 和 V 不同源,但是 K 和 V 同源