大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」
在现代自然语言处理(NLP)领域,Transformer 模型的出现带来了革命性的变化。它极大地提升了语言模型的性能和效率,而自注意力机制是其中的核心组件。
今个儿我们将通过五个阶段,逐步深入讲解自注意力机制,帮助大侠一窥其原理和应用,成功实现变身(装 X )
第一阶段:自注意力机制基础
在处理语言和文字时,我们经常需要理解一个句子中的单词是如何相互关联的。例如,在句子“猫追着老鼠跑”中,我们需要知道“猫”是追的主体,“老鼠”是被追的对象。传统的方法在理解这些关系时有一些困难,特别是当句子变得很长时。自注意力机制是一种新的方法,可以更好地理解句子中单词之间的关系,无论句子有多长。
自注意力机制的核心思想是:每个单词都能“注意到”句子中的其他单词,并根据这些单词来调整自己。这有点像我们在读一篇文章时,会注意到一些关键的词句来帮助我们理解文章的整体意思。
第二阶段:自注意力机制的工作原理
在自注意力机制中,每个单词会看向句子中的其他单词,并计算一个注意力得分。这些得分表示每个单词对其他单词的关注程度。这个过程可以理解为每个单词都在问自己:“我应该关注哪些单词?”
计算注意力得分
以句子“我喜欢吃苹果”为例:
- “我”计算它对“喜欢”、“吃”和“苹果”的注意力得分。
- 每个单词的得分会被转换成一个概率,表示它在句子中有多重要。
注意力得分会被一种叫做 softmax 的方法转换成概率。这种方法确保所有的得分加起来等于 1,这样我们就可以知道每个单词的重要性。例如:
- “我”可能对“喜欢”的关注度是 0.4,对“吃”的关注度是 0.3,对“苹果”的关注度是 0.3。
- 这些得分表示“我”最关注的是“喜欢”,其次是“吃”和“苹果”。
生成新表示
每个单词会根据这些概率得分,重新组合句子中的信息,生成新的表示。这就像我们在阅读一篇文章时,会根据每句话的重要性来总结文章的核心内容。
防失联,进免费知识星球,直达算法金 AI 实验室 https://t.zsxq.com/ckSu3
第三阶段:查询、键和值
在自注意力机制中,每个单词都被表示为三个向量:查询(Query)、键(Key)和值(Value)。这些向量帮助我们计算注意力得分,并生成新的单词表示。
查询(Query)
查询向量表示我们希望了解的单词。每个单词都有一个查询向量,用于计算它与其他单词的关系。
键(Key)
键向量表示句子中每个单词的特征。查询向量会与键向量进行对比,计算出注意力得分。
值(Value)
值向量表示句子中每个单词的具体内容。注意力得分会作用于值向量,以生成新的单词表示。
示例
以句子“我喜欢吃苹果”为例:
- “我”的查询向量会与“喜欢”、“吃”和“苹果”的键向量进行对比,计算出它们的注意力得分。
- 这些得分会用于加权“喜欢”、“吃”和“苹果”的值向量,生成“我”的新表示。
多头注意力机制
为了更好地捕捉句子中不同方面的信息,Transformer 引入了多头注意力机制。这个机制允许我们并行地计算多组查询、键和值向量,捕捉不同的关系。
多头注意力机制的步骤
- 分组:将查询、键和值向量分成多组,每组称为一个“头”。
- 独立计算:每个头独立计算注意力得分,并生成新的表示。
- 拼接与变换:将所有头的结果拼接起来,并通过一个线性变换生成最终的输出。
例子
假设我们有两个头:
- 第一头可能主要关注“我”和“喜欢”的关系。
- 第二头可能主要关注“吃”和“苹果”的关系。通过这种方式,多头注意力机制可以更全面地理解句子中的不同关系。
第四阶段:残差连接和层归一化
残差连接(Residual Connection)
残差连接是一种技术,它通过在网络层之间添加直接的跳跃连接,帮助缓解深度神经网络中的梯度消失问题。
原理
在每一层的输出中,我们会添加上这一层的输入。这可以用公式表示为:
其中,Layer(
标签:dim,Transformer,self,单词,算法,归一化,注意力,向量,神奇 From: https://www.cnblogs.com/suanfajin/p/18278993