ATTENTION机制

目录

什么是注意力机制

自注意力机制self-attention

Attention 和 Self-Attention 的区别

多头自注意力机制multi-head self-attention

Transformer

Transformer


  1. 什么是注意力机制

10 Transformer 之 Self-Attention(自注意力机制)_哔哩哔哩_bilibili

对于不同模块/部分,重要的信息可能不一样,怎么聚焦在更重要的信息上。

ATTENTION机制_第1张图片

 attention通常可以进行如下描述,表示为将Q和k-v pair(把Value拆分成了键值对的形式)映射到输出上。分为三个步骤:

  1. Q,K=k1,k2,...,kn 内积/点乘的方式,计算相似度a1,a2,...an。

  2. 做一个scale归一化,避免出现极端情况;做一层softmax,得到概率/注意力值,表示重要性

  3. 最后进行汇总,使用Q查询之后,Q已经失去了使用加值,最终还是要拿到最终输出,跟v点乘,得到最终输出(包含了哪些重要、不重要),最终的新向量表示,只不过蕴含了整个特征列表对于当前特征而言哪个更重要的信息。每一个单词都会包含整个句子中各个单词的重要性信息。

一般K=V,在transformer里面,K和V一定具有某种联系,这样QK点乘才能指导V哪些重要,哪些不重要。

  1. 自注意力机制self-attention

K$approx$=V=Q,来源于同一个X,三者同源。

QKV,是X通过一个矩阵的线性变换,分别得到的中间表示。

ATTENTION机制_第2张图片

ATTENTION机制_第3张图片

ATTENTION机制_第4张图片

ATTENTION机制_第5张图片

ATTENTION机制_第6张图片

ATTENTION机制_第7张图片

  1. Attention 和 Self-Attention 的区别

attention没有规定QKV 怎么来,只规定QKV怎么做。

ATTENTION机制_第8张图片

self-attention规定了,QKV必须要同源,来源于同一个输入源的空间上的线性变换/矩阵计算。对于一个词向量(不一定准确),做的是空间上的对应,乘了参数矩阵,依然代表X。

  • 交叉注意力机制:QK不同源,但是KV同源

  • cyd注意力机制:QV同源,QK不同源

  • 其他:Q必须为1,KV不同源

重点是跟其他特征的交叉

多头自注意力机制multi-head self-attention

详解Transformer中Self-Attention以及Multi-Head Attention_太阳花的小绿豆的博客-CSDN博客

机器学习

机器学习的本质是什么:y=Q(wx+b),在做一件什么事情,非线性变换(把一个看起来不合理的东西,通过某个手段(训练模型),让这个东西变得合理)

非线性变换的本质又是什么?改变空间上的位置坐标,任何一个点都可以在维度空间上找到,通过某个手段,让一个不合理的点(位置不合理),变得合理

ATTENTION机制_第9张图片

多头的个数用 h 表示,一般ℎ=8h=8,

multi-head attention,把X切分成8块(8个子空间),这样一个原先在一个位置上的X,去了空间上8个位置,通过对8个点进行寻找,找到更合适的位置。

使用多头注意力机制能够联合来自不同head部分学习到的信息。

ATTENTION机制_第10张图片

Self-Attention与Multi-Head Attention计算量对比:两者的计算量其实差不多

  • 之前讨论的,机器学习和人工经验结合的方案,现在重新拿出来评估呢?

Transformer

ATTENTION机制_第11张图片

ATTENTION机制_第12张图片

Transformer

Transformer 中self-attention以及mask操作的原理以及代码解析_南京天涯的博客-CSDN博客_transformer attention mask

图解Transformer_adam-liu的博客-CSDN博客_transformer adam

Transformer 模型详解_空杯的境界的博客-CSDN博客_transformer

https://github.com/czy36mengfei/tensorflow2_tutorials_chinese/blob/master/026-Transformer/001-Transformer.ipynb

你可能感兴趣的:(算法工程师,深度学习,自然语言处理,transformer)