Transformer动画讲解 – 注意力机制
本文隶属于:Transformer 系列动画讲解
- 神经网络算法 – 一文搞懂Transformer
- 神经网络算法 – 一文搞懂 Transformer(总体架构 & 三种注意力层)
- Transformer动画讲解 – 工作原理
- 神经网络算法 – 一文搞懂Embedding(嵌入)
- Transformer动画讲解 – 注意力机制
- 神经网络算法 – 一文搞懂Attention(注意力)机制
- 神经网络算法 – 一文搞懂Transformer中的三种注意力机制
- Transformer动画讲解 – Cross Attention
- Transformer动画讲解 – 单头注意力和多头注意力
- 神经网络算法 – 一文搞懂Self-Attention和Multi-Head Attention
- Transformer动画讲解 – 注意力计算Q、K、V
- Transformer动画讲解 – 数据处理的四个阶段
- Transformer动画讲解 – 多模态
- Transformer动画讲解 – Softmax函数
- Transformer动画讲解 – 多层感知机制
- 神经网络算法 – 一文搞懂FFNN(前馈神经网络)
- 神经网络算法 – 一文搞懂GPT(Generative Pre-trained Transformer)
Transformer注意力机制
从端到端的角度来看,数据在Transformer中的流转可以概括为四个阶段:Embedding(嵌入)、Attention(注意力机制)、MLPs(多层感知机)和Unembedding(从模型表示到最终输出)。
Embedding -> Attention -> MLPs -> Unembedding
下面对第二个阶段Attention(注意力机制)进行详细介绍:
Attention(注意力机制)的目的:
-
在自然语言处理(NLP)中,嵌入向量(Embedding Vector)是单词或文本片段的数值表示,它们捕捉了这些单词或文本片段的语义信息。
-
嵌入向量作为输入传递给Transformer的Attention模块时,Attention模块会通过Q、K、V计算注意力权重,从而分析这些向量,使得Embedding向量间能够相互”交流”并根据彼此信息更新自身的值。
-
Attention模块的主要作用是确定在给定上下文中哪些嵌入向量与当前任务最相关,并据此更新或调整这些嵌入向量的表示。
-
这种“相关性”通常基于单词之间的语义关系,即它们如何相互关联以形成有意义的句子或段落。
Attention的目的
Attention(注意力机制)的工作流程:
-
生成Q、K、V向量:对于输入序列中的每个单词,都会生成对应的Query(查询)、Key(键)和Value(值)向量。这些向量通常是通过将单词的嵌入向量(Embedding Vector)输入到一个线性变换层得到的。
-
计算Q、K的点积(注意力分数):Attention机制会计算Query向量与序列中所有单词的Key向量之间的点积(或其他相似度度量),得到一个分数。这个分数反映了Query向量与每个Key向量之间的相似度,即每个单词与当前位置单词的关联程度。
-
Softmax函数归一化(注意力权重):这些分数会经过一个Softmax函数进行归一化,得到每个单词的注意力权重。这些权重表示了在理解当前单词时,应该给予序列中其他单词多大的关注。
-
注意力权重加权求和(加权和向量):这些注意力权重与对应的Value向量进行加权求和,得到一个加权和向量。这个加权和向量会被用作当前单词的新表示,包含了更丰富的上下文信息。
-
在处理每个单词时,模型都能够考虑到整个输入序列的信息,并根据单词之间的语义关系来更新单词的表示。这使得Transformer模型能够能够更准确地理解单词在当前上下文中的含义,进而解决上下文依赖问题。
Attention的工作流程
神经网络算法 – 一文搞懂Self-Attention和Multi-Head Attention(第二部分:工作流程)
Attention(注意力机制)的实际案例:
-
以单词“model”为例,在“machine learning model”(机器学习模型)和“fashion model”(时尚模特)这两个不同的上下文中,它的含义是不同的。
-
当Attention模块处理包含“model”的句子时,它会查看句子中的其他单词(如“machine learning”或“fashion”),并确定这些单词与“model”之间的语义关系。
-
Attention模块会计算一个权重,该权重表示其他单词对理解“model”在当前上下文中的含义的重要性。这些权重被用来更新“model”的嵌入向量,以便更好地反映其在当前上下文中的意义。
-
Attention模块的作用就是确定上下文中哪些词之间有语义关系,以及如何准确地理解这些含义,更新相应的向量。
Attention的实际案例
神经网络算法 – 一文搞懂Self-Attention和Multi-Head Attention(第三部分:案例对比)
参考资料
-
https://www.3blue1brown.com/lessons/gpt