【原创】深入浅出Attention和Transformer

本文介绍attention机制和基于attention的transformer模型。网上关于这两者的博客很多,但大都照搬论文,千篇一律,不够深入和通俗,本文在参考这些博客和原始论文的基础上,加入自己的理解,深入且通俗的讲解attention和transformer。

Attention in RNN

Bengio等人在2014年Neural machine translation by jointly learning to align and translate中提出Attention机制。
传统的RNN在t时刻的输入是h(t-1)和x(t),encoder在最后时刻输出一个针对input sequence的特征表示,decoder在生成output sequence时输入该特征表示和上一时刻的解码结果。在长句子翻译任务中,decoder并不关心input sequence的整个句子,而只关心input sequence的某一些局部特征,因此Bengio等人提出Attention机制,学习input sequence和output sequence的对齐(Align)和翻译(Translate)关系,在编码过程中,将原句子编码成特征向量的集合,在解码时,每个时刻会从该特征集合中选择一个子集用于生成解码结果。模型结构如下图所示:
在这里插入图片描述

Encoder

Encoder采用双向RNN结构,每个时刻的隐层输出是前向rnn隐层和后向rnn隐层的拼接,即
在这里插入图片描述
这样,j时刻的特征表示就包含了整个句子(前向和后向)的信息,而每个时刻均有一个特征表示,从而构成输入序列的特征表示集合。

Decoder

如果说encoder跟传统seq2seq结构并没有本质上的区别的话,Decoder跟传统seq2seq则发生了本质变化,这也是Attention机制的精华所在,即在Decode时同时学习对齐模型(align model)和翻译模型(translate model)。

对齐模型

对齐模型学习的是输入时刻j和输出时刻i的匹配关系alpha(i,j),j与i匹配程度越高,alpha(i,j)值越大,表示如下:
在这里插入图片描述
在这里插入图片描述
其中,si-1是decoder在i的上一时刻的输出,hj是encoder在j时刻的隐层拼接,a是前馈神经网络,alpha(i, j)是j时刻在时刻i上的概率分布,表示为softmax的输出。

翻译模型

翻译模型即解码过程&

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值