Key word: Attention (self-attention, Scaled Dot-Product Attention, Multi-Head Attention), Positional Encoding, Feedforward Neural Network, Encoder and Decoder, Layer Normalization, Residual Connection, Masking, Tokenization(Token and Embedding)
什么是 Transformer
Transformer 是一种基于注意力机制(Attention Mechanism)的深度学习模型结构,最早由论文 Attention Is All You Need 提出。它摒弃了传统序列模型 RNN、LSTM 中的递归结构,使用了并行化更强的多头自注意力机制来捕捉序列中元素之间的依赖关系。因为它可以同时处理序列的所有元素,所以在机器翻译、文本分类、问答系统等 NLP 任务中取得了非常好的效果。主要架构是encoder-decoder,encoder将input的内容进行向量化,然后各种运算(QKV),得到一个Z来代表每个单词,然后准备好加入decoder。decoder又先把输出的目标序列先经过一些操作得到一个tensor,再经过他自己的运算后,和encoder的output一起操作得到最后输出,然后转换成概率预测每个word(占整个单词表的值)。
Transformer 的主要组件与原理
Transformer 主要包括以下核心组件:
1) 多头自注意力机制 (Multi-Head Self-Attention)
1.1 Scaled Dot-Product Attention
在计算 Attention 时,需要先得到 Q (Query)、K (Key) 和 V (Value) 三个矩阵。对于输入序列的每个词(或 token),我们会通过可学习的线性映射:
• 的诞生:输入的单词向量(embedding)分别乘以三个不同的可学习矩阵
,得到三个形状相似但功能不同的结果:
• Q(Query):我的问题是什么?
• K(Key):我是谁?
• V(Value):我有什么信息可以提供给别人?
X是变成tensor后的可操作的词(token),包含了单词所在句子中的位置与单词本身的特征信息。
然后通过缩放点积注意力 (Scaled Dot-Product Attention) 公式来计算每个词在序列中的关注权重: