Transformer 模型是一种自然言语处理模型,它通过在序列上进行转换来完成使命,例如翻译、问答、摘要、分类等。这类模型一般运用注意力机制来聚集输入序列中的特定单词或短语,然后更好地了解和处理文本。
Transformer模型在《Attention is all you need》论文中提出这篇论文首要亮点在于:
- 1、不同于以往主流机器翻译运用依据RNN的seq2seq模型结构,该论文用attention机制替代了RNN搭建了整个模型结构。
- 2、提出了多头注意力(Multi-headed attention)机制办法,在编码器和解码器中大量的运用了多头自注意力机制(Multi-headed self-attention)。
- 3、在WMT2014语猜中的英德和英法使命上取得了先进成果,并且练习速度比主流模型更快。
我们先把Transformer幻想成一个黑匣子,在机器翻译的领域中,这个黑匣子的功能便是输入一种言语然后将它翻译成其他言语。如下图:
实际上Transformer是由两部分构成分别是编码器和解码器,在整个模型中,编码器由6个block组成,解码器由6个block组成。编码器的输出则作为解码器的输入。
Transformer结构
Transformer的整体结构
Attention
Attention模型并不只是盲目地将输出的第一个单词与输入的第一个词对齐。Attention机制的本质来自于人类视觉注意力机制。人们在看东西的时分一般不会从到头看到尾全部都看,往往只会依据需求调查注意特定的一部分,便是一种权重参数的分配机制,方针是帮忙模型捕捉重要信息。即给定一组<key,value>,以及一个方针(查询)向量query,attention机制便是通过计算query与每一组key的类似性,得到每个key的权重系数,再通过对value加权求和,得到终究attention数值。
Self-Attention
Self-Attention,这是Transformer的核心内容,首要意图是计算query与Key之间的类似度,为每个输入的向量学习一个权重。详细流程如下图所示:
-
如上文,将输入单词转化成嵌入向量;
-
依据嵌入向量得到 q ,k,v 三个向量;
-
为每个向量计算一个score: score=q*k ;
-
为了梯度的稳定,Transformer运用了score归一化,即除以 sqrt(dk)=8 (论文中运用key向量的维度是64维,其平方根=8,这样可以使得练习过程中具有更稳定的梯度。);
-
对score施以softmax激活函数,使得终究的列表和为1;这个softmax的分数决定了当时单词在每个语句中每个单词方位的表明程度。很明显,当时单词对应语句中此单词所在方位的softmax的分数最高,可是,有时分attention机制也能重视到此单词外的其他单词,这很有用。
-
softmax点乘Value值 v ,得到加权的每个输入向量的评分 v ;相当于保存对当时词的重视度不变的情况下,下降对不相关词的重视。
-
相加之后得到终究的输出成果;这会在此方位产生self-attention层的输出(对于第一个单词)。
Attention=softmax(Q∗K/Dk)∗VAttention = softmax(Q * K /Dk ) * V
Muti-Attention
Multi-Head Attention相当于h个不同的self-attention的集成(ensemble)。结构如下图所示:
仅有需求注意的是,由于残差链接的特殊需求,这里的输出要坚持与输入相同的维度,所以将每个Self-Attention得到的成果按列进行拼接,得到W0。终究进行一层全连接层,将其映射为终究的输出成果Z。
Positional Enconding
在Attention中,对于一个语句中各个词语的次序不改变计算成果,详细来说,便是词语的次序并不能影响Attention的计算成果,这与我们所了解的翻译不符,所以需求一个绝对的方位信息,来表明单词在语句中的方位,其详细计算公式如下:
…未完待续