Transformer-基础

参考 B 站视频1

介绍

Transformer 是一种用于自然语言处理的神经网络模型架构, 它于2017年由谷歌大脑的研究人员在论文 “Attention is All You Need” 中首次提出 (最初用在机器翻译上).

相关概念

Embedding

Embedding, 是将高维稀疏数据 (如文本, 图像, 上万维) 映射到低维密集空间 (如几十维) 的一种技术, 广泛应用于自然语言处理 (能够捕获数据的语义特征), 推荐系统和计算机视觉等领域. 嵌入的主要目的是将复杂的数据转换为可以更容易处理和分析的形式.

映射到低维密集空间后, 相似的对象能更加接近, 既能节省存储空间, 还能加速后续计算.

位置编码

位置编码, Positional Encoding, 也是自然语言处理和深度学习中的一个重要技术, 用于处理序列数据, 其为模型提供序列中元素的位置信息, 帮助模型理解元素之间的顺序和相对位置.

由于 Transformer 中, 输入是并行处理的, 没有天然的位置 (顺序) 关系, 这样能增加速度, 但是忽略了单词间的序列关系 (先后关系).

多头注意力机制

残差和 layerNorm

前馈神经网络

Word2Vec 和随机初始化

Word2Vec 是一种将单词转换为向量表示的技术, 最初由 Google 的研究团队在 2013 年提出. 它通过深度学习模型学习单词的分布式表示, 使得相似的单词在向量空间中也相近, 从而捕捉到单词之间的语义关系.

随机初始化 (Random Initialization) 是指在训练机器学习模型时, 随机设置模型参数 (如权重和偏置) 的初始值. 这种方法通常用于神经网络等复杂模型的训练过程. 随机初始化的主要目的是打破对称性, 并帮助模型在优化过程中更好地收敛.

RNN

Recurrent Neural Network, RNN, 是一种用于处理序列数据的神经网络架构, 主要特点是能够处理任意长度的输入序列, 并保留之前的状态信息.

Transformer 如何工作的

以机器翻译翻译为例, 若一开始把 Transformer 当作黑盒, 则有:

稍微细化有:

再细化:

可以看到 encoder 和 decoder 都是由 6 个 (实际是 n 个) 结构完全相同 (但参数不同) 的组件构成 (当然 encoder 和 decoder 也不同). 即训练时六个小 encoder 都在训练.

原论文中的细化结构图为:

  • 左边是 encoders, 右边是 decoders, 可以看到结构不同.
  • Nx 的意思是有 N 个

输入部分和 Encoder

大致可以按下图划分:

输入部分需要注意:

  1. Embedding
  2. 位置嵌入

Transformer-基础
http://example.com/2024/10/30/Transformer-基础/
作者
Jie
发布于
2024年10月30日
许可协议