Transformer基础

一、Attention基础

1.Seq2Seq

Seq2Seq经常用在机器翻译中,如下图所示,seq2seq模型中的编码器和解码器一般采用的是循环神经网络RNN。编码器将输入的法语单词序列编码成context向量(在绿色encoder和紫色decoder中间出现),然后解码器根据context向量解码出英语单词序列。

 最早提出的seq2seq模型都是基于RNN进行处理的,方法如下图:首先将单词映射为embedding向量(绿色输入),并和初始化好的隐藏向量(橙色输入)进行计算得到输出(粉色)和一个新的隐藏向量,不断重复这个过程,最终会得到编码器的context向量。

 

解码器的原理也类似,输入是编码器得到的context向量和第一个单词输入,经过上述原理不断生成结果。

2.attention

seq2seq的缺点很明显,在处理长文本的过程中容易丢失信息,使解码器更关注最后面的单词,解决这个问题的方法是添加注意力机制。

带有attention机制的编码器和之前类似,只不过最终得到的输出是所有单词的隐向量,

解码器的流程如下:

  1. 注意力模型的解码器 RNN 的输入包括:一个word embedding 向量,和一个初始化好的解码器 hidden state,图中是h_{init}hinit​。
  2. RNN 处理上述的 2 个输入,产生一个输出和一个新的 hidden state,图中为h4。
  3. 注意力的步骤:我们使用编码器的所有 hidden state向量和 h4 向量来计算这个时间步的context向量(C4)。
  4. 我们把 h4 和 C4 拼接起来,得到一个橙色向量。
  5. 我们把这个橙色向量输入一个前馈神经网络(这个网络是和整个模型一起训练的)。
  6. 根据前馈神经网络的输出向量得到输出单词:假设输出序列可能的单词有N个,那么这个前馈神经网络的输出向量通常是N维的,每个维度的下标对应一个输出单词,每个维度的数值对应的是该单词的输出概率。
  7. 在下一个时间步重复1-6步骤。 

 二、Transformer基础

下图为一个经典的Transformer结构,左半部分为编码器,右半部分为解码器。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值