2024-10-13
深度学习
00

为什么在获取输入词向量之后需要对矩阵乘以embedding size的开方?

在自然语言处理(NLP)任务中,词向量(Word Embedding)是一种将单词表示为固定大小向量的技术,通常使用的方法包括Word2Vec、GloVe和Transformer中的embedding层。无论使用哪种方法,将输入转化为词向量后,通常需要对其做归一化或缩放处理,而其中一种常见操作是在获取词向量矩阵后,乘以embedding size的开方。本文将深入探讨这种操作的原因与意义,并通过公式和代码示例详细解释。

2024-10-13
深度学习
00

为什么在多头注意力中需要对每个 Head 进行降维

在 Transformer 模型中,多头注意力机制(Multi-Head Attention)是一个非常重要的组成部分。它通过并行地计算多个注意力头(Attention Head)来增强模型的表示能力。然而,为了控制计算复杂度和内存使用量,通常对每个注意力头进行降维。本文将详细分析这种设计背后的原因,并通过公式和代码展示多头注意力的实现过程。

2024-10-13
深度学习
00

如何在计算 Attention Score 时对 Padding 做 Mask 操作

在使用神经网络进行自然语言处理任务时,输入序列通常会有不同的长度。为了使得这些序列能够批处理输入,通常需要对较短的序列进行填充(Padding)操作。然而,在计算 Attention Score 时,这些填充部分不应参与运算。本文将详细讲解如何在计算 Attention Score 时对 Padding 做 Mask 操作。

2024-10-13
深度学习
00

为什么在进行 Softmax 之前需要对 Attention 进行 Scaling?

在 Transformer 模型中,Attention 机制通过计算 Query、Key 和 Value 的相似性来生成注意力权重。在进行 Softmax 之前,我们会对 Attention 分数进行 Scaling(缩放),也就是除以 dk\sqrt{d_k}。那么,为什么需要这样做呢?本文将通过公式推导和代码示例,详细讲解这一操作的意义和作用。

2024-10-13
深度学习
00

Transformer中的Attention机制:为何选择点乘而非加法?

Transformer模型在自然语言处理中的广泛应用主要得益于其核心机制——Attention机制。Attention机制通过衡量不同单词之间的相关性,使模型能够捕捉长距离依赖关系。在Attention计算中,通常选择使用**点乘(Dot Product)**来衡量Query和Key之间的相关性。一个常见的问题是:为什么选择点乘而不是加法?本文将详细探讨两者在计算复杂度和效果上的差异,并给出相关代码示例。