【NLP】毕设学习笔记(二)transformer

transformer组成

由若干encoder-decoder组成

encoder/decoder组成

transformer宏观
transformer = encoder + decoder
encoder / decoder = 6 * block

1.self-Attenion

背景

九几年,Attention机制在视觉图像领域被提出。2014年,有团队使用attention机制在RNN上进行图像分类。2017年,谷歌团队使用大量self-attention进行NLP任务处理。

概念

Attention机制来源人类视觉注意力机制。是指人们在感知事物时不会将一个场景全部看完,而是将注意力放在局部,并在将来学习时若出现类似场景,也会将注意力放到该部分上。

attention函数计算

NLP中常用的一种attention计算方法。是将一个查询(query)到一系列(键key-值value)对的映射。
在这里插入图片描述
Attention计算有三步:
1.将query和key进行相似度计算,得到权重。
计算相似度可以使用的函数有:点积、拼接、感知机等。
2.使用softmax(归一化指数)函数对权重进行归一化处理。
3.将权重和响应键值value进行加权求和,得到attention值。
NLP中,通常key=value
在这里插入图片描述

2.Feed Forward Neural Network(前馈神经网络)

神经网络提供一种非线性模型,用来拟合我们的训练样本集数据(x(i),y(i))

神经网络由神经元组成,每个神经元具有多个输入和一个输出。
使“输入->输出”的函数称为“激活函数”。

常见的激活函数有:sigmoid函数,tanh(z) 函数
1.是一个在生物学中常见的S型函数,其输出为[0,1]之间。
2.tanh是双曲正切函数,其输出为[−1,1]之间。

神经元构成神经网络。
在这里插入图片描述
1.标有“+1”的节点称为“偏置节点”。
2.神经网络最左侧的一列称为“输入层”。
3.神经网络最右侧的一列称为“输出层”。
4.神经网络除输入输出层以外的所有节点组成“隐藏层”。

上图中有3个”’输入单元”’(偏置单元不计在内),3个”’隐藏单元”’及一个”’输出单元”’。

使用激活函数从L1层逐一计算至L3层,称为前向传播。

transformer的输入

将单词利用词嵌入方式变为词向量,论文中词向量为dim=512
(词嵌入方法见上一篇文章)

词向量(称为tensor)输入encoder的第一个block,第一个block的输出作为第二个block的输入。
在这里插入图片描述

Self-Attention(核心)的计算

每个单词对应三个向量query,key,value,dim=64
同时有三个512*64的权值矩阵:Wq,Wk,Wv

每个单词通过词嵌入得到一个词向量,词向量与权值矩阵分别相乘获得qkv三个向量

【Query,Key,Value取自信息检索系统。
举个简单的搜索的例子来说。当你在某电商平台搜索某件商品(年轻女士冬季穿的红色薄款羽绒服)时,你在搜索引擎上输入的内容便是Query,然后搜索引擎根据Query为你匹配Key(例如商品的种类,颜色,描述等),然后根据Query和Key的相似度得到匹配的内容(Value)。】

Attention计算步骤如下:
1.q*k,得score
2.将score归一化处理
3.对score使用Softmax归一化函数,其结果为[0,1]
4.Softmax·value,得每个单词的评分v
5.将评分加和,得句子的评分z

self-attention使用了残差网络中的short-cut结构,为解决深度学习中的退化问题。
退化问题:在模型的每层中只有少量隐藏单元对不同的输入改变它们的激活值,而大部分隐藏单元对不同输入都是相同反应。
在深度网络的若干曾/每一层之间增加short-cut(捷径)可以缓解退化问题。
深度网络:网络结构复杂,难优化,误差较大。

Multi-Head Attention层计算

【transformer的完整结构】
在这里插入图片描述

Multi-Head Attention = n个self-attention的集成
若n为8,则其计算步骤如下:
1.由单词的词向量,先获得q,k,v三个向量,再利用self-attention的计算公式,即获得句子的加和评价z
2.8个z组成一个特征矩阵
3.特征矩阵经过全连接层后输出

multi-head attention也加入了short-cut机制。

Encoder-Decoder Attention计算

decoder比encoder多了一个encoder-cecoder attention。
encoder-cecoder attention中:
1.q的输入为上一个decoder的输出
2.k,v的输入为对应encoder的输出

由于解码过程是顺序操作过程,即解码第k个特征向量时,只能知道第k-1及其以前的解码结果,故称为multi-head attention为masked multi-head attention。

损失层

decoder的输出向量,作为使用Softmax为激活函数的全连接层的输入,得到表示每个词概率的输出。

位置编码

此外,由于transformer中词语和出现顺序在计算中无关,所以需要引入位置编码作为单词位置的特征表示。
论文使用编码公式计算位置编码。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

炖鹅小铁锅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值