【机器学习】从RNN到Attention 下篇 Transformer与Self-Attention

在上一篇【机器学习】从RNN到Attention 中篇 从Seq2Seq到Attention in Seq2Seq中我们介绍了基于RNN结构的Attention机制,Attention机制通过encoder和注意力权重可以观察到全局信息,从而较好地解决了长期依赖的问题,但是RNN的结构本身的输入依赖于前一时刻模型的输出,因此无法并行化。既然Attention机制本身就具有捕捉全局信息的能力,那么我们是否可以抛开RNN结构,只使用Attention机制,从而既能捕捉全局信息,又能并行化呢?Transformer模型就使用了这样一种思路。

从一个例子看Self-Attention

Self-Attention的核心在于学习序列中其他部分对于该部分的权重值,比如

The animal didn't cross the street because it was too tired

其中的“it”代指的是 the street还是The animal呢?self-attention的神奇之处在于可以让模型更关注于The animal,以便更好地解读句子的含义,如下图所示
在这里插入图片描述

模型的整体结构

Transformer本质上是一个encoder-decoder的结构,如下图所示:
图1 transormer的整体结构
如上图,图左的encoder部分由6个相同的子encoder组成,图右的encoder部分也是由6个相同的子decoder组成。
其中的6个子encoder包含self-attention和FFN(前馈神经网络)两部分,6个子decoder包含self-attention,Encoder-Decoder Attention和FFN三部分。如下图所示在这里插入图片描述

Self-Attention结构

我们先来看self-attention部分
在这里插入图片描述
self-attention主要由三个矩阵Q,K,V构成,Q(Query), K(Key), V(Value)三个矩阵均来自于输入X
在这里插入图片描述
图中的 W Q , W K , W V W^Q,W^K,W^V WQ,WK,WV为模型参数,可以通过优化算法学习得到,输入X与 W Q , W K , W V W^Q,W^K,W^V WQ,WK,WV进行矩阵乘法后得到矩阵Q(Query), K(Key), V(Value),三者经过Attention操作后得到注意力矩阵,公式为 Z = A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k ) V Z=Attention(Q,K,V)=softmax(\frac{QK^T}{\sqrt{d_k}})V Z=Attention(Q,K,V)=softmax(dk QKT)V
在这里插入图片描述
有点复杂,我们来看一个例子,假如要翻译一个词组Thinking Machines,其中用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值