本文是对李宏毅老师的课程进行了整理。
视频地址为:
https://www.bilibili.com/video/BV1Wv411h7kN?p=35
1 引入
Transform的应用场景
2 基本原理
Transform机制由编码器(Encoder)和解码器(Decoder)构成。
- 编码器:输入是一组向量序列,输出为一组向量序列,attention(注意力机制)、CNN、RNN等都可以作为Encoder;
- 解码器:根据编码器的输出,利用Begin特殊符号、输入向量序列得到后续的输出向量序列(如一段文字)。
上图例子的步骤如下:
- Encoder的输入为:机器学习;输出为:向量序列;
- Decoder第一次输入为:Encoder输出的向量序列、Begin特殊符号;第一次输出为文字出现的概率,假设最大的概率为:机;
- Decoder第二次输入为:Decoder第一次输出的向量序列、器;第二次输出为文字出现的概率,假设最大的概率为:器;
- 重复直到整个序列处理完成为止。
因为Decoder不知道最后的输出长度是多少,所以必须在输出部分增加一个结束符号,用“END”表示。
Decoder有两种方式:
- AT(Autoregressive) Decoder:输入一个序列,输出也是一个序列(一个一个单词输出);
- NAT Decoder:输入一串Begin(PPT是写的START),直接输出一个句子。
问:NAT Decoder方式如何知道结束?
答:有两种方法,(1)用另外的分类器,输入为Encoder的输入,输出为句子的长度;(2)假设句子最长不超过300,直接输入300个Begin,然后得到一个句子,在输出END之后的单词都不考虑。
问:NAT Decoder方式有什么优点?
答:平行,更稳定。