工夫老人背负着一个巨大的布袋,里面装满了被世人遗忘的丰功伟绩。这些伟大的成就很快就会被人遗忘,正如莎士比亚所说。
本文是一篇关于Transformer论文及其相关研究的读书笔记。主要内容包括:
自然语言处理中的文本可以视为词的序列。在序列建模中,通常需要考虑上下文信息,例如RNN、LSTM和GRU等模型。这些模型的核心思想是当前的状态不仅取决于当前的输入值,还取决于历史状态值。相比之下,LSTM和GRU模型可以更好地处理较长时间跨度的历史信息。然而,基于RNN的网络在计算时需要逐步进行,这限制了其并行化能力,因此计算速度相对较慢。
注意力机制(Attention)是目前机器翻译的标准配置。它允许在解码阶段根据不同的权重关注源序列中的不同词。Transformer模型抛弃了RNN逐步计算的思路,但仍保留了捕捉上下文信息的能力,并能够实现注意力机制的功能,从而更容易并行化和降低计算复杂度。
编码器本质上是一个将序列特征化的过程,即将(B, T)大小的离散输入词序列转换为(B, T, d_model)大小的嵌入表示,然后再通过Transformer模型转换为同样大小的表示。
解码器本质上是一个考虑背景信息的语言模型。通过注意力机制,将编码器的输入(上下文信息)绑定到语言模型上。
残差网络的设计解决了深层网络训练困难的问题。在NLP领域,残差网络的设计也确保了当前输入Q不会被注意力机制淹没。为了实现残差连接,需要满足dembedding = dk = dv = dmodel。此外,F(x)需要包含非线性操作,否则这种设计将失去意义。
层归一化(LN)与批量归一化(BN)不同,它在每一层的不同位置进行统计,而不依赖于批大小。与BN相比,LN在样本绑定方面表现更好。
自注意力机制将一个序列特征化,可以捕捉任意位置的依赖关系。
在解码阶段,解码器需要考虑编码器的信息。
多头注意力机制将输入映射到不同的子空间,分别进行注意力操作,然后合并结果。
Transformer模型中没有RNN机制,如何利用序列的位置信息?
从位置嵌入的角度来看,每个位置t被映射为一个嵌入向量,这与正弦波和余弦波上的位置相对应。这种方法避免了训练位置嵌入的需求,并且具有更好的泛化性能。