informer模型架构解释
图片引用自论文Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting
这张图片展示了一个Transformer模型的架构,这是在自然语言处理(NLP)和其他序列任务中广泛使用的一种模型。图片显示了一个典型的编码器-解码器结构,这种结构常用于序列到序列的模型,比如机器翻译。以下是详细解释及举例:
详细解释
1. 输入(左侧)
输入序列表示为 X_feed_cn
。这可以是一个标记序列,例如一句话中的单词或字符。例如,在机器翻译任务中,输入可以是一个英文句子 “I love learning AI”。
2. 编码器(Encoder)
- 编码器部分接收输入序列
X_feed_cn
并通过多个堆叠的层进行处理。这些层包括多头注意力机制(Multi-head Attention)、ProbSparse自注意力机制(ProbSparse Self-attention)等。 - 编码器的每一层都以依赖金字塔(Dependency pyramid)的形式逐步缩小输入序列的表示。
- 最终生成的编码器输出是一个特征图(Concatenated Feature Map),捕捉了输入序列的上下文信息。
3. 解码器(Decoder)
- 解码器部分接收经过编码的特征图以及之前生成的输出(通过掩码机制,确保解码器只能看到之前的位置,防止信息泄露)。
- 解码器的输入表示为
X_feed_de = {X_tokens, X_0}
,其中X_tokens
是解码过程中之前生成的输出标记,X_0
是初始输入(通常是一个特殊的开始标记)。 - 解码器也包含多头注意力机制和掩码多头自注意力机制,用于生成新的序列表示。
4. 输出(右侧)
- 最终解码器的输出通过一个全连接层(Fully Connected Layer),生成最终的输出序列。
- 例如,在机器翻译任务中,输出可以是对应的中文句子 “我爱学习人工智能”。
举例说明
假设我们有一个机器翻译任务,从英文翻译到中文。
- 输入序列: “I love learning AI”
- 编码器处理:
- 英文句子通过嵌入层转化为向量表示,输入到编码器。
- 编码器通过多层自注意力机制处理输入,生成上下文特征图。
- 解码器处理:
- 初始解码器输入是开始标记,逐步生成输出标记。
- 每一步生成的标记会作为下一步的输入,结合编码器的特征图,继续生成序列。
- 输出序列: “我爱学习人工智能”
这个过程展示了如何从一个输入序列生成一个输出序列,通过编码器和解码器的协作来实现序列到序列的任务。