文章来源地址https://www.toymoban.com/news/detail-486352.html
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 所示。
文章来源:https://www.toymoban.com/news/detail-486352.html
图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)和无法准确复制真实细节。于是,指针生成
到了这里,关于Transformer详解,中文版架构图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!