文章目录
- 提出背景
- 核心思想—注意力机制
- 流程解析
- 参考资料
提出背景
在Transformer模型出现之前,循环神经网络(RNN)及其变体,如长短期记忆网络(LSTM)和门控循环单元(GRU),是处理序列数据的主流方法。但是RNN系列模型存在一些固有的问题,如难以并行化处理、对长距离依赖的捕捉能力有限等。为了解决这些问题,Transformer模型应运而生,于2017年由Vaswani等人在2017年提出,并发表在NeurlPS上。
与RNN系列相比Transformer的优势
-
并行化处理:Transformer模型通过自注意力机制,可以在处理序列数据时实现高度的并行化,因为每个位置的计算不依赖于前一个位置的隐藏状态,这与RNN系列模型形成鲜明对比。
-
长距离依赖:自注意力机制使得Transformer模型能够有效地捕捉序列中的长距离依赖关系,而RNN系列模型在这方面表现较差,尤其是当序列非常长时。
-
灵活性和可扩展性:Transformer模型不依赖于序列的顺序,因此在处理不同长度的序列时更加灵活。此外,它还可以轻松地扩展到更大的数据集和更复杂的任务。
核心思想—注意力机制
Transformer的核心思想,就是抛弃传统的递归(recurrence)或者卷积(convolutions)模块,完全采用注意力机制(attention mechanisms),允许模型在处理序列的每个元素时,都能考虑到序列中的所有其他元素,因此,这种机制就使得模型能够更好地捕捉序列内部的长距离依赖关系。
流程解析
Transformer模型的结构主要由编码器(Encoder)和解码器(Decoder)两大部分组成。
- 编码器由多个相同的层堆叠而成,每层包含两个主要部分:多头自注意力机制(Multi-Head Self-Attention)和前馈神经网络(Feed-Forward Neural Network)。但也不要忘了还有normalization和residual connection部分,这两部分也是非常关键。
- 解码器结构与编码器类似,区别主要是两点:在多头自注意力机制中增加了Masked策略(也是后来decoder-only大模型方法实现next-prediction的核心操作),以及增加了一个额外的cross-attention机制,用于关注编码器的输出。
下图是原始论文中的结构图,我把它按照重要程度划分为了7个部分,其中红色的前五个部分最为重要(面试官最喜欢考验候选人的部分),必须要深入理解和掌握,蓝色的后两个部分是相对次要但也要深入理解。
后续我对这个7个部分分别进行讲解,并结合代码进行深入理解。
参考资料
- [1] https://www.bilibili.com/video/BV1FH4y157ZC/?share_source=copy_web&vd_source=79b1ab42a5b1cccc2807bc14de489fa7