Transformer详解,中文版架构图

news/2024/7/19 11:16:35 标签: transformer, 深度学习, 人工智能

 

2.2.1 “编码器-解码器”架构
Seq2Seq 思想就是将网络的输入输出分别看作不同的序列,然后实现序列到序列
的映射,其经典实现结构就是“编码器-解码器”框架。编码器-解码器框架如图 2.7 所
示。


图2.7 编码器-解码器的基本框架


在 Seq2Seq 思想应用于自然语言处理之初,编码器解码器主要使用的是 RNN 及
其变体。针对输入,编码器会先遍历输入序列,根据循环神经网络的特性,每一层的
输入都包含了当前层的输入前一层的隐藏状态,而新的隐藏状态则会被用作下一层
的输入编码器一般只保留最后一层的隐藏状态,作为整个输入的语义向量,送入解

码器中,而这个语义向量输入解码器后会被看作是解码器初始的隐藏状态。
但由于循环神经网络本身的结构特性,如果输入序列过长,模型性能就会明显的
降低。这是因为使用循环神经网络只会将最后一层的隐藏状态作为表征整个输入文本
的语义向量,而句子中靠前的序列就会产生信息丢失问题。同时,在输出序列中,因
为输入的是已经损失了的语义向量,某些词对应的原始文本词已经在编码时丢失了。

图2.8 注意力机制原理示意图
为了解决这个问题,后续的相关工作中引入了注意力机制。注意力机制本质上借
鉴了人眼视觉处理信息的能力,可以概述为两个阶段:判断需要特别注意输入的哪个
部分;然后把资源优先分配给重要的部分。放在神经网络中,注意力机制就可以理解
为:在预测结果的时候把注意力侧重放在不同的特征上。
从数学上来讲,注意力机制[25]的计算可以被描述为一个查询(Query)到一系列
键值对(Key-Value)的映射。注意力机制计算的原理如图 2.8 所示:
其计算方式也可以归纳为两个步骤:
(1)先使用查询 Query 和键 Key 计算权重系数 ,求相似性的方法有点乘、权
重、余弦相似性等等,再用 SoftMax 操作对权重归一化,得到( ( , ))softmax f Q K

 

(2)第二个阶段再对 Value 进行加权求和,计算得到注意力的输出:

“编码器-解码器”框架引入注意力机制后,使用编码器对输入序列进行编码,首
先得到语义向量,然后可以得到一个所有语义向量的加权和,称之为语境
向量 ,使用代表注意力的权重参数,则语境向量可以表示为:


解码过程中,每一个输出词的概率可以由语境向量、前一层的隐状态共同确定:


其中,f 和g 分别代表非线性变换,一般指的是多层神经网络; 代表输出序列
中的一个词, 代表对应的隐状态;此外,注意力的权重参数可以使用另外的神经
网络计算得到的:
 


2.2.2 Transformer 网络


注意力机制在 Seq2Seq 中的应用在各项自然语言生成任务中都有提升。之后
Google 在 2017 年提出了 Transformer[13]模型,使用注意力机制、全连接前馈层、残差
连接组成的网络结构替代了 RNN,在多个自然语言处理任务乃至视觉任务上都有了
很大的提升。
Transformer 的整体结构如图 2.9 所示,也遵循“编码器-解码器”架构,编码器模
块主要由两个子层组成,分别是多头注意力机制(Multi-Head Self-attention Mechanism,
MHSM)和全连接前馈层(Fully Connected Feed-Forward Network),每个子层之后都
添加了层归一化(Layer Normalization,LN)和残差连接(Residual Connection)。

解码器块由三个子层组成,第一层是具有掩蔽功能的多头注意力层,可以防止信息泄露
第二层是整合编码器输出上一层解码器输出的多头注意力层;

第三层是全连接前置反馈层,同样每个子层后都添加了层归一化和残差连接


 

 模型中的点积注意力机制可以由以下公式表示:( , , ) ( )

而多头注意力就是通过h 个不一样的线性变换一起对输入的, ,Q K V 进行投影,并
进行点积注意力计算,最后再把不同的结果拼接起来。多头注意力的公式表示如

其中,d 为模型的维度,并且 为最后的线性投影层的权重矩阵
点积注意力机制与多头注意力机制的对比如图 2.10 所示。

 


图2.10 点积注意力与多头注意力机制示意图
全连接前馈层的作用是为模型提供非线性变化,由两个线性层和一个激活函数组
成,可以由下式表示:1 1 2 2( ) max(0, )FFN x xW b W b= + +
(2-18)
此外,对于文本而言,单词出现位置与顺序也很重要,Transformer 为了能保留文
本中的序列顺序及位置信息,提出了利用正余弦函数来保留序列中标记的相对或绝对
位置的方法。具体做法是利用正余弦函数对序列进行编码,并与输入嵌入语句向量进
行求和。2
( ,2 ) ( 10000 )modeli d
pos iPE sin pos=
(2-19)2
( ,2 1) ( 10000 )modeli d
pos iPE cos pos+ =
(2-20)
2.2.3 复制机制和指针机制
Seq2Seq 模型用于文本摘要有三个问题,即:倾向于生成重复文本、无法处理未
登录词问题(Out-of-Vocabulary,OOV)和无法准确复制真实细节。于是,指针生成
 

 

 

 

 

 


http://www.niftyadmin.cn/n/435269.html

相关文章

熬夜三晚之深度解析DuckDB MetaPipeline

深度解析DuckDB MetaPipeline 深度解析DuckDB MetaPipeline 1.导语 2.基础理论 3.HashJoin深度解析 3.1 RESULT_COLLECTOR 3.2 PROJECTION 3.3 HASH_JOIN 4.Ready 4.1 翻转 4.2 MetaPipeline与pipeline 5.汇总 1.导语 DuckDB 是…

Linux:主机状态监控

查看系统的资源占用 可以通过top命令,查看系统CPU、内存使用情况 top命令内容详解: 第一行:top:命令名称,10.49.16:当前系统时间,up 4:40:启动了4小时40分,4 users&#…

利用DPU/IPU 卸载容器镜像以及文件系统的相关操作

1、背景和动机 随着云原生(Cloud Native)被工业界广泛接受,容器(container)在数据中心被广泛部署,其地位正在逐步取代传统的虚拟机(Virtual Machine)。当然目前依然存在用轻量虚拟机来运行和部署容器,比如使用Kata Containers。简单来讲&…

『 MySQL篇 』:MySQL 锁机制介绍

目录 一. 概述 二. 全局锁 三 . 表级锁 三. 行级锁 一. 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据…

光伏电池建模及温度光照的影响曲线

光伏电池建模及温度光照的影响MATLAB程序及仿真资源-CSDN文库https://download.csdn.net/download/weixin_56691527/87910193模型介绍: 需要MATLAB2018B及以上的版本!! 首先根据根据环境修正公式搭建光伏电池仿真模型: 温度变化…

Triton教程 -- 模型仓库

Triton教程 – 模型仓库 文章目录 Triton教程 -- 模型仓库存储库布局模型存储库位置本地文件系统 具有环境变量的云存储谷歌云存储S3Azure 存储带凭证文件的云存储(测试版) 模型版本模型文件TensorRT 模型ONNX 模型TorchScript 模型TensorFlow 模型OpenV…

现实版“超级英雄”!外卖小哥从10余米高桥纵身跳下救人

“我心里也很怂啊,但个人害怕跟别人的命比起来,肯定是救人要紧,人命关天的事,还用想吗?” 这是一位勇敢外卖小哥在接受媒体采访时说的。 语言虽朴实无华,却道出了一个重要的价值观:人命关天&…

5大趋势与10大应用场景!未来的智能工厂要这么建...

在经济下行压力、人口红利消失、消费结构升级、疫情冲击等多种因素推动下,制造企业加快转型步伐,工厂正向高效化、智能化、绿色化方向跃迁升级,不断涌现出技术创新、应用领先、成效显著的智能工厂。 近日,中国信息通信研究院发布…