Attention Is All You Need
Transformer
Self-Attention
Self-Attention机制是一种在序列处理中非常重要的技术,它允许模型在处理一个序列的特定位置时,能够考虑到序列中的其他位置,从而捕捉序列内部的复杂依赖关系。
自注意力机制的核心思想是通过计算序列中每个元素对其他元素的影响权重来实现内部的关联,这些权重反映了元素之间的相似性或者关联性。具体来说,自注意力机制包含以下几个步骤:
自注意力机制首先将输入序列的每个元素转换成三个不同的向量,分别是Query(查询)、Key(键)和Value(值)。这通常是通过将输入向量与三个不同的权重矩阵相乘来实现的。这样,对于序列中的每个元素,我们都有对应的三个向量。
接下来,自注意力机制计算每个Query与其他所有元素的Key之间的点积,得到一个分数,这个分数反映了Query与每个元素的匹配程度。然后,通过应用一个softmax函数,将这些分数转换成概率,即注意力权重。
一旦我们有了注意力权重,就可以用它们来加权对应的Value向量。具体来说,就是将每个Value与其对应的注意力权重相乘,然后将所有加权后的Value向量求和,得到最终的输出向量。
为了稳定学习过程并提高模型性能,自注意力机制通常会并行地执行多次(称为“头”),每个头都有自己的权重矩阵。最后,这些头的输出会被拼接起来,并通过一个线性变换,得到最终的输出。
Masked Self-Attention
- Masked self-attention是对self-attention的一种改进,它在计算注意力时引入了masking机制。
- 遮蔽机制通过将某些位置的注意力权重设置为一个很小的值(通常是负无穷大),从而阻止模型在这些位置上进行关注。
- 这种机制通常用于处理那些模型在训练时不应该关注的信息,例如在语言模型中,当模型尝试预测下一个词时,它不应该关注到未来的词汇。在序列生成任务中,如机器翻译或文本生成,masked self-attention确保模型在生成当前位置的输出时,只能使用之前的元素,而不能使用之后未来的元素。
Scaled Dot-Product Attention
为什么需要除以
作者在原文中的解释:
While for small values of
the two mechanisms perform similarly, additive attention outperforms dot product attention without scaling for larger values of . We suspect that for large values of , the dot products grow large in magnitude, pushing the softmax function into regions where it has extremely small gradients. To counteract this effect, we scale the dot products by .
Multi-Head Attention
1 | import math |
1 | class AttentionHead(nn.Module): |
1 | class MultiHeadAttention(nn.Module): |
1 | from torch import nn |
1 | tensor([[ 2000, 1996, 2614, 1997, 18385, 28248, 5572]]) |
1 | multihead_attn = MultiHeadAttention(config) |
1 | torch.Size([1, 7, 768]) |
Encoder
Positional Encoding
- No position information in self-attention.
- Each position has a unique positional vector
.
Decoder
Seq2seq Model
AT VS NAT
Efficient Transformers: A Survey
https://arxiv.org/abs/2009.06732
平方复杂度问题:标准Transformer模型中的self-attention机制具有
Swin Transformer
- Title: Attention Is All You Need
- Author: Kaleido
- Created at : 2024-04-02 15:08:40
- Updated at : 2024-06-14 00:51:00
- Link: https://redefine.ohevan.com/2024/04/02/Attention-Is-All-You-Need/
- License: This work is licensed under CC BY-NC-SA 4.0.