# Transformer 架构
原始的 Transformer 采用编码器 - 解码器(Encoder–Decoder)架构,Encoder 和 Decoder 又由多层小 encoder 和 decoder 组成。
# 评估过程
原始输入信息在进入 Encoder 之后,首先需要进行词嵌入和位置信息编码转换为一组向量,然后将该组向量向量经过多层的抽取会被映射为一组抽象的连续表示,其中包含了原始输入的所有可学习信息(可以理解为一种总结概括,保留输入中对机器有用的信息,然后输出成一种机器能看懂的形式),然后将该组表示输入到 Decoder 中。每层小 decoder 利用输入的那些表示来生成输出信息,注意,小 decoder 生成的信息同样也会被输入到其他小 decoder 中参与后续的输出,即每一次小 decoder 的输入是其他小 decoder 之前的输出和 Encoder 的输出。
# 训练过程
相比于使用 transformer,在训练 transformer 的时候,Decoder 的输入会有所不同。在训练时,Decoder 的输入是 Encoder 的输出和正确答案,目的是让 Decoder 能根据正确的答案计算交叉熵,这样才能进行参数更新。关于这部分的细节,我会在后文中详细讲解。
# Transormer 细节
# 词嵌入
假设现在有三个单词:
- apple
- orange
- iphone
我们可以将每一个单词转换成一个 one-hot 向量,但这会带来两个问题: