attention中Query与Key相似度计算方法

本文详细总结了自然语言处理中Attention机制的核心概念、工作原理及其在深度学习模型中的应用,包括在机器翻译、问答系统和文本理解等方面的关键作用。通过实例探讨了Self-Attention和Transformer模型,并对比了不同的Attention类型。此外,还讨论了Attention机制的优缺点及未来发展趋势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

### 自注意力机制中的相似度计算 在自注意力机制中,查询(Q)、键(K)和值(V)矩阵用于计算注意力分数。具体来说,在计算注意力得分之前会应用缩放因子σ来标准化查询-键的相似性[^1]。 #### 缩放点积注意力 公式表示如下: \[ \text{att} = \sigma\left(\frac{Q K^{T}}{\sqrt{d_{k}}}\right) \] 其中 \( d_k \) 是键向量维度大小,\( Q \) 和 \( K \) 分别代表查询和键矩阵。通过除以 \( \sqrt{d_k} \),可以防止内积过大而导致梯度消失或爆炸问题。之后再乘上一个可学习参数 σ 来调整整体尺度。 此过程有助于模型聚焦于输入序列中最相关的部分,并且能够处理不同长度的信息片段之间的关系。对于较长文本而言,这种方法尤其有效,因为它允许网络关注到更远距离内的依赖项而无需增加太多额外开销。 当涉及到实际实现时,通常还会加上 Softmax 函数作用于上述得到的结果之上,从而获得概率分布形式的概率权重向量作为最终输出的一部分。这些权重随后被用来加权求和对应的 "value" 向量,形成新的特征表达。 ```python import torch import math def scaled_dot_product_attention(query, key, value): dk = query.size(-1) scores = torch.matmul(query, key.transpose(-2, -1)) / math.sqrt(dk) attention_weights = torch.softmax(scores, dim=-1) output = torch.matmul(attention_weights, value) return output, attention_weights ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值