attention is all your need 之 scaled_dot_product_attention

本文深入解析“scaled_dot_product_attention”在“multihead_attention”中的应用,详细阐述其计算过程,包括Q、K、V向量的计算,mask操作及如何实现注意力机制。

“scaled_dot_product_attention”是“multihead_attention”用来计算注意力的,原文中“multihead_attention”中将初始的Q,K,V,分为8个Q_,8个K_和8个V_来传入“scaled_dot_product_attention”中进行计算。

在“scaled_dot_product_attention”主要就是进行attention的计算以及一些mask操作。首先要知道Attnetion机制的公式以及原理:

公式中Q表示所需计算的注意力项,K为被计算注意力项,V为被注意力项的取值,很多时候K和V是相等的。画图理解一下:

其中Q代表一个(3,7)的向量,K也是一个(3,7)的向量,所以Q×K的转置所得一个(3,3)的向量score,根据score的数学运算可以将score[0,0]理解为Q中第一个向量Q[0,:]与K第一个向量K[0,:]的相似度所以score的第一行代表的就是Q的第一行向量(Q[0,:])与K中所有向量(K[:,:])的相似度。然后将所得的结果除以一个标量,公式中是dk,然后通过softmax函数进行映射,所得到的就是Q向量相对于K向量的相似度得分(3,3)。最后通过得到的score(3,3)与V相乘,如下图所示:

所得到的result的第一行就是V中所有向量与score中第一行分数相乘得到的(有点拗口),也就是result是V中向量通过加权得到的,这个权重矩阵就是score,也就使得模型具有了注意力机制。(其实这一块的思想是attention机制中共有的,在seq2seq模型中比较好理解,可以参考着来理解)。
在tensorboard整个“scaled_dot_product_attention”所做的工作就是上面那个公式。总体就是Q*K的转置,然后除以一个标量,然后softmax一下,最后乘以V向量。知识在其中加入了两个mask操作。这是为了将Q和K中一些填充的为零的向量清除掉。这个mask也是个骚操作,理解起来,也不难。

### 'Attention Is All You Need' 论文的核心概念 该论文提出了一个新的神经网络架构——Transformer[^4],它完全摒弃了传统的循环神经网络(RNN)和卷积神经网络(CNN),转而采用纯粹的注意力机制来完成序列转换任务。这一创新使得模型在性能上有显著提升的同时,也大幅改善了训练效率。 #### Transformer 的核心组成部分 Transformer 主要由两大部分组成:编码器(Encoder)和解码器(Decoder)。两者都依赖一种称为 **自注意力机制(Self-Attention Mechanism)** 的技术来捕捉输入序列中的长期依赖关系[^3]。具体来说: 1. **自注意力机制的作用** 自注意力机制允许模型在同一序列的不同位置之间建立联系,从而有效地提取上下文信息。这种机制不仅适用于单一句子内的单词间关系建模,还可以扩展至跨句子甚至更大范围的时间序列分析[^2]。例如,在自然语言处理领域中,它可以用来识别一段话中不同词语之间的相互作用。 2. **Scaled Dot-Product Attention (缩放点积注意力)** 这一方法通过计算查询向量 \( Q \)、键向量 \( K \),以及值向量 \( V \) 来实现高效的注意力权重分配过程[^1]。公式如下所示: ```python import torch def scaled_dot_product_attention(query, key, value, mask=None): d_k = query.size(-1) scores = torch.matmul(query, key.transpose(-2, -1)) / torch.sqrt(torch.tensor(d_k).float()) if mask is not None: scores = scores.masked_fill(mask == 0, float('-inf')) p_attn = torch.softmax(scores, dim=-1) output = torch.matmul(p_attn, value) return output, p_attn ``` 3. **Multi-Head Attention (多头注意力)** 多头注意力进一步增强了模型的能力,因为它可以并行地执行多个独立的注意力操作,并最终将它们的结果组合在一起。这种方法有助于缓解因平均化位置表示而导致的有效分辨率下降问题。 #### Transformer 架构的优势 相比于之前的 RNN 和 CNN 基础模型,Transformers 提供了几项明显的技术改进: - 更高的并行度支持快速训练; - 减少了远程依赖的学习难度; - 显著提升了翻译质量和泛化能力。 例如,在 WMT 2014 英语到德语的任务测试中,使用 Transformers 实现的新 BLEU 得分为 28.4,超越当时已有的最优方案至少两个百分点以上[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值