大模型算法岗面试题系列(七十二)| Self-attention的公式及参数量?为什么用多头?为什么要除以根号d?

面试题:Self-attention的公式及参数量?为什么用多头?为什么要除以根号d?

参考答案

Self-attention,也称为自注意力,是一种在自然语言处理和其他序列建模任务中广泛使用的机制。以下是self-attention的基本公式和相关的参数量分析:

1. Self-Attention的基本公式:

Self-attention的计算可以分为三个步骤:计算查询(Q)、键(K)和值(V),然后计算注意力权重,最后进行加权求和。
在这里插入图片描述

2. 参数量:

  • 假设输入序列的长度为n,每个嵌入的维度为d。
  • WQ, WK, WV都是d × d维的矩阵。
  • 因此,每个权重矩阵有d^2个参数。
  • 总共有三个权重矩阵,所以参数量为3 × d^2。

3. 为什么使用多头(Multi-Head)?

多头注意力机制是将输入分割成多个“头”,每个“头”都有自己的权重矩阵WQ, WK, WV,可以捕捉到输入序列的不同部分和不同方面的信息。这样做有以下几个好处:

  • 捕捉不同关系: 不同的头可以学习到输入序列的不同关系和表示。
  • 增加模型容量: 多头注意力相当于有多个独立的注意力机制,可以增加模型的表达能力。
  • 并行计算: 多头注意力可以在不同的头上并行计算,提高计算效率。

4. 为什么除以根号d?

在计算注意力权重时,点积结果除以根号d_k(键向量的维度)的原因是为了在大量维度的情况下防止点积结果过大,导致softmax函数在梯度下降过程中饱和,从而难以训练。这个操作可以看作是一种缩放,目的是保持数值稳定性。

具体来说,当维度d_k增加时,Q和K的点积会不成比例地增加,这可能导致softmax函数的梯度变得非常小(因为softmax函数的梯度在输入非常大或非常小的时候接近于0)。通过除以根号d_k,可以确保点积的方差保持在一个合理的范围内,使得训练过程更加稳定。

这种做法是基于一个假设,即每个维度应该是独立的并且具有相同的方差。当所有维度都缩放到方差为1时,点积的方差将是d_k,因此除以根号d_k可以保持点积的期望值为1。


文末

有需要全套的AI大模型面试题及答案解析资料的小伙伴,可以微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费

在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值