深度学习之Transformer笔记


本文是根据哔哩哔哩up主视频讲解所写,加入了一些个人理解。视频地址:Transformer从零详细解读

一、Transformer概览

Transformer最初用于机器翻译,具体功能可以看成:

Transformer用于机器翻译

进一步细分:
Encoders-Decoders结构

再进一步细分:Encoder-Decoder结构,多个Encoder和Decoder个数可以自行设置,每个Encoder和Decoder参数不同,但是是循环结构。
结构

Transformer原文结构:
原文结构

二、Encoder详解

Encoder结构划分:
Encoder

  1. 输入部分

1.1 Embedding

单词到词向量的过程,可采用word2vec等操作,对句子进行处理,生成其对应的词向量表征。

1.2 位置编码

RNN在进行序列信息处理时共享的是一套参数,因为是循环使用同一个模块,因此在训练时,对于不同的输入也是对同一套参数进行更新。
RNN梯度消失的解释:RNN的梯度是梯度和,随着时间的推进,根据链式传播的法则,RNN的梯度被近时间距离的梯度主导,远时间距离梯度可以忽略不计。
RNN参数更新

而Transformer的Encoder中采用的是多头注意力机制,是直接对整个句子输入进行处理,没有保留句子中单词位置信息。位置编码方式如下:
位置编码

位置编码规则:对于偶数位置采用sin,奇数位置采用cos。
然后将词向量Embedding同位置编码相加,形成最终输入表征向量。
相加

PS:引入位置编码为何有意义?
根据sin和cos的运算规则,可以得出不同位置向量之间的相对位置关系。
原理

  1. 注意力机制

注意力机制的核心在于Q、K、V的计算。除以dk是为了防止Q、K点乘过大时导致的梯度消失问题。且控制方差为1。
Q、K、V计算

举个图文对应的例子:“婴儿在干嘛”这句话+右上角的图。
从例子中看,第一个Query是从输入向量中提取出来的的短时序列特征,而Key表示图片中局部命名特征和Value一一对应,Value表示从图片中提取的不同命名局部区域的特征。
Q、K的点乘运算可以体现不同特征之间的相似性,如例子中的“婴儿”和图片中那个区域联系更紧密,从而得到针对不同局部区域的权重信息。最后将结果同V相乘,得到加权和。

婴儿在干嘛

NLP的例子。
Query是输入短时特征,需要计算该特征同其他不同时序信息之间的关系,Key则代表着不同时序信息,Value是一一对应的时序信息内容所对应的向量表征。
一句话的Attention
具体运算过程

在只有单词向量时,如何获取Q、K、V,并计算对应的Attention值。
获取QKV
计算Attention
实际操作

多头注意力机制:注意到更多不同子空间的信息。
多头注意力
输出

  1. 残差和LayNorm

Encoder的运算过程。
在这里插入图片描述

3.1 残差

残差,反向传播链式法则易产生梯度消失的问题,而残差则通过相加和shortcut操作避免了梯度为0的情况出现,可以缓解梯度消失。
在这里插入图片描述
在这里插入图片描述

3.2 Layer Normalization(LN)

Batch Normalization(BN)在NLP中效果差,所以用LN。
BN是针对所有样本在同一维度的特征进行处理,可以解决内部协变量偏移,缓解梯度饱和(使用sigmoid作为激活函数时)加速收敛。
但是Batch_size较小时效果很差,均值方差只是在小范围内进行计算。
BN

BN在NLP中的体现:“我”和“今”属于同一维度特征,“爱”和“天”属于同一维度特征,以此类推。这种类比没有意义。
在这里插入图片描述

Layer Norm则是针对每一个样本,在该样本范围内计算均值和方差来进行规范化。即“我”、“爱”、“中”、“国”、“共”、“产”、“党”范围内作规范化。

三、Decoder详解

Decoder结构划分:
Decoder

在Decoder中的第一个多头注意力处理过程中需要对当前和之后的单词作mask,隐藏未来时刻的信息,这样就符合预测时的情境。因为在预测时,只是输入之前信息来预测当前信息,不可能提前预知未来信息。
在这里插入图片描述

Decoder的第二个多头注意力层是交互的,任意Encoder都会与所有的Decoder建立联系。
在这里插入图片描述

Encoder生成K、V向量,Decoder生成Q向量。
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深度学习在推荐系统领域有着广泛的应用。下面是一些关于深度学习推荐系统的笔记: 1. 数据表示:深度学习推荐系统通常使用向量表示用户和物品,将它们映射到低维空间中。常见的方法包括使用Embedding层将用户和物品ID转换为密集向量表示。 2. 神经网络模型:深度学习推荐系统使用神经网络模型来学习用户和物品之间的复杂交互关系。常见的模型包括多层感知机(Multi-Layer Perceptron,MLP)、卷积神经网络(Convolutional Neural Networks,CNN)和循环神经网络(Recurrent Neural Networks,RNN)等。 3. 个性化排序:深度学习推荐系统可以通过学习用户行为数据,预测用户对物品的喜好程度,并根据预测结果对物品进行个性化排序。常见的模型包括基于DNN的排序模型和序列模型,如Wide & Deep模型、DeepFM模型和Transformer模型等。 4. 强化学习:深度学习推荐系统可以与强化学习相结合,通过与环境交互来优化推荐策略。常见的方法包括使用深度Q网络(Deep Q-Network,DQN)和策略梯度方法等。 5. 多任务学习:深度学习推荐系统可以同时处理多个任务,如点击率预测、商品推荐和用户画像等。多任务学习可以通过共享模型参数来提高模型的泛化能力和效果。 6. 可解释性:深度学习模型在推荐系统中通常具有较强的表达能力,但其可解释性较差。为了提高可解释性,可以使用注意力机制、解释性模型和推荐解释等方法。 这些是深度学习推荐系统的一些关键概念和技术。当然,实际应用中需要根据具体问题和数据进行选择和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值