首页 >> 知识 >> Transformer系列:图文详解Decoder解码器原理

Transformer系列:图文详解Decoder解码器原理

Transformer系列:图文详解Decoder解码器原理

Encoder-Decoder框架简介

理解Transformer的解码器首先要了解Encoder-Decoder框架。在原论文中Transformer用于解决机器翻译任务,机器翻译这种Seq2Seq问题通常以Encoder-Decoder框架来解决,Transformer的网络结构也是基于encoder-decoder框架设计的。这种框架的模型分为两部分编码器Encoder和解码器Decoder,编码器负责将原文本数据编码为中间状态向量,该状态向量传递给解码器生成输出。示意图如下

Encoder-Decoder框架

以机器翻译场景为例,期望将某种语言的句子X翻译成另一种语言的句子Y,句子被表征为每个位置的字符id输入,则给定X=(x1,x2,x3,x4…)输入给模型,期望模型预测出Y=(y1,y2,y3,y4…),模型架构如下

机器翻译场景的Encoder-Decoder

编码器会对完整的输入句子通过各种复杂非线性变换生成State,代表原始输入被编码器编码之后形成的中间语义状态,形如公式

编码器输出中间语义向量

而解码器层需要融合解码器产出的中间状态State,和解码器已经生成出的信息Y1,Y2…Yi-1,来生成i时刻需要生成的单词Yi。

解码器融合解码器语义和历史解码信息

解码器是从第一个单词开始,逐位预测下一个单词,最终实现了从X翻译到Y的任务。

在实际网络中会在解码器中增加注意力机制,如果不添加注意力则对于任何位置Yi的预测中间状态state都是一样的,显然源文本中每个位置的字符应该和目标翻译文本各位置字符存在一定的对照关系,因此源文本的编码器state向量应该在每个位置对于当下要预测的Yi有不一样的权重分配,公式如下

带有注意力机制的Decoder

注意力机制工作的方式是将当下需要预测的单词位置的隐向量,和编码器输出的每个输入位置的状态向量,一一通过一个对齐函数(Attention)来计算目标单词和输入中某单词对齐的可能性大小,可能性越大赋予更大的权重,代表当下预测单词应该更加关注源文本中其对照单词的信息,最终中间状态向量state会给该对照单词位置处的分量给予

网站地图