文章目录
前言
这一篇主要讲解谷歌发表的Attention Is All You Need。这篇论文提出了驰名的一种注意力机制 —— self-attention 模块,并进一步提出了 Transformer 架构,从而将以往用的计算代价较大的RNN替换掉了。目前,nlp任务中效果非常好的BERT模型就是大量应用了Transformer架构的Encoder。
下边是一个很好的使用Transformer进行机器翻译任务的例子。在预测过程中,编码阶段,输入的“I arrived at the”中的每个单词都会计算与所有单词的注意力权重,并加权求和得出新的自己的表示,逐层编码。解码阶段,输入由encoder出来的所有单词的表示和上一个位置输出的embedding,经过类似的注意力操作得到这一个位置的输出,是一种随着预测位置移动的迭代过程。
戳我看例子
1. 总体框架与流程
1.1 框架
对照着以上例子,看下边的Transfomer总体框架图。左边为编码器,右边为解码器。编码器和解码器中都包含了Positional Encoding模块,Multi-Head Attention模块,Feed-Forward模块。下一章节会对此着重讲解。

1.2 流程
定义一下符号。
- emb_dim:嵌入的尺寸
- input_length:输入序列的长度
- target_length:目标序列的长度+1。+1是因为要移位。
- vocab_size:目标词汇表中的单词数量。
则Transformer的流程可表示为:
- 该模型将每个token表示为维度emb_dim的向量。然后,对于特定的输入序列,我们有了尺寸为(input_length)x(emb_dimb)的矩阵。
- 然后添加位置信息(位置编码)。与上一步一样,此步骤将返回尺寸为(input_length)x(emb_dim)的矩阵。
- 数据通过N=6个编码器块。之后,我们获得尺寸为(input_length)x(emb_dim)的矩阵。
- 目标序列经过等同于1和2的操作,并进行mask屏蔽。输出的尺寸为(target_length)x(emb_dim)。
- 4的结果经过N=6个解码器块。在每个迭代中,解码器都使用编码器的输出3)。这在总框图中由从编码器到解码器的箭头表示。输

本文详细解读了Transformer模型,包括PositionalEncoding、Multi-HeadAttention、Self-Attention等核心组件,以及Encoder-Decoder结构在机器翻译中的应用。重点介绍了如何在编码和解码阶段利用注意力机制处理序列信息,以及BERT与Transformer的关系。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



