Transformer笔记

Transformer笔记

特点:Transformer模型完全基于注意力机制,没有任何卷积层或循环神经网络。之前Transformer最初应用于文本数据上的序列到序列上的学习,现在已经推广到各种现代深度学习中,例如语言、视觉、语音和强化学习领域。

模型架构

在这里插入图片描述

左边的架构为编码器,右边的架构为解码器。两者都是基于自注意力的模块叠加而成,源输入序列和目标输出序列表示将embedding(嵌入)和Positional(位置编码)相加再输入到编码器和解码器中。

Transformer的编码器除输入部分外是由多个相同的层叠加而成的,每个层都有两个子层,第一个子层为多头注意力机制,第二个子层为基于位置的前馈神经网络。每个子层都采用了残差连接,在每个子层的残差连接的加法计算后都采用了层规范化。

Transformer的解码器也是有多个相同的层叠加而成的,每个层有三个子层,在两个子层的基础上插入了一个新的子层,称为掩蔽的多头注意力机制。与编码器在多头注意力上的不同点,在多头注意力中,键和值来自于编码器的输出,查询来自与目前解码器层的输出。

我们先分开讲一下Transformer中几个核心的技术。

核心技术

多头注意力机制

概念

在实践中,如果给定了相同的查询、键和值的集合时,我们希望模型可以基于相同的注意力机制学习不同的行为,然后将不同的行为作为知识组合起来,捕获序列内各中范围的依赖关系。因此,允许注意力机制组合使用查询、键和值的不同来表示子空间可能会捕获到更丰富的信息。大白话就是,让词向量可以捕获到周围更有利于他的信息来更新他的词向量,使得他的词向量对他自身的描述更加的贴切。

譬如,在一个句子中,我们可以有不同的意思,举个例子:“我让你意思意思,没想到你没明白我的意思”。如果我们直接对意思进行词向量的表述,那么意思的词向量唯一,并不能表达出真正的语义,这时我们可以通过注意力机制,通过嵌入向量的形式来对意思的本身的词向量进行动态融合上下文的加权信息,找到一个更贴合意思的词向量。Transformer通过自注意力机制,动态融合上下文信息,为每个‘意思’生成独特的、上下文相关的表示,从而准确捕捉其实际含义。

在这里插入图片描述

多头注意力机制,顾名思义是采用了多头的这一特性,需要有多个头来学习不同的信息。假设现在我们有h个注意力头,若使用多头注意力机制我们可以将h组的不同线性投影来变换查询、键和值,然后,将h组变换后的查询、键和值将并行的送到注意力汇聚中,将h个注意力汇聚的输出连接到一起,最后通过一个可学习的线性投影进行变换,以生成最终的输出。

数学概念

在实现多头注意力之前,让我们用数学语言将这个模型形式化地描述出来。
给定查询 q ∈ R d q \mathbf{q} \in \mathbb{R}^{d_q} qRdq、键 k ∈ R d k \mathbf{k} \in \mathbb{R}^{d_k} kRdk和值 v ∈ R d v \mathbf{v} \in \mathbb{R}^{d_v} vRdv,每个注意力头 h i \mathbf{h}_i hi i = 1 , … , h i = 1, \ldots, h i=1,,h)的计算方法为: h i = f ( W i ( q ) q , W i ( k ) k , W i ( v ) v ) ∈ R p v , \mathbf{h}_i = f(\mathbf W_i^{(q)}\mathbf q, \mathbf W_i^{(k)}\mathbf k,\mathbf W_i^{(v)}\mathbf v) \in \mathbb R^{p_v}, hi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值