【深度学习模型】Transfomer以及Self-Attention讲解

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


前言

这一篇主要讲解谷歌发表的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的流程可表示为:
  1. 该模型将每个token表示为维度emb_dim的向量。然后,对于特定的输入序列,我们有了尺寸为(input_length)x(emb_dimb)的矩阵。
  2. 然后添加位置信息(位置编码)。与上一步一样,此步骤将返回尺寸为(input_length)x(emb_dim)的矩阵。
  3. 数据通过N=6个编码器块。之后,我们获得尺寸为(input_length)x(emb_dim)的矩阵。
  4. 目标序列经过等同于1和2的操作,并进行mask屏蔽。输出的尺寸为(target_length)x(emb_dim)。
  5. 4的结果经过N=6个解码器块。在每个迭代中,解码器都使用编码器的输出3)。这在总框图中由从编码器到解码器的箭头表示。输
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值